Files
Batrachophreno e2f82ec245 Tunes new antag mechanic behaviors (Greimorian Egg Clade, Radioactive Waste) (#21713)
changes:
- rscadd: "Spilled radium now generates (weakly) radioactive puddles of
green goo, just like Uranium."
  - balance: "Extends Greimorian eggsac incubation time by 50%."
- balance: "Introduces a probability element to greimorian egg toxin
metabolism; after being injected with the reagent, each metabolism tick
only has a % chance to create the eggsac 'organ', meaning quick
helmizole injection (or dumb luck) can prevent incubation entirely."
- balance: "Introduces clamp on spiderling generation counter to prevent
RNG from causing outsized impact from single eggsac rupture."
- balance: "If the randomly chosen body part a Greimorian eggsac would
infest is the head, the victim will get an extra reroll of target body
part to avoid the associated instant death risk."
- balance: "Consuming radioactive waste is now MUCH unhealthier. Don't
eat radioactive waste."
- qol: "Updates some antagonist tips (removed old/deprecated ones, added
new one.)"
- bugfix: "Removed greimorian eggsacs now dissolve into goo as
intended."
2026-01-17 17:58:09 +00:00

216 lines
6.4 KiB
Plaintext

/obj/effect/decal/cleanable/generic
name = "clutter"
desc = "Someone should clean that up."
gender = PLURAL
density = FALSE
anchored = TRUE
icon = 'icons/obj/trash.dmi'
icon_state = "shards"
/obj/effect/decal/cleanable/ash
name = "ashes"
desc = "Ashes to ashes, dust to dust, and into space."
gender = PLURAL
icon = 'icons/obj/trash.dmi'
icon_state = "ash"
anchored = TRUE
/obj/effect/decal/cleanable/ash/attack_hand(mob/user)
to_chat(user, SPAN_NOTICE("[src] sifts through your fingers."))
var/turf/simulated/floor/F = get_turf(src)
if (istype(F))
F.dirt += 4
qdel(src)
/obj/effect/decal/cleanable/dirt
name = "dirt"
desc = "Someone should clean that up."
gender = PLURAL
density = FALSE
anchored = TRUE
icon = 'icons/effects/effects.dmi'
icon_state = "dirt"
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
/obj/effect/decal/cleanable/flour
name = "flour"
desc = "It's still good. Four second rule!"
gender = PLURAL
density = FALSE
anchored = TRUE
icon = 'icons/effects/effects.dmi'
icon_state = "flour"
/obj/effect/decal/cleanable/greenglow
name = "glowing goo"
desc = "Jeez. I hope that's not for lunch."
gender = PLURAL
density = FALSE
anchored = TRUE
light_range = 2
light_power = 0.5
light_color = LIGHT_COLOR_GREEN
icon = 'icons/effects/effects.dmi'
icon_state = "greenglow"
/obj/effect/decal/cleanable/greenglow/Initialize(mapload)
. = ..()
if (!mapload) // Round-start goo should stick around.
QDEL_IN(src, 2 MINUTES)
/obj/effect/decal/cleanable/greenglow/post_sweep(var/mob/user)
if(ishuman(user))
var/mob/living/carbon/human/H = user
H.apply_radiation(3)
STOP_PROCESSING(SSprocessing, src)
ABSTRACT_TYPE(/obj/effect/decal/cleanable/greenglow/radioactive)
/// Radiation generated by SSradiation.radiate each process() tick.
var/radioactivity
light_range = 2
light_power = 0.6
light_color = "#64C864"
/obj/effect/decal/cleanable/greenglow/radioactive/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Characters directly adjacent to or on top of this object will be exposed to <b>[radioactivity] IU/s</b> of radiation. Radiation falls off (approximately) by 75% for every tile away you move."
/obj/effect/decal/cleanable/greenglow/radioactive/low
radioactivity = 20
/obj/effect/decal/cleanable/greenglow/radioactive/low/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Geiger counters will start clicking at ~5 tiles away from this object."
. += "Almost all voidsuits, including softsuits, provide sufficient protection to move safely adjacent to it."
/obj/effect/decal/cleanable/greenglow/radioactive/medium
radioactivity = 40
/obj/effect/decal/cleanable/greenglow/radioactive/medium/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Geiger counters will start clicking at ~8 tiles away from this object."
. += "An engineering or atmos voidsuit is necessary to move safely adjacent to it."
/obj/effect/decal/cleanable/greenglow/radioactive/high
radioactivity = 80
/obj/effect/decal/cleanable/greenglow/radioactive/high/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Geiger counters will start clicking at ~10 tiles away from this object."
. += "A radsuit is necessary to move safely adjacent to it."
/obj/effect/decal/cleanable/greenglow/radioactive/extreme
/// This is higher than radsuits can absorb! Use with caution.
radioactivity = 120
/obj/effect/decal/cleanable/greenglow/radioactive/extreme/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Geiger counters will start clicking at ~12 tiles away from this object."
. += "No living thing can safely stand next to this object! Borgs or IPCs only!"
/obj/effect/decal/cleanable/greenglow/radioactive/Initialize()
. = ..()
START_PROCESSING(SSprocessing, src)
/obj/effect/decal/cleanable/greenglow/radioactive/process()
SSradiation.radiate(src, radioactivity)
/obj/effect/decal/cleanable/cobweb
name = "cobweb"
desc = "Somebody should remove that."
density = FALSE
anchored = TRUE
layer = ABOVE_HUMAN_LAYER
icon = 'icons/effects/effects.dmi'
icon_state = "cobweb1"
/obj/effect/decal/cleanable/cobweb2
name = "cobweb"
desc = "Somebody should remove that."
density = FALSE
anchored = TRUE
layer = ABOVE_HUMAN_LAYER
icon = 'icons/effects/effects.dmi'
icon_state = "cobweb2"
/obj/effect/decal/cleanable/molten_item
name = "gooey grey mass"
desc = "It looks like a melted... something."
density = FALSE
anchored = TRUE
layer = OBJ_LAYER
icon = 'icons/obj/chemical.dmi'
icon_state = "molten"
//Vomit (sorry)
/obj/effect/decal/cleanable/vomit
name = "vomit"
desc = "Gosh, how unpleasant."
gender = PLURAL
density = FALSE
anchored = TRUE
icon = 'icons/effects/blood.dmi'
icon_state = "vomit_1"
random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4")
var/list/viruses = list()
/obj/effect/decal/cleanable/vomit/Initialize()
. = ..()
create_reagents(20, src)
/obj/effect/decal/cleanable/tomato_smudge
name = "tomato smudge"
desc = "It's red."
density = FALSE
anchored = TRUE
icon = 'icons/effects/tomatodecal.dmi'
random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3")
/obj/effect/decal/cleanable/egg_smudge
name = "smashed egg"
desc = "Seems like this one won't hatch."
density = FALSE
anchored = TRUE
icon = 'icons/effects/tomatodecal.dmi'
random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3")
/obj/effect/decal/cleanable/pie_smudge //honk
name = "smashed pie"
desc = "It's pie cream from a cream pie."
density = FALSE
anchored = TRUE
icon = 'icons/effects/tomatodecal.dmi'
random_icon_states = list("smashed_pie")
/obj/effect/decal/cleanable/fruit_smudge
name = "smudge"
desc = "Some kind of fruit smear."
density = FALSE
anchored = TRUE
icon = 'icons/effects/blood.dmi'
icon_state = "mfloor1"
random_icon_states = list("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7")
/obj/effect/decal/cleanable/confetti
name = "confetti"
desc = "Tiny bits of colored paper thrown about for the janitor to enjoy!"
gender = PLURAL
density = FALSE
anchored = TRUE
icon = 'icons/effects/effects.dmi'
icon_state = "confetti"
/obj/effect/decal/cleanable/confetti/attack_hand(mob/user)
to_chat(user, SPAN_NOTICE("You start to meticulously pick up the confetti."))
if(do_after(user, 6 SECONDS))
qdel(src)
/obj/effect/decal/cleanable/acid_remnants
name = "acid remains"
desc = "A mixture of mortal remains and acid."
density = FALSE
anchored = TRUE
icon = 'icons/effects/effects.dmi'
icon_state = "acid_puddle"