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