From 66ce65a68020ed04708ca7575d265ccb0dd1ed8b Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Mon, 21 Jan 2013 19:15:38 +1000 Subject: [PATCH] minor tweaks and cleanup with events, readded meteor shower and grid check events, removed most unused event files (left some interesting ones) Signed-off-by: Cael_Aislinn --- code/game/gamemodes/events.dm | 36 ++++++-- code/game/gamemodes/events/BlowOut.dm | 32 ------- code/game/gamemodes/events/ElectricalStorm.dm | 88 ------------------- .../gamemodes/events/GravitationalAnomaly.dm | 10 --- code/game/gamemodes/events/ImmovableRod.dm | 5 -- code/game/gamemodes/events/MeteorStorm.dm | 11 --- code/game/gamemodes/events/PowerOffline.dm | 16 ---- code/game/gamemodes/events/PrisonBreak.dm | 30 ------- code/game/gamemodes/events/RadiationBelt.dm | 27 ------ code/game/gamemodes/events/SpaceCarp.dm | 14 --- code/game/gamemodes/events/SpaceNinja.dm | 6 -- code/game/gamemodes/traitor/traitor_info.dm | 7 -- 12 files changed, 30 insertions(+), 252 deletions(-) delete mode 100644 code/game/gamemodes/events/BlowOut.dm delete mode 100644 code/game/gamemodes/events/ElectricalStorm.dm delete mode 100644 code/game/gamemodes/events/GravitationalAnomaly.dm delete mode 100644 code/game/gamemodes/events/ImmovableRod.dm delete mode 100644 code/game/gamemodes/events/MeteorStorm.dm delete mode 100644 code/game/gamemodes/events/PowerOffline.dm delete mode 100644 code/game/gamemodes/events/PrisonBreak.dm delete mode 100644 code/game/gamemodes/events/RadiationBelt.dm delete mode 100644 code/game/gamemodes/events/SpaceCarp.dm delete mode 100644 code/game/gamemodes/events/SpaceNinja.dm delete mode 100644 code/game/gamemodes/traitor/traitor_info.dm diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index f4d89d1f7b7..c705df2f79d 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -46,13 +46,15 @@ possibleEvents["Meteor"] = 80 * engineer_count possibleEvents["Blob"] = 30 * engineer_count possibleEvents["Spacevine"] = 30 * engineer_count + possibleEvents["Grid Check"] = 10 * engineer_count if(medical_count >= 1) possibleEvents["Radiation"] = medical_count * 100 possibleEvents["Virus"] = medical_count * 50 possibleEvents["Appendicitis"] = medical_count * 50 if(security_count >= 1) possibleEvents["Prison Break"] = security_count * 50 - //possibleEvents["Space Ninja"] = security_count * 10 // very low chance for space ninja event + /*if((world.time/10)>=3600 && toggle_space_ninja && !sent_ninja_to_station) + possibleEvents["Space Ninja"] = security_count * 10*/ var/picked_event = pick(possibleEvents) var/chance = possibleEvents[picked_event] @@ -79,8 +81,7 @@ switch(picked_event) if("Space Ninja") //Handled in space_ninja.dm. Doesn't announce arrival, all sneaky-like. - if((world.time/10)>=3600 && toggle_space_ninja && !sent_ninja_to_station) - space_ninja_arrival() + space_ninja_arrival() if("Radiation") high_radiation_event() if("Virus") @@ -101,6 +102,10 @@ spacevine_infestation() if("Communications") communications_blackout() + if("Grid Check") + grid_check() + if("Meteor") + meteor_shower() return 1 @@ -116,8 +121,9 @@ for(var/obj/machinery/telecomms/T in telecomms_list) T.emp_act(1) -/proc/power_failure() - command_alert("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") +/proc/power_failure(var/is_grid_check = 0) + command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", is_grid_check ? "Automated Grid Check" : "Critical Power Failure") + for(var/mob/M in player_list) M << sound('sound/AI/poweroff.ogg') for(var/obj/machinery/power/smes/S in world) @@ -577,10 +583,28 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is world << "Ion Storm Main Done" */ +/proc/meteor_shower() + command_alert("The station is now in a meteor shower", "Meteor Alert") + + spawn(0) + var/waves = rand(1,4) + while(waves > 0) + sleep(rand(20,100)) + spawn_meteors(rand(1,3)) + waves-- + + command_alert("The station has cleared the meteor shower", "Meteor Alert") + +/proc/grid_check() + spawn(0) + power_failure(1) + sleep(rand(100,600)) + power_restore() + // Returns how many characters are currently active(not logged out, not AFK for more than 10 minutes) // with a specific role. // Note that this isn't sorted by department, because e.g. having a roboticist shouldn't make meteors spawn. -proc/number_active_with_role(role) +/proc/number_active_with_role(role) var/count = 0 for(var/mob/M in player_list) if(!M.client || M.client.inactivity > 10 * 10 * 60) // longer than 10 minutes AFK counts them as inactive diff --git a/code/game/gamemodes/events/BlowOut.dm b/code/game/gamemodes/events/BlowOut.dm deleted file mode 100644 index 1d660989d96..00000000000 --- a/code/game/gamemodes/events/BlowOut.dm +++ /dev/null @@ -1,32 +0,0 @@ -/area/var/radsafe = 0 -/area/maintenance/radsafe = 1 -/area/ai_monitored/maintenance/radsafe = 1 -/area/centcom/radsafe = 1 -/area/admin/radsafe = 1 -/area/adminsafety/radsafe = 1 -/area/shuttle/radsafe = 1 -/area/syndicate_station/radsafe = 1 -/area/asteroid/radsafe = 1 -/area/crew_quarters/sleeping/radsafe = 1 - -/datum/event/blowout - Lifetime = 150 - Announce() - if(!forced && prob(90)) - ActiveEvent = null - SpawnEvent() - del src - return - command_alert("Warning: station approaching high-density radiation cloud. Seek cover immediately.") - Tick() - if(ActiveFor == 50) - command_alert("Station has entered radiation cloud. Do not leave cover until it has passed.") - if(ActiveFor == 100 || ActiveFor == 150) //1/2 and 2/2 f the way after it start proper make peope be half dead mostly - for(var/mob/living/carbon/M in world) - var/area = get_area(M) - if(area:radsafe) - continue - if(!M.stat) - M.radiate(100) - Die() - command_alert("The station has cleared the radiation cloud. It is now safe to leave cover.") \ No newline at end of file diff --git a/code/game/gamemodes/events/ElectricalStorm.dm b/code/game/gamemodes/events/ElectricalStorm.dm deleted file mode 100644 index 58d42c23d01..00000000000 --- a/code/game/gamemodes/events/ElectricalStorm.dm +++ /dev/null @@ -1,88 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:04 - -/datum/event/electricalstorm - var/list/obj/machinery/light/Lights = list( ) - var/list/obj/machinery/light/APCs = list( ) - var/list/obj/machinery/light/Doors = list( ) - var/list/obj/machinery/light/Comms = list( ) - - Announce() -// command_alert("The station is flying through an electrical storm. Radio communications may be disrupted", "Anomaly Alert") - - for(var/obj/machinery/light/Light in world) - if(Light.z == 1 && Light.status != 0) - Lights += Light - - for(var/obj/machinery/power/apc/APC in world) - if(APC.z == 1 && !APC.crit) - APCs += APC - - for(var/obj/machinery/door/airlock/Door in world) - if(Door.z == 1 && !istype(Door,/obj/machinery/door/airlock/secure)) - Doors += Door - - for(var/obj/machinery/telecomms/processor/T in world) - if(prob(90) && !(T.stat & (BROKEN|NOPOWER))) - T.stat |= BROKEN - Comms |= T - - Tick() - for(var/x = 0; x < 3; x++) - if (prob(30)) - BlowLight() - if (prob(10)) - DisruptAPC() - if (prob(10)) - DisableDoor() - - - Die() - command_alert("The station has cleared the electrical storm. Radio communications restored", "Anomaly Alert") - for(var/obj/machinery/telecomms/processor/T in Comms) - T.stat &= ~BROKEN - Comms = list() - - proc - BlowLight() //Blow out a light fixture - var/obj/machinery/light/Light = null - var/failed_attempts = 0 - while (Light == null || Light.status != 0) - Light = pick(Lights) - failed_attempts++ - if (failed_attempts >= 10) - return - - spawn(0) //Overload the light, spectacularly. - //Light.sd_SetLuminosity(10) - //sleep(2) - Light.on = 1 - Light.broken() - Lights -= Light - - DisruptAPC() - var/failed_attempts = 0 - var/obj/machinery/power/apc/APC - while (!APC || !APC.operating) - APC = pick(APCs) - failed_attempts++ - if (failed_attempts >= 10) - return - - if (prob(40)) - APC.operating = 0 //Blow its breaker - if (prob(8)) - APC.set_broken() - APCs -= APC - - DisableDoor() - var/obj/machinery/door/airlock/Airlock - while (!Airlock || Airlock.z != 1) - Airlock = pick(Doors) - Airlock.pulse(airlockIndexToWireColor[4]) - for (var/x = 0; x < 2; x++) - var/Wire = 0 - while(!Wire || Wire == 4) - Wire = rand(1, 9) - Airlock.pulse(airlockIndexToWireColor[Wire]) - Airlock.update_icon() - Doors -= Airlock diff --git a/code/game/gamemodes/events/GravitationalAnomaly.dm b/code/game/gamemodes/events/GravitationalAnomaly.dm deleted file mode 100644 index 8b7d2186cf5..00000000000 --- a/code/game/gamemodes/events/GravitationalAnomaly.dm +++ /dev/null @@ -1,10 +0,0 @@ -/datum/event/gravitationalanomaly - - Announce() - - command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert") - world << sound('granomalies.ogg') - var/turf/T = pick(blobstart) - var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 ) - spawn(rand(50, 300)) - del(bh) diff --git a/code/game/gamemodes/events/ImmovableRod.dm b/code/game/gamemodes/events/ImmovableRod.dm deleted file mode 100644 index 27956c7e35c..00000000000 --- a/code/game/gamemodes/events/ImmovableRod.dm +++ /dev/null @@ -1,5 +0,0 @@ -/datum/event/immovablerod - - Announce() - - immovablerod() \ No newline at end of file diff --git a/code/game/gamemodes/events/MeteorStorm.dm b/code/game/gamemodes/events/MeteorStorm.dm deleted file mode 100644 index 10cb7ef6767..00000000000 --- a/code/game/gamemodes/events/MeteorStorm.dm +++ /dev/null @@ -1,11 +0,0 @@ -/datum/event/meteorstorm - - Announce() - command_alert("The station is now in a meteor shower", "Meteor Alert") - - Tick() - if (prob(20)) - meteor_wave() - - Die() - command_alert("The station has cleared the meteor shower", "Meteor Alert") \ No newline at end of file diff --git a/code/game/gamemodes/events/PowerOffline.dm b/code/game/gamemodes/events/PowerOffline.dm deleted file mode 100644 index c6e8a8b6574..00000000000 --- a/code/game/gamemodes/events/PowerOffline.dm +++ /dev/null @@ -1,16 +0,0 @@ -/datum/event/power_offline - Announce() - for(var/obj/machinery/power/apc/a in world) - if(!a.crit && a.z == 1) - if(istype(a.area, /area/ai_monitored/storage/eva) || istype(a.area, /area/engine)\ - || istype(a.area, /area/toxins/xenobiology) || istype(a.area, /area/turret_protected/ai)) - continue - a.eventoff = 1 - a.update() - - Die() - command_alert("The station has finished an automated power system grid check, thank you.", "Maintenance alert") - for(var/obj/machinery/power/apc/a in world) - if(!a.crit) - a.eventoff = 0 - a.update() \ No newline at end of file diff --git a/code/game/gamemodes/events/PrisonBreak.dm b/code/game/gamemodes/events/PrisonBreak.dm deleted file mode 100644 index e51c5c8e774..00000000000 --- a/code/game/gamemodes/events/PrisonBreak.dm +++ /dev/null @@ -1,30 +0,0 @@ -/datum/event/prisonbreak - - Announce() - - for (var/obj/machinery/power/apc/temp_apc in world) - if(istype(get_area(temp_apc), /area/security/prison)) - temp_apc.overload_lighting() - if(istype(get_area(temp_apc), /area/security/brig)) - temp_apc.overload_lighting() - // for (var/obj/machinery/computer/prison_shuttle/temp_shuttle in world) - // temp_shuttle.prison_break() - for (var/obj/structure/closet/secure_closet/brig/temp_closet in world) - if(istype(get_area(temp_closet), /area/security/prison)) - temp_closet.locked = 0 - temp_closet.icon_state = temp_closet.icon_closed - for (var/obj/machinery/door/airlock/security/temp_airlock in world) - if(istype(get_area(temp_airlock), /area/security/prison)) - temp_airlock.prison_open() - if(istype(get_area(temp_airlock), /area/security/brig)) - temp_airlock.prison_open() - for (var/obj/machinery/door/airlock/glass/glass_security/temp_glassairlock in world) - if(istype(get_area(temp_glassairlock), /area/security/prison)) - temp_glassairlock.prison_open() - if(istype(get_area(temp_glassairlock), /area/security/brig)) - temp_glassairlock.prison_open() - for (var/obj/machinery/door_timer/temp_timer in world) - if(istype(get_area(temp_timer), /area/security/brig)) - temp_timer.releasetime = 1 - sleep(150) - command_alert("Glitch in imprisonment subroutines detected on [station_name()]. Recommend station AI involvement.", "Security Alert") diff --git a/code/game/gamemodes/events/RadiationBelt.dm b/code/game/gamemodes/events/RadiationBelt.dm deleted file mode 100644 index 15a4e6407c8..00000000000 --- a/code/game/gamemodes/events/RadiationBelt.dm +++ /dev/null @@ -1,27 +0,0 @@ -/datum/event/radiation - var/current_iteration = 0 - - // 50 - 20 (grace period) seconds lifetime - Lifetime = 50 - Announce() - command_alert("The station is now travelling through a radiation belt. Take shelter in the maintenance tunnels, or in the crew quarters!", "Medical Alert") - - Tick() - current_iteration++ - - // start radiating after 20 seconds grace period - if(current_iteration > 20) - for(var/mob/living/carbon/L in world) - // check whether they're in a safe place - // if they are, do not radiate - var/turf/T = get_turf(L) - if(T && ( istype(T.loc, /area/maintenance) || istype(T.loc, /area/crew_quarters) )) - continue - - if (istype(L, /mob/living/carbon/monkey)) // So as to stop monkeys from dying in their pens - L.apply_effect(rand(3,4), IRRADIATE) - else - L.apply_effect(rand(4,10), IRRADIATE) - - Die() - command_alert("The station has cleared the radiation belt", "Medical Alert") diff --git a/code/game/gamemodes/events/SpaceCarp.dm b/code/game/gamemodes/events/SpaceCarp.dm deleted file mode 100644 index 5decc7636f1..00000000000 --- a/code/game/gamemodes/events/SpaceCarp.dm +++ /dev/null @@ -1,14 +0,0 @@ -/datum/event/spacecarp - - Announce() - - for(var/obj/effect/landmark/C in world) - if(C.name == "carpspawn") - if(prob(99)) - new /mob/living/simple_animal/carp(C.loc) - else - new /mob/living/simple_animal/carp/elite(C.loc) - //sleep(100) - spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes. - command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") - world << sound('commandreport.ogg') \ No newline at end of file diff --git a/code/game/gamemodes/events/SpaceNinja.dm b/code/game/gamemodes/events/SpaceNinja.dm deleted file mode 100644 index 63d82117072..00000000000 --- a/code/game/gamemodes/events/SpaceNinja.dm +++ /dev/null @@ -1,6 +0,0 @@ -/datum/event/spaceninja - - Announce() - - if((world.time/10)>=3600 && toggle_space_ninja && !sent_ninja_to_station)//If an hour has passed, relatively speaking. Also, if ninjas are allowed to spawn and if there is not already a ninja for the round. - space_ninja_arrival()//Handled in space_ninja.dm. Doesn't announce arrival, all sneaky-like. \ No newline at end of file diff --git a/code/game/gamemodes/traitor/traitor_info.dm b/code/game/gamemodes/traitor/traitor_info.dm deleted file mode 100644 index d3d4b1a47d4..00000000000 --- a/code/game/gamemodes/traitor/traitor_info.dm +++ /dev/null @@ -1,7 +0,0 @@ -/datum/traitorinfo - var/starting_objective = "" - var/starting_player_count = 0 - var/starting_occupation = "" - var/starting_name = "" - var/ckey = "" - var/list/spawnlist = list() \ No newline at end of file