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:
Putnam3145
2020-03-25 09:40:37 -07:00
committed by GitHub
parent 6f9e9d0be7
commit 3d8084709b
146 changed files with 434 additions and 194 deletions
+7
View File
@@ -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)
+1
View File
@@ -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)
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+2 -1
View File
@@ -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"
+1
View File
@@ -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)
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+2
View File
@@ -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)
+2
View File
@@ -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"
+1
View File
@@ -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
+1
View File
@@ -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()