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
@@ -8,6 +8,7 @@
response_help = "thinks better of touching"
response_disarm = "flails at"
response_harm = "punches"
threat = 1
speak_chance = 1
icon = 'icons/mob/mob.dmi'
speed = 0
@@ -118,6 +119,7 @@
desc = "A massive, armored construct built to spearhead attacks and soak up enemy fire."
icon_state = "behemoth"
icon_living = "behemoth"
threat = 3
maxHealth = 150
health = 150
response_harm = "harmlessly punches"
@@ -180,6 +182,7 @@
desc = "A wicked, clawed shell constructed to assassinate enemies and sow chaos behind enemy lines."
icon_state = "floating"
icon_living = "floating"
threat = 3
maxHealth = 65
health = 65
melee_damage_lower = 20
@@ -8,6 +8,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
name = "Guardian Spirit"
real_name = "Guardian Spirit"
desc = "A mysterious being that stands by its charge, ever vigilant."
threat = 5
speak_emote = list("hisses")
gender = NEUTER
mob_biotypes = NONE
@@ -7,6 +7,7 @@
icon_dead = "alienh_dead"
icon_gib = "syndicate_gib"
gender = FEMALE
threat = 1
response_help = "pokes"
response_disarm = "shoves"
response_harm = "hits"
@@ -62,6 +63,7 @@
icon_state = "aliens"
icon_living = "aliens"
icon_dead = "aliens_dead"
threat = 3
health = 150
maxHealth = 150
melee_damage_lower = 15
@@ -78,6 +80,7 @@
icon_state = "alienq"
icon_living = "alienq"
icon_dead = "alienq_dead"
threat = 8
health = 250
maxHealth = 250
melee_damage_lower = 15
@@ -157,6 +160,7 @@
name = "lusty xenomorph maid"
melee_damage_lower = 0
melee_damage_upper = 0
threat = -1
a_intent = INTENT_HELP
friendly = "caresses"
obj_damage = 0
@@ -2,6 +2,7 @@
/mob/living/simple_animal/hostile/bear
name = "space bear"
desc = "You don't need to be faster than a space bear, you just need to outrun your crewmates."
threat = 1
icon_state = "bear"
icon_living = "bear"
icon_dead = "bear_dead"
@@ -16,6 +16,7 @@
icon_state = ""
icon_living = ""
icon = 'icons/mob/bees.dmi'
threat = 0.3
gender = FEMALE
speak_emote = list("buzzes")
emote_hear = list("buzzes")
@@ -1,6 +1,7 @@
/mob/living/simple_animal/hostile/boss
name = "A Perfectly Generic Boss Placeholder"
desc = ""
threat = 10
robust_searching = 1
stat_attack = UNCONSCIOUS
status_flags = 0
@@ -134,4 +135,4 @@
/datum/boss_active_timed_battle/Destroy()
abilities = null
SSobj.processing.Remove(src)
return ..()
return ..()
@@ -7,6 +7,7 @@
icon_living = "carp"
icon_dead = "carp_dead"
icon_gib = "carp_gib"
threat = 0.2
mob_biotypes = MOB_ORGANIC|MOB_BEAST
speak_chance = 0
turns_per_move = 5
@@ -70,7 +71,7 @@
icon_living = "megacarp"
icon_dead = "megacarp_dead"
icon_gib = "megacarp_gib"
threat = 3
regen_amount = 6
maxHealth = 30
@@ -94,7 +95,7 @@
name = "Cayenne"
desc = "A failed Syndicate experiment in weaponized space carp technology, it now serves as a lovable mascot."
gender = FEMALE
threat = 5
regen_amount = 8
speak_emote = list("squeaks")
@@ -1,6 +1,7 @@
/mob/living/simple_animal/hostile/dark_wizard
name = "Dark Wizard"
desc = "Killing amateurs since the dawn of times."
threat = 3
icon = 'icons/mob/simple_human.dmi'
icon_state = "dark_wizard"
icon_living = "dark_wizard"
@@ -36,4 +37,4 @@
icon_state = "declone"
damage = 4
damage_type = BURN
flag = "energy"
flag = "energy"
@@ -26,4 +26,4 @@
movement_type = FLYING
faction = list("spooky")
del_on_death = 1
del_on_death = 1
@@ -4,6 +4,7 @@
icon_state = "faithless"
icon_living = "faithless"
icon_dead = "faithless_dead"
threat = 1
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
gender = MALE
speak_chance = 0
@@ -17,6 +17,7 @@
//basic spider mob, these generally guard nests
/mob/living/simple_animal/hostile/poison/giant_spider
threat = 1
name = "giant spider"
desc = "Furry and black, it makes you shudder to look at it. This one has deep red eyes."
icon_state = "guard"
@@ -9,6 +9,7 @@
icon_state = "crawling"
icon_living = "crawling"
icon_dead = "dead"
threat = 0.5
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
speak_chance = 80
maxHealth = 220
@@ -114,4 +115,4 @@
unique_name = FALSE
AIStatus = AI_OFF
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
minbodytemp = 0
@@ -6,6 +6,7 @@
icon_state = "headcrab"
icon_living = "headcrab"
icon_dead = "headcrab_dead"
threat = 1
gender = NEUTER
health = 50
maxHealth = 50
@@ -3,6 +3,7 @@
stop_automated_movement_when_pulled = 0
obj_damage = 40
environment_smash = ENVIRONMENT_SMASH_STRUCTURES //Bitflags. Set to ENVIRONMENT_SMASH_STRUCTURES to break closets,tables,racks, etc; ENVIRONMENT_SMASH_WALLS for walls; ENVIRONMENT_SMASH_RWALLS for rwalls
var/threat = 0 // for dynamic
var/atom/target
var/ranged = FALSE
var/rapid = 0 //How many shots per volley.
@@ -594,3 +595,6 @@ mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with mega
. += M
else if (M.loc.type in hostile_machines)
. += M.loc
/mob/living/simple_animal/hostile/proc/threat()
return threat
@@ -11,6 +11,7 @@
icon_living = "leaper"
icon_dead = "leaper_dead"
mob_biotypes = MOB_ORGANIC|MOB_BEAST
threat = 2
maxHealth = 300
health = 300
ranged = TRUE
@@ -8,6 +8,7 @@
icon_living = "arachnid"
icon_dead = "arachnid_dead"
mob_biotypes = MOB_ORGANIC|MOB_BUG
threat = 2
melee_damage_lower = 30
melee_damage_upper = 30
maxHealth = 300
@@ -14,6 +14,7 @@
icon_living = "mook"
icon_dead = "mook_dead"
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
threat = 0.5
pixel_x = -16
maxHealth = 45
health = 45
@@ -13,6 +13,7 @@
icon_state = "seedling"
icon_living = "seedling"
icon_dead = "seedling_dead"
threat = 0.5
maxHealth = 100
health = 100
melee_damage_lower = 30
@@ -5,6 +5,7 @@
icon_living = "tomato"
icon_dead = "tomato_dead"
gender = NEUTER
threat = 0.3
speak_chance = 0
turns_per_move = 5
maxHealth = 30
@@ -23,6 +23,7 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner
name = "blood-drunk miner"
desc = "A miner destined to wander forever, engaged in an endless hunt."
threat = 15
health = 900
maxHealth = 900
icon_state = "miner"
@@ -26,6 +26,7 @@ Difficulty: Hard
/mob/living/simple_animal/hostile/megafauna/bubblegum
name = "bubblegum"
desc = "In what passes for a hierarchy among slaughter demons, this one is king."
threat = 35
health = 2500
maxHealth = 2500
attacktext = "rends"
@@ -24,6 +24,7 @@ Difficulty: Very Hard
/mob/living/simple_animal/hostile/megafauna/colossus
name = "colossus"
desc = "A monstrous creature protected by heavy shielding."
threat = 40
health = 2500
maxHealth = 2500
attacktext = "judges"
@@ -603,6 +604,7 @@ Difficulty: Very Hard
icon_state = "lightgeist"
icon_living = "lightgeist"
icon_dead = "butterfly_dead"
threat = -0.7
turns_per_move = 1
response_help = "waves away"
response_disarm = "brushes aside"
@@ -33,6 +33,7 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/dragon
name = "ash drake"
desc = "Guardians of the necropolis."
threat = 30
health = 2500
maxHealth = 2500
spacewalk = TRUE
@@ -37,6 +37,7 @@ Difficulty: Normal
/mob/living/simple_animal/hostile/megafauna/hierophant
name = "hierophant"
desc = "A massive metal club that hangs in the air as though waiting. It'll make you dance to its beat."
threat = 30
health = 2500
maxHealth = 2500
attacktext = "clubs"
@@ -18,6 +18,7 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/legion
name = "Legion"
threat = 30
health = 800
maxHealth = 800
spacewalk = TRUE
@@ -8,6 +8,7 @@
icon_aggro = "Basilisk_alert"
icon_dead = "Basilisk_dead"
icon_gib = "syndicate_gib"
threat = 4
mob_biotypes = MOB_ORGANIC|MOB_BEAST
move_to_delay = 20
projectiletype = /obj/item/projectile/temp/basilisk
@@ -10,6 +10,7 @@
move_to_delay = 5
vision_range = 20
aggro_vision_range = 20
threat = 1
maxHealth = 40 //easy to kill, but oh, will you be seeing a lot of them.
health = 40
melee_damage_lower = 10
@@ -11,6 +11,7 @@
robust_searching = TRUE
ranged_ignores_vision = TRUE
ranged = TRUE
threat = 5
obj_damage = 5
vision_range = 6
aggro_vision_range = 18
@@ -25,6 +25,7 @@
icon_aggro = "broodmother"
icon_dead = "egg_sac"
icon_gib = "syndicate_gib"
threat = 10
maxHealth = 800
health = 800
melee_damage_lower = 30
@@ -24,6 +24,7 @@
icon_aggro = "herald"
icon_dead = "herald_dying"
icon_gib = "syndicate_gib"
threat = 10
maxHealth = 800
health = 800
melee_damage_lower = 20
@@ -24,6 +24,7 @@
icon_aggro = "legionnaire"
icon_dead = "legionnaire_dead"
icon_gib = "syndicate_gib"
threat = 10
maxHealth = 800
health = 800
melee_damage_lower = 30
@@ -24,6 +24,7 @@
icon_aggro = "pandora"
icon_dead = "pandora_dead"
icon_gib = "syndicate_gib"
threat = 10
maxHealth = 800
health = 800
melee_damage_lower = 15
@@ -8,6 +8,7 @@
icon_aggro = "Goldgrub_alert"
icon_dead = "Goldgrub_dead"
icon_gib = "syndicate_gib"
threat = 0.2
mob_biotypes = MOB_ORGANIC|MOB_BEAST
vision_range = 2
aggro_vision_range = 9
@@ -10,6 +10,7 @@
icon_gib = "syndicate_gib"
mob_biotypes = MOB_ORGANIC|MOB_BEAST
mouse_opacity = MOUSE_OPACITY_OPAQUE
threat = 2
move_to_delay = 10
ranged = 1
ranged_cooldown_time = 60
@@ -9,6 +9,7 @@
icon_gib = "syndicate_gib"
mob_biotypes = MOB_ORGANIC
mouse_opacity = MOUSE_OPACITY_OPAQUE
threat = 4
move_to_delay = 14
ranged = 1
vision_range = 4
@@ -233,6 +234,7 @@
icon_state = "legion"
icon_living = "legion"
icon_dead = "legion"
threat = 5
health = 450
maxHealth = 450
melee_damage_lower = 20
@@ -10,6 +10,7 @@
obj_damage = 100
melee_damage_lower = 25
melee_damage_upper = 50
threat = 2
attacktext = "slashes"
attack_sound = 'sound/weapons/bladeslice.ogg'
faction = list("creature")
@@ -11,6 +11,7 @@
response_help = "pushes"
response_disarm = "shoves"
response_harm = "hits"
threat = 3
speed = 0
maxHealth = 115
health = 115
@@ -13,6 +13,7 @@
response_disarm = "shoves"
response_harm = "hits"
speed = 0
threat = 1
maxHealth = 100
health = 100
harm_intent_damage = 5
@@ -16,6 +16,7 @@
response_disarm = "gently pushes aside"
response_harm = "hits"
speed = 0
threat = 1
maxHealth = 75
health = 75
harm_intent_damage = 18
@@ -11,6 +11,7 @@
speak_emote = list("rattles")
emote_see = list("rattles")
a_intent = INTENT_HARM
threat = 0.5
maxHealth = 40
blood_volume = 0
health = 40
@@ -62,6 +63,7 @@
icon_state = "templar"
icon_living = "templar"
icon_dead = "templar_dead"
threat = 1.5
maxHealth = 150
health = 150
weather_immunities = list("snow")
@@ -95,6 +97,7 @@
icon_state = "plasma_miner"
icon_living = "plasma_miner"
icon_dead = "plasma_miner"
threat = 2
maxHealth = 150
health = 150
harm_intent_damage = 10
@@ -111,6 +114,7 @@
icon_state = "plasma_miner_tool"
icon_living = "plasma_miner_tool"
icon_dead = "plasma_miner_tool"
threat = 3
maxHealth = 185
health = 185
harm_intent_damage = 15
@@ -10,7 +10,7 @@
gender = NEUTER
a_intent = INTENT_HARM
mob_biotypes = MOB_HUMANOID
threat = 3
response_help = "touches"
response_disarm = "pushes"
@@ -5,6 +5,7 @@
icon_living = "stickman"
icon_dead = "stickman_dead"
icon_gib = "syndicate_gib"
threat = 0.5
mob_biotypes = MOB_HUMANOID
gender = MALE
speak_chance = 0
@@ -28,6 +28,7 @@
response_help = "pokes"
response_disarm = "shoves"
response_harm = "hits"
threat = 1
speed = 0
stat_attack = UNCONSCIOUS
robust_searching = 1
@@ -7,6 +7,7 @@
icon_dead = "pine_1"
icon_gib = "pine_1"
gender = NEUTER
threat = 1
speak_chance = 0
turns_per_move = 5
response_help = "brushes"
@@ -50,6 +50,7 @@
name = "venus human trap"
desc = "Now you know how the fly feels."
icon_state = "venus_human_trap"
threat = 1
layer = SPACEVINE_MOB_LAYER
health = 50
maxHealth = 50
@@ -11,6 +11,7 @@
response_help = "pokes"
response_disarm = "shoves"
response_harm = "hits"
threat = 3
speed = 0
maxHealth = 100
health = 100
@@ -11,6 +11,7 @@
mob_biotypes = MOB_ORGANIC|MOB_BEAST
mouse_opacity = MOUSE_OPACITY_ICON
move_to_delay = 5
threat = 1
friendly = "floats near"
speak_emote = list("puffs")
vision_range = 5
@@ -7,6 +7,7 @@
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
speak_chance = 0
stat_attack = UNCONSCIOUS //braains
threat = 1
maxHealth = 100
health = 100
harm_intent_damage = 5