This commit is contained in:
Guti
2023-12-29 19:52:25 -05:00
committed by GitHub
parent 1a788cdc8d
commit 1bce7a45ce
5 changed files with 212 additions and 0 deletions
@@ -101,6 +101,7 @@
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Virology Breach", /datum/event/prison_break/virology, 0, list(ASSIGNMENT_MEDICAL = 100), 1, min_jobs = list(ASSIGNMENT_MEDICAL = 1)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_SCIENCE = 100), 1, min_jobs = list(ASSIGNMENT_SCIENTIST = 1), min_jobs = list(ASSIGNMENT_SCIENTIST = 1, ASSIGNMENT_SECURITY =1)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Jellyfish School", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meaty Ore Shower", /datum/event/meteor_wave/meatyores, -50, list(ASSIGNMENT_ENGINEER = 45), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 2)),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meteor Shower", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 20), min_jobs = list(ASSIGNMENT_ENGINEER = 3)),
@@ -130,6 +131,7 @@
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1, min_jobs = list(ASSIGNMENT_CARGO = 1)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Viral Infection", /datum/event/viral_infection, -50, list(ASSIGNMENT_MEDICAL = 25), 1, min_jobs = list(ASSIGNMENT_MEDICAL = 2)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Excotic Infestation", /datum/event/dangerinfestation, -60, list(ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENCE = 5, ASSIGNMENT_ANY = 1)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meaty Ores Wave", /datum/event/meteor_wave/meatyores, -90, list(ASSIGNMENT_ENGINEER = 50, ASSIGNMENT_MEDICAL = 10, ASSIGNMENT_ANY = 1), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station,0, list(ASSIGNMENT_ANY = 5), 0),
@@ -0,0 +1,68 @@
/datum/event/meteor_wave/meatyores/get_skybox_image()
var/image/res = image('icons/skybox/rockbox.dmi', "rockbox")
res.color = COLOR_ASSEMBLY_RED
res.appearance_flags = RESET_COLOR
return res
/datum/event/meteor_wave/meatyores/tick()
if(activeFor >= alarmWhen)
for(var/obj/machinery/shield_diffuser/SD in global.machines)
if(SD.z in affecting_z)
SD.meteor_alarm(10)
if(waves && activeFor >= next_meteor)
wave()
/datum/event/meteor_wave/meatyores/proc/wave()
var/pick_side = prob(80) ? start_side : (prob(50) ? turn(start_side, 90) : turn(start_side, -90))
if(!affecting_z.len)
return
spawn() spawn_meteors(get_wave_size(), get_meatyores(), pick_side, pick(affecting_z))
next_meteor += rand(next_meteor_lower, next_meteor_upper) / severity
waves--
endWhen = worst_case_end()
/datum/event/meteor_wave/meatyores/announce()
if(!victim)
switch(severity)
if(EVENT_LEVEL_MAJOR)
command_announcement.Announce("Meaty ores have been detected on collision course with \the [location_name()].", "Meteor Alert", new_sound = 'sound/AI/meteors.ogg')
else
command_announcement.Announce("\The [location_name()] is now in a meaty ore shower.", "Meteor Alert")
/datum/event/meteor_wave/meatyores/proc/get_meatyores()
switch(severity)
if(EVENT_LEVEL_MAJOR)
return meatyores_major
if(EVENT_LEVEL_MODERATE)
return meatyores_moderate
else
return meatyores_minor
var/list/meatyores_minor = list(
/obj/effect/meteor/medium/meatyore = 80,
/obj/effect/meteor/dust/meatyore = 30,
/obj/effect/meteor/irradiated/meatyore = 30,
/obj/effect/meteor/big/meatyore = 30,
/obj/effect/meteor/flaming/meatyore = 10,
)
var/list/meatyores_moderate = list(
/obj/effect/meteor/medium/meatyore = 80,
/obj/effect/meteor/big/meatyore = 30,
/obj/effect/meteor/dust/meatyore = 30,
/obj/effect/meteor/irradiated/meatyore = 30,
/obj/effect/meteor/flaming/meatyore = 10,
/obj/effect/meteor/emp/meatyore = 10,
)
var/list/meatyores_major = list(
/obj/effect/meteor/medium/meatyore = 80,
/obj/effect/meteor/big/meatyore = 30,
/obj/effect/meteor/dust/meatyore = 30,
/obj/effect/meteor/irradiated/meatyore = 30,
/obj/effect/meteor/emp/meatyore = 30,
/obj/effect/meteor/flaming/meatyore = 10,
/obj/effect/meteor/tunguska/meatyore = 1,
)