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"
@@ -0,0 +1,58 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# - (fixes bugs)
# wip
# - (work in progress)
# qol
# - (quality of life)
# soundadd
# - (adds a sound)
# sounddel
# - (removes a sound)
# rscadd
# - (adds a feature)
# rscdel
# - (removes a feature)
# imageadd
# - (adds an image or sprite)
# imagedel
# - (removes an image or sprite)
# spellcheck
# - (fixes spelling or grammar)
# experiment
# - (experimental change)
# balance
# - (balance changes)
# code_imp
# - (misc internal code change)
# refactor
# - (refactors code)
# config
# - (makes a change to the config files)
# admin
# - (makes changes to administrator tools)
# server
# - (miscellaneous changes to server)
#################################
# Your name.
author: MattAtlas
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
changes:
- rscdel: "Simple mobs don't dodge backwards anymore."