From c49df85b54639d489e75eeb017d98bb00c288fc5 Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Tue, 27 Dec 2016 18:36:37 -0500 Subject: [PATCH] Shuffles some defines out of misc.dm (#22479) --- code/__DEFINES/{genetics.dm => DNA.dm} | 255 +++++++-------- code/__DEFINES/MC.dm | 5 +- code/__DEFINES/atom_hud.dm | 45 +++ code/__DEFINES/combat.dm | 105 ++++-- code/__DEFINES/construction.dm | 51 ++- code/__DEFINES/hud.dm | 49 +-- code/__DEFINES/{clothing.dm => inventory.dm} | 316 ++++++++++--------- code/__DEFINES/machines.dm | 31 +- code/__DEFINES/misc.dm | 224 ------------- code/__DEFINES/mobs.dm | 103 ++++++ code/__DEFINES/{bots.dm => robots.dm} | 14 +- code/__DEFINES/tablecrafting.dm | 20 -- tgstation.dme | 9 +- 13 files changed, 604 insertions(+), 623 deletions(-) rename code/__DEFINES/{genetics.dm => DNA.dm} (79%) create mode 100644 code/__DEFINES/atom_hud.dm rename code/__DEFINES/{clothing.dm => inventory.dm} (79%) create mode 100644 code/__DEFINES/mobs.dm rename code/__DEFINES/{bots.dm => robots.dm} (79%) delete mode 100644 code/__DEFINES/tablecrafting.dm diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/DNA.dm similarity index 79% rename from code/__DEFINES/genetics.dm rename to code/__DEFINES/DNA.dm index 825d94c0b62..20bf0b55cc8 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/DNA.dm @@ -1,140 +1,115 @@ - -//Defines copying names of mutations in all cases, make sure to change this if you change mutation's name -#define HULK "Hulk" -#define XRAY "X Ray Vision" -#define COLDRES "Cold Resistance" -#define TK "Telekinesis" -#define NERVOUS "Nervousness" -#define EPILEPSY "Epilepsy" -#define MUTATE "Unstable DNA" -#define COUGH "Cough" -#define DWARFISM "Dwarfism" -#define CLOWNMUT "Clumsiness" -#define TOURETTES "Tourettes Syndrome" -#define DEAFMUT "Deafness" -#define BLINDMUT "Blindness" -#define RACEMUT "Monkified" -#define BADSIGHT "Near Sightness" -#define LASEREYES "Laser Eyes" -#define CHAMELEON "Chameleon" -#define WACKY "Wacky" -#define MUT_MUTE "Mute" -#define SMILE "Smile" -#define UNINTELLIGABLE "Unintelligable" -#define SWEDISH "Swedish" -#define CHAV "Chav" -#define ELVIS "Elvis" - -#define UI_CHANGED "ui changed" -#define UE_CHANGED "ue changed" - -#define CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY 204 - -// String identifiers for associative list lookup - -//Types of usual mutations -#define POSITIVE 1 -#define NEGATIVE 2 -#define MINOR_NEGATIVE 3 - -//Mutations that cant be taken from genetics and are not in SE -#define NON_SCANNABLE -1 - - // Extra powers: -#define LASER 9 // harm intent - click anywhere to shoot lasers from eyes -#define HEAL 10 // healing people with hands -#define SHADOW 11 // shadow teleportation (create in/out portals anywhere) (25%) -#define SCREAM 12 // supersonic screaming (25%) -#define EXPLOSIVE 13 // exploding on-demand (15%) -#define REGENERATION 14 // superhuman regeneration (30%) -#define REPROCESSOR 15 // eat anything (50%) -#define SHAPESHIFTING 16 // take on the appearance of anything (40%) -#define PHASING 17 // ability to phase through walls (40%) -#define SHIELD 18 // shielding from all projectile attacks (30%) -#define SHOCKWAVE 19 // attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%) -#define ELECTRICITY 20 // ability to shoot electric attacks (15%) - -//DNA - Because fuck you and your magic numbers being all over the codebase. -#define DNA_BLOCK_SIZE 3 - -#define DNA_UNI_IDENTITY_BLOCKS 7 -#define DNA_HAIR_COLOR_BLOCK 1 -#define DNA_FACIAL_HAIR_COLOR_BLOCK 2 -#define DNA_SKIN_TONE_BLOCK 3 -#define DNA_EYE_COLOR_BLOCK 4 -#define DNA_GENDER_BLOCK 5 -#define DNA_FACIAL_HAIR_STYLE_BLOCK 6 -#define DNA_HAIR_STYLE_BLOCK 7 - -#define DNA_STRUC_ENZYMES_BLOCKS 19 -#define DNA_UNIQUE_ENZYMES_LEN 32 - -//Transformation proc stuff -#define TR_KEEPITEMS 1 -#define TR_KEEPVIRUS 2 -#define TR_KEEPDAMAGE 4 -#define TR_HASHNAME 8 // hashing names (e.g. monkey(e34f)) (only in monkeyize) -#define TR_KEEPIMPLANTS 16 -#define TR_KEEPSE 32 // changelings shouldn't edit the DNA's SE when turning into a monkey -#define TR_DEFAULTMSG 64 -#define TR_KEEPSRC 128 -#define TR_KEEPORGANS 256 - -//Organ stuff, It's here because "Genetics" is the most relevant file for organs and bodyparts -#define ORGAN_ORGANIC 1 -#define ORGAN_ROBOTIC 2 - -#define BODYPART_ORGANIC 1 -#define BODYPART_ROBOTIC 2 - -#define MONKEY_BODYPART "monkey" -#define ALIEN_BODYPART "alien" -#define LARVA_BODYPART "larva" -#define DEVIL_BODYPART "devil" - -//Nutrition levels for humans. No idea where else to put it -#define NUTRITION_LEVEL_FAT 600 -#define NUTRITION_LEVEL_FULL 550 -#define NUTRITION_LEVEL_WELL_FED 450 -#define NUTRITION_LEVEL_FED 350 -#define NUTRITION_LEVEL_HUNGRY 250 -#define NUTRITION_LEVEL_STARVING 150 - -#define CLONER_FRESH_CLONE "fresh" -#define CLONER_MATURE_CLONE "mature" - -//Blood levels -#define BLOOD_VOLUME_MAXIMUM 2000 -#define BLOOD_VOLUME_SLIME_SPLIT 1120 -#define BLOOD_VOLUME_NORMAL 560 -#define BLOOD_VOLUME_SAFE 501 -#define BLOOD_VOLUME_OKAY 336 -#define BLOOD_VOLUME_BAD 224 -#define BLOOD_VOLUME_SURVIVE 122 - -//species traits for mutantraces -#define MUTCOLORS 1 -#define HAIR 2 -#define FACEHAIR 3 -#define EYECOLOR 4 -#define LIPS 5 -#define RESISTHOT 6 -#define RESISTCOLD 7 -#define RESISTPRESSURE 8 -#define RADIMMUNE 9 -#define NOBREATH 10 -#define NOGUNS 11 -#define NOBLOOD 12 -#define NOFIRE 13 -#define VIRUSIMMUNE 14 -#define PIERCEIMMUNE 15 -#define NOTRANSSTING 16 -#define MUTCOLORS_PARTSONLY 17 //Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless. -#define NODISMEMBER 18 -#define NOHUNGER 19 -#define NOCRITDAMAGE 20 -#define NOZOMBIE 21 -#define EASYDISMEMBER 22 -#define EASYLIMBATTACHMENT 23 -#define TOXINLOVER 24 -#define DIGITIGRADE 25 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi) +/*ALL DNA, SPECIES, AND GENETICS-RELATED DEFINES GO HERE*/ + +#define CHECK_DNA_AND_SPECIES(C) if((!(C.dna)) || (!(C.dna.species))) return + +//Defines copying names of mutations in all cases, make sure to change this if you change mutation's name +#define HULK "Hulk" +#define XRAY "X Ray Vision" +#define COLDRES "Cold Resistance" +#define TK "Telekinesis" +#define NERVOUS "Nervousness" +#define EPILEPSY "Epilepsy" +#define MUTATE "Unstable DNA" +#define COUGH "Cough" +#define DWARFISM "Dwarfism" +#define CLOWNMUT "Clumsiness" +#define TOURETTES "Tourettes Syndrome" +#define DEAFMUT "Deafness" +#define BLINDMUT "Blindness" +#define RACEMUT "Monkified" +#define BADSIGHT "Near Sightness" +#define LASEREYES "Laser Eyes" +#define CHAMELEON "Chameleon" +#define WACKY "Wacky" +#define MUT_MUTE "Mute" +#define SMILE "Smile" +#define UNINTELLIGABLE "Unintelligable" +#define SWEDISH "Swedish" +#define CHAV "Chav" +#define ELVIS "Elvis" + +#define UI_CHANGED "ui changed" +#define UE_CHANGED "ue changed" + +#define CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY 204 + +// String identifiers for associative list lookup + +//Types of usual mutations +#define POSITIVE 1 +#define NEGATIVE 2 +#define MINOR_NEGATIVE 3 + +//Mutations that cant be taken from genetics and are not in SE +#define NON_SCANNABLE -1 + + // Extra powers: +#define LASER 9 // harm intent - click anywhere to shoot lasers from eyes +#define HEAL 10 // healing people with hands +#define SHADOW 11 // shadow teleportation (create in/out portals anywhere) (25%) +#define SCREAM 12 // supersonic screaming (25%) +#define EXPLOSIVE 13 // exploding on-demand (15%) +#define REGENERATION 14 // superhuman regeneration (30%) +#define REPROCESSOR 15 // eat anything (50%) +#define SHAPESHIFTING 16 // take on the appearance of anything (40%) +#define PHASING 17 // ability to phase through walls (40%) +#define SHIELD 18 // shielding from all projectile attacks (30%) +#define SHOCKWAVE 19 // attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%) +#define ELECTRICITY 20 // ability to shoot electric attacks (15%) + +//DNA - Because fuck you and your magic numbers being all over the codebase. +#define DNA_BLOCK_SIZE 3 + +#define DNA_UNI_IDENTITY_BLOCKS 7 +#define DNA_HAIR_COLOR_BLOCK 1 +#define DNA_FACIAL_HAIR_COLOR_BLOCK 2 +#define DNA_SKIN_TONE_BLOCK 3 +#define DNA_EYE_COLOR_BLOCK 4 +#define DNA_GENDER_BLOCK 5 +#define DNA_FACIAL_HAIR_STYLE_BLOCK 6 +#define DNA_HAIR_STYLE_BLOCK 7 + +#define DNA_STRUC_ENZYMES_BLOCKS 19 +#define DNA_UNIQUE_ENZYMES_LEN 32 + +//Transformation proc stuff +#define TR_KEEPITEMS 1 +#define TR_KEEPVIRUS 2 +#define TR_KEEPDAMAGE 4 +#define TR_HASHNAME 8 // hashing names (e.g. monkey(e34f)) (only in monkeyize) +#define TR_KEEPIMPLANTS 16 +#define TR_KEEPSE 32 // changelings shouldn't edit the DNA's SE when turning into a monkey +#define TR_DEFAULTMSG 64 +#define TR_KEEPSRC 128 +#define TR_KEEPORGANS 256 + + +#define CLONER_FRESH_CLONE "fresh" +#define CLONER_MATURE_CLONE "mature" + +//species traits for mutantraces +#define MUTCOLORS 1 +#define HAIR 2 +#define FACEHAIR 3 +#define EYECOLOR 4 +#define LIPS 5 +#define RESISTHOT 6 +#define RESISTCOLD 7 +#define RESISTPRESSURE 8 +#define RADIMMUNE 9 +#define NOBREATH 10 +#define NOGUNS 11 +#define NOBLOOD 12 +#define NOFIRE 13 +#define VIRUSIMMUNE 14 +#define PIERCEIMMUNE 15 +#define NOTRANSSTING 16 +#define MUTCOLORS_PARTSONLY 17 //Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless. +#define NODISMEMBER 18 +#define NOHUNGER 19 +#define NOCRITDAMAGE 20 +#define NOZOMBIE 21 +#define EASYDISMEMBER 22 +#define EASYLIMBATTACHMENT 23 +#define TOXINLOVER 24 +#define DIGITIGRADE 25 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi) diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm index b0030793b6d..bd980a54b8a 100644 --- a/code/__DEFINES/MC.dm +++ b/code/__DEFINES/MC.dm @@ -44,6 +44,7 @@ // This flag overrides SS_KEEP_TIMING #define SS_POST_FIRE_TIMING 128 - //Timing subsystem -#define GLOBAL_PROC "some_magic_bullshit" +#define GLOBAL_PROC "some_magic_bullshit" +#define TIMER_NORMAL "normal" +#define TIMER_UNIQUE "unique" diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm new file mode 100644 index 00000000000..cb2c3adab5c --- /dev/null +++ b/code/__DEFINES/atom_hud.dm @@ -0,0 +1,45 @@ +// for secHUDs and medHUDs and variants. The number is the location of the image on the list hud_list +// note: if you add more HUDs, even for non-human atoms, make sure to use unique numbers for the defines! +// /datum/atom_hud expects these to be unique +// these need to be strings in order to make them associative lists +#define HEALTH_HUD "1" // dead, alive, sick, health status +#define STATUS_HUD "2" // a simple line rounding the mob's number health +#define ID_HUD "3" // the job asigned to your ID +#define WANTED_HUD "4" // wanted, released, parroled, security status +#define IMPLOYAL_HUD "5" // loyality implant +#define IMPCHEM_HUD "6" // chemical implant +#define IMPTRACK_HUD "7" // tracking implant +#define DIAG_STAT_HUD "8" // Silicon/Mech Status +#define DIAG_HUD "9" // Silicon health bar +#define DIAG_BATT_HUD "10"// Borg/Mech power meter +#define DIAG_MECH_HUD "11"// Mech health bar +#define DIAG_BOT_HUD "12"// Bot HUDs +//for antag huds. these are used at the /mob level +#define ANTAG_HUD "13" + +//data HUD (medhud, sechud) defines +//Don't forget to update human/New() if you change these! +#define DATA_HUD_SECURITY_BASIC 1 +#define DATA_HUD_SECURITY_ADVANCED 2 +#define DATA_HUD_MEDICAL_BASIC 3 +#define DATA_HUD_MEDICAL_ADVANCED 4 +#define DATA_HUD_DIAGNOSTIC 5 +//antag HUD defines +#define ANTAG_HUD_CULT 6 +#define ANTAG_HUD_REV 7 +#define ANTAG_HUD_OPS 8 +#define ANTAG_HUD_WIZ 9 +#define ANTAG_HUD_SHADOW 10 +#define ANTAG_HUD_TRAITOR 11 +#define ANTAG_HUD_NINJA 12 +#define ANTAG_HUD_CHANGELING 13 +#define ANTAG_HUD_ABDUCTOR 14 +#define ANTAG_HUD_DEVIL 15 +#define ANTAG_HUD_SINTOUCHED 16 +#define ANTAG_HUD_SOULLESS 17 +#define ANTAG_HUD_CLOCKWORK 18 + +// Notification action types +#define NOTIFY_JUMP "jump" +#define NOTIFY_ATTACK "attack" +#define NOTIFY_ORBIT "orbit" diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index b51dcec889a..96bf89cb970 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -1,5 +1,8 @@ -//Damage things //TODO: merge these down to reduce on defines -//Way to waste perfectly good damagetype names (BRUTE) on this... If you were really worried about case sensitivity, you could have just used lowertext(damagetype) in the proc... +/*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" @@ -7,6 +10,13 @@ #define CLONE "clone" #define STAMINA "stamina" +//bitflag damage defines used for suicide_act +#define BRUTELOSS 1 +#define FIRELOSS 2 +#define TOXLOSS 4 +#define OXYLOSS 8 +#define SHAME 16 + #define STUN "stun" #define WEAKEN "weaken" #define PARALYZE "paralize" @@ -17,13 +27,6 @@ #define DROWSY "drowsy" #define JITTER "jitter" -//I hate adding defines like this but I'd much rather deal with bitflags than lists and string searches -#define BRUTELOSS 1 -#define FIRELOSS 2 -#define TOXLOSS 4 -#define OXYLOSS 8 -#define SHAME 16 - //Bitflags defining which status effects could be or are inflicted on a mob #define CANSTUN 1 #define CANWEAKEN 2 @@ -37,6 +40,25 @@ #define DISFIGURED 16384 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system #define XENO_HOST 32768 //Tracks whether we're gonna be a baby alien's mummy. +//Health Defines +#define HEALTH_THRESHOLD_CRIT 0 +#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 @@ -44,12 +66,38 @@ #define GRAB_NECK 2 #define GRAB_KILL 3 +//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 -//Hostile Mob AI Status -#define AI_ON 1 -#define AI_IDLE 2 -#define AI_OFF 3 +//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) @@ -62,29 +110,22 @@ #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) - -//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 - -//the define for visible message range in combat -#define COMBAT_MESSAGE_RANGE 3 - - //Gun Stuff - #define SAWN_INTACT 0 - #define SAWN_OFF 1 - +#define SAWN_INTACT 0 +#define SAWN_OFF 1 +//Gun weapon weight #define WEAPON_DUAL_WIELD 0 #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 -//Health Defines -#define HEALTH_THRESHOLD_CRIT 0 -#define HEALTH_THRESHOLD_DEAD -100 \ No newline at end of file diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index f29baf7c0cc..910102fb195 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -1,4 +1,6 @@ -//Defines for construction states of various objects +/*ALL DEFINES RELATED TO CONSTRUCTION, CONSTRUCTING THINGS, OR CONSTRUCTED OBJECTS GO HERE*/ + +//Defines for construction states //girder construction states #define GIRDER_NORMAL 0 @@ -44,3 +46,50 @@ #define EM_UNSECURED 0 #define EM_SECURED 1 #define EM_WELDED 2 + +//other construction-related things + +//windows affected by nar-sie turn this color. +#define NARSIE_WINDOW_COLOUR "#7D1919" + +//let's just pretend fulltile windows being children of border windows is fine +#define FULLTILE_WINDOW_DIR NORTHEAST + +//Material defines, for determining how much of a given material an item contains +#define MAT_METAL "$metal" +#define MAT_GLASS "$glass" +#define MAT_SILVER "$silver" +#define MAT_GOLD "$gold" +#define MAT_DIAMOND "$diamond" +#define MAT_URANIUM "$uranium" +#define MAT_PLASMA "$plasma" +#define MAT_BANANIUM "$bananium" +#define MAT_TITANIUM "$titanium" +#define MAT_BIOMASS "$biomass" +//The amount of materials you get from a sheet of mineral like iron/diamond/glass etc +#define MINERAL_MATERIAL_AMOUNT 2000 +//The maximum size of a stack object. +#define MAX_STACK_SIZE 50 +//maximum amount of cable in a coil +#define MAXCOIL 30 + +//tablecrafting defines +#define CAT_NONE "" +#define CAT_WEAPON "Weaponry" +#define CAT_AMMO "Ammunition" +#define CAT_ROBOT "Robots" +#define CAT_MISC "Misc" +#define CAT_PRIMAL "Tribal" +#define CAT_BREAD "Breads" +#define CAT_BURGER "Burgers" +#define CAT_CAKE "Cakes" +#define CAT_EGG "Egg-Based Food" +#define CAT_MEAT "Meats" +#define CAT_MISCFOOD "Misc. Food" +#define CAT_PASTRY "Pastries" +#define CAT_PIE "Pies" +#define CAT_PIZZA "Pizzas" +#define CAT_SALAD "Salads" +#define CAT_SANDWICH "Sandwiches" +#define CAT_SOUP "Soups" +#define CAT_SPAGHETTI "Spaghettis" diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 6bbc2fe1b59..4dfcfb87b4c 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -1,45 +1,6 @@ -// for secHUDs and medHUDs and variants. The number is the location of the image on the list hud_list -// note: if you add more HUDs, even for non-human atoms, make sure to use unique numbers for the defines! -// /datum/atom_hud expects these to be unique -// these need to be strings in order to make them associative lists -#define HEALTH_HUD "1" // dead, alive, sick, health status -#define STATUS_HUD "2" // a simple line rounding the mob's number health -#define ID_HUD "3" // the job asigned to your ID -#define WANTED_HUD "4" // wanted, released, parroled, security status -#define IMPLOYAL_HUD "5" // loyality implant -#define IMPCHEM_HUD "6" // chemical implant -#define IMPTRACK_HUD "7" // tracking implant -#define DIAG_STAT_HUD "8" // Silicon/Mech Status -#define DIAG_HUD "9" // Silicon health bar -#define DIAG_BATT_HUD "10"// Borg/Mech power meter -#define DIAG_MECH_HUD "11"// Mech health bar -#define DIAG_BOT_HUD "12"// Bot HUDs -//for antag huds. these are used at the /mob level -#define ANTAG_HUD "13" +//HUD styles. Index order defines how they are cycled in F12. +#define HUD_STYLE_STANDARD 1 //Standard hud +#define HUD_STYLE_REDUCED 2 //Reduced hud (just hands and intent switcher) +#define HUD_STYLE_NOHUD 3 //No hud (for screenshots) -//data HUD (medhud, sechud) defines -//Don't forget to update human/New() if you change these! -#define DATA_HUD_SECURITY_BASIC 1 -#define DATA_HUD_SECURITY_ADVANCED 2 -#define DATA_HUD_MEDICAL_BASIC 3 -#define DATA_HUD_MEDICAL_ADVANCED 4 -#define DATA_HUD_DIAGNOSTIC 5 -//antag HUD defines -#define ANTAG_HUD_CULT 6 -#define ANTAG_HUD_REV 7 -#define ANTAG_HUD_OPS 8 -#define ANTAG_HUD_WIZ 9 -#define ANTAG_HUD_SHADOW 10 -#define ANTAG_HUD_TRAITOR 11 -#define ANTAG_HUD_NINJA 12 -#define ANTAG_HUD_CHANGELING 13 -#define ANTAG_HUD_ABDUCTOR 14 -#define ANTAG_HUD_DEVIL 15 -#define ANTAG_HUD_SINTOUCHED 16 -#define ANTAG_HUD_SOULLESS 17 -#define ANTAG_HUD_CLOCKWORK 18 - -// Notification action types -#define NOTIFY_JUMP "jump" -#define NOTIFY_ATTACK "attack" -#define NOTIFY_ORBIT "orbit" +#define HUD_VERSIONS 3 //Used in show_hud(); Please ensure this is the same as the maximum index. diff --git a/code/__DEFINES/clothing.dm b/code/__DEFINES/inventory.dm similarity index 79% rename from code/__DEFINES/clothing.dm rename to code/__DEFINES/inventory.dm index 766dc8bfb41..2abd148e492 100644 --- a/code/__DEFINES/clothing.dm +++ b/code/__DEFINES/inventory.dm @@ -1,153 +1,163 @@ -//ITEM INVENTORY SLOT BITMASKS -#define SLOT_OCLOTHING 1 -#define SLOT_ICLOTHING 2 -#define SLOT_GLOVES 4 -#define SLOT_EYES 8 -#define SLOT_EARS 16 -#define SLOT_MASK 32 -#define SLOT_HEAD 64 -#define SLOT_FEET 128 -#define SLOT_ID 256 -#define SLOT_BELT 512 -#define SLOT_BACK 1024 -#define SLOT_POCKET 2048 // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. -#define SLOT_DENYPOCKET 4096 // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. -#define SLOT_NECK 8192 - -//SLOTS -#define slot_back 1 -#define slot_wear_mask 2 -#define slot_handcuffed 3 -#define slot_hands 4 //wherever you provide a slot for hands you provide slot_hands - //slot_hands as a slot will pick ANY available hand -#define slot_belt 5 -#define slot_wear_id 6 -#define slot_ears 7 -#define slot_glasses 8 -#define slot_gloves 9 -#define slot_neck 10 -#define slot_head 11 -#define slot_shoes 12 -#define slot_wear_suit 13 -#define slot_w_uniform 14 -#define slot_l_store 15 -#define slot_r_store 16 -#define slot_s_store 17 -#define slot_in_backpack 18 -#define slot_legcuffed 19 -#define slot_generic_dextrous_storage 20 - -#define slots_amt 20 // Keep this up to date! - -//I hate that this has to exist -/proc/slotdefine2slotbit(slotdefine) //Keep this up to date with the value of SLOT BITMASKS and SLOTS (the two define sections above) - . = 0 - switch(slotdefine) - if(slot_back) - . = SLOT_BACK - if(slot_wear_mask) - . = SLOT_MASK - if(slot_neck) - . = SLOT_NECK - if(slot_belt) - . = SLOT_BELT - if(slot_wear_id) - . = SLOT_ID - if(slot_ears) - . = SLOT_EARS - if(slot_glasses) - . = SLOT_EYES - if(slot_gloves) - . = SLOT_GLOVES - if(slot_head) - . = SLOT_HEAD - if(slot_shoes) - . = SLOT_FEET - if(slot_wear_suit) - . = SLOT_OCLOTHING - if(slot_w_uniform) - . = SLOT_ICLOTHING - if(slot_l_store, slot_r_store) - . = SLOT_POCKET - - -//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses. -#define HIDEGLOVES 1 -#define HIDESUITSTORAGE 2 -#define HIDEJUMPSUIT 4 //these first four are only used in exterior suits -#define HIDESHOES 8 -#define HIDEMASK 16 //these last six are only used in masks and headgear. -#define HIDEEARS 32 // (ears means headsets and such) -#define HIDEEYES 64 // Whether eyes and glasses are hidden -#define HIDEFACE 128 // Whether we appear as unknown. -#define HIDEHAIR 256 -#define HIDEFACIALHAIR 512 -#define HIDENECK 1024 - -//Cant seem to find a mob bitflags area other than the powers one - -// bitflags for clothing parts - also used for limbs -#define HEAD 1 -#define CHEST 2 -#define GROIN 4 -#define LEG_LEFT 8 -#define LEG_RIGHT 16 -#define LEGS 24 -#define FOOT_LEFT 32 -#define FOOT_RIGHT 64 -#define FEET 96 -#define ARM_LEFT 128 -#define ARM_RIGHT 256 -#define ARMS 384 -#define HAND_LEFT 512 -#define HAND_RIGHT 1024 -#define HANDS 1536 -#define NECK 2048 -#define FULL_BODY 4095 - -// bitflags for the percentual amount of protection a piece of clothing which covers the body part offers. -// Used with human/proc/get_heat_protection() and human/proc/get_cold_protection() -// The values here should add up to 1. -// Hands and feet have 2.5%, arms and legs 7.5%, each of the torso parts has 15% and the head has 30% -#define THERMAL_PROTECTION_HEAD 0.3 -#define THERMAL_PROTECTION_CHEST 0.15 -#define THERMAL_PROTECTION_GROIN 0.15 -#define THERMAL_PROTECTION_LEG_LEFT 0.075 -#define THERMAL_PROTECTION_LEG_RIGHT 0.075 -#define THERMAL_PROTECTION_FOOT_LEFT 0.025 -#define THERMAL_PROTECTION_FOOT_RIGHT 0.025 -#define THERMAL_PROTECTION_ARM_LEFT 0.075 -#define THERMAL_PROTECTION_ARM_RIGHT 0.075 -#define THERMAL_PROTECTION_HAND_LEFT 0.025 -#define THERMAL_PROTECTION_HAND_RIGHT 0.025 - -//flags for female outfits: How much the game can safely "take off" the uniform without it looking weird - -#define NO_FEMALE_UNIFORM 0 -#define FEMALE_UNIFORM_FULL 1 -#define FEMALE_UNIFORM_TOP 2 - -//flags for alternate styles: These are hard sprited so don't set this if you didn't put the effort it - -#define NORMAL_STYLE 0 -#define ALT_STYLE 1 -#define DIGITIGRADE_STYLE 2 - -//flags for outfits that have mutantrace variants (try not to use this): Currently only needed if you're trying to add tight fitting bootyshorts - -#define NO_MUTANTRACE_VARIATION 0 -#define MUTANTRACE_VARIATION 1 - -#define NOT_DIGITIGRADE 0 -#define FULL_DIGITIGRADE 1 -#define SQUISHED_DIGITIGRADE 2 - -//flags for covering body parts -#define GLASSESCOVERSEYES 1 -#define MASKCOVERSEYES 2 // get rid of some of the other retardation in these flags -#define HEADCOVERSEYES 4 // feel free to realloc these numbers for other purposes -#define MASKCOVERSMOUTH 8 // on other items, these are just for mask/head -#define HEADCOVERSMOUTH 16 - -#define TINT_DARKENED 2 //Threshold of tint level to apply weld mask overlay -#define TINT_BLIND 3 //Threshold of tint level to obscure vision fully +/*ALL DEFINES RELATED TO INVENTORY OBJECTS, MANAGEMENT, ETC, GO HERE*/ + +//ITEM INVENTORY WEIGHT, FOR w_class +#define WEIGHT_CLASS_TINY 1 //Usually items smaller then a human hand, ex: Playing Cards, Lighter, Scalpel, Coins/Money +#define WEIGHT_CLASS_SMALL 2 //Pockets can hold small and tiny items, ex: Flashlight, Multitool, Grenades, GPS Device +#define WEIGHT_CLASS_NORMAL 3 //Standard backpacks can carry tiny, small & normal items, ex: Fire extinguisher, Stunbaton, Gas Mask, Metal Sheets +#define WEIGHT_CLASS_BULKY 4 //Items that can be weilded or equipped but not stored in an inventory, ex: Defibrillator, Backpack, Space Suits +#define WEIGHT_CLASS_HUGE 5 //Usually represents objects that require two hands to operate, ex: Shotgun, Two Handed Melee Weapons +#define WEIGHT_CLASS_GIGANTIC 6 //Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe + +//Inventory depth: limits how many nested storage items you can access directly. +//1: stuff in mob, 2: stuff in backpack, 3: stuff in box in backpack, etc +#define INVENTORY_DEPTH 3 +#define STORAGE_VIEW_DEPTH 2 + +//ITEM INVENTORY SLOT BITMASKS +#define SLOT_OCLOTHING 1 +#define SLOT_ICLOTHING 2 +#define SLOT_GLOVES 4 +#define SLOT_EYES 8 +#define SLOT_EARS 16 +#define SLOT_MASK 32 +#define SLOT_HEAD 64 +#define SLOT_FEET 128 +#define SLOT_ID 256 +#define SLOT_BELT 512 +#define SLOT_BACK 1024 +#define SLOT_POCKET 2048 // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. +#define SLOT_DENYPOCKET 4096 // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. +#define SLOT_NECK 8192 + +//SLOTS +#define slot_back 1 +#define slot_wear_mask 2 +#define slot_handcuffed 3 +#define slot_hands 4 //wherever you provide a slot for hands you provide slot_hands + //slot_hands as a slot will pick ANY available hand +#define slot_belt 5 +#define slot_wear_id 6 +#define slot_ears 7 +#define slot_glasses 8 +#define slot_gloves 9 +#define slot_neck 10 +#define slot_head 11 +#define slot_shoes 12 +#define slot_wear_suit 13 +#define slot_w_uniform 14 +#define slot_l_store 15 +#define slot_r_store 16 +#define slot_s_store 17 +#define slot_in_backpack 18 +#define slot_legcuffed 19 +#define slot_generic_dextrous_storage 20 + +#define slots_amt 20 // Keep this up to date! + +//I hate that this has to exist +/proc/slotdefine2slotbit(slotdefine) //Keep this up to date with the value of SLOT BITMASKS and SLOTS (the two define sections above) + . = 0 + switch(slotdefine) + if(slot_back) + . = SLOT_BACK + if(slot_wear_mask) + . = SLOT_MASK + if(slot_neck) + . = SLOT_NECK + if(slot_belt) + . = SLOT_BELT + if(slot_wear_id) + . = SLOT_ID + if(slot_ears) + . = SLOT_EARS + if(slot_glasses) + . = SLOT_EYES + if(slot_gloves) + . = SLOT_GLOVES + if(slot_head) + . = SLOT_HEAD + if(slot_shoes) + . = SLOT_FEET + if(slot_wear_suit) + . = SLOT_OCLOTHING + if(slot_w_uniform) + . = SLOT_ICLOTHING + if(slot_l_store, slot_r_store) + . = SLOT_POCKET + + +//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses. +#define HIDEGLOVES 1 +#define HIDESUITSTORAGE 2 +#define HIDEJUMPSUIT 4 //these first four are only used in exterior suits +#define HIDESHOES 8 +#define HIDEMASK 16 //these last six are only used in masks and headgear. +#define HIDEEARS 32 // (ears means headsets and such) +#define HIDEEYES 64 // Whether eyes and glasses are hidden +#define HIDEFACE 128 // Whether we appear as unknown. +#define HIDEHAIR 256 +#define HIDEFACIALHAIR 512 +#define HIDENECK 1024 + +//bitflags for clothing coverage - also used for limbs +#define HEAD 1 +#define CHEST 2 +#define GROIN 4 +#define LEG_LEFT 8 +#define LEG_RIGHT 16 +#define LEGS 24 +#define FOOT_LEFT 32 +#define FOOT_RIGHT 64 +#define FEET 96 +#define ARM_LEFT 128 +#define ARM_RIGHT 256 +#define ARMS 384 +#define HAND_LEFT 512 +#define HAND_RIGHT 1024 +#define HANDS 1536 +#define NECK 2048 +#define FULL_BODY 4095 + +// bitflags for the percentual amount of protection a piece of clothing which covers the body part offers. +// Used with human/proc/get_heat_protection() and human/proc/get_cold_protection() +// The values here should add up to 1. +// Hands and feet have 2.5%, arms and legs 7.5%, each of the torso parts has 15% and the head has 30% +#define THERMAL_PROTECTION_HEAD 0.3 +#define THERMAL_PROTECTION_CHEST 0.15 +#define THERMAL_PROTECTION_GROIN 0.15 +#define THERMAL_PROTECTION_LEG_LEFT 0.075 +#define THERMAL_PROTECTION_LEG_RIGHT 0.075 +#define THERMAL_PROTECTION_FOOT_LEFT 0.025 +#define THERMAL_PROTECTION_FOOT_RIGHT 0.025 +#define THERMAL_PROTECTION_ARM_LEFT 0.075 +#define THERMAL_PROTECTION_ARM_RIGHT 0.075 +#define THERMAL_PROTECTION_HAND_LEFT 0.025 +#define THERMAL_PROTECTION_HAND_RIGHT 0.025 + +//flags for female outfits: How much the game can safely "take off" the uniform without it looking weird +#define NO_FEMALE_UNIFORM 0 +#define FEMALE_UNIFORM_FULL 1 +#define FEMALE_UNIFORM_TOP 2 + +//flags for alternate styles: These are hard sprited so don't set this if you didn't put the effort in +#define NORMAL_STYLE 0 +#define ALT_STYLE 1 +#define DIGITIGRADE_STYLE 2 + +//flags for outfits that have mutantrace variants (try not to use this): Currently only needed if you're trying to add tight fitting bootyshorts +#define NO_MUTANTRACE_VARIATION 0 +#define MUTANTRACE_VARIATION 1 + +#define NOT_DIGITIGRADE 0 +#define FULL_DIGITIGRADE 1 +#define SQUISHED_DIGITIGRADE 2 + +//flags for covering body parts +#define GLASSESCOVERSEYES 1 +#define MASKCOVERSEYES 2 // get rid of some of the other retardation in these flags +#define HEADCOVERSEYES 4 // feel free to realloc these numbers for other purposes +#define MASKCOVERSMOUTH 8 // on other items, these are just for mask/head +#define HEADCOVERSMOUTH 16 + +#define TINT_DARKENED 2 //Threshold of tint level to apply weld mask overlay +#define TINT_BLIND 3 //Threshold of tint level to obscure vision fully diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index c3faaf87809..00c75c7cf38 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -25,6 +25,9 @@ #define LIMBGROWER 64 //Uses synthetic flesh //Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. +//Modular computer/NTNet defines + +//Modular computer part defines #define MC_CPU "CPU" #define MC_HDD "HDD" #define MC_SDD "SDD" @@ -33,4 +36,30 @@ #define MC_PRINT "PRINT" #define MC_CELL "CELL" #define MC_CHARGE "CHARGE" -#define MC_AI "AI" \ No newline at end of file +#define MC_AI "AI" + +//NTNet stuff, for modular computers + // NTNet module-configuration values. Do not change these. If you need to add another use larger number (5..6..7 etc) +#define NTNET_SOFTWAREDOWNLOAD 1 // Downloads of software from NTNet +#define NTNET_PEERTOPEER 2 // P2P transfers of files between devices +#define NTNET_COMMUNICATION 3 // Communication (messaging) +#define NTNET_SYSTEMCONTROL 4 // Control of various systems, RCon, air alarm control, etc. + +//NTNet transfer speeds, used when downloading/uploading a file/program. +#define NTNETSPEED_LOWSIGNAL 0.5 // GQ/s transfer speed when the device is wirelessly connected and on Low signal +#define NTNETSPEED_HIGHSIGNAL 1 // GQ/s transfer speed when the device is wirelessly connected and on High signal +#define NTNETSPEED_ETHERNET 2 // GQ/s transfer speed when the device is using wired connection + +//Caps for NTNet logging. Less than 10 would make logging useless anyway, more than 500 may make the log browser too laggy. Defaults to 100 unless user changes it. +#define MAX_NTNET_LOGS 300 +#define MIN_NTNET_LOGS 10 + +//Program bitflags +#define PROGRAM_ALL 7 +#define PROGRAM_CONSOLE 1 +#define PROGRAM_LAPTOP 2 +#define PROGRAM_TABLET 4 +//Program states +#define PROGRAM_STATE_KILLED 0 +#define PROGRAM_STATE_BACKGROUND 1 +#define PROGRAM_STATE_ACTIVE 2 diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 668dfa8577e..b78bf5e34ba 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -131,54 +131,10 @@ #define TRANSITIONEDGE 7 //Distance from edge to move to another z-level - - -//HUD styles. Please ensure HUD_VERSIONS is the same as the maximum index. Index order defines how they are cycled in F12. -#define HUD_STYLE_STANDARD 1 -#define HUD_STYLE_REDUCED 2 -#define HUD_STYLE_NOHUD 3 - - -#define HUD_VERSIONS 3 //used in show_hud() -//1 = standard hud -//2 = reduced hud (just hands and intent switcher) -//3 = no hud (for screenshots) - -#define MINERAL_MATERIAL_AMOUNT 2000 -//The amount of materials you get from a sheet of mineral like iron/diamond/glass etc -#define MAX_STACK_SIZE 50 -//The maximum size of a stack object. - -#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 - -//click cooldowns, in tenths of a second - - #define BE_CLOSE 1 //in the case of a silicon, to select if they need to be next to the atom #define NO_DEXTERY 1 //if other mobs (monkeys, aliens, etc) can use this //used by canUseTopic() -//Sizes of mobs, used by mob/living/var/mob_size -#define MOB_SIZE_TINY 0 -#define MOB_SIZE_SMALL 1 -#define MOB_SIZE_HUMAN 2 -#define MOB_SIZE_LARGE 3 - -//Cuff resist speeds - -#define FAST_CUFFBREAK 1 -#define INSTANT_CUFFBREAK 2 - -//Slime evolution threshold. Controls how fast slimes can split/grow -#define SLIME_EVOLUTION_THRESHOLD 10 - //singularity defines #define STAGE_ONE 1 #define STAGE_TWO 3 @@ -216,36 +172,6 @@ #define CRAYON_FONT "Comic Sans MS" #define SIGNFONT "Times New Roman" - -//NPC DEFINES -#define INTERACTING 2 -#define TRAVEL 4 -#define FIGHTING 8 - -//TRAITS - -#define TRAIT_ROBUST 2 -#define TRAIT_UNROBUST 4 -#define TRAIT_SMART 8 -#define TRAIT_DUMB 16 -#define TRAIT_MEAN 32 -#define TRAIT_FRIENDLY 64 -#define TRAIT_THIEVING 128 - -//SNPC defines -#define MAX_RANGE_FIND 32 -#define MIN_RANGE_FIND 16 -#define FUZZY_CHANCE_HIGH 85 -#define FUZZY_CHANCE_LOW 50 -#define CHANCE_TALK 1 - -#define SNPC_BRUTE 1 -#define SNPC_STEALTH 2 -#define SNPC_MARTYR 3 -#define SNPC_PSYCHO 4 - - -#define MAXCOIL 30 #define RESIZE_DEFAULT_SIZE 1 //transfer_ai() defines. Main proc in ai_core.dm @@ -253,19 +179,6 @@ #define AI_TRANS_FROM_CARD 2 //Uploading AI from InteliCard #define AI_MECH_HACK 3 //Malfunctioning AI hijacking mecha -//Material defines -#define MAT_METAL "$metal" -#define MAT_GLASS "$glass" -#define MAT_SILVER "$silver" -#define MAT_GOLD "$gold" -#define MAT_DIAMOND "$diamond" -#define MAT_URANIUM "$uranium" -#define MAT_PLASMA "$plasma" -#define MAT_BANANIUM "$bananium" -#define MAT_TITANIUM "$titanium" -#define MAT_BIOMASS "$biomass" - - //check_target_facings() return defines #define FACING_FAILED 0 #define FACING_SAME_DIR 1 @@ -302,11 +215,6 @@ var/list/bloody_footprints_cache = list() //Maximum amount of time, (in approx. seconds.) a tile can be wet for. #define MAXIMUM_WET_TIME 300 -//Object/Item sharpness -#define IS_BLUNT 0 -#define IS_SHARP 1 -#define IS_SHARP_ACCURATE 2 - //unmagic-strings for types of polls #define POLLTYPE_OPTION "OPTION" #define POLLTYPE_TEXT "TEXT" @@ -328,21 +236,6 @@ var/list/bloody_footprints_cache = list() //Gets the turf this atom inhabits #define get_turf(A) (get_step(A, 0)) -//Bot types -#define SEC_BOT 1 // Secutritrons (Beepsky) and ED-209s -#define MULE_BOT 2 // MULEbots -#define FLOOR_BOT 4 // Floorbots -#define CLEAN_BOT 8 // Cleanbots -#define MED_BOT 16 // Medibots - -//Sentience types -#define SENTIENCE_ORGANIC 1 -#define SENTIENCE_ARTIFICIAL 2 -#define SENTIENCE_OTHER 3 -#define SENTIENCE_MINEBOT 4 -#define SENTIENCE_BOSS 5 - - //Fire and Acid stuff, for resistance_flags #define LAVA_PROOF 1 #define FIRE_PROOF 2 //100% immune to fire damage (but not necessarily to lava or heat) @@ -384,10 +277,6 @@ var/global/list/ghost_accs_options = list(GHOST_ACCS_NONE, GHOST_ACCS_DIR, GHOST var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DEFAULT_SPRITE, GHOST_OTHERS_THEIR_SETTING) //Same as ghost_accs_options. -//Bloodcrawling -#define BLOODCRAWL 1 -#define BLOODCRAWL_EAT 2 - //Color Defines #define OOC_COLOR "#002eb8" @@ -422,11 +311,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE //Just space #define SPACE_ICON_STATE "[((x + y) ^ ~(x * y) + z) % 25]" -//Gun trigger guards -#define TRIGGER_GUARD_ALLOW_ALL -1 -#define TRIGGER_GUARD_NONE 0 -#define TRIGGER_GUARD_NORMAL 1 - // Maploader bounds indices #define MAP_MINX 1 #define MAP_MINY 2 @@ -435,14 +319,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define MAP_MAXY 5 #define MAP_MAXZ 6 -#define CHECK_DNA_AND_SPECIES(C) if((!(C.dna)) || (!(C.dna.species))) return - -// Evil narsie colour -#define NARSIE_WINDOW_COLOUR "#7D1919" - -//let's just pretend fulltile windows being children of border windows is fine -#define FULLTILE_WINDOW_DIR NORTHEAST - // Defib stats #define DEFIB_TIME_LIMIT 120 #define DEFIB_TIME_LOSS 60 @@ -451,15 +327,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define FIRST_DIAG_STEP 1 #define SECOND_DIAG_STEP 2 -//Slime commands defines -#define SLIME_FRIENDSHIP_FOLLOW 3 //Min friendship to order it to follow -#define SLIME_FRIENDSHIP_STOPEAT 5 //Min friendship to order it to stop eating someone -#define SLIME_FRIENDSHIP_STOPEAT_NOANGRY 7 //Min friendship to order it to stop eating someone without it losing friendship -#define SLIME_FRIENDSHIP_STOPCHASE 4 //Min friendship to order it to stop chasing someone (their target) -#define SLIME_FRIENDSHIP_STOPCHASE_NOANGRY 6 //Min friendship to order it to stop chasing someone (their target) without it losing friendship -#define SLIME_FRIENDSHIP_STAY 3 //Min friendship to order it to stay -#define SLIME_FRIENDSHIP_ATTACK 8 //Min friendship to order it to attack - #define DEADCHAT_ARRIVALRATTLE "arrivalrattle" #define DEADCHAT_DEATHRATTLE "deathrattle" #define DEADCHAT_REGULAR "regular-deadchat" @@ -478,20 +345,11 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define COORD(A) "([A.x],[A.y],[A.z])" #define INCREMENT_TALLY(L, stat) if(L[stat]){L[stat]++}else{L[stat] = 1} -// Inventory depth: limits how many nested storage items you can access directly. -// 1: stuff in mob, 2: stuff in backpack, 3: stuff in box in backpack, etc -#define INVENTORY_DEPTH 3 -#define STORAGE_VIEW_DEPTH 2 - - // Medal names - #define BOSS_KILL_MEDAL "Killer" - #define ALL_KILL_MEDAL "Exterminator" //Killing all of x type // Score names - #define LEGION_SCORE "Legion Killed" #define COLOSSUS_SCORE "Colossus Killed" #define BUBBLEGUM_SCORE "Bubblegum Killed" @@ -501,33 +359,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define BOSS_SCORE "Bosses Killed" #define TENDRIL_CLEAR_SCORE "Tendrils Killed" - - - // NTNet module-configuration values. Do not change these. If you need to add another use larger number (5..6..7 etc) -#define NTNET_SOFTWAREDOWNLOAD 1 // Downloads of software from NTNet -#define NTNET_PEERTOPEER 2 // P2P transfers of files between devices -#define NTNET_COMMUNICATION 3 // Communication (messaging) -#define NTNET_SYSTEMCONTROL 4 // Control of various systems, RCon, air alarm control, etc. - -// NTNet transfer speeds, used when downloading/uploading a file/program. -#define NTNETSPEED_LOWSIGNAL 0.5 // GQ/s transfer speed when the device is wirelessly connected and on Low signal -#define NTNETSPEED_HIGHSIGNAL 1 // GQ/s transfer speed when the device is wirelessly connected and on High signal -#define NTNETSPEED_ETHERNET 2 // GQ/s transfer speed when the device is using wired connection - - -// Program bitflags -#define PROGRAM_ALL 7 -#define PROGRAM_CONSOLE 1 -#define PROGRAM_LAPTOP 2 -#define PROGRAM_TABLET 4 - -#define PROGRAM_STATE_KILLED 0 -#define PROGRAM_STATE_BACKGROUND 1 -#define PROGRAM_STATE_ACTIVE 2 - -// Caps for NTNet logging. Less than 10 would make logging useless anyway, more than 500 may make the log browser too laggy. Defaults to 100 unless user changes it. -#define MAX_NTNET_LOGS 300 -#define MIN_NTNET_LOGS 10 //TODO Move to a pref #define STATION_GOAL_BUDGET 1 @@ -536,19 +367,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define LUMA_G 0.715 #define LUMA_B 0.072 - -//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 - - //different types of atom colorations #define ADMIN_COLOUR_PRIORITY 1 //only used by rare effects like greentext coloring mobs and when admins varedit color #define TEMPORARY_COLOUR_PRIORITY 2 //e.g. purple effect of the revenant on a mob, black effect when mob electrocuted @@ -556,27 +374,7 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define FIXED_COLOUR_PRIORITY 4 //color inherent to the atom (e.g. blob color) #define COLOUR_PRIORITY_AMOUNT 4 //how many priority levels there are. -// w_class (weight class) -#define WEIGHT_CLASS_TINY 1 // Usually items smaller then a human hand -#define WEIGHT_CLASS_SMALL 2 // Pockets can hold small and tiny items -#define WEIGHT_CLASS_NORMAL 3 // Standard backpacks can carry tiny, small & normal items -#define WEIGHT_CLASS_BULKY 4 // Items that can be weilded or equipped but not stored in an inventory -#define WEIGHT_CLASS_HUGE 5 // Usually represents objects that require two hands to operate -#define WEIGHT_CLASS_GIGANTIC 6 // Essentially means it cannot be picked up or placed in an inventory - -// Examples of tiny items: Playing Cards, Lighter, Scalpel, Coins/Money -// Examples of small items: Flashlight, Multitool, Grenades, GPS Device -// Examples of normal items: Fire extinguisher, Stunbaton, Gas Mask, Metal Sheets -// Examples of bulky items: Defibrillator, Backpack, Space Suits -// Examples of huge items: Shotgun, Two Handed Melee Weapons -// Examples of gigantic items: Mech Parts, Safe - -// m_intent -#define MOVE_INTENT_WALK "walk" -#define MOVE_INTENT_RUN "run" - //Endgame Results - #define NUKE_NEAR_MISS 1 #define NUKE_MISS_STATION 2 #define NUKE_SYNDICATE_BASE 3 @@ -601,25 +399,3 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define CLOCK_SILICONS 22 #define CLOCK_PROSELYTIZATION 23 #define SHUTTLE_HIJACK 24 - -//For SSTimer - -#define TIMER_NORMAL "normal" -#define TIMER_UNIQUE "unique" - -// Ventcrawling -#define VENTCRAWLER_NONE 0 -#define VENTCRAWLER_NUDE 1 -#define VENTCRAWLER_ALWAYS 2 - -// Intent -#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" - -#define DEFAULT_AI_LAWID "default" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm new file mode 100644 index 00000000000..a9e6d1f68aa --- /dev/null +++ b/code/__DEFINES/mobs.dm @@ -0,0 +1,103 @@ +/*ALL MOB-RELATED DEFINES THAT DON'T BELONG IN ANOTHER FILE GO HERE*/ + +//Misc mob defines + +//movement intent defines for the m_intent var +#define MOVE_INTENT_WALK "walk" +#define MOVE_INTENT_RUN "run" + +//Blood levels +#define BLOOD_VOLUME_MAXIMUM 2000 +#define BLOOD_VOLUME_SLIME_SPLIT 1120 +#define BLOOD_VOLUME_NORMAL 560 +#define BLOOD_VOLUME_SAFE 501 +#define BLOOD_VOLUME_OKAY 336 +#define BLOOD_VOLUME_BAD 224 +#define BLOOD_VOLUME_SURVIVE 122 + +//Sizes of mobs, used by mob/living/var/mob_size +#define MOB_SIZE_TINY 0 +#define MOB_SIZE_SMALL 1 +#define MOB_SIZE_HUMAN 2 +#define MOB_SIZE_LARGE 3 + +//Ventcrawling defines +#define VENTCRAWLER_NONE 0 +#define VENTCRAWLER_NUDE 1 +#define VENTCRAWLER_ALWAYS 2 + +//Bloodcrawling defines +#define BLOODCRAWL 1 +#define BLOODCRAWL_EAT 2 + +//Organ defines for carbon mobs +#define ORGAN_ORGANIC 1 +#define ORGAN_ROBOTIC 2 + +#define BODYPART_ORGANIC 1 +#define BODYPART_ROBOTIC 2 + +#define MONKEY_BODYPART "monkey" +#define ALIEN_BODYPART "alien" +#define LARVA_BODYPART "larva" +#define DEVIL_BODYPART "devil" +/*see __DEFINES/inventory.dm for bodypart bitflag defines*/ + +//Nutrition levels for humans +#define NUTRITION_LEVEL_FAT 600 +#define NUTRITION_LEVEL_FULL 550 +#define NUTRITION_LEVEL_WELL_FED 450 +#define NUTRITION_LEVEL_FED 350 +#define NUTRITION_LEVEL_HUNGRY 250 +#define NUTRITION_LEVEL_STARVING 150 + +//Slime evolution threshold. Controls how fast slimes can split/grow +#define SLIME_EVOLUTION_THRESHOLD 10 + +//Slime commands defines +#define SLIME_FRIENDSHIP_FOLLOW 3 //Min friendship to order it to follow +#define SLIME_FRIENDSHIP_STOPEAT 5 //Min friendship to order it to stop eating someone +#define SLIME_FRIENDSHIP_STOPEAT_NOANGRY 7 //Min friendship to order it to stop eating someone without it losing friendship +#define SLIME_FRIENDSHIP_STOPCHASE 4 //Min friendship to order it to stop chasing someone (their target) +#define SLIME_FRIENDSHIP_STOPCHASE_NOANGRY 6 //Min friendship to order it to stop chasing someone (their target) without it losing friendship +#define SLIME_FRIENDSHIP_STAY 3 //Min friendship to order it to stay +#define SLIME_FRIENDSHIP_ATTACK 8 //Min friendship to order it to attack + +//Sentience types, to prevent things like sentience potions from giving bosses sentience +#define SENTIENCE_ORGANIC 1 +#define SENTIENCE_ARTIFICIAL 2 +#define SENTIENCE_OTHER 3 +#define SENTIENCE_MINEBOT 4 +#define SENTIENCE_BOSS 5 + +//Mob AI Status + +//Hostile simple animals +#define AI_ON 1 +#define AI_IDLE 2 +#define AI_OFF 3 + +//SNPCs +//AI defines +#define INTERACTING 2 +#define TRAVEL 4 +#define FIGHTING 8 +//Trait defines +#define TRAIT_ROBUST 2 +#define TRAIT_UNROBUST 4 +#define TRAIT_SMART 8 +#define TRAIT_DUMB 16 +#define TRAIT_MEAN 32 +#define TRAIT_FRIENDLY 64 +#define TRAIT_THIEVING 128 +//Range/chance defines +#define MAX_RANGE_FIND 32 +#define MIN_RANGE_FIND 16 +#define FUZZY_CHANCE_HIGH 85 +#define FUZZY_CHANCE_LOW 50 +#define CHANCE_TALK 1 +//Traitor type defines +#define SNPC_BRUTE 1 +#define SNPC_STEALTH 2 +#define SNPC_MARTYR 3 +#define SNPC_PSYCHO 4 diff --git a/code/__DEFINES/bots.dm b/code/__DEFINES/robots.dm similarity index 79% rename from code/__DEFINES/bots.dm rename to code/__DEFINES/robots.dm index 29a54359ed5..921589d0332 100644 --- a/code/__DEFINES/bots.dm +++ b/code/__DEFINES/robots.dm @@ -1,5 +1,8 @@ -//Bot defines, placed here so they can be read by other things! +/*ALL DEFINES FOR AIS, CYBORGS, AND SIMPLE ANIMAL BOTS*/ +#define DEFAULT_AI_LAWID "default" + +//Bot defines, placed here so they can be read by other things! #define BOT_STEP_DELAY 4 //Delay between movemements #define BOT_STEP_MAX_RETRIES 5 //Maximum times a bot will retry to step from its position @@ -23,4 +26,11 @@ #define BOT_BLOCKED 14 // blocked #define BOT_NAV 15 // computing navigation #define BOT_WAIT_FOR_NAV 16 // waiting for nav computation -#define BOT_NO_ROUTE 17 // no destination beacon found (or no route) \ No newline at end of file +#define BOT_NO_ROUTE 17 // no destination beacon found (or no route) + +//Bot types +#define SEC_BOT 1 // Secutritrons (Beepsky) and ED-209s +#define MULE_BOT 2 // MULEbots +#define FLOOR_BOT 4 // Floorbots +#define CLEAN_BOT 8 // Cleanbots +#define MED_BOT 16 // Medibots diff --git a/code/__DEFINES/tablecrafting.dm b/code/__DEFINES/tablecrafting.dm deleted file mode 100644 index a5dc040cc7a..00000000000 --- a/code/__DEFINES/tablecrafting.dm +++ /dev/null @@ -1,20 +0,0 @@ - -#define CAT_NONE "" -#define CAT_WEAPON "Weaponry" -#define CAT_AMMO "Ammunition" -#define CAT_ROBOT "Robots" -#define CAT_MISC "Misc" -#define CAT_PRIMAL "Tribal" -#define CAT_BREAD "Breads" -#define CAT_BURGER "Burgers" -#define CAT_CAKE "Cakes" -#define CAT_EGG "Egg-Based Food" -#define CAT_MEAT "Meats" -#define CAT_MISCFOOD "Misc. Food" -#define CAT_PASTRY "Pastries" -#define CAT_PIE "Pies" -#define CAT_PIZZA "Pizzas" -#define CAT_SALAD "Salads" -#define CAT_SANDWICH "Sandwiches" -#define CAT_SOUP "Soups" -#define CAT_SPAGHETTI "Spaghettis" diff --git a/tgstation.dme b/tgstation.dme index 55e71a4e579..c651c7a1c9a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -23,16 +23,16 @@ #include "code\__DATASTRUCTURES\stacks.dm" #include "code\__DEFINES\admin.dm" #include "code\__DEFINES\atmospherics.dm" -#include "code\__DEFINES\bots.dm" +#include "code\__DEFINES\atom_hud.dm" #include "code\__DEFINES\clockcult.dm" -#include "code\__DEFINES\clothing.dm" #include "code\__DEFINES\combat.dm" #include "code\__DEFINES\construction.dm" #include "code\__DEFINES\contracts.dm" +#include "code\__DEFINES\DNA.dm" #include "code\__DEFINES\events.dm" #include "code\__DEFINES\flags.dm" -#include "code\__DEFINES\genetics.dm" #include "code\__DEFINES\hud.dm" +#include "code\__DEFINES\inventory.dm" #include "code\__DEFINES\is_helpers.dm" #include "code\__DEFINES\layers.dm" #include "code\__DEFINES\lighting.dm" @@ -40,19 +40,20 @@ #include "code\__DEFINES\math.dm" #include "code\__DEFINES\MC.dm" #include "code\__DEFINES\misc.dm" +#include "code\__DEFINES\mobs.dm" #include "code\__DEFINES\pinpointers.dm" #include "code\__DEFINES\pipe_construction.dm" #include "code\__DEFINES\preferences.dm" #include "code\__DEFINES\qdel.dm" #include "code\__DEFINES\radio.dm" #include "code\__DEFINES\reagents.dm" +#include "code\__DEFINES\robots.dm" #include "code\__DEFINES\role_preferences.dm" #include "code\__DEFINES\say.dm" #include "code\__DEFINES\shuttles.dm" #include "code\__DEFINES\sight.dm" #include "code\__DEFINES\stat.dm" #include "code\__DEFINES\status_effects.dm" -#include "code\__DEFINES\tablecrafting.dm" #include "code\__DEFINES\tgui.dm" #include "code\__DEFINES\tick.dm" #include "code\__DEFINES\typeids.dm"