Files
Bubberstation/code/__DEFINES/basic_mobs.dm
Jacquerel d19b8de989 Most fleshy mobs are vulnerable to stamina and stuns (#90675)
## About The Pull Request

This PR enables most mobs to take stamina damage, become slowed as a
result of taking stamina damage.
It also gives most mobs CANSTUN which not only allows them to enter
stamcrit from taking stamina damage but also makes them vulnerable to
mechanics like stun batons.

Mobs which already took stamina damage (Spiders and Space Dragons) still
work the same way.
Mechanical or artificial mobs, mining mobs, simple xenomorphs, ghosts,
and most kinds of mob closely associated with antagonists still don't
take stamina damage.

## Why It's Good For The Game

A new player armed with a disabler will probably try and use it on
aggressive animals and be disappointed, but I don't think there is any
_reason_ for them to be disappointed when it's already something they
are doing merely to delay being attacked rather than to kill the target.
It's not intuitive for these mechanics not to function against simple
mobs when they do against humans, _especially_ the kinds of mobs which
look like humans, and there isn't any technical reason why it _couldn't_
work against most mobs which it looks like they should work against.

While this reduces the threat level of some mobs against Security
players I think the greater interaction with the sandbox is beneficial.
I'm hopeful it doesn't have that much effect on many of the most common
places you encounter dangerous mobs like Space Ruins or Gateways as they
are also places where you can't reliably recharge your energy-based
stamina weapons as most that don't require energy do require getting
into melee and endangering yourself.

## Changelog

🆑
balance: Most biological mobs are now slowed by taking stamina damage,
and can be stunned. Mechanical mobs, mining mobs, and several other
special kinds (chiefly those invoked by antagonists) are unaffected. If
this seems to effect any mob it probably shouldn't, please report it as
a bug.
/🆑
2025-05-11 05:05:53 +10:00

77 lines
2.3 KiB
Plaintext

///Basic mob flags
/// Stamina threshold to not experience stamina crit
#define BASIC_MOB_NO_STAMCRIT 0
/// Max stamina should be equal to max health
#define BASIC_MOB_STAMINA_MATCH_HEALTH -1
/// Delete mob upon death
#define DEL_ON_DEATH (1<<0)
/// Rotate mob 180 degrees while it is dead
#define FLIP_ON_DEATH (1<<1)
/// Mob remains dense while dead
#define REMAIN_DENSE_WHILE_DEAD (1<<2)
/// Mob can be set on fire
#define FLAMMABLE_MOB (1<<3)
/// Mob never takes damage from unarmed attacks
#define IMMUNE_TO_FISTS (1<<4)
/// Mob is immune to getting wet
#define IMMUNE_TO_GETTING_WET (1<<5)
/// Disables the function of attacking random body zones
#define PRECISE_ATTACK_ZONES (1<<6)
/// Temporary trait applied when an attack forecast animation has completed
#define TRAIT_BASIC_ATTACK_FORECAST "trait_basic_attack_forecast"
#define INTERACTION_BASIC_ATTACK_FORCEAST "interaction_basic_attack_forecast"
/// Above this speed we stop gliding because it looks silly
#define END_GLIDE_SPEED 10
///hunger cooldown for basic mobs
#define EAT_FOOD_COOLDOWN 45 SECONDS
///mook attack status flags
#define MOOK_ATTACK_NEUTRAL 0
#define MOOK_ATTACK_WARMUP 1
#define MOOK_ATTACK_ACTIVE 2
#define MOOK_ATTACK_STRIKE 3
///keeps track of how many gutlunches are born
GLOBAL_VAR_INIT(gutlunch_count, 0)
///Pet customization settings saved for every client
GLOBAL_LIST_EMPTY(customized_pets)
//raptor defines
#define RAPTOR_RED "Red"
#define RAPTOR_GREEN "Green"
#define RAPTOR_PURPLE "Purple"
#define RAPTOR_WHITE "White"
#define RAPTOR_YELLOW "Yellow"
#define RAPTOR_BLACK "Black"
#define RAPTOR_BLUE "Blue"
#define RAPTOR_INHERIT_MAX_ATTACK 5
#define RAPTOR_INHERIT_MAX_HEALTH 30
///this mob suffers depression
#define BB_BASIC_DEPRESSED "basic_depressed"
///this mob will care for its young
#define BB_RAPTOR_MOTHERLY "raptor_motherly"
///this mob will be playful around their owners
#define BB_RAPTOR_PLAYFUL "raptor_playful"
///this mob will flee combat when it feels threatened
#define BB_RAPTOR_COWARD "raptor_coward"
///our raptor baby target we will take care of
#define BB_RAPTOR_BABY "raptor_baby"
///the raptor we will heal up
#define BB_INJURED_RAPTOR "injured_raptor"
///the cooldown for next time we eat
#define BB_RAPTOR_EAT_COOLDOWN "raptor_eat_cooldown"
///our trough target
#define BB_RAPTOR_TROUGH_TARGET "raptor_trough_target"
#define MAX_RAPTOR_POP 64