From da12a984d66891f08988675005b446e83e8c7630 Mon Sep 17 00:00:00 2001
From: Bloop <13398309+vinylspiders@users.noreply.github.com>
Date: Wed, 22 Nov 2023 15:05:41 -0500
Subject: [PATCH] Adds our traits define file to the linter steps (#25134)
* Adds our traits define file to the linter steps
* Update check.py
* Adds our traits define file to the linter steps
* Update check.py
* Update ci_suite.yml
* Update declarations.dm
* Modular traits
* Update _traits.dm
* Update _traits.dm
* Oops
* Yes we do
* Update sources.dm
* Update other_reagents.dm
* oOPS
* Update for changeling sting pr
* Update for changeling sting pr
* Update declarations.dm
* Oopsies
* Add to admin tooling
* Update _traits.dm
* Apply suggestions from code review
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update code/__DEFINES/~skyrat_defines/traits/declarations.dm
---------
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
---
.github/workflows/ci_suite.yml | 4 +
code/__DEFINES/~skyrat_defines/DNA.dm | 4 -
.../__DEFINES/~skyrat_defines/lewd_defines.dm | 17 --
.../~skyrat_defines/robot_defines.dm | 14 -
code/__DEFINES/~skyrat_defines/traits.dm | 96 -------
.../~skyrat_defines/traits/declarations.dm | 147 ++++++++++
code/_globalvars/traits/_traits.dm | 77 +++++-
code/_globalvars/traits/admin_tooling.dm | 70 +++++
.../objects/items/robot/robot_upgrades.dm | 2 +-
.../mob/living/carbon/human/inventory.dm | 4 +-
.../modules/mob/living/silicon/robot/robot.dm | 2 +-
.../mob/living/silicon/robot/robot_model.dm | 4 +-
.../code/datums/components/tippable.dm | 4 +-
.../master_files/code/datums/traits/good.dm | 2 +-
.../code/datums/traits/neutral.dm | 2 -
.../preferences/middleware/languages.dm | 4 +-
modular_skyrat/modules/borgs/code/robot.dm | 6 +-
.../modules/borgs/code/robot_items.dm | 2 +-
.../modules/borgs/code/robot_model.dm | 258 +++++++++---------
.../modules/borgs/code/robot_upgrade.dm | 4 +-
.../modules/borgs/code/update_icons.dm | 6 +-
.../ghostcafe/code/ghost_role_spawners.dm | 14 +-
.../modules/ghostcafe/code/ghostcafeturf.dm | 2 +-
.../modular_implants/code/nif_persistence.dm | 4 +-
.../modular_implants/code/nifsofts/huds.dm | 6 +-
.../lewd_chemistry/reagents/hexacrocin.dm | 2 +-
.../lewd_chemistry/reagents/pentacamphor.dm | 4 +-
.../lewd_items/code/lewd_clothing/strapon.dm | 2 +-
.../lewd_items/code/lewd_helpers/human.dm | 2 +-
.../lewd_items/code/lewd_items/condom.dm | 4 +-
.../lewd_items/code/lewd_items/dildo.dm | 2 +-
.../lewd_items/code/lewd_quirks.dm | 32 +--
.../modules/moretraitoritems/code/glue.dm | 4 +-
.../primitive_production/code/glassblowing.dm | 8 +-
.../modules/synths/code/reagents/reagents.dm | 4 +-
tgstation.dme | 1 +
tools/trait_validity/check.py | 34 +++
37 files changed, 525 insertions(+), 329 deletions(-)
create mode 100644 code/__DEFINES/~skyrat_defines/traits/declarations.dm
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)