Adjusts events and refactors borgs a bit in process

This commit is contained in:
Heroman3003
2022-12-31 07:04:47 +10:00
committed by CHOMPStation2
parent 79629be447
commit 21b9d0e636
12 changed files with 454 additions and 85 deletions

View File

@@ -12,7 +12,7 @@
if(isrobot(M))
var/mob/living/silicon/robot/R = M
if(R.module.type == /obj/item/weapon/robot_module/robot/scrubpup) // You can now feed the trash borg yay.
if(R.module.type == /obj/item/weapon/robot_module/robot/janitor/scrubpup) // You can now feed the trash borg yay.
playsound(src,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
forceMove(R.vore_selected)

View File

@@ -161,7 +161,7 @@
update_state()
/obj/structure/door_assembly/attack_robot(mob/living/silicon/robot/user)
if(Adjacent(user) && (user.module && (istype(user.module,/obj/item/weapon/robot_module/robot/engineering/general)) \
if(Adjacent(user) && (user.module && (istype(user.module,/obj/item/weapon/robot_module/robot/engineering)) \
|| istype(user.module,/obj/item/weapon/robot_module/drone))) //Only dron (and engiborg) needs this.
rename_door(user)

View File

@@ -76,7 +76,7 @@
update_state()
/obj/structure/windoor_assembly/attack_robot(mob/living/silicon/robot/user)
if(Adjacent(user) && (user.module && (istype(user.module,/obj/item/weapon/robot_module/robot/engineering/general)) \
if(Adjacent(user) && (user.module && (istype(user.module,/obj/item/weapon/robot_module/robot/engineering)) \
|| istype(user.module,/obj/item/weapon/robot_module/drone))) //Only dron (and engiborg) needs this.
rename_door(user)

View File

@@ -41,7 +41,7 @@
emote_sound = 'sound/voice/biamthelaw.ogg'
/decl/emote/audible/synth/security/mob_can_use(var/mob/living/silicon/robot/user)
return ..() && (istype(user) && (istype(user.module, /obj/item/weapon/robot_module/robot/security) || istype(user.module, /obj/item/weapon/robot_module/robot/knine))) //VOREStation Add - knine module
return ..() && (istype(user) && (istype(user.module, /obj/item/weapon/robot_module/robot/security)))
/decl/emote/audible/synth/security/halt
key = "halt"

View File

@@ -140,8 +140,11 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lost Spiders", /datum/event/spider_migration, 20, list(ASSIGNMENT_SECURITY = 10), 1),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Hacker", /datum/event/money_hacker, 0, list(ASSIGNMENT_ANY = 4), 1, 10, 25),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Lotto", /datum/event/money_lotto, 0, list(ASSIGNMENT_ANY = 1), 1, 5, 15),
<<<<<<< HEAD
//YW Change new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Mundane News", /datum/event/mundane_news, 300),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "PDA Spam", /datum/event/pda_spam, 0, list(ASSIGNMENT_ANY = 4), 0, 25, 50),
=======
>>>>>>> a533de71c6... Merge pull request #14269 from Heroman3003/borg-event-stuff
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Shipping Error", /datum/event/shipping_error , 30, list(ASSIGNMENT_ANY = 2), 0),
//YW Change new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Space Dust", /datum/event/dust , 60, list(ASSIGNMENT_ENGINEER = 20), 0, 0, 50),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Trivial News", /datum/event/trivial_news, 400),

View File

@@ -42,7 +42,10 @@
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lost Carp", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 40), 1, min_jobs = list(ASSIGNMENT_SECURITY = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Hacker", /datum/event/money_hacker, 0, list(ASSIGNMENT_ANY = 4), 1, 10, 25),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Lotto", /datum/event/money_lotto, 0, list(ASSIGNMENT_ANY = 1), 1, 5, 15),
<<<<<<< HEAD
//new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Mundane News", /datum/event/mundane_news, 300),
=======
>>>>>>> a533de71c6... Merge pull request #14269 from Heroman3003/borg-event-stuff
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Shipping Error", /datum/event/shipping_error , 30, list(ASSIGNMENT_ANY = 2), 0),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Trivial News", /datum/event/trivial_news, 400),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lore News", /datum/event/lore_news, 400),

View File

@@ -208,6 +208,10 @@ var/list/event_last_fired = list()
active_with_role["Medical"]++
else if(istype(R.module, /obj/item/weapon/robot_module/robot/research))
active_with_role["Scientist"]++
else if(istype(R.module, /obj/item/weapon/robot_module/robot/janitor))
active_with_role["Janitor"]++
else if(istype(R.module, /obj/item/weapon/robot_module/robot/clerical/butler))
active_with_role["Botanist"]++
if(M.mind.assigned_role in SSjob.get_job_titles_in_department(DEPARTMENT_ENGINEERING))
active_with_role["Engineer"]++

View File

@@ -2,14 +2,14 @@ var/global/list/robot_modules = list(
"Standard" = /obj/item/weapon/robot_module/robot/standard,
"Service" = /obj/item/weapon/robot_module/robot/clerical/butler,
"Clerical" = /obj/item/weapon/robot_module/robot/clerical/general,
"Research" = /obj/item/weapon/robot_module/robot/research,
"Miner" = /obj/item/weapon/robot_module/robot/miner,
"Research" = /obj/item/weapon/robot_module/robot/research/general,
"Miner" = /obj/item/weapon/robot_module/robot/miner/general,
"Crisis" = /obj/item/weapon/robot_module/robot/medical/crisis,
"Surgeon" = /obj/item/weapon/robot_module/robot/medical/surgeon,
"Security" = /obj/item/weapon/robot_module/robot/security/general,
"Combat" = /obj/item/weapon/robot_module/robot/security/combat,
"Engineering" = /obj/item/weapon/robot_module/robot/engineering/general,
"Janitor" = /obj/item/weapon/robot_module/robot/janitor,
"Janitor" = /obj/item/weapon/robot_module/robot/janitor/general,
"Gravekeeper" = /obj/item/weapon/robot_module/robot/gravekeeper,
"Lost" = /obj/item/weapon/robot_module/robot/lost,
"Protector" = /obj/item/weapon/robot_module/robot/syndicate/protector,
@@ -586,7 +586,7 @@ var/global/list/robot_modules = list(
"Tower" = "drider-Janitor"
)
/obj/item/weapon/robot_module/robot/janitor/New()
/obj/item/weapon/robot_module/robot/janitor/general/New()
..()
src.modules += new /obj/item/weapon/soap/nanotrasen(src)
src.modules += new /obj/item/weapon/storage/bag/trash(src)
@@ -596,7 +596,7 @@ var/global/list/robot_modules = list(
src.emag.reagents.add_reagent("lube", 250)
src.emag.name = "Lube spray"
/obj/item/weapon/robot_module/robot/janitor/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
/obj/item/weapon/robot_module/robot/janitor/general/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
var/obj/item/device/lightreplacer/LR = locate() in src.modules
LR.Charge(R, amount)
if(src.emag)
@@ -626,6 +626,9 @@ var/global/list/robot_modules = list(
)
/obj/item/weapon/robot_module/robot/clerical/butler
channels = list("Service" = 1)
/obj/item/weapon/robot_module/robot/clerical/butler/general
sprites = list(
"M-USE NanoTrasen" = "robotServ",
"Cabeiri" = "eyebot-standard",
@@ -651,7 +654,7 @@ var/global/list/robot_modules = list(
"Tower" = "drider-Service"
)
/obj/item/weapon/robot_module/robot/clerical/butler/New()
/obj/item/weapon/robot_module/robot/clerical/butler/general/New()
..()
src.modules += new /obj/item/weapon/gripper/service(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/bucket(src)
@@ -752,7 +755,7 @@ var/global/list/robot_modules = list(
)
supported_upgrades = list(/obj/item/borg/upgrade/pka, /obj/item/borg/upgrade/diamonddrill)
/obj/item/weapon/robot_module/robot/miner/New()
/obj/item/weapon/robot_module/robot/miner/general/New()
..()
src.modules += new /obj/item/borg/sight/material(src)
src.modules += new /obj/item/weapon/tool/wrench/cyborg(src)
@@ -790,7 +793,7 @@ var/global/list/robot_modules = list(
)
supported_upgrades = list(/obj/item/borg/upgrade/advrped)
/obj/item/weapon/robot_module/robot/research/New()
/obj/item/weapon/robot_module/robot/research/general/New()
..()
src.modules += new /obj/item/weapon/portable_destructive_analyzer(src)
src.modules += new /obj/item/weapon/gripper/research(src)
@@ -834,7 +837,7 @@ var/global/list/robot_modules = list(
C.synths = list(wire)
src.modules += C
/obj/item/weapon/robot_module/robot/research/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
/obj/item/weapon/robot_module/robot/research/general/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
var/obj/item/weapon/reagent_containers/syringe/S = locate() in src.modules
if(S.mode == 2)

View File

@@ -63,6 +63,7 @@
)
/hook/startup/proc/robot_modules_vr()
<<<<<<< HEAD
robot_modules["Medihound"] = /obj/item/weapon/robot_module/robot/medihound
robot_modules["K9"] = /obj/item/weapon/robot_module/robot/knine
robot_modules["ERT"] = /obj/item/weapon/robot_module/robot/ert
@@ -74,8 +75,19 @@
robot_modules["KMine"] = /obj/item/weapon/robot_module/robot/kmine
robot_modules["UnityHound"] = /obj/item/weapon/robot_module/robot/chound //CHOMP Addition Unity
robot_modules["Honk-Hound"] = /obj/item/weapon/robot_module/robot/clerical/honkborg //CHOMP Addition Honk
=======
robot_modules["Medihound"] = /obj/item/weapon/robot_module/robot/medical/medihound
robot_modules["K9"] = /obj/item/weapon/robot_module/robot/security/knine
robot_modules["ERT"] = /obj/item/weapon/robot_module/robot/security/ert
robot_modules["Janihound"] = /obj/item/weapon/robot_module/robot/janitor/scrubpup
robot_modules["Sci-borg"] = /obj/item/weapon/robot_module/robot/research/sciencehound
robot_modules["Pupdozer"] = /obj/item/weapon/robot_module/robot/engineering/engiedog
robot_modules["Service-Hound"] = /obj/item/weapon/robot_module/robot/clerical/butler/brodog
robot_modules["BoozeHound"] = /obj/item/weapon/robot_module/robot/clerical/butler/booze
robot_modules["KMine"] = /obj/item/weapon/robot_module/robot/miner/kmine
>>>>>>> a533de71c6... Merge pull request #14269 from Heroman3003/borg-event-stuff
robot_modules["Stray"] = /obj/item/weapon/robot_module/robot/stray
robot_modules["TraumaHound"] = /obj/item/weapon/robot_module/robot/medical/trauma
robot_modules["TraumaHound"] = /obj/item/weapon/robot_module/robot/medical/traumahound
return 1
//Just add a new proc with the robot_module type if you wish to run some other vore code
@@ -94,8 +106,10 @@
src.modules += new /obj/item/device/sleevemate(src) //Lets them scan people.
. = ..() //Any Global vore modules will come from here
/obj/item/weapon/robot_module/robot/medical/surgeon
/obj/item/weapon/robot_module/robot/medical
pto_type = PTO_MEDICAL
/obj/item/weapon/robot_module/robot/medical/surgeon
vr_sprites = list(
"Acheron" = "mechoid-Medical",
"Shellguard Noble" = "Noble-MED",
@@ -105,7 +119,6 @@
)
/obj/item/weapon/robot_module/robot/medical/crisis
pto_type = PTO_MEDICAL
vr_sprites = list(
"Handy" = "handy-med",
"Acheron" = "mechoid-Medical",
@@ -115,8 +128,10 @@
"Feminine Humanoid" = "uptall-crisis"
)
/obj/item/weapon/robot_module/robot/clerical/butler
/obj/item/weapon/robot_module/robot/clerical
pto_type = PTO_CIVILIAN
/obj/item/weapon/robot_module/robot/clerical/butler/general
vr_sprites = list(
"Handy - Service" = "handy-service",
"Handy - Hydro" = "handy-hydro",
@@ -128,7 +143,6 @@
)
/obj/item/weapon/robot_module/robot/clerical/general
pto_type = PTO_CIVILIAN
vr_sprites = list(
"Handy" = "handy-clerk",
"Acheron" = "mechoid-Service",
@@ -140,6 +154,8 @@
/obj/item/weapon/robot_module/robot/janitor
pto_type = PTO_CIVILIAN
/obj/item/weapon/robot_module/robot/janitor/general
vr_sprites = list(
"Handy" = "handy-janitor",
"Acheron" = "mechoid-Janitor",
@@ -149,8 +165,10 @@
"Feminine Humanoid" = "uptall-janitor"
)
/obj/item/weapon/robot_module/robot/security/general
/obj/item/weapon/robot_module/robot/security
pto_type = PTO_SECURITY
/obj/item/weapon/robot_module/robot/security/general
vr_sprites = list(
"Handy" = "handy-sec",
"Acheron" = "mechoid-Security",
@@ -160,8 +178,18 @@
"Feminine Humanoid" = "uptall-security"
)
/obj/item/weapon/robot_module/robot/security/combat
vr_sprites = list(
"Acheron" = "mechoid-Combat",
"ZOOM-BA" = "zoomba-combat",
"W02M" = "worm-combat",
"Feminine Humanoid" = "uptall-security"
)
/obj/item/weapon/robot_module/robot/miner
pto_type = PTO_CARGO
/obj/item/weapon/robot_module/robot/miner/general
vr_sprites = list(
"Handy" = "handy-miner",
"Acheron" = "mechoid-Miner",
@@ -182,8 +210,11 @@
"Feminine Humanoid" = "uptall-standard",
"Feminine Humanoid, Variant 2" = "uptall-standard2"
)
/obj/item/weapon/robot_module/robot/engineering/general
/obj/item/weapon/robot_module/robot/engineering
pto_type = PTO_ENGINEERING
/obj/item/weapon/robot_module/robot/engineering/general
vr_sprites = list(
"Acheron" = "mechoid-Engineering",
"Shellguard Noble" = "Noble-ENG",
@@ -194,6 +225,8 @@
/obj/item/weapon/robot_module/robot/research
pto_type = PTO_SCIENCE
/obj/item/weapon/robot_module/robot/research/general
vr_sprites = list(
"Acheron" = "mechoid-Science",
"ZOOM-BA" = "zoomba-research",
@@ -202,16 +235,7 @@
"Feminine Humanoid" = "uptall-science"
)
/obj/item/weapon/robot_module/robot/security/combat
pto_type = PTO_SECURITY
vr_sprites = list(
"Acheron" = "mechoid-Combat",
"ZOOM-BA" = "zoomba-combat",
"W02M" = "worm-combat",
"Feminine Humanoid" = "uptall-security"
)
/obj/item/weapon/robot_module/robot/knine
/obj/item/weapon/robot_module/robot/security/knine
name = "k9 robot module"
sprites = list(
"K9 hound" = "k9",
@@ -224,13 +248,8 @@
"Drake" = "drakesec",
"Secborg model V-4" = "secraptor"//CHOMPEdit
)
channels = list("Security" = 1)
networks = list(NETWORK_SECURITY)
pto_type = PTO_SECURITY
can_be_pushed = 0
supported_upgrades = list(/obj/item/borg/upgrade/tasercooler)
/obj/item/weapon/robot_module/robot/knine/New(var/mob/living/silicon/robot/R)
/obj/item/weapon/robot_module/robot/security/knine/New(var/mob/living/silicon/robot/R)
src.modules += new /obj/item/weapon/handcuffs/cyborg(src) //You need cuffs to be a proper sec borg!
src.modules += new /obj/item/weapon/dogborg/jaws/big(src) //In case there's some kind of hostile mob.
src.modules += new /obj/item/weapon/melee/baton/robot(src) //Since the pounce module refused to work, they get a stunbaton instead.
@@ -275,7 +294,7 @@
R.verbs |= /mob/living/silicon/robot/proc/rest_style
..()
/obj/item/weapon/robot_module/robot/knine/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
/obj/item/weapon/robot_module/robot/security/knine/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
var/obj/item/device/flash/F = locate() in src.modules
if(F.broken)
F.broken = 0
@@ -294,13 +313,8 @@
B.bcell.give(amount)*/
/obj/item/weapon/robot_module/robot/medihound
/obj/item/weapon/robot_module/robot/medical/medihound
name = "MediHound module"
channels = list("Medical" = 1)
networks = list(NETWORK_MEDICAL)
subsystems = list(/mob/living/silicon/proc/subsystem_crew_monitor)
pto_type = PTO_MEDICAL
can_be_pushed = 0
sprites = list(
"Medical Hound" = "medihound",
"Dark Medical Hound (Static)" = "medihounddark",
@@ -312,7 +326,7 @@
"Mediborg model V-4" = "medraptor" //CHOMPEdit
)
/obj/item/weapon/robot_module/robot/medihound/New(var/mob/living/silicon/robot/R)
/obj/item/weapon/robot_module/robot/medical/medihound/New(var/mob/living/silicon/robot/R)
src.modules += new /obj/item/weapon/dogborg/jaws/small(src) //In case a patient is being attacked by carp.
src.modules += new /obj/item/device/dogborg/boop_module(src) //Boop the crew.
src.modules += new /obj/item/device/healthanalyzer(src) // See who's hurt specificially.
@@ -396,20 +410,15 @@
R.verbs |= /mob/living/silicon/robot/proc/rest_style
..()
/obj/item/weapon/robot_module/robot/medical/trauma
/obj/item/weapon/robot_module/robot/medical/traumahound
name = "traumahound robot module"
channels = list("Medical" = 1)
networks = list(NETWORK_MEDICAL)
subsystems = list(/mob/living/silicon/proc/subsystem_crew_monitor)
pto_type = PTO_MEDICAL
can_be_pushed = 0
sprites = list(
"Traumahound" = "traumavale",
"Drake" = "draketrauma",
"Borgi" = "borgi-trauma"
)
/obj/item/weapon/robot_module/robot/medical/trauma/New(var/mob/living/silicon/robot/R)
/obj/item/weapon/robot_module/robot/medical/traumahound/New(var/mob/living/silicon/robot/R)
src.modules += new /obj/item/device/healthanalyzer(src)
src.modules += new /obj/item/weapon/dogborg/jaws/small(src)
src.modules += new /obj/item/device/dogborg/boop_module(src)
@@ -484,19 +493,15 @@
R.verbs |= /mob/living/silicon/robot/proc/rest_style
..()
/obj/item/weapon/robot_module/robot/ert
/obj/item/weapon/robot_module/robot/security/ert
name = "Emergency Responce module"
channels = list("Security" = 1)
networks = list(NETWORK_SECURITY)
pto_type = PTO_SECURITY
can_be_pushed = 0
sprites = list(
"Standard" = "ert",
"Classic" = "ertold",
"Borgi" = "borgi"
)
/obj/item/weapon/robot_module/robot/ert/New(var/mob/living/silicon/robot/R)
/obj/item/weapon/robot_module/robot/security/ert/New(var/mob/living/silicon/robot/R)
src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
src.modules += new /obj/item/weapon/dogborg/jaws/ert(src)
src.modules += new /obj/item/taperoll/police(src)
@@ -540,7 +545,7 @@
R.verbs |= /mob/living/silicon/robot/proc/rest_style
..()
/obj/item/weapon/robot_module/robot/scrubpup
/obj/item/weapon/robot_module/robot/janitor/scrubpup
name = "Custodial Hound module"
sprites = list(
"Custodial Hound" = "scrubpup",
@@ -550,11 +555,9 @@
"Cat" = "vixjani", //CHOMPEdit
"Drake" = "drakejanit"
)
channels = list("Service" = 1)
pto_type = PTO_CIVILIAN
can_be_pushed = 0
/obj/item/weapon/robot_module/robot/scrubpup/New(var/mob/living/silicon/robot/R)
/obj/item/weapon/robot_module/robot/janitor/scrubpup/New(var/mob/living/silicon/robot/R)
src.modules += new /obj/item/weapon/dogborg/jaws/small(src)
src.modules += new /obj/item/device/dogborg/boop_module(src)
src.modules += new /obj/item/pupscrubber(src)
@@ -632,7 +635,7 @@
R.verbs |= /mob/living/silicon/robot/proc/rest_style
..()
/obj/item/weapon/robot_module/robot/science
/obj/item/weapon/robot_module/robot/research/sciencehound
name = "Research Hound Module"
sprites = list(
"Research Hound" = "science",
@@ -643,12 +646,9 @@
"Drake" = "drakesci",
"Sciborg model V-4" = "sciraptor"//CHOMPEdit
)
channels = list("Science" = 1)
pto_type = PTO_SCIENCE
can_be_pushed = 0
supported_upgrades = list(/obj/item/borg/upgrade/advrped)
/obj/item/weapon/robot_module/robot/science/New(var/mob/living/silicon/robot/R)
/obj/item/weapon/robot_module/robot/research/sciencehound/New(var/mob/living/silicon/robot/R)
src.modules += new /obj/item/weapon/dogborg/jaws/small(src)
src.modules += new /obj/item/device/dogborg/boop_module(src)
src.modules += new /obj/item/weapon/gripper/research(src)
@@ -725,7 +725,7 @@
R.verbs |= /mob/living/silicon/robot/proc/rest_style
..()
/obj/item/weapon/robot_module/robot/engiedog
/obj/item/weapon/robot_module/robot/engineering/engiedog
name = "Construction Hound module"
sprites = list(
"Pupdozer" = "pupdozer",
@@ -736,13 +736,9 @@
"Cat" = "vixengi", //CHOMPEdit
"Drake" = "drakeeng"
)
channels = list("Engineering" = 1)
networks = list(NETWORK_ENGINEERING)
pto_type = PTO_ENGINEERING
subsystems = list(/mob/living/silicon/proc/subsystem_power_monitor)
can_be_pushed = 0
/obj/item/weapon/robot_module/robot/engiedog/New(var/mob/living/silicon/robot/R)
/obj/item/weapon/robot_module/robot/engineering/engiedog/New(var/mob/living/silicon/robot/R)
src.modules += new /obj/item/borg/sight/meson(src)
src.modules += new /obj/item/weapon/weldingtool/electric/mounted/cyborg(src)
src.modules += new /obj/item/weapon/tool/screwdriver/cyborg(src)
@@ -888,7 +884,7 @@
..()
// Uses modified K9 sprites.
/obj/item/weapon/robot_module/robot/clerical/brodog
/obj/item/weapon/robot_module/robot/clerical/butler/brodog
name = "service-hound module"
sprites = list(
"Blackhound" = "k50",
@@ -898,13 +894,11 @@
"Cat" = "vixserv", //CHOMPEdit
"Drake" = "drakemine"
)
channels = list("Service" = 1)
pto_type = PTO_CIVILIAN
can_be_pushed = 0
// In a nutshell, basicly service/butler robot but in dog form. - Port from CitadelRP
/obj/item/weapon/robot_module/robot/clerical/brodog/New(var/mob/living/silicon/robot/R)
/obj/item/weapon/robot_module/robot/clerical/butler/brodog/New(var/mob/living/silicon/robot/R)
src.modules += new /obj/item/weapon/gripper/service(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/bucket(src)
src.modules += new /obj/item/weapon/material/minihoe(src)
@@ -970,7 +964,7 @@
R.verbs |= /mob/living/silicon/robot/proc/rest_style
..()
/obj/item/weapon/robot_module/robot/kmine
/obj/item/weapon/robot_module/robot/miner/kmine
name = "Supply Hound Module"
sprites = list(
"KMine" = "kmine",
@@ -980,12 +974,9 @@
"Cat Cargo" = "vixcargo", //CHOMPEdit
"Drake" = "drakemine"
)
channels = list("Supply" = 1)
pto_type = PTO_CARGO
can_be_pushed = 0
supported_upgrades = list(/obj/item/borg/upgrade/pka, /obj/item/borg/upgrade/diamonddrill)
/obj/item/weapon/robot_module/robot/kmine/New(var/mob/living/silicon/robot/R)
/obj/item/weapon/robot_module/robot/miner/kmine/New(var/mob/living/silicon/robot/R)
src.modules += new /obj/item/borg/sight/material(src)
src.modules += new /obj/item/weapon/tool/wrench/cyborg(src)
src.modules += new /obj/item/weapon/tool/screwdriver/cyborg(src)
@@ -1054,10 +1045,13 @@
R.verbs -= /mob/living/silicon/robot/proc/rest_style
..()
<<<<<<< HEAD
/obj/item/weapon/robot_module/robot/booze
=======
/obj/item/weapon/robot_module/robot/clerical/butler/booze
>>>>>>> a533de71c6... Merge pull request #14269 from Heroman3003/borg-event-stuff
name = "BoozeHound robot module"
channels = list("Service" = 1)
pto_type = PTO_CIVILIAN
can_be_pushed = 0
sprites = list(
"Beer Buddy" = "boozeborg",
@@ -1070,7 +1064,7 @@
"Vodka Komrade" = "boozeborg(vodka)"
) //CHOMP Edit Added Vodka Komrade
/obj/item/weapon/robot_module/robot/booze/New(var/mob/living/silicon/robot/R)
/obj/item/weapon/robot_module/robot/clerical/butler/booze/New(var/mob/living/silicon/robot/R)
..()
src.modules += new /obj/item/weapon/gripper/service(src)
//src.modules += new /obj/item/weapon/reagent_containers/glass/bucket(src)
@@ -1117,7 +1111,7 @@
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
..()
/obj/item/weapon/robot_module/robot/booze/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
/obj/item/weapon/robot_module/robot/clerical/butler/booze/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
var/obj/item/weapon/reagent_containers/food/condiment/enzyme/E = locate() in src.modules
E.reagents.add_reagent("enzyme", 2 * amount)

View File

@@ -0,0 +1,120 @@
#define ASSIGNMENT_ANY "Any"
#define ASSIGNMENT_AI "AI"
#define ASSIGNMENT_CYBORG "Cyborg"
#define ASSIGNMENT_ENGINEER "Engineer"
#define ASSIGNMENT_GARDENER "Botanist"
#define ASSIGNMENT_JANITOR "Janitor"
#define ASSIGNMENT_MEDICAL "Medical"
#define ASSIGNMENT_SCIENTIST "Scientist"
#define ASSIGNMENT_SECURITY "Security"
//
// VOREStation overrides to the default event manager configuration.
//
// This file lets us configure which events we want in the rotation without conflicts with upstream.
// It works because the actual event containers don't define New(), allowing us to use New() to replace
// the lists of available events. If they ever do define New() this will need to be changed.
//
// Specifically the change is to move events we don't want down into the disabled_events list
//
// Adds a list of pre-disabled events to the available events list.
// This keeps them in the rotation, but disabled, so they can be enabled with a click if desired that round.
/datum/event_container/proc/add_disabled_events(var/list/disabled_events)
for(var/datum/event_meta/EM in disabled_events)
EM.enabled = 0
available_events += EM
/datum/event_container/mundane/New()
available_events = list(
// Severity level, event name, even type, base weight, role weights, one shot, min weight, max weight. Last two only used if set and non-zero
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Nothing", /datum/event/nothing, 400),
// Bluescreens APCs, but they still work
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "APC Damage", /datum/event/apc_damage, 20, list(ASSIGNMENT_ENGINEER = 20), min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Brand Intelligence",/datum/event/brand_intelligence, 0, list(ASSIGNMENT_ENGINEER = 10), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Camera Damage", /datum/event/camera_damage, 20, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_SECURITY = 5), min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Canister Leak", /datum/event/canister_leak, 10, list(ASSIGNMENT_ENGINEER = 20), min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Economic News", /datum/event/economic_event, 300),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lost Carp", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 10), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Hacker", /datum/event/money_hacker, 0, list(ASSIGNMENT_ANY = 4), 1, 10, 25),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Lotto", /datum/event/money_lotto, 0, list(ASSIGNMENT_ANY = 1), 1, 5, 15),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Shipping Error", /datum/event/shipping_error , 30, list(ASSIGNMENT_ANY = 2), 0),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Trivial News", /datum/event/trivial_news, 400),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lore News", /datum/event/lore_news, 400),
// Spawns mice, lizards, or dud spiderlings
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 50, list(ASSIGNMENT_JANITOR = 25), 1),
// Rot only weakens walls, not destroy them
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Ian Storm", /datum/event/ianstorm, 1, list(), 1),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Aurora Caelus", /datum/event/aurora_caelus, 2, list(), 1),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 0, 0, 50, min_jobs = list(ASSIGNMENT_ENGINEER = 2)),
))
/datum/event_container/moderate/New()
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, "Atmos Leak", /datum/event/atmos_leak, 30, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Carp School", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
// Just disables comms for a short while.
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Communication Blackout", /datum/event/communications_blackout, 500, list(), 1),
// Just blows out a few lights
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Electrical Storm", /datum/event/electrical_storm, 70, list(ASSIGNMENT_ENGINEER = 25, ASSIGNMENT_JANITOR = 100), 1),
// Temporary power failure, but mitigatead by subgrids
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grid Check", /datum/event/grid_check, 0, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
// 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_SCIENTIST = 20), min_jobs = list(ASSIGNMENT_AI = 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 = 15, ASSIGNMENT_ENGINEER = 15), 1),
// Radiation, but only in space.
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 0, list(ASSIGNMENT_SECURITY = 20), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Virology Breach", /datum/event/prison_break/virology, 0, list(ASSIGNMENT_MEDICAL = 15, ASSIGNMENT_ENGINEER = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_SCIENTIST = 15, ASSIGNMENT_ENGINEER = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 0, list(ASSIGNMENT_SECURITY = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)),
//Evil grubs that drain station power slightly
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 0, list(ASSIGNMENT_SECURITY = 15, ASSIGNMENT_ENGINEER = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 1, ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Drone Pod Drop", /datum/event/drone_pod_drop, 40, list(ASSIGNMENT_SCIENTIST = 40), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/morph_spawn, 75, list(ASSIGNMENT_ANY = 5), 0),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Maintenance Predator", /datum/event/maintenance_predator, 100, list(ASSIGNMENT_ANY = 5), 0),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Jellyfish School", /datum/event/jellyfish_migration, 0, list(ASSIGNMENT_SECURITY = 15, ASSIGNMENT_MEDICAL = 3), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, 0, list(ASSIGNMENT_MEDICAL = 30), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meteor Shower", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 20)),
// Not bad (dorms are shielded) but inconvenient
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 50, list(ASSIGNMENT_MEDICAL = 50), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Random Antagonist", /datum/event/random_antag, 0, list(ASSIGNMENT_SECURITY = 1), 1, 0, 5),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Solar Storm", /datum/event/solar_storm, 30, list(ASSIGNMENT_ENGINEER = 40, ASSIGNMENT_SECURITY = 30), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravity Failure", /datum/event/gravity, 75, list(ASSIGNMENT_ENGINEER = 60), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 1, 0, 50, min_jobs = list(ASSIGNMENT_ENGINEER = 3)),
))
/datum/event_container/major/New()
available_events = list(
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 3600),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 20, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 10, list(ASSIGNMENT_ENGINEER = 3, ASSIGNMENT_GARDENER = 3, ASSIGNMENT_SCIENTIST = 3), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 10, list(ASSIGNMENT_SECURITY = 5), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station, 0, list(ASSIGNMENT_ENGINEER = 5, ASSIGNMENT_MEDICAL = 5, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_SCIENTIST = 5), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Jellyfish Migration", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Strike", /datum/event/meteor_strike, 10, list(ASSIGNMENT_ENGINEER = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 10, list(ASSIGNMENT_ENGINEER = 60), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 15), 1),
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),
))
#undef ASSIGNMENT_ANY
#undef ASSIGNMENT_AI
#undef ASSIGNMENT_CYBORG
#undef ASSIGNMENT_ENGINEER
#undef ASSIGNMENT_GARDENER
#undef ASSIGNMENT_JANITOR
#undef ASSIGNMENT_MEDICAL
#undef ASSIGNMENT_SCIENTIST
#undef ASSIGNMENT_SECURITY

View File

@@ -0,0 +1,121 @@
#define ASSIGNMENT_ANY "Any"
#define ASSIGNMENT_AI "AI"
#define ASSIGNMENT_CYBORG "Cyborg"
#define ASSIGNMENT_ENGINEER "Engineer"
#define ASSIGNMENT_GARDENER "Botanist"
#define ASSIGNMENT_JANITOR "Janitor"
#define ASSIGNMENT_MEDICAL "Medical"
#define ASSIGNMENT_SCIENTIST "Scientist"
#define ASSIGNMENT_SECURITY "Security"
//
// VOREStation overrides to the default event manager configuration.
//
// This file lets us configure which events we want in the rotation without conflicts with upstream.
// It works because the actual event containers don't define New(), allowing us to use New() to replace
// the lists of available events. If they ever do define New() this will need to be changed.
//
// Specifically the change is to move events we don't want down into the disabled_events list
//
// Adds a list of pre-disabled events to the available events list.
// This keeps them in the rotation, but disabled, so they can be enabled with a click if desired that round.
/datum/event_container/proc/add_disabled_events(var/list/disabled_events)
for(var/datum/event_meta/EM in disabled_events)
EM.enabled = 0
available_events += EM
/datum/event_container/mundane/New()
available_events = list(
// Severity level, event name, even type, base weight, role weights, one shot, min weight, max weight. Last two only used if set and non-zero
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Nothing", /datum/event/nothing, 400),
// Bluescreens APCs, but they still work
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "APC Damage", /datum/event/apc_damage, 20, list(ASSIGNMENT_ENGINEER = 20), min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Brand Intelligence",/datum/event/brand_intelligence, 0, list(ASSIGNMENT_ENGINEER = 10), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Camera Damage", /datum/event/camera_damage, 20, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_SECURITY = 5), min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Canister Leak", /datum/event/canister_leak, 10, list(ASSIGNMENT_ENGINEER = 20), min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 0, 0, 50, min_jobs = list(ASSIGNMENT_ENGINEER = 2)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Economic News", /datum/event/economic_event, 300),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lost Carp", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 10), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Hacker", /datum/event/money_hacker, 0, list(ASSIGNMENT_ANY = 4), 1, 10, 25),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Lotto", /datum/event/money_lotto, 0, list(ASSIGNMENT_ANY = 1), 1, 5, 15),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Shipping Error", /datum/event/shipping_error , 30, list(ASSIGNMENT_ANY = 2), 0),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Trivial News", /datum/event/trivial_news, 400),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lore News", /datum/event/lore_news, 400),
// Spawns mice, lizards, or dud spiderlings
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 50, list(ASSIGNMENT_JANITOR = 25), 1),
// Rot only weakens walls, not destroy them
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Aurora Caelus", /datum/event/aurora_caelus, 2, list(), 1),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Ian Storm", /datum/event/ianstorm, 1, list(), 1),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
))
/datum/event_container/moderate/New()
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, "Atmos Leak", /datum/event/atmos_leak, 30, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Carp School", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
// Just disables comms for a short while.
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Communication Blackout", /datum/event/communications_blackout, 500, list(), 1),
// Just blows out a few lights
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Electrical Storm", /datum/event/electrical_storm, 70, list(ASSIGNMENT_ENGINEER = 25, ASSIGNMENT_JANITOR = 100), 1),
// This one is just too fun.
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravity Failure", /datum/event/gravity, 150, list(), 1),
// Temporary power failure, but mitigatead by subgrids
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grid Check", /datum/event/grid_check, 0, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
// 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_SCIENTIST = 20), min_jobs = list(ASSIGNMENT_AI = 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 = 15, ASSIGNMENT_ENGINEER = 15), 1),
// Radiation, but only in space.
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 0, list(ASSIGNMENT_SECURITY = 20), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Solar Storm", /datum/event/solar_storm, 30, list(ASSIGNMENT_ENGINEER = 30, ASSIGNMENT_ANY = 5), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 1, 0, 50, min_jobs = list(ASSIGNMENT_ENGINEER = 3)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Virology Breach", /datum/event/prison_break/virology, 0, list(ASSIGNMENT_MEDICAL = 15, ASSIGNMENT_ENGINEER = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_SCIENTIST = 15, ASSIGNMENT_ENGINEER = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 0, list(ASSIGNMENT_SECURITY = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)),
//Evil grubs that drain station power slightly
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 0, list(ASSIGNMENT_SECURITY = 15, ASSIGNMENT_ENGINEER = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 1, ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Drone Pod Drop", /datum/event/drone_pod_drop, 40, list(ASSIGNMENT_SCIENTIST = 40), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/morph_spawn, 75, list(ASSIGNMENT_ANY = 5), 0),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Maintenance Predator", /datum/event/maintenance_predator, 100, list(ASSIGNMENT_ANY = 5), 0),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Jellyfish School", /datum/event/jellyfish_migration, 0, list(ASSIGNMENT_SECURITY = 15, ASSIGNMENT_MEDICAL = 5), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, 0, list(ASSIGNMENT_MEDICAL = 30), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meteor Shower", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 20)),
// Not bad (dorms are shielded) but inconvenient
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 50, list(ASSIGNMENT_MEDICAL = 50), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Random Antagonist", /datum/event/random_antag, 0, list(ASSIGNMENT_SECURITY = 1), 1, 0, 5),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
))
/datum/event_container/major/New()
available_events = list(
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 3600),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 20, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 10, list(ASSIGNMENT_ENGINEER = 3, ASSIGNMENT_GARDENER = 3, ASSIGNMENT_SCIENTIST = 3), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 10, list(ASSIGNMENT_SECURITY = 5), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station, 0, list(ASSIGNMENT_ENGINEER = 5, ASSIGNMENT_MEDICAL = 5, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_SCIENTIST = 5), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Jellyfish Migration", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Strike", /datum/event/meteor_strike, 10, list(ASSIGNMENT_ENGINEER = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 10, list(ASSIGNMENT_ENGINEER = 60), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 15), 1),
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),
))
#undef ASSIGNMENT_ANY
#undef ASSIGNMENT_AI
#undef ASSIGNMENT_CYBORG
#undef ASSIGNMENT_ENGINEER
#undef ASSIGNMENT_GARDENER
#undef ASSIGNMENT_JANITOR
#undef ASSIGNMENT_MEDICAL
#undef ASSIGNMENT_SCIENTIST
#undef ASSIGNMENT_SECURITY

View File

@@ -0,0 +1,121 @@
#define ASSIGNMENT_ANY "Any"
#define ASSIGNMENT_AI "AI"
#define ASSIGNMENT_CYBORG "Cyborg"
#define ASSIGNMENT_ENGINEER "Engineer"
#define ASSIGNMENT_GARDENER "Botanist"
#define ASSIGNMENT_JANITOR "Janitor"
#define ASSIGNMENT_MEDICAL "Medical"
#define ASSIGNMENT_SCIENTIST "Scientist"
#define ASSIGNMENT_SECURITY "Security"
//
// VOREStation overrides to the default event manager configuration.
//
// This file lets us configure which events we want in the rotation without conflicts with upstream.
// It works because the actual event containers don't define New(), allowing us to use New() to replace
// the lists of available events. If they ever do define New() this will need to be changed.
//
// Specifically the change is to move events we don't want down into the disabled_events list
//
// Adds a list of pre-disabled events to the available events list.
// This keeps them in the rotation, but disabled, so they can be enabled with a click if desired that round.
/datum/event_container/proc/add_disabled_events(var/list/disabled_events)
for(var/datum/event_meta/EM in disabled_events)
EM.enabled = 0
available_events += EM
/datum/event_container/mundane/New()
available_events = list(
// Severity level, event name, even type, base weight, role weights, one shot, min weight, max weight. Last two only used if set and non-zero
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Nothing", /datum/event/nothing, 400),
// Bluescreens APCs, but they still work
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "APC Damage", /datum/event/apc_damage, 20, list(ASSIGNMENT_ENGINEER = 20), min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Brand Intelligence",/datum/event/brand_intelligence, 0, list(ASSIGNMENT_ENGINEER = 10), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Camera Damage", /datum/event/camera_damage, 20, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_SECURITY = 5), min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Canister Leak", /datum/event/canister_leak, 10, list(ASSIGNMENT_ENGINEER = 20), min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 0, 0, 50, min_jobs = list(ASSIGNMENT_ENGINEER = 2)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Economic News", /datum/event/economic_event, 300),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lost Carp", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 10), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Hacker", /datum/event/money_hacker, 0, list(ASSIGNMENT_ANY = 4), 1, 10, 25),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Lotto", /datum/event/money_lotto, 0, list(ASSIGNMENT_ANY = 1), 1, 5, 15),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Shipping Error", /datum/event/shipping_error , 30, list(ASSIGNMENT_ANY = 2), 0),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Trivial News", /datum/event/trivial_news, 400),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lore News", /datum/event/lore_news, 400),
// Spawns mice, lizards, or dud spiderlings
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 50, list(ASSIGNMENT_JANITOR = 25), 1),
// Rot only weakens walls, not destroy them
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Aurora Caelus", /datum/event/aurora_caelus, 2, list(), 1),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Ian Storm", /datum/event/ianstorm, 1, list(), 1),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
))
/datum/event_container/moderate/New()
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, "Atmos Leak", /datum/event/atmos_leak, 30, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Carp School", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
// Just disables comms for a short while.
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Communication Blackout", /datum/event/communications_blackout, 500, list(), 1),
// Just blows out a few lights
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Electrical Storm", /datum/event/electrical_storm, 70, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_JANITOR = 150), 1),
// 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
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grid Check", /datum/event/grid_check, 0, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
// 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), min_jobs = list(ASSIGNMENT_AI = 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 = 15, ASSIGNMENT_ENGINEER = 15), 1),
// Radiation, but only in space.
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 0, list(ASSIGNMENT_SECURITY = 20), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Solar Storm", /datum/event/solar_storm, 30, list(ASSIGNMENT_ENGINEER = 40, ASSIGNMENT_SECURITY = 30), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 1, 0, 50, min_jobs = list(ASSIGNMENT_ENGINEER = 3)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Virology Breach", /datum/event/prison_break/virology, 0, list(ASSIGNMENT_MEDICAL = 15, ASSIGNMENT_ENGINEER = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_SCIENTIST = 15, ASSIGNMENT_ENGINEER = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 0, list(ASSIGNMENT_SECURITY = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)),
//Evil grubs that drain station power slightly
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 0, list(ASSIGNMENT_SECURITY = 10, ASSIGNMENT_ENGINEER = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 1, ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Drone Pod Drop", /datum/event/drone_pod_drop, 40, list(ASSIGNMENT_SCIENTIST = 40), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/morph_spawn, 75, list(ASSIGNMENT_ANY = 5), 0),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Maintenance Predator", /datum/event/maintenance_predator, 100, list(ASSIGNMENT_ANY = 5), 0),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Jellyfish School", /datum/event/jellyfish_migration, 0, list(ASSIGNMENT_SECURITY = 15, ASSIGNMENT_MEDICAL = 3), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, 0, list(ASSIGNMENT_MEDICAL = 30), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meteor Shower", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 20)),
// Not bad (dorms are shielded) but inconvenient
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 50, list(ASSIGNMENT_MEDICAL = 50), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Random Antagonist", /datum/event/random_antag, 0, list(ASSIGNMENT_SECURITY = 1), 1, 0, 5),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
))
/datum/event_container/major/New()
available_events = list(
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 3600),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 20, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 10, list(ASSIGNMENT_ENGINEER = 3, ASSIGNMENT_GARDENER = 3, ASSIGNMENT_SCIENTIST = 3), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 10, list(ASSIGNMENT_SECURITY = 5), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station, 0, list(ASSIGNMENT_ENGINEER = 5, ASSIGNMENT_MEDICAL = 5, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_SCIENTIST = 5), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Jellyfish Migration", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Strike", /datum/event/meteor_strike, 10, list(ASSIGNMENT_ENGINEER = 15), 1),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 10, list(ASSIGNMENT_ENGINEER = 60), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 15), 1),
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),
))
#undef ASSIGNMENT_ANY
#undef ASSIGNMENT_AI
#undef ASSIGNMENT_CYBORG
#undef ASSIGNMENT_ENGINEER
#undef ASSIGNMENT_GARDENER
#undef ASSIGNMENT_JANITOR
#undef ASSIGNMENT_MEDICAL
#undef ASSIGNMENT_SCIENTIST
#undef ASSIGNMENT_SECURITY