From 3fc88dee5885fa2f8322b46a1f107722672ef8d2 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Tue, 14 Jul 2020 15:37:30 -0700 Subject: [PATCH] Mutant event control files --- code/modules/events/event_container_vr.dm | 8 +- code/modules/events/infestation.dm | 42 +++++---- code/modules/events/mutants.dm | 100 ++++++++++++++++++++++ 3 files changed, 130 insertions(+), 20 deletions(-) create mode 100644 code/modules/events/mutants.dm diff --git a/code/modules/events/event_container_vr.dm b/code/modules/events/event_container_vr.dm index 2712bf9e6b..bf4341ecd7 100644 --- a/code/modules/events/event_container_vr.dm +++ b/code/modules/events/event_container_vr.dm @@ -66,9 +66,9 @@ available_events = list( new /datum/event_meta(EVENT_LEVEL_MODERATE, "Nothing", /datum/event/nothing, 1600), // Leaks gas into an unoccupied room. - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, -30, list(ASSIGNMENT_MEDICAL = 30), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, -30, list(ASSIGNMENT_MEDICAL = 30), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Atmos Leak", /datum/event/atmos_leak, 30, list(ASSIGNMENT_ENGINEER = 25), 1), - new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Camera Damage", /datum/event/camera_damage, 20, list(ASSIGNMENT_ENGINEER = 20)), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Camera Damage", /datum/event/camera_damage, 20, list(ASSIGNMENT_ENGINEER = 20)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Carp School", /datum/event/carp_migration, -20, list(ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_SECURITY = 30, ASSIGNMENT_HOS = 10, ASSIGNMENT_WARDEN = 5), 1), // Just disables comms for a short while. new /datum/event_meta(EVENT_LEVEL_MODERATE, "Communication Blackout", /datum/event/communications_blackout, 500, list(ASSIGNMENT_AI = 150, ASSIGNMENT_SECURITY = 120), 1), @@ -76,7 +76,7 @@ // Just blows out a few lights new /datum/event_meta(EVENT_LEVEL_MODERATE, "Electrical Storm", /datum/event/electrical_storm, 250, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_JANITOR = 150), 1), //Escaped slime event itself needs to be rejiggered because of the mob refactor. - //new /datum/event_meta(EVENT_LEVEL_MODERATE, "Escaped Slimes", /datum/event/escaped_slimes, -40, list(ASSIGNMENT_SCIENTIST = 30, ASSIGNMENT_SECURITY = 20)), + //new /datum/event_meta(EVENT_LEVEL_MODERATE, "Escaped Slimes", /datum/event/escaped_slimes, -40, list(ASSIGNMENT_SCIENTIST = 30, ASSIGNMENT_SECURITY = 20)), // This one is just too fun. new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravity Failure", /datum/event/gravity, 75, list(ASSIGNMENT_ENGINEER = 60), 1), // Temporary power failure, but mitigatead by subgrids @@ -85,6 +85,8 @@ // Pure RP fun, no mechanical effects. new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ionstorm, 0, list(ASSIGNMENT_AI = 80, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meteor Shower", /datum/event/meteor_wave, -50, list(ASSIGNMENT_ENGINEER = 45), 1), + //New CHOMPStation event. Mice and lizards grow into rats and lizardmen. + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Mutants", /datum/event/mutants, 20, list(ASSIGNMENT_ANY = 15, ASSIGNMENT_SECURITY = 25), 1), // Opens doors in brig. So just RP fun new /datum/event_meta(EVENT_LEVEL_MODERATE, "Prison Break", /datum/event/prison_break, -10, list(ASSIGNMENT_SECURITY = 30, ASSIGNMENT_ENGINEER = 20), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 50, list(ASSIGNMENT_MEDICAL = 50), 1), //YW EDIT, Readded diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 3800bc999f..4600804a0e 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -1,12 +1,15 @@ +//CHOMP Edit changed for Southern Cross areas #define LOC_KITCHEN 0 #define LOC_ATMOS 1 #define LOC_CHAPEL 2 #define LOC_LIBRARY 3 #define LOC_HYDRO 4 -#define LOC_VAULT 5 -#define LOC_CONSTR 6 -#define LOC_TECH 7 -#define LOC_GARDEN 8 +#define LOC_TECH 5 +#define LOC_HANGAR1 6 +#define LOC_HANGAR2 7 +#define LOC_HANGAR3 8 +#define LOC_VAULT 9 + #define VERM_MICE 0 #define VERM_LIZARDS 1 @@ -21,8 +24,8 @@ var/vermstring /datum/event/infestation/start() - - location = rand(0,8) +//CHOMP Edit changed for Southern Cross areas + location = rand(0,9) var/list/turf/simulated/floor/turfs = list() var/spawn_area_type switch(location) @@ -41,18 +44,21 @@ if(LOC_HYDRO) spawn_area_type = /area/hydroponics locstring = "hydroponics" - if(LOC_VAULT) - spawn_area_type = /area/security/nuke_storage - locstring = "the vault" - if(LOC_CONSTR) - spawn_area_type = /area/construction - locstring = "the construction area" if(LOC_TECH) spawn_area_type = /area/storage/tech locstring = "technical storage" - if(LOC_GARDEN) - spawn_area_type = /area/hydroponics/garden - locstring = "the public garden" + if(LOC_HANGAR1) + spawn_area_type = /area/hangar/one + locstring = "the hangar deck" + if(LOC_HANGAR1) + spawn_area_type = /area/hangar/two + locstring = "the hangar deck" + if(LOC_HANGAR1) + spawn_area_type = /area/hangar/three + locstring = "the hangar deck" + if(LOC_VAULT) + spawn_area_type = /area/security/nuke_storage + locstring = "the vault" for(var/areapath in typesof(spawn_area_type)) var/area/A = locate(areapath) @@ -100,9 +106,11 @@ #undef LOC_CHAPEL #undef LOC_LIBRARY #undef LOC_HYDRO -#undef LOC_VAULT #undef LOC_TECH -#undef LOC_GARDEN +#undef LOC_HANGAR1 +#undef LOC_HANGAR2 +#undef LOC_HANGAR3 +#undef LOC_VAULT #undef VERM_MICE #undef VERM_LIZARDS diff --git a/code/modules/events/mutants.dm b/code/modules/events/mutants.dm new file mode 100644 index 0000000000..706c93e13f --- /dev/null +++ b/code/modules/events/mutants.dm @@ -0,0 +1,100 @@ +#define LOC_KITCHEN 0 +#define LOC_ATMOS 1 +#define LOC_CHAPEL 2 +#define LOC_LIBRARY 3 +#define LOC_HYDRO 4 +#define LOC_TECH 5 +#define LOC_HANGAR1 6 +#define LOC_HANGAR2 7 +#define LOC_HANGAR3 8 + + +#define VERM_RATS 0 +#define VERM_LIZARDMEN 1 + +/datum/event/mutants + announceWhen = 25 + endWhen = 26 + var/location + var/locstring + var/vermin + var/vermstring + +/datum/event/mutants/start() + + location = rand(0,8) + var/list/turf/simulated/floor/turfs = list() + var/spawn_area_type + switch(location) + if(LOC_KITCHEN) + spawn_area_type = /area/crew_quarters/kitchen + locstring = "the kitchen" + if(LOC_ATMOS) + spawn_area_type = /area/engineering/atmos + locstring = "atmospherics" + if(LOC_CHAPEL) + spawn_area_type = /area/chapel/main + locstring = "the chapel" + if(LOC_LIBRARY) + spawn_area_type = /area/library + locstring = "the library" + if(LOC_HYDRO) + spawn_area_type = /area/hydroponics + locstring = "hydroponics" + if(LOC_TECH) + spawn_area_type = /area/storage/tech + locstring = "technical storage" + if(LOC_HANGAR1) + spawn_area_type = /area/hangar/one + locstring = "the hangar deck" + if(LOC_HANGAR1) + spawn_area_type = /area/hangar/two + locstring = "the hangar deck" + if(LOC_HANGAR1) + spawn_area_type = /area/hangar/three + locstring = "the hangar deck" + + for(var/areapath in typesof(spawn_area_type)) + var/area/A = locate(areapath) + for(var/turf/simulated/floor/F in A.contents) + if(turf_clear(F)) + turfs += F + + var/list/spawn_types = list() + var/max_number + vermin = rand(0,1) + switch(vermin) + if(VERM_RATS) + spawn_types = list(/mob/living/simple_mob/animal/passive/mouse/event) + max_number = 6 + vermstring = "mutant mice" + if(VERM_LIZARDMEN) + spawn_types = list(/mob/living/simple_mob/animal/passive/lizard/event) + max_number = 6 + vermstring = "mutant lizards" + + spawn(0) + var/num = rand(2,max_number) + while(turfs.len > 0 && num > 0) + var/turf/simulated/floor/T = pick(turfs) + turfs.Remove(T) + num-- + var/spawn_type = pick(spawn_types) + new spawn_type(T) + + +/datum/event/mutants/announce() + command_announcement.Announce("Bioscans indicate... What are those? It looks like [vermstring] have been breeding in [locstring]. Clear them out, just in case.", "Vermin infestation") + +#undef LOC_KITCHEN +#undef LOC_ATMOS +#undef LOC_CHAPEL +#undef LOC_LIBRARY +#undef LOC_HYDRO +#undef LOC_TECH +#undef LOC_HANGAR1 +#undef LOC_HANGAR2 +#undef LOC_HANGAR3 + +#undef VERM_RATS +#undef VERM_LIZARDS \ No newline at end of file