mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 08:37:43 +01:00
## About The Pull Request 1. Adds doppler radar towers to Lavaland and the Icemoon Weather radios now need a doppler radar on the target z-level to get an accurate reading. Without a radar tower, the expected timing of incoming storms will be off by a random factor. Lavaland and the Icemoon both have a few towers mapped into them. The towers themselves can be constructed with plasteel if they some how get destroyed. They also have an in built GPS. Each tower requires a cable connection to function. They need a pretty small amount of power to function. 2. Adds anomalous radar towers Attaching a weather anomaly core to a radar tower results in an anomalous radar tower. <img width="260" height="409" alt="image" src="https://github.com/user-attachments/assets/3430b0aa-0bbc-44df-ae75-67c2c3cca5a6" /> This allows you to cancel ongoing storms **or summon storms yourself**. Each cancellation and summon uses a percentage of the core's charge. After the charge runs dry, the core is destroyed, and the tower goes back to being normal. Yes, you can construct a radar tower on the station to summon storms on the station, *including* rad storms. All storms summoned abide by radstorm rules, meaning maint is safe. Summoning onto the station uses significantly more charge. 3. Limits weather anomaly cores to 5 Because they are charge based and spamming weather events all round would be annoying, slightly lowers the max core count. ## Why It's Good For The Game Weather manipulation seems super appropriate for weather anomaly cores. Initially it was just going to be the machine, but then I thought "what if I want the frame of the machine to be available roundstart on Lavaland to encourage cooperation with miners" and then I thought "what if it tied into the weather radios, which opens up rare sabotage methods" So that's how we got here. The towers exist to facilitate the anomaly use while also allowing enterprising traitors to sabotage, potentially leaving their target unaware in a storm. ## Changelog 🆑 Melbert add: Adds doppler radar towers to Lavaland and the Icemoon. These towers ensure weather radios have accurate readings. add: Adding a weather anomaly core to a radar tower upgrades it, giving you control of weather - allowing you to cancel storms or even spawn a weather event of your choice. However, the core will expire after use, requiring replacement. add: You can construct radar towers with plasteel. Even on the station. Yes, you can summon weather onto the station. balance: Limits weather anomaly cores to 5. /🆑
106 lines
4.6 KiB
Plaintext
106 lines
4.6 KiB
Plaintext
// Embedded signaller used in anomalies.
|
|
/obj/item/assembly/signaler/anomaly
|
|
name = "anomaly core"
|
|
desc = "The neutralized core of an anomaly. It'd probably be valuable for research."
|
|
icon_state = "anomaly_core"
|
|
inhand_icon_state = "electronic"
|
|
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
|
|
resistance_flags = FIRE_PROOF
|
|
custom_materials = null
|
|
var/anomaly_type = /obj/effect/anomaly
|
|
|
|
/obj/item/assembly/signaler/anomaly/receive_signal(datum/signal/signal)
|
|
if(!signal)
|
|
return FALSE
|
|
if(signal.data["code"] != code)
|
|
return FALSE
|
|
if(suicider)
|
|
manual_suicide(suicider)
|
|
for(var/obj/effect/anomaly/A in get_turf(src))
|
|
A.anomalyNeutralize()
|
|
return TRUE
|
|
|
|
/obj/item/assembly/signaler/anomaly/manual_suicide(datum/mind/suicidee)
|
|
var/mob/living/user = suicidee.current
|
|
user.visible_message(span_suicide("[user]'s [name] is reacting to the radio signal, warping [user.p_their()] body!"))
|
|
user.set_suicide(TRUE)
|
|
user.gib(DROP_ALL_REMAINS)
|
|
|
|
/obj/item/assembly/signaler/anomaly/attack_self()
|
|
return
|
|
|
|
/obj/item/assembly/signaler/anomaly/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers)
|
|
if(I.tool_behaviour == TOOL_ANALYZER)
|
|
to_chat(user, span_notice("Analyzing... [src]'s stabilized field is fluctuating along frequency [format_frequency(frequency)], code [code]."))
|
|
return ..()
|
|
|
|
//Anomaly cores
|
|
/obj/item/assembly/signaler/anomaly/pyro
|
|
name = "\improper pyroclastic anomaly core"
|
|
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/grav
|
|
name = "\improper gravitational anomaly core"
|
|
desc = "The neutralized core of a gravitational anomaly. It feels much heavier than it looks. It'd probably be valuable for research."
|
|
icon_state = "grav_core"
|
|
anomaly_type = /obj/effect/anomaly/grav
|
|
|
|
/obj/item/assembly/signaler/anomaly/flux
|
|
name = "\improper flux anomaly core"
|
|
desc = "The neutralized core of a flux anomaly. Touching it makes your skin tingle. It'd probably be valuable for research."
|
|
icon_state = "flux_core"
|
|
anomaly_type = /obj/effect/anomaly/flux
|
|
|
|
/obj/item/assembly/signaler/anomaly/bluespace
|
|
name = "\improper bluespace anomaly core"
|
|
desc = "The neutralized core of a bluespace anomaly. It keeps phasing in and out of view. It'd probably be valuable for research."
|
|
icon_state = "anomaly_core"
|
|
anomaly_type = /obj/effect/anomaly/bluespace
|
|
|
|
/obj/item/assembly/signaler/anomaly/vortex
|
|
name = "\improper vortex anomaly core"
|
|
desc = "The neutralized core of a vortex anomaly. It won't sit still, as if some invisible force is acting on it. It'd probably be valuable for research."
|
|
icon_state = "vortex_core"
|
|
anomaly_type = /obj/effect/anomaly/bhole
|
|
|
|
/obj/item/assembly/signaler/anomaly/bioscrambler
|
|
name = "\improper bioscrambler anomaly core"
|
|
desc = "The neutralized core of a bioscrambler anomaly. It's squirming, as if moving. It'd probably be valuable for research."
|
|
icon_state = "bioscrambler_core"
|
|
anomaly_type = /obj/effect/anomaly/bioscrambler
|
|
|
|
/obj/item/assembly/signaler/anomaly/hallucination
|
|
name = "\improper hallucination anomaly core"
|
|
desc = "The neutralized core of a hallucination anomaly. It seems to be moving, but it's probably your imagination. It'd probably be valuable for research."
|
|
icon_state = "hallucination_core"
|
|
anomaly_type = /obj/effect/anomaly/hallucination
|
|
|
|
/obj/item/assembly/signaler/anomaly/dimensional
|
|
name = "\improper dimensional anomaly core"
|
|
desc = "The neutralized core of a dimensional anomaly. Objects reflected on its surface don't look quite right. It'd probably be valuable for research."
|
|
icon_state = "dimensional_core"
|
|
anomaly_type = /obj/effect/anomaly/dimensional
|
|
|
|
/obj/item/assembly/signaler/anomaly/dimensional/Initialize(mapload)
|
|
. = ..()
|
|
var/static/list/recipes = list(/datum/crafting_recipe/dimensional_bombcore)
|
|
AddElement(/datum/element/slapcrafting, recipes)
|
|
|
|
/obj/item/assembly/signaler/anomaly/ectoplasm
|
|
name = "\improper ectoplasm anomaly core"
|
|
desc = "The neutralized core of an ectoplasmic anomaly. When you hold it close, you can hear faint murmuring from inside. It'd probably be valuable for research."
|
|
icon_state = "dimensional_core"
|
|
anomaly_type = /obj/effect/anomaly/ectoplasm
|
|
|
|
/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
|
|
|
|
/// Used in weather towers to track uses before depleting
|
|
var/charges = 8
|