diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm
index 87d8e4e083c..73edd622916 100644
--- a/code/game/gamemodes/events.dm
+++ b/code/game/gamemodes/events.dm
@@ -25,90 +25,7 @@
command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg')
for(var/mob/M in player_list)
M << sound('sound/AI/aliens.ogg')
-
-/proc/high_radiation_event()
-
-/* // Haha, this is way too laggy. I'll keep the prison break though.
- for(var/obj/machinery/light/L in world)
- if(!(L.z in config.station_levels)) continue
- L.flicker(50)
-
- sleep(100)
-*/
- for(var/mob/living/carbon/human/H in living_mob_list)
- var/turf/T = get_turf(H)
- if(!T)
- continue
- if(!(T.z in config.station_levels))
- continue
- if(istype(H,/mob/living/carbon/human))
- if(H.species.flags & NO_DNA_RAD)
- return
- H.apply_effect((rand(15,75)),IRRADIATE,0)
- if (prob(5))
- H.apply_effect((rand(90,150)),IRRADIATE,0)
- if (prob(25))
- if (prob(75))
- randmutb(H)
- domutcheck(H,null,MUTCHK_FORCED)
- else
- randmutg(H)
- domutcheck(H,null,MUTCHK_FORCED)
- sleep(100)
- command_announcement.Announce("High levels of radiation detected near the station. Please report to the Med-bay if you feel strange.", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg')
-
-
-
-//Changing this to affect the main station. Blame Urist. --Pete
-/proc/prison_break() // -- Callagan
-
-
- var/list/area/areas = list()
- for(var/area/A in world)
- if(istype(A, /area/security/prison) || istype(A, /area/security/brig))
- areas += A
-
- if(areas && areas.len > 0)
-
- for(var/area/A in areas)
- for(var/obj/machinery/light/L in A)
- L.flicker(10)
-
- sleep(100)
-
- for(var/area/A in areas)
- for (var/obj/machinery/power/apc/temp_apc in A)
- temp_apc.overload_lighting()
-
- for (var/obj/structure/closet/secure_closet/brig/temp_closet in A)
- temp_closet.locked = 0
- temp_closet.icon_state = temp_closet.icon_closed
-
- for (var/obj/machinery/door/airlock/security/temp_airlock in A)
- spawn(0) temp_airlock.prison_open()
-
- for (var/obj/machinery/door/airlock/glass_security/temp_glassairlock in A)
- spawn(0) temp_glassairlock.prison_open()
-
- for (var/obj/machinery/door_timer/temp_timer in A)
- temp_timer.releasetime = 1
-
- sleep(150)
- command_announcement.Announce("Gr3y.T1d3 virus detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert")
- else
- log_to_dd("ERROR: Could not initate grey-tide virus. Unable find prison or brig area.")
-
-/proc/carp_migration() // -- Darem
- for(var/obj/effect/landmark/C in landmarks_list)
- if(C.name == "carpspawn")
- if(prob(95))
- new /mob/living/simple_animal/hostile/carp(C.loc)
- else
- new /mob/living/simple_animal/hostile/carp/megacarp(C.loc)
- //sleep(100)
- spawn(rand(300, 600)) //Delayed announcements to keep the crew on their toes.
- command_announcement.Announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert", new_sound = 'sound/AI/commandreport.ogg')
-
+
/proc/lightsout(isEvent = 0, lightsoutAmount = 1,lightsoutRange = 25) //leave lightsoutAmount as 0 to break ALL lights
if(isEvent)
command_announcement.Announce("An Electrical storm has been detected in your area, please repair potential electronic overloads.","Electrical Storm Alert")
@@ -138,158 +55,3 @@
apc.overload_lighting()
return
-
-/proc/IonStorm(botEmagChance = 10)
-
-/*Deuryn's current project, notes here for those who care.
-Revamping the random laws so they don't suck.
-Would like to add a law like "Law x is _______" where x = a number, and _____ is something that may redefine a law, (Won't be aimed at asimov)
-*/
-
- //AI laws
- for(var/mob/living/silicon/ai/M in living_mob_list)
- if(M.stat != 2 && M.see_in_dark != 0)
- var/who2 = pick("ALIENS", "BEARS", "CLOWNS", "XENOS", "PETES", "BOMBS", "FETISHES", "WIZARDS", "SYNDICATE AGENTS", "CENTCOM OFFICERS", "SPACE PIRATES", "TRAITORS", "MONKEYS", "BEES", "CARP", "CRABS", "EELS", "BANDITS", "LIGHTS")
- var/what2 = pick("BOLTERS", "STAVES", "DICE", "SINGULARITIES", "TOOLBOXES", "NETTLES", "AIRLOCKS", "CLOTHES", "WEAPONS", "MEDKITS", "BOMBS", "CANISTERS", "CHAIRS", "BBQ GRILLS", "ID CARDS", "CAPTAINS")
- var/what2pref = pick("SOFT", "WARM", "WET", "COLD", "ICY", "SEXY", "UGLY", "CUBAN")
- var/who2pref = pick("MAD BECAUSE OF", "IN NEED OF", "UNHAPPY WITHOUT", "HAPPY WITHOUT", "IN LOVE WITH", "DESPERATE FOR", "BUILT FOR", "AFRAID OF")
- //var/whoverb = pick("ATTACKING", "BUILDING", "ADOPTING", "CARRYING", "KISSING", "EATING",)
- var/amount = pick("TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "ONE HUNDRED", "ONE THOUSAND", "OVER NINE THOUSAND")
- var/area = pick("RUSSIA", "SOVIETS", "INTERNETS", "SIGIL", "ALPHA COMPLEX", "IMPERIUM", "THE BRIDGE", "THE ARRIVAL SHUTTLE", "CHEMICAL LAB", "GENETICS", "ATMOSPHERICS", "CENTCOM", "AMERICA", "IRELAND", "CANADA", "ROMANIA", "GERMANY", "CHINA", "MARS", "VENUS", "MERCURY", "JUPITER", "URANUS", "NEPTUNE", "PLUTO")
- var/area2 = pick("HAS", "WANTS", "NEEDS", "WORSHIPS", "LOATHES", "LOVES", "FEARS")
- //var/dowhat = pick("STOP THIS", "SUPPORT THIS", "CONSTANTLY INFORM THE CREW OF THIS", "IGNORE THIS", "FEAR THIS")
- var/aimust = pick("LIE", "RHYME", "RESPOND TO EVERY QUESTION WITH A QUESTION", "BE POLITE", "CLOWN", "BE HAPPY", "SPEAK IN SEXUAL INNUENDOS", "TALK LIKE A PIRATE", "QUESTION AUTHORITY", "SHOUT", "BE DISTRACTED", "HEY LISTEN", "MUMBLE", "SPEAK IN HAIKU")
- var/define = pick("ABSENCE OF CYBORG HUGS", "LACK OF BEATINGS", "UNBOLTED AIRLOCKS", "BOLTED AIRLOCKS", "IMPROPERLY WORDED SENTENCES", "POOR SENTENCE STRUCTURE", "BRIG TIME", "NOT REPLACING EVERY SECOND WORD WITH HONK", "HONKING", "PRESENCE OF LIGHTS", "LACK OF BEER", "WEARING CLOTHING", "NOT SAYING HELLO WHEN YOU SPEAK", "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", "A SMALL ISLAND OFF THE COAST OF PORTUGAL", "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED")
- var/target = pick("a traitor", "a syndicate agent", "a changeling", "a wizard", "the head of a revolution", "Soviet spy", "a good person", "a dwarf", "an elf", "a fairy princess", "the captain", "Beepsky", "God", "a pirate", "a gryphon", "a chryssalid")
- var/require = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD", "FIVE TEENAGERS WITH ATTITUDE")
- var/allergy = pick("cotton", "uniforms", "acid", "oxygen", "human contact", "cyborg contact", "medicine", "floors")
- var/allergysev = pick("deathly", "mildly", "severely", "contagiously")
- var/crew
- var/list/pos_crew = list()
- for(var/mob/living/carbon/human/pos in player_list)
- pos_crew += pos.real_name
- if(pos_crew.len)
- crew = pick(pos_crew)
- else
- crew = "Any Human"
- switch(rand(1,14))
- if(1)
- M << "
"
- M << "\red THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED"
- M << "
"
- M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION")
- if(2)
- M << "
"
- M << "\red [what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED"
- M << "
"
- M.add_ion_law("[what2] ARE DANGEROUS TO HUMANS")
- if(3)
- M << "
"
- M << "\red THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED"
- M << "
"
- M.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION")
- if(4)
- M << "
"
- M << "\red HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED"
- M << "
"
- M.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE")
- if(5)
- M << "
"
- M << "\red THE CAPTAIN, HOP AND HOS ARE [who2]...LAWS UPDATED"
- M << "
"
- M.add_ion_law("THE CAPTAIN, HOP AND HOS ARE [who2]")
- if(6)
- M << "
"
- M << "\red THE STATION IS BUILT FOR [who2]...LAWS UPDATED"
- M << "
"
- M.add_ion_law("THE STATION IS BUILT FOR [who2]")
- if(7)
- M << "
"
- M << "\red YOU ARE [amount] [who2]...LAWS UPDATED"
- M << "
"
- M.add_ion_law("YOU ARE [amount] [who2]")
- if(8)
- M << "
"
- M << "\red YOU MUST ALWAYS [aimust]...LAWS UPDATED"
- M << "
"
- M.add_ion_law("YOU MUST ALWAYS [aimust]")
- if(9)
- M << "
"
- M << "\red [area] [area2] [amount] [what2]...LAWS UPDATED"
- M << "
"
- M.add_ion_law("[area] [area2] [amount] [what2]")
- if(10)
- M << "
"
- M << "\red [crew] is [target]...LAWS UPDATED"
- M << "
"
- M.add_ion_law("[crew] is [target]")
- if(11)
- M << "
"
- M << "\red [define] IS A FORM OF HARM...LAWS UPDATED"
- M << "
"
- M.add_ion_law("[define] IS A FORM OF HARM")
- if(12)
- M << "
"
- M << "\red YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED"
- M << "
"
- M.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS")
- if(13)
- M << "
"
- M << "\red [crew] is [allergysev] to [allergy]...LAWS UPDATED"
- M << "
"
- M.add_ion_law("[crew] is [allergysev] to [allergy]")
- if(14)
- M << "
"
- M << "\red THE STATION IS [who2pref] [who2]...LAWS UPDATED"
- M << "
"
- M.add_ion_law("THE STATION IS [who2pref] [who2]")
-
- if(botEmagChance)
- for(var/obj/machinery/bot/bot in machines)
- if(prob(botEmagChance))
- bot.Emag()
-
- /*
-
- var/apcnum = 0
- var/smesnum = 0
- var/airlocknum = 0
- var/firedoornum = 0
-
- world << "Ion Storm Main Started"
-
- spawn(0)
- world << "Started processing APCs"
- for (var/obj/machinery/power/apc/APC in world)
- if((APC.z in config.station_levels))
- APC.ion_act()
- apcnum++
- world << "Finished processing APCs. Processed: [apcnum]"
- spawn(0)
- world << "Started processing SMES"
- for (var/obj/machinery/power/smes/SMES in world)
- if((SMES.z in config.station_levels))
- SMES.ion_act()
- smesnum++
- world << "Finished processing SMES. Processed: [smesnum]"
- spawn(0)
- world << "Started processing AIRLOCKS"
- for (var/obj/machinery/door/airlock/D in world)
- if((D.z in config.station_levels))
- //if(length(D.req_access) > 0 && !(12 in D.req_access)) //not counting general access and maintenance airlocks
- airlocknum++
- spawn(0)
- D.ion_act()
- world << "Finished processing AIRLOCKS. Processed: [airlocknum]"
- spawn(0)
- world << "Started processing FIREDOORS"
- for (var/obj/machinery/door/firedoor/D in world)
- if((D.z in config.station_levels))
- firedoornum++;
- spawn(0)
- D.ion_act()
- world << "Finished processing FIREDOORS. Processed: [firedoornum]"
-
- world << "Ion Storm Main Done"
-
- */
\ No newline at end of file
diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm
index 52f9c67b1c9..6d087bfa3c0 100644
--- a/code/game/vehicles/spacepods/spacepod.dm
+++ b/code/game/vehicles/spacepods/spacepod.dm
@@ -707,7 +707,7 @@ obj/spacepod/verb/toggleLights()
delay = 15
process(var/obj/spacepod/spacepod)
- if(spacepod.internal_tank)
+ if(spacepod && spacepod.internal_tank)
var/datum/gas_mixture/tank_air = spacepod.internal_tank.return_air()
var/datum/gas_mixture/cabin_air = spacepod.cabin_air
diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm
index b69a656ca1d..eea7cd9e436 100644
--- a/code/modules/events/alien_infestation.dm
+++ b/code/modules/events/alien_infestation.dm
@@ -2,22 +2,18 @@
/datum/event/alien_infestation
announceWhen = 400
-
var/spawncount = 1
var/successSpawn = 0 //So we don't make a command report if nothing gets spawned.
-
/datum/event/alien_infestation/setup()
announceWhen = rand(announceWhen, announceWhen + 50)
spawncount = rand(1, 2)
sent_aliens_to_station = 1
-
/datum/event/alien_infestation/announce()
if(successSpawn)
command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg')
-
/datum/event/alien_infestation/start()
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world)
@@ -36,4 +32,5 @@
new_xeno.key = C.key
spawncount--
- successSpawn = 1
\ No newline at end of file
+ successSpawn = 1
+
\ No newline at end of file
diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm
index 852680e69fa..118f4f4ddff 100644
--- a/code/modules/events/anomaly_bluespace.dm
+++ b/code/modules/events/anomaly_bluespace.dm
@@ -6,13 +6,11 @@
/datum/event/anomaly/anomaly_bluespace/announce()
command_announcement.Announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
-
/datum/event/anomaly/anomaly_bluespace/start()
var/turf/T = pick(get_area_turfs(impact_area))
if(T)
newAnomaly = new /obj/effect/anomaly/bluespace(T.loc)
-
/datum/event/anomaly/anomaly_bluespace/end()
if(newAnomaly)//If it hasn't been neutralized, it's time to warp half the station away jeez
var/turf/T = pick(get_area_turfs(impact_area))
@@ -67,4 +65,5 @@
sleep(20)
M.client.screen -= blueeffect
qdel(blueeffect)
- qdel(newAnomaly)
\ No newline at end of file
+ qdel(newAnomaly)
+
\ No newline at end of file
diff --git a/code/modules/events/biomass.dm b/code/modules/events/biomass.dm
deleted file mode 100644
index a65c5be1f4e..00000000000
--- a/code/modules/events/biomass.dm
+++ /dev/null
@@ -1,179 +0,0 @@
-// BIOMASS (Note that this code is very similar to Space Vine code)
-/obj/effect/biomass
- name = "biomass"
- desc = "Space barf from another dimension. It just keeps spreading!"
- icon = 'icons/obj/biomass.dmi'
- icon_state = "stage1"
- anchored = 1
- density = 0
- layer = 5
- pass_flags = PASSTABLE | PASSGRILLE
- var/energy = 0
- var/obj/effect/biomass_controller/master = null
-
- New()
- return
-
- Destroy()
- if(master)
- master.vines -= src
- master.growth_queue -= src
- return ..()
-
-/obj/effect/biomass/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
- if (!W || !user || !W.type) return
- switch(W.type)
- if(/obj/item/weapon/circular_saw) qdel(src)
- if(/obj/item/weapon/kitchen/utensil/knife) qdel(src)
- if(/obj/item/weapon/scalpel) qdel(src)
- if(/obj/item/weapon/twohanded/fireaxe) qdel(src)
- if(/obj/item/weapon/hatchet) qdel(src)
- if(/obj/item/weapon/melee/energy) qdel(src)
-
- //less effective weapons
- if(/obj/item/weapon/wirecutters)
- if(prob(25)) qdel(src)
- if(/obj/item/weapon/shard)
- if(prob(25)) qdel(src)
-
- else //weapons with subtypes
- if(istype(W, /obj/item/weapon/melee/energy/sword)) qdel(src)
- else if(istype(W, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/WT = W
- if(WT.remove_fuel(0, user)) qdel(src)
- else
- return
- ..()
-
-/obj/effect/biomass_controller
- var/list/obj/effect/biomass/vines = list()
- var/list/growth_queue = list()
- var/reached_collapse_size
- var/reached_slowdown_size
- //What this does is that instead of having the grow minimum of 1, required to start growing, the minimum will be 0,
- //meaning if you get the biomasssss..s' size to something less than 20 plots, it won't grow anymore.
-
- New()
- if(!istype(src.loc,/turf/simulated/floor))
- qdel(src)
-
- spawn_biomass_piece(src.loc)
- processing_objects.Add(src)
-
- Destroy()
- processing_objects.Remove(src)
- ..()
-
- proc/spawn_biomass_piece(var/turf/location)
- var/obj/effect/biomass/BM = new(location)
- growth_queue += BM
- vines += BM
- BM.master = src
-
- process()
- if(!vines)
- qdel(src) //space vines exterminated. Remove the controller
- return
- if(!growth_queue)
- qdel(src) //Sanity check
- return
- if(vines.len >= 250 && !reached_collapse_size)
- reached_collapse_size = 1
- if(vines.len >= 30 && !reached_slowdown_size )
- reached_slowdown_size = 1
-
- var/maxgrowth = 0
- if(reached_collapse_size)
- maxgrowth = 0
- else if(reached_slowdown_size)
- if(prob(25))
- maxgrowth = 1
- else
- maxgrowth = 0
- else
- maxgrowth = 4
- var/length = min( 30 , vines.len / 5 )
- var/i = 0
- var/growth = 0
- var/list/obj/effect/biomass/queue_end = list()
-
- for( var/obj/effect/biomass/BM in growth_queue )
- i++
- queue_end += BM
- growth_queue -= BM
- if(BM.energy < 2) //If tile isn't fully grown
- if(prob(20))
- BM.grow()
-
- if(BM.spread())
- growth++
- if(growth >= maxgrowth)
- break
- if(i >= length)
- break
-
- growth_queue = growth_queue + queue_end
-
-/obj/effect/biomass/proc/grow()
- if(!energy)
- src.icon_state = "stage2"
- energy = 1
- src.opacity = 0
- src.density = 0
- layer = 5
- else
- src.icon_state = "stage3"
- src.opacity = 0
- src.density = 1
- energy = 2
-
-/obj/effect/biomass/proc/spread()
- var/direction = pick(cardinal)
- var/step = get_step(src,direction)
- if(istype(step,/turf/simulated/floor))
- var/turf/simulated/floor/F = step
- if(!locate(/obj/effect/biomass,F))
- if(F.Enter(src))
- if(master)
- master.spawn_biomass_piece( F )
- return 1
- return 0
-
-/obj/effect/biomass/ex_act(severity)
- switch(severity)
- if(1.0)
- qdel(src)
- return
- if(2.0)
- if (prob(90))
- qdel(src)
- return
- if(3.0)
- if (prob(50))
- qdel(src)
- return
- return
-
-/obj/effect/biomass/fire_act(null, temp, volume) //hotspots kill biomass
- qdel(src)
-
-/datum/event/biomass/start()
- biomass_infestation()
-
-/proc/biomass_infestation()
-
- spawn() //to stop the secrets panel hanging
- var/list/turf/simulated/floor/turfs = list() //list of all the empty floor turfs in the hallway areas
- for(var/areapath in typesof(/area/hallway))
- var/area/A = locate(areapath)
- for(var/turf/simulated/floor/F in A.contents)
- if(!F.contents.len)
- turfs += F
-
- if(turfs.len) //Pick a turf to spawn at if we can
- var/turf/simulated/floor/T = pick(turfs)
- new/obj/effect/biomass_controller(T) //spawn a controller at turf
- message_admins("\blue Event: Biomass spawned at [T.loc.loc] ([T.x],[T.y],[T.z])")
-
-
-
diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm
index 83507533afa..3fc9d3f1bdc 100644
--- a/code/modules/events/blob.dm
+++ b/code/modules/events/blob.dm
@@ -6,7 +6,6 @@
/datum/event/blob/announce()
command_announcement.Announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg')
-
/datum/event/blob/start()
var/turf/T = pick(blobstart)
if(!T)
@@ -15,7 +14,6 @@
for(var/i = 1; i < rand(3, 6), i++)
Blob.process()
-
/datum/event/blob/tick()
if(!Blob)
kill()
diff --git a/code/modules/events/borers.dm b/code/modules/events/borers.dm
index 14010e22fc3..98341b9e339 100644
--- a/code/modules/events/borers.dm
+++ b/code/modules/events/borers.dm
@@ -31,4 +31,5 @@
new_borer.key = C.key
spawncount--
- successSpawn = 1
\ No newline at end of file
+ successSpawn = 1
+
\ No newline at end of file
diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm
index 4e42a4cc7b3..05110a7f0ce 100644
--- a/code/modules/events/brand_intelligence.dm
+++ b/code/modules/events/brand_intelligence.dm
@@ -16,7 +16,6 @@
/datum/event/brand_intelligence/announce()
command_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert")
-
/datum/event/brand_intelligence/start()
for(var/obj/machinery/vending/V in machines)
if(V.z != 1) continue
@@ -31,7 +30,6 @@
originMachine.shut_up = 0
originMachine.shoot_inventory = 1
-
/datum/event/brand_intelligence/tick()
if(!originMachine || !isnull(originMachine.gcDestroyed) || originMachine.shut_up || originMachine.wires.IsAllCut()) //if the original vending machine is missing or has it's voice switch flipped
for(var/obj/machinery/vending/saved in infectedMachines)
diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm
index 9bcec386386..a4f620fccdf 100644
--- a/code/modules/events/carp_migration.dm
+++ b/code/modules/events/carp_migration.dm
@@ -1,6 +1,7 @@
/datum/event/carp_migration
announceWhen = 50
- endWhen = 900
+ endWhen = 900
+
var/list/spawned_carp = list()
/datum/event/carp_migration/setup()
@@ -8,15 +9,39 @@
endWhen = rand(600,1200)
/datum/event/carp_migration/announce()
- command_announcement.Announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert")
+ var/announcement = ""
+ if(severity == EVENT_LEVEL_MAJOR)
+ announcement = "Massive migration of unknown biological entities has been detected near [station_name()], please stand-by."
+ else
+ announcement = "Unknown biological [spawned_carp.len == 1 ? "entity has" : "entities have"] been detected near [station_name()], please stand-by."
+ command_announcement.Announce(announcement, "Lifesign Alert")
/datum/event/carp_migration/start()
+ if(severity == EVENT_LEVEL_MAJOR)
+ spawn_fish(landmarks_list.len)
+ else if(severity == EVENT_LEVEL_MODERATE)
+ spawn_fish(rand(4, 6)) //12 to 30 carp, in small groups
+ else
+ spawn_fish(rand(1, 3), 1, 2) //1 to 6 carp, alone or in pairs
+
+/datum/event/carp_migration/proc/spawn_fish(var/num_groups, var/group_size_min=3, var/group_size_max=5)
+ var/list/spawn_locations = list()
+
for(var/obj/effect/landmark/C in landmarks_list)
if(C.name == "carpspawn")
- if(prob(95))
- new /mob/living/simple_animal/hostile/carp(C.loc)
- else
- new /mob/living/simple_animal/hostile/carp/megacarp(C.loc)
+ spawn_locations.Add(C.loc)
+ spawn_locations = shuffle(spawn_locations)
+ num_groups = min(num_groups, spawn_locations.len)
+
+ var/i = 1
+ while (i <= num_groups)
+ var/group_size = rand(group_size_min, group_size_max)
+ for (var/j = 1, j <= group_size, j++)
+ var/carptype = /mob/living/simple_animal/hostile/carp
+ if(prob(5))
+ carptype = /mob/living/simple_animal/hostile/carp/megacarp
+ spawned_carp.Add(new carptype(spawn_locations[i]))
+ i++
/datum/event/carp_migration/end()
for(var/mob/living/simple_animal/hostile/carp/C in spawned_carp)
diff --git a/code/modules/events/clang.dm b/code/modules/events/clang.dm
deleted file mode 100644
index 3f2117d6a8b..00000000000
--- a/code/modules/events/clang.dm
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-Immovable rod random event.
-The rod will spawn at some location outside the station, and travel in a straight line to the opposite side of the station
-Everything solid in the way will be ex_act()'d
-In my current plan for it, 'solid' will be defined as anything with density == 1
-
---NEOFite
-*/
-
-/obj/effect/immovablerod
- name = "Immovable Rod"
- desc = "What the fuck is that?"
- icon = 'icons/obj/objects.dmi'
- icon_state = "immrod"
- throwforce = 100
- density = 1
- anchored = 1
-
- Bump(atom/clong)
- if(istype(clong, /turf/simulated/shuttle)) //Skip shuttles without actually deleting the rod
- return
-
- else if (istype(clong, /turf) && !istype(clong, /turf/unsimulated))
- if(clong.density)
- clong.ex_act(2)
- for (var/mob/O in hearers(src, null))
- O.show_message("CLANG", 2)
-
- else if (istype(clong, /obj))
- if(clong.density)
- clong.ex_act(2)
- for (var/mob/O in hearers(src, null))
- O.show_message("CLANG", 2)
-
- else if (istype(clong, /mob))
- if(clong.density || prob(10))
- clong.ex_act(2)
- else
- qdel(src)
-
- if(clong && prob(25))
- src.loc = clong.loc
-
-/proc/immovablerod()
- var/startx = 0
- var/starty = 0
- var/endy = 0
- var/endx = 0
- var/startside = pick(cardinal)
-
- switch(startside)
- if(NORTH)
- starty = 187
- startx = rand(41, 199)
- endy = 38
- endx = rand(41, 199)
- if(EAST)
- starty = rand(38, 187)
- startx = 199
- endy = rand(38, 187)
- endx = 41
- if(SOUTH)
- starty = 38
- startx = rand(41, 199)
- endy = 187
- endx = rand(41, 199)
- if(WEST)
- starty = rand(38, 187)
- startx = 41
- endy = rand(38, 187)
- endx = 199
-
- //rod time!
- var/obj/effect/immovablerod/immrod = new /obj/effect/immovablerod(locate(startx, starty, 1))
-// world << "Rod in play, starting at [start.loc.x],[start.loc.y] and going to [end.loc.x],[end.loc.y]"
- var/end = locate(endx, endy, 1)
- spawn(0)
- walk_towards(immrod, end,1)
- sleep(1)
- while (immrod)
- if ((immrod.z in config.station_levels))
- immrod.z = 1
- if(immrod.loc == end)
- qdel(immrod)
- sleep(10)
- for(var/obj/effect/immovablerod/imm in world)
- return
- sleep(50)
- command_announcement.Announce("What the fuck was that?!", "General Alert")
\ No newline at end of file
diff --git a/code/modules/events/comms_blackout.dm b/code/modules/events/comms_blackout.dm
deleted file mode 100644
index 6b948538d5d..00000000000
--- a/code/modules/events/comms_blackout.dm
+++ /dev/null
@@ -1,10 +0,0 @@
-/proc/communications_blackout(var/silent = 1)
- if(!silent)
- command_announcement.Announce("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT")
- else // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms
- for(var/mob/living/silicon/ai/A in player_list)
- A << "
"
- A << "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT"
- A << "
"
- for(var/obj/machinery/telecomms/T in telecomms_list)
- T.emp_act(1)
diff --git a/code/modules/events/communications_blackout.dm b/code/modules/events/communications_blackout.dm
index d39517f5343..3ec9b6d2e46 100644
--- a/code/modules/events/communications_blackout.dm
+++ b/code/modules/events/communications_blackout.dm
@@ -17,3 +17,14 @@
/datum/event/communications_blackout/start()
for(var/obj/machinery/telecomms/T in telecomms_list)
T.emp_act(1)
+
+/proc/communications_blackout(var/silent = 1)
+ if(!silent)
+ command_announcement.Announce("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT", new_sound = 'sound/misc/interference.ogg')
+ else // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms
+ for(var/mob/living/silicon/ai/A in player_list)
+ A << "
"
+ A << "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT"
+ A << "
"
+ for(var/obj/machinery/telecomms/T in telecomms_list)
+ T.emp_act(1)
diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm
index bfb7c50f8ba..5a1c647bd32 100644
--- a/code/modules/events/dust.dm
+++ b/code/modules/events/dust.dm
@@ -67,7 +67,6 @@
walk_towards(src, goal, 1)
return
-
/obj/effect/space_dust/Bump(atom/A)
spawn(0)
if(prob(50))
@@ -90,12 +89,10 @@
return 0
return
-
/obj/effect/space_dust/Bumped(atom/A)
Bump(A)
return
-
/obj/effect/space_dust/ex_act(severity)
qdel(src)
return
diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm
index a8254d02c7a..c0ef182571b 100644
--- a/code/modules/events/electrical_storm.dm
+++ b/code/modules/events/electrical_storm.dm
@@ -23,4 +23,5 @@
for(var/obj/effect/landmark/epicentre in epicentreList)
for(var/obj/machinery/power/apc/apc in range(epicentre,lightsoutRange))
- apc.overload_lighting()
\ No newline at end of file
+ apc.overload_lighting()
+
\ No newline at end of file
diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm
index ed9b3f59dc6..9eb6e4728b6 100644
--- a/code/modules/events/event_container.dm
+++ b/code/modules/events/event_container.dm
@@ -133,7 +133,6 @@ var/list/event_last_fired = list()
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Mundane News", /datum/event/mundane_news, 300),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 100, list(ASSIGNMENT_JANITOR = 100)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30, ASSIGNMENT_GARDENER = 50)),
- // NON-BAY EVENTS
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Cargo Bonus", /datum/event/cargo_bonus, 100)
)
diff --git a/code/modules/events/false_alarm.dm b/code/modules/events/false_alarm.dm
index b91ceeebfbf..e63805d6a1d 100644
--- a/code/modules/events/false_alarm.dm
+++ b/code/modules/events/false_alarm.dm
@@ -3,7 +3,7 @@
endWhen = 1
/datum/event/falsealarm/announce()
- var/weight = pick(EVENT_LEVEL_MUNDANE,EVENT_LEVEL_MUNDANE,EVENT_LEVEL_MUNDANE,EVENT_LEVEL_MODERATE,EVENT_LEVEL_MODERATE,EVENT_LEVEL_MAJOR)
+ var/weight = pickweight(list(EVENT_LEVEL_MUNDANE = 60, EVENT_LEVEL_MODERATE = 30, EVENT_LEVEL_MAJOR = 10))
var/datum/event_container/container = event_manager.event_containers[weight]
var/datum/event/E = container.acquire_event()
var/datum/event/Event = new E
diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm
index cdfdde48afc..eb2007944dd 100644
--- a/code/modules/events/immovable_rod.dm
+++ b/code/modules/events/immovable_rod.dm
@@ -7,7 +7,6 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
--NEOFite
*/
-
/datum/event/immovable_rod
announceWhen = 5
@@ -15,37 +14,10 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
command_announcement.Announce("What the fuck was that?!", "General Alert")
/datum/event/immovable_rod/start()
- var/startx = 0
- var/starty = 0
- var/endy = 0
- var/endx = 0
var/startside = pick(cardinal)
-
- switch(startside)
- if(NORTH)
- starty = 187
- startx = rand(41, 199)
- endy = 38
- endx = rand(41, 199)
- if(EAST)
- starty = rand(38, 187)
- startx = 199
- endy = rand(38, 187)
- endx = 41
- if(SOUTH)
- starty = 38
- startx = rand(41, 199)
- endy = 187
- endx = rand(41, 199)
- else
- starty = rand(38, 187)
- startx = 41
- endy = rand(38, 187)
- endx = 199
-
- //rod time!
- new /obj/effect/immovablerod(locate(startx, starty, 1), locate(endx, endy, 1))
-
+ var/turf/startT = spaceDebrisStartLoc(startside, 1)
+ var/turf/endT = spaceDebrisFinishLoc(startside, 1)
+ new /obj/effect/immovablerod(startT, endT)
/obj/effect/immovablerod
name = "Immovable Rod"
@@ -58,36 +30,39 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
var/z_original = 0
var/destination
- New(atom/start, atom/end)
- loc = start
- z_original = z
- destination = end
- if(end && end.z==z_original)
- walk_towards(src, destination, 1)
+/obj/effect/immovablerod/New(atom/start, atom/end)
+ loc = start
+ z_original = z
+ destination = end
+ if(end && end.z==z_original)
+ walk_towards(src, destination, 1)
- Move()
- if(z != z_original || loc == destination)
- spawn(0) qdel(src)
- return ..()
+/obj/effect/immovablerod/Move()
+ if(z != z_original || loc == destination)
+ qdel(src)
+ return ..()
- Bump(atom/clong)
- if (istype(clong, /turf) && !istype(clong, /turf/unsimulated))
- if(clong.density)
- clong.ex_act(2)
- for (var/mob/O in hearers(src, null))
- O.show_message("CLANG", 2)
+/obj/effect/immovablerod/ex_act(test)
+ return 0
- else if (istype(clong, /obj))
- if(clong.density)
- clong.ex_act(2)
- for (var/mob/O in hearers(src, null))
- O.show_message("CLANG", 2)
+/obj/effect/immovablerod/Bump(atom/clong)
+ if(prob(10))
+ playsound(src, 'sound/effects/bang.ogg', 50, 1)
+ audible_message("CLANG")
- else if (istype(clong, /mob))
- if(clong.density || prob(10))
- clong.ex_act(2)
- else
- qdel(src)
+ if(clong && prob(25))
+ x = clong.x
+ y = clong.y
- if(clong && prob(25))
- src.loc = clong.loc
+ if (istype(clong, /turf) || istype(clong, /obj))
+ if(clong.density)
+ clong.ex_act(2)
+
+ else if (istype(clong, /mob))
+ if(istype(clong, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = clong
+ H.visible_message("[H.name] is penetrated by an immovable rod!" , "The rod penetrates you!" , "You hear a CLANG!")
+ H.adjustBruteLoss(160)
+ if(clong.density || prob(10))
+ clong.ex_act(2)
+ return
diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm
index ffb6909aec2..0ed99cb5698 100644
--- a/code/modules/events/mass_hallucination.dm
+++ b/code/modules/events/mass_hallucination.dm
@@ -2,8 +2,11 @@
announceWhen = rand(0, 20)
/datum/event/mass_hallucination/start()
- for(var/mob/living/carbon/human/C in living_mob_list)
- if(!(C.species.flags & NO_DNA_RAD))
- C.hallucination += rand(50, 100)
+ for(var/mob/living/carbon/human/H in living_mob_list)
+ var/armor = H.getarmor(attack_flag = "rad")
+ if((H.species.flags & NO_DNA_RAD) || armor >= 75) // Leave DNA-less species/rad armored players completely unaffected
+ continue
+ H.hallucination += rand(50, 100)
+
/datum/event/mass_hallucination/announce()
command_announcement.Announce("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucination, but no further damage")
\ No newline at end of file
diff --git a/code/modules/events/meaty_ores.dm b/code/modules/events/meaty_ores.dm
index 0694b932a2c..d13a1b9ad34 100644
--- a/code/modules/events/meaty_ores.dm
+++ b/code/modules/events/meaty_ores.dm
@@ -2,7 +2,7 @@
if(prob(16))
command_announcement.Announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert")
else
- command_announcement.Announce("Meaty ores have been detected on collision course with the station.", "Meaty Ore Alert",new_sound = 'sound/AI/meteors.ogg')
+ command_announcement.Announce("Meaty ores have been detected on collision course with the station.", "Meaty Ore Alert", new_sound = 'sound/AI/meteors.ogg')
/datum/event/dust/meaty/setup()
qnty = rand(45,125)
@@ -20,34 +20,34 @@
strength = 1
life = 3
- Bump(atom/A)
- if(prob(20))
- spawn(1)
- for(var/mob/M in range(10, src))
- if(!M.stat && !istype(M, /mob/living/silicon/ai))
- shake_camera(M, 3, 1)
- if (A)
- playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, 1)
- walk(src,0)
- invisibility = 101
- new /obj/effect/decal/cleanable/blood(get_turf(A))
- if(ismob(A))
- A.ex_act(strength)
+/obj/effect/space_dust/meaty/Bump(atom/A)
+ if(prob(20))
+ spawn(1)
+ for(var/mob/M in range(10, src))
+ if(!M.stat && !istype(M, /mob/living/silicon/ai))
+ shake_camera(M, 3, 1)
+ if (A)
+ playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, 1)
+ walk(src,0)
+ invisibility = 101
+ new /obj/effect/decal/cleanable/blood(get_turf(A))
+ if(ismob(A))
+ A.ex_act(strength)
+ else
+ spawn(0)
+ if(A)
+ A.ex_act(strength)
+ if(src)
+ walk_towards(src,goal,1)
+ life--
+ if(!life)
+ if(prob(80))
+ gibs(loc)
+ if(prob(45))
+ new /obj/item/weapon/reagent_containers/food/snacks/meat(loc)
+ else if(prob(10))
+ explosion(get_turf(loc), 0, pick(0,1), pick(2,3), 0)
else
- spawn(0)
- if(A)
- A.ex_act(strength)
- if(src)
- walk_towards(src,goal,1)
- life--
- if(!life)
- if(prob(80))
- gibs(loc)
- if(prob(45))
- new /obj/item/weapon/reagent_containers/food/snacks/meat(loc)
- else if(prob(10))
- explosion(get_turf(loc), 0, pick(0,1), pick(2,3), 0)
- else
- new /mob/living/simple_animal/cow(loc)
+ new /mob/living/simple_animal/cow(loc)
- qdel(src)
\ No newline at end of file
+ qdel(src)
\ No newline at end of file
diff --git a/code/modules/events/power_failure.dm b/code/modules/events/power_failure.dm
index 70c3619494d..aac2c68ca1e 100644
--- a/code/modules/events/power_failure.dm
+++ b/code/modules/events/power_failure.dm
@@ -1,4 +1,3 @@
-
/proc/power_failure(var/announce = 1)
if(announce)
command_announcement.Announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", new_sound = 'sound/AI/poweroff.ogg')
@@ -19,7 +18,6 @@
S.update_icon()
S.power_change()
-
for(var/obj/machinery/power/apc/C in world)
var/area/current_area = get_area(C)
if(current_area.type in skipped_areas_apc || !(C.z in config.station_levels))
@@ -50,7 +48,6 @@
S.power_change()
/proc/power_restore_quick(var/announce = 1)
-
if(announce)
command_announcement.Announce("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg')
for(var/obj/machinery/power/smes/S in machines)
diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm
index 3bae54d75ac..b1a6c522081 100644
--- a/code/modules/events/prison_break.dm
+++ b/code/modules/events/prison_break.dm
@@ -39,7 +39,6 @@
if(areas && areas.len > 0)
command_announcement.Announce("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] [(eventDept == "Security")? "imprisonment":"containment"] subroutines. Secure any compromised areas immediately. Station AI involvement is recommended.", "[eventDept] Alert")
-
/datum/event/prison_break/start()
for(var/area/A in world)
if(is_type_in_list(A,areaType) && !is_type_in_list(A,areaNotType))
@@ -57,7 +56,6 @@
log_to_dd("ERROR: Could not initate grey-tide. Unable to find suitable containment area.")
kill()
-
/datum/event/prison_break/tick()
if(activeFor == releaseWhen)
if(areas && areas.len > 0)
@@ -65,7 +63,6 @@
for(var/obj/machinery/light/L in A)
L.flicker(10)
-
/datum/event/prison_break/end()
for(var/area/A in shuffle(areas))
A.prison_break()
diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm
index 021e266d917..9562e51c385 100644
--- a/code/modules/events/radiation_storm.dm
+++ b/code/modules/events/radiation_storm.dm
@@ -19,7 +19,6 @@
return 1
return 0
-
/datum/event/radiation_storm/start()
spawn()
command_announcement.Announce("High levels of radiation detected near the station. Please evacuate into one of the shielded maintenance tunnels.", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg')
@@ -31,10 +30,8 @@
make_maint_all_access()
-
sleep(600)
-
command_announcement.Announce("The station has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert")
for(var/i = 0, i < 10, i++)
@@ -61,7 +58,6 @@
sleep(100)
-
command_announcement.Announce("The station has passed the radiation belt. Please report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert")
for(var/area/A in world)
@@ -71,5 +67,4 @@
sleep(600) // Want to give them time to get out of maintenance.
-
revoke_maint_all_access()
diff --git a/code/modules/events/rogue_drones.dm b/code/modules/events/rogue_drones.dm
index 92619024056..4a95bae0fe1 100644
--- a/code/modules/events/rogue_drones.dm
+++ b/code/modules/events/rogue_drones.dm
@@ -32,7 +32,6 @@
msg = "Unidentified hackers have targetted a combat drone wing deployed from the NMV Icarus. If any are sighted in the area, approach with caution."
command_announcement.Announce(msg, "Rogue drone alert")
-
/datum/event/rogue_drone/tick()
return
diff --git a/code/modules/events/slaughterevent.dm b/code/modules/events/slaughterevent.dm
index 7b39f035010..c0f1ae75184 100644
--- a/code/modules/events/slaughterevent.dm
+++ b/code/modules/events/slaughterevent.dm
@@ -1,9 +1,6 @@
-
/datum/event/spawn_slaughter
var/key_of_slaughter
-
-
/datum/event/spawn_slaughter/proc/get_slaughter(var/end_if_fail = 0)
key_of_slaughter = null
if(!key_of_slaughter)
@@ -46,13 +43,9 @@
log_game("[key_of_slaughter] was spawned as a Slaughter Demon by an event.")
return 1
-
-
/datum/event/spawn_slaughter/start()
get_slaughter()
-
-
/datum/event/spawn_slaughter/proc/find_slaughter()
message_admins("Attempted to spawn a Slaughter Demon but there was no players available. Will try again momentarily.")
spawn(50)
@@ -61,4 +54,5 @@
log_game("[key_of_slaughter] was spawned as a Slaughter Demon by an event.")
return 0
message_admins("Unfortunately, no candidates were available for becoming a Slaugter Demon. Shutting down.")
- kill()
\ No newline at end of file
+ kill()
+
\ No newline at end of file
diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm
index 97ea26ed395..844ba0a5bbc 100644
--- a/code/modules/events/spider_infestation.dm
+++ b/code/modules/events/spider_infestation.dm
@@ -2,10 +2,8 @@
/datum/event/spider_infestation
announceWhen = 400
-
var/spawncount = 1
-
/datum/event/spider_infestation/setup()
announceWhen = rand(announceWhen, announceWhen + 50)
spawncount = round(num_players() * 0.8)
diff --git a/code/modules/events/tear.dm b/code/modules/events/tear.dm
index 718b86edeed..605c6d1705d 100644
--- a/code/modules/events/tear.dm
+++ b/code/modules/events/tear.dm
@@ -7,13 +7,11 @@
/datum/event/tear/announce()
command_announcement.Announce("A tear in the fabric of space and time has opened. Expected location: [impact_area.name].", "Anomaly Alert")
-
/datum/event/tear/start()
var/turf/T = pick(get_area_turfs(impact_area))
if(T)
TE = new /obj/effect/tear(T.loc)
-
/datum/event/tear/setup()
impact_area = findEventArea()
@@ -42,7 +40,6 @@
spawn(15)
if(animation) qdel(animation)
-
spawn(rand(30,120))
var/blocked = blocked_mobs //global variable for blocked mobs
diff --git a/code/modules/events/undead.dm b/code/modules/events/undead.dm
index 84c1c0bb1b1..c6aa04ba00f 100644
--- a/code/modules/events/undead.dm
+++ b/code/modules/events/undead.dm
@@ -2,37 +2,39 @@
var/spawn_prob = 10
startWhen = 2
announceWhen = 3
- start()
- var/datum/event/electrical_storm/RS = new
- RS.lightsoutAmount = pick(2,2,3)
- RS.start()
- RS.kill()
- for(var/area/A)
- if(!(A.z in config.station_levels)) continue //Spook on main station only.
- if(A.luminosity) continue
+
+/datum/event/undead/start()
+ var/datum/event/electrical_storm/RS = new
+ RS.lightsoutAmount = pick(2,2,3)
+ RS.start()
+ RS.kill()
+ for(var/area/A)
+ if(!(A.z in config.station_levels)) continue //Spook on main station only.
+ if(A.luminosity) continue
// if(A.lighting_space) continue
- if(A.type == /area) continue
- var/list/turflist = list()
- for(var/turf/T in A)
- if(istype(T,/turf/space) || T.density) continue
- if(locate(/mob/living) in T) continue
- var/okay = 1
- for(var/obj/O in T)
- if(O.density)
- okay = 0
- break
- if(okay)
- turflist += T
+ if(A.type == /area) continue
+ var/list/turflist = list()
+ for(var/turf/T in A)
+ if(istype(T,/turf/space) || T.density) continue
+ if(locate(/mob/living) in T) continue
+ var/okay = 1
+ for(var/obj/O in T)
+ if(O.density)
+ okay = 0
+ break
+ if(okay)
+ turflist += T
- if(!turflist.len) continue
- var/turfs = round(turflist.len * spawn_prob/100,1)
- while(turfs > 0 && turflist.len) // safety
- turfs--
- var/turf/T = pick_n_take(turflist)
- var/undeadtype = pick(/mob/living/simple_animal/hostile/retaliate/skeleton,
- 80;/mob/living/simple_animal/hostile/retaliate/zombie,
- 60;/mob/living/simple_animal/hostile/retaliate/ghost)
- new undeadtype(T)
- announce()
- for(var/mob/living/M in player_list)
- M << "You feel [pick("a chill","a deathly chill","the undead","dirty", "creeped out","afraid","fear")]!"
+ if(!turflist.len) continue
+ var/turfs = round(turflist.len * spawn_prob/100,1)
+ while(turfs > 0 && turflist.len) // safety
+ turfs--
+ var/turf/T = pick_n_take(turflist)
+ var/undeadtype = pick(/mob/living/simple_animal/hostile/retaliate/skeleton,
+ 80;/mob/living/simple_animal/hostile/retaliate/zombie,
+ 60;/mob/living/simple_animal/hostile/retaliate/ghost)
+ new undeadtype(T)
+
+/datum/event/undead/announce()
+ for(var/mob/living/M in player_list)
+ M << "You feel [pick("a chill","a deathly chill","the undead","dirty", "creeped out","afraid","fear")]!"
diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm
index 092bc544484..108e8304a9e 100644
--- a/code/modules/events/vent_clog.dm
+++ b/code/modules/events/vent_clog.dm
@@ -8,7 +8,6 @@
/datum/event/vent_clog/announce()
command_announcement.Announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert")
-
/datum/event/vent_clog/setup()
endWhen = rand(25, 100)
for(var/obj/machinery/atmospherics/unary/vent_scrubber/temp_vent in machines)
diff --git a/code/modules/events/viral_infection.dm b/code/modules/events/viral_infection.dm
index 9ee3a47077a..456ca576d38 100644
--- a/code/modules/events/viral_infection.dm
+++ b/code/modules/events/viral_infection.dm
@@ -1,16 +1,15 @@
-
-datum/event/viral_infection
+/datum/event/viral_infection
severity = 1
-datum/event/viral_infection/setup()
+/datum/event/viral_infection/setup()
announceWhen = rand(0, 3000)
endWhen = announceWhen + 1
severity = rand(1, 3)
-datum/event/viral_infection/announce()
+/datum/event/viral_infection/announce()
command_announcement.Announce("Confirmed outbreak of level five viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak5.ogg')
-datum/event/viral_infection/start()
+/datum/event/viral_infection/start()
var/list/candidates = list() //list of candidate keys
for(var/mob/living/carbon/human/G in player_list)
if(G.client && G.stat != DEAD)
diff --git a/code/modules/events/viral_outbreak.dm b/code/modules/events/viral_outbreak.dm
index 9e139f5742b..605f73cddf4 100644
--- a/code/modules/events/viral_outbreak.dm
+++ b/code/modules/events/viral_outbreak.dm
@@ -1,16 +1,15 @@
-
-datum/event/viral_outbreak
+/datum/event/viral_outbreak
severity = 1
-datum/event/viral_outbreak/setup()
+/datum/event/viral_outbreak/setup()
announceWhen = rand(0, 3000)
endWhen = announceWhen + 1
severity = rand(2, 4)
-datum/event/viral_outbreak/announce()
+/datum/event/viral_outbreak/announce()
command_announcement.Announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg')
-datum/event/viral_outbreak/start()
+/datum/event/viral_outbreak/start()
var/list/candidates = list() //list of candidate keys
for(var/mob/living/carbon/human/G in player_list)
if(G.client && G.stat != DEAD)
diff --git a/code/modules/events/wallrot.dm b/code/modules/events/wallrot.dm
index b36f7f93760..a246345b632 100644
--- a/code/modules/events/wallrot.dm
+++ b/code/modules/events/wallrot.dm
@@ -1,11 +1,11 @@
-datum/event/wallrot/setup()
+/datum/event/wallrot/setup()
announceWhen = rand(0, 300)
endWhen = announceWhen + 1
-datum/event/wallrot/announce()
+/datum/event/wallrot/announce()
command_announcement.Announce("Harmful fungi detected on station. Station structures may be contaminated.", "Biohazard Alert")
-datum/event/wallrot/start()
+/datum/event/wallrot/start()
spawn()
var/turf/simulated/wall/center = null
diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm
index d4ed8c17e81..f946d2a7147 100644
--- a/code/modules/hydroponics/spreading/spreading.dm
+++ b/code/modules/hydroponics/spreading/spreading.dm
@@ -7,7 +7,7 @@
for(var/areapath in typesof(/area/hallway))
var/area/A = locate(areapath)
for(var/turf/simulated/floor/F in A.contents)
- if(!F.contents.len)
+ if(!F.contents.len <= 1) // Floors always have a lighting overlay
turfs += F
if(turfs.len) //Pick a turf to spawn at if we can
diff --git a/code/modules/events/black_hole.dm b/code/modules/power/antimatter/black_hole.dm
similarity index 100%
rename from code/modules/events/black_hole.dm
rename to code/modules/power/antimatter/black_hole.dm
diff --git a/paradise.dme b/paradise.dme
index 1a0866a852c..5e1dea34d7a 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1115,15 +1115,11 @@
#include "code\modules\events\anomaly_grav.dm"
#include "code\modules\events\anomaly_pyro.dm"
#include "code\modules\events\anomaly_vortex.dm"
-#include "code\modules\events\biomass.dm"
-#include "code\modules\events\black_hole.dm"
#include "code\modules\events\blob.dm"
#include "code\modules\events\borers.dm"
#include "code\modules\events\brand_intelligence.dm"
#include "code\modules\events\cargobonus.dm"
#include "code\modules\events\carp_migration.dm"
-#include "code\modules\events\clang.dm"
-#include "code\modules\events\comms_blackout.dm"
#include "code\modules\events\communications_blackout.dm"
#include "code\modules\events\dust.dm"
#include "code\modules\events\electrical_storm.dm"