Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
TobleroneSwordfish committed Sep 12, 2023
2 parents 05aa1fc + 9ef8283 commit 304f300
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 66 deletions.
2 changes: 1 addition & 1 deletion code/modules/writing/papers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {"<h4>Getting Started</h4>
Congratulations, your station has purchased the H-87 industrial cloning device!<br>
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!<br>
Expand Down
2 changes: 1 addition & 1 deletion code/obj/item/gun/energy.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
124 changes: 62 additions & 62 deletions code/obj/machinery/singularity.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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()
Expand Down Expand Up @@ -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

Expand All @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions strings/changelog.txt
Original file line number Diff line number Diff line change
@@ -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
Expand Down

0 comments on commit 304f300

Please sign in to comment.