Adds the weather anomaly (#18960)

* Weather anomaly

* Rest of the stuff

* Stomach acids to normal acids

* Changes
This commit is contained in:
Guti
2026-01-01 14:39:44 -05:00
committed by GitHub
parent cbc248a39c
commit 3889dc69ab
12 changed files with 376 additions and 11 deletions
+45 -1
View File
@@ -13,7 +13,8 @@
//obj/effect/anomaly/bioscrambler = /obj/item/clothing/suit/armor/reactive/bioscrambling,
/obj/effect/anomaly/hallucination = /obj/item/clothing/suit/armor/reactive/hallucinating,
/obj/effect/anomaly/dimensional = /obj/item/clothing/suit/armor/reactive/barricade,
/obj/effect/anomaly/pyro = /obj/item/clothing/suit/armor/reactive/fire
/obj/effect/anomaly/pyro = /obj/item/clothing/suit/armor/reactive/fire,
/obj/effect/anomaly/weather = /obj/item/clothing/suit/armor/reactive/weather
)
if(istype(I, /obj/item/assembly/signaler/anomaly))
@@ -301,6 +302,49 @@
reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration
return FALSE
/obj/item/clothing/suit/armor/reactive/weather
name = "reactive metereological armor"
desc = "An experimental suit of armor that manipulates the weather around the wearer when in danger."
emp_message = span_warning("The reactive armor's weather control unit sputters and groans...")
cooldown_message = span_danger("The reactive weather system is still recharging! It fails to activate!")
reactivearmor_cooldown_duration = 30 SECONDS
/obj/item/clothing/suit/armor/reactive/weather/reactive_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", damage = 0)
owner.visible_message(span_danger("The reactive armor alters the weather around [owner], shielding [owner.p_them()] from [attack_text]!"))
playsound(src, 'sound/effects/lightningbolt.ogg', 33, TRUE)
new /obj/effect/effect/smoke/bad(get_turf(loc))
var/list/affected_turfs = list()
for(var/mob/living/attacker in oview(2, owner))
attacker.adjust_wet_stacks(5)
attacker.extinguish_mob()
var/turf/location = get_turf(attacker)
if(!location.is_outdoors())
continue
for(var/turf/simulated/open/to_affect in view(1, attacker.loc))
affected_turfs += to_affect
shock_turf_windup(attacker.loc)
reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration
return TRUE
/obj/item/clothing/suit/armor/reactive/weather/emp_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", damage = 0)
owner.visible_message(span_danger("The reactive armor malfunctions, calling down a storm upon [owner.p_them()]!"))
playsound(src, 'sound/effects/lightningbolt.ogg', 33, TRUE)
new /obj/effect/effect/smoke/bad(loc)
if(!isopenturf(owner.loc))
return
shock_turf_windup(owner.loc)
/obj/item/clothing/suit/armor/reactive/weather/proc/shock_turf_windup(turf/target)
addtimer(CALLBACK(GLOBAL_PROC_REF(lightning_strike), target), 1 SECOND)
/obj/item/clothing/suit/armor/reactive/stealth
name = "reactive stealth armor"
desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm, and creates a decoy that runs away from the owner. You can't fight what you can't see."
@@ -94,3 +94,9 @@
desc = "The neutralized core of a pyroclastic anomaly. It feels warm to the touch. It'd probably be valuable for research."
icon_state = "pyro_core"
anomaly_type = /obj/effect/anomaly/pyro
/obj/item/assembly/signaler/anomaly/weather
name = "\improper weather anomaly core"
desc = "The neutralized core of a weather anomaly. The sound of thunder can be heard in the distance. It'd probably be valuable for research."
icon_state = "weather_core"
anomaly_type = /obj/effect/anomaly/weather
+1 -1
View File
@@ -195,7 +195,7 @@
return
if(81 to 85)
sparks()
var/anomaly = pick(FLUX_ANOMALY, GRAVITATIONAL_ANOMALY, PYRO_ANOMALY, HALLUCINATION_ANOMALY, BIOSCRAMBLER_ANOMALY, DIMENSIONAL_ANOMALY)
var/anomaly = pick(FLUX_ANOMALY, GRAVITATIONAL_ANOMALY, PYRO_ANOMALY, HALLUCINATION_ANOMALY, BIOSCRAMBLER_ANOMALY, DIMENSIONAL_ANOMALY, WEATHER_ANOMALY)
generate_anomaly(get_turf(telepad), anomaly, 1, FALSE)
for(var/mob/living/carbon/human/human in viewers(telepad, null))
to_chat(human, span_warning("The telepad crackles with energy, as a tear in reality is created!"))