mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-25 14:16:58 +01:00
Meatyores (#7475)
This commit is contained in:
@@ -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,
|
||||
)
|
||||
Reference in New Issue
Block a user