mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
* Refactors bitflag values into bitshifts * minor formatting edits * Unbitshifts a macro set that skipped 3 for whatever reason
164 lines
5.7 KiB
Plaintext
164 lines
5.7 KiB
Plaintext
/*ALL DEFINES RELATED TO COMBAT GO HERE*/
|
|
|
|
//Damage and status effect defines
|
|
|
|
//Damage defines //TODO: merge these down to reduce on defines
|
|
#define BRUTE "brute"
|
|
#define BURN "fire"
|
|
#define TOX "tox"
|
|
#define OXY "oxy"
|
|
#define CLONE "clone"
|
|
#define STAMINA "stamina"
|
|
#define BRAIN "brain"
|
|
|
|
//bitflag damage defines used for suicide_act
|
|
#define BRUTELOSS (1<<0)
|
|
#define FIRELOSS (1<<1)
|
|
#define TOXLOSS (1<<2)
|
|
#define OXYLOSS (1<<3)
|
|
#define SHAME (1<<4)
|
|
#define MANUAL_SUICIDE (1<<5) //suicide_act will do the actual killing.
|
|
|
|
#define EFFECT_STUN "stun"
|
|
#define EFFECT_KNOCKDOWN "knockdown"
|
|
#define EFFECT_UNCONSCIOUS "unconscious"
|
|
#define EFFECT_IRRADIATE "irradiate"
|
|
#define EFFECT_STUTTER "stutter"
|
|
#define EFFECT_SLUR "slur"
|
|
#define EFFECT_EYE_BLUR "eye_blur"
|
|
#define EFFECT_DROWSY "drowsy"
|
|
#define EFFECT_JITTER "jitter"
|
|
|
|
//Bitflags defining which status effects could be or are inflicted on a mob
|
|
#define CANSTUN (1<<0)
|
|
#define CANKNOCKDOWN (1<<1)
|
|
#define CANUNCONSCIOUS (1<<2)
|
|
#define CANPUSH (1<<3)
|
|
#define GODMODE (1<<4)
|
|
|
|
//Health Defines
|
|
#define HEALTH_THRESHOLD_CRIT 0
|
|
#define HEALTH_THRESHOLD_FULLCRIT -30
|
|
#define HEALTH_THRESHOLD_DEAD -100
|
|
|
|
//Actual combat defines
|
|
|
|
//click cooldowns, in tenths of a second, used for various combat actions
|
|
#define CLICK_CD_MELEE 8
|
|
#define CLICK_CD_RANGE 4
|
|
#define CLICK_CD_RAPID 2
|
|
#define CLICK_CD_CLICK_ABILITY 6
|
|
#define CLICK_CD_BREAKOUT 100
|
|
#define CLICK_CD_HANDCUFFED 10
|
|
#define CLICK_CD_RESIST 20
|
|
#define CLICK_CD_GRABBING 10
|
|
|
|
//Cuff resist speeds
|
|
#define FAST_CUFFBREAK 1
|
|
#define INSTANT_CUFFBREAK 2
|
|
|
|
//Grab levels
|
|
#define GRAB_PASSIVE 0
|
|
#define GRAB_AGGRESSIVE 1
|
|
#define GRAB_NECK 2
|
|
#define GRAB_KILL 3
|
|
|
|
//slowdown when in softcrit
|
|
#define SOFTCRIT_ADD_SLOWDOWN 6
|
|
|
|
//Attack types for checking shields/hit reactions
|
|
#define MELEE_ATTACK 1
|
|
#define UNARMED_ATTACK 2
|
|
#define PROJECTILE_ATTACK 3
|
|
#define THROWN_PROJECTILE_ATTACK 4
|
|
#define LEAP_ATTACK 5
|
|
|
|
//attack visual effects
|
|
#define ATTACK_EFFECT_PUNCH "punch"
|
|
#define ATTACK_EFFECT_KICK "kick"
|
|
#define ATTACK_EFFECT_SMASH "smash"
|
|
#define ATTACK_EFFECT_CLAW "claw"
|
|
#define ATTACK_EFFECT_DISARM "disarm"
|
|
#define ATTACK_EFFECT_BITE "bite"
|
|
#define ATTACK_EFFECT_MECHFIRE "mech_fire"
|
|
#define ATTACK_EFFECT_MECHTOXIN "mech_toxin"
|
|
#define ATTACK_EFFECT_BOOP "boop" //Honk
|
|
|
|
//intent defines
|
|
#define INTENT_HELP "help"
|
|
#define INTENT_GRAB "grab"
|
|
#define INTENT_DISARM "disarm"
|
|
#define INTENT_HARM "harm"
|
|
//NOTE: INTENT_HOTKEY_* defines are not actual intents!
|
|
//they are here to support hotkeys
|
|
#define INTENT_HOTKEY_LEFT "left"
|
|
#define INTENT_HOTKEY_RIGHT "right"
|
|
|
|
//the define for visible message range in combat
|
|
#define COMBAT_MESSAGE_RANGE 3
|
|
|
|
//Combat object defines
|
|
|
|
//Embedded objects
|
|
#define EMBEDDED_PAIN_CHANCE 15 //Chance for embedded objects to cause pain (damage user)
|
|
#define EMBEDDED_ITEM_FALLOUT 5 //Chance for embedded object to fall out (causing pain but removing the object)
|
|
#define EMBED_CHANCE 45 //Chance for an object to embed into somebody when thrown (if it's sharp)
|
|
#define EMBEDDED_PAIN_MULTIPLIER 2 //Coefficient of multiplication for the damage the item does while embedded (this*item.w_class)
|
|
#define EMBEDDED_FALL_PAIN_MULTIPLIER 5 //Coefficient of multiplication for the damage the item does when it falls out (this*item.w_class)
|
|
#define EMBEDDED_IMPACT_PAIN_MULTIPLIER 4 //Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class)
|
|
#define EMBED_THROWSPEED_THRESHOLD 4 //The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1)
|
|
#define EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER 8 //Coefficient of multiplication for the damage the item does when removed without a surgery (this*item.w_class)
|
|
#define EMBEDDED_UNSAFE_REMOVAL_TIME 30 //A Time in ticks, total removal time = (this*item.w_class)
|
|
|
|
//Gun weapon weight
|
|
#define WEAPON_LIGHT 1
|
|
#define WEAPON_MEDIUM 2
|
|
#define WEAPON_HEAVY 3
|
|
//Gun trigger guards
|
|
#define TRIGGER_GUARD_ALLOW_ALL -1
|
|
#define TRIGGER_GUARD_NONE 0
|
|
#define TRIGGER_GUARD_NORMAL 1
|
|
|
|
//Object/Item sharpness
|
|
#define IS_BLUNT 0
|
|
#define IS_SHARP 1
|
|
#define IS_SHARP_ACCURATE 2
|
|
|
|
//His Grace.
|
|
#define HIS_GRACE_SATIATED 0 //He hungers not. If bloodthirst is set to this, His Grace is asleep.
|
|
#define HIS_GRACE_PECKISH 20 //Slightly hungry.
|
|
#define HIS_GRACE_HUNGRY 60 //Getting closer. Increases damage up to a minimum of 20.
|
|
#define HIS_GRACE_FAMISHED 100 //Dangerous. Increases damage up to a minimum of 25 and cannot be dropped.
|
|
#define HIS_GRACE_STARVING 120 //Incredibly close to breaking loose. Increases damage up to a minimum of 30.
|
|
#define HIS_GRACE_CONSUME_OWNER 140 //His Grace consumes His owner at this point and becomes aggressive.
|
|
#define HIS_GRACE_FALL_ASLEEP 160 //If it reaches this point, He falls asleep and resets.
|
|
|
|
#define HIS_GRACE_FORCE_BONUS 4 //How much force is gained per kill.
|
|
|
|
#define EXPLODE_NONE 0 //Don't even ask me why we need this.
|
|
#define EXPLODE_DEVASTATE 1
|
|
#define EXPLODE_HEAVY 2
|
|
#define EXPLODE_LIGHT 3
|
|
|
|
#define EMP_HEAVY 1
|
|
#define EMP_LIGHT 2
|
|
|
|
#define GRENADE_CLUMSY_FUMBLE 1
|
|
#define GRENADE_NONCLUMSY_FUMBLE 2
|
|
#define GRENADE_NO_FUMBLE 3
|
|
|
|
#define BODY_ZONE_HEAD "head"
|
|
#define BODY_ZONE_CHEST "chest"
|
|
#define BODY_ZONE_L_ARM "l_arm"
|
|
#define BODY_ZONE_R_ARM "r_arm"
|
|
#define BODY_ZONE_L_LEG "l_leg"
|
|
#define BODY_ZONE_R_LEG "r_leg"
|
|
|
|
#define BODY_ZONE_PRECISE_EYES "eyes"
|
|
#define BODY_ZONE_PRECISE_MOUTH "mouth"
|
|
#define BODY_ZONE_PRECISE_GROIN "groin"
|
|
#define BODY_ZONE_PRECISE_L_HAND "l_hand"
|
|
#define BODY_ZONE_PRECISE_R_HAND "r_hand"
|
|
#define BODY_ZONE_PRECISE_L_FOOT "l_foot"
|
|
#define BODY_ZONE_PRECISE_R_FOOT "r_foot"
|