mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-27 14:08:44 +01:00
Adds the weather anomaly (#18960)
* Weather anomaly * Rest of the stuff * Stomach acids to normal acids * Changes
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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!"))
|
||||
|
||||
Reference in New Issue
Block a user