A dynamic rework: target threat levels (#11515)
* Starting a replacement of how threat works. * no, we do it this way * Added threat levels to jobs * Added threat to... a lot. * Updated for traitor classes. * Fixed errors, except for one. It's consistently giving me "maximum number of internal arrays exceeded (65535)". I have no idea what could be causing this. * Added type annotation to GetJob. * This one I should change though * wow how'd that happen * spammable means low threat * Made story threat have initial threat level on average * Made somet rulesets force if they won the vote * ) * Gave EVERY job threat, added a config for it. * Rebalanced some numbers * Update code/game/gamemodes/dynamic/dynamic_storytellers.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> * Removes mush threat * Makes devil threat scale with form * reviewing reviewer's review of reviewer * Gutlunches can be friendly spawned, so no * Also made forced-friendly mobs not count Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
This commit is contained in:
@@ -63,6 +63,8 @@
|
||||
|
||||
//If a job complies with dresscodes, loadout items will not be equipped instead of the job's outfit, instead placing the items into the player's backpack.
|
||||
var/dresscodecompliant = TRUE
|
||||
// How much threat this job is worth in dynamic. Is subtracted if the player's not an antag, added if they are.
|
||||
var/threat = 0
|
||||
|
||||
//Only override this proc
|
||||
//H is usually a human unless an /equip override transformed it
|
||||
@@ -88,6 +90,11 @@
|
||||
if(. == null)
|
||||
return antag_rep
|
||||
|
||||
/datum/job/proc/GetThreat()
|
||||
. = CONFIG_GET(keyed_list/job_threat)[lowertext(title)]
|
||||
if(. == null)
|
||||
return threat
|
||||
|
||||
//Don't override this unless the job transforms into a non-human (Silicons do this for example)
|
||||
/datum/job/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE, datum/outfit/outfit_override = null, client/preference_source)
|
||||
if(!H)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
exp_type_department = EXP_TYPE_SILICON
|
||||
display_order = JOB_DISPLAY_ORDER_AI
|
||||
var/do_special_check = TRUE
|
||||
threat = 5
|
||||
|
||||
/datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin, datum/outfit/outfit_override, client/preference_source = null)
|
||||
if(visualsOnly)
|
||||
|
||||
@@ -16,6 +16,7 @@ Assistant
|
||||
antag_rep = 7
|
||||
display_order = JOB_DISPLAY_ORDER_ASSISTANT
|
||||
dresscodecompliant = FALSE
|
||||
threat = 0.2
|
||||
|
||||
/datum/job/assistant/get_access()
|
||||
if(CONFIG_GET(flag/assistants_have_maint_access) || !CONFIG_GET(flag/jobs_have_minimal_access)) //Config has assistant maint access set
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
minimal_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ENGINE,
|
||||
ACCESS_ENGINE_EQUIP, ACCESS_EMERGENCY_STORAGE, ACCESS_CONSTRUCTION, ACCESS_MINERAL_STOREROOM)
|
||||
display_order = JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN
|
||||
threat = 0.5
|
||||
|
||||
/datum/outfit/job/atmos
|
||||
name = "Atmospheric Technician"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_BAR, ACCESS_MINERAL_STOREROOM)
|
||||
display_order = JOB_DISPLAY_ORDER_BARTENDER
|
||||
threat = 0.5
|
||||
|
||||
/datum/outfit/job/bartender
|
||||
name = "Bartender"
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_HYDROPONICS, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
|
||||
display_order = JOB_DISPLAY_ORDER_BOTANIST
|
||||
threat = 1.5 // lol powergame
|
||||
|
||||
/datum/outfit/job/botanist
|
||||
name = "Botanist"
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
display_order = JOB_DISPLAY_ORDER_CAPTAIN
|
||||
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
||||
threat = 5
|
||||
|
||||
/datum/job/captain/get_access()
|
||||
return get_all_accesses()
|
||||
@@ -62,4 +63,4 @@
|
||||
|
||||
mask = /obj/item/clothing/mask/gas/sechailer
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/captain
|
||||
suit_store = /obj/item/tank/internals/oxygen
|
||||
suit_store = /obj/item/tank/internals/oxygen
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_CARGO, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CARGO_TECHNICIAN
|
||||
threat = 0.2
|
||||
|
||||
/datum/outfit/job/cargo_tech
|
||||
name = "Cargo Technician"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
minimal_access = list(ACCESS_MORGUE, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_THEATRE)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CHAPLAIN
|
||||
threat = 0.5
|
||||
|
||||
|
||||
/datum/job/chaplain/after_spawn(mob/living/H, mob/M)
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CHEMIST
|
||||
threat = 1.5
|
||||
|
||||
/datum/outfit/job/chemist
|
||||
name = "Chemist"
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CHIEF_ENGINEER
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/paraplegic, /datum/quirk/insanity)
|
||||
threat = 2
|
||||
|
||||
/datum/outfit/job/ce
|
||||
name = "Chief Engineer"
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
||||
threat = 2
|
||||
|
||||
/datum/outfit/job/cmo
|
||||
name = "Chief Medical Officer"
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
mind_traits = list(TRAIT_CLOWN_MENTALITY)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CLOWN
|
||||
threat = 0 // honk
|
||||
|
||||
/datum/outfit/job/clown
|
||||
name = "Clown"
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
minimal_access = list(ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_COOK
|
||||
threat = 0.2
|
||||
|
||||
/datum/outfit/job/cook
|
||||
name = "Cook"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
minimal_access = list(ACCESS_LIBRARY, ACCESS_CONSTRUCTION, ACCESS_MINING_STATION)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CURATOR
|
||||
threat = 0.3
|
||||
|
||||
/datum/outfit/job/curator
|
||||
name = "Curator"
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_DETECTIVE
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
|
||||
threat = 1
|
||||
|
||||
/datum/outfit/job/detective
|
||||
name = "Detective"
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_GENETICIST
|
||||
threat = 1.5
|
||||
|
||||
/datum/outfit/job/geneticist
|
||||
name = "Geneticist"
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
display_order = JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL
|
||||
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/prosopagnosia, /datum/quirk/insanity)
|
||||
threat = 2
|
||||
|
||||
|
||||
/datum/outfit/job/hop
|
||||
name = "Head of Personnel"
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_HEAD_OF_SECURITY
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent, /datum/quirk/paraplegic, /datum/quirk/insanity)
|
||||
threat = 3
|
||||
|
||||
/datum/outfit/job/hos
|
||||
name = "Head of Security"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
minimal_access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_JANITOR
|
||||
threat = 0.2
|
||||
|
||||
/datum/outfit/job/janitor
|
||||
name = "Janitor"
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_LAWYER
|
||||
threat = 0.3
|
||||
|
||||
/datum/outfit/job/lawyer
|
||||
name = "Lawyer"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_MEDICAL_DOCTOR
|
||||
threat = 0.5
|
||||
|
||||
/datum/outfit/job/doctor
|
||||
name = "Medical Doctor"
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_MIME
|
||||
|
||||
threat = 0
|
||||
|
||||
/datum/job/mime/after_spawn(mob/living/carbon/human/H, mob/M)
|
||||
. = ..()
|
||||
H.apply_pref_name("mime", M.client)
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_PARAMEDIC
|
||||
|
||||
threat = 0.5
|
||||
|
||||
/datum/outfit/job/paramedic
|
||||
name = "Paramedic"
|
||||
jobtype = /datum/job/paramedic
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_QUARTERMASTER
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
||||
threat = 0.5
|
||||
|
||||
/datum/outfit/job/quartermaster
|
||||
name = "Quartermaster"
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
||||
threat = 5
|
||||
|
||||
/datum/outfit/job/rd
|
||||
name = "Research Director"
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
minimal_access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_ROBOTICIST
|
||||
threat = 1
|
||||
|
||||
/datum/outfit/job/roboticist
|
||||
name = "Roboticist"
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
minimal_access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_SCIENTIST
|
||||
threat = 1.2
|
||||
|
||||
/datum/outfit/job/scientist
|
||||
name = "Scientist"
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_SECURITY_OFFICER
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
|
||||
threat = 2
|
||||
|
||||
/datum/job/officer/get_access()
|
||||
var/list/L = list()
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_SHAFT_MINER
|
||||
|
||||
threat = 1.5
|
||||
|
||||
/datum/outfit/job/miner
|
||||
name = "Shaft Miner (Lavaland)"
|
||||
jobtype = /datum/job/mining
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_STATION_ENGINEER
|
||||
|
||||
threat = 1
|
||||
|
||||
/datum/outfit/job/engineer
|
||||
name = "Station Engineer"
|
||||
jobtype = /datum/job/engineer
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_VIROLOGIST
|
||||
|
||||
threat = 1.5
|
||||
|
||||
/datum/outfit/job/virologist
|
||||
name = "Virologist"
|
||||
jobtype = /datum/job/virologist
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_WARDEN
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
|
||||
threat = 2
|
||||
|
||||
/datum/job/warden/get_access()
|
||||
var/list/L = list()
|
||||
|
||||
Reference in New Issue
Block a user