Simple mob combat changes. (#22797)

Simple mobs don't dodge backwards anymore, it just doesn't really work
as an engaging mechanic.

To-do:

- [ ] Add armour to a bunch of simple mobs.
- [ ] Maybe make simple mobs attack with actual weapons instead of
magical damage numbers.
- [ ] Fix simplemob movement glide.

Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
Matt Atlas
2026-07-26 18:06:35 +00:00
committed by GitHub
co-authored by Matt Atlas
parent 7b1122ddef
commit 895759eadb
8 changed files with 58 additions and 12 deletions
-1
View File
@@ -481,7 +481,6 @@
meat_amount = 0
meat_type = null
light_range = 2
smart_melee = TRUE
blood_overlay_icon = null
blood_type = null
@@ -43,7 +43,6 @@
pass_flags = PASSTABLE
speed = 6
mob_size = 6
smart_melee = FALSE
attacktext = "bites"
attack_vis_effect = ATTACK_EFFECT_BITE
@@ -112,7 +111,6 @@
venom_per_bite = 5
speed = 4
sample_data = list("Genetic markers identified as being linked with stem cell differentiaton", "Cellular biochemistry shows high metabolic capacity")
smart_melee = TRUE
/mob/living/simple_animal/hostile/giant_spider/emp
name = "greimorian jackal"
@@ -129,7 +127,6 @@
venom_per_bite = 2
speed = 5
sample_data = list("Genetic markers identified as being linked with stem cell differentiaton", "Cellular biochemistry geared towards creating strong electrical potential differences")
smart_melee = TRUE
/mob/living/simple_animal/hostile/giant_spider/bombardier
name = "greimorian bombardier"
@@ -148,7 +145,6 @@
venom_per_bite = 2
speed = 5
sample_data = list("Genetic markers identified as being linked with stem cell differentiaton", "Exocrinic acid synthesis detected")
smart_melee = TRUE
/mob/living/simple_animal/hostile/giant_spider/bombardier/Shoot(var/target, var/start, var/mob/user, var/bullet = 0)
if(target == start)
@@ -30,7 +30,6 @@
speed = 4
tameable = FALSE
flying = TRUE
smart_melee = FALSE
pass_flags = PASSTABLE|PASSRAILING
emote_hear = list("emits a harsh noise")
emote_sounds = list(
@@ -37,7 +37,6 @@ ABSTRACT_TYPE(/mob/living/simple_animal/hostile)
var/list/tolerated_types = list()
var/attack_emote = "stares menacingly at"
var/smart_melee = TRUE // This makes melee mobs try to stay two tiles away from their target in combat, lunging in to attack only
var/smart_ranged = FALSE // This makes ranged mob check for friendly fire and obstacles
var/hostile_nameable = FALSE //If we can rename this hostile mob. Mostly to prevent repeat checks with guard dogs and hostile/retaliate farm animals
@@ -278,8 +277,6 @@ ABSTRACT_TYPE(/mob/living/simple_animal/hostile)
playsound(loc, attack_sound, 50, 1, 1)
if(target)
face_atom(target)
if(!ranged && smart_melee)
addtimer(CALLBACK(src, PROC_REF(PostAttack), target), 1.2 SECONDS, TIMER_STOPPABLE|TIMER_DELETE_ME)
return target
/mob/living/simple_animal/hostile/proc/PostAttack(var/atom/target)
@@ -46,7 +46,6 @@
butchering_products = list(/obj/item/reagent_containers/food/snacks/squidmeat/psiren_body_meat = 1)
attack_vis_effect = ATTACK_EFFECT_DISARM
smart_melee = TRUE
smart_ranged = FALSE
/// Messages used by the psiren for its psychic damage effects.
@@ -56,7 +56,6 @@
flying = TRUE
lighting_alpha = LIGHTING_PLANE_ALPHA_SOMEWHAT_INVISIBLE
smart_melee = FALSE
sample_data = list("Cellular structure shows adaptation for survival in vacuum", "Genetic biomarkers identified linked with agressiveness", "Tissue sample contains micro-gas release structures")
/mob/living/simple_animal/hostile/carp/Initialize()
@@ -27,7 +27,6 @@
minbodytemp = 0
tameable = FALSE
smart_melee = FALSE
flying = TRUE
attack_emote = "buzzes at"