mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
Anomaly Event Changes
Increases the duration and occurrence rate of Anomaly events. Anomaly cores now give better research values. Bluespace anomalies no longer teleport anchored objects because it looks godawful. If not defused, Pyroclastic Anomalies will create a red or orange slime.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/datum/round_event_control/anomaly
|
||||
name = "Energetic Flux"
|
||||
name = "Anomaly: Energetic Flux"
|
||||
typepath = /datum/round_event/anomaly
|
||||
max_occurrences = 0 //This one probably shouldn't occur! It'd work, but it wouldn't be very fun.
|
||||
weight = 15
|
||||
@@ -23,7 +23,7 @@
|
||||
setup(safety_loop)
|
||||
|
||||
/datum/round_event/anomaly/announce()
|
||||
priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert")
|
||||
priority_announce("Localized energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert")
|
||||
|
||||
/datum/round_event/anomaly/start()
|
||||
var/turf/T = pick(get_area_turfs(impact_area))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/datum/round_event_control/anomaly/anomaly_bluespace
|
||||
name = "Bluespace Anomaly"
|
||||
name = "Anomaly: Bluespace"
|
||||
typepath = /datum/round_event/anomaly/anomaly_bluespace
|
||||
max_occurrences = 1
|
||||
weight = 5
|
||||
@@ -7,7 +7,7 @@
|
||||
/datum/round_event/anomaly/anomaly_bluespace
|
||||
startWhen = 3
|
||||
announceWhen = 10
|
||||
endWhen = 55
|
||||
endWhen = 95
|
||||
|
||||
|
||||
/datum/round_event/anomaly/anomaly_bluespace/announce()
|
||||
@@ -52,9 +52,7 @@
|
||||
var/x_distance = TO.x - FROM.x
|
||||
for (var/atom/movable/A in range(12, FROM )) // iterate thru list of mobs in the area
|
||||
if(istype(A, /obj/item/device/radio/beacon)) continue // don't teleport beacons because that's just insanely stupid
|
||||
if(A.anchored && istype(A, /obj/machinery)) continue
|
||||
if(istype(A, /obj/structure/disposalpipe )) continue
|
||||
if(istype(A, /obj/structure/cable )) continue
|
||||
if(A.anchored) continue
|
||||
|
||||
var/turf/newloc = locate(A.x + x_distance, A.y + y_distance, TO.z) // calculate the new place
|
||||
if(!A.Move(newloc)) // if the atom, for some reason, can't move, FORCE them to move! :) We try Move() first to invoke any movement-related checks the atom needs to perform after moving
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/datum/round_event_control/anomaly/anomaly_flux
|
||||
name = "Energetic Flux"
|
||||
name = "Anomaly: Hyper-Energetic Flux"
|
||||
typepath = /datum/round_event/anomaly/anomaly_flux
|
||||
max_occurrences = 2
|
||||
weight = 15
|
||||
max_occurrences = 5
|
||||
weight = 20
|
||||
|
||||
/datum/round_event/anomaly/anomaly_flux
|
||||
startWhen = 3
|
||||
announceWhen = 20
|
||||
endWhen = 60
|
||||
endWhen = 80
|
||||
|
||||
|
||||
/datum/round_event/anomaly/anomaly_flux/announce()
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/datum/round_event_control/anomaly/anomaly_grav
|
||||
name = "Gravitational Anomaly"
|
||||
name = "Anomaly: Gravitational"
|
||||
typepath = /datum/round_event/anomaly/anomaly_grav
|
||||
max_occurrences = 2
|
||||
weight = 15
|
||||
max_occurrences = 5
|
||||
weight = 20
|
||||
|
||||
/datum/round_event/anomaly/anomaly_grav
|
||||
startWhen = 3
|
||||
announceWhen = 20
|
||||
endWhen = 50
|
||||
endWhen = 120
|
||||
|
||||
|
||||
/datum/round_event/anomaly/anomaly_grav/announce()
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
/datum/round_event_control/anomaly/anomaly_pyro
|
||||
name = "Pyroclastic Anomaly"
|
||||
name = "Anomaly: Pyroclastic"
|
||||
typepath = /datum/round_event/anomaly/anomaly_pyro
|
||||
max_occurrences = 2
|
||||
weight = 15
|
||||
max_occurrences = 5
|
||||
weight = 20
|
||||
|
||||
/datum/round_event/anomaly/anomaly_pyro
|
||||
startWhen = 10
|
||||
announceWhen = 3
|
||||
endWhen = 70
|
||||
endWhen = 85
|
||||
|
||||
|
||||
/datum/round_event/anomaly/anomaly_pyro/announce()
|
||||
priority_announce("Atmospheric anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
|
||||
priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
|
||||
|
||||
/datum/round_event/anomaly/anomaly_pyro/start()
|
||||
var/turf/T = pick(get_area_turfs(impact_area))
|
||||
@@ -23,4 +23,14 @@
|
||||
kill()
|
||||
return
|
||||
if(IsMultiple(activeFor, 5))
|
||||
newAnomaly.anomalyEffect()
|
||||
newAnomaly.anomalyEffect()
|
||||
|
||||
|
||||
/datum/round_event/anomaly/anomaly_pyro/end()
|
||||
if(newAnomaly)
|
||||
explosion(get_turf(newAnomaly), -1,0,3, flame_range = 4)
|
||||
|
||||
var/mob/living/carbon/slime/S = new/mob/living/carbon/slime(get_turf(newAnomaly))
|
||||
S.colour = pick("red", "orange")
|
||||
|
||||
qdel(newAnomaly)
|
||||
@@ -1,13 +1,13 @@
|
||||
/datum/round_event_control/anomaly/anomaly_vortex
|
||||
name = "Vortex Anomaly"
|
||||
name = "Anomaly: Vortex"
|
||||
typepath = /datum/round_event/anomaly/anomaly_vortex
|
||||
max_occurrences = 5
|
||||
weight = 2
|
||||
max_occurrences = 2
|
||||
weight = 5
|
||||
|
||||
/datum/round_event/anomaly/anomaly_vortex
|
||||
startWhen = 10
|
||||
announceWhen = 3
|
||||
endWhen = 80
|
||||
endWhen = 95
|
||||
|
||||
|
||||
/datum/round_event/anomaly/anomaly_vortex/announce()
|
||||
|
||||
Reference in New Issue
Block a user