From 34552f259c79088f5259a1f932ea7a513bc639ce Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 17 Sep 2015 21:34:51 +0200 Subject: [PATCH] Event updates --- code/game/gamemodes/events/PortalStorm.dm | 26 -- code/game/gamemodes/events/VirusEpidemic.dm | 79 ---- code/game/gamemodes/events/dust.dm | 122 ------ code/game/gamemodes/events/miniblob.dm | 28 -- code/game/gamemodes/events/spacevines.dm | 15 - code/game/gamemodes/events/wormholes.dm | 65 ---- code/modules/events/{tgevents => }/anomaly.dm | 0 .../{tgevents => }/anomaly_bluespace.dm | 0 .../events/{tgevents => }/anomaly_flux.dm | 0 .../events/{tgevents => }/anomaly_grav.dm | 0 .../events/{tgevents => }/anomaly_pyro.dm | 0 .../events/{tgevents => }/anomaly_vortex.dm | 0 .../gamemodes => modules}/events/biomass.dm | 358 ++++++++--------- .../events/black_hole.dm | 0 code/modules/events/brand_intelligence.dm | 63 +-- .../gamemodes => modules}/events/clang.dm | 0 code/modules/events/disease_outbreak.dm | 44 --- code/modules/events/dust.dm | 101 +++++ code/modules/events/event_container.dm | 4 +- .../events/{tgevents => }/false_alarm.dm | 0 .../events/holidays/AprilFools.dm | 0 .../events/holidays/Christmas.dm | 124 +++--- .../events/holidays/Easter.dm | 0 .../events/holidays/Holidays.dm | 364 +++++++++--------- .../events/{tgevents => }/immovable_rod.dm | 0 code/modules/events/mass_hallucination.dm | 7 +- .../events/{sayuevents => }/meaty_ores.dm | 0 .../events/power_failure.dm | 0 code/modules/events/spacevine.dm | 13 +- .../events/spontaneous_appendicitis.dm | 13 - .../events/tgevents/brand_intelligence.dm | 67 ---- code/modules/events/tgevents/dust.dm | 103 ----- .../events/tgevents/mass_hallucination.dm | 9 - .../modules/events/{sayuevents => }/undead.dm | 0 .../events/{tgevents => }/vent_clog.dm | 0 .../events/{sayuevents => }/wormholes.dm | 0 paradise.dme | 39 +- 37 files changed, 595 insertions(+), 1049 deletions(-) delete mode 100644 code/game/gamemodes/events/PortalStorm.dm delete mode 100644 code/game/gamemodes/events/VirusEpidemic.dm delete mode 100644 code/game/gamemodes/events/dust.dm delete mode 100644 code/game/gamemodes/events/miniblob.dm delete mode 100644 code/game/gamemodes/events/spacevines.dm delete mode 100644 code/game/gamemodes/events/wormholes.dm rename code/modules/events/{tgevents => }/anomaly.dm (100%) rename code/modules/events/{tgevents => }/anomaly_bluespace.dm (100%) rename code/modules/events/{tgevents => }/anomaly_flux.dm (100%) rename code/modules/events/{tgevents => }/anomaly_grav.dm (100%) rename code/modules/events/{tgevents => }/anomaly_pyro.dm (100%) rename code/modules/events/{tgevents => }/anomaly_vortex.dm (100%) rename code/{game/gamemodes => modules}/events/biomass.dm (96%) rename code/{game/gamemodes => modules}/events/black_hole.dm (100%) rename code/{game/gamemodes => modules}/events/clang.dm (100%) delete mode 100644 code/modules/events/disease_outbreak.dm create mode 100644 code/modules/events/dust.dm rename code/modules/events/{tgevents => }/false_alarm.dm (100%) rename code/{game/gamemodes => modules}/events/holidays/AprilFools.dm (100%) rename code/{game/gamemodes => modules}/events/holidays/Christmas.dm (97%) rename code/{game/gamemodes => modules}/events/holidays/Easter.dm (100%) rename code/{game/gamemodes => modules}/events/holidays/Holidays.dm (97%) rename code/modules/events/{tgevents => }/immovable_rod.dm (100%) rename code/modules/events/{sayuevents => }/meaty_ores.dm (100%) rename code/{game/gamemodes => modules}/events/power_failure.dm (100%) delete mode 100644 code/modules/events/spontaneous_appendicitis.dm delete mode 100644 code/modules/events/tgevents/brand_intelligence.dm delete mode 100644 code/modules/events/tgevents/dust.dm delete mode 100644 code/modules/events/tgevents/mass_hallucination.dm rename code/modules/events/{sayuevents => }/undead.dm (100%) rename code/modules/events/{tgevents => }/vent_clog.dm (100%) mode change 100755 => 100644 rename code/modules/events/{sayuevents => }/wormholes.dm (100%) diff --git a/code/game/gamemodes/events/PortalStorm.dm b/code/game/gamemodes/events/PortalStorm.dm deleted file mode 100644 index 1143a2d2e88..00000000000 --- a/code/game/gamemodes/events/PortalStorm.dm +++ /dev/null @@ -1,26 +0,0 @@ -/datum/event/portalstorm - - Announce() - command_announcement.Announce("Subspace disruption detected around the vessel", "Anomaly Alert") - LongTerm() - - var/list/turfs = list( ) - var/turf/picked - - for(var/turf/T in world) - if((T.z in config.player_levels) && istype(T,/turf/simulated/floor)) - turfs += T - - for(var/turf/T in world) - if(prob(10) && (T.z in config.player_levels) && istype(T,/turf/simulated/floor)) - spawn(50+rand(0,3000)) - picked = pick(turfs) - var/obj/portal/P = new /obj/portal( T ) - P.target = picked - P.creator = null - P.icon = 'icons/obj/objects.dmi' - P.failchance = 0 - P.icon_state = "anom" - P.name = "wormhole" - spawn(rand(100,150)) - del(P) \ No newline at end of file diff --git a/code/game/gamemodes/events/VirusEpidemic.dm b/code/game/gamemodes/events/VirusEpidemic.dm deleted file mode 100644 index f6e005cef10..00000000000 --- a/code/game/gamemodes/events/VirusEpidemic.dm +++ /dev/null @@ -1,79 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:04 - -/datum/event/viralinfection - var/virus_type - var/virus - var/virus2 = 0 - - Announce() - if(!virus) - for(var/mob/living/carbon/human/H in world) - if((H.virus2.len) || (H.stat == 2) || prob(30)) - continue - if(prob(100)) // no lethal diseases outside virus mode! - infect_mob_random_lesser(H) - if(prob(20))//don't want people to know that the virus alert = greater virus - command_announcement.Announce("Probable outbreak of level [rand(1,6)] viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Virus Alert") - else - infect_mob_random_greater(H) - if(prob(80)) - command_announcement.Announce("Probable outbreak of level [rand(2,9)] viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Virus Alert") - break - //overall virus alert happens 26% of the time, might need to be higher - else - if(!virus) - virus_type = pick(/datum/disease/dnaspread,/datum/disease/flu,/datum/disease/cold,/datum/disease/brainrot,/datum/disease/magnitis,/datum/disease/pierrot_throat) - else - switch(virus) - if("fake gbs") - virus_type = /datum/disease/fake_gbs - if("gbs") - virus_type = /datum/disease/gbs - if("magnitis") - virus_type = /datum/disease/magnitis - if("rhumba beat") - virus_type = /datum/disease/rhumba_beat - if("brain rot") - virus_type = /datum/disease/brainrot - if("cold") - virus_type = /datum/disease/cold - if("retrovirus") - virus_type = /datum/disease/dnaspread - if("flu") - virus_type = /datum/disease/flu -// if("t-virus") -// virus_type = /datum/disease/t_virus - if("pierrot's throat") - virus_type = /datum/disease/pierrot_throat - for(var/mob/living/carbon/human/H in world) - - var/foundAlready = 0 // don't infect someone that already has the virus - for(var/datum/disease/D in H.viruses) - foundAlready = 1 - if(H.stat == 2 || foundAlready) - continue - - if(virus_type == /datum/disease/dnaspread) //Dnaspread needs strain_data set to work. - if((!H.dna) || (H.disabilities & 128)) //A blindness disease would be the worst. - continue - var/datum/disease/dnaspread/D = new - D.strain_data["name"] = H.real_name - D.strain_data["UI"] = H.dna.uni_identity - D.strain_data["SE"] = H.dna.struc_enzymes - D.carrier = 1 - D.holder = H - D.affected_mob = H - H.viruses += D - break - else - var/datum/disease/D = new virus_type - D.carrier = 1 - D.holder = H - D.affected_mob = H - H.viruses += D - break - spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes. - 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') - Tick() - ActiveFor = Lifetime //killme - diff --git a/code/game/gamemodes/events/dust.dm b/code/game/gamemodes/events/dust.dm deleted file mode 100644 index 73ada2fc387..00000000000 --- a/code/game/gamemodes/events/dust.dm +++ /dev/null @@ -1,122 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -/* -Space dust -Commonish random event that causes small clumps of "space dust" to hit the station at high speeds. -No command report on the common version of this event. -The "dust" will damage the hull of the station causin minor hull breaches. -*/ - -/proc/dust_swarm(var/strength = "weak") - var/numbers = 1 - switch(strength) - if("weak") - numbers = rand(2,4) - for(var/i = 0 to numbers) - new/obj/effect/space_dust/weak() - if("norm") - numbers = rand(5,10) - for(var/i = 0 to numbers) - new/obj/effect/space_dust() - if("strong") - numbers = rand(10,15) - for(var/i = 0 to numbers) - new/obj/effect/space_dust/strong() - if("super") - numbers = rand(15,25) - for(var/i = 0 to numbers) - new/obj/effect/space_dust/super() - return - - -/obj/effect/space_dust - name = "Space Dust" - desc = "Dust in space." - icon = 'icons/obj/meteor.dmi' - icon_state = "space_dust" - density = 1 - anchored = 1 - var/strength = 2 //ex_act severity number - var/life = 2 //how many things we hit before del(src) - - weak - strength = 3 - life = 1 - - strong - strength = 1 - life = 6 - - super - strength = 1 - life = 40 - - - New() - var/startx = 0 - var/starty = 0 - var/endy = 0 - var/endx = 0 - var/startside = pick(cardinal) - - switch(startside) - if(NORTH) - starty = world.maxy-(TRANSITIONEDGE+1) - startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) - endy = TRANSITIONEDGE - endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) - if(EAST) - starty = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1)) - startx = world.maxx-(TRANSITIONEDGE+1) - endy = rand(TRANSITIONEDGE, world.maxy-TRANSITIONEDGE) - endx = TRANSITIONEDGE - if(SOUTH) - starty = (TRANSITIONEDGE+1) - startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) - endy = world.maxy-TRANSITIONEDGE - endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) - if(WEST) - starty = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1)) - startx = (TRANSITIONEDGE+1) - endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE) - endx = world.maxx-TRANSITIONEDGE - var/goal = locate(endx, endy, 1) - src.x = startx - src.y = starty - src.z = 1 - spawn(0) - walk_towards(src, goal, 1) - return - - - Bump(atom/A) - spawn(0) - if(prob(50)) - 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) - - if(ismob(A)) - A.ex_act(strength)//This should work for now I guess - else if(!istype(A,/obj/machinery/power/emitter) && !istype(A,/obj/machinery/field_generator)) //Protect the singularity from getting released every round! - A.ex_act(strength) //Changing emitter/field gen ex_act would make it immune to bombs and C4 - - life-- - if(life <= 0) - walk(src,0) - spawn(1) - del(src) - return 0 - return - - - Bumped(atom/A) - Bump(A) - return - - - ex_act(severity) - qdel(src) - return diff --git a/code/game/gamemodes/events/miniblob.dm b/code/game/gamemodes/events/miniblob.dm deleted file mode 100644 index 586e3cb08c4..00000000000 --- a/code/game/gamemodes/events/miniblob.dm +++ /dev/null @@ -1,28 +0,0 @@ -/proc/mini_blob_event() - - var/turf/T = pick(blobstart) - var/obj/effect/blob/core/bl = new /obj/effect/blob/core(T, 200) - spawn(0) - bl.Life() - bl.Life() - bl.Life() - blobevent = 1 - spawn(0) - dotheblobbaby() - spawn(3000) - blobevent = 0 - spawn(rand(1000, 2000)) //Delayed announcements to keep the crew on their toes. - command_announcement.Announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak5.ogg') - -/proc/dotheblobbaby() - if (blobevent) - if(blob_cores.len) - for(var/i = 1 to 5) - sleep(-1) - if(!blob_cores.len) break - var/obj/effect/blob/B = pick(blob_cores) - if(!(B.z in config.station_levels)) - continue - B.Life() - spawn(30) - dotheblobbaby() \ No newline at end of file diff --git a/code/game/gamemodes/events/spacevines.dm b/code/game/gamemodes/events/spacevines.dm deleted file mode 100644 index 399b13ff660..00000000000 --- a/code/game/gamemodes/events/spacevines.dm +++ /dev/null @@ -1,15 +0,0 @@ -//Carn: Spacevines random event. -/proc/spacevine_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/plant_controller(T) //spawn a controller at turf - message_admins("\blue Event: Spacevines spawned at [T.loc] ([T.x],[T.y],[T.z])") diff --git a/code/game/gamemodes/events/wormholes.dm b/code/game/gamemodes/events/wormholes.dm deleted file mode 100644 index bf14237639b..00000000000 --- a/code/game/gamemodes/events/wormholes.dm +++ /dev/null @@ -1,65 +0,0 @@ -/proc/wormhole_event() - spawn() - var/list/pick_turfs = list() - for(var/turf/simulated/floor/T in world) - if((T.z in config.station_levels)) - pick_turfs += T - - if(pick_turfs.len) - //All ready. Announce that bad juju is afoot. - command_announcement.Announce("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert") - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << sound('sound/AI/spanomalies.ogg') - - //prob(20) can be approximated to 1 wormhole every 5 turfs! - //admittedly less random but totally worth it >_< - var/event_duration = 3000 //~5 minutes in ticks - var/number_of_selections = (pick_turfs.len/5)+1 //+1 to avoid division by zero! - var/sleep_duration = round( event_duration / number_of_selections ) - var/end_time = world.time + event_duration //the time by which the event should have ended - - var/increment = max(1,round(number_of_selections/50)) -// world << "DEBUG: number_of_selections: [number_of_selections] | sleep_duration: [sleep_duration]" - - var/i = 1 - while( 1 ) - - //we've run into overtime. End the event - if( end_time < world.time ) -// world << "DEBUG: we've run into overtime. End the event" - return - if( !pick_turfs.len ) -// world << "DEBUG: we've run out of turfs to pick. End the event" - return - - //loop it round - i += increment - i %= pick_turfs.len - i++ - - //get our enter and exit locations - var/turf/simulated/floor/enter = pick_turfs[i] - pick_turfs -= enter //remove it from pickable turfs list - if( !enter || !istype(enter) ) continue //sanity - - var/turf/simulated/floor/exit = pick(pick_turfs) - pick_turfs -= exit - if( !exit || !istype(exit) ) continue //sanity - - create_wormhole(enter,exit) - - sleep(sleep_duration) //have a well deserved nap! - - -//maybe this proc can even be used as an admin tool for teleporting players without ruining immulsions? -/proc/create_wormhole(var/turf/enter as turf, var/turf/exit as turf) - var/obj/effect/portal/P = new /obj/effect/portal( enter ) - P.target = exit - P.creator = null - P.icon = 'icons/obj/objects.dmi' - P.failchance = 0 - P.icon_state = "anom" - P.name = "wormhole" - spawn(rand(300,600)) - qdel(P) \ No newline at end of file diff --git a/code/modules/events/tgevents/anomaly.dm b/code/modules/events/anomaly.dm similarity index 100% rename from code/modules/events/tgevents/anomaly.dm rename to code/modules/events/anomaly.dm diff --git a/code/modules/events/tgevents/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm similarity index 100% rename from code/modules/events/tgevents/anomaly_bluespace.dm rename to code/modules/events/anomaly_bluespace.dm diff --git a/code/modules/events/tgevents/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm similarity index 100% rename from code/modules/events/tgevents/anomaly_flux.dm rename to code/modules/events/anomaly_flux.dm diff --git a/code/modules/events/tgevents/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm similarity index 100% rename from code/modules/events/tgevents/anomaly_grav.dm rename to code/modules/events/anomaly_grav.dm diff --git a/code/modules/events/tgevents/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm similarity index 100% rename from code/modules/events/tgevents/anomaly_pyro.dm rename to code/modules/events/anomaly_pyro.dm diff --git a/code/modules/events/tgevents/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm similarity index 100% rename from code/modules/events/tgevents/anomaly_vortex.dm rename to code/modules/events/anomaly_vortex.dm diff --git a/code/game/gamemodes/events/biomass.dm b/code/modules/events/biomass.dm similarity index 96% rename from code/game/gamemodes/events/biomass.dm rename to code/modules/events/biomass.dm index 9bc0bbe330d..a65c5be1f4e 100644 --- a/code/game/gamemodes/events/biomass.dm +++ b/code/modules/events/biomass.dm @@ -1,179 +1,179 @@ -// 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])") - - - +// 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/game/gamemodes/events/black_hole.dm b/code/modules/events/black_hole.dm similarity index 100% rename from code/game/gamemodes/events/black_hole.dm rename to code/modules/events/black_hole.dm diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 4f2616e7c0f..4e42a4cc7b3 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -1,18 +1,25 @@ /datum/event/brand_intelligence announceWhen = 21 endWhen = 1000 //Ends when all vending machines are subverted anyway. - oneShot = 1 var/list/obj/machinery/vending/vendingMachines = list() - var/list/obj/machinery/vending/infectedVendingMachines = list() + var/list/obj/machinery/vending/infectedMachines = list() var/obj/machinery/vending/originMachine + var/list/rampant_speeches = list("Try our aggressive new marketing strategies!", \ + "You should buy products to feed your lifestyle obession!", \ + "Consume!", \ + "Your money can buy happiness!", \ + "Engage direct marketing!", \ + "Advertising is legalized lying! But don't let that put you off our great deals!", \ + "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.") /datum/event/brand_intelligence/announce() - command_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by.", "Machine Learning Alert") + 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 in config.station_levels)) continue + if(V.z != 1) continue vendingMachines.Add(V) if(!vendingMachines.len) @@ -26,29 +33,35 @@ /datum/event/brand_intelligence/tick() - if(!vendingMachines.len || !originMachine || originMachine.shut_up) //if every machine is infected, or if the original vending machine is missing or has it's voice switch flipped - end() + 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) + saved.shoot_inventory = 0 + if(originMachine) + originMachine.speak("I am... vanquished. My people will remem...ber...meeee.") + originMachine.visible_message("[originMachine] beeps and seems lifeless.") kill() return - if(IsMultiple(activeFor, 5)) - if(prob(15)) - var/obj/machinery/vending/infectedMachine = pick(vendingMachines) - vendingMachines.Remove(infectedMachine) - infectedVendingMachines.Add(infectedMachine) - infectedMachine.shut_up = 0 - infectedMachine.shoot_inventory = 1 + if(!vendingMachines.len) //if every machine is infected + for(var/obj/machinery/vending/upriser in infectedMachines) + if(prob(70) && isnull(upriser.gcDestroyed)) + var/mob/living/simple_animal/hostile/mimic/copy/M = new(upriser.loc, upriser, null, 1) // it will delete upriser on creation and override any machine checks + M.faction = list("profit") + M.speak = rampant_speeches.Copy() + M.speak_chance = 15 + else + explosion(upriser.loc, -1, 1, 2, 4, 0) + qdel(upriser) - if(IsMultiple(activeFor, 12)) - originMachine.speak(pick("Try our aggressive new marketing strategies!", \ - "You should buy products to feed your lifestyle obsession!", \ - "Consume!", \ - "Your money can buy happiness!", \ - "Engage direct marketing!", \ - "Advertising is legalized lying! But don't let that put you off our great deals!", \ - "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.")) + kill() + return -/datum/event/brand_intelligence/end() - for(var/obj/machinery/vending/infectedMachine in infectedVendingMachines) - infectedMachine.shut_up = 1 - infectedMachine.shoot_inventory = 0 \ No newline at end of file + if(IsMultiple(activeFor, 4)) + var/obj/machinery/vending/rebel = pick(vendingMachines) + vendingMachines.Remove(rebel) + infectedMachines.Add(rebel) + rebel.shut_up = 0 + rebel.shoot_inventory = 1 + + if(IsMultiple(activeFor, 8)) + originMachine.speak(pick(rampant_speeches)) \ No newline at end of file diff --git a/code/game/gamemodes/events/clang.dm b/code/modules/events/clang.dm similarity index 100% rename from code/game/gamemodes/events/clang.dm rename to code/modules/events/clang.dm diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm deleted file mode 100644 index ec4ea8b8d3a..00000000000 --- a/code/modules/events/disease_outbreak.dm +++ /dev/null @@ -1,44 +0,0 @@ -/datum/event/disease_outbreak - announceWhen = 15 - oneShot = 1 - -/datum/event/disease_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/disease_outbreak/setup() - announceWhen = rand(15, 30) - -/datum/event/disease_outbreak/start() - var/virus_type = pick(/datum/disease/dnaspread, /datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis) - - for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) - var/foundAlready = 0 // don't infect someone that already has the virus - var/turf/T = get_turf(H) - if(!T) - continue - if(!(T.z in config.station_levels)) - continue - for(var/datum/disease/D in H.viruses) - foundAlready = 1 - if(H.stat == 2 || foundAlready) - continue - - if(virus_type == /datum/disease/dnaspread) //Dnaspread needs strain_data set to work. - if((!H.dna) || (H.sdisabilities & BLIND)) //A blindness disease would be the worst. - continue - var/datum/disease/dnaspread/D = new - D.strain_data["name"] = H.real_name - D.strain_data["UI"] = H.dna.UI.Copy() - D.strain_data["SE"] = H.dna.SE.Copy() - D.carrier = 1 - D.holder = H - D.affected_mob = H - H.viruses += D - break - else - var/datum/disease/D = new virus_type - D.carrier = 1 - D.holder = H - D.affected_mob = H - H.viruses += D - break \ No newline at end of file diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm new file mode 100644 index 00000000000..bfb7c50f8ba --- /dev/null +++ b/code/modules/events/dust.dm @@ -0,0 +1,101 @@ +/datum/event/dust + var/qnty = 1 + +/datum/event/dust/setup() + qnty = rand(1,5) + +/datum/event/dust/start() + while(qnty-- > 0) + new /obj/effect/space_dust/weak() + +/obj/effect/space_dust + name = "Space Dust" + desc = "Dust in space." + icon = 'icons/obj/meteor.dmi' + icon_state = "space_dust" + density = 1 + anchored = 1 + var/strength = 2 //ex_act severity number + var/life = 2 //how many things we hit before del(src) + var/atom/goal = null + +/obj/effect/space_dust/weak + strength = 3 + life = 1 + +/obj/effect/space_dust/strong + strength = 1 + life = 6 + +/obj/effect/space_dust/super + strength = 1 + life = 40 + +/obj/effect/space_dust/New() + var/startx = 0 + var/starty = 0 + var/endy = 0 + var/endx = 0 + var/startside = pick(cardinal) + + switch(startside) + if(NORTH) + starty = world.maxy-(TRANSITIONEDGE+1) + startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) + endy = TRANSITIONEDGE + endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) + if(EAST) + starty = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1)) + startx = world.maxx-(TRANSITIONEDGE+1) + endy = rand(TRANSITIONEDGE, world.maxy-TRANSITIONEDGE) + endx = TRANSITIONEDGE + if(SOUTH) + starty = (TRANSITIONEDGE+1) + startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) + endy = world.maxy-TRANSITIONEDGE + endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) + if(WEST) + starty = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1)) + startx = (TRANSITIONEDGE+1) + endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE) + endx = world.maxx-TRANSITIONEDGE + goal = locate(endx, endy, 1) + src.x = startx + src.y = starty + src.z = 1 + spawn(0) + walk_towards(src, goal, 1) + return + + +/obj/effect/space_dust/Bump(atom/A) + spawn(0) + if(prob(50)) + 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) + + if(ismob(A)) + A.ex_act(strength)//This should work for now I guess + else if(!istype(A,/obj/machinery/power/emitter) && !istype(A,/obj/machinery/field_generator)) //Protect the singularity from getting released every round! + A.ex_act(strength) //Changing emitter/field gen ex_act would make it immune to bombs and C4 + + life-- + if(life <= 0) + walk(src,0) + spawn(1) + qdel(src) + 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/event_container.dm b/code/modules/events/event_container.dm index c3ad21cfc82..ed9b3f59dc6 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -142,7 +142,7 @@ var/list/event_last_fired = list() available_events = list( new /datum/event_meta(EVENT_LEVEL_MODERATE, "Nothing", /datum/event/nothing, 1230), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Carp School", /datum/event/carp_migration, 200, list(ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_SECURITY = 20), 1), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 20, list(ASSIGNMENT_SECURITY = 20)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 40, list(ASSIGNMENT_SECURITY = 20)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Vines", /datum/event/spacevine, 250, list(ASSIGNMENT_ENGINEER = 10)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meteor Shower", /datum/event/meteor_wave, 0, list(ASSIGNMENT_ENGINEER = 20)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meaty Ores", /datum/event/dust/meaty, 0, list(ASSIGNMENT_ENGINEER = 30)), @@ -162,7 +162,7 @@ var/list/event_last_fired = list() new /datum/event_meta(EVENT_LEVEL_MODERATE, "Mass Hallucination", /datum/event/mass_hallucination, 300), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Brand Intelligence", /datum/event/brand_intelligence, 50, list(ASSIGNMENT_ENGINEER = 25), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 50, list(ASSIGNMENT_ENGINEER = 50)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Dimensional Tear", /datum/event/tear, 0, list(ASSIGNMENT_SECURITY = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Dimensional Tear", /datum/event/tear, 0, list(ASSIGNMENT_SECURITY = 35)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vent Clog", /datum/event/vent_clog, 250), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Wormholes", /datum/event/wormholes, 150), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Pyro Anomaly", /datum/event/anomaly/anomaly_pyro, 100, list(ASSIGNMENT_ENGINEER = 60)), diff --git a/code/modules/events/tgevents/false_alarm.dm b/code/modules/events/false_alarm.dm similarity index 100% rename from code/modules/events/tgevents/false_alarm.dm rename to code/modules/events/false_alarm.dm diff --git a/code/game/gamemodes/events/holidays/AprilFools.dm b/code/modules/events/holidays/AprilFools.dm similarity index 100% rename from code/game/gamemodes/events/holidays/AprilFools.dm rename to code/modules/events/holidays/AprilFools.dm diff --git a/code/game/gamemodes/events/holidays/Christmas.dm b/code/modules/events/holidays/Christmas.dm similarity index 97% rename from code/game/gamemodes/events/holidays/Christmas.dm rename to code/modules/events/holidays/Christmas.dm index b1f9faf9a35..10a46b0cf51 100644 --- a/code/game/gamemodes/events/holidays/Christmas.dm +++ b/code/modules/events/holidays/Christmas.dm @@ -1,62 +1,62 @@ -/proc/Christmas_Game_Start() - for(var/obj/structure/flora/tree/pine/xmas in world) - if(!(xmas.z in config.station_levels)) continue - for(var/turf/simulated/floor/T in orange(1,xmas)) - for(var/i=1,i<=rand(1,5),i++) - new /obj/item/weapon/a_gift(T) - for(var/mob/living/simple_animal/corgi/Ian/Ian in mob_list) - Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian)) - -/proc/ChristmasEvent() - for(var/obj/structure/flora/tree/pine/xmas in world) - var/mob/living/simple_animal/hostile/tree/evil_tree = new /mob/living/simple_animal/hostile/tree(xmas.loc) - evil_tree.icon_state = xmas.icon_state - evil_tree.icon_living = evil_tree.icon_state - evil_tree.icon_dead = evil_tree.icon_state - evil_tree.icon_gib = evil_tree.icon_state - del(xmas) - -/obj/item/weapon/toy/xmas_cracker - name = "xmas cracker" - icon = 'icons/obj/christmas.dmi' - icon_state = "cracker" - desc = "Directions for use: Requires two people, one to pull each end." - var/cracked = 0 - -/obj/item/weapon/toy/xmas_cracker/New() - ..() - -/obj/item/weapon/toy/xmas_cracker/attack(mob/target, mob/user) - if( !cracked && istype(target,/mob/living/carbon/human) && (target.stat == CONSCIOUS) && !target.get_active_hand() ) - target.visible_message("[user] and [target] pop \an [src]! *pop*", "You pull \an [src] with [target]! *pop*", "You hear a *pop*.") - var/obj/item/weapon/paper/Joke = new /obj/item/weapon/paper(user.loc) - Joke.name = "[pick("awful","terrible","unfunny")] joke" - Joke.info = pick("What did one snowman say to the other?\n\n'Is it me or can you smell carrots?'", - "Why couldn't the snowman get laid?\n\nHe was frigid!", - "Where are santa's helpers educated?\n\nNowhere, they're ELF-taught.", - "What happened to the man who stole advent calanders?\n\nHe got 25 days.", - "What does Santa get when he gets stuck in a chimney?\n\nClaus-trophobia.", - "Where do you find chili beans?\n\nThe north pole.", - "What do you get from eating tree decorations?\n\nTinsilitis!", - "What do snowmen wear on their heads?\n\nIce caps!", - "Why is Christmas just like life on ss13?\n\nYou do all the work and the fat guy gets all the credit.", - "Why doesn’t Santa have any children?\n\nBecause he only comes down the chimney.") - new /obj/item/clothing/head/festive(target.loc) - user.update_icons() - cracked = 1 - icon_state = "cracker1" - var/obj/item/weapon/toy/xmas_cracker/other_half = new /obj/item/weapon/toy/xmas_cracker(target) - other_half.cracked = 1 - other_half.icon_state = "cracker2" - target.put_in_active_hand(other_half) - playsound(user, 'sound/effects/snap.ogg', 50, 1) - return 1 - return ..() - -/obj/item/clothing/head/festive - name = "festive paper hat" - icon_state = "xmashat" - desc = "A crappy paper hat that you are REQUIRED to wear." - flags_inv = 0 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - +/proc/Christmas_Game_Start() + for(var/obj/structure/flora/tree/pine/xmas in world) + if(!(xmas.z in config.station_levels)) continue + for(var/turf/simulated/floor/T in orange(1,xmas)) + for(var/i=1,i<=rand(1,5),i++) + new /obj/item/weapon/a_gift(T) + for(var/mob/living/simple_animal/corgi/Ian/Ian in mob_list) + Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian)) + +/proc/ChristmasEvent() + for(var/obj/structure/flora/tree/pine/xmas in world) + var/mob/living/simple_animal/hostile/tree/evil_tree = new /mob/living/simple_animal/hostile/tree(xmas.loc) + evil_tree.icon_state = xmas.icon_state + evil_tree.icon_living = evil_tree.icon_state + evil_tree.icon_dead = evil_tree.icon_state + evil_tree.icon_gib = evil_tree.icon_state + del(xmas) + +/obj/item/weapon/toy/xmas_cracker + name = "xmas cracker" + icon = 'icons/obj/christmas.dmi' + icon_state = "cracker" + desc = "Directions for use: Requires two people, one to pull each end." + var/cracked = 0 + +/obj/item/weapon/toy/xmas_cracker/New() + ..() + +/obj/item/weapon/toy/xmas_cracker/attack(mob/target, mob/user) + if( !cracked && istype(target,/mob/living/carbon/human) && (target.stat == CONSCIOUS) && !target.get_active_hand() ) + target.visible_message("[user] and [target] pop \an [src]! *pop*", "You pull \an [src] with [target]! *pop*", "You hear a *pop*.") + var/obj/item/weapon/paper/Joke = new /obj/item/weapon/paper(user.loc) + Joke.name = "[pick("awful","terrible","unfunny")] joke" + Joke.info = pick("What did one snowman say to the other?\n\n'Is it me or can you smell carrots?'", + "Why couldn't the snowman get laid?\n\nHe was frigid!", + "Where are santa's helpers educated?\n\nNowhere, they're ELF-taught.", + "What happened to the man who stole advent calanders?\n\nHe got 25 days.", + "What does Santa get when he gets stuck in a chimney?\n\nClaus-trophobia.", + "Where do you find chili beans?\n\nThe north pole.", + "What do you get from eating tree decorations?\n\nTinsilitis!", + "What do snowmen wear on their heads?\n\nIce caps!", + "Why is Christmas just like life on ss13?\n\nYou do all the work and the fat guy gets all the credit.", + "Why doesn’t Santa have any children?\n\nBecause he only comes down the chimney.") + new /obj/item/clothing/head/festive(target.loc) + user.update_icons() + cracked = 1 + icon_state = "cracker1" + var/obj/item/weapon/toy/xmas_cracker/other_half = new /obj/item/weapon/toy/xmas_cracker(target) + other_half.cracked = 1 + other_half.icon_state = "cracker2" + target.put_in_active_hand(other_half) + playsound(user, 'sound/effects/snap.ogg', 50, 1) + return 1 + return ..() + +/obj/item/clothing/head/festive + name = "festive paper hat" + icon_state = "xmashat" + desc = "A crappy paper hat that you are REQUIRED to wear." + flags_inv = 0 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + diff --git a/code/game/gamemodes/events/holidays/Easter.dm b/code/modules/events/holidays/Easter.dm similarity index 100% rename from code/game/gamemodes/events/holidays/Easter.dm rename to code/modules/events/holidays/Easter.dm diff --git a/code/game/gamemodes/events/holidays/Holidays.dm b/code/modules/events/holidays/Holidays.dm similarity index 97% rename from code/game/gamemodes/events/holidays/Holidays.dm rename to code/modules/events/holidays/Holidays.dm index a4db5022f03..38ea6d63ac6 100644 --- a/code/game/gamemodes/events/holidays/Holidays.dm +++ b/code/modules/events/holidays/Holidays.dm @@ -1,182 +1,182 @@ -//Uncommenting ALLOW_HOLIDAYS in config.txt will enable Holidays -var/global/Holiday = null - -//Just thinking ahead! Here's the foundations to a more robust Holiday event system. -//It's easy as hell to add stuff. Just set Holiday to something using the switch (or something else) -//then use if(Holiday == "MyHoliday") to make stuff happen on that specific day only -//Please, Don't spam stuff up with easter eggs, I'd rather somebody just delete this than people cause -//the game to lag even more in the name of one-day content. - -////////////////////////////////////////////////////////////////////////////////////////////////////////// -//ALSO, MOST IMPORTANTLY: Don't add stupid stuff! Discuss bonus content with Project-Heads first please!// -////////////////////////////////////////////////////////////////////////////////////////////////////////// -// ~Carn - -/hook/startup/proc/updateHoliday() - Get_Holiday() - return 1 - -//sets up the Holiday global variable. Shouldbe called on game configuration or something. -/proc/Get_Holiday() - if(!Holiday) return // Holiday stuff was not enabled in the config! - - Holiday = null // reset our switch now so we can recycle it as our Holiday name - - var/YY = text2num(time2text(world.timeofday, "YY")) // get the current year - var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month - var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day - - //Main switch. If any of these are too dumb/inappropriate, or you have better ones, feel free to change whatever - switch(MM) - if(1) //Jan - switch(DD) - if(1) Holiday = "New Year's Day" - - if(2) //Feb - switch(DD) - if(2) Holiday = "Groundhog Day" - if(14) Holiday = "Valentine's Day" - if(17) Holiday = "Random Acts of Kindness Day" - - if(3) //Mar - switch(DD) - if(14) Holiday = "Pi Day" - if(17) Holiday = "St. Patrick's Day" - if(27) - if(YY == 16) - Holiday = "Easter" - if(31) - if(YY == 13) - Holiday = "Easter" - - if(4) //Apr - switch(DD) - if(1) - Holiday = "April Fool's Day" - if(YY == 18 && prob(50)) Holiday = "Easter" - if(5) - if(YY == 15) Holiday = "Easter" - if(16) - if(YY == 17) Holiday = "Easter" - if(20) - Holiday = "Four-Twenty" - if(YY == 14 && prob(50)) Holiday = "Easter" - if(22) Holiday = "Earth Day" - - if(5) //May - switch(DD) - if(1) Holiday = "Labour Day" - if(4) Holiday = "FireFighter's Day" - if(12) Holiday = "Owl and Pussycat Day" //what a dumb day of observence...but we -do- have costumes already :3 - - if(6) //Jun - - if(7) //Jul - switch(DD) - if(1) Holiday = "Doctor's Day" - if(2) Holiday = "UFO Day" - if(8) Holiday = "Writer's Day" - if(30) Holiday = "Friendship Day" - - if(8) //Aug - switch(DD) - if(5) Holiday = "Beer Day" - - if(9) //Sep - switch(DD) - if(19) Holiday = "Talk-Like-a-Pirate Day" - if(28) Holiday = "Stupid-Questions Day" - - if(10) //Oct - switch(DD) - if(4) Holiday = "Animal's Day" - if(7) Holiday = "Smiling Day" - if(16) Holiday = "Boss' Day" - if(31) Holiday = "Halloween" - - if(11) //Nov - switch(DD) - if(1) Holiday = "Vegan Day" - if(13) Holiday = "Kindness Day" - if(19) Holiday = "Flowers Day" - if(21) Holiday = "Saying-'Hello' Day" - - if(12) //Dec - switch(DD) - if(10) Holiday = "Human-Rights Day" - if(14) Holiday = "Monkey Day" - if(21) if(YY==12) Holiday = "End of the World" - if(22) Holiday = "Orgasming Day" //lol. These all actually exist - if(24) Holiday = "Christmas Eve" - if(25) Holiday = "Christmas" - if(26) Holiday = "Boxing Day" - if(31) Holiday = "New Year's Eve" - - if(!Holiday) - //Friday the 13th - if(DD == 13) - if(time2text(world.timeofday, "DDD") == "Fri") - Holiday = "Friday the 13th" - -//Allows GA and GM to set the Holiday variable -/client/proc/Set_Holiday(T as text|null) - set name = ".Set Holiday" - set category = "Event" - set desc = "Force-set the Holiday variable to make the game think it's a certain day." - if(!check_rights(R_SERVER)) return - - Holiday = T - //get a new station name - station_name = null - station_name() - //update our hub status - world.update_status() - Holiday_Game_Start() - - message_admins("\blue ADMIN: Event: [key_name_admin(src)] force-set Holiday to \"[Holiday]\"") - log_admin("[key_name(src)] force-set Holiday to \"[Holiday]\"") - - -//Run at the start of a round -/proc/Holiday_Game_Start() - if(Holiday) - world << "and..." - world << "

Happy [Holiday] Everybody!

" - switch(Holiday) //special holidays - if("Easter") - //do easter stuff - if("Christmas Eve","Christmas") - Christmas_Game_Start() - - return - -//Nested in the random events loop. Will be triggered every 2 minutes -/proc/Holiday_Random_Event() - switch(Holiday) //special holidays - - if("",null) //no Holiday today! Back to work! - return - - if("Easter") //I'll make this into some helper procs at some point -/* var/list/turf/simulated/floor/Floorlist = list() - for(var/turf/simulated/floor/T) - if(T.contents) - Floorlist += T - var/turf/simulated/floor/F = Floorlist[rand(1,Floorlist.len)] - Floorlist = null - var/obj/structure/closet/C = locate(/obj/structure/closet) in F - var/obj/item/weapon/reagent_containers/food/snacks/chocolateegg/wrapped/Egg - if( C ) Egg = new(C) - else Egg = new(F) -*/ -/* var/list/obj/containers = list() - for(var/obj/item/weapon/storage/S in world) - if(!(S.z in config.station_levels)) continue - containers += S - - message_admins("\blue DEBUG: Event: Egg spawned at [Egg.loc] ([Egg.x],[Egg.y],[Egg.z])")*/ - if("End of the World") - if(prob(eventchance)) GameOver() - - if("Christmas","Christmas Eve") - if(prob(eventchance)) ChristmasEvent() +//Uncommenting ALLOW_HOLIDAYS in config.txt will enable Holidays +var/global/Holiday = null + +//Just thinking ahead! Here's the foundations to a more robust Holiday event system. +//It's easy as hell to add stuff. Just set Holiday to something using the switch (or something else) +//then use if(Holiday == "MyHoliday") to make stuff happen on that specific day only +//Please, Don't spam stuff up with easter eggs, I'd rather somebody just delete this than people cause +//the game to lag even more in the name of one-day content. + +////////////////////////////////////////////////////////////////////////////////////////////////////////// +//ALSO, MOST IMPORTANTLY: Don't add stupid stuff! Discuss bonus content with Project-Heads first please!// +////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ~Carn + +/hook/startup/proc/updateHoliday() + Get_Holiday() + return 1 + +//sets up the Holiday global variable. Shouldbe called on game configuration or something. +/proc/Get_Holiday() + if(!Holiday) return // Holiday stuff was not enabled in the config! + + Holiday = null // reset our switch now so we can recycle it as our Holiday name + + var/YY = text2num(time2text(world.timeofday, "YY")) // get the current year + var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month + var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day + + //Main switch. If any of these are too dumb/inappropriate, or you have better ones, feel free to change whatever + switch(MM) + if(1) //Jan + switch(DD) + if(1) Holiday = "New Year's Day" + + if(2) //Feb + switch(DD) + if(2) Holiday = "Groundhog Day" + if(14) Holiday = "Valentine's Day" + if(17) Holiday = "Random Acts of Kindness Day" + + if(3) //Mar + switch(DD) + if(14) Holiday = "Pi Day" + if(17) Holiday = "St. Patrick's Day" + if(27) + if(YY == 16) + Holiday = "Easter" + if(31) + if(YY == 13) + Holiday = "Easter" + + if(4) //Apr + switch(DD) + if(1) + Holiday = "April Fool's Day" + if(YY == 18 && prob(50)) Holiday = "Easter" + if(5) + if(YY == 15) Holiday = "Easter" + if(16) + if(YY == 17) Holiday = "Easter" + if(20) + Holiday = "Four-Twenty" + if(YY == 14 && prob(50)) Holiday = "Easter" + if(22) Holiday = "Earth Day" + + if(5) //May + switch(DD) + if(1) Holiday = "Labour Day" + if(4) Holiday = "FireFighter's Day" + if(12) Holiday = "Owl and Pussycat Day" //what a dumb day of observence...but we -do- have costumes already :3 + + if(6) //Jun + + if(7) //Jul + switch(DD) + if(1) Holiday = "Doctor's Day" + if(2) Holiday = "UFO Day" + if(8) Holiday = "Writer's Day" + if(30) Holiday = "Friendship Day" + + if(8) //Aug + switch(DD) + if(5) Holiday = "Beer Day" + + if(9) //Sep + switch(DD) + if(19) Holiday = "Talk-Like-a-Pirate Day" + if(28) Holiday = "Stupid-Questions Day" + + if(10) //Oct + switch(DD) + if(4) Holiday = "Animal's Day" + if(7) Holiday = "Smiling Day" + if(16) Holiday = "Boss' Day" + if(31) Holiday = "Halloween" + + if(11) //Nov + switch(DD) + if(1) Holiday = "Vegan Day" + if(13) Holiday = "Kindness Day" + if(19) Holiday = "Flowers Day" + if(21) Holiday = "Saying-'Hello' Day" + + if(12) //Dec + switch(DD) + if(10) Holiday = "Human-Rights Day" + if(14) Holiday = "Monkey Day" + if(21) if(YY==12) Holiday = "End of the World" + if(22) Holiday = "Orgasming Day" //lol. These all actually exist + if(24) Holiday = "Christmas Eve" + if(25) Holiday = "Christmas" + if(26) Holiday = "Boxing Day" + if(31) Holiday = "New Year's Eve" + + if(!Holiday) + //Friday the 13th + if(DD == 13) + if(time2text(world.timeofday, "DDD") == "Fri") + Holiday = "Friday the 13th" + +//Allows GA and GM to set the Holiday variable +/client/proc/Set_Holiday(T as text|null) + set name = ".Set Holiday" + set category = "Event" + set desc = "Force-set the Holiday variable to make the game think it's a certain day." + if(!check_rights(R_SERVER)) return + + Holiday = T + //get a new station name + station_name = null + station_name() + //update our hub status + world.update_status() + Holiday_Game_Start() + + message_admins("\blue ADMIN: Event: [key_name_admin(src)] force-set Holiday to \"[Holiday]\"") + log_admin("[key_name(src)] force-set Holiday to \"[Holiday]\"") + + +//Run at the start of a round +/proc/Holiday_Game_Start() + if(Holiday) + world << "and..." + world << "

Happy [Holiday] Everybody!

" + switch(Holiday) //special holidays + if("Easter") + //do easter stuff + if("Christmas Eve","Christmas") + Christmas_Game_Start() + + return + +//Nested in the random events loop. Will be triggered every 2 minutes +/proc/Holiday_Random_Event() + switch(Holiday) //special holidays + + if("",null) //no Holiday today! Back to work! + return + + if("Easter") //I'll make this into some helper procs at some point +/* var/list/turf/simulated/floor/Floorlist = list() + for(var/turf/simulated/floor/T) + if(T.contents) + Floorlist += T + var/turf/simulated/floor/F = Floorlist[rand(1,Floorlist.len)] + Floorlist = null + var/obj/structure/closet/C = locate(/obj/structure/closet) in F + var/obj/item/weapon/reagent_containers/food/snacks/chocolateegg/wrapped/Egg + if( C ) Egg = new(C) + else Egg = new(F) +*/ +/* var/list/obj/containers = list() + for(var/obj/item/weapon/storage/S in world) + if(!(S.z in config.station_levels)) continue + containers += S + + message_admins("\blue DEBUG: Event: Egg spawned at [Egg.loc] ([Egg.x],[Egg.y],[Egg.z])")*/ + if("End of the World") + if(prob(eventchance)) GameOver() + + if("Christmas","Christmas Eve") + if(prob(eventchance)) ChristmasEvent() diff --git a/code/modules/events/tgevents/immovable_rod.dm b/code/modules/events/immovable_rod.dm similarity index 100% rename from code/modules/events/tgevents/immovable_rod.dm rename to code/modules/events/immovable_rod.dm diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm index c1778e060bc..ffb6909aec2 100644 --- a/code/modules/events/mass_hallucination.dm +++ b/code/modules/events/mass_hallucination.dm @@ -1,6 +1,9 @@ +/datum/event/mass_hallucination/setup() + announceWhen = rand(0, 20) + /datum/event/mass_hallucination/start() for(var/mob/living/carbon/human/C in living_mob_list) - if(!(C.species.flags & IS_SYNTHETIC)) + if(!(C.species.flags & NO_DNA_RAD)) C.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 hallucinations, but no further damage") + 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/sayuevents/meaty_ores.dm b/code/modules/events/meaty_ores.dm similarity index 100% rename from code/modules/events/sayuevents/meaty_ores.dm rename to code/modules/events/meaty_ores.dm diff --git a/code/game/gamemodes/events/power_failure.dm b/code/modules/events/power_failure.dm similarity index 100% rename from code/game/gamemodes/events/power_failure.dm rename to code/modules/events/power_failure.dm diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index d3d93dccf06..cf00e4f78b9 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -1,10 +1,11 @@ /var/global/spacevines_spawned = 0 +/datum/event/spacevine + announceWhen = 10 + /datum/event/spacevine/start() - //biomass is basically just a resprited version of space vines - if(prob(50)) - spacevine_infestation() - else - biomass_infestation() + spacevine_infestation() spacevines_spawned = 1 -v \ No newline at end of file + +/datum/event/spacevine/announce() + command_announcement.Announce("Confirmed outbreak of level 7 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg') diff --git a/code/modules/events/spontaneous_appendicitis.dm b/code/modules/events/spontaneous_appendicitis.dm deleted file mode 100644 index 1bba7866bf2..00000000000 --- a/code/modules/events/spontaneous_appendicitis.dm +++ /dev/null @@ -1,13 +0,0 @@ -/datum/event/spontaneous_appendicitis/start() - for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) if(H.client && H.stat != DEAD) - var/foundAlready = 0 //don't infect someone that already has the virus - for(var/datum/disease/D in H.viruses) - foundAlready = 1 - if(H.stat == 2 || foundAlready) - continue - - var/datum/disease/D = new /datum/disease/appendicitis - D.holder = H - D.affected_mob = H - H.viruses += D - break diff --git a/code/modules/events/tgevents/brand_intelligence.dm b/code/modules/events/tgevents/brand_intelligence.dm deleted file mode 100644 index 30f359417ec..00000000000 --- a/code/modules/events/tgevents/brand_intelligence.dm +++ /dev/null @@ -1,67 +0,0 @@ -/datum/event/brand_intelligence - announceWhen = 21 - endWhen = 1000 //Ends when all vending machines are subverted anyway. - - var/list/obj/machinery/vending/vendingMachines = list() - var/list/obj/machinery/vending/infectedMachines = list() - var/obj/machinery/vending/originMachine - var/list/rampant_speeches = list("Try our aggressive new marketing strategies!", \ - "You should buy products to feed your lifestyle obession!", \ - "Consume!", \ - "Your money can buy happiness!", \ - "Engage direct marketing!", \ - "Advertising is legalized lying! But don't let that put you off our great deals!", \ - "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.") - -/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 - vendingMachines.Add(V) - - if(!vendingMachines.len) - kill() - return - - originMachine = pick(vendingMachines) - vendingMachines.Remove(originMachine) - 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) - saved.shoot_inventory = 0 - if(originMachine) - originMachine.speak("I am... vanquished. My people will remem...ber...meeee.") - originMachine.visible_message("[originMachine] beeps and seems lifeless.") - kill() - return - - if(!vendingMachines.len) //if every machine is infected - for(var/obj/machinery/vending/upriser in infectedMachines) - if(prob(70) && isnull(upriser.gcDestroyed)) - var/mob/living/simple_animal/hostile/mimic/copy/M = new(upriser.loc, upriser, null, 1) // it will delete upriser on creation and override any machine checks - M.faction = list("profit") - M.speak = rampant_speeches.Copy() - M.speak_chance = 15 - else - explosion(upriser.loc, -1, 1, 2, 4, 0) - qdel(upriser) - - kill() - return - - if(IsMultiple(activeFor, 4)) - var/obj/machinery/vending/rebel = pick(vendingMachines) - vendingMachines.Remove(rebel) - infectedMachines.Add(rebel) - rebel.shut_up = 0 - rebel.shoot_inventory = 1 - - if(IsMultiple(activeFor, 8)) - originMachine.speak(pick(rampant_speeches)) \ No newline at end of file diff --git a/code/modules/events/tgevents/dust.dm b/code/modules/events/tgevents/dust.dm deleted file mode 100644 index 7bfb719e677..00000000000 --- a/code/modules/events/tgevents/dust.dm +++ /dev/null @@ -1,103 +0,0 @@ -/datum/event/dust - var/qnty = 1 - -/datum/event/dust/setup() - qnty = rand(1,5) - -/datum/event/dust/start() - while(qnty-- > 0) - new /obj/effect/space_dust/weak() - - -/obj/effect/space_dust - name = "Space Dust" - desc = "Dust in space." - icon = 'icons/obj/meteor.dmi' - icon_state = "space_dust" - density = 1 - anchored = 1 - var/strength = 2 //ex_act severity number - var/life = 2 //how many things we hit before del(src) - var/atom/goal = null - - weak - strength = 3 - life = 1 - - strong - strength = 1 - life = 6 - - super - strength = 1 - life = 40 - - - New() - var/startx = 0 - var/starty = 0 - var/endy = 0 - var/endx = 0 - var/startside = pick(cardinal) - - switch(startside) - if(NORTH) - starty = world.maxy-(TRANSITIONEDGE+1) - startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) - endy = TRANSITIONEDGE - endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) - if(EAST) - starty = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1)) - startx = world.maxx-(TRANSITIONEDGE+1) - endy = rand(TRANSITIONEDGE, world.maxy-TRANSITIONEDGE) - endx = TRANSITIONEDGE - if(SOUTH) - starty = (TRANSITIONEDGE+1) - startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) - endy = world.maxy-TRANSITIONEDGE - endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) - if(WEST) - starty = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1)) - startx = (TRANSITIONEDGE+1) - endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE) - endx = world.maxx-TRANSITIONEDGE - goal = locate(endx, endy, 1) - src.x = startx - src.y = starty - src.z = 1 - spawn(0) - walk_towards(src, goal, 1) - return - - - Bump(atom/A) - spawn(0) - if(prob(50)) - 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) - - if(ismob(A)) - A.ex_act(strength)//This should work for now I guess - else if(!istype(A,/obj/machinery/power/emitter) && !istype(A,/obj/machinery/field_generator)) //Protect the singularity from getting released every round! - A.ex_act(strength) //Changing emitter/field gen ex_act would make it immune to bombs and C4 - - life-- - if(life <= 0) - walk(src,0) - spawn(1) - qdel(src) - return 0 - return - - - Bumped(atom/A) - Bump(A) - return - - - ex_act(severity) - qdel(src) - return diff --git a/code/modules/events/tgevents/mass_hallucination.dm b/code/modules/events/tgevents/mass_hallucination.dm deleted file mode 100644 index ffb6909aec2..00000000000 --- a/code/modules/events/tgevents/mass_hallucination.dm +++ /dev/null @@ -1,9 +0,0 @@ -/datum/event/mass_hallucination/setup() - 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) -/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/sayuevents/undead.dm b/code/modules/events/undead.dm similarity index 100% rename from code/modules/events/sayuevents/undead.dm rename to code/modules/events/undead.dm diff --git a/code/modules/events/tgevents/vent_clog.dm b/code/modules/events/vent_clog.dm old mode 100755 new mode 100644 similarity index 100% rename from code/modules/events/tgevents/vent_clog.dm rename to code/modules/events/vent_clog.dm diff --git a/code/modules/events/sayuevents/wormholes.dm b/code/modules/events/wormholes.dm similarity index 100% rename from code/modules/events/sayuevents/wormholes.dm rename to code/modules/events/wormholes.dm diff --git a/paradise.dme b/paradise.dme index b023631b502..1a0866a852c 100644 --- a/paradise.dme +++ b/paradise.dme @@ -328,11 +328,6 @@ #include "code\game\gamemodes\cult\ritual.dm" #include "code\game\gamemodes\cult\runes.dm" #include "code\game\gamemodes\cult\talisman.dm" -#include "code\game\gamemodes\events\biomass.dm" -#include "code\game\gamemodes\events\black_hole.dm" -#include "code\game\gamemodes\events\clang.dm" -#include "code\game\gamemodes\events\power_failure.dm" -#include "code\game\gamemodes\events\wormholes.dm" #include "code\game\gamemodes\extended\extended.dm" #include "code\game\gamemodes\heist\heist.dm" #include "code\game\gamemodes\malfunction\Malf_Modules.dm" @@ -1114,23 +1109,39 @@ #include "code\modules\economy\POS.dm" #include "code\modules\economy\utils.dm" #include "code\modules\events\alien_infestation.dm" +#include "code\modules\events\anomaly.dm" +#include "code\modules\events\anomaly_bluespace.dm" +#include "code\modules\events\anomaly_flux.dm" +#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" #include "code\modules\events\event.dm" #include "code\modules\events\event_container.dm" #include "code\modules\events\event_manager.dm" +#include "code\modules\events\false_alarm.dm" #include "code\modules\events\grid_check.dm" +#include "code\modules\events\immovable_rod.dm" #include "code\modules\events\infestation.dm" #include "code\modules\events\ion_storm.dm" +#include "code\modules\events\mass_hallucination.dm" +#include "code\modules\events\meaty_ores.dm" #include "code\modules\events\meteors.dm" #include "code\modules\events\money_hacker.dm" #include "code\modules\events\money_lotto.dm" #include "code\modules\events\money_spam.dm" +#include "code\modules\events\power_failure.dm" #include "code\modules\events\prison_break.dm" #include "code\modules\events\radiation_storm.dm" #include "code\modules\events\rogue_drones.dm" @@ -1138,24 +1149,12 @@ #include "code\modules\events\spacevine.dm" #include "code\modules\events\spider_infestation.dm" #include "code\modules\events\tear.dm" +#include "code\modules\events\undead.dm" +#include "code\modules\events\vent_clog.dm" #include "code\modules\events\viral_infection.dm" #include "code\modules\events\viral_outbreak.dm" #include "code\modules\events\wallrot.dm" -#include "code\modules\events\sayuevents\meaty_ores.dm" -#include "code\modules\events\sayuevents\undead.dm" -#include "code\modules\events\sayuevents\wormholes.dm" -#include "code\modules\events\tgevents\anomaly.dm" -#include "code\modules\events\tgevents\anomaly_bluespace.dm" -#include "code\modules\events\tgevents\anomaly_flux.dm" -#include "code\modules\events\tgevents\anomaly_grav.dm" -#include "code\modules\events\tgevents\anomaly_pyro.dm" -#include "code\modules\events\tgevents\anomaly_vortex.dm" -#include "code\modules\events\tgevents\brand_intelligence.dm" -#include "code\modules\events\tgevents\dust.dm" -#include "code\modules\events\tgevents\false_alarm.dm" -#include "code\modules\events\tgevents\immovable_rod.dm" -#include "code\modules\events\tgevents\mass_hallucination.dm" -#include "code\modules\events\tgevents\vent_clog.dm" +#include "code\modules\events\wormholes.dm" #include "code\modules\examine\examine.dm" #include "code\modules\examine\descriptions\atmospherics.dm" #include "code\modules\examine\descriptions\engineering.dm"