From 0d0e0241336e6af95f751f97bdb75559079dae2e Mon Sep 17 00:00:00 2001
From: MRLinew <75217127+MRLinew@users.noreply.github.com>
Date: Tue, 12 Sep 2023 17:24:07 -0400
Subject: [PATCH 1/4] Fix typo in wavegun (#15813)
---
code/obj/item/gun/energy.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/obj/item/gun/energy.dm b/code/obj/item/gun/energy.dm
index 2e7d099ef064d..4ad05bd7f87d4 100644
--- a/code/obj/item/gun/energy.dm
+++ b/code/obj/item/gun/energy.dm
@@ -546,7 +546,7 @@ TYPEINFO(/obj/item/gun/energy/vuvuzela_gun)
/obj/item/gun/energy/wavegun
name = "\improper Sancai wave gun"
icon = 'icons/obj/items/gun.dmi'
- desc = "The versatile XIANG|GIESEL model '三才' with three monlethal functions: inverse '炎帝', transverse '地皇' and reflective '天皇' ."
+ desc = "The versatile XIANG|GIESEL model '三才' with three nonlethal functions: inverse '炎帝', transverse '地皇' and reflective '天皇' ."
icon_state = "wavegun"
item_state = "wave"
cell_type = /obj/item/ammo/power_cell/med_power
From 789ab5229fd640ce1ba60ea19f9fc4919bdf80b8 Mon Sep 17 00:00:00 2001
From: MRLinew <75217127+MRLinew@users.noreply.github.com>
Date: Tue, 12 Sep 2023 17:52:16 -0400
Subject: [PATCH 2/4] fix another typ0, this time in cloning manual (#15814)
---
code/modules/writing/papers.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/writing/papers.dm b/code/modules/writing/papers.dm
index e83bed62c5952..5752f6492cb9e 100644
--- a/code/modules/writing/papers.dm
+++ b/code/modules/writing/papers.dm
@@ -5,7 +5,7 @@
/// Cloning Manual -- A big ol' manual.
/obj/item/paper/Cloning
- name = "'H-87 Cloning Apparatus Manual"
+ name = "H-87 Cloning Apparatus Manual"
info = {"
Getting Started
Congratulations, your station has purchased the H-87 industrial cloning device!
Using the H-87 is almost as simple as brain surgery! Simply insert the target humanoid into the scanning chamber and select the scan option to create a new profile!
From 52a63019c9f03124a9eb3f27d511df2b3a81148f Mon Sep 17 00:00:00 2001
From: Tarmunora <48066662+Tarmunora@users.noreply.github.com>
Date: Tue, 12 Sep 2023 17:10:16 -0500
Subject: [PATCH 3/4] singularity gets dimishing returns on eating too much of
the same thing. Gains from material stats are not adjusted. allow gain from
material stats to be scaled by stack size (but not the base value because
that would need math)
---
code/obj/machinery/singularity.dm | 124 +++++++++++++++---------------
1 file changed, 62 insertions(+), 62 deletions(-)
diff --git a/code/obj/machinery/singularity.dm b/code/obj/machinery/singularity.dm
index 28559f482f19b..30b439bb1c1b6 100644
--- a/code/obj/machinery/singularity.dm
+++ b/code/obj/machinery/singularity.dm
@@ -121,6 +121,7 @@ TYPEINFO(/obj/machinery/the_singularitygen)
var/spaget_count = 0
var/katamari_mode = FALSE //! If true the sucked-in objects will get stuck to the singularity
var/num_absorbed = 0 //! Number of objects absorbed by the singularity
+ var/list/obj/succ_cache
#ifdef SINGULARITY_TIME
@@ -134,6 +135,7 @@ for some reason I brought it back and tried to clean it up a bit and I regret ev
START_TRACKING_CAT(TR_CAT_GHOST_OBSERVABLES)
src.energy = E
maxradius = rad
+ succ_cache = list()
if(maxradius<2)
radius = maxradius
else
@@ -156,7 +158,6 @@ for some reason I brought it back and tried to clean it up a bit and I regret ev
lense.blend_mode = BLEND_OVERLAY
lense.appearance_flags = RESET_ALPHA | RESET_COLOR
src.UpdateOverlays(lense, "grav_lensing")
-
..()
/obj/machinery/the_singularity/disposing()
@@ -269,7 +270,6 @@ for some reason I brought it back and tried to clean it up a bit and I regret ev
qdel(src)
/obj/machinery/the_singularity/Bumped(atom/A)
- var/gain = 0
if(istype(A, /obj/dummy))
return
@@ -281,56 +281,60 @@ for some reason I brought it back and tried to clean it up a bit and I regret ev
if(QDELETED(A)) // Don't bump that which no longer exists
return
+ src.consume_atom(A)
+
+/obj/machinery/the_singularity/proc/consume_atom(atom/A, no_visuals = FALSE)
+ var/gain = 0
- num_absorbed++
-
- if(src.spaget_count < 25 && !katamari_mode)
- src.spaget_count++
- var/spaget_time = 15 SECONDS
- var/obj/dummy/spaget_overlay = new()
- spaget_overlay.appearance = A.appearance
- spaget_overlay.appearance_flags = RESET_COLOR | RESET_ALPHA | PIXEL_SCALE
- spaget_overlay.pixel_x = A.pixel_x + (A.x - src.x + 0.5)*32
- spaget_overlay.pixel_y = A.pixel_y + (A.y - src.y + 0.5)*32
- spaget_overlay.vis_flags = 0
- spaget_overlay.plane = PLANE_DEFAULT
- spaget_overlay.mouse_opacity = 0
- spaget_overlay.transform = A.transform
- if(prob(0.1)) // easteregg
- spaget_overlay.icon = 'icons/obj/foodNdrink/food_meals.dmi'
- spaget_overlay.icon_state = "spag-dish"
- spaget_overlay.Scale(2, 2)
- var/angle = get_angle(A, src)
- var/matrix/flatten = matrix((A.x - src.x)*(cos(angle)), 0, -spaget_overlay.pixel_x, (A.y - src.y)*(sin(angle)), 0, -spaget_overlay.pixel_y)
- animate(spaget_overlay, spaget_time, FALSE, QUAD_EASING, 0, alpha=0, transform=flatten)
- var/obj/dummy/spaget_turner = new()
- spaget_turner.vis_contents += spaget_overlay
- spaget_turner.mouse_opacity = 0
- spaget_turner.appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM | KEEP_TOGETHER
- animate_spin(spaget_turner, right_spinning ? "R" : "L", spaget_time / 8 + randfloat(-2, 2), looping=2, parallel=FALSE)
- src.vis_contents += spaget_turner
- SPAWN(spaget_time + 1 SECOND)
- src.spaget_count--
- qdel(spaget_overlay)
- qdel(spaget_turner)
- else if(katamari_mode)
- var/obj/dummy/kat_overlay = new()
- kat_overlay.appearance = A.appearance
- kat_overlay.appearance_flags = RESET_COLOR | RESET_ALPHA | PIXEL_SCALE | RESET_TRANSFORM
- kat_overlay.pixel_x = 0
- kat_overlay.pixel_y = 0
- kat_overlay.vis_flags = 0
- kat_overlay.plane = PLANE_NOSHADOW_ABOVE
- kat_overlay.layer = src.layer + rand()
- kat_overlay.mouse_opacity = 0
- kat_overlay.alpha = 64
- var/matrix/tr = new
- tr.Turn(randfloat(0, 360))
- tr.Translate(sqrt(num_absorbed) * 3 + 16 - 16, -16)
- tr.Turn(randfloat(0, 360))
- tr.Translate(-pixel_x, -pixel_y)
- kat_overlay.transform = tr
- src.underlays += kat_overlay
+ if(!no_visuals)
+ num_absorbed++
+ if(src.spaget_count < 25 && !katamari_mode)
+ src.spaget_count++
+ var/spaget_time = 15 SECONDS
+ var/obj/dummy/spaget_overlay = new()
+ spaget_overlay.appearance = A.appearance
+ spaget_overlay.appearance_flags = RESET_COLOR | RESET_ALPHA | PIXEL_SCALE
+ spaget_overlay.pixel_x = A.pixel_x + (A.x - src.x + 0.5)*32
+ spaget_overlay.pixel_y = A.pixel_y + (A.y - src.y + 0.5)*32
+ spaget_overlay.vis_flags = 0
+ spaget_overlay.plane = PLANE_DEFAULT
+ spaget_overlay.mouse_opacity = 0
+ spaget_overlay.transform = A.transform
+ if(prob(0.1)) // easteregg
+ spaget_overlay.icon = 'icons/obj/foodNdrink/food_meals.dmi'
+ spaget_overlay.icon_state = "spag-dish"
+ spaget_overlay.Scale(2, 2)
+ var/angle = get_angle(A, src)
+ var/matrix/flatten = matrix((A.x - src.x)*(cos(angle)), 0, -spaget_overlay.pixel_x, (A.y - src.y)*(sin(angle)), 0, -spaget_overlay.pixel_y)
+ animate(spaget_overlay, spaget_time, FALSE, QUAD_EASING, 0, alpha=0, transform=flatten)
+ var/obj/dummy/spaget_turner = new()
+ spaget_turner.vis_contents += spaget_overlay
+ spaget_turner.mouse_opacity = 0
+ spaget_turner.appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM | KEEP_TOGETHER
+ animate_spin(spaget_turner, right_spinning ? "R" : "L", spaget_time / 8 + randfloat(-2, 2), looping=2, parallel=FALSE)
+ src.vis_contents += spaget_turner
+ SPAWN(spaget_time + 1 SECOND)
+ src.spaget_count--
+ qdel(spaget_overlay)
+ qdel(spaget_turner)
+ else if(katamari_mode)
+ var/obj/dummy/kat_overlay = new()
+ kat_overlay.appearance = A.appearance
+ kat_overlay.appearance_flags = RESET_COLOR | RESET_ALPHA | PIXEL_SCALE | RESET_TRANSFORM
+ kat_overlay.pixel_x = 0
+ kat_overlay.pixel_y = 0
+ kat_overlay.vis_flags = 0
+ kat_overlay.plane = PLANE_NOSHADOW_ABOVE
+ kat_overlay.layer = src.layer + rand()
+ kat_overlay.mouse_opacity = 0
+ kat_overlay.alpha = 64
+ var/matrix/tr = new
+ tr.Turn(randfloat(0, 360))
+ tr.Translate(sqrt(num_absorbed) * 3 + 16 - 16, -16)
+ tr.Turn(randfloat(0, 360))
+ tr.Translate(-pixel_x, -pixel_y)
+ kat_overlay.transform = tr
+ src.underlays += kat_overlay
if (isliving(A) && !isintangible(A))//if its a mob
var/mob/living/L = A
@@ -376,11 +380,11 @@ for some reason I brought it back and tried to clean it up a bit and I regret ev
gain += A.material.getProperty("density") * 3 * A.material_amt
gain += A.material.getProperty("radioactive") * 4 * A.material_amt
gain += A.material.getProperty("n_radioactive") * 6 * A.material_amt
+ if(isitem(A))
+ var/obj/item/I = A
+ gain *= I.amount
if (A.reagents)
gain += min(A.reagents.total_volume/4, 50)
- if (istype(A, /obj/decal/cleanable)) //MBC : this check sucks, but its far better than cleanables doing hard-delete at the whims of the singularity. replace ASAP when i figure out cleanablessssss
- qdel(A)
- gain += 2
else if (istype(A, /obj/machinery/nuclearbomb))
gain += 5000 //ten clowns
playsound_global(clients, 'sound/machines/singulo_start.ogg', 50)
@@ -393,16 +397,12 @@ for some reason I brought it back and tried to clean it up a bit and I regret ev
else if (istype(A, /obj/item/plutonium_core)) // as a treat
gain += 5000
qdel(A)
- else if (istype(A, /obj/mechbeam)) //let's not make lazy feeders with trip lasers
- gain += 0.25
- qdel(A)
- else if (istype(A, /obj/item/paper))
- gain += 0.5
- qdel(A)
else
var/obj/O = A
- gain += 2
- gain += length(O.contents) * 2
+ succ_cache[A.type] += 1
+ gain += 10/succ_cache[A.type]
+ for(var/atom/other_food in A)
+ src.consume_atom(other_food, no_visuals = TRUE)
O.set_loc(src.get_center())
O.ex_act(1)
if (O)
From 9ef82832cc8022276c5dc5d1c1713ae9d77535d0 Mon Sep 17 00:00:00 2001
From: Tarmunora <48066662+Tarmunora@users.noreply.github.com>
Date: Tue, 12 Sep 2023 17:12:20 -0500
Subject: [PATCH 4/4] clog
---
strings/changelog.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/strings/changelog.txt b/strings/changelog.txt
index 7731d050b6ad8..4154d194a760c 100644
--- a/strings/changelog.txt
+++ b/strings/changelog.txt
@@ -1,7 +1,7 @@
(t)tue sep 12 23
-(u)Sord
-(+)Singularity feeding changes: Paper 2 -> 0.5. Material(ore/bar) density*3, radioactive*4, neutron radioactive*6. Also feed a singularity a plutonium core to get a LOT of power.
+(u)Sord & Tarmunora
+(+)Singularity feeding changes: Base values (i.e.: bonuses from materials are unaffected) are generally higher, but have diminishing returns for any given type. Variety is the spice of life! Material(ore/bar) density*3, radioactive*4, neutron radioactive*6. Also feed a singularity a plutonium core to get a LOT of power.
(u)Paaiii
(p)15592
(e)🗺🎨🔊|A-Mapping, C-Sprites, C-Sound