diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 420cf0c9688..f317e6b1a1a 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -79,8 +79,12 @@ jobs: - name: Check Define Sanity if: steps.linter-setup.conclusion == 'success' && !cancelled() run: tools/bootstrap/python -m define_sanity.check + - name: Check Trait Validity + if: steps.linter-setup.conclusion == 'success' && !cancelled() + run: tools/bootstrap/python -m trait_validity.check - name: Run DreamChecker if: steps.linter-setup.conclusion == 'success' && !cancelled() + shell: bash run: ~/dreamchecker 2>&1 | bash tools/ci/annotate_dm.sh - name: Run Map Checks if: steps.linter-setup.conclusion == 'success' && !cancelled() diff --git a/code/__DEFINES/~skyrat_defines/DNA.dm b/code/__DEFINES/~skyrat_defines/DNA.dm index 8e9c220c9e1..1db077f48df 100644 --- a/code/__DEFINES/~skyrat_defines/DNA.dm +++ b/code/__DEFINES/~skyrat_defines/DNA.dm @@ -6,10 +6,6 @@ // Defines for whether an accessory should have one or three colors to choose for #define USE_ONE_COLOR 31 #define USE_MATRIXED_COLORS 32 -// Defines for some extra inherent traits -#define TRAIT_REVIVES_BY_HEALING "trait_revives_by_healing" -#define TRAIT_ROBOTIC_DNA_ORGANS "trait_robotic_dna_organs" -//Also.. yes for some reason specie traits and accessory defines are together //Defines for processing reagents, for synths, IPC's and Vox #define PROCESS_ORGANIC 1 //Only processes reagents with "ORGANIC" or "ORGANIC | SYNTHETIC" diff --git a/code/__DEFINES/~skyrat_defines/lewd_defines.dm b/code/__DEFINES/~skyrat_defines/lewd_defines.dm index a1edae8aa01..7674131b090 100644 --- a/code/__DEFINES/~skyrat_defines/lewd_defines.dm +++ b/code/__DEFINES/~skyrat_defines/lewd_defines.dm @@ -11,23 +11,6 @@ #define REQUIRE_GENITAL_UNEXPOSED 2 #define REQUIRE_GENITAL_ANY 3 -#define TRAIT_MASOCHISM "masochism" -#define TRAIT_SADISM "sadism" -#define TRAIT_NEVERBONER "neverboner" -#define TRAIT_BIMBO "bimbo" -#define TRAIT_RIGGER "rigger" -#define TRAIT_ROPEBUNNY "rope bunny" -///traits gained by brain traumas, can be removed if the brain trauma is gone -#define APHRO_TRAIT "aphro" -///traits gained by quirks, cannot be removed unless the quirk itself is gone -#define LEWDQUIRK_TRAIT "lewdquirks" -///traits gained by chemicals, you get the idea -#define LEWDCHEM_TRAIT "lewdchem" - -#define STRAPON_TRAIT "strapon" - -#define CONDOM_BROKEN "broken" - #define BREAST_SIZE_FLATCHESTED "Flatchested" #define BREAST_SIZE_A "A" #define BREAST_SIZE_B "B" diff --git a/code/__DEFINES/~skyrat_defines/robot_defines.dm b/code/__DEFINES/~skyrat_defines/robot_defines.dm index 8dde8079fb6..935fe1db1c8 100644 --- a/code/__DEFINES/~skyrat_defines/robot_defines.dm +++ b/code/__DEFINES/~skyrat_defines/robot_defines.dm @@ -6,20 +6,6 @@ #define SKIN_FEATURES "skin_features" //for the new system of borg making -//Defines for model features, set in the model_features list of a robot model datum. Are they a dogborg? Is the model small? etc. -/// Cyborgs with unique sprites for when they get totally broken down. -#define R_TRAIT_UNIQUEWRECK "unique_wreck" -/// Or when tipped over. -#define R_TRAIT_UNIQUETIP "unique_tip" -/// 64x32 skins -#define R_TRAIT_WIDE "wide_borg" -/// 32x64 skins -#define R_TRAIT_TALL "tall_borg" -/// Any model small enough to reject the shrinker upgrade. -#define R_TRAIT_SMALL "small_chassis" -/// Any model that has a custom front panel -#define R_TRAIT_UNIQUEPANEL "unique_openpanel" - // Icon file locations for modular borg icons #define CYBORG_ICON_STANDARD 'modular_skyrat/modules/borgs/icons/robots.dmi' diff --git a/code/__DEFINES/~skyrat_defines/traits.dm b/code/__DEFINES/~skyrat_defines/traits.dm index f099b57f260..f49d0bbe413 100644 --- a/code/__DEFINES/~skyrat_defines/traits.dm +++ b/code/__DEFINES/~skyrat_defines/traits.dm @@ -1,101 +1,5 @@ -// Defines for some extra traits -#define TRAIT_NO_HUSK "no_husk" -#define TRAIT_NORUNNING "norunning" // You walk! -#define TRAIT_EXCITABLE "wagwag" //Will wag when patted! -#define TRAIT_OXYIMMUNE "oxyimmune" // Immune to oxygen damage, ideally give this to all non-breathing species or bad stuff will happen -#define TRAIT_PERSONALSPACE "personalspace" // Block/counter-attack ass-slaps -#define TRAIT_MOOD_NOEXAMINE "mood_noexamine" // Can't assess your own mood -#define TRAIT_DNR "do_not_revive" // Can't be revived without supernatural means or admin intervention -#define TRAIT_HARD_SOLES "hard_soles" // No step on glass -#define TRAIT_SENSITIVESNOUT "sensitive_snout" // Snout hurts when booped -#define TRAIT_DETECTIVE "detective_ability" //Given to the detective, if they have this, they can see syndicate special descriptions. -#define TRAIT_FREE_GHOST "free_ghost" // Can ghost and return freely with this trait -#define GLOVES_TRAIT "gloves_trait" //Traits associated with wearing gloves -#define QUIRK_LINGUIST "Linguist" // Extra language point. -#define GLUED_ITEM_TRAIT "glued-item" // This is for glued items, undroppable. Syndie glue applies this. -#define TRAIT_STICKY_FINGERS "sticky_fingers" //This is so a mob can strip items faster and picks them up after -/// This makes trait makes it so that the person cannot be infected by the zombie virus. -#define TRAIT_MUTANT_IMMUNE "mutant_immune" -/// adds -6 quirk to negative quirks for free points. -#define TRAIT_GIFTED "gifted" - -//AdditionalEmotes *turf traits -#define TRAIT_WATER_ASPECT "water_aspect" -#define TRAIT_WEBBING_ASPECT "webbing_aspect" -#define TRAIT_FLORAL_ASPECT "floral_aspect" -#define TRAIT_ASH_ASPECT "ash_aspect" -#define TRAIT_SPARKLE_ASPECT "sparkle_aspect" - -/// Allows the user to instantly reload. -#define TRAIT_INSTANT_RELOAD "instant_reload" - -// Trait sources -#define GHOSTROLE_TRAIT "ghostrole" // SKYRAT EDIT ADDITION -- Ghost Cafe Traits - -/// One can breath under water, you get me? -#define TRAIT_WATER_BREATHING "water_breathing" - -/// The trait which Akulas inherit, for their species mechanic revolving around wet_stacks -#define TRAIT_SLICK_SKIN "slick_skin" -/// The trait which is applied when a `slick skin` trait haver actually gets wet_stacks -#define TRAIT_SLIPPERY "slippery" /// The minimum amount of tiles a TRAIT_SLIPPERY haver will slide on slip #define SLIPPERY_MIN 5 /// The maximum amount of tiles a TRAIT_SLIPPERY haver will slide on slip #define SLIPPERY_MAX 9 - -/// Under the effect of a numbling agent, such as morphine, for surgery. -#define TRAIT_NUMBED "numbed" - -// felinid traits -#define TRAIT_FELINE "feline_aspect" - -// canine traits -#define TRAIT_CANINE "canine_aspect" - -// avian traits -#define TRAIT_AVIAN "avian_aspect" - -// chameleon mutation -#define TRAIT_CHAMELEON_SKIN "chameleon_skin" - -//Makes sure that people cant be cult sacrificed twice. -#define TRAIT_SACRIFICED "sacrificed" - -/// The trait that determines if someone has the oversized quirk. -#define TRAIT_OVERSIZED "trait_oversized" - -/// Cargo Loader trait -#define TRAIT_TRASHMAN "trait_trashman" - -/// Trait source for xeno innate abilities -#define TRAIT_XENO_INNATE "xeno_innate" -/// Trait source for something added BY a xeno ability -#define TRAIT_XENO_ABILITY_GIVEN "xeno_ability_given" -/// Determines if something can receive healing from a xeno -#define TRAIT_XENO_HEAL_AURA "trait_xeno_heal_aura" - -/// Trait that was granted by a reagent. -#define REAGENT_TRAIT "reagent" - -/// trait that lets you do flips with a style meter -#define TRAIT_STYLISH "stylish" - -/// trait that lets you do xenoarch magnification -#define TRAIT_XENOARCH_QUALIFIED "trait_xenoarch_qualified" - -/// Traits granted by glassblowing -#define GLASSBLOWING_TRAIT "glassblowing" - -/// Trait that is applied whenever someone or something is glassblowing -#define TRAIT_CURRENTLY_GLASSBLOWING "currently_glassblowing" - -/// Trait that was granted by a NIFSoft -#define NIFSOFT_TRAIT "nifsoft" - -/// Trait given to a piece of eyewear that allows the user to use NIFSoft HUDs -#define TRAIT_NIFSOFT_HUD_GRANTER "nifsoft_hud_granter" - -/// Trait given to a brain that is able to accept souls from a RSD -#define TRAIT_RSD_COMPATIBLE "rsd_compatible" diff --git a/code/__DEFINES/~skyrat_defines/traits/declarations.dm b/code/__DEFINES/~skyrat_defines/traits/declarations.dm new file mode 100644 index 00000000000..01e684f5a90 --- /dev/null +++ b/code/__DEFINES/~skyrat_defines/traits/declarations.dm @@ -0,0 +1,147 @@ +// This file contains all of the "static" define strings that tie to a trait. +// WARNING: The sections here actually matter in this file as it's tested by CI. Please do not toy with the sections." + +// BEGIN TRAIT DEFINES + +/* +Remember to update _globalvars/traits.dm if you're adding/removing/renaming traits. +*/ + +//mob traits + +// Defines for some extra traits +#define TRAIT_NO_HUSK "no_husk" +#define TRAIT_NORUNNING "norunning" // You walk! +#define TRAIT_EXCITABLE "wagwag" //Will wag when patted! +#define TRAIT_OXYIMMUNE "oxyimmune" // Immune to oxygen damage, ideally give this to all non-breathing species or bad stuff will happen +#define TRAIT_PERSONALSPACE "personalspace" // Block/counter-attack ass-slaps +#define TRAIT_MOOD_NOEXAMINE "mood_noexamine" // Can't assess your own mood +#define TRAIT_DNR "do_not_revive" // Can't be revived without supernatural means or admin intervention +#define TRAIT_HARD_SOLES "hard_soles" // No step on glass +#define TRAIT_SENSITIVESNOUT "sensitive_snout" // Snout hurts when booped +#define TRAIT_DETECTIVE "detective_ability" //Given to the detective, if they have this, they can see syndicate special descriptions. +#define TRAIT_FREE_GHOST "free_ghost" // Can ghost and return freely with this trait +#define TRAIT_GLOVES "gloves_trait" //Traits associated with wearing gloves +#define TRAIT_LINGUIST "Linguist" // Extra language point. +#define TRAIT_GLUED_ITEM "glued-item" // This is for glued items, undroppable. Syndie glue applies this. +#define TRAIT_STICKY_FINGERS "sticky_fingers" //This is so a mob can strip items faster and picks them up after +/// This makes trait makes it so that the person cannot be infected by the zombie virus. +#define TRAIT_MUTANT_IMMUNE "mutant_immune" +#define TRAIT_HYDRA_HEADS "hydrahead" + +/// adds -6 quirk to negative quirks for free points. +#define TRAIT_GIFTED "gifted" + +//AdditionalEmotes *turf traits +#define TRAIT_WATER_ASPECT "water_aspect" +#define TRAIT_WEBBING_ASPECT "webbing_aspect" +#define TRAIT_FLORAL_ASPECT "floral_aspect" +#define TRAIT_ASH_ASPECT "ash_aspect" +#define TRAIT_SPARKLE_ASPECT "sparkle_aspect" + +/// Allows the user to instantly reload. +#define TRAIT_INSTANT_RELOAD "instant_reload" + +// Trait sources +#define TRAIT_GHOSTROLE "ghostrole" // SKYRAT EDIT ADDITION -- Ghost Cafe Traits + +/// One can breath under water, you get me? +#define TRAIT_WATER_BREATHING "water_breathing" + +/// The trait which Akulas inherit, for their species mechanic revolving around wet_stacks +#define TRAIT_SLICK_SKIN "slick_skin" +/// The trait which is applied when a `slick skin` trait haver actually gets wet_stacks +#define TRAIT_SLIPPERY "slippery" + +/// Under the effect of a numbling agent, such as morphine, for surgery. +#define TRAIT_NUMBED "numbed" + +// felinid traits +#define TRAIT_FELINE "feline_aspect" + +// canine traits +#define TRAIT_CANINE "canine_aspect" + +// avian traits +#define TRAIT_AVIAN "avian_aspect" + +// chameleon mutation +#define TRAIT_CHAMELEON_SKIN "chameleon_skin" + +//Makes sure that people cant be cult sacrificed twice. +#define TRAIT_SACRIFICED "sacrificed" + +/// The trait that determines if someone has the oversized quirk. +#define TRAIT_OVERSIZED "trait_oversized" + +/// Cargo Loader trait +#define TRAIT_TRASHMAN "trait_trashman" + +/// Trait source for xeno innate abilities +#define TRAIT_XENO_INNATE "xeno_innate" +/// Trait source for something added BY a xeno ability +#define TRAIT_XENO_ABILITY_GIVEN "xeno_ability_given" +/// Determines if something can receive healing from a xeno +#define TRAIT_XENO_HEAL_AURA "trait_xeno_heal_aura" + +/// Trait that was granted by a reagent. +#define TRAIT_REAGENT "reagent" + +/// trait that lets you do flips with a style meter +#define TRAIT_STYLISH "stylish" + +/// trait that lets you do xenoarch magnification +#define TRAIT_XENOARCH_QUALIFIED "trait_xenoarch_qualified" + +/// Traits granted by glassblowing +#define TRAIT_GLASSBLOWING "glassblowing" + +/// Trait that is applied whenever someone or something is glassblowing +#define TRAIT_CURRENTLY_GLASSBLOWING "currently_glassblowing" + +/// Trait that was granted by a NIFSoft +#define TRAIT_NIFSOFT "nifsoft" + +/// Trait given to a piece of eyewear that allows the user to use NIFSoft HUDs +#define TRAIT_NIFSOFT_HUD_GRANTER "nifsoft_hud_granter" + +/// Trait given to a brain that is able to accept souls from a RSD +#define TRAIT_RSD_COMPATIBLE "rsd_compatible" + +// Defines for some extra inherent traits +#define TRAIT_REVIVES_BY_HEALING "trait_revives_by_healing" +#define TRAIT_ROBOTIC_DNA_ORGANS "trait_robotic_dna_organs" + +//Defines for model features, set in the model_features list of a robot model datum. Are they a dogborg? Is the model small? etc. +/// Cyborgs with unique sprites for when they get totally broken down. +#define TRAIT_R_UNIQUEWRECK "unique_wreck" +/// Or when tipped over. +#define TRAIT_R_UNIQUETIP "unique_tip" +/// 64x32 skins +#define TRAIT_R_WIDE "wide_borg" +/// 32x64 skins +#define TRAIT_R_TALL "tall_borg" +/// Any model small enough to reject the shrinker upgrade. +#define TRAIT_R_SMALL "small_chassis" +/// Any model that has a custom front panel +#define TRAIT_R_UNIQUEPANEL "unique_openpanel" + +// Lewd traits +#define TRAIT_MASOCHISM "masochism" +#define TRAIT_SADISM "sadism" +#define TRAIT_NEVERBONER "neverboner" +#define TRAIT_BIMBO "bimbo" +#define TRAIT_RIGGER "rigger" +#define TRAIT_ROPEBUNNY "rope bunny" +///traits gained by brain traumas, can be removed if the brain trauma is gone +#define TRAIT_APHRO "aphro" +///traits gained by quirks, cannot be removed unless the quirk itself is gone +#define TRAIT_LEWDQUIRK "lewdquirks" +///traits gained by chemicals, you get the idea +#define TRAIT_LEWDCHEM "lewdchem" + +#define TRAIT_STRAPON "strapon" + +#define TRAIT_CONDOM_BROKEN "broken" + +// END TRAIT DEFINES diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index d76376ded36..1a6ac3c8e09 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -204,7 +204,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_GARLIC_BREATH" = TRAIT_GARLIC_BREATH, "TRAIT_GENELESS" = TRAIT_GENELESS, "TRAIT_GIANT" = TRAIT_GIANT, - "TRAIT_GIFTED" = TRAIT_GIFTED, // SKYRAT EDIT ADDITION "TRAIT_GONE_FISHING" = TRAIT_GONE_FISHING, "TRAIT_GOOD_HEARING" = TRAIT_GOOD_HEARING, "TRAIT_GRABWEAKNESS" = TRAIT_GRABWEAKNESS, @@ -287,7 +286,11 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NO_JUMPSUIT" = TRAIT_NO_JUMPSUIT, "TRAIT_NO_MINDSWAP" = TRAIT_NO_MINDSWAP, "TRAIT_NO_MIRROR_REFLECTION" = TRAIT_NO_MIRROR_REFLECTION, +<<<<<<< HEAD //"TRAIT_NO_PLASMA_TRANSFORM" = TRAIT_NO_PLASMA_TRANSFORM, SKYRAT EDIT - TODO - These require transformation sting pr +======= + "TRAIT_NO_PLASMA_TRANSFORM" = TRAIT_NO_PLASMA_TRANSFORM, +>>>>>>> 8d9a35a4f (Adds our traits define file to the linter steps (#25134)) "TRAIT_NO_SLIP_ALL" = TRAIT_NO_SLIP_ALL, "TRAIT_NO_SLIP_ICE" = TRAIT_NO_SLIP_ICE, "TRAIT_NO_SLIP_SLIDE" = TRAIT_NO_SLIP_SLIDE, @@ -327,6 +330,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_PARALYSIS_L_LEG" = TRAIT_PARALYSIS_L_LEG, "TRAIT_PARALYSIS_R_ARM" = TRAIT_PARALYSIS_R_ARM, "TRAIT_PARALYSIS_R_LEG" = TRAIT_PARALYSIS_R_LEG, + "TRAIT_PARROT_PERCHED" = TRAIT_PARROT_PERCHED, "TRAIT_PASSTABLE" = TRAIT_PASSTABLE, "TRAIT_PERFECT_ATTACKER" = TRAIT_PERFECT_ATTACKER, "TRAIT_PERMANENTLY_MORTAL" = TRAIT_PERMANENTLY_MORTAL, @@ -373,7 +377,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SETTLER" = TRAIT_SETTLER, "TRAIT_SHAVED" = TRAIT_SHAVED, "TRAIT_SHIFTY_EYES" = TRAIT_SHIFTY_EYES, - "TRAIT_OVERSIZED" = TRAIT_OVERSIZED, //SKYRAT EDIT ADDITION - Leaving this here so that it hopefully doesn't cause conflicts again in the future(?) "TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE, "TRAIT_SIGN_LANG" = TRAIT_SIGN_LANG, "TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS, @@ -550,6 +553,76 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_TURF_IGNORE_SLIPPERY" = TRAIT_TURF_IGNORE_SLIPPERY, "TRAIT_TURF_IGNORE_SLOWDOWN" = TRAIT_TURF_IGNORE_SLOWDOWN, ), + // SKYRAT EDIT ADDITION START - SKYRAT TRAITS + /obj/item/toy/plush/skyrat = list( + "TRAIT_APHRO" = TRAIT_APHRO, + "TRAIT_AVIAN" = TRAIT_AVIAN, + "TRAIT_ASH_ASPECT" = TRAIT_ASH_ASPECT, + "TRAIT_BIMBO" = TRAIT_BIMBO, + "TRAIT_CANINE" = TRAIT_CANINE, + "TRAIT_CHAMELEON_SKIN" = TRAIT_CHAMELEON_SKIN, + "TRAIT_CONDOM_BROKEN" = TRAIT_CONDOM_BROKEN, + "TRAIT_CURRENTLY_GLASSBLOWING" = TRAIT_CURRENTLY_GLASSBLOWING, + "TRAIT_DETECTIVE" = TRAIT_DETECTIVE, + "TRAIT_DNR" = TRAIT_DNR, + "TRAIT_EXCITABLE" = TRAIT_EXCITABLE, + "TRAIT_FELINE" = TRAIT_FELINE, + "TRAIT_FLORAL_ASPECT" = TRAIT_FLORAL_ASPECT, + "TRAIT_FREE_GHOST" = TRAIT_FREE_GHOST, + "TRAIT_GHOSTROLE" = TRAIT_GHOSTROLE, + "TRAIT_GIFTED" = TRAIT_GIFTED, + "TRAIT_GLASSBLOWING" = TRAIT_GLASSBLOWING, + "TRAIT_GLOVES" = TRAIT_GLOVES, + "TRAIT_GLUED_ITEM" = TRAIT_GLUED_ITEM, + "TRAIT_HARD_SOLES" = TRAIT_HARD_SOLES, + "TRAIT_HYDRA_HEADS" = TRAIT_HYDRA_HEADS, + "TRAIT_INSTANT_RELOAD" = TRAIT_INSTANT_RELOAD, + "TRAIT_LINGUIST" = TRAIT_LINGUIST, + "TRAIT_LEWDCHEM" = TRAIT_LEWDCHEM, + "TRAIT_LEWDQUIRK" = TRAIT_LEWDQUIRK, + "TRAIT_MASOCHISM" = TRAIT_MASOCHISM, + "TRAIT_MOOD_NOEXAMINE" = TRAIT_MOOD_NOEXAMINE, + "TRAIT_MUTANT_IMMUNE" = TRAIT_MUTANT_IMMUNE, + "TRAIT_NEVERBONER" = TRAIT_NEVERBONER, + "TRAIT_NIFSOFT" = TRAIT_NIFSOFT, + "TRAIT_NIFSOFT_HUD_GRANTER" = TRAIT_NIFSOFT_HUD_GRANTER, + "TRAIT_NO_HUSK" = TRAIT_NO_HUSK, + "TRAIT_NORUNNING" = TRAIT_NORUNNING, + "TRAIT_NUMBED" = TRAIT_NUMBED, + "TRAIT_OVERSIZED" = TRAIT_OVERSIZED, + "TRAIT_OXYIMMUNE" = TRAIT_OXYIMMUNE, + "TRAIT_PERSONALSPACE" = TRAIT_PERSONALSPACE, + "TRAIT_R_UNIQUEWRECK" = TRAIT_R_UNIQUEWRECK, + "TRAIT_R_UNIQUETIP" = TRAIT_R_UNIQUETIP, + "TRAIT_R_WIDE" = TRAIT_R_WIDE, + "TRAIT_R_TALL" = TRAIT_R_TALL, + "TRAIT_R_SMALL" = TRAIT_R_SMALL, + "TRAIT_R_UNIQUEPANEL" = TRAIT_R_UNIQUEPANEL, + "TRAIT_REAGENT" = TRAIT_REAGENT, + "TRAIT_REVIVES_BY_HEALING" = TRAIT_REVIVES_BY_HEALING, + "TRAIT_RIGGER" = TRAIT_RIGGER, + "TRAIT_ROBOTIC_DNA_ORGANS" = TRAIT_ROBOTIC_DNA_ORGANS, + "TRAIT_ROPEBUNNY" = TRAIT_ROPEBUNNY, + "TRAIT_RSD_COMPATIBLE" = TRAIT_RSD_COMPATIBLE, + "TRAIT_SACRIFICED" = TRAIT_SACRIFICED , + "TRAIT_SADISM" = TRAIT_SADISM, + "TRAIT_SENSITIVESNOUT" = TRAIT_SENSITIVESNOUT, + "TRAIT_SLICK_SKIN" = TRAIT_SLICK_SKIN, + "TRAIT_SLIPPERY" = TRAIT_SLIPPERY, + "TRAIT_SPARKLE_ASPECT" = TRAIT_SPARKLE_ASPECT, + "TRAIT_STICKY_FINGERS" = TRAIT_STICKY_FINGERS, + "TRAIT_STRAPON" = TRAIT_STRAPON, + "TRAIT_STYLISH" = TRAIT_STYLISH, + "TRAIT_TRASHMAN" = TRAIT_TRASHMAN, + "TRAIT_WATER_ASPECT" = TRAIT_WATER_ASPECT, + "TRAIT_WATER_BREATHING" = TRAIT_WATER_BREATHING, + "TRAIT_WEBBING_ASPECT" = TRAIT_WEBBING_ASPECT, + "TRAIT_XENO_ABILITY_GIVEN" = TRAIT_XENO_ABILITY_GIVEN, + "TRAIT_XENOARCH_QUALIFIED" = TRAIT_XENOARCH_QUALIFIED, + "TRAIT_XENO_HEAL_AURA" = TRAIT_XENO_HEAL_AURA, + "TRAIT_XENO_INNATE" = TRAIT_XENO_INNATE, + ), + // SKYRAT EDIT ADDITION END )) /// value -> trait name, list of ALL traits that exist in the game, used for any type of accessing. diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index 388ea89cc7e..40d9aa3661b 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -276,6 +276,76 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( /obj/item/organ/internal/lungs = list( "TRAIT_SPACEBREATHING" = TRAIT_SPACEBREATHING, ), + // SKYRAT EDIT ADDITION START - SKYRAT TRAITS + /obj/item/toy/plush/skyrat = list( + "TRAIT_APHRO" = TRAIT_APHRO, + "TRAIT_AVIAN" = TRAIT_AVIAN, + "TRAIT_ASH_ASPECT" = TRAIT_ASH_ASPECT, + "TRAIT_BIMBO" = TRAIT_BIMBO, + "TRAIT_CANINE" = TRAIT_CANINE, + "TRAIT_CHAMELEON_SKIN" = TRAIT_CHAMELEON_SKIN, + "TRAIT_CONDOM_BROKEN" = TRAIT_CONDOM_BROKEN, + "TRAIT_CURRENTLY_GLASSBLOWING" = TRAIT_CURRENTLY_GLASSBLOWING, + "TRAIT_DETECTIVE" = TRAIT_DETECTIVE, + "TRAIT_DNR" = TRAIT_DNR, + "TRAIT_EXCITABLE" = TRAIT_EXCITABLE, + "TRAIT_FELINE" = TRAIT_FELINE, + "TRAIT_FLORAL_ASPECT" = TRAIT_FLORAL_ASPECT, + "TRAIT_FREE_GHOST" = TRAIT_FREE_GHOST, + "TRAIT_GHOSTROLE" = TRAIT_GHOSTROLE, + "TRAIT_GIFTED" = TRAIT_GIFTED, + "TRAIT_GLASSBLOWING" = TRAIT_GLASSBLOWING, + "TRAIT_GLOVES" = TRAIT_GLOVES, + "TRAIT_GLUED_ITEM" = TRAIT_GLUED_ITEM, + "TRAIT_HARD_SOLES" = TRAIT_HARD_SOLES, + "TRAIT_HYDRA_HEADS" = TRAIT_HYDRA_HEADS, + "TRAIT_INSTANT_RELOAD" = TRAIT_INSTANT_RELOAD, + "TRAIT_LINGUIST" = TRAIT_LINGUIST, + "TRAIT_LEWDCHEM" = TRAIT_LEWDCHEM, + "TRAIT_LEWDQUIRK" = TRAIT_LEWDQUIRK, + "TRAIT_MASOCHISM" = TRAIT_MASOCHISM, + "TRAIT_MOOD_NOEXAMINE" = TRAIT_MOOD_NOEXAMINE, + "TRAIT_MUTANT_IMMUNE" = TRAIT_MUTANT_IMMUNE, + "TRAIT_NEVERBONER" = TRAIT_NEVERBONER, + "TRAIT_NIFSOFT" = TRAIT_NIFSOFT, + "TRAIT_NIFSOFT_HUD_GRANTER" = TRAIT_NIFSOFT_HUD_GRANTER, + "TRAIT_NO_HUSK" = TRAIT_NO_HUSK, + "TRAIT_NORUNNING" = TRAIT_NORUNNING, + "TRAIT_NUMBED" = TRAIT_NUMBED, + "TRAIT_OVERSIZED" = TRAIT_OVERSIZED, + "TRAIT_OXYIMMUNE" = TRAIT_OXYIMMUNE, + "TRAIT_PERSONALSPACE" = TRAIT_PERSONALSPACE, + "TRAIT_R_UNIQUEWRECK" = TRAIT_R_UNIQUEWRECK, + "TRAIT_R_UNIQUETIP" = TRAIT_R_UNIQUETIP, + "TRAIT_R_WIDE" = TRAIT_R_WIDE, + "TRAIT_R_TALL" = TRAIT_R_TALL, + "TRAIT_R_SMALL" = TRAIT_R_SMALL, + "TRAIT_R_UNIQUEPANEL" = TRAIT_R_UNIQUEPANEL, + "TRAIT_REAGENT" = TRAIT_REAGENT, + "TRAIT_REVIVES_BY_HEALING" = TRAIT_REVIVES_BY_HEALING, + "TRAIT_RIGGER" = TRAIT_RIGGER, + "TRAIT_ROBOTIC_DNA_ORGANS" = TRAIT_ROBOTIC_DNA_ORGANS, + "TRAIT_ROPEBUNNY" = TRAIT_ROPEBUNNY, + "TRAIT_RSD_COMPATIBLE" = TRAIT_RSD_COMPATIBLE, + "TRAIT_SACRIFICED" = TRAIT_SACRIFICED , + "TRAIT_SADISM" = TRAIT_SADISM, + "TRAIT_SENSITIVESNOUT" = TRAIT_SENSITIVESNOUT, + "TRAIT_SLICK_SKIN" = TRAIT_SLICK_SKIN, + "TRAIT_SLIPPERY" = TRAIT_SLIPPERY, + "TRAIT_SPARKLE_ASPECT" = TRAIT_SPARKLE_ASPECT, + "TRAIT_STICKY_FINGERS" = TRAIT_STICKY_FINGERS, + "TRAIT_STRAPON" = TRAIT_STRAPON, + "TRAIT_STYLISH" = TRAIT_STYLISH, + "TRAIT_TRASHMAN" = TRAIT_TRASHMAN, + "TRAIT_WATER_ASPECT" = TRAIT_WATER_ASPECT, + "TRAIT_WATER_BREATHING" = TRAIT_WATER_BREATHING, + "TRAIT_WEBBING_ASPECT" = TRAIT_WEBBING_ASPECT, + "TRAIT_XENO_ABILITY_GIVEN" = TRAIT_XENO_ABILITY_GIVEN, + "TRAIT_XENOARCH_QUALIFIED" = TRAIT_XENOARCH_QUALIFIED, + "TRAIT_XENO_HEAL_AURA" = TRAIT_XENO_HEAL_AURA, + "TRAIT_XENO_INNATE" = TRAIT_XENO_INNATE, + ), + // SKYRAT EDIT ADDITION END )) /// value -> trait name, generated as needed for adminning. diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 37c95a418db..da14523d515 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -555,7 +555,7 @@ if(robot.model.model_select_icon == "nomod") to_chat(usr, span_warning("Default models cannot take expand or shrink upgrades.")) return FALSE - if((R_TRAIT_WIDE in robot.model.model_features) || (R_TRAIT_TALL in robot.model.model_features)) + if((TRAIT_R_WIDE in robot.model.model_features) || (TRAIT_R_TALL in robot.model.model_features)) to_chat(usr, span_warning("This unit's chassis cannot be enlarged any further.")) return FALSE // SKYRAT EDIT END diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index aed1beafd16..602ab7d24c1 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -181,7 +181,7 @@ gloves = equipping //SKYRAT EDIT ADDITION - ERP UPDATE if(gloves.breakouttime) - ADD_TRAIT(src, TRAIT_RESTRAINED, GLOVES_TRAIT) + ADD_TRAIT(src, TRAIT_RESTRAINED, TRAIT_GLOVES) stop_pulling() update_mob_action_buttons() //SKYRAT EDIT ADDITION END @@ -280,7 +280,7 @@ else if(I == gloves) //SKYRAT EDIT ADDITION - ERP UPDATE if(gloves.breakouttime) //when unequipping a straightjacket - REMOVE_TRAIT(src, TRAIT_RESTRAINED, GLOVES_TRAIT) + REMOVE_TRAIT(src, TRAIT_RESTRAINED, TRAIT_GLOVES) drop_all_held_items() //suit is restraining update_mob_action_buttons() //certain action buttons may be usable again. //SKYRAT EDIT ADDITION END diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index b320f500701..31ead7ef718 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -349,7 +349,7 @@ eye_lights.icon = icon add_overlay(eye_lights) - if(opened && !(R_TRAIT_UNIQUEPANEL in model.model_features)) + if(opened && !(TRAIT_R_UNIQUEPANEL in model.model_features)) if(wiresexposed) add_overlay("ov-opencover +w") else if(cell) diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index 2aeb97a89fe..80809bb5a40 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -248,7 +248,7 @@ reskin_icons[skin] = image(icon = details[SKIN_ICON] || 'icons/mob/silicon/robots.dmi', icon_state = details[SKIN_ICON_STATE]) //SKYRAT EDIT ADDITION BEGIN - ALTBORGS if (!isnull(details[SKIN_FEATURES])) - if (R_TRAIT_WIDE in details[SKIN_FEATURES]) + if (TRAIT_R_WIDE in details[SKIN_FEATURES]) var/image/reskin = reskin_icons[skin] reskin.pixel_x -= 16 //SKYRAT EDIT END @@ -257,7 +257,7 @@ return FALSE var/list/details = borg_skins[borg_skin] //SKYRAT EDIT START - if(cyborg.hasExpanded && (((R_TRAIT_WIDE in details[SKIN_FEATURES]) && (R_TRAIT_WIDE in model_features)) || ((R_TRAIT_TALL in details[SKIN_FEATURES]) && (R_TRAIT_TALL in model_features)))) + if(cyborg.hasExpanded && (((TRAIT_R_WIDE in details[SKIN_FEATURES]) && (TRAIT_R_WIDE in model_features)) || ((TRAIT_R_TALL in details[SKIN_FEATURES]) && (TRAIT_R_TALL in model_features)))) to_chat(cyborg, span_warning("You can't make yourself into a larger frame when you've already used an expander!")) return FALSE //SKYRAT EDIT END diff --git a/modular_skyrat/master_files/code/datums/components/tippable.dm b/modular_skyrat/master_files/code/datums/components/tippable.dm index 09013130f1e..e911914c1ce 100644 --- a/modular_skyrat/master_files/code/datums/components/tippable.dm +++ b/modular_skyrat/master_files/code/datums/components/tippable.dm @@ -8,14 +8,14 @@ var/mob/living/silicon/robot/robot = tipped_mob if(is_tipped) ADD_TRAIT(robot, TRAIT_IMMOBILIZED, TIPPED_OVER) - if(R_TRAIT_UNIQUETIP in robot.model.model_features) + if(TRAIT_R_UNIQUETIP in robot.model.model_features) robot.icon_state = "[robot.model.cyborg_base_icon]-tipped" robot.cut_overlays() // Cut eye-lights return robot.transform = turn(robot.transform, 180) else REMOVE_TRAIT(robot, TRAIT_IMMOBILIZED, TIPPED_OVER) - if(R_TRAIT_UNIQUETIP in robot.model.model_features) + if(TRAIT_R_UNIQUETIP in robot.model.model_features) robot.icon_state = "[robot.model.cyborg_base_icon]" robot.regenerate_icons() // Return eye-lights return diff --git a/modular_skyrat/master_files/code/datums/traits/good.dm b/modular_skyrat/master_files/code/datums/traits/good.dm index 08f265145a9..1a5a6d9d26e 100644 --- a/modular_skyrat/master_files/code/datums/traits/good.dm +++ b/modular_skyrat/master_files/code/datums/traits/good.dm @@ -14,7 +14,7 @@ name = "Linguist" desc = "You're a student of numerous languages and come with an additional language point." value = 4 - mob_trait = QUIRK_LINGUIST + mob_trait = TRAIT_LINGUIST gain_text = span_notice("Your brain seems more equipped to handle different modes of conversation.") lose_text = span_danger("Your grasp of the finer points of Draconic idioms fades away.") medical_record_text = "Patient demonstrates a high brain plasticity in regards to language learning." diff --git a/modular_skyrat/master_files/code/datums/traits/neutral.dm b/modular_skyrat/master_files/code/datums/traits/neutral.dm index e37161a1986..ea2f50d870f 100644 --- a/modular_skyrat/master_files/code/datums/traits/neutral.dm +++ b/modular_skyrat/master_files/code/datums/traits/neutral.dm @@ -1,5 +1,3 @@ -#define TRAIT_HYDRA_HEADS "hydrahead" // We still dont have a centralised trait file - GLOBAL_VAR_INIT(DNR_trait_overlay, generate_DNR_trait_overlay()) /// Instantiates GLOB.DNR_trait_overlay by creating a new mutable_appearance instance of the overlay. diff --git a/modular_skyrat/master_files/code/modules/client/preferences/middleware/languages.dm b/modular_skyrat/master_files/code/modules/client/preferences/middleware/languages.dm index 22a0854e88d..d9412fd8066 100644 --- a/modular_skyrat/master_files/code/modules/client/preferences/middleware/languages.dm +++ b/modular_skyrat/master_files/code/modules/client/preferences/middleware/languages.dm @@ -65,7 +65,7 @@ var/list/data = list() - var/max_languages = preferences.all_quirks.Find(QUIRK_LINGUIST) ? MAX_LANGUAGES_LINGUIST : MAX_LANGUAGES_NORMAL + var/max_languages = preferences.all_quirks.Find(TRAIT_LINGUIST) ? MAX_LANGUAGES_LINGUIST : MAX_LANGUAGES_NORMAL var/species_type = preferences.read_preference(/datum/preference/choiced/species) var/datum/species/species = new species_type() var/datum/language_holder/lang_holder = preferences.get_adjusted_language_holder() @@ -125,7 +125,7 @@ */ /datum/preference_middleware/languages/proc/give_language(list/params) var/language_name = params["language_name"] - var/max_languages = preferences.all_quirks.Find(QUIRK_LINGUIST) ? MAX_LANGUAGES_LINGUIST : MAX_LANGUAGES_NORMAL + var/max_languages = preferences.all_quirks.Find(TRAIT_LINGUIST) ? MAX_LANGUAGES_LINGUIST : MAX_LANGUAGES_NORMAL if(preferences.languages && preferences.languages.len == max_languages) // too many languages return TRUE diff --git a/modular_skyrat/modules/borgs/code/robot.dm b/modular_skyrat/modules/borgs/code/robot.dm index 3de94b08d8c..8bddf039f4d 100644 --- a/modular_skyrat/modules/borgs/code/robot.dm +++ b/modular_skyrat/modules/borgs/code/robot.dm @@ -13,7 +13,7 @@ layer = LYING_MOB_LAYER //so mob lying always appear behind standing mobs density = FALSE // We lose density and stop bumping passable dense things. - if(model && model.model_features && (R_TRAIT_TALL in model.model_features)) + if(model && model.model_features && (TRAIT_R_TALL in model.model_features)) maptext_height = 32 //Offset base chat-height value // Resting effects @@ -44,7 +44,7 @@ if(layer == LYING_MOB_LAYER) layer = initial(layer) density = initial(density) // We were prone before, so we become dense and things can bump into us again. - if(model && model.model_features && (R_TRAIT_TALL in model.model_features)) + if(model && model.model_features && (TRAIT_R_TALL in model.model_features)) maptext_height = 48 //Offset value of tallborgs /mob/living/silicon/robot/proc/rest_style() @@ -103,7 +103,7 @@ * model_features is defined in modular_skyrat\modules\altborgs\code\modules\mob\living\silicon\robot\robot_model.dm. */ /mob/living/silicon/robot/proc/can_rest() - if(model && model.model_features && ((R_TRAIT_WIDE in model.model_features) || (R_TRAIT_TALL in model.model_features))) + if(model && model.model_features && ((TRAIT_R_WIDE in model.model_features) || (TRAIT_R_TALL in model.model_features))) if(TRAIT_IMMOBILIZED in _status_traits) return FALSE return TRUE diff --git a/modular_skyrat/modules/borgs/code/robot_items.dm b/modular_skyrat/modules/borgs/code/robot_items.dm index 96a03b2e38d..1e04b3103ad 100644 --- a/modular_skyrat/modules/borgs/code/robot_items.dm +++ b/modular_skyrat/modules/borgs/code/robot_items.dm @@ -681,7 +681,7 @@ var/list/details = disguise_model.borg_skins[skin] var/image/reskin = image(icon = details[SKIN_ICON] || 'icons/mob/silicon/robots.dmi', icon_state = details[SKIN_ICON_STATE]) if (!isnull(details[SKIN_FEATURES])) - if (R_TRAIT_WIDE in details[SKIN_FEATURES]) + if (TRAIT_R_WIDE in details[SKIN_FEATURES]) reskin.pixel_x -= 16 reskin_icons[skin] = reskin var/borg_skin = show_radial_menu(cyborg, cyborg, reskin_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), cyborg), radius = 38, require_near = TRUE) diff --git a/modular_skyrat/modules/borgs/code/robot_model.dm b/modular_skyrat/modules/borgs/code/robot_model.dm index ffdd2d5e684..8c94520ad0d 100644 --- a/modular_skyrat/modules/borgs/code/robot_model.dm +++ b/modular_skyrat/modules/borgs/code/robot_model.dm @@ -11,7 +11,7 @@ var/mob/living/silicon/robot/cyborg = robot || loc if (!istype(robot)) return - if (model_features && (R_TRAIT_TALL in model_features)) + if (model_features && (TRAIT_R_TALL in model_features)) cyborg.maptext_height = 48 //Runechat blabla cyborg.AddElement(/datum/element/footstep, FOOTSTEP_MOB_SHOE, 2, -6, sound_vary = TRUE) add_verb(cyborg, /mob/living/silicon/robot/proc/robot_lay_down) @@ -33,7 +33,7 @@ var/mob/living/silicon/robot/cyborg = robot || loc if (!istype(robot)) return - if (model_features && (R_TRAIT_WIDE in model_features)) + if (model_features && (TRAIT_R_WIDE in model_features)) hat_offset = INFINITY cyborg.set_base_pixel_x(-16) add_verb(cyborg, /mob/living/silicon/robot/proc/robot_lay_down) @@ -47,16 +47,16 @@ /obj/item/robot_model/standard name = "Standard" borg_skins = list( - "Default" = list(SKIN_ICON_STATE = "robot", SKIN_FEATURES = list(R_TRAIT_SMALL)), - "Marina" = list(SKIN_ICON_STATE = "marinasd", SKIN_ICON = CYBORG_ICON_STANDARD, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK)), - "Heavy" = list(SKIN_ICON_STATE = "heavysd", SKIN_ICON = CYBORG_ICON_STANDARD, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK)), - "Eyebot" = list(SKIN_ICON_STATE = "eyebotsd", SKIN_ICON = CYBORG_ICON_STANDARD, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL)), - "Robot" = list(SKIN_ICON_STATE = "robot_old", SKIN_ICON = CYBORG_ICON_STANDARD, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK)), + "Default" = list(SKIN_ICON_STATE = "robot", SKIN_FEATURES = list(TRAIT_R_SMALL)), + "Marina" = list(SKIN_ICON_STATE = "marinasd", SKIN_ICON = CYBORG_ICON_STANDARD, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), + "Heavy" = list(SKIN_ICON_STATE = "heavysd", SKIN_ICON = CYBORG_ICON_STANDARD, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), + "Eyebot" = list(SKIN_ICON_STATE = "eyebotsd", SKIN_ICON = CYBORG_ICON_STANDARD, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL)), + "Robot" = list(SKIN_ICON_STATE = "robot_old", SKIN_ICON = CYBORG_ICON_STANDARD, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), "Bootyborg" = list(SKIN_ICON_STATE = "bootysd", SKIN_ICON = CYBORG_ICON_STANDARD), "Male Bootyborg" = list(SKIN_ICON_STATE = "male_bootysd", SKIN_ICON = CYBORG_ICON_STANDARD), "Protectron" = list(SKIN_ICON_STATE = "protectron_standard", SKIN_ICON = CYBORG_ICON_STANDARD), "Miss M" = list(SKIN_ICON_STATE = "missm_sd", SKIN_ICON = CYBORG_ICON_STANDARD), - "Partyhound" = list(SKIN_ICON_STATE = "k69", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)) + "Partyhound" = list(SKIN_ICON_STATE = "k69", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)) ) //SERVICE @@ -72,7 +72,7 @@ "Heavy" = list(SKIN_ICON_STATE = "heavyserv", SKIN_ICON = CYBORG_ICON_SERVICE), "Kent" = list(SKIN_ICON_STATE = "kent", SKIN_LIGHT_KEY = "medical", SKIN_HAT_OFFSET = 3), "Can" = list(SKIN_ICON_STATE = "kent", SKIN_LIGHT_KEY = "medical", SKIN_HAT_OFFSET = 3), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_green", SKIN_ICON = CYBORG_ICON_SERVICE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_green", SKIN_ICON = CYBORG_ICON_SERVICE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), "ARACHNE" = list(SKIN_ICON_STATE = "arachne_service", SKIN_ICON = CYBORG_ICON_SERVICE), "Slipper" = list(SKIN_ICON_STATE = "slipper_service", SKIN_ICON = CYBORG_ICON_SERVICE), "Bootyborg" = list(SKIN_ICON_STATE = "bootyservice", SKIN_ICON = CYBORG_ICON_SERVICE), @@ -83,20 +83,20 @@ "Mech" = list(SKIN_ICON_STATE = "lloyd", SKIN_ICON = CYBORG_ICON_SERVICE), "Handy" = list(SKIN_ICON_STATE = "handy-service", SKIN_ICON = CYBORG_ICON_SERVICE), /// 64x32 skins - "Borgi" = list(SKIN_ICON_STATE = "borgi-serv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE, R_TRAIT_SMALL)), - "Drake" = list(SKIN_ICON_STATE = "drakeserv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "valeserv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "ValeDark" = list(SKIN_ICON_STATE = "valeservdark", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Darkhound" = list(SKIN_ICON_STATE = "k50", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Partyhound" = list(SKIN_ICON_STATE = "k69", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi-serv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), + "Drake" = list(SKIN_ICON_STATE = "drakeserv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Vale" = list(SKIN_ICON_STATE = "valeserv", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "ValeDark" = list(SKIN_ICON_STATE = "valeservdark", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Darkhound" = list(SKIN_ICON_STATE = "k50", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Partyhound" = list(SKIN_ICON_STATE = "k69", SKIN_ICON = CYBORG_ICON_SERVICE_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), /// 32x64 skins - "Meka" = list(SKIN_ICON_STATE = "mekaserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "Meka (Alt)" = list(SKIN_ICON_STATE = "mekaserve_alt", SKIN_LIGHT_KEY = "mekaserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekaserv", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekaserv", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Barista)" = list(SKIN_ICON_STATE = "k4tserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (80s)" = list(SKIN_ICON_STATE = "k4tserve_alt1", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Dispenser)" = list(SKIN_ICON_STATE = "k4tserve_alt2", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekaserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "Meka (Alt)" = list(SKIN_ICON_STATE = "mekaserve_alt", SKIN_LIGHT_KEY = "mekaserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekaserv", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekaserv", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Barista)" = list(SKIN_ICON_STATE = "k4tserve", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (80s)" = list(SKIN_ICON_STATE = "k4tserve_alt1", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Dispenser)" = list(SKIN_ICON_STATE = "k4tserve_alt2", SKIN_ICON = CYBORG_ICON_SERVICE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) //MINING @@ -106,8 +106,8 @@ /// 32x32 Skins "Lavaland" = list(SKIN_ICON_STATE = "miner", SKIN_LIGHT_KEY = "miner"), "Asteroid" = list(SKIN_ICON_STATE = "minerOLD", SKIN_LIGHT_KEY = "miner"), - "Drone" = list(SKIN_ICON_STATE = "miningdrone", SKIN_ICON = CYBORG_ICON_MINING, SKIN_FEATURES = list(R_TRAIT_SMALL)), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_miner", SKIN_ICON = CYBORG_ICON_MINING, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL), SKIN_HAT_OFFSET = -13), + "Drone" = list(SKIN_ICON_STATE = "miningdrone", SKIN_ICON = CYBORG_ICON_MINING, SKIN_FEATURES = list(TRAIT_R_SMALL)), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_miner", SKIN_ICON = CYBORG_ICON_MINING, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), "Slipper" = list(SKIN_ICON_STATE = "slipper_mine", SKIN_ICON = CYBORG_ICON_MINING), "Spider Miner" = list(SKIN_ICON_STATE = "spidermin", SKIN_LIGHT_KEY = "miner"), "Droid" = list(SKIN_ICON_STATE = "miner", SKIN_ICON = CYBORG_ICON_MINING, SKIN_HAT_OFFSET = 4), @@ -123,18 +123,18 @@ "Miss M" = list(SKIN_ICON_STATE = "missm_miner", SKIN_ICON = CYBORG_ICON_MINING), "Mech" = list(SKIN_ICON_STATE = "ishimura", SKIN_ICON = CYBORG_ICON_MINING), /// 64x32 skins - "Blade" = list(SKIN_ICON_STATE = "blade", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "valemine", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Drake" = list(SKIN_ICON_STATE = "drakemine", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Hound" = list(SKIN_ICON_STATE = "cargohound", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Darkhound" = list(SKIN_ICON_STATE = "cargohounddark", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Otie" = list(SKIN_ICON_STATE = "otiec", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), + "Blade" = list(SKIN_ICON_STATE = "blade", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Vale" = list(SKIN_ICON_STATE = "valemine", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Drake" = list(SKIN_ICON_STATE = "drakemine", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Hound" = list(SKIN_ICON_STATE = "cargohound", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Darkhound" = list(SKIN_ICON_STATE = "cargohounddark", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Otie" = list(SKIN_ICON_STATE = "otiec", SKIN_ICON = CYBORG_ICON_MINING_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), /// 32x64 skins - "Meka" = list(SKIN_ICON_STATE = "mekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Rookie)" = list(SKIN_ICON_STATE = "k4tmine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Veteran)" = list(SKIN_ICON_STATE = "k4tmine_alt1", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Rookie)" = list(SKIN_ICON_STATE = "k4tmine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Veteran)" = list(SKIN_ICON_STATE = "k4tmine_alt1", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekamine", SKIN_ICON = CYBORG_ICON_MINING_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) //CLOWN @@ -145,22 +145,22 @@ "Male Bootyborg" = list(SKIN_ICON_STATE = "male_bootyclown", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi'), "ARACHNE" = list(SKIN_ICON_STATE = "arachne_clown", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi'), "Slipper" = list(SKIN_ICON_STATE = "slipper_clown", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi'), - "Marina" = list(SKIN_ICON_STATE = "marina_mommy", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi', SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK)), + "Marina" = list(SKIN_ICON_STATE = "marina_mommy", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi', SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), "Garish" = list(SKIN_ICON_STATE = "garish", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi'), "Robot" = list(SKIN_ICON_STATE = "clownbot", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi'), - "Sleek" = list(SKIN_ICON_STATE = "clownman", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi', SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK)), + "Sleek" = list(SKIN_ICON_STATE = "clownman", SKIN_ICON = 'modular_skyrat/modules/borgs/icons/robots_clown.dmi', SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), /// 32x64 skins - "K4T" = list(SKIN_ICON_STATE = "k4tclown", SKIN_ICON = CYBORG_ICON_CLOWN_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "K4T" = list(SKIN_ICON_STATE = "k4tclown", SKIN_ICON = CYBORG_ICON_CLOWN_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) //ENGINEERING /obj/item/robot_model/engineering borg_skins = list( /// 32x32 Skins - "Default" = list(SKIN_ICON_STATE = "engineer", SKIN_FEATURES = list(R_TRAIT_SMALL)), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_engi", SKIN_ICON = CYBORG_ICON_ENG, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL), SKIN_HAT_OFFSET = -13), + "Default" = list(SKIN_ICON_STATE = "engineer", SKIN_FEATURES = list(TRAIT_R_SMALL)), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_engi", SKIN_ICON = CYBORG_ICON_ENG, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), "Default - Treads" = list(SKIN_ICON_STATE = "engi-tread", SKIN_LIGHT_KEY = "engineer", SKIN_ICON = CYBORG_ICON_ENG), - "Loader" = list(SKIN_ICON_STATE = "loaderborg", SKIN_ICON = CYBORG_ICON_ENG, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK)), + "Loader" = list(SKIN_ICON_STATE = "loaderborg", SKIN_ICON = CYBORG_ICON_ENG, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), "Handy" = list(SKIN_ICON_STATE = "handyeng", SKIN_ICON = CYBORG_ICON_ENG), "Sleek" = list(SKIN_ICON_STATE = "sleekeng", SKIN_ICON = CYBORG_ICON_ENG), "Can" = list(SKIN_ICON_STATE = "caneng", SKIN_ICON = CYBORG_ICON_ENG), @@ -176,22 +176,22 @@ "Wide" = list(SKIN_ICON_STATE = "wide-engi", SKIN_ICON = CYBORG_ICON_ENG), "ARACHNE" = list(SKIN_ICON_STATE = "arachne_engi", SKIN_ICON = CYBORG_ICON_ENG), "Slipper" = list(SKIN_ICON_STATE = "slipper_engi", SKIN_ICON = CYBORG_ICON_ENG), - "Alina" = list(SKIN_ICON_STATE = "alina-eng", SKIN_LIGHT_KEY = "alina", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Eyebot" = list(SKIN_ICON_STATE = "eyeboteng", SKIN_ICON = CYBORG_ICON_ENG, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL)), + "Alina" = list(SKIN_ICON_STATE = "alina-eng", SKIN_LIGHT_KEY = "alina", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Eyebot" = list(SKIN_ICON_STATE = "eyeboteng", SKIN_ICON = CYBORG_ICON_ENG, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL)), /// 64x32 Skins - "Borgi" = list(SKIN_ICON_STATE = "borgi-eng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE, R_TRAIT_SMALL)), - "Otie" = list(SKIN_ICON_STATE = "otiee", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Pup Dozer" = list(SKIN_ICON_STATE = "pupdozer", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "valeeng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Hound" = list(SKIN_ICON_STATE = "engihound", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Darkhound" = list(SKIN_ICON_STATE = "engihounddark", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Drake" = list(SKIN_ICON_STATE = "drakeeng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi-eng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), + "Otie" = list(SKIN_ICON_STATE = "otiee", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Pup Dozer" = list(SKIN_ICON_STATE = "pupdozer", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Vale" = list(SKIN_ICON_STATE = "valeeng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Hound" = list(SKIN_ICON_STATE = "engihound", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Darkhound" = list(SKIN_ICON_STATE = "engihounddark", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Drake" = list(SKIN_ICON_STATE = "drakeeng", SKIN_ICON = CYBORG_ICON_ENG_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekaengi", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Technician)" = list(SKIN_ICON_STATE = "k4tengi", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Hazard)" = list(SKIN_ICON_STATE = "k4tengi_alt1", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekaeng", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekaeng", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekaengi", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Technician)" = list(SKIN_ICON_STATE = "k4tengi", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Hazard)" = list(SKIN_ICON_STATE = "k4tengi_alt1", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekaeng", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekaeng", SKIN_ICON = CYBORG_ICON_ENG_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) /obj/item/robot_model/janitor @@ -200,7 +200,7 @@ "Default" = list(SKIN_ICON_STATE = "janitor"), "ARACHNE" = list(SKIN_ICON_STATE = "arachne_jani", SKIN_ICON = CYBORG_ICON_JANI), "Slipper" = list(SKIN_ICON_STATE = "slipper_janitor", SKIN_ICON = CYBORG_ICON_JANI), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_jani", SKIN_ICON = CYBORG_ICON_JANI, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_jani", SKIN_ICON = CYBORG_ICON_JANI, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), "Marina" = list(SKIN_ICON_STATE = "marinajan", SKIN_ICON = CYBORG_ICON_JANI), "Sleek" = list(SKIN_ICON_STATE = "sleekjan", SKIN_ICON = CYBORG_ICON_JANI), "Can" = list(SKIN_ICON_STATE = "canjan", SKIN_ICON = CYBORG_ICON_JANI), @@ -211,37 +211,37 @@ "Protectron" = list(SKIN_ICON_STATE = "protectron_janitor", SKIN_ICON = CYBORG_ICON_JANI), "Miss M" = list(SKIN_ICON_STATE = "missm_janitor", SKIN_ICON = CYBORG_ICON_JANI), "Mech" = list(SKIN_ICON_STATE = "flynn", SKIN_ICON = CYBORG_ICON_JANI), - "Eyebot" = list(SKIN_ICON_STATE = "eyebotjani", SKIN_ICON = CYBORG_ICON_JANI, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL)), + "Eyebot" = list(SKIN_ICON_STATE = "eyebotjani", SKIN_ICON = CYBORG_ICON_JANI, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL)), "Insekt" = list(SKIN_ICON_STATE = "insekt-Sci", SKIN_ICON = CYBORG_ICON_JANI), "Wide" = list(SKIN_ICON_STATE = "wide-jani", SKIN_ICON = CYBORG_ICON_JANI), "Spider" = list(SKIN_ICON_STATE = "spidersci", SKIN_ICON = CYBORG_ICON_JANI), /// 64x32 Skins - "Borgi" = list(SKIN_ICON_STATE = "borgi-jani", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE, R_TRAIT_SMALL)), - "Scrubpuppy" = list(SKIN_ICON_STATE = "scrubpup", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Drake" = list(SKIN_ICON_STATE = "drakejanit", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "J9", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Otie" = list(SKIN_ICON_STATE = "otiej", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi-jani", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), + "Scrubpuppy" = list(SKIN_ICON_STATE = "scrubpup", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Drake" = list(SKIN_ICON_STATE = "drakejanit", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Vale" = list(SKIN_ICON_STATE = "J9", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Otie" = list(SKIN_ICON_STATE = "otiej", SKIN_ICON = CYBORG_ICON_JANI_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Viscera)" = list(SKIN_ICON_STATE = "k4tjani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Domestic)" = list(SKIN_ICON_STATE = "k4tjani_alt1", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Viscera)" = list(SKIN_ICON_STATE = "k4tjani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Domestic)" = list(SKIN_ICON_STATE = "k4tjani_alt1", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekajani", SKIN_ICON = CYBORG_ICON_JANI_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) //MEDICAL /obj/item/robot_model/medical borg_skins = list( /// 32x32 Skins - "Machinified Doctor" = list(SKIN_ICON_STATE = "medical", SKIN_TRAITS = list(R_TRAIT_SMALL)), + "Machinified Doctor" = list(SKIN_ICON_STATE = "medical", SKIN_TRAITS = list(TRAIT_R_SMALL)), "Qualified Doctor" = list(SKIN_ICON_STATE = "qualified_doctor"), "ARACHNE" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "arachne_med"), "Slipper" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "slipper_med"), - "Zoomba" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "zoomba_med", SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "zoomba_med", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), "Droid" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "medical", SKIN_HAT_OFFSET = 4), "Sleek" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "sleekmed"), "Marina" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "marinamed"), - "Eyebot" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "eyebotmed", SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL)), + "Eyebot" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "eyebotmed", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL)), "Heavy" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "heavymed"), "Bootyborg" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "bootymedical"), "Birdborg" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "bird_med"), @@ -251,18 +251,18 @@ "Insekt" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "insekt-Med"), "Mech" = list(SKIN_ICON = CYBORG_ICON_MED, SKIN_ICON_STATE = "gibbs"), /// 64x32 Skins - "Borgi" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "borgi-medi", SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Drake" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "drakemed", SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Hound" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "medihound", SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "DarkHound" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "medihounddark", SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Vale" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "valemed", SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Alina" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "alina-med", SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), + "Borgi" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "borgi-medi", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Drake" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "drakemed", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Hound" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "medihound", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "DarkHound" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "medihounddark", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Vale" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "valemed", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Alina" = list(SKIN_ICON = CYBORG_ICON_MED_WIDE, SKIN_ICON_STATE = "alina-med", SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Doc)" = list(SKIN_ICON_STATE = "k4tmed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Field Medic)" = list(SKIN_ICON_STATE = "k4tmed_alt1", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Doc)" = list(SKIN_ICON_STATE = "k4tmed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Field Medic)" = list(SKIN_ICON_STATE = "k4tmed_alt1", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekamed", SKIN_ICON = CYBORG_ICON_MED_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) //PEACEKEEPER @@ -270,33 +270,33 @@ borg_skins = list( /// 32x32 Skins "Default" = list(SKIN_ICON_STATE = "peace"), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_peace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_peace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), "ARACHNE" = list(SKIN_ICON_STATE = "arachne_peacekeeper", SKIN_ICON = CYBORG_ICON_PEACEKEEPER), - "Sleek" = list(SKIN_ICON_STATE = "sleekpeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK)), - "Spider" = list(SKIN_ICON_STATE = "whitespider", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(R_TRAIT_SMALL)), - "Marina" = list(SKIN_ICON_STATE = "marinapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK)), + "Sleek" = list(SKIN_ICON_STATE = "sleekpeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), + "Spider" = list(SKIN_ICON_STATE = "whitespider", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(TRAIT_R_SMALL)), + "Marina" = list(SKIN_ICON_STATE = "marinapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK)), "Bootyborg" = list(SKIN_ICON_STATE = "bootypeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER), "Male Bootyborg" = list(SKIN_ICON_STATE = "male_bootypeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER), "Birdborg" = list(SKIN_ICON_STATE = "bird_pk", SKIN_ICON = CYBORG_ICON_PEACEKEEPER), "Protectron" = list(SKIN_ICON_STATE = "protectron_peacekeeper", SKIN_ICON = CYBORG_ICON_PEACEKEEPER), "Insekt" = list(SKIN_ICON_STATE = "insekt-Default", SKIN_ICON = CYBORG_ICON_PEACEKEEPER), - "Omni" = list(SKIN_ICON_STATE = "omoikane", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(R_TRAIT_SMALL)), + "Omni" = list(SKIN_ICON_STATE = "omoikane", SKIN_ICON = CYBORG_ICON_PEACEKEEPER, SKIN_FEATURES = list(TRAIT_R_SMALL)), /// 64x32 Skins - "Drake" = list(SKIN_ICON_STATE = "drakepeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Borgi" = list(SKIN_ICON_STATE = "borgi", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE, R_TRAIT_SMALL)), - "Vale" = list(SKIN_ICON_STATE = "valepeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), + "Drake" = list(SKIN_ICON_STATE = "drakepeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), + "Vale" = list(SKIN_ICON_STATE = "valepeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T" = list(SKIN_ICON_STATE = "k4tpeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T" = list(SKIN_ICON_STATE = "k4tpeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekapeace", SKIN_ICON = CYBORG_ICON_PEACEKEEPER_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) /obj/item/robot_model/security borg_skins = list( /// 32x32 Skins "Default" = list(SKIN_ICON_STATE = "sec"), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_sec", SKIN_ICON = CYBORG_ICON_SEC, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_sec", SKIN_ICON = CYBORG_ICON_SEC, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), "Default - Treads" = list(SKIN_ICON_STATE = "sec-tread", SKIN_LIGHT_KEY = "sec", SKIN_ICON = CYBORG_ICON_SEC), "Sleek" = list(SKIN_ICON_STATE = "sleeksec", SKIN_ICON = CYBORG_ICON_SEC), "Marina" = list(SKIN_ICON_STATE = "marinasec", SKIN_ICON = CYBORG_ICON_SEC), @@ -307,22 +307,22 @@ "Male Bootyborg" = list(SKIN_ICON_STATE = "male_bootysecurity", SKIN_ICON = CYBORG_ICON_SEC), "Protectron" = list(SKIN_ICON_STATE = "protectron_security", SKIN_ICON = CYBORG_ICON_SEC), "Miss M" = list(SKIN_ICON_STATE = "missm_security", SKIN_ICON = CYBORG_ICON_SEC), - "Eyebot" = list(SKIN_ICON_STATE = "eyebotsec", SKIN_ICON = CYBORG_ICON_SEC, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL)), + "Eyebot" = list(SKIN_ICON_STATE = "eyebotsec", SKIN_ICON = CYBORG_ICON_SEC, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL)), "Insekt" = list(SKIN_ICON_STATE = "insekt-Sec", SKIN_ICON = CYBORG_ICON_SEC), "Mech" = list(SKIN_ICON_STATE = "woody", SKIN_ICON = CYBORG_ICON_SEC), /// 64x32 Skins - "Borgi" = list(SKIN_ICON_STATE = "borgi-sec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE, R_TRAIT_SMALL)), - "Hound" = list(SKIN_ICON_STATE = "k9", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Darkhound" = list(SKIN_ICON_STATE = "k9dark", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Drake" = list(SKIN_ICON_STATE = "drakesec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Otie" = list(SKIN_ICON_STATE = "oties", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Alina" = list(SKIN_ICON_STATE = "alina-sec", SKIN_LIGHT_KEY = "alina", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "valesec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi-sec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), + "Hound" = list(SKIN_ICON_STATE = "k9", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Darkhound" = list(SKIN_ICON_STATE = "k9dark", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Drake" = list(SKIN_ICON_STATE = "drakesec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Otie" = list(SKIN_ICON_STATE = "oties", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Alina" = list(SKIN_ICON_STATE = "alina-sec", SKIN_LIGHT_KEY = "alina", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Vale" = list(SKIN_ICON_STATE = "valesec", SKIN_ICON = CYBORG_ICON_SEC_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T" = list(SKIN_ICON_STATE = "k4tsec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T" = list(SKIN_ICON_STATE = "k4tsec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) // CARGO @@ -358,20 +358,20 @@ /// 32x32 Skins "Technician" = list(SKIN_ICON_STATE = "cargoborg", SKIN_ICON = CYBORG_ICON_CARGO), "Miss M" = list(SKIN_ICON_STATE = "missm_cargo", SKIN_ICON = CYBORG_ICON_CARGO), - "Zoomba" = list(SKIN_ICON_STATE = "zoomba_cargo", SKIN_ICON = CYBORG_ICON_CARGO, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_SMALL), SKIN_HAT_OFFSET = -13), + "Zoomba" = list(SKIN_ICON_STATE = "zoomba_cargo", SKIN_ICON = CYBORG_ICON_CARGO, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SMALL), SKIN_HAT_OFFSET = -13), "Birdborg" = list(SKIN_ICON_STATE = "bird_cargo", SKIN_ICON = CYBORG_ICON_CARGO), /// 64x32 Skins - "Borgi" = list(SKIN_ICON_STATE = "borgi-cargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE, R_TRAIT_SMALL)), - "Drake" = list(SKIN_ICON_STATE = "drakecargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Hound" = list(SKIN_ICON_STATE = "cargohound", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Darkhound" = list(SKIN_ICON_STATE = "cargohounddark", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Vale" = list(SKIN_ICON_STATE = "valecargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), + "Borgi" = list(SKIN_ICON_STATE = "borgi-cargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE, TRAIT_R_SMALL)), + "Drake" = list(SKIN_ICON_STATE = "drakecargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Hound" = list(SKIN_ICON_STATE = "cargohound", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Darkhound" = list(SKIN_ICON_STATE = "cargohounddark", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), + "Vale" = list(SKIN_ICON_STATE = "valecargo", SKIN_ICON = CYBORG_ICON_CARGO_WIDE, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE)), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Loader)" = list(SKIN_ICON_STATE = "k4tcargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T (Turtleneck)" = list(SKIN_ICON_STATE = "k4tcargo_alt1", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Loader)" = list(SKIN_ICON_STATE = "k4tcargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T (Turtleneck)" = list(SKIN_ICON_STATE = "k4tcargo_alt1", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekacargo", SKIN_ICON = CYBORG_ICON_CARGO_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) @@ -430,10 +430,10 @@ "Male Booty Syndicate" = list(SKIN_ICON_STATE = "male_bootysyndie", SKIN_ICON = CYBORG_ICON_SYNDIE), "Mech" = list(SKIN_ICON_STATE = "chesty", SKIN_ICON = CYBORG_ICON_SYNDIE), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T" = list(SKIN_ICON_STATE = "k4tsyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T" = list(SKIN_ICON_STATE = "k4tsyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekasyndi", SKIN_ICON = CYBORG_ICON_SYNDIE_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) /obj/item/robot_model/syndicatejack/rebuild_modules() @@ -475,10 +475,10 @@ "BootyBorg" = list(SKIN_ICON_STATE = "bootyninja", SKIN_ICON = CYBORG_ICON_NINJA), "Male Bootyborg" = list(SKIN_ICON_STATE = "male_bootyninja", SKIN_ICON = CYBORG_ICON_NINJA), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T" = list(SKIN_ICON_STATE = "k4tninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T" = list(SKIN_ICON_STATE = "k4tninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) /obj/item/robot_model/ninja/rebuild_modules() @@ -559,10 +559,10 @@ "BootyBorg" = list(SKIN_ICON_STATE = "bootyninja", SKIN_ICON = CYBORG_ICON_NINJA), "Male Bootyborg" = list(SKIN_ICON_STATE = "male_bootyninja", SKIN_ICON = CYBORG_ICON_NINJA), /// 32x64 Skins - "Meka" = list(SKIN_ICON_STATE = "mekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "K4T" = list(SKIN_ICON_STATE = "k4tninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKA" = list(SKIN_ICON_STATE = "fmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "NiKO" = list(SKIN_ICON_STATE = "mmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15) + "Meka" = list(SKIN_ICON_STATE = "mekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "K4T" = list(SKIN_ICON_STATE = "k4tninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKA" = list(SKIN_ICON_STATE = "fmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15), + "NiKO" = list(SKIN_ICON_STATE = "mmekaninja", SKIN_ICON = CYBORG_ICON_NINJA_TALL, SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), SKIN_HAT_OFFSET = 15) ) /obj/item/robot_model/ninja_saboteur/do_transform_animation() diff --git a/modular_skyrat/modules/borgs/code/robot_upgrade.dm b/modular_skyrat/modules/borgs/code/robot_upgrade.dm index 2d0cb42c6c2..23e0c11758d 100644 --- a/modular_skyrat/modules/borgs/code/robot_upgrade.dm +++ b/modular_skyrat/modules/borgs/code/robot_upgrade.dm @@ -315,7 +315,7 @@ if(borg.hasAffection) to_chat(usr, span_warning("This unit already has a affection module installed!")) return FALSE - if(!(R_TRAIT_WIDE in borg.model.model_features)) + if(!(TRAIT_R_WIDE in borg.model.model_features)) to_chat(usr, span_warning("This unit's chassis does not support this module.")) return FALSE @@ -396,7 +396,7 @@ if(borg.hasShrunk) to_chat(usr, span_warning("This unit already has a shrink module installed!")) return FALSE - if(R_TRAIT_SMALL in borg.model.model_features) + if(TRAIT_R_SMALL in borg.model.model_features) to_chat(usr, span_warning("This unit's chassis cannot be shrunk any further.")) return FALSE diff --git a/modular_skyrat/modules/borgs/code/update_icons.dm b/modular_skyrat/modules/borgs/code/update_icons.dm index a9c3ffefb04..dc982cbdabe 100644 --- a/modular_skyrat/modules/borgs/code/update_icons.dm +++ b/modular_skyrat/modules/borgs/code/update_icons.dm @@ -2,7 +2,7 @@ icon = (model.cyborg_icon_override ? model.cyborg_icon_override : initial(icon)) . = ..() /// Let's give custom borgs the ability to have flavor panels for their model - if(opened && (R_TRAIT_UNIQUEPANEL in model.model_features)) + if(opened && (TRAIT_R_UNIQUEPANEL in model.model_features)) if(wiresexposed) add_overlay("[model.cyborg_base_icon]_w") else if(cell) @@ -52,13 +52,13 @@ else icon_state = "[model.cyborg_base_icon]" - if((R_TRAIT_UNIQUETIP in model.model_features) && (TRAIT_IMMOBILIZED in _status_traits)) + if((TRAIT_R_UNIQUETIP in model.model_features) && (TRAIT_IMMOBILIZED in _status_traits)) icon_state = "[model.cyborg_base_icon]-tipped" if(particles) dissipate() cut_overlays() - if(stat == DEAD && (R_TRAIT_UNIQUEWRECK in model.model_features)) + if(stat == DEAD && (TRAIT_R_UNIQUEWRECK in model.model_features)) icon_state = "[model.cyborg_base_icon]-wreck" diff --git a/modular_skyrat/modules/ghostcafe/code/ghost_role_spawners.dm b/modular_skyrat/modules/ghostcafe/code/ghost_role_spawners.dm index 33896dd331f..74cde1544a3 100644 --- a/modular_skyrat/modules/ghostcafe/code/ghost_role_spawners.dm +++ b/modular_skyrat/modules/ghostcafe/code/ghost_role_spawners.dm @@ -30,8 +30,8 @@ new_spawn.AddElement(/datum/element/dusts_on_catatonia) new_spawn.AddElement(/datum/element/dusts_on_leaving_area,list(A.type, /area/misc/hilbertshotel, /area/centcom/holding/cafe, /area/centcom/holding/cafewar, /area/centcom/holding/cafebotany, /area/centcom/holding/cafebuild, /area/centcom/holding/cafevox, /area/centcom/holding/cafedorms, /area/centcom/holding/cafepark, /area/centcom/holding/cafeplumbing)) - ADD_TRAIT(new_spawn, TRAIT_SIXTHSENSE, GHOSTROLE_TRAIT) - ADD_TRAIT(new_spawn, TRAIT_FREE_GHOST, GHOSTROLE_TRAIT) + ADD_TRAIT(new_spawn, TRAIT_SIXTHSENSE, TRAIT_GHOSTROLE) + ADD_TRAIT(new_spawn, TRAIT_FREE_GHOST, TRAIT_GHOSTROLE) to_chat(new_spawn,span_warning("Ghosting is free!")) var/datum/action/toggle_dead_chat_mob/D = new(new_spawn) D.Grant(new_spawn) @@ -58,8 +58,8 @@ new_spawn.AddElement(/datum/element/dusts_on_catatonia) new_spawn.AddElement(/datum/element/dusts_on_leaving_area,list(A.type, /area/misc/hilbertshotel, /area/centcom/holding/cafe, /area/centcom/holding/cafewar, /area/centcom/holding/cafebotany, /area/centcom/holding/cafebuild, /area/centcom/holding/cafevox, /area/centcom/holding/cafedorms, /area/centcom/holding/cafepark, /area/centcom/holding/cafeplumbing)) - ADD_TRAIT(new_spawn, TRAIT_SIXTHSENSE, GHOSTROLE_TRAIT) - ADD_TRAIT(new_spawn, TRAIT_FREE_GHOST, GHOSTROLE_TRAIT) + ADD_TRAIT(new_spawn, TRAIT_SIXTHSENSE, TRAIT_GHOSTROLE) + ADD_TRAIT(new_spawn, TRAIT_FREE_GHOST, TRAIT_GHOSTROLE) to_chat(new_spawn,span_warning("Ghosting is free!")) var/datum/action/toggle_dead_chat_mob/D = new(new_spawn) SSquirks.AssignQuirks(new_spawn, new_spawn.client, TRUE, TRUE, null, FALSE, new_spawn) @@ -83,11 +83,11 @@ if(!..()) return 0 var/mob/M = target - if(HAS_TRAIT_FROM(M,TRAIT_SIXTHSENSE,GHOSTROLE_TRAIT)) - REMOVE_TRAIT(M,TRAIT_SIXTHSENSE,GHOSTROLE_TRAIT) + if(HAS_TRAIT_FROM(M,TRAIT_SIXTHSENSE,TRAIT_GHOSTROLE)) + REMOVE_TRAIT(M,TRAIT_SIXTHSENSE,TRAIT_GHOSTROLE) to_chat(M,span_notice("You're no longer hearing deadchat.")) else - ADD_TRAIT(M,TRAIT_SIXTHSENSE,GHOSTROLE_TRAIT) + ADD_TRAIT(M,TRAIT_SIXTHSENSE,TRAIT_GHOSTROLE) to_chat(M,span_notice("You're once again hearing deadchat.")) /obj/item/storage/box/syndie_kit/chameleon/ghostcafe diff --git a/modular_skyrat/modules/ghostcafe/code/ghostcafeturf.dm b/modular_skyrat/modules/ghostcafe/code/ghostcafeturf.dm index 68a03c5f6d1..0af43268ca5 100644 --- a/modular_skyrat/modules/ghostcafe/code/ghostcafeturf.dm +++ b/modular_skyrat/modules/ghostcafe/code/ghostcafeturf.dm @@ -6,6 +6,6 @@ lava_damage = 0 lava_firestacks = 0 temperature_damage = 0 - immunity_trait = GHOSTROLE_TRAIT + immunity_trait = TRAIT_GHOSTROLE immunity_resistance_flags = LAVA_PROOF diff --git a/modular_skyrat/modules/modular_implants/code/nif_persistence.dm b/modular_skyrat/modules/modular_implants/code/nif_persistence.dm index fd24fd3b579..ce4d865f7cf 100644 --- a/modular_skyrat/modules/modular_implants/code/nif_persistence.dm +++ b/modular_skyrat/modules/modular_implants/code/nif_persistence.dm @@ -22,7 +22,7 @@ /mob/living/carbon/human/proc/save_nif_data(datum/modular_persistence/persistence, remove_nif = FALSE) var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = get_organ_by_type(/obj/item/organ/internal/cyberimp/brain/nif) - if(HAS_TRAIT(src, GHOSTROLE_TRAIT)) //Nothing is lost from playing a ghost role + if(HAS_TRAIT(src, TRAIT_GHOSTROLE)) //Nothing is lost from playing a ghost role return FALSE if(remove_nif) @@ -69,7 +69,7 @@ /// Loads the NIF data for an individual user. /mob/living/carbon/human/proc/load_nif_data(datum/modular_persistence/persistence) - if(HAS_TRAIT(src, GHOSTROLE_TRAIT)) + if(HAS_TRAIT(src, TRAIT_GHOSTROLE)) return FALSE if(!persistence.nif_path) diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/huds.dm b/modular_skyrat/modules/modular_implants/code/nifsofts/huds.dm index 77353910752..dead3ffa066 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsofts/huds.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/huds.dm @@ -24,7 +24,7 @@ ADD_TRAIT(linked_mob, hud_trait, GLASSES_TRAIT) for(var/trait as anything in added_eyewear_traits) - ADD_TRAIT(linked_mob, trait, NIFSOFT_TRAIT) + ADD_TRAIT(linked_mob, trait, TRAIT_NIFSOFT) linked_mob.update_sight() @@ -35,10 +35,10 @@ hud.hide_from(linked_mob) if(hud_trait) - REMOVE_TRAIT(linked_mob, hud_trait, NIFSOFT_TRAIT) + REMOVE_TRAIT(linked_mob, hud_trait, TRAIT_NIFSOFT) for(var/trait in added_eyewear_traits) - REMOVE_TRAIT(linked_mob, trait, NIFSOFT_TRAIT) + REMOVE_TRAIT(linked_mob, trait, TRAIT_NIFSOFT) linked_mob.update_sight() return TRUE diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/hexacrocin.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/hexacrocin.dm index 5323a8ddc86..c55deb402fa 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/hexacrocin.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/hexacrocin.dm @@ -43,7 +43,7 @@ to_chat(exposed_mob, span_purple("Your libido is going haywire! It feels like speaking is much harder...")) exposed_mob.gain_trauma(/datum/brain_trauma/very_special/bimbo, TRAUMA_RESILIENCE_BASIC) - ADD_TRAIT(exposed_mob, TRAIT_BIMBO, LEWDCHEM_TRAIT) + ADD_TRAIT(exposed_mob, TRAIT_BIMBO, TRAIT_LEWDCHEM) /datum/chemical_reaction/hexacrocin results = list(/datum/reagent/drug/aphrodisiac/crocin/hexacrocin = 1) diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/pentacamphor.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/pentacamphor.dm index 2c2e6083c8c..88161435704 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/pentacamphor.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_chemistry/reagents/pentacamphor.dm @@ -23,11 +23,11 @@ if(HAS_TRAIT(exposed_mob, TRAIT_BIMBO)) exposed_mob.cure_trauma_type(/datum/brain_trauma/very_special/bimbo, TRAUMA_RESILIENCE_ABSOLUTE) to_chat(exposed_mob, span_notice("Your mind is free. Your thoughts are pure and innocent once more.")) - REMOVE_TRAIT(exposed_mob, TRAIT_BIMBO, LEWDCHEM_TRAIT) + REMOVE_TRAIT(exposed_mob, TRAIT_BIMBO, TRAIT_LEWDCHEM) return if(!HAS_TRAIT(exposed_mob, TRAIT_NEVERBONER)) to_chat(exposed_mob, span_notice("You feel like you'll never feel aroused again...")) - ADD_TRAIT(exposed_mob, TRAIT_NEVERBONER, LEWDCHEM_TRAIT) + ADD_TRAIT(exposed_mob, TRAIT_NEVERBONER, TRAIT_LEWDCHEM) /datum/chemical_reaction/pentacamphor results = list(/datum/reagent/drug/aphrodisiac/camphor/pentacamphor = 1) diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/strapon.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/strapon.dm index f499d5ba973..ec2fc7c0d9b 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/strapon.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/strapon.dm @@ -182,7 +182,7 @@ . = ..() update_icon_state() update_icon() - ADD_TRAIT(src, TRAIT_NODROP, STRAPON_TRAIT) + ADD_TRAIT(src, TRAIT_NODROP, TRAIT_STRAPON) /obj/item/strapon_dildo/update_icon_state() . = ..() diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_helpers/human.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_helpers/human.dm index c861b924d6f..d38656878af 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_helpers/human.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_helpers/human.dm @@ -371,7 +371,7 @@ return FALSE var/obj/item/clothing/sextoy/condom/condom = penis - return condom.condom_state == CONDOM_BROKEN + return condom.condom_state == TRAIT_CONDOM_BROKEN // For handling things that don't already have handcuff handlers. /mob/living/carbon/human/set_handcuffed(new_value) diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/condom.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/condom.dm index c6ca46a83ab..21c2023f198 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/condom.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/condom.dm @@ -76,13 +76,13 @@ condom_state = "dirty" if(prob(10)) //chance of condom to break on first time. name = "broken condom" - condom_state = CONDOM_BROKEN + condom_state = TRAIT_CONDOM_BROKEN update_icon_state() update_icon() if("dirty") name = "broken condom" - condom_state = CONDOM_BROKEN + condom_state = TRAIT_CONDOM_BROKEN update_icon_state() update_icon() diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/dildo.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/dildo.dm index a94c833cc9b..c7256be1610 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/dildo.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/dildo.dm @@ -430,7 +430,7 @@ GLOBAL_LIST_INIT(dildo_colors, list(//mostly neon colors /obj/item/clothing/sextoy/dildo/double_dildo_end/Initialize(mapload) . = ..() - ADD_TRAIT(src, TRAIT_NODROP, STRAPON_TRAIT) + ADD_TRAIT(src, TRAIT_NODROP, TRAIT_STRAPON) /obj/item/clothing/sextoy/dildo/double_dildo_end/update_icon_state() . = ..() diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_quirks.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_quirks.dm index 3473ce277da..d85e0db56d7 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_quirks.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_quirks.dm @@ -155,19 +155,19 @@ /datum/brain_trauma/very_special/bimbo/on_gain() owner.add_mood_event("bimbo", /datum/mood_event/bimbo) - if(!HAS_TRAIT_FROM(owner, TRAIT_BIMBO, LEWDCHEM_TRAIT)) - ADD_TRAIT(owner, TRAIT_BIMBO, LEWDCHEM_TRAIT) + if(!HAS_TRAIT_FROM(owner, TRAIT_BIMBO, TRAIT_LEWDCHEM)) + ADD_TRAIT(owner, TRAIT_BIMBO, TRAIT_LEWDCHEM) RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - if(!HAS_TRAIT_FROM(owner, TRAIT_MASOCHISM, APHRO_TRAIT)) - ADD_TRAIT(owner, TRAIT_MASOCHISM, APHRO_TRAIT) + if(!HAS_TRAIT_FROM(owner, TRAIT_MASOCHISM, TRAIT_APHRO)) + ADD_TRAIT(owner, TRAIT_MASOCHISM, TRAIT_APHRO) /datum/brain_trauma/very_special/bimbo/on_lose() owner.clear_mood_event("bimbo") - if(HAS_TRAIT_FROM(owner, TRAIT_BIMBO, LEWDCHEM_TRAIT)) - REMOVE_TRAIT(owner, TRAIT_BIMBO, LEWDCHEM_TRAIT) + if(HAS_TRAIT_FROM(owner, TRAIT_BIMBO, TRAIT_LEWDCHEM)) + REMOVE_TRAIT(owner, TRAIT_BIMBO, TRAIT_LEWDCHEM) UnregisterSignal(owner, COMSIG_MOB_SAY) - if(HAS_TRAIT_FROM(owner, TRAIT_MASOCHISM, APHRO_TRAIT)) - REMOVE_TRAIT(owner, TRAIT_MASOCHISM, APHRO_TRAIT) + if(HAS_TRAIT_FROM(owner, TRAIT_MASOCHISM, TRAIT_APHRO)) + REMOVE_TRAIT(owner, TRAIT_MASOCHISM, TRAIT_APHRO) //Mood boost /datum/mood_event/bimbo @@ -195,13 +195,13 @@ /datum/quirk/masochism/post_add() . = ..() var/mob/living/carbon/human/affected_human = quirk_holder - ADD_TRAIT(affected_human, TRAIT_MASOCHISM, LEWDQUIRK_TRAIT) + ADD_TRAIT(affected_human, TRAIT_MASOCHISM, TRAIT_LEWDQUIRK) affected_human.pain_limit = 60 /datum/quirk/masochism/remove() . = ..() var/mob/living/carbon/human/affected_human = quirk_holder - REMOVE_TRAIT(affected_human, TRAIT_MASOCHISM, LEWDQUIRK_TRAIT) + REMOVE_TRAIT(affected_human, TRAIT_MASOCHISM, TRAIT_LEWDQUIRK) affected_human.pain_limit = 0 /* @@ -219,11 +219,11 @@ /datum/brain_trauma/very_special/neverboner/on_gain() var/mob/living/carbon/human/affected_human = owner - ADD_TRAIT(affected_human, TRAIT_NEVERBONER, APHRO_TRAIT) + ADD_TRAIT(affected_human, TRAIT_NEVERBONER, TRAIT_APHRO) /datum/brain_trauma/very_special/neverboner/on_lose() var/mob/living/carbon/human/affected_human = owner - REMOVE_TRAIT(affected_human, TRAIT_NEVERBONER, APHRO_TRAIT) + REMOVE_TRAIT(affected_human, TRAIT_NEVERBONER, TRAIT_APHRO) /* * SADISM @@ -297,12 +297,12 @@ /datum/quirk/ropebunny/post_add() . = ..() var/mob/living/carbon/human/affected_mob = quirk_holder - ADD_TRAIT(affected_mob, TRAIT_ROPEBUNNY, LEWDQUIRK_TRAIT) + ADD_TRAIT(affected_mob, TRAIT_ROPEBUNNY, TRAIT_LEWDQUIRK) /datum/quirk/ropebunny/remove() . = ..() var/mob/living/carbon/human/affected_mob = quirk_holder - REMOVE_TRAIT(affected_mob, TRAIT_ROPEBUNNY, LEWDQUIRK_TRAIT) + REMOVE_TRAIT(affected_mob, TRAIT_ROPEBUNNY, TRAIT_LEWDQUIRK) //Rigger code /datum/quirk/rigger @@ -318,12 +318,12 @@ /datum/quirk/rigger/post_add() . = ..() var/mob/living/carbon/human/affected_mob = quirk_holder - ADD_TRAIT(affected_mob, TRAIT_RIGGER, LEWDQUIRK_TRAIT) + ADD_TRAIT(affected_mob, TRAIT_RIGGER, TRAIT_LEWDQUIRK) /datum/quirk/rigger/remove() . = ..() var/mob/living/carbon/human/affected_mob = quirk_holder - REMOVE_TRAIT(affected_mob, TRAIT_RIGGER, LEWDQUIRK_TRAIT) + REMOVE_TRAIT(affected_mob, TRAIT_RIGGER, TRAIT_LEWDQUIRK) /datum/mood_event/sadistic description = span_purple("Others' suffering makes me happier\n") diff --git a/modular_skyrat/modules/moretraitoritems/code/glue.dm b/modular_skyrat/modules/moretraitoritems/code/glue.dm index 75867bca825..01a1c9983c1 100644 --- a/modular_skyrat/modules/moretraitoritems/code/glue.dm +++ b/modular_skyrat/modules/moretraitoritems/code/glue.dm @@ -17,11 +17,11 @@ return if(istype(target, /obj/item)) var/obj/item/I = target - if(HAS_TRAIT_FROM(I, TRAIT_NODROP, GLUED_ITEM_TRAIT)) + if(HAS_TRAIT_FROM(I, TRAIT_NODROP, TRAIT_GLUED_ITEM)) to_chat(user, span_warning("[I] is already sticky!")) return uses -= 1 - ADD_TRAIT(I, TRAIT_NODROP, GLUED_ITEM_TRAIT) + ADD_TRAIT(I, TRAIT_NODROP, TRAIT_GLUED_ITEM) I.desc += " It looks sticky." to_chat(user, span_notice("You smear the [I] with glue, making it incredibly sticky!")) if(uses == 0) diff --git a/modular_skyrat/modules/primitive_production/code/glassblowing.dm b/modular_skyrat/modules/primitive_production/code/glassblowing.dm index a887b063dab..3898b4f25de 100644 --- a/modular_skyrat/modules/primitive_production/code/glassblowing.dm +++ b/modular_skyrat/modules/primitive_production/code/glassblowing.dm @@ -392,7 +392,7 @@ to_chat(user, span_notice("You begin to [step_id] [src].")) if(!do_after(user, actioning_speed, target = src)) fail_message("You interrupt an action!", user) - REMOVE_TRAIT(tool_to_use, TRAIT_CURRENTLY_GLASSBLOWING, GLASSBLOWING_TRAIT) + REMOVE_TRAIT(tool_to_use, TRAIT_CURRENTLY_GLASSBLOWING, TRAIT_GLASSBLOWING) return FALSE if(glass.steps_remaining) @@ -402,7 +402,7 @@ if(check_finished(glass)) glass.is_finished = TRUE - REMOVE_TRAIT(tool_to_use, TRAIT_CURRENTLY_GLASSBLOWING, GLASSBLOWING_TRAIT) + REMOVE_TRAIT(tool_to_use, TRAIT_CURRENTLY_GLASSBLOWING, TRAIT_GLASSBLOWING) in_use = FALSE to_chat(user, span_notice("You finish trying to [step_id] [src].")) @@ -447,7 +447,7 @@ balloon_alert(user, "already glassblowing!") return FALSE - ADD_TRAIT(user, TRAIT_CURRENTLY_GLASSBLOWING, GLASSBLOWING_TRAIT) + ADD_TRAIT(user, TRAIT_CURRENTLY_GLASSBLOWING, TRAIT_GLASSBLOWING) return user var/obj/item/glassblowing/used_tool @@ -467,7 +467,7 @@ balloon_alert(user, "already in use!") return FALSE - ADD_TRAIT(used_tool, TRAIT_CURRENTLY_GLASSBLOWING, GLASSBLOWING_TRAIT) + ADD_TRAIT(used_tool, TRAIT_CURRENTLY_GLASSBLOWING, TRAIT_GLASSBLOWING) return used_tool /** diff --git a/modular_skyrat/modules/synths/code/reagents/reagents.dm b/modular_skyrat/modules/synths/code/reagents/reagents.dm index ef48f0bf947..54be7648ada 100644 --- a/modular_skyrat/modules/synths/code/reagents/reagents.dm +++ b/modular_skyrat/modules/synths/code/reagents/reagents.dm @@ -98,10 +98,10 @@ /datum/reagent/medicine/taste_suppressor/on_mob_metabolize(mob/living/affected_mob) . = ..() - ADD_TRAIT(affected_mob, TRAIT_AGEUSIA, REAGENT_TRAIT) + ADD_TRAIT(affected_mob, TRAIT_AGEUSIA, TRAIT_REAGENT) /datum/reagent/medicine/taste_suppressor/on_mob_end_metabolize(mob/living/affected_mob) . = ..() - REMOVE_TRAIT(affected_mob, TRAIT_AGEUSIA, REAGENT_TRAIT) + REMOVE_TRAIT(affected_mob, TRAIT_AGEUSIA, TRAIT_REAGENT) diff --git a/tgstation.dme b/tgstation.dme index 221b05cffe8..f72f1b417e2 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -470,6 +470,7 @@ #include "code\__DEFINES\~skyrat_defines\_HELPERS\atmos_mapping_helpers.dm" #include "code\__DEFINES\~skyrat_defines\_HELPERS\lighting.dm" #include "code\__DEFINES\~skyrat_defines\_HELPERS\offset_index.dm" +#include "code\__DEFINES\~skyrat_defines\traits\declarations.dm" #include "code\__HELPERS\_auxtools_api.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_planes.dm" diff --git a/tools/trait_validity/check.py b/tools/trait_validity/check.py index 10da9f34a15..1f83559d4e9 100644 --- a/tools/trait_validity/check.py +++ b/tools/trait_validity/check.py @@ -14,6 +14,7 @@ def red(text): on_github = os.getenv("GITHUB_ACTIONS") == "true" defines_file = "code/__DEFINES/traits/declarations.dm" +skyrat_defines_file = "code/__DEFINES/~skyrat_defines/traits/declarations.dm" # SKYRAT EDIT ADDITION globalvars_file = "code/_globalvars/traits/_traits.dm" how_to_fix_message = f"Please ensure that all traits in the {defines_file} file are added in the {globalvars_file} file." @@ -30,6 +31,12 @@ def post_error(define_name): print(red(f"Could not find the defines file '{defines_file}'!")) sys.exit(1) +# SKYRAT EDIT ADDITION START +if not os.path.isfile(skyrat_defines_file): + print(red(f"Could not find the skyrat defines file '{skyrat_defines_file}'!")) + sys.exit(1) +# SKYRAT EDIT ADDITION END + if not os.path.isfile(globalvars_file): print(red(f"Could not find the globalvars file '{globalvars_file}'!")) sys.exit(1) @@ -62,6 +69,33 @@ def post_error(define_name): number_of_defines += 1 defines_to_search_for.append(match.group(2)) +# SKYRAT EDIT ADDITION START +scannable_lines = [] +with open(skyrat_defines_file, 'r') as file: + reading = False + + for line in file: + line = line.strip() + + if line == "// BEGIN TRAIT DEFINES": + reading = True + continue + elif line == "// END TRAIT DEFINES": + break + elif not reading: + continue + + scannable_lines.append(line) + +for potential_define in scannable_lines: + match = define_regex.match(potential_define) + if not match: + continue + + number_of_defines += 1 + defines_to_search_for.append(match.group(2)) +# SKYRAT EDIT ADDITION END + if number_of_defines == 0: print(red("No defines found! This is likely an error.")) sys.exit(1)