mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-01 05:02:33 +00:00
* Converts gorillas to basic mobs * Accidentally pushed a config change. Whoops * Updatepaths * Removes unique_mob var * New linters
397 lines
15 KiB
Plaintext
397 lines
15 KiB
Plaintext
///////////////////ORGAN DEFINES///////////////////
|
|
|
|
// Organ defines.
|
|
#define ORGAN_BROKEN (1 << 0)
|
|
#define ORGAN_ROBOT (1 << 1)
|
|
#define ORGAN_SPLINTED (1 << 2)
|
|
#define ORGAN_DEAD (1 << 3)
|
|
#define ORGAN_MUTATED (1 << 4)
|
|
#define ORGAN_INT_BLEEDING (1 << 5)
|
|
#define ORGAN_DISFIGURED (1 << 6)
|
|
#define ORGAN_BURNT (1 << 7)
|
|
#define ORGAN_SALVED (1 << 8)
|
|
|
|
// Organ datum defines. Each one of these represents a slot for organ datums in internal_organ_datums
|
|
#define ORGAN_DATUM_HEART "heart"
|
|
#define ORGAN_DATUM_LUNGS "lungs"
|
|
#define ORGAN_DATUM_BATTERY "battery"
|
|
|
|
// Organ quality datums.
|
|
#define ORGAN_DAMAGED 1
|
|
#define ORGAN_NORMAL 2
|
|
#define ORGAN_PRISTINE 3
|
|
|
|
// For limb resistance flags
|
|
#define CANNOT_BREAK (1 << 0)
|
|
#define CANNOT_DISMEMBER (1 << 1)
|
|
#define CANNOT_BURN (1 << 2)
|
|
#define CANNOT_INT_BLEED (1 << 3)
|
|
|
|
#define PROCESS_ACCURACY 10
|
|
|
|
#define DROPLIMB_SHARP 0
|
|
#define DROPLIMB_BLUNT 1
|
|
#define DROPLIMB_BURN 2
|
|
|
|
//Mob bio-types flags
|
|
#define MOB_ORGANIC (1 << 0)
|
|
#define MOB_MINERAL (1 << 1)
|
|
#define MOB_ROBOTIC (1 << 2)
|
|
#define MOB_UNDEAD (1 << 3)
|
|
#define MOB_HUMANOID (1 << 4)
|
|
#define MOB_BUG (1 << 5)
|
|
#define MOB_BEAST (1 << 6) // Not meant for human species, generally
|
|
#define MOB_EPIC (1 << 7) //megafauna
|
|
#define MOB_REPTILE (1 << 8)
|
|
#define MOB_SPIRIT (1 << 9)
|
|
#define MOB_PLANT (1 << 10)
|
|
|
|
#define AGE_MIN 20 //youngest a character can be
|
|
#define AGE_MAX 500 //oldest a character can be
|
|
|
|
/// Mob is standing up, usually associated with lying_angle value of 0.
|
|
#define STANDING_UP 0
|
|
/// Mob is lying down, usually associated with lying_angle values of 90 or 270.
|
|
#define LYING_DOWN 1
|
|
|
|
///How much a mob's sprite should be moved when they're lying down
|
|
#define PIXEL_Y_OFFSET_LYING -6
|
|
|
|
#define LEFT 1
|
|
#define RIGHT 2
|
|
|
|
#define SPLINT_LIFE 2000 //number of steps splints stay on
|
|
|
|
|
|
//Pulse levels, very simplified
|
|
#define PULSE_NONE 0 //so !M.pulse checks would be possible
|
|
#define PULSE_SLOW 1 //<60 bpm
|
|
#define PULSE_NORM 2 //60-90 bpm
|
|
#define PULSE_FAST 3 //90-120 bpm
|
|
#define PULSE_2FAST 4 //>120 bpm
|
|
#define PULSE_THREADY 5 //occurs during hypovolemic shock
|
|
//feel free to add shit to lists below
|
|
|
|
//Reagent Metabolization flags, defines the type of reagents that affect this mob
|
|
#define PROCESS_ORG (1<<0) //Only processes reagents with "ORGANIC" or "ORGANIC | SYNTHETIC"
|
|
#define PROCESS_SYN (1<<1) //Only processes reagents with "SYNTHETIC" or "ORGANIC | SYNTHETIC"
|
|
#define PROCESS_DUO (1<<2) //Only processes reagents with "ORGANIC | SYNTHETIC"
|
|
|
|
#define HUMAN_STRIP_DELAY 40 //takes 40ds = 4s to strip someone.
|
|
#define ALIEN_SELECT_AFK_BUFFER 1 // How many minutes that a person can be AFK before not being allowed to be an alien.
|
|
#define SHOES_SLOWDOWN 0 // How much shoes slow you down by default. Negative values speed you up
|
|
|
|
|
|
//Mob attribute defaults.
|
|
#define DEFAULT_MARKING_STYLES list("head" = "None", "body" = "None", "tail" = "None") //Marking styles. Use instead of initial() for m_styles.
|
|
#define DEFAULT_MARKING_COLOURS list("head" = "#000000", "body" = "#000000", "tail" = "#000000") //Marking colours. Use instead of initial() for m_colours.
|
|
|
|
#define OXYCONCEN_PLASMEN_IGNITION 0.5 //Moles of oxygen in the air needed to light up a poorly clothed Plasmaman. Same as LINDA requirements for plasma burning.
|
|
|
|
////////REAGENT STUFF////////
|
|
// How many units of reagent are consumed per tick, by default.
|
|
#define REAGENTS_METABOLISM 0.4
|
|
|
|
// By defining the effect multiplier this way, it'll exactly adjust
|
|
// all effects according to how they originally were with the 0.4 metabolism
|
|
#define REAGENTS_EFFECT_MULTIPLIER REAGENTS_METABOLISM / 0.4
|
|
|
|
// Factor of how fast mob nutrition decreases
|
|
#define HUNGER_FACTOR 0.1
|
|
|
|
// Taste sensitivity - lower is more sensitive
|
|
// Represents the minimum portion of total taste the mob can sense
|
|
#define TASTE_SENSITIVITY_NORMAL 15
|
|
#define TASTE_SENSITIVITY_SHARP 10
|
|
#define TASTE_SENSITIVITY_DULL 25
|
|
#define TASTE_SENSITIVITY_NO_TASTE 101
|
|
|
|
// Reagent type flags, defines the types of mobs this reagent will affect
|
|
#define ORGANIC 1
|
|
#define SYNTHETIC 2
|
|
|
|
// Appearance change flags
|
|
#define APPEARANCE_UPDATE_DNA (1<<0)
|
|
#define APPEARANCE_RACE (1<<1)|APPEARANCE_UPDATE_DNA
|
|
#define APPEARANCE_GENDER (1<<2)|APPEARANCE_UPDATE_DNA
|
|
#define APPEARANCE_SKIN (1<<3)
|
|
#define APPEARANCE_HAIR (1<<4)
|
|
#define APPEARANCE_HAIR_COLOR (1<<5)
|
|
#define APPEARANCE_SECONDARY_HAIR_COLOR (1<<6)
|
|
#define APPEARANCE_FACIAL_HAIR (1<<7)
|
|
#define APPEARANCE_FACIAL_HAIR_COLOR (1<<8)
|
|
#define APPEARANCE_SECONDARY_FACIAL_HAIR_COLOR (1<<9)
|
|
#define APPEARANCE_EYE_COLOR (1<<10)
|
|
#define APPEARANCE_ALL_HAIR (APPEARANCE_HAIR|APPEARANCE_HAIR_COLOR|APPEARANCE_SECONDARY_HAIR_COLOR|APPEARANCE_FACIAL_HAIR|APPEARANCE_FACIAL_HAIR_COLOR|APPEARANCE_SECONDARY_FACIAL_HAIR_COLOR)
|
|
#define APPEARANCE_HEAD_ACCESSORY (1<<11)
|
|
#define APPEARANCE_MARKINGS (1<<12)
|
|
#define APPEARANCE_BODY_ACCESSORY (1<<13)
|
|
#define APPEARANCE_ALT_HEAD (1<<14)
|
|
#define APPEARANCE_ALL_BODY (APPEARANCE_ALL_HAIR|APPEARANCE_HEAD_ACCESSORY|APPEARANCE_MARKINGS|APPEARANCE_BODY_ACCESSORY|APPEARANCE_ALT_HEAD)
|
|
#define APPEARANCE_ALL ((1<<15)-1) // If you add or remove an appearance change flag above, make sure you update this define with the amount of the flags.
|
|
|
|
#define STAMINA_REGEN_BLOCK_TIME (10 SECONDS)
|
|
|
|
//Slime evolution threshold. Controls how fast slimes can split/grow
|
|
#define SLIME_EVOLUTION_THRESHOLD 10
|
|
|
|
//Slime extract crossing. Controls how many extracts is required to feed to a slime to core-cross.
|
|
#define SLIME_EXTRACT_CROSSING_REQUIRED 10
|
|
|
|
//If you add a new status, be sure to add a list for it to the simple_animals global in _globalvars/lists/mobs.dm
|
|
//Hostile Mob AI Status
|
|
#define AI_ON 1
|
|
#define AI_IDLE 2
|
|
#define AI_OFF 3
|
|
#define AI_Z_OFF 4
|
|
|
|
// Intents
|
|
#define INTENT_HELP "help"
|
|
#define INTENT_DISARM "disarm"
|
|
#define INTENT_GRAB "grab"
|
|
#define INTENT_HARM "harm"
|
|
|
|
// Movement Intents
|
|
#define MOVE_INTENT_WALK "walk"
|
|
#define MOVE_INTENT_RUN "run"
|
|
|
|
// AI wire/radio settings
|
|
#define AI_CHECK_WIRELESS 1
|
|
#define AI_CHECK_RADIO 2
|
|
|
|
//determines if a mob can smash through it
|
|
#define ENVIRONMENT_SMASH_NONE 0
|
|
#define ENVIRONMENT_SMASH_STRUCTURES (1<<0) //crates, lockers, ect
|
|
#define ENVIRONMENT_SMASH_WALLS (1<<1) //walls
|
|
#define ENVIRONMENT_SMASH_RWALLS (1<<2) //rwalls
|
|
|
|
// Reproduction
|
|
#define DEFAULT_MAX_OFFSPRING 8
|
|
|
|
///Flags used by the flags parameter of electrocute act.
|
|
|
|
///Makes it so that the shock doesn't take gloves into account.
|
|
#define SHOCK_NOGLOVES (1<<0)
|
|
///Used when the shock is from a tesla bolt.
|
|
#define SHOCK_TESLA (1<<1)
|
|
///Used when an illusion shocks something. Makes the shock deal stamina damage and not trigger certain secondary effects.
|
|
#define SHOCK_ILLUSION (1<<2)
|
|
///The shock doesn't stun.
|
|
#define SHOCK_NOSTUN (1<<3)
|
|
|
|
#define POCKET_STRIP_DELAY 4 SECONDS //time taken to search somebody's pockets
|
|
|
|
#define DEFAULT_ITEM_STRIP_DELAY 4 SECONDS //time taken to strip somebody
|
|
#define DEFAULT_ITEM_PUTON_DELAY 2 SECONDS //time taken to reverse-strip somebody
|
|
|
|
#define IGNORE_ACCESS -1
|
|
|
|
//gold slime core spawning
|
|
#define NO_SPAWN 0
|
|
#define HOSTILE_SPAWN 1
|
|
#define FRIENDLY_SPAWN 2
|
|
|
|
///Max amount of living Xenobio mobs allowed at any given time (excluding slimes).
|
|
#define MAX_GOLD_CORE_MOBS 45
|
|
|
|
#define TINT_IMPAIR 2 //Threshold of tint level to apply weld mask overlay
|
|
#define TINT_BLIND 3 //Threshold of tint level to obscure vision fully
|
|
#define EYE_SHINE_THRESHOLD 6 //dark_view threshold past which a humanoid's eyes will 'shine' in the dark.
|
|
|
|
#define STATUS_UPDATE_HEALTH (1<<0)
|
|
#define STATUS_UPDATE_STAT (1<<1)
|
|
#define STATUS_UPDATE_STAMINA (1<<2)
|
|
#define STATUS_UPDATE_BLIND (1<<3)
|
|
#define STATUS_UPDATE_NEARSIGHTED (1<<4)
|
|
|
|
#define STATUS_UPDATE_NONE 0
|
|
#define STATUS_UPDATE_ALL (~0)
|
|
#define INVISIBILITY_ABSTRACT 101
|
|
#define UNHEALING_EAR_DAMAGE 100
|
|
|
|
/// Nian and Nian Worme cocoon do_after delay, in seconds.
|
|
#define COCOON_WEAVE_DELAY 5 SECONDS
|
|
/// Nian and Nian worme delay after they emerge from their cocoon, in seconds.
|
|
#define COCOON_EMERGE_DELAY 15 SECONDS
|
|
/// Nian and nian worme fly swatter damage multiplier, X + 1 => Total multiplier. (Ex. Value of 9 => 10x dmg)
|
|
#define FLYSWATTER_DAMAGE_MULTIPLIER 9
|
|
|
|
/// If you examine the same atom twice in this timeframe, we call examine_more() instead of examine()
|
|
#define EXAMINE_MORE_WINDOW 1 SECONDS
|
|
|
|
#define DIRECTION_LOCK_SLOWDOWN 3
|
|
|
|
//Human sub-species
|
|
#define isabductor(A) (is_species(A, /datum/species/abductor))
|
|
#define isgolem(A) (is_species(A, /datum/species/golem))
|
|
#define ismonkeybasic(A) (is_species(A, /datum/species/monkey))
|
|
#define isfarwa(A) (is_species(A, /datum/species/monkey/tajaran))
|
|
#define iswolpin(A) (is_species(A, /datum/species/monkey/vulpkanin))
|
|
#define isneara(A) (is_species(A, /datum/species/monkey/skrell))
|
|
#define isstok(A) (is_species(A, /datum/species/monkey/unathi))
|
|
#define isplasmaman(A) (is_species(A, /datum/species/plasmaman))
|
|
#define isshadowperson(A) (is_species(A, /datum/species/shadow))
|
|
#define isskeleton(A) (is_species(A, /datum/species/skeleton))
|
|
#define ishumanbasic(A) (is_species(A, /datum/species/human))
|
|
#define isunathi(A) (is_species(A, /datum/species/unathi))
|
|
#define istajaran(A) (is_species(A, /datum/species/tajaran))
|
|
#define isvulpkanin(A) (is_species(A, /datum/species/vulpkanin))
|
|
#define isskrell(A) (is_species(A, /datum/species/skrell))
|
|
#define isvox(A) (is_species(A, /datum/species/vox))
|
|
#define iskidan(A) (is_species(A, /datum/species/kidan))
|
|
#define isslimeperson(A) (is_species(A, /datum/species/slime))
|
|
#define isgrey(A) (is_species(A, /datum/species/grey))
|
|
#define isdiona(A) (is_species(A, /datum/species/diona))
|
|
#define ismachineperson(A) (is_species(A, /datum/species/machine))
|
|
#define isdrask(A) (is_species(A, /datum/species/drask))
|
|
#define ismoth(A) (is_species(A, /datum/species/moth))
|
|
|
|
#define isdog(A) (istype((A), /mob/living/simple_animal/pet/dog))
|
|
#define iscorgi(A) (istype((A), /mob/living/simple_animal/pet/dog/corgi))
|
|
#define ismouse(A) (istype((A), /mob/living/simple_animal/mouse))
|
|
#define isbot(A) (istype((A), /mob/living/simple_animal/bot))
|
|
#define isguardian(A) (istype((A), /mob/living/simple_animal/hostile/guardian))
|
|
#define isnymph(A) (istype((A), /mob/living/simple_animal/diona))
|
|
#define iscaterpillar(A) (istype((A), /mob/living/simple_animal/nian_caterpillar))
|
|
#define ishostile(A) (istype((A), /mob/living/simple_animal/hostile))
|
|
#define isretaliate(A) (istype((A), /mob/living/simple_animal/hostile/retaliate))
|
|
#define isterrorspider(A) (istype((A), /mob/living/simple_animal/hostile/poison/terror_spider))
|
|
#define isslaughterdemon(A) (istype((A), /mob/living/simple_animal/demon/slaughter))
|
|
#define isdemon(A) (istype((A), /mob/living/simple_animal/demon))
|
|
#define iscat(A) (istype((A), /mob/living/simple_animal/pet/cat))
|
|
#define isgorilla(A) (istype((A), /mob/living/basic/gorilla))
|
|
#define ismorph(A) (istype((A), /mob/living/simple_animal/hostile/morph))
|
|
|
|
#define issilicon(A) (istype((A), /mob/living/silicon))
|
|
#define is_ai(A) (istype((A), /mob/living/silicon/ai))
|
|
#define isrobot(A) (istype((A), /mob/living/silicon/robot))
|
|
#define isdrone(A) (istype((A), /mob/living/silicon/robot/drone))
|
|
#define ispAI(A) (istype((A), /mob/living/silicon/pai))
|
|
|
|
// For the tcomms monitor
|
|
#define ispathhuman(A) (ispath(A, /mob/living/carbon/human))
|
|
#define ispathbrain(A) (ispath(A, /mob/living/brain))
|
|
#define ispathslime(A) (ispath(A, /mob/living/simple_animal/slime))
|
|
#define ispathbot(A) (ispath(A, /mob/living/simple_animal/bot))
|
|
#define ispathsilicon(A) (ispath(A, /mob/living/silicon))
|
|
#define ispathanimal(A) (ispath(A, /mob/living/simple_animal))
|
|
|
|
#define iscameramob(A) (istype((A), /mob/camera))
|
|
#define is_ai_eye(A) (istype((A), /mob/camera/eye/ai))
|
|
#define isovermind(A) (istype((A), /mob/camera/blob))
|
|
|
|
#define isobserver(A) (istype((A), /mob/dead/observer))
|
|
|
|
#define isnewplayer(A) (istype((A), /mob/new_player))
|
|
|
|
#define is_external_organ(A) (istype((A), /obj/item/organ/external))
|
|
#define is_internal_organ(A) (istype((A), /obj/item/organ/internal))
|
|
#define is_organ(A) (istype((A), /obj/item/organ))
|
|
|
|
#define is_admin(user) (check_rights(R_ADMIN, 0, (user)) != 0)
|
|
|
|
#define is_developer(user) (check_rights(R_DEV_TEAM, 0, (user)) != 0)
|
|
|
|
#define SLEEP_CHECK_DEATH(X) sleep(X); if(QDELETED(src) || stat == DEAD) return;
|
|
|
|
// Locations
|
|
#define is_ventcrawling(A) (istype(A.loc, /obj/machinery/atmospherics))
|
|
#define is_mecha_occupant(A) (istype(A.loc, /obj/mecha))
|
|
|
|
// Hearing protection
|
|
#define HEARING_PROTECTION_NONE 0
|
|
#define HEARING_PROTECTION_MINOR 1
|
|
#define HEARING_PROTECTION_MAJOR 2
|
|
#define HEARING_PROTECTION_TOTAL 3
|
|
|
|
// Defines used in /mob/living/carbon/human/update_health_hud to override the health status
|
|
#define HEALTH_HUD_OVERRIDE_NONE 0
|
|
#define HEALTH_HUD_OVERRIDE_CRIT 1
|
|
#define HEALTH_HUD_OVERRIDE_DEAD 2
|
|
#define HEALTH_HUD_OVERRIDE_HEALTHY 3
|
|
// Eye protection
|
|
#define FLASH_PROTECTION_VERYVUNERABLE -4
|
|
#define FLASH_PROTECTION_EXTRA_SENSITIVE -2
|
|
#define FLASH_PROTECTION_SENSITIVE -1
|
|
#define FLASH_PROTECTION_NONE 0
|
|
#define FLASH_PROTECTION_FLASH 1
|
|
#define FLASH_PROTECTION_WELDER 2
|
|
|
|
#define MAX_EYE_BLURRY_FILTER_SIZE 2
|
|
#define EYE_BLUR_TO_FILTER_SIZE_MULTIPLIER 0.005
|
|
|
|
/proc/bodypart_name_to_clothing_bitflag(bodypart_name)
|
|
switch(bodypart_name)
|
|
if("head")
|
|
return HEAD
|
|
if("chest")
|
|
return UPPER_TORSO
|
|
if("groin")
|
|
return LOWER_TORSO
|
|
if("l_arm")
|
|
return ARM_LEFT
|
|
if("l_hand")
|
|
return HAND_LEFT
|
|
if("r_arm")
|
|
return ARM_RIGHT
|
|
if("r_hand")
|
|
return HAND_RIGHT
|
|
if("r_leg")
|
|
return LEG_RIGHT
|
|
if("r_foot")
|
|
return FOOT_RIGHT
|
|
if("l_leg")
|
|
return LEG_LEFT
|
|
if("l_foot")
|
|
return FOOT_LEFT
|
|
|
|
#define SPINNING_WEB 1
|
|
#define LAYING_EGGS 2
|
|
#define MOVING_TO_TARGET 3
|
|
#define SPINNING_COCOON 4
|
|
|
|
#define TS_DAMAGE_SIMPLE 0
|
|
#define TS_DAMAGE_POISON 1
|
|
#define TS_DAMAGE_BRUTE 2
|
|
|
|
#define TS_DESC_RED "Red - Assault"
|
|
#define TS_DESC_GRAY "Gray - Ambush"
|
|
#define TS_DESC_GREEN "Green - Nurse"
|
|
#define TS_DESC_WHITE "White - Infect"
|
|
#define TS_DESC_BLACK "Black - Poison"
|
|
#define TS_DESC_PURPLE "Purple - Guard"
|
|
#define TS_DESC_BROWN "Brown - Breacher"
|
|
#define TS_DESC_PRINCE "Prince - HERO"
|
|
#define TS_DESC_PRINCESS "Princess - HORDE"
|
|
#define TS_DESC_MOTHER "Mother - SUPPORT"
|
|
#define TS_DESC_QUEEN "Queen - LEADER"
|
|
|
|
#define TS_TIER_1 1
|
|
#define TS_TIER_2 2
|
|
#define TS_TIER_3 3
|
|
#define TS_TIER_4 4
|
|
#define TS_TIER_5 5
|
|
|
|
/* Defines used for `incorporeal_move` */
|
|
#define NO_INCORPOREAL_MOVE 0
|
|
#define INCORPOREAL_MOVE_NORMAL 1
|
|
#define INCORPOREAL_MOVE_NINJA 2
|
|
#define INCORPOREAL_MOVE_HOLY_BLOCK 3
|
|
|
|
// Brain damage ratio defines
|
|
// These are built around the baseline of a brain having a max hp of 120
|
|
#define BRAIN_DAMAGE_RATIO_LIGHT 1 / 12
|
|
#define BRAIN_DAMAGE_RATIO_MINOR 3 / 12
|
|
#define BRAIN_DAMAGE_RATIO_MODERATE 6 / 12
|
|
#define BRAIN_DAMAGE_RATIO_SEVERE 8 / 12
|
|
#define BRAIN_DAMAGE_RATIO_CRITICAL 10 / 12
|
|
|
|
#define GRAB_PIXEL_SHIFT_PASSIVE 6
|
|
#define GRAB_PIXEL_SHIFT_AGGRESSIVE 12
|
|
#define GRAB_PIXEL_SHIFT_NECK 16
|
|
|
|
/// Default minimum body temperature mobs can exist in before taking damage
|
|
#define NPC_DEFAULT_MIN_TEMP 250
|
|
/// Default maximum body temperature mobs can exist in before taking damage
|
|
#define NPC_DEFAULT_MAX_TEMP 350
|