[MIRROR] [READY] Taursuits and Tail socks [IDB IGNORE] (#12959)
Co-authored-by: Poojawa <Poojawa@users.noreply.github.com> Co-authored-by: Cameron Lennox <killer65311@gmail.com>
@@ -131,3 +131,28 @@
|
||||
**File:** `/sound/talksounds/looc_sound.ogg`<br>
|
||||
**Creator:** VerySoft<br>
|
||||
**License:** [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)<br>
|
||||
<br>
|
||||
**Files**:icons\inventory\suit\taursuits_wolf,<br>
|
||||
icons\inventory\suit\taursuits_fox,<br>
|
||||
icons\inventory\suit\taursuits_zorgoia,<br>
|
||||
icons\inventory\suit\taursuits_redpanda,<br>
|
||||
icons\inventory\suit\taursuits_lizard,<br>
|
||||
icons\inventory\suit\taursuits_drake,<br>
|
||||
icons\inventory\suit\taursuits_otie,<br>
|
||||
icons\inventory\suit\taursuits_noodle,<br>
|
||||
icons\inventory\suit\taursuits_horse,<br>
|
||||
icons\inventory\suit\taursuits_cow,<br>
|
||||
icons\inventory\suit\taursuits_skunk,<br>
|
||||
icons\inventory\suit\taursuits_sergal,<br>
|
||||
icons\inventory\suit\taursuits_rat,<br>
|
||||
icons\inventory\suit\taursuits_deer,<br>
|
||||
icons\inventory\suit\taursuits_feline<br>
|
||||
**Folder**:tools\TaurClothingCutter<br>
|
||||
**Notes:** All sprites other than the waist-up humanoid torso portions are fully created by Poojawa and as such must be credited if ported.<br>
|
||||
**File**: icons/obj/guncabinet.dmi<br>
|
||||
**Notes:** All sprites not appended with 'old' Are fully created by Poojawa.<br>
|
||||
**File**: icons/obj/machines/foodsynthesizer.dmi
|
||||
**Notes:** Original Sprite taken from Deep Space 13. Portable Synth, Screen Animations, East/West, Panel layering, and canisters, Are fully created by Poojawa.<br>
|
||||
**Creator:** Poojawa<br>
|
||||
**License:** [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)<br>
|
||||
<br>
|
||||
@@ -1,191 +1,191 @@
|
||||
// Default species get default sprites, VR species get VR sprites
|
||||
#define ALL_SPRITE_SHEETS_SUIT_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/suit/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/suit/mob_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/suit/mob_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/suit/mob_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/suit/mob_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/suit/mob_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/suit/mob_vulpkanin.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_ALTEVIAN = 'icons/inventory/suit/mob_altevian.dmi',\
|
||||
SPECIES_XENOMORPH_HYBRID = 'modular_chomp/icons/inventory/suit/mob_xenomorph_hybrid.dmi') //CHOMPEdit - Adding Xenohybrid
|
||||
SPECIES_XENOMORPH_HYBRID = 'icons/inventory/suit/mob.dmi') //CHOMPEdit - Adding Xenohybrid
|
||||
#define VR_SPECIES_SPRITE_SHEETS_HEAD_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/head/mob_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/head/mob_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/head/mob_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/head/mob_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/head/mob_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/mob_vulpkanin.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_ALTEVIAN = 'icons/inventory/head/mob_altevian.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_HANDS_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/hands/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/mob_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/hands/mob_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/hands/mob_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/hands/mob_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/hands/mob_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/hands/mob_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/hands/mob_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/mob_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/mob_vulpkanin.dmi')
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/mob.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_FEET_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/feet/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/mob_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/feet/mob_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/feet/mob_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/feet/mob_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/feet/mob_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/feet/mob_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/feet/mob_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/feet/mob_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/feet/mob_vulpkanin.dmi')
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/feet/mob.dmi')
|
||||
|
||||
#define SPECIES_SPRITE_SHEETS_SUIT_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/suit/item_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/suit/item_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/suit/item_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/suit/item_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/suit/item_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/suit/item_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/suit/item_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/suit/item_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/suit/item_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/item_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/suit/item_vulpkanin.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_ALTEVIAN = 'icons/inventory/suit/item_altevian.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_HEAD_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/item_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/item_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/item_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/head/item_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/head/item_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/head/item_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/head/item_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/head/item_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/head/item_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/item_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/item_vulpkanin.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_ALTEVIAN = 'icons/inventory/head/item_altevian.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_HANDS_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/hands/item_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/item_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/item_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/hands/item_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/hands/item_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/hands/item_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/hands/item_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/hands/item_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/hands/item_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/item_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/item_vulpkanin.dmi')
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/item.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_FEET_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/feet/item_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/item_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/item_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/feet/item_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/feet/item_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/feet/item_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/feet/item_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/feet/item_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/feet/item_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/feet/item_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/feet/item_vulpkanin.dmi')
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/feet/item.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_HEAD_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/head/mob_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/head/mob_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/head/mob_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/head/mob_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/head/mob_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/mob_vulpkanin.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_ALTEVIAN = 'icons/inventory/head/mob_altevian.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_HANDS_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/hands/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/mob_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/hands/mob_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/hands/mob_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/hands/mob_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/hands/mob_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/hands/mob_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/hands/mob_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/mob_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/mob_vulpkanin.dmi')
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/mob.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_FEET_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/feet/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/mob_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/feet/mob_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/feet/mob_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/feet/mob_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/feet/mob_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/feet/mob_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/feet/mob_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/feet/mob_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/feet/mob_vulpkanin.dmi')
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/feet/mob.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_HEAD_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/item_unathi.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/item_unathi.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/item_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/head/item_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/head/item_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/head/item_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/head/item_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/head/item_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/head/item_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/item_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/item_vulpkanin.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_ALTEVIAN = 'icons/inventory/head/item_altevian.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_HANDS_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/hands/item_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/item_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/item_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/hands/item_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/hands/item_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/hands/item_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/hands/item_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/hands/item_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/hands/item_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/item_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/item_vulpkanin.dmi')
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/item.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_FEET_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/feet/item_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/item_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/item_unathi.dmi',\
|
||||
SPECIES_TAJARAN = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_TESHARI = 'icons/inventory/feet/item_teshari.dmi',\
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/feet/item_unathi.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/feet/item_akula.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/feet/item_sergal.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/feet/item_sergal.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/feet/item_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/feet/item_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/feet/item_vulpkanin.dmi')
|
||||
SPECIES_XENOHYBRID = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_AKULA = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_SERGAL = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_NEVREAN = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_VULPKANIN = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/feet/item.dmi')
|
||||
|
||||
@@ -45,6 +45,10 @@
|
||||
#define TARGETED_LAYER 41 //'Aimed at' overlay layer
|
||||
#define TOTAL_LAYERS 41 // <---- KEEP THIS UPDATED, should always equal the highest number here, used to initialize a list.
|
||||
|
||||
/// Tail layering shortcuts
|
||||
#define TAUR_LAYERING BODY_LAYER+TAIL_UPPER_LAYER+1
|
||||
#define LOWER_TAIL_DIRS list(SOUTH, EAST, WEST)
|
||||
#define TAIL_LAYER_CLEARING list(TAIL_UPPER_LAYER, TAIL_UPPER_LAYER_HIGH, TAIL_UPPER_LAYER_LOW, TAIL_LOWER_LAYER)
|
||||
|
||||
//These two are only used for gargoyles currently
|
||||
#define HUMAN_BODY_LAYERS list(MUTATIONS_LAYER, TAIL_LOWER_LAYER, WING_LOWER_LAYER, BODYPARTS_LAYER, SKIN_LAYER, BLOOD_LAYER, MOB_DAM_LAYER, TAIL_UPPER_LAYER, HAIR_LAYER, HAIR_ACCESSORY_LAYER, EYES_LAYER, WING_LAYER, VORE_BELLY_LAYER, VORE_TAIL_LAYER, TAIL_UPPER_LAYER_HIGH, TAIL_UPPER_LAYER_LOW)
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
slowdown = 0.5
|
||||
armor = list(melee = 60, bullet = 50, laser = 30, energy = 80, bomb = 30, bio = 30, rad = 30)
|
||||
siemens_coefficient = 0
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
|
||||
/obj/item/clothing/suit/space/cult/cultify()
|
||||
return
|
||||
|
||||
@@ -42,15 +42,14 @@
|
||||
src.attach_accessory(null, tie)
|
||||
set_clothing_index()
|
||||
|
||||
//VOREStation edit start
|
||||
if(polychromic)
|
||||
verbs |= /obj/item/clothing/proc/change_color
|
||||
//VOREStation edit start
|
||||
|
||||
/obj/item/clothing/update_icon()
|
||||
cut_overlays() //This removes all the overlays on the sprite and then goes down a checklist adding them as required.
|
||||
if(forensic_data?.has_blooddna())
|
||||
add_blood()
|
||||
//TODO: strip out redundant icons like labcoats with an overlay badge, security uniforms with the trim, winter coats, etc etc.
|
||||
. = ..()
|
||||
|
||||
/obj/item/clothing/equipped(mob/user,slot)
|
||||
@@ -995,14 +994,26 @@
|
||||
. = ..()
|
||||
if(has_hood_sprite) //If we have a special hood_sprite, great, let's use it! Only used by /obj/item/clothing/suit/storage/hooded atm.
|
||||
icon_state = "[toggleicon][hood_up ? "_t" : ""]"
|
||||
update_clothing_icon()
|
||||
|
||||
/obj/item/clothing/suit/equipped(mob/user, slot)
|
||||
//Let's make sure we're extra aggressive with taur settings.
|
||||
icon_override = initial(icon_override)
|
||||
taurized = FALSE
|
||||
if(slot != slot_wear_suit)
|
||||
RemoveHood()
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/Hoomie = user
|
||||
var/taurtail = istaurtail(Hoomie.tail_style)
|
||||
if(taurtail)
|
||||
taurize(Hoomie, taurtail)
|
||||
|
||||
update_clothing_icon()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/dropped(mob/user, equipping, slot)
|
||||
RemoveHood()
|
||||
update_clothing_icon()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/ui_action_click(mob/user, actiontype)
|
||||
@@ -1025,9 +1036,9 @@
|
||||
if(hood)
|
||||
hood.canremove = TRUE // This shouldn't matter anyways but just incase.
|
||||
if(ishuman(hood.loc))
|
||||
var/mob/living/carbon/H = hood.loc
|
||||
H.unEquip(hood, 1)
|
||||
H.update_inv_wear_suit()
|
||||
var/mob/living/carbon/Carbmob = hood.loc
|
||||
Carbmob.unEquip(hood, 1)
|
||||
Carbmob.update_inv_wear_suit()
|
||||
hood.forceMove(src)
|
||||
|
||||
/obj/item/clothing/suit/proc/ToggleHood()
|
||||
@@ -1037,69 +1048,64 @@
|
||||
RemoveHood()
|
||||
return
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
if(H.wear_suit != src)
|
||||
to_chat(H, span_warning("You must be wearing [src] to put up the hood!"))
|
||||
var/mob/living/carbon/human/Hoomie = src.loc
|
||||
if(Hoomie.wear_suit != src)
|
||||
to_chat(Hoomie, span_warning("You must be wearing [src] to put up the hood!"))
|
||||
return
|
||||
if(H.head)
|
||||
to_chat(H, span_warning("You're already wearing something on your head!"))
|
||||
if(Hoomie.head)
|
||||
to_chat(Hoomie, span_warning("You're already wearing something on your head!"))
|
||||
return
|
||||
else
|
||||
if(color != hood.color)
|
||||
hood.color = color
|
||||
H.equip_to_slot_if_possible(hood,slot_head,0,0,1)
|
||||
Hoomie.equip_to_slot_if_possible(hood,slot_head,0,0,1)
|
||||
hood_up = TRUE
|
||||
hood.canremove = FALSE
|
||||
update_icon()
|
||||
H.update_inv_wear_suit()
|
||||
Hoomie.update_inv_wear_suit()
|
||||
///Hood stuff end.
|
||||
|
||||
/obj/item/clothing/suit/update_clothing_icon()
|
||||
if (ismob(src.loc))
|
||||
var/mob/M = src.loc
|
||||
M.update_inv_wear_suit()
|
||||
|
||||
/obj/item/clothing/suit/equipped(mob/user, slot)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/taurtail = istaurtail(H.tail_style)
|
||||
if((taurized && !taurtail) || (!taurized && taurtail))
|
||||
taurize(user, taurtail)
|
||||
|
||||
return ..()
|
||||
if (ismob(loc))
|
||||
var/mob/Mobbie = loc
|
||||
Mobbie.update_inv_wear_suit()
|
||||
|
||||
///Establishes Icon overrides for taur bodies
|
||||
/obj/item/clothing/suit/proc/taurize(mob/living/carbon/human/taur, has_taur_tail = FALSE)
|
||||
if(has_taur_tail)
|
||||
var/datum/sprite_accessory/tail/taur/taurtail = taur.tail_style
|
||||
if(taurtail.suit_sprites && (icon_exists(taurtail.suit_sprites, get_worn_icon_state(slot_wear_suit_str))))
|
||||
icon_override = taurtail.suit_sprites
|
||||
taurized = TRUE
|
||||
// means that if a taur puts on an already taurized suit without a taur sprite
|
||||
// for their taur type, but the previous taur type had a sprite, it stays
|
||||
// taurized and they end up with that taur style which is funny
|
||||
else
|
||||
taurized = FALSE
|
||||
/// We've already confirmed that we have a taur tail during equipped, this is just makes sure we get the correct icon override.
|
||||
if(!has_taur_tail)
|
||||
return
|
||||
|
||||
if(!taurized)
|
||||
icon_override = initial(icon_override)
|
||||
taurized = FALSE
|
||||
taurized = TRUE
|
||||
|
||||
// Taur suits need to be shifted so its centered on their taur half.
|
||||
/obj/item/clothing/suit/make_worn_icon(body_type,slot_name,inhands,default_icon,default_layer = 0,icon/clip_mask)
|
||||
if(showtaurbutts) //We don't want the override icons if we're being asked to show that booty
|
||||
return
|
||||
|
||||
// if we're not showing butts, then let's apply the proper overrides
|
||||
var/datum/sprite_accessory/tail/taur/taurtail = taur.tail_style
|
||||
if(taurtail?.suit_sprites && icon_exists(taurtail.suit_sprites, get_worn_icon_state(slot_wear_suit_str)))
|
||||
icon_override = taurtail.suit_sprites
|
||||
|
||||
// Taur suits need to be shifted so it's centered on their taur half.
|
||||
/obj/item/clothing/suit/make_worn_icon(body_type, slot_name, inhands, default_icon, default_layer = 0, icon/clip_mask)
|
||||
var/image/standing = ..()
|
||||
if(taurized) //Special snowflake var on suits
|
||||
if(!standing)
|
||||
return null
|
||||
|
||||
// Only apply the -16 offset when taurized AND showtaurbutts is FALSE
|
||||
if(taurized && !showtaurbutts && icon_override)
|
||||
standing.pixel_x = -16
|
||||
standing.layer = BODY_LAYER + TAIL_UPPER_LAYER + 1
|
||||
standing.layer = TAUR_LAYERING
|
||||
// but if we don't have an icon_override, we already have our offsets, set.
|
||||
return standing
|
||||
|
||||
/obj/item/clothing/suit/apply_accessories(image/standing)
|
||||
if(LAZYLEN(accessories) && taurized)
|
||||
for(var/obj/item/clothing/accessory/A in accessories)
|
||||
var/image/I = new(A.get_mob_overlay())
|
||||
I.pixel_x = 16 //Opposite of the pixel_x on the suit (-16) from taurization to cancel it out and puts the accessory in the correct place on the body.
|
||||
standing.add_overlay(I)
|
||||
else
|
||||
return ..()
|
||||
. = ..()
|
||||
|
||||
if(LAZYLEN(accessories) && taurized && !showtaurbutts && standing)
|
||||
// account for the offset of our standing image
|
||||
for(var/image/I in standing.overlays)
|
||||
I.pixel_x += 16
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
@@ -1170,6 +1176,8 @@
|
||||
var/icon/rolled_down_sleeves_icon = 'icons/inventory/uniform/mob_sleeves_rolled.dmi'
|
||||
|
||||
update_icon_define_digi = "icons/inventory/uniform/mob_digi.dmi"
|
||||
/// hehe, soon.
|
||||
var/taurized = FALSE
|
||||
|
||||
/obj/item/clothing/under/attack_hand(mob/user)
|
||||
if(LAZYLEN(accessories))
|
||||
|
||||
@@ -24,6 +24,11 @@
|
||||
if(forensic_data?.has_blooddna() && blood_sprite_state && ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
blood_sprite_state = "[blood_overlay_type]blood"
|
||||
var/image/bloodsies = image(icon = H.species.get_blood_mask(H), icon_state = blood_sprite_state)
|
||||
bloodsies.color = blood_color
|
||||
var/datum/sprite_accessory/tail/taur/taurtail = H.tail_style
|
||||
var/image/bloodsies
|
||||
if(taurized && taurtail.suit_sprites)
|
||||
bloodsies = image(icon = taurtail.suit_sprites, icon_state = blood_sprite_state)
|
||||
else
|
||||
bloodsies = image(icon = H.species.get_blood_mask(H), icon_state = blood_sprite_state)
|
||||
bloodsies.color = blood_color
|
||||
standing.add_overlay(bloodsies)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SECURITY)
|
||||
slowdown = 1.5
|
||||
armor = list(melee = 65, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
min_pressure_protection = 0
|
||||
max_pressure_protection = 2 * ONE_ATMOSPHERE
|
||||
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
|
||||
@@ -87,7 +87,7 @@
|
||||
slowdown = 0
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
siemens_coefficient = 0.9
|
||||
flags_inv = HIDETAIL|HIDEHOLSTER
|
||||
flags_inv = HIDEHOLSTER
|
||||
body_parts_covered = UPPER_TORSO|ARMS
|
||||
|
||||
//Orange emergency space suit
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
body_parts_covered = CHEST|LEGS|ARMS
|
||||
heat_protection = CHEST|LEGS|ARMS
|
||||
cold_protection = CHEST|LEGS|ARMS
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAIL
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
item_flags = THICKMATERIAL | AIRTIGHT
|
||||
slowdown = 0
|
||||
//will reach 10 breach damage after 25 laser carbine blasts, 3 revolver hits, or ~1 PTR hit. Completely immune to smg or sts hits.
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS)
|
||||
slowdown = 1 // CHOMPedit: 1.5 to 1. More sane movespeed delay. Voidsuits are still faster.
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
cold_protection = CHEST|LEGS|FEET|ARMS|HANDS
|
||||
heat_protection = CHEST|LEGS|FEET|ARMS|HANDS
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
|
||||
@@ -77,7 +77,8 @@
|
||||
|
||||
/obj/item/clothing/suit/space/void/equipped(mob/M)
|
||||
..()
|
||||
|
||||
/// for sealable void suits using the rig sprites like Engineering
|
||||
icon_state = "[initial(icon_state)]"
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(!istype(H)) return
|
||||
@@ -94,6 +95,8 @@
|
||||
to_chat(M, "You are unable to deploy your suit's helmet as \the [H.head] is in the way.")
|
||||
else if (H.equip_to_slot_if_possible(hood, slot_head))
|
||||
to_chat(M, "Your suit's helmet deploys with a hiss.")
|
||||
if(sealable)
|
||||
icon_state = "[initial(icon_state)]_sealed"
|
||||
hood.canremove = FALSE
|
||||
|
||||
if(cooler)
|
||||
@@ -181,6 +184,8 @@
|
||||
H.drop_from_inventory(hood)
|
||||
hood.forceMove(src)
|
||||
playsound(src.loc, 'sound/machines/click2.ogg', 75, 1)
|
||||
if(sealable)
|
||||
icon_state = "[initial(icon_state)]"
|
||||
else
|
||||
if(H.head)
|
||||
to_chat(H, span_danger("You cannot deploy your helmet while wearing \the [H.head]."))
|
||||
@@ -189,6 +194,8 @@
|
||||
hood.canremove = FALSE
|
||||
to_chat(H, span_info("You deploy your suit helmet, sealing you off from the world."))
|
||||
playsound(src.loc, 'sound/machines/click2.ogg', 75, 1)
|
||||
if(sealable)
|
||||
icon_state = "[initial(icon_state)]_sealed"
|
||||
|
||||
/obj/item/clothing/suit/space/void/click_alt(mob/living/user)
|
||||
eject_tank()
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "A traditional Zhan-Khazan garment."
|
||||
icon_state = "zhan_furs"
|
||||
body_parts_covered = CHEST|LEGS|FEET|ARMS
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
drop_sound = 'sound/items/drop/leather.ogg'
|
||||
pickup_sound = 'sound/items/pickup/leather.ogg'
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
name = "wolf-taur armor vest"
|
||||
desc = "An armored vest that protects against some damage. It appears to be created for a wolf-taur."
|
||||
species_restricted = null //Species restricted since all it cares about is a taur half
|
||||
icon = 'icons/mob/taursuits_wolf.dmi'
|
||||
icon = 'icons/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon_state = "wolf_item"
|
||||
item_state = "heavy_wolf_armor"
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
slowdown = 1.0
|
||||
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
siemens_coefficient = 0.9
|
||||
flags = PHORONGUARD
|
||||
item_flags = THICKMATERIAL
|
||||
@@ -41,7 +41,7 @@
|
||||
/obj/item/clothing/suit/bio_suit/general
|
||||
icon_state = "bio_general"
|
||||
item_state_slots = list(slot_r_hand_str = "bio", slot_l_hand_str = "bio")
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
|
||||
//Virology biosuit, green stripe
|
||||
/obj/item/clothing/head/bio_hood/virology
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/virology
|
||||
icon_state = "bio_virology"
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
|
||||
//Security biosuit, grey with red stripe across the chest
|
||||
/obj/item/clothing/head/bio_hood/security
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/security
|
||||
icon_state = "bio_security"
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
|
||||
//Janitor's biosuit, grey with purple arms
|
||||
/obj/item/clothing/head/bio_hood/janitor
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/janitor
|
||||
icon_state = "bio_janitor"
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
|
||||
//Scientist's biosuit, white with a pink-ish hue
|
||||
/obj/item/clothing/head/bio_hood/scientist
|
||||
@@ -73,12 +73,12 @@
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/scientist
|
||||
icon_state = "bio_scientist"
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
|
||||
//CMO's biosuit, blue stripe
|
||||
/obj/item/clothing/suit/bio_suit/cmo
|
||||
icon_state = "bio_cmo"
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
|
||||
/obj/item/clothing/head/bio_hood/cmo
|
||||
icon_state = "bio_cmo"
|
||||
@@ -89,4 +89,4 @@
|
||||
desc = "It protected doctors from the Black Death, back then. You bet your arse it's gonna help you against viruses."
|
||||
icon_state = "plaguedoctor"
|
||||
item_state_slots = list(slot_r_hand_str = "bio", slot_l_hand_str = "bio")
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
desc = "A plastic replica of a mercenary combat space suit, you'll look just like a real bloodthirsty mercenary in this! This is a toy, it is not made for use in space!"
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
body_parts_covered = CHEST|ARMS|HANDS|LEGS|FEET
|
||||
|
||||
/obj/item/clothing/suit/hastur
|
||||
@@ -258,7 +258,7 @@
|
||||
desc = "A suit that completely restrains the wearer."
|
||||
icon_state = "straight_jacket"
|
||||
body_parts_covered = CHEST|LEGS|FEET|ARMS|HANDS
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
|
||||
var/resist_time = 4800 // Eight minutes.
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
/obj/item/clothing/suit/drake_cloak
|
||||
name = "drake cloak"
|
||||
desc = "A simple cloak for drake-taurs."
|
||||
icon = 'icons/mob/taursuits_drake.dmi'
|
||||
icon = 'icons/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon_state = "cloak"
|
||||
item_state_slots = list(slot_r_hand_str = "capjacket", slot_l_hand_str = "capjacket")
|
||||
body_parts_covered = UPPER_TORSO|ARMS
|
||||
@@ -41,7 +41,7 @@
|
||||
/obj/item/clothing/suit/barding
|
||||
name = DEVELOPER_WARNING_NAME
|
||||
description_info = "You need to be a horsy to wear that."
|
||||
icon = 'icons/mob/taursuits_horse.dmi'
|
||||
icon = 'icons/inventory/suit/taursuits_snowflake.dmi'
|
||||
item_state_slots = list(slot_r_hand_str = "capjacket", slot_l_hand_str = "capjacket")
|
||||
body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS
|
||||
pixel_x = -16
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
/obj/item/clothing/suit/taur
|
||||
name = DEVELOPER_WARNING_NAME
|
||||
icon = 'icons/mob/taursuits_horse.dmi'
|
||||
icon = 'icons/inventory/suit/taursuits_snowflake.dmi'
|
||||
body_parts_covered = CHEST
|
||||
pixel_x = -16
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
body_parts_covered = CHEST|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, /obj/item/extinguisher)
|
||||
slowdown = 1.0
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
item_flags = 0
|
||||
heat_protection = CHEST|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
@@ -63,7 +63,7 @@
|
||||
permeability_coefficient = 0.01
|
||||
slowdown = 2
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
heat_protection = CHEST|LEGS|FEET|ARMS|HANDS
|
||||
cold_protection = CHEST|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = ARMOR_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
@@ -107,7 +107,7 @@
|
||||
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, /obj/item/clothing/head/radiation)
|
||||
slowdown = 1.5
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
item_flags = THICKMATERIAL
|
||||
|
||||
/obj/item/clothing/suit/radiation/Initialize(mapload)
|
||||
|
||||
@@ -0,0 +1,284 @@
|
||||
//This file contains the vars used to give taur and tail socks a baseline color, using their base sprite, upon the various suits and space suits that require them
|
||||
// I've tried to reasonably color match to the vibes of the overall sprite just to be sure. - Pooj
|
||||
// Rig Suits deploy a clothing path'd suit, so we just need to keep that in mind for sealed/unsealed related applications.
|
||||
// These are all stored seperately because I don't really want to edit all the clothing paths myself and change a bunch of files. plays nicer with downstreams too.alist
|
||||
|
||||
/obj/item/clothing/suit
|
||||
///does the suit require a full-envelop suit sock? Spacesuits, bio suits, rad suits, etc.
|
||||
var/requires_tailsock = FALSE
|
||||
/// what color is the tailsock going to be? Defaults to a nice, dark grey that usually matches everything.
|
||||
var/tailsock_color = "#1F1F1F"
|
||||
/// toggle tailsock options
|
||||
var/tailsock_toggle = TRUE
|
||||
/// toggle taur extending for the sprites, for people who want their butts to be shown off, default false
|
||||
var/showtaurbutts = FALSE
|
||||
|
||||
/obj/item/clothing/suit/space
|
||||
/// unrelated to tailsocks directly, buuuuuut, taur suits have dedicated sealed/unsealed variants and that should be applied, too.
|
||||
var/sealable = FALSE
|
||||
requires_tailsock = TRUE
|
||||
|
||||
///This is purely for player preference.
|
||||
/obj/item/clothing/suit/verb/toggletailsock()
|
||||
set name = "Toggle Tail Sock"
|
||||
set category = "Object"
|
||||
set desc = "Toggle the tail sock on your suit."
|
||||
toggle_tailsock(usr)
|
||||
|
||||
/obj/item/clothing/suit/proc/toggle_tailsock(mob/user)
|
||||
if(!user || !ishuman(user))
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.wear_suit != src)
|
||||
to_chat(user, span_warning("You must be wearing \the [src] to adjust the tail sock."))
|
||||
return
|
||||
|
||||
if(!requires_tailsock)
|
||||
to_chat(user, span_notice("\The [src] does not have a tail sock extruder."))
|
||||
return
|
||||
|
||||
if(showtaurbutts)
|
||||
to_chat(user, span_notice("You must enable full body taur sheathing on \the [src] first."))
|
||||
return
|
||||
|
||||
tailsock_toggle = !tailsock_toggle
|
||||
to_chat(user, span_notice("You toggle \the [src]'s dynamic tail sheath [tailsock_toggle ? "ON" : "OFF"]."))
|
||||
|
||||
H.update_inv_wear_suit()
|
||||
H.update_tail_showing()
|
||||
|
||||
/obj/item/clothing/suit/verb/toggletaursuit()
|
||||
set name = "Toggle Taur Extension"
|
||||
set category = "Object"
|
||||
set desc = "Toggle the full body taur sprite on your suit."
|
||||
toggle_taurextender(usr)
|
||||
|
||||
/obj/item/clothing/suit/proc/toggle_taurextender(mob/user)
|
||||
if(!user || !ishuman(user))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.wear_suit != src)
|
||||
to_chat(user, span_warning("You must be wearing \the [src] to adjust the taur extension."))
|
||||
return
|
||||
|
||||
var/taurtail = istaurtail(H.tail_style)
|
||||
if(!taurtail)
|
||||
to_chat(user, span_warning("\The [src]'s taur extension requires a taur body."))
|
||||
return
|
||||
|
||||
showtaurbutts = !showtaurbutts
|
||||
|
||||
if(showtaurbutts)
|
||||
// Classic Mode: turn off suit tailsock sleeve
|
||||
tailsock_toggle = FALSE
|
||||
to_chat(user, span_notice("You disable full body sheathing on \the [src] (Classic mode)."))
|
||||
else
|
||||
// Modern Taur Mode: Enable suit override & tail sheath
|
||||
tailsock_toggle = TRUE
|
||||
to_chat(user, span_notice("You enable full body taur sheathing on \the [src]."))
|
||||
|
||||
taurize(H, taurtail)
|
||||
H.update_inv_wear_suit()
|
||||
H.update_tail_showing()
|
||||
|
||||
/obj/item/clothing/suit/examine(mob/user)
|
||||
. = ..()
|
||||
///It's a little thing, but feedback can help someone wondering why a suit isn't hinding their tails/butt.
|
||||
. += span_notice("The dynamic sheathing toggle is [tailsock_toggle ? "enabled" : "disabled"].")
|
||||
|
||||
//The following for specific sock colors more than anything.
|
||||
|
||||
//Fire suits
|
||||
/obj/item/clothing/suit/fire
|
||||
requires_tailsock = TRUE
|
||||
tailsock_color = "#343442"
|
||||
|
||||
/obj/item/clothing/suit/fire/firefighter
|
||||
tailsock_color = "#3F3F3F"
|
||||
|
||||
/obj/item/clothing/suit/fire/heavy
|
||||
tailsock_color = "#3F3F3F"
|
||||
|
||||
//Bomb suits
|
||||
/obj/item/clothing/suit/bomb_suit
|
||||
requires_tailsock = TRUE
|
||||
tailsock_color = "#9C8956"
|
||||
|
||||
/obj/item/clothing/suit/bomb_suit/security
|
||||
tailsock_color = "#4A4A2F"
|
||||
|
||||
// Bio suits
|
||||
/obj/item/clothing/suit/bio_suit
|
||||
requires_tailsock = TRUE
|
||||
tailsock_color = "#BBBBBB"
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/security
|
||||
tailsock_color = "#5F615E"
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/janitor
|
||||
tailsock_color = "#5F615E"
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/scientist
|
||||
tailsock_color = "#CCB8A8"
|
||||
|
||||
// Radiation
|
||||
/obj/item/clothing/suit/radiation
|
||||
requires_tailsock = TRUE
|
||||
|
||||
// Misc suits
|
||||
/obj/item/clothing/suit/straight_jacket
|
||||
requires_tailsock = TRUE
|
||||
tailsock_color = "#AAAAAA"
|
||||
|
||||
//Station Void Space Suits
|
||||
/obj/item/clothing/suit/space/void/makeshift
|
||||
tailsock_color = "#573226"
|
||||
|
||||
/obj/item/clothing/suit/space/void/refurb
|
||||
tailsock_color = "#293f61"
|
||||
|
||||
/obj/item/clothing/suit/space/void/captain
|
||||
tailsock_color = "#7F7F7F"
|
||||
|
||||
/obj/item/clothing/suit/space/void/security/prototype
|
||||
tailsock_color = "#7F7F7F"
|
||||
|
||||
/obj/item/clothing/suit/space/void/pilot
|
||||
tailsock_color = "#6B5E52"
|
||||
|
||||
/obj/item/clothing/suit/space/void/exploration/alt
|
||||
tailsock_color = "#6B5E52"
|
||||
|
||||
/obj/item/clothing/suit/space/void/engineering
|
||||
sealable = TRUE
|
||||
tailsock_color = "#4E4139"
|
||||
|
||||
/obj/item/clothing/suit/space/void/engineering/salvage
|
||||
tailsock_color = "#3E3823"
|
||||
|
||||
/obj/item/clothing/suit/space/void/atmos
|
||||
sealable = TRUE
|
||||
tailsock_color = "#6B5E52"
|
||||
|
||||
/obj/item/clothing/suit/space/void/mining
|
||||
sealable = TRUE
|
||||
tailsock_color = "#6B5E52"
|
||||
|
||||
/obj/item/clothing/suit/space/void/mining/alt
|
||||
sealable = TRUE
|
||||
tailsock_color = "#5F615E"
|
||||
|
||||
/obj/item/clothing/suit/space/void/medical
|
||||
sealable = TRUE
|
||||
tailsock_color = "#645C56"
|
||||
|
||||
/obj/item/clothing/suit/space/void/security
|
||||
sealable = TRUE
|
||||
tailsock_color = "#39342D"
|
||||
|
||||
/obj/item/clothing/suit/space/void/security/riot
|
||||
sealable = TRUE
|
||||
tailsock_color = "#660000"
|
||||
|
||||
/obj/item/clothing/suit/space/void/security/alt
|
||||
sealable = TRUE
|
||||
tailsock_color = "#1D1D1D"
|
||||
|
||||
/obj/item/clothing/suit/armor/captain
|
||||
requires_tailsock = TRUE
|
||||
tailsock_color = "#1E3E50"
|
||||
|
||||
/obj/item/clothing/suit/space/emergency
|
||||
tailsock_color = "#282828"
|
||||
|
||||
//Bay ported Station Suits
|
||||
/obj/item/clothing/suit/space/void/engineering/alt2
|
||||
sealable = FALSE
|
||||
tailsock_color = "#1C222B"
|
||||
|
||||
/obj/item/clothing/suit/space/void/atmos/alt2
|
||||
sealable = FALSE
|
||||
tailsock_color = "#1C222B"
|
||||
|
||||
/obj/item/clothing/suit/space/void/captain/alt
|
||||
sealable = FALSE
|
||||
tailsock_color = "#1C222B"
|
||||
|
||||
/obj/item/clothing/suit/space/void/medical/alt2
|
||||
sealable = FALSE
|
||||
tailsock_color = "#1C222B"
|
||||
|
||||
/obj/item/clothing/suit/space/void/exploration/alt2
|
||||
sealable = FALSE
|
||||
tailsock_color = "#1C222B"
|
||||
|
||||
/obj/item/clothing/suit/space/void/mining/alt2
|
||||
sealable = FALSE
|
||||
tailsock_color = "#2B3440"
|
||||
|
||||
/obj/item/clothing/suit/space/anomaly/alt
|
||||
sealable = FALSE
|
||||
tailsock_color = "#1C222B"
|
||||
|
||||
/obj/item/clothing/suit/space/void/security/riot/alt
|
||||
sealable = FALSE
|
||||
tailsock_color = "#1C222B"
|
||||
|
||||
//Event Space Suits
|
||||
/obj/item/clothing/suit/space/void/hev
|
||||
tailsock_color = "#2D313C"
|
||||
|
||||
/obj/item/clothing/suit/space/void/aether
|
||||
tailsock_color = "#423F4F"
|
||||
|
||||
/obj/item/clothing/suit/space/void/custodian
|
||||
tailsock_color = "#453542"
|
||||
|
||||
/obj/item/clothing/suit/space/void/excelsior
|
||||
tailsock_color = "#6D6D6B"
|
||||
|
||||
//Antag Space suits
|
||||
/obj/item/clothing/suit/space/syndicate
|
||||
tailsock_color = "#282828"
|
||||
|
||||
/obj/item/clothing/suit/space/void/merc
|
||||
sealable = TRUE
|
||||
tailsock_color = "#851e0e"
|
||||
|
||||
/obj/item/clothing/suit/space/void/merc/fire
|
||||
sealable = TRUE
|
||||
tailsock_color = "#483031"
|
||||
|
||||
/obj/item/clothing/suit/space/void/wizard
|
||||
sealable = TRUE
|
||||
tailsock_color = "#493955"
|
||||
|
||||
//snowflake species suits
|
||||
/obj/item/clothing/suit/space/vox
|
||||
requires_tailsock = FALSE
|
||||
|
||||
/obj/item/clothing/suit/space/void/altevian_heartbreaker
|
||||
requires_tailsock = FALSE
|
||||
|
||||
/obj/item/clothing/suit/space/void/zaddat
|
||||
requires_tailsock = FALSE
|
||||
|
||||
//RIG's space suits
|
||||
/obj/item/clothing/suit/space/rig/zero
|
||||
tailsock_color = "#232226"
|
||||
|
||||
/obj/item/clothing/suit/space/rig/baymed
|
||||
tailsock_color = "#1C222B"
|
||||
|
||||
/obj/item/clothing/suit/space/rig/pathfinder
|
||||
tailsock_color = "#1C222B"
|
||||
|
||||
/obj/item/clothing/suit/space/rig/advsuit
|
||||
tailsock_color = "#6B5E52"
|
||||
|
||||
/obj/item/clothing/suit/space/rig/focalpoint
|
||||
tailsock_color = "#303B40"
|
||||
|
||||
/obj/item/clothing/suit/space/rig/hephaestus
|
||||
tailsock_color = "#2D253E"
|
||||
@@ -26,7 +26,7 @@
|
||||
key = "swish"
|
||||
|
||||
/datum/decl/emote/human/swish/do_emote(mob/living/carbon/human/user)
|
||||
user.animate_tail_once()
|
||||
user.animate_tail_start()
|
||||
|
||||
/datum/decl/emote/human/wag
|
||||
key = "wag"
|
||||
@@ -44,13 +44,13 @@
|
||||
key = "qwag"
|
||||
|
||||
/datum/decl/emote/human/qwag/do_emote(mob/living/carbon/human/user)
|
||||
user.animate_tail_fast()
|
||||
user.animate_tail_start()
|
||||
|
||||
/datum/decl/emote/human/fastsway
|
||||
key = "fastsway"
|
||||
|
||||
/datum/decl/emote/human/fastsway/do_emote(mob/living/carbon/human/user)
|
||||
user.animate_tail_fast()
|
||||
user.animate_tail_start()
|
||||
|
||||
/datum/decl/emote/human/swag
|
||||
key = "swag"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define DATA_X_OFFSET "x"
|
||||
#define DATA_Y_OFFSET "y"
|
||||
#define DATA_ROTATION "rotation"
|
||||
#define DEFAULT_RGB_OUTLINE rgb(50,50,50)
|
||||
|
||||
/obj/item/remote_scene_tool/voodoo_doll
|
||||
name = "voodoo doll"
|
||||
@@ -84,17 +85,23 @@
|
||||
output.Scale(data[DATA_SCALE], data[DATA_SCALE])
|
||||
return output
|
||||
|
||||
/obj/item/remote_scene_tool/voodoo_doll/proc/generate_layer_image(image/input, matrix/newtransform, outline_width = 0, outline_color = rgb(50,50,50))
|
||||
/obj/item/remote_scene_tool/voodoo_doll/proc/generate_layer_image(image/input, matrix/newtransform, outline_width = 0, outline_color = DEFAULT_RGB_OUTLINE)
|
||||
if(input == null)
|
||||
return null
|
||||
|
||||
input.dir = SOUTH
|
||||
input.transform = newtransform
|
||||
input.layer = FLOAT_LAYER
|
||||
if(outline_width > 0)
|
||||
input.filters += filter(type="outline", size = outline_width, color = outline_color)
|
||||
// Please for the love of fuck stop kidnapping taur bodies.
|
||||
var/image/doll_img = image(input)
|
||||
|
||||
return input
|
||||
doll_img.dir = SOUTH
|
||||
doll_img.transform = newtransform
|
||||
doll_img.layer = FLOAT_LAYER
|
||||
doll_img.plane = FLOAT_PLANE // Strip PLANE_CH_STOMACH or mob-specific planes!
|
||||
doll_img.appearance_flags = NONE // Strip RESET_PLANE / KEEP_TOGETHER flags!
|
||||
|
||||
if(outline_width > 0)
|
||||
doll_img.filters += filter(type="outline", size = outline_width, color = outline_color)
|
||||
|
||||
return doll_img
|
||||
|
||||
/obj/item/remote_scene_tool/voodoo_doll/update_icon()
|
||||
. = ..()
|
||||
@@ -124,26 +131,34 @@
|
||||
|
||||
if(no_fun_mode) return //no fun allowed
|
||||
|
||||
if(ishuman(owner)) //TODO, refactor the fuck out of this once I port the tgui filter manager stuff over.
|
||||
var/image/tail_image = null
|
||||
if(ishuman(owner)) //Am I a real boy now, papa?
|
||||
var/mob/living/carbon/human/buddy = owner
|
||||
var/is_tail_taur = istaurtail(buddy.tail_style)
|
||||
var/icon/displacement_map = icon(src.icon,is_tail_taur ? "taurdisplacement" : "displacement",SOUTH)
|
||||
var/image/displacement_rendered = get_humanoid_displacement_map_image(buddy,discarded_layer_indicies,displacement_map,2,null)
|
||||
var/datum/sprite_accessory/tail/tail_style = buddy.tail_style
|
||||
var/is_tail_taur = istaurtail(tail_style)
|
||||
|
||||
var/icon/displacement_map = icon(src.icon, is_tail_taur ? "taurdisplacement" : "displacement", SOUTH)
|
||||
var/image/displacement_rendered = get_humanoid_displacement_map_image(buddy, discarded_layer_indicies, displacement_map, 2, null)
|
||||
|
||||
//tails need special attention because taurs
|
||||
var/tailoutlinecolor = rgb(50,50,50) //default to a grey, otherwise we use a darker version of one of the tail colors
|
||||
if(buddy.tail_style?.do_colouration)
|
||||
tailoutlinecolor = get_outline_color(buddy.r_tail,buddy.g_tail,buddy.b_tail,buddy.a_tail)
|
||||
var/tailoutlinecolor = DEFAULT_RGB_OUTLINE //default to a grey, otherwise we use a darker version of one of the tail colors
|
||||
if(tail_style?.do_colouration)
|
||||
tailoutlinecolor = get_outline_color(buddy.r_tail, buddy.g_tail, buddy.b_tail, buddy.a_tail)
|
||||
|
||||
var/image/tail_image = buddy.get_tail_image()
|
||||
if(is_tail_taur)
|
||||
tail_image = generate_layer_image(buddy.get_tail_image(),generate_layer_matrix(taur_data),outline_size,tailoutlinecolor)
|
||||
tail_image.filters += filter(type="alpha", flags = MASK_INVERSE)
|
||||
else
|
||||
tail_image = generate_layer_image(buddy.get_tail_image(),generate_layer_matrix(tail_data),outline_size,tailoutlinecolor)
|
||||
// Let's get the tail image, checks species and custom tail!
|
||||
var/image/raw_tail = buddy.get_tail_image()
|
||||
if(raw_tail)
|
||||
var/image/full_tail = buddy.apply_tailsock_layer(raw_tail, apply_to_mob = FALSE)
|
||||
var/matrix/target_matrix = generate_layer_matrix(is_tail_taur ? taur_data : tail_data)
|
||||
var/image/cooked_tail = generate_layer_image(full_tail, target_matrix, outline_size, tailoutlinecolor)
|
||||
|
||||
if(is_tail_taur && cooked_tail)
|
||||
cooked_tail.filters += filter(type="alpha", flags = MASK_INVERSE)
|
||||
|
||||
tail_image = cooked_tail
|
||||
|
||||
//same kind of scenario for wings
|
||||
var/wingoutlinecolor = rgb(50,50,50)
|
||||
var/wingoutlinecolor = DEFAULT_RGB_OUTLINE
|
||||
if(buddy.wing_style?.do_colouration)
|
||||
wingoutlinecolor = get_outline_color(buddy.r_wing,buddy.g_wing,buddy.b_wing,buddy.a_wing)
|
||||
var/image/wing_image = generate_layer_image(buddy.get_wing_image(FALSE),generate_layer_matrix(wing_data),outline_size,wingoutlinecolor)
|
||||
@@ -177,6 +192,7 @@
|
||||
rotateMatrix.Turn(2) //very slight blur. this is unironically the best way to do it, any of the blur filters are just way too strong at a minimum value.
|
||||
transform = rotateMatrix
|
||||
|
||||
#undef DEFAULT_RGB_OUTLINE
|
||||
#undef DATA_X_OFFSET
|
||||
#undef DATA_Y_OFFSET
|
||||
#undef DATA_SCALE
|
||||
|
||||
@@ -305,7 +305,10 @@
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/set_dir(new_dir)
|
||||
var/old_dir = dir
|
||||
. = ..()
|
||||
if(. && (species.tail || tail_style))
|
||||
//we already check our tail through these procs now, tailsock/taur tail overlay needs higher priority to be updated correctly.
|
||||
//this has specifically been updated to mutable_appearance and is not as costly as it used to be.
|
||||
if(. && old_dir != new_dir && (old_dir == NORTH || new_dir == NORTH))
|
||||
update_tail_showing()
|
||||
update_inv_wear_suit()
|
||||
|
||||
@@ -291,3 +291,8 @@
|
||||
holder.remove_status_indicator("dead")
|
||||
holder.visible_message(span_warning("\The [src] literally just dies!"))
|
||||
..()
|
||||
|
||||
//Moved flying logic out of update_icons
|
||||
/mob/living/carbon/human/stop_flying()
|
||||
if((. = ..()))
|
||||
update_wing_showing()
|
||||
|
||||
@@ -293,8 +293,8 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
var/icon_x_offset = 0
|
||||
var/icon_y_offset = 0
|
||||
|
||||
if(istype(tail_style, /datum/sprite_accessory/tail/taur)) // Tail icon 'cookie cutters' are filled in where icons are preserved. We need to invert that.
|
||||
if(tail_style.clip_mask)
|
||||
if(istype(tail_style, /datum/sprite_accessory/tail)) // Tail icon 'cookie cutters' are filled in where icons are preserved. We need to invert that.
|
||||
if(tail_style.clip_mask) // trim it if we need to, for taur body types that don't have sprite sheets at all.
|
||||
Cutter = new(icon = (tail_style.clip_mask_icon ? tail_style.clip_mask_icon : tail_style.icon), icon_state = tail_style.clip_mask_state)
|
||||
|
||||
Cutter.Blend("#000000", ICON_MULTIPLY) // Make it all black.
|
||||
@@ -619,6 +619,8 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
update_inv_belt()
|
||||
update_inv_back()
|
||||
update_inv_wear_suit()
|
||||
//check for tail related layers, mainly to resolve roundstart/spawn issues
|
||||
update_tail_showing()
|
||||
update_inv_r_hand()
|
||||
update_inv_l_hand()
|
||||
update_inv_handcuffed()
|
||||
@@ -637,30 +639,37 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
|
||||
remove_layer(UNIFORM_LAYER)
|
||||
|
||||
//Shoes can be affected by uniform being drawn onto them
|
||||
// Shoes can be affected by uniform being drawn onto them
|
||||
update_inv_shoes()
|
||||
|
||||
if(!w_uniform)
|
||||
return
|
||||
|
||||
// Wearing a suit that prevents uniform rendering (e.g. non-RIG full suits)
|
||||
if(wear_suit && (wear_suit.flags_inv & HIDEJUMPSUIT) && !istype(wear_suit, /obj/item/clothing/suit/space/rig))
|
||||
return //Wearing a suit that prevents uniform rendering
|
||||
return
|
||||
|
||||
var/obj/item/clothing/under/under = w_uniform
|
||||
var/uniform_sprite = (istype(under) && !isnull(under.update_icon_define)) ? under.update_icon_define : INV_W_UNIFORM_DEF_ICON
|
||||
|
||||
var/uniform_sprite
|
||||
if(istype(under) && !isnull(under.update_icon_define))
|
||||
uniform_sprite = under.update_icon_define
|
||||
else
|
||||
uniform_sprite = INV_W_UNIFORM_DEF_ICON
|
||||
var/icon/c_mask = null
|
||||
|
||||
//Build a uniform sprite
|
||||
var/icon/c_mask = tail_style?.clip_mask
|
||||
if(c_mask)
|
||||
var/obj/item/clothing/suit/S = wear_suit
|
||||
if((wear_suit?.flags_inv & HIDETAIL) || (istype(S) && S.taurized)) // Reasons to not mask: 1. If you're wearing a suit that hides the tail or if you're wearing a taurized suit.
|
||||
c_mask = null
|
||||
overlays_standing[UNIFORM_LAYER] = w_uniform.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_w_uniform_str, default_icon = uniform_sprite, default_layer = UNIFORM_LAYER, clip_mask = c_mask)
|
||||
// Check if a taur body is active on the mob
|
||||
var/tail_is_rendered = (overlays_standing[get_tail_layer()] || overlays_standing[TAIL_UPPER_LAYER_HIGH])
|
||||
|
||||
// Clip uniform pants/legs off at the waist IF:
|
||||
// Taur body with a mask and not fitted for taurs. Which is basically all of them lmaooo.
|
||||
if(tail_is_rendered && tail_style?.clip_mask && (istype(under) && !under.taurized))
|
||||
c_mask = tail_style.clip_mask
|
||||
|
||||
// Build uniform sprite with clip mask applied
|
||||
overlays_standing[UNIFORM_LAYER] = w_uniform.make_worn_icon(
|
||||
body_type = species.get_bodytype(src),
|
||||
slot_name = slot_w_uniform_str,
|
||||
default_icon = uniform_sprite,
|
||||
default_layer = UNIFORM_LAYER,
|
||||
clip_mask = c_mask
|
||||
)
|
||||
apply_layer(UNIFORM_LAYER)
|
||||
|
||||
/mob/living/carbon/human/update_inv_wear_id()
|
||||
@@ -855,31 +864,37 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
|
||||
remove_layer(SUIT_LAYER)
|
||||
|
||||
//Hide/show other layers if necessary
|
||||
// Hide/show uniform & shoes
|
||||
update_inv_w_uniform()
|
||||
update_inv_shoes()
|
||||
|
||||
// Always ensure tail/taur states are updated so overlay existence is current
|
||||
update_tail_showing()
|
||||
update_wing_showing()
|
||||
|
||||
if(!wear_suit)
|
||||
return //No point, no suit.
|
||||
return // No point, no suit.
|
||||
|
||||
var/obj/item/clothing/suit/suit = wear_suit
|
||||
var/suit_sprite
|
||||
|
||||
if(istype(suit) && !isnull(suit.update_icon_define))
|
||||
suit_sprite = suit.update_icon_define
|
||||
else
|
||||
suit_sprite = INV_SUIT_DEF_ICON
|
||||
var/suit_sprite = (istype(suit) && !isnull(suit.update_icon_define)) ? suit.update_icon_define : INV_SUIT_DEF_ICON
|
||||
|
||||
var/icon/c_mask = null
|
||||
var/tail_is_rendered = overlays_standing[TAIL_LOWER_LAYER] || overlays_standing[tail_layering]
|
||||
var/valid_clip_mask = tail_style?.clip_mask
|
||||
|
||||
if(tail_is_rendered && valid_clip_mask && !(istype(suit) && suit.taurized)) //Clip the lower half of the suit off using the tail's clip mask for taurs since taur bodies aren't hidden.
|
||||
c_mask = valid_clip_mask
|
||||
overlays_standing[SUIT_LAYER] = wear_suit.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_wear_suit_str, default_icon = suit_sprite, default_layer = SUIT_LAYER, clip_mask = c_mask)
|
||||
// Check if a taur body is active and requires clipping the lower half of the suit off
|
||||
var/tail_is_rendered = (overlays_standing[get_tail_layer()] || overlays_standing[TAIL_UPPER_LAYER_HIGH])
|
||||
|
||||
// Apply the clip mask to trim our suit for taur body fitting
|
||||
if(tail_is_rendered && tail_style?.clip_mask && !(istype(suit) && suit.taurized))
|
||||
c_mask = tail_style.clip_mask
|
||||
|
||||
// Generate suit overlay
|
||||
overlays_standing[SUIT_LAYER] = wear_suit.make_worn_icon(
|
||||
body_type = species.get_bodytype(src),
|
||||
slot_name = slot_wear_suit_str,
|
||||
default_icon = suit_sprite,
|
||||
default_layer = SUIT_LAYER,
|
||||
clip_mask = c_mask
|
||||
)
|
||||
apply_layer(SUIT_LAYER)
|
||||
|
||||
/mob/living/carbon/human/update_inv_pockets()
|
||||
@@ -992,11 +1007,13 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
apply_layer(L_HAND_LAYER)
|
||||
|
||||
/mob/living/carbon/human/proc/get_tail_layer()
|
||||
var/list/lower_layer_dirs = list(SOUTH, EAST, WEST) //Tail below clothing on side views too.
|
||||
if(tail_style)
|
||||
var/list/lower_layer_dirs = LOWER_TAIL_DIRS // Tail below clothing on side views too.
|
||||
if(!tail_style) // Sanity checks good checks.
|
||||
return
|
||||
else
|
||||
lower_layer_dirs = tail_style.lower_layer_dirs.Copy()
|
||||
|
||||
if(dir in lower_layer_dirs)
|
||||
if(istaurtail(tail_style) || (dir in lower_layer_dirs))
|
||||
return TAIL_LOWER_LAYER
|
||||
else
|
||||
return TAIL_UPPER_LAYER
|
||||
@@ -1005,130 +1022,378 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
remove_layer(TAIL_UPPER_LAYER)
|
||||
remove_layer(TAIL_UPPER_LAYER_HIGH)
|
||||
remove_layer(TAIL_UPPER_LAYER_LOW)
|
||||
remove_layer(TAIL_LOWER_LAYER)
|
||||
// Clear previous tail layer assignments
|
||||
for(var/layers in TAIL_LAYER_CLEARING)
|
||||
remove_layer(layers)
|
||||
|
||||
var/tail_layer = get_tail_layer()
|
||||
if(src.tail_style && src.tail_style.clip_mask_state)
|
||||
tail_layer = TAIL_UPPER_LAYER // Use default, let clip mask handle everything
|
||||
// Use default, let clip mask handle everything
|
||||
if(tail_style && tail_style.clip_mask_state && !istaurtail(tail_style))
|
||||
tail_layer = TAIL_UPPER_LAYER
|
||||
if(tail_layer == TAIL_UPPER_LAYER)
|
||||
tail_layer = tail_layering
|
||||
|
||||
update_vore_tail_sprite()
|
||||
|
||||
var/obj/item/organ/external/chest = organs_by_name[BP_TORSO]
|
||||
|
||||
var/image/tail_image = get_tail_image()
|
||||
if(tail_image)
|
||||
tail_image.layer = BODY_LAYER+tail_layer
|
||||
overlays_standing[tail_layer] = tail_image
|
||||
apply_layer(tail_layer)
|
||||
return
|
||||
|
||||
var/species_tail = species?.get_tail(src) // Species tail icon_state prefix.
|
||||
|
||||
//This one is actually not that bad I guess.
|
||||
if(species_tail && !(wear_suit && wear_suit.flags_inv & HIDETAIL))
|
||||
var/icon/tail_s = get_tail_icon()
|
||||
tail_image = image(icon = tail_s, icon_state = "[species_tail]_s", layer = BODY_LAYER+tail_layer)
|
||||
tail_image.alpha = chest?.transparent ? 180 : 255
|
||||
overlays_standing[tail_layer] = tail_image
|
||||
animate_tail_reset()
|
||||
// Process tailsock & North-facing layer overrides
|
||||
// apply_tailsock_layer is our heavy lifter for tail applying!
|
||||
tail_image = apply_tailsock_layer(tail_image, tail_layer, apply_to_mob = TRUE)
|
||||
|
||||
//TODO: Is this the appropriate place for this, and not on species...?
|
||||
/mob/living/carbon/human/proc/get_tail_icon()
|
||||
var/icon_key = "[species.get_race_key(src)][r_skin][g_skin][b_skin][r_hair][g_hair][b_hair]"
|
||||
var/icon/tail_icon = GLOB.tail_icon_cache[icon_key]
|
||||
if(!tail_icon)
|
||||
//generate a new one
|
||||
var/species_tail_anim = species.get_tail_animation(src)
|
||||
if(!species_tail_anim && species.icobase_tail) species_tail_anim = species.icobase //Allow override of file for non-animated tails
|
||||
if(!species_tail_anim) species_tail_anim = 'icons/effects/species.dmi'
|
||||
tail_icon = new/icon(species_tail_anim)
|
||||
tail_icon.Blend(rgb(r_skin, g_skin, b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD)
|
||||
// The following will not work with animated tails.
|
||||
var/use_species_tail = species.get_tail_hair(src)
|
||||
if(use_species_tail)
|
||||
var/icon/hair_icon = icon('icons/effects/species.dmi', "[species.get_tail(src)]_[use_species_tail]")
|
||||
hair_icon.Blend(rgb(r_hair, g_hair, b_hair), species.color_mult ? ICON_MULTIPLY : ICON_ADD) //Check for species color_mult
|
||||
tail_icon.Blend(hair_icon, ICON_OVERLAY)
|
||||
GLOB.tail_icon_cache[icon_key] = tail_icon
|
||||
//Yes, and we can make it better too.
|
||||
/mob/living/carbon/human/proc/get_tail_image_species()
|
||||
var/race_key = species.get_race_key(src)
|
||||
var/icon_key = "[race_key]_[r_skin]_[g_skin]_[b_skin]_[r_hair]_[g_hair]_[b_hair]"
|
||||
|
||||
return tail_icon
|
||||
var/mutable_appearance/tail_app = GLOB.tail_icon_cache[icon_key]
|
||||
if(tail_app)
|
||||
return image(tail_app)
|
||||
|
||||
var/species_tail_anim = species.get_tail_animation(src)
|
||||
if(!species_tail_anim && species.icobase_tail)
|
||||
species_tail_anim = species.icobase
|
||||
if(!species_tail_anim)
|
||||
species_tail_anim = 'icons/effects/species.dmi'
|
||||
|
||||
// Base tail appearance
|
||||
tail_app = mutable_appearance(species_tail_anim, "[tail_style]")
|
||||
tail_app.color = rgb(r_skin, g_skin, b_skin)
|
||||
tail_app.blend_mode = species.color_mult ? BLEND_MULTIPLY : BLEND_ADD
|
||||
|
||||
// Hair / Secondary overlay
|
||||
var/use_species_tail = species.get_tail_hair(src)
|
||||
if(use_species_tail)
|
||||
var/tail_species_state = "[species.get_tail(src)]_[use_species_tail]"
|
||||
var/mutable_appearance/hair_app = mutable_appearance('icons/effects/species.dmi', tail_species_state)
|
||||
hair_app.color = rgb(r_hair, g_hair, b_hair)
|
||||
hair_app.blend_mode = species.color_mult ? BLEND_MULTIPLY : BLEND_ADD
|
||||
|
||||
tail_app.overlays += hair_app
|
||||
|
||||
// Cache the tail for later use
|
||||
GLOB.tail_icon_cache[icon_key] = tail_app
|
||||
return image(tail_app)
|
||||
|
||||
/mob/living/carbon/human/proc/get_tail_image()
|
||||
// Pull torso alpha channel information
|
||||
var/torso_alpha = 255
|
||||
var/obj/item/organ/external/chest = organs_by_name[BP_TORSO]
|
||||
if(chest)
|
||||
torso_alpha = chest.alpha
|
||||
|
||||
// Synthetic check
|
||||
var/datum/robolimb/model = isSynthetic()
|
||||
if(istype(model) && model.includes_tail && !tail_style && !tail_hidden)
|
||||
var/mutable_appearance/syn_tail = mutable_appearance(synthetic.icon, "tail")
|
||||
syn_tail.color = rgb(r_skin, g_skin, b_skin)
|
||||
var/image/syn_img = image(syn_tail)
|
||||
syn_img.alpha = torso_alpha
|
||||
return syn_img
|
||||
|
||||
// Custom tail check
|
||||
if(tail_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL && !istaurtail(tail_style)) && !tail_hidden)
|
||||
var/target_icon = (tail_style.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon
|
||||
var/target_state = (wagging && tail_style.ani_state) ? tail_style.ani_state : tail_style.icon_state
|
||||
|
||||
// arrange our taur loafing effects
|
||||
if(tail_style.can_loaf && !is_shifted)
|
||||
pixel_y = resting ? -tail_style.loaf_offset * size_multiplier : default_pixel_y
|
||||
|
||||
// base tail appearance
|
||||
var/mutable_appearance/base_tail = mutable_appearance(target_icon, target_state)
|
||||
if(tail_style.do_colouration)
|
||||
base_tail.color = rgb(r_tail, g_tail, b_tail)
|
||||
|
||||
// basic tail image to build upon
|
||||
var/image/working = image(icon = target_icon, icon_state = null)
|
||||
working.overlays += base_tail
|
||||
|
||||
if(tail_style.extra_overlay)
|
||||
var/ex1_state = (wagging && tail_style.ani_state) ? tail_style.extra_overlay_w : tail_style.extra_overlay
|
||||
var/mutable_appearance/ex1 = mutable_appearance(target_icon, ex1_state)
|
||||
ex1.color = rgb(r_tail2, g_tail2, b_tail2)
|
||||
working.overlays += ex1
|
||||
|
||||
if(tail_style.extra_overlay2)
|
||||
var/ex2_state = (wagging && tail_style.ani_state) ? tail_style.extra_overlay2_w : tail_style.extra_overlay2
|
||||
var/mutable_appearance/ex2 = mutable_appearance(target_icon, ex2_state)
|
||||
ex2.color = rgb(r_tail3, g_tail3, b_tail3)
|
||||
working.overlays += ex2
|
||||
|
||||
if(tail_style.em_block)
|
||||
working.overlays += em_block_image_generic(working)
|
||||
|
||||
if(istaurtail(tail_style) || islongtail(tail_style))
|
||||
working.pixel_x = tail_style.offset_x
|
||||
working.pixel_y = tail_style.offset_y
|
||||
|
||||
if(istaurtail(tail_style))
|
||||
var/datum/sprite_accessory/tail/taur/taurtype = tail_style
|
||||
if(taurtype.can_ride && !riding_datum)
|
||||
riding_datum = new /datum/riding/taur(src)
|
||||
add_verb(src, /mob/living/carbon/human/proc/taur_mount)
|
||||
add_verb(src, /mob/living/proc/toggle_rider_reins)
|
||||
|
||||
// Combine custom tail alpha variable with the torso's alpha channel
|
||||
working.alpha = (a_tail != null) ? min(a_tail, torso_alpha) : torso_alpha
|
||||
return working
|
||||
|
||||
// no custom tail? let's get the species default then
|
||||
if(species && tail_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL) && !tail_hidden)
|
||||
var/image/species_tail_img = get_tail_image_species()
|
||||
if(species_tail_img)
|
||||
species_tail_img.alpha = torso_alpha
|
||||
return species_tail_img
|
||||
return null
|
||||
|
||||
/mob/living/carbon/human/proc/set_tail_state(t_state)
|
||||
if(QDESTROYING(src) || !tail_style)
|
||||
return null
|
||||
|
||||
// wag compatibility check
|
||||
if(tail_style.ani_state)
|
||||
wagging = (t_state == tail_style.ani_state)
|
||||
else
|
||||
wagging = FALSE
|
||||
|
||||
// refresh our tail, please ~
|
||||
update_tail_showing()
|
||||
|
||||
var/tail_layer = get_tail_layer()
|
||||
if(src.tail_style && src.tail_style.clip_mask_state)
|
||||
tail_layer = TAIL_UPPER_LAYER // Use default, let clip mask handle everything
|
||||
if(tail_layer == TAIL_UPPER_LAYER)
|
||||
tail_layer = tail_layering
|
||||
var/image/tail_overlay = overlays_standing[tail_layer]
|
||||
return overlays_standing[tail_layer]
|
||||
|
||||
remove_layer(TAIL_UPPER_LAYER)
|
||||
remove_layer(TAIL_UPPER_LAYER_HIGH)
|
||||
remove_layer(TAIL_UPPER_LAYER_LOW)
|
||||
remove_layer(TAIL_LOWER_LAYER)
|
||||
//rather than repeatedly trying to assert offsets while rendering the code, let's kick this out into a more managable proc shall we
|
||||
/mob/living/carbon/human/proc/get_tail_offsets(obj/item/clothing/suit/socksuit, datum/sprite_accessory/tail/tailtype)
|
||||
var/off_x = tailtype ? tailtype.offset_x : 0
|
||||
var/off_y = tailtype ? tailtype.offset_y : 0
|
||||
|
||||
if(tail_overlay)
|
||||
overlays_standing[tail_layer] = tail_overlay
|
||||
if(species.get_tail_animation(src))
|
||||
tail_overlay.icon_state = t_state
|
||||
. = tail_overlay
|
||||
// Add suit offset if the suit isn't using an icon override
|
||||
if(socksuit && !socksuit.icon_override)
|
||||
off_x += socksuit.pixel_x
|
||||
off_y += socksuit.pixel_y
|
||||
|
||||
apply_layer(tail_layer)
|
||||
return list(off_x, off_y)
|
||||
|
||||
//Not really once, since BYOND can't do that.
|
||||
//Update this if the ability to flick() images or make looping animation start at the first frame is ever added.
|
||||
//You can sort of flick images now with flick_overlay -Aro
|
||||
/mob/living/carbon/human/proc/animate_tail_once()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
/mob/living/carbon/human/proc/apply_tailsock_layer(image/tailoverlays, target_layer, apply_to_mob = TRUE)
|
||||
if(!tailoverlays)
|
||||
return null
|
||||
|
||||
var/t_state = "[species.get_tail(src)]_once"
|
||||
var/tail_layer = get_tail_layer()
|
||||
if(src.tail_style && src.tail_style.clip_mask_state)
|
||||
tail_layer = TAIL_UPPER_LAYER // Use default, let clip mask handle everything
|
||||
var/obj/item/clothing/suit/socksuit = wear_suit
|
||||
var/datum/sprite_accessory/tail/tailtype = tail_style
|
||||
|
||||
var/image/tail_overlay = overlays_standing[tail_layer]
|
||||
if(tail_overlay && tail_overlay.icon_state == t_state)
|
||||
return //let the existing animation finish
|
||||
// Simplify our offset maths
|
||||
var/list/offsets = get_tail_offsets(socksuit, tailtype)
|
||||
var/total_off_x = offsets[1]
|
||||
var/total_off_y = offsets[2]
|
||||
|
||||
tail_overlay = set_tail_state(t_state) // Calls remove_layer & apply_layer
|
||||
if(tail_overlay)
|
||||
spawn(20)
|
||||
//check that the animation hasn't changed in the meantime
|
||||
if(overlays_standing[tail_layer] == tail_overlay && tail_overlay.icon_state == t_state)
|
||||
animate_tail_stop()
|
||||
// Fallback in case target_layer wasn't passed by the parent proc
|
||||
if(!target_layer)
|
||||
target_layer = get_tail_layer()
|
||||
if(!target_layer)
|
||||
target_layer = tail_layering
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_start()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
var/image/tail_img = image(tailoverlays)
|
||||
tail_img.layer = target_layer
|
||||
tail_img.pixel_x = total_off_x
|
||||
tail_img.pixel_y = total_off_y
|
||||
|
||||
set_tail_state("[species.get_tail(src)]_slow[rand(0,9)]")
|
||||
// Get our tailsock ready
|
||||
var/has_sock = FALSE
|
||||
var/icon/sock_icon = null
|
||||
var/sock_state = null
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_fast()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
if(socksuit && socksuit.requires_tailsock && socksuit.tailsock_toggle && tailtype)
|
||||
has_sock = TRUE
|
||||
sock_icon = tailtype.tailsock_icon ? tailtype.tailsock_icon : socksuit.icon
|
||||
|
||||
set_tail_state("[species.get_tail(src)]_loop[rand(0,9)]")
|
||||
if(wagging && tailtype.tailsock_wagicon)
|
||||
sock_state = tailtype.tailsock_wagicon
|
||||
else if(tailtype.tailsock_iconstate)
|
||||
sock_state = tailtype.tailsock_iconstate
|
||||
else if(socksuit.item_state)
|
||||
sock_state = socksuit.item_state
|
||||
|
||||
var/image/upper_sock_img = null
|
||||
|
||||
//whack on our lower layer directional tailsock, if needed
|
||||
if(has_sock && sock_icon && sock_state)
|
||||
upper_sock_img = image(icon = sock_icon, icon_state = sock_state)
|
||||
upper_sock_img.alpha = socksuit.alpha
|
||||
if(socksuit.tailsock_color)
|
||||
upper_sock_img.color = socksuit.tailsock_color
|
||||
|
||||
if(target_layer != TAIL_LOWER_LAYER)
|
||||
var/mutable_appearance/sock_overlay = mutable_appearance(sock_icon, sock_state)
|
||||
if(socksuit.tailsock_color)
|
||||
sock_overlay.color = socksuit.tailsock_color
|
||||
//allow sneaky suits to have sneaky suit socks too
|
||||
sock_overlay.alpha = socksuit.alpha
|
||||
sock_overlay.layer = FLOAT_LAYER + 0.1
|
||||
tail_img.overlays += sock_overlay
|
||||
|
||||
//we don't need a sock, so let's make a fake tail to appear on top of our clothes because that looks nicer
|
||||
//We basically have every sock given their markings at this point. If your tail shows, it has its markings too.
|
||||
else if(tailtype)
|
||||
//just in case we have a null tailsock_icon somehow
|
||||
var/icon/sock_mark_icon = tailtype.tailsock_icon ? tailtype.tailsock_icon : tailtype.icon
|
||||
// If we don't need a sock, and we're not worrying about coloring (snowflake)
|
||||
if(!tail_style.do_colouration)
|
||||
var/n_state = (wagging && tailtype.ani_state) ? tailtype.ani_state : tailtype.icon_state
|
||||
//we'll just get our default as our bonus layer
|
||||
upper_sock_img = image(icon = tailtype.icon, icon_state = n_state)
|
||||
// Generate the snipped base tail using the dedicated tailsock icon states instead of the full body state
|
||||
else
|
||||
var/n_state = (wagging && tailtype.tailsock_wagicon) ? tailtype.tailsock_wagicon : tailtype.tailsock_iconstate
|
||||
upper_sock_img = image(icon = sock_mark_icon, icon_state = n_state)
|
||||
var/mutable_appearance/base_north = mutable_appearance(sock_mark_icon, n_state)
|
||||
if(tailtype.do_colouration)
|
||||
base_north.color = rgb(r_tail, g_tail, b_tail)
|
||||
upper_sock_img.overlays += base_north
|
||||
|
||||
// Attach secondary markings if present
|
||||
if(tailtype.tailsock_markings)
|
||||
var/m1_nstate = (wagging) ? tailtype.tailsock_wagmarkings : tailtype.tailsock_markings
|
||||
var/mutable_appearance/m1_north = mutable_appearance(sock_mark_icon, m1_nstate)
|
||||
m1_north.color = rgb(r_tail2, g_tail2, b_tail2)
|
||||
m1_north.layer = FLOAT_LAYER + 0.01
|
||||
upper_sock_img.overlays += m1_north
|
||||
|
||||
if(tailtype.tailsock_markings2)
|
||||
var/m2_nstate = (wagging) ? tailtype.tailsock_wagmarkings2 : tailtype.tailsock_markings2
|
||||
var/mutable_appearance/m2_north = mutable_appearance(sock_mark_icon, m2_nstate)
|
||||
m2_north.color = rgb(r_tail3, g_tail3, b_tail3)
|
||||
m2_north.layer = FLOAT_LAYER + 0.02
|
||||
upper_sock_img.overlays += m2_north
|
||||
|
||||
//voodoo protection of butt theft
|
||||
if(apply_to_mob)
|
||||
//paste normal tail on their intended level
|
||||
overlays_standing[target_layer] = tail_img
|
||||
apply_layer(target_layer)
|
||||
|
||||
// apply our taur sock to its correct layer, voodoo is south only so should be fine... right?? Right byond?????
|
||||
if(upper_sock_img)
|
||||
//backpacks render over everything north face unless this is specifically set higher on the image.layer - even if it's in the higher index....
|
||||
//have I mentioned how much I hate this system??
|
||||
upper_sock_img.layer = TAIL_UPPER_LAYER_HIGH
|
||||
upper_sock_img.pixel_x = total_off_x
|
||||
upper_sock_img.pixel_y = total_off_y
|
||||
overlays_standing[TAIL_UPPER_LAYER_HIGH] = upper_sock_img
|
||||
apply_layer(TAIL_UPPER_LAYER_HIGH)
|
||||
|
||||
return tail_img
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_reset()
|
||||
if(QDESTROYING(src))
|
||||
if(QDESTROYING(src) || !tail_style)
|
||||
return
|
||||
|
||||
if(stat != DEAD)
|
||||
set_tail_state("[species.get_tail(src)]_idle[rand(0,9)]")
|
||||
if(stat == DEAD)
|
||||
set_tail_state(tail_style.icon_state)
|
||||
toggle_tail(FALSE) // Stop wagging on death
|
||||
else
|
||||
set_tail_state("[species.get_tail(src)]_static")
|
||||
toggle_tail(FALSE) //So tails stop when someone dies. TODO - Fix this hack ~Leshana
|
||||
// Resets tail state based on current wagging flag
|
||||
set_tail_state(wagging && tail_style.ani_state ? tail_style.ani_state : tail_style.icon_state)
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_start()
|
||||
if(QDESTROYING(src) || !tail_style)
|
||||
return
|
||||
|
||||
toggle_tail(TRUE)
|
||||
if(tail_style.ani_state)
|
||||
set_tail_state(tail_style.ani_state)
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_stop()
|
||||
if(QDESTROYING(src) || !tail_style)
|
||||
return
|
||||
|
||||
toggle_tail(FALSE)
|
||||
set_tail_state(tail_style.icon_state)
|
||||
|
||||
/mob/living/carbon/human/proc/update_vore_belly_sprite()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
set_tail_state("[species.get_tail(src)]_static")
|
||||
remove_layer(VORE_BELLY_LAYER)
|
||||
|
||||
var/image/vore_belly_image = get_vore_belly_image()
|
||||
if(vore_belly_image)
|
||||
vore_belly_image.layer = BODY_LAYER+VORE_BELLY_LAYER
|
||||
overlays_standing[VORE_BELLY_LAYER] = vore_belly_image
|
||||
//CHOMPEdit Disabling this until someone comes up with a less destructive approach. //vore_belly_image.plane = PLANE_CH_STOMACH //This one line of code. This ONE LINE OF CODE TOOK 6 HOURS TO FIGURE OUT. THANK YOU REDCAT.
|
||||
vore_belly_image.appearance_flags = appearance_flags
|
||||
|
||||
apply_layer(VORE_BELLY_LAYER)
|
||||
|
||||
/mob/living/carbon/human/proc/get_vore_belly_image()
|
||||
if(!(wear_suit && wear_suit.flags_inv & HIDETAIL))
|
||||
var/vs_fullness = vore_fullness_ex["stomach"]
|
||||
var/icon/vorebelly_s = new/icon(icon = 'icons/mob/vore/Bellies.dmi', icon_state = "[species.vore_belly_default_variant]Belly[vs_fullness][struggle_anim_stomach ? "" : " idle"]")
|
||||
vorebelly_s.Blend(vore_sprite_color["stomach"], vore_sprite_multiply["stomach"] ? ICON_MULTIPLY : ICON_ADD)
|
||||
var/image/working = image(vorebelly_s)
|
||||
working.overlays += em_block_image_generic(working)
|
||||
return working
|
||||
return null
|
||||
|
||||
/mob/living/carbon/human/proc/vore_belly_animation()
|
||||
if(!struggle_anim_stomach)
|
||||
struggle_anim_stomach = TRUE
|
||||
update_vore_belly_sprite()
|
||||
spawn(1.2 SECONDS)
|
||||
struggle_anim_stomach = FALSE
|
||||
update_vore_belly_sprite()
|
||||
|
||||
/mob/living/carbon/human/proc/update_vore_tail_sprite()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
remove_layer(VORE_TAIL_LAYER)
|
||||
var/image/vore_tail_image = get_vore_tail_image()
|
||||
if(vore_tail_image)
|
||||
vore_tail_image.layer = BODY_LAYER + VORE_TAIL_LAYER
|
||||
// This one line of code. THIS ONE LINE OF CODE TOOK 6 HOURS TO FIGURE OUT. THANK YOU REDCAT.
|
||||
//CHOMPEdit Disabling this until someone comes up with a less destructive approach. //vore_tail_image.plane = PLANE_CH_STOMACH
|
||||
vore_tail_image.appearance_flags = appearance_flags
|
||||
overlays_standing[VORE_TAIL_LAYER] = vore_tail_image
|
||||
apply_layer(VORE_TAIL_LAYER)
|
||||
|
||||
/mob/living/carbon/human/proc/get_vore_tail_image()
|
||||
if(!tail_style || !istaurtail(tail_style) || !tail_style.vore_tail_sprite_variant)
|
||||
return null
|
||||
|
||||
var/vs_fullness = vore_fullness_ex["taur belly"]
|
||||
var/loaf_alt = lying && tail_style.belly_variant_when_loaf
|
||||
var/fullness_icons = min(tail_style.fullness_icons, vs_fullness)
|
||||
var/target_state = "Taur[tail_style.vore_tail_sprite_variant]-Belly-[fullness_icons][loaf_alt ? " loaf" : (struggle_anim_taur ? "" : " idle")]"
|
||||
//optimizing this with mutable_appearance, since it includes support for animations!
|
||||
var/mutable_appearance/vorebelly_ma = mutable_appearance(tail_style.bellies_icon_path, target_state)
|
||||
var/obj/item/clothing/suit/sockable = wear_suit
|
||||
//scootchin' on by here to tailsock the tummy since it's important.
|
||||
if(sockable && sockable.tailsock_toggle && sockable.tailsock_color)
|
||||
vorebelly_ma.color = sockable.tailsock_color
|
||||
else
|
||||
var/base_color = vore_sprite_color["taur belly"]
|
||||
vorebelly_ma.color = base_color
|
||||
|
||||
var/image/working = image(vorebelly_ma)
|
||||
working.pixel_x = -16
|
||||
|
||||
if(tail_style.em_block) // Let 'em glow still
|
||||
working.overlays += em_block_image_generic(working)
|
||||
|
||||
return working
|
||||
|
||||
/mob/living/carbon/human/proc/vore_tail_animation()
|
||||
if(tail_style.struggle_anim && !struggle_anim_taur)
|
||||
struggle_anim_taur = TRUE
|
||||
update_vore_tail_sprite()
|
||||
spawn(12)
|
||||
// Prevent runtimes if the mob is destroyed while the animation timer was ticking
|
||||
if(!src || QDESTROYING(src))
|
||||
return
|
||||
struggle_anim_taur = FALSE
|
||||
update_vore_tail_sprite()
|
||||
|
||||
/mob/living/carbon/human/proc/update_wing_showing()
|
||||
if(QDESTROYING(src))
|
||||
@@ -1139,18 +1404,70 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
|
||||
var/image/wing_image = get_wing_image(FALSE)
|
||||
|
||||
// Fetch wear_suit and check for tailsock coloration, because it makes sense to.
|
||||
var/obj/item/clothing/suit/socksuit = wear_suit
|
||||
var/wing_color = (istype(socksuit) && socksuit.requires_tailsock && socksuit.tailsock_toggle && socksuit.tailsock_color) ? socksuit.tailsock_color : null
|
||||
|
||||
if(wing_image)
|
||||
wing_image.layer = BODY_LAYER+WING_LAYER
|
||||
wing_image.layer = BODY_LAYER + WING_LAYER
|
||||
if(wing_color)
|
||||
wing_image.color = wing_color
|
||||
overlays_standing[WING_LAYER] = wing_image
|
||||
|
||||
if(wing_style && wing_style.multi_dir)
|
||||
wing_image = get_wing_image(TRUE)
|
||||
if(wing_image)
|
||||
wing_image.layer = BODY_LAYER+WING_LOWER_LAYER
|
||||
wing_image.layer = BODY_LAYER + WING_LOWER_LAYER
|
||||
if(wing_color)
|
||||
wing_image.color = wing_color
|
||||
overlays_standing[WING_LOWER_LAYER] = wing_image
|
||||
|
||||
apply_layer(WING_LAYER)
|
||||
apply_layer(WING_LOWER_LAYER)
|
||||
|
||||
/mob/living/carbon/human/proc/get_wing_image(under_layer)
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
//If you are FBP with wing style and didn't set a custom one
|
||||
if(synthetic && synthetic.includes_wing && !wing_style && !wings_hidden)
|
||||
var/icon/wing_s = new/icon("icon" = synthetic.icon, "icon_state" = "wing") //I dunno. If synths have some custom wing?
|
||||
wing_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD)
|
||||
var/image/working = image(wing_s)
|
||||
working.overlays += em_block_image_generic(working) // Leaving this as overlays +=
|
||||
return working
|
||||
|
||||
//If you have custom wings selected
|
||||
if(wing_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL) && !wings_hidden)
|
||||
var/wing_state = (flapping && wing_style.ani_state) ? wing_style.ani_state : wing_style.icon_state
|
||||
if(wing_style.multi_dir)
|
||||
wing_state += "_[under_layer ? "back" : "front"]"
|
||||
var/icon/wing_s = new/icon("icon" = wing_style.icon, "icon_state" = wing_state)
|
||||
if(wing_style.do_colouration)
|
||||
wing_s.Blend(rgb(src.r_wing, src.g_wing, src.b_wing), wing_style.color_blend_mode)
|
||||
if(wing_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay)
|
||||
overlay.Blend(rgb(src.r_wing2, src.g_wing2, src.b_wing2), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
if(wing_style.extra_overlay2)
|
||||
var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2)
|
||||
if(wing_style.ani_state)
|
||||
overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2_w)
|
||||
overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
var/image/working = image(wing_s)
|
||||
working.alpha = src.a_wing
|
||||
if(wing_style.em_block)
|
||||
working.overlays += em_block_image_generic(working) // Leaving this as overlays +=
|
||||
working.pixel_x -= wing_style.wing_offset
|
||||
return working
|
||||
|
||||
/mob/living/carbon/human/update_modifier_visuals()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
@@ -1226,49 +1543,6 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
overlays_standing[SURGERY_LAYER] = total
|
||||
apply_layer(SURGERY_LAYER)
|
||||
|
||||
/mob/living/carbon/human/proc/get_wing_image(under_layer)
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
//If you are FBP with wing style and didn't set a custom one
|
||||
if(synthetic && synthetic.includes_wing && !wing_style && !wings_hidden)
|
||||
var/icon/wing_s = new/icon("icon" = synthetic.icon, "icon_state" = "wing") //I dunno. If synths have some custom wing?
|
||||
wing_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD)
|
||||
var/image/working = image(wing_s)
|
||||
working.overlays += em_block_image_generic(working) // Leaving this as overlays +=
|
||||
return working
|
||||
|
||||
//If you have custom wings selected
|
||||
if(wing_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL) && !wings_hidden)
|
||||
var/wing_state = (flapping && wing_style.ani_state) ? wing_style.ani_state : wing_style.icon_state
|
||||
if(wing_style.multi_dir)
|
||||
wing_state += "_[under_layer ? "back" : "front"]"
|
||||
var/icon/wing_s = new/icon("icon" = wing_style.icon, "icon_state" = wing_state)
|
||||
if(wing_style.do_colouration)
|
||||
wing_s.Blend(rgb(src.r_wing, src.g_wing, src.b_wing), wing_style.color_blend_mode)
|
||||
if(wing_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay)
|
||||
overlay.Blend(rgb(src.r_wing2, src.g_wing2, src.b_wing2), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
if(wing_style.extra_overlay2)
|
||||
var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2)
|
||||
if(wing_style.ani_state)
|
||||
overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2_w)
|
||||
overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
var/image/working = image(wing_s)
|
||||
working.alpha = src.a_wing
|
||||
if(wing_style.em_block)
|
||||
working.overlays += em_block_image_generic(working) // Leaving this as overlays +=
|
||||
working.pixel_x -= wing_style.wing_offset
|
||||
return working
|
||||
|
||||
/mob/living/carbon/human/proc/get_ears_overlay()
|
||||
//If you are FBP with ear style and didn't set a custom one
|
||||
var/datum/robolimb/model = isSynthetic()
|
||||
@@ -1325,145 +1599,6 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
|
||||
return rendered
|
||||
|
||||
/mob/living/carbon/human/proc/get_tail_image()
|
||||
//If you are FBP with tail style and didn't set a custom one
|
||||
var/datum/robolimb/model = isSynthetic()
|
||||
if(istype(model) && model.includes_tail && !tail_style && !tail_hidden)
|
||||
var/icon/tail_s = new/icon("icon" = synthetic.icon, "icon_state" = "tail")
|
||||
tail_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD)
|
||||
return image(tail_s)
|
||||
|
||||
//If you have a custom tail selected
|
||||
if(tail_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL && !istaurtail(tail_style)) && !tail_hidden)
|
||||
var/icon/tail_s = new/icon("icon" = (tail_style.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = (wagging && tail_style.ani_state ? tail_style.ani_state : tail_style.icon_state))
|
||||
if(tail_style.can_loaf && !is_shifted)
|
||||
pixel_y = (resting) ? -tail_style.loaf_offset*size_multiplier : default_pixel_y //move player down, then taur up, to fit the overlays correctly. Taur Loafing
|
||||
if(tail_style.do_colouration)
|
||||
tail_s.Blend(rgb(src.r_tail, src.g_tail, src.b_tail), tail_style.color_blend_mode)
|
||||
if(tail_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = (tail_style.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = tail_style.extra_overlay)
|
||||
if(wagging && tail_style.ani_state)
|
||||
overlay = new/icon("icon" = (tail_style.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = tail_style.extra_overlay_w)
|
||||
overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(tail_style.extra_overlay2)
|
||||
var/icon/overlay = new/icon("icon" = (tail_style.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = tail_style.extra_overlay2)
|
||||
if(wagging && tail_style.ani_state)
|
||||
overlay = new/icon("icon" = (tail_style.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = tail_style.extra_overlay2_w)
|
||||
overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
var/image/working = image(tail_s)
|
||||
if(tail_style.em_block)
|
||||
working.overlays += em_block_image_generic(working) // Leaving this as overlays +=
|
||||
|
||||
if(istaurtail(tail_style))
|
||||
var/datum/sprite_accessory/tail/taur/taurtype = tail_style
|
||||
working.pixel_x = tail_style.offset_x
|
||||
working.pixel_y = tail_style.offset_y
|
||||
if(taurtype.can_ride && !riding_datum)
|
||||
riding_datum = new /datum/riding/taur(src)
|
||||
add_verb(src, /mob/living/carbon/human/proc/taur_mount)
|
||||
add_verb(src, /mob/living/proc/toggle_rider_reins)
|
||||
else if(islongtail(tail_style))
|
||||
working.pixel_x = tail_style.offset_x
|
||||
working.pixel_y = tail_style.offset_y
|
||||
working.alpha = src.a_tail
|
||||
return working
|
||||
return null
|
||||
|
||||
// TODO - Move this to where it should go ~Leshana
|
||||
/mob/living/proc/stop_flying()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
flying = FALSE
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/stop_flying()
|
||||
if((. = ..()))
|
||||
update_wing_showing()
|
||||
|
||||
/mob/living/carbon/human/proc/update_vore_belly_sprite()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
remove_layer(VORE_BELLY_LAYER)
|
||||
|
||||
var/image/vore_belly_image = get_vore_belly_image()
|
||||
if(vore_belly_image)
|
||||
vore_belly_image.layer = BODY_LAYER+VORE_BELLY_LAYER
|
||||
overlays_standing[VORE_BELLY_LAYER] = vore_belly_image
|
||||
//CHOMPEdit Disabling this until someone comes up with a less destructive approach. //vore_belly_image.plane = PLANE_CH_STOMACH //This one line of code. This ONE LINE OF CODE TOOK 6 HOURS TO FIGURE OUT. THANK YOU REDCAT.
|
||||
vore_belly_image.appearance_flags = appearance_flags
|
||||
|
||||
apply_layer(VORE_BELLY_LAYER)
|
||||
|
||||
/mob/living/carbon/human/proc/get_vore_belly_image()
|
||||
if(!(wear_suit && wear_suit.flags_inv & HIDETAIL))
|
||||
var/vs_fullness = vore_fullness_ex["stomach"]
|
||||
var/icon/vorebelly_s = new/icon(icon = 'modular_chomp/icons/mob/vore/Bellies.dmi', icon_state = "[species.vore_belly_default_variant]Belly[vs_fullness][struggle_anim_stomach ? "" : " idle"]") //CHOMPEdit
|
||||
vorebelly_s.Blend(vore_sprite_color["stomach"], vore_sprite_multiply["stomach"] ? ICON_MULTIPLY : ICON_ADD)
|
||||
var/image/working = image(vorebelly_s)
|
||||
working.overlays += em_block_image_generic(working)
|
||||
return working
|
||||
return null
|
||||
|
||||
/mob/living/carbon/human/proc/vore_belly_animation()
|
||||
if(!struggle_anim_stomach)
|
||||
struggle_anim_stomach = TRUE
|
||||
update_vore_belly_sprite()
|
||||
spawn(12)
|
||||
struggle_anim_stomach = FALSE
|
||||
update_vore_belly_sprite()
|
||||
|
||||
/mob/living/carbon/human/proc/update_vore_tail_sprite()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
remove_layer(VORE_TAIL_LAYER)
|
||||
|
||||
var/image/vore_tail_image = get_vore_tail_image()
|
||||
if(vore_tail_image)
|
||||
vore_tail_image.layer = BODY_LAYER+VORE_TAIL_LAYER
|
||||
overlays_standing[VORE_TAIL_LAYER] = vore_tail_image
|
||||
//CHOMPEdit Disabling this until someone comes up with a less destructive approach. //vore_tail_image.plane = PLANE_CH_STOMACH //This one line of code. This ONE LINE OF CODE TOOK 6 HOURS TO FIGURE OUT. THANK YOU REDCAT.
|
||||
vore_tail_image.appearance_flags = appearance_flags
|
||||
|
||||
apply_layer(VORE_TAIL_LAYER)
|
||||
|
||||
/mob/living/carbon/human/proc/get_vore_tail_image()
|
||||
if(tail_style && istaurtail(tail_style) && tail_style.vore_tail_sprite_variant)
|
||||
var/vs_fullness = vore_fullness_ex["taur belly"]
|
||||
var/loaf_alt = lying && tail_style.belly_variant_when_loaf
|
||||
var/fullness_icons = min(tail_style.fullness_icons, vs_fullness)
|
||||
var/icon/vorebelly_s = new/icon(icon = tail_style.bellies_icon_path, icon_state = "Taur[tail_style.vore_tail_sprite_variant]-Belly-[fullness_icons][loaf_alt ? " loaf" : (struggle_anim_taur ? "" : " idle")]")
|
||||
vorebelly_s.Blend(vore_sprite_color["taur belly"], vore_sprite_multiply["taur belly"] ? ICON_MULTIPLY : ICON_ADD)
|
||||
var/image/working = image(vorebelly_s)
|
||||
working.pixel_x = -16
|
||||
if(tail_style.em_block)
|
||||
working.overlays += em_block_image_generic(working)
|
||||
return working
|
||||
return null
|
||||
|
||||
/mob/living/carbon/human/proc/vore_tail_animation()
|
||||
if(tail_style.struggle_anim && !struggle_anim_taur)
|
||||
struggle_anim_taur = TRUE
|
||||
update_vore_tail_sprite()
|
||||
spawn(12)
|
||||
struggle_anim_taur = FALSE
|
||||
update_vore_tail_sprite()
|
||||
|
||||
/mob/living/carbon/human/proc/GetAppearanceFromPrefs(flavourtext, oocnotes)
|
||||
/* Jank code that effectively creates the client's mob from save, then copies its appearance to our current mob.
|
||||
Intended to be used with shapeshifter species so we don't reset their organs in doing so.*/
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
/mob/living/Check_Shoegrip()
|
||||
if(flying)
|
||||
return 1
|
||||
return TRUE
|
||||
..()
|
||||
|
||||
/mob/living/proc/stop_flying()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
flying = FALSE
|
||||
return TRUE
|
||||
|
||||
/mob/living/verb/customsay()
|
||||
set category = "IC.Settings"
|
||||
set name = "Customize Speech Verbs"
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
em_block = TRUE
|
||||
var/extra_overlay // Icon state of an additional overlay to blend in.
|
||||
var/extra_overlay2 //Tertiary.
|
||||
var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it. If the clothing is bulky enough to hide a tail, it should also hide wings.
|
||||
var/clothing_can_hide = TRUE // If true, clothing with HIDETAIL hides it. If the clothing is bulky enough to hide a tail, it should also hide wings.
|
||||
// var/show_species_tail = 1 // Just so // TODO - Seems not needed ~Leshana
|
||||
var/desc = DEVELOPER_WARNING_NAME
|
||||
var/ani_state // State when flapping/animated
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
/ == Tail Definitions == /
|
||||
/ =--------------------= /
|
||||
/ =OLD Tail Definitions= /
|
||||
/ =-FOR REFERENCE ONLY-= /
|
||||
////////////////////////////
|
||||
*/
|
||||
|
||||
/datum/sprite_accessory/tail
|
||||
name = DEVELOPER_WARNING_NAME
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails.dmi'
|
||||
@@ -33,7 +33,7 @@
|
||||
///ADDITIONALLY, IF YOU ADD A SPECIAL VWAG, YOU NEED TO INCLUDE ani_state, extra_overlay_w, and extra_overlay2_w INTO icon_loaf TOO!
|
||||
var/can_loaf = FALSE
|
||||
var/loaf_offset = 0
|
||||
var/list/lower_layer_dirs = list(SOUTH, WEST, EAST)
|
||||
var/list/lower_layer_dirs = LOWER_TAIL_DIRS
|
||||
var/icon_loaf = null
|
||||
|
||||
// Taur Vore
|
||||
@@ -281,6 +281,7 @@
|
||||
name = "xenomorph tail 2"
|
||||
desc = ""
|
||||
icon_state = "xenotail"
|
||||
do_colouration = FALSE
|
||||
|
||||
/datum/sprite_accessory/tail/eboop
|
||||
name = "EGN mech tail (dual color)"
|
||||
@@ -825,6 +826,7 @@
|
||||
name = "Zeng-Hu Tajaran Synth tail"
|
||||
desc = ""
|
||||
icon_state = "zenghu_taj"
|
||||
do_colouration = FALSE
|
||||
|
||||
//Taurs moved to a separate file due to extra code around them
|
||||
|
||||
@@ -2007,4 +2009,4 @@
|
||||
do_colouration = TRUE
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "chu_markings"
|
||||
extra_overlay2 = "chu_tipmarkings"
|
||||
extra_overlay2 = "chu_tipmarkings"*/
|
||||
@@ -8,7 +8,6 @@
|
||||
/datum/sprite_accessory/tail
|
||||
name = DEVELOPER_WARNING_NAME
|
||||
var/desc = DEVELOPER_WARNING_NAME
|
||||
// icon = 'icons/mob/human_races/sprite_accessories/tails.dmi'
|
||||
do_colouration = TRUE //Set to FALSE to disable coloration using the tail color.
|
||||
/// Only appliciable if do_coloration = TRUE, ICON_MULTIPLY is a white bias, ICON_ADD is a black bias for colorations of sprites.
|
||||
/// Virtually all sprites now are white-biased greyscale. The ones that aren't are pre-colored, typically donator snowflake.
|
||||
@@ -34,7 +33,7 @@
|
||||
///ADDITIONALLY, IF YOU ADD A SPECIAL VWAG, YOU NEED TO INCLUDE ani_state, extra_overlay_w, and extra_overlay2_w INTO icon_loaf TOO!
|
||||
var/can_loaf = FALSE
|
||||
var/loaf_offset = 0
|
||||
var/list/lower_layer_dirs = list(SOUTH, WEST, EAST)
|
||||
var/list/lower_layer_dirs = LOWER_TAIL_DIRS
|
||||
var/icon_loaf = null
|
||||
|
||||
// Taur Vore
|
||||
@@ -44,10 +43,42 @@
|
||||
var/struggle_anim = FALSE
|
||||
var/bellies_icon_path = 'icons/mob/vore/Taur_Bellies.dmi'
|
||||
|
||||
// Tail Socks
|
||||
/// This can usually be the default icon, since the base icon is a complete unit.
|
||||
/// Taur tails are snipped off to account for the butt positioning being easier to deal with.
|
||||
var/tailsock_icon
|
||||
var/tailsock_iconstate
|
||||
/// Same for wag states, we just need the sprite itself, not any of the custom overlays
|
||||
/// Fat Taur additions are just the belly variant, we layer this one before the vore one to account for that too.
|
||||
var/tailsock_wagicon
|
||||
// Vore belly overlays are handled in update_icons, because we just overlay the tummy colored to the tailsock if we're wearing a suit and it has a sock enabled.
|
||||
// For north facing taur tails, using the sock + whatever tail related markings are visible when not in a sock but need to be drawn higher up.
|
||||
// These are set to "none" to prevent null icon state issues
|
||||
var/tailsock_markings = "none"
|
||||
var/tailsock_markings2 = "none"
|
||||
var/tailsock_wagmarkings = "none"
|
||||
var/tailsock_wagmarkings2 = "none"
|
||||
|
||||
/datum/sprite_accessory/tail/New()
|
||||
. = ..()
|
||||
if(clip_mask_state)
|
||||
clip_mask = icon(icon = (clip_mask_icon ? clip_mask_icon : icon), icon_state = clip_mask_state)
|
||||
//because the compiler doesn't like this being preset I guess whatever loser.
|
||||
if(!tailsock_icon)
|
||||
tailsock_icon = initial(icon)
|
||||
if(!tailsock_iconstate)
|
||||
tailsock_iconstate = initial(icon_state)
|
||||
if(!tailsock_wagicon)
|
||||
tailsock_wagicon = initial(ani_state)
|
||||
//use the same naming conventions, these are for north face stuff. follows the icon file anyway, so tail_whatever, tail_sock
|
||||
if(extra_overlay)
|
||||
tailsock_markings = extra_overlay
|
||||
if(extra_overlay2)
|
||||
tailsock_markings2 = extra_overlay2
|
||||
if(extra_overlay_w)
|
||||
tailsock_wagmarkings = extra_overlay_w
|
||||
if(extra_overlay2_w)
|
||||
tailsock_wagmarkings2 = extra_overlay2_w
|
||||
|
||||
// Default invis tail
|
||||
/datum/sprite_accessory/tail/invisible
|
||||
|
||||
@@ -88,12 +88,21 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
|
||||
icon_state = "wagtail"
|
||||
|
||||
/datum/sprite_accessory/tail/peacocktail //it's been a long enough while, I'm gunna go ahead and just...
|
||||
name = "Peacock tail, colorable (vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
|
||||
icon_state = "peacocktail"
|
||||
ani_state = "peacocktail_w"
|
||||
do_colouration = TRUE
|
||||
|
||||
/datum/sprite_accessory/tail/ketrai_wag
|
||||
name = "fennix tail (vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
|
||||
icon_state = "ketraitail"
|
||||
ani_state = "ketraitail_w"
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "ketraitail_sock"
|
||||
tailsock_wagicon = "ketraitail_w_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/ketrainew_wag
|
||||
name = "new fennix tail (vwag)"
|
||||
@@ -101,6 +110,8 @@
|
||||
icon_state = "ketraitailnew"
|
||||
ani_state = "ketraitailnew_w"
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "ketraitailnew_sock"
|
||||
tailsock_wagicon = "ketraitailnew_w_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/redpanda
|
||||
name = "red panda"
|
||||
@@ -234,6 +245,7 @@
|
||||
name = "Kitsune 2 tails, colorable"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
|
||||
icon_state = "doublekitsune"
|
||||
extra_overlay = "doublekitsune-tips"
|
||||
|
||||
/datum/sprite_accessory/tail/doublekitsunealt
|
||||
name = "Kitsune 2 tails, colorable, alt"
|
||||
@@ -331,6 +343,7 @@
|
||||
name = "turkey"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
|
||||
icon_state = "turkey"
|
||||
do_colouration = FALSE
|
||||
|
||||
/datum/sprite_accessory/tail/shark_markings
|
||||
name = "akula tail, colorable, tail and fins"
|
||||
@@ -392,6 +405,7 @@
|
||||
name = "Raccoon gray tail"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
|
||||
icon_state = "raccoon_tail"
|
||||
tailsock_iconstate = "raccoon_tail_sock"
|
||||
do_colouration = FALSE
|
||||
|
||||
/datum/sprite_accessory/tail/striped_tail
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
|
||||
icon_state = "beethorax"
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "beethorax_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/buggo
|
||||
name = "Bug abdomen, colorable"
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
/datum/sprite_accessory/tail/nevreanwagdc
|
||||
name = "nevrean wagtail, dual-color"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
|
||||
icon_state = "wagtail"
|
||||
icon_state = "nevreanwagtail"
|
||||
extra_overlay = "wagtail_dc_tail"
|
||||
|
||||
/datum/sprite_accessory/tail/nevreanwagdc_alt
|
||||
name = "nevrean wagtail, marked, dual-color"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
|
||||
icon_state = "wagtail2_dc"
|
||||
icon_state = "nevreanwagtail2_dc"
|
||||
extra_overlay = "wagtail2_dc_mark"
|
||||
|
||||
/datum/sprite_accessory/tail/spade_color
|
||||
@@ -38,11 +38,14 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
|
||||
icon_state = "snag"
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "snag_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/xenotail
|
||||
name = "xenomorph tail 2"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
|
||||
icon_state = "xenotail"
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "xenotail_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/xenotail_fullcolour
|
||||
name = "xenomorph tail (fully colourable)"
|
||||
@@ -94,12 +97,15 @@
|
||||
name = "tailmaw, colorable"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
|
||||
icon_state = "tailmaw"
|
||||
tailsock_iconstate = "tailmaw_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/newtailmaw
|
||||
name = "new tailmaw (vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
|
||||
icon_state = "newtailmaw"
|
||||
tailsock_iconstate = "tailmaw_sock"
|
||||
ani_state = "newtailmaw_w"
|
||||
tailsock_wagicon = "tailmaw_w_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/shadekin_short
|
||||
name = "Shadekin Short Tail, colorable"
|
||||
|
||||
@@ -104,14 +104,12 @@
|
||||
|
||||
/datum/sprite_accessory/tail/longtail/flagtail
|
||||
name = "Flagtail"
|
||||
icon = 'icons/rogue-star/tails_64x32_rs.dmi'
|
||||
icon_state = "flagtail"
|
||||
extra_overlay = "flagtail-1"
|
||||
extra_overlay2 = "flagtail-2"
|
||||
|
||||
/datum/sprite_accessory/tail/longtail/chonksqrl
|
||||
name = "Squirrel (Big)"
|
||||
icon = 'icons/rogue-star/tails_64x32_rs.dmi'
|
||||
icon_state = "chonksqrl"
|
||||
extra_overlay = "chonksqrl-m1"
|
||||
extra_overlay2 = "chonksqrl-m2"
|
||||
|
||||
@@ -24,36 +24,28 @@
|
||||
icon_state = "bigsnaketail"
|
||||
ani_state = "bigsnaketail_w"
|
||||
|
||||
/datum/sprite_accessory/tail/bigsnaketailstripes
|
||||
/datum/sprite_accessory/tail/bigsnaketail/stripes
|
||||
name = "large snake tail, striped (vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
|
||||
icon_state = "bigsnaketailstripes"
|
||||
extra_overlay = "bigsnaketailstripes-tips"
|
||||
ani_state = "bigsnaketailstripes_w"
|
||||
extra_overlay_w = "bigsnaketailstripes-tips_w"
|
||||
|
||||
/datum/sprite_accessory/tail/bigsnaketailstripes_alt
|
||||
/datum/sprite_accessory/tail/bigsnaketail/stripes_alt
|
||||
name = "large snake tail, striped, alt (vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
|
||||
icon_state = "bigsnaketailstripesalt"
|
||||
extra_overlay = "bigsnaketailstripesalt-tips"
|
||||
ani_state = "bigsnaketailstripesalt_w"
|
||||
extra_overlay_w = "bigsnaketailstripesalt-tips_w"
|
||||
|
||||
/datum/sprite_accessory/tail/bigsnaketaildual
|
||||
/datum/sprite_accessory/tail/bigsnaketail/dual
|
||||
name = "large snake tail, dual color (vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
|
||||
icon_state = "bigsnaketaildual"
|
||||
extra_overlay = "bigsnaketaildual-tips"
|
||||
ani_state = "bigsnaketaildual_w"
|
||||
extra_overlay_w = "bigsnaketaildual-tips_w"
|
||||
|
||||
/datum/sprite_accessory/tail/bigsnaketailunder
|
||||
/datum/sprite_accessory/tail/bigsnaketail/under
|
||||
name = "large snake tail, under (vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
|
||||
icon_state = "bigsnaketailunder"
|
||||
extra_overlay = "bigsnaketailunder-tips"
|
||||
ani_state = "bigsnaketailunder_w"
|
||||
extra_overlay_w = "bigsnaketailunder-tips_w"
|
||||
|
||||
/datum/sprite_accessory/tail/tail_smooth
|
||||
@@ -62,11 +54,11 @@
|
||||
icon_state = "tail_smooth"
|
||||
ani_state = "tail_smooth_w"
|
||||
|
||||
/datum/sprite_accessory/tail/tail_smooth_dual
|
||||
/datum/sprite_accessory/tail/tail_smooth/dual
|
||||
name = "Smooth Lizard Tail, dual color"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
|
||||
icon_state = "tail_smooth"
|
||||
extra_overlay = "tail_smooth_markings"
|
||||
extra_overlay_w = "tail_smooth_w_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/Easterntail
|
||||
name = "Eastern Dragon (Animated)"
|
||||
@@ -112,6 +104,7 @@
|
||||
name = "kururak tail"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
|
||||
icon_state = "kururak"
|
||||
do_colouration = FALSE
|
||||
|
||||
/datum/sprite_accessory/tail/snaketail_stripes
|
||||
name = "snake tail with stripes, dual-color"
|
||||
|
||||
@@ -5,14 +5,8 @@
|
||||
ani_state = "peacocktail_red_w"
|
||||
ckeys_allowed = list("prettiebyrd")
|
||||
do_colouration = FALSE
|
||||
|
||||
/datum/sprite_accessory/tail/peacocktail //ditto
|
||||
name = "Peacock tail, colorable (vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
|
||||
icon_state = "peacocktail"
|
||||
ani_state = "peacocktail_w"
|
||||
do_colouration = FALSE
|
||||
ckeys_allowed = list("prettiebyrd")
|
||||
tailsock_iconstate = "peacocktail_red_sock"
|
||||
tailsock_wagicon = "peacocktail_red_w_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/perrin_tentacles
|
||||
name = "octopus tentacles"
|
||||
@@ -20,6 +14,7 @@
|
||||
icon_state = "perrintentacles"
|
||||
ckeys_allowed = list("codeme", "siennaathens")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "perrintentacles_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/kara //SatinIsle fluff item
|
||||
name = "Pterokara Tail"
|
||||
@@ -27,6 +22,7 @@
|
||||
icon_state = "kara_tail"
|
||||
ckeys_allowed = list("satinisle")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "kara_tail_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/molenar_kitsune
|
||||
name = "quintail kitsune tails (Molenar)"
|
||||
@@ -34,6 +30,7 @@
|
||||
icon_state = "molenar-kitsune"
|
||||
ckeys_allowed = list("molenar")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "molenar-kitsune_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/miria_fluffdragon
|
||||
name = "fluffdragon tail (Miria Masters)"
|
||||
@@ -41,6 +38,7 @@
|
||||
icon_state = "miria-fluffdragontail"
|
||||
ckeys_allowed = list("miriamasters")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "miria-fluffdragontail_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/miria_kitsune
|
||||
name = "Black kitsune tails (Miria Masters)"
|
||||
@@ -48,6 +46,7 @@
|
||||
icon_state = "miria-kitsunetail"
|
||||
ckeys_allowed = list("miriamasters")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "miria-kitsunetail_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/molenar_deathclaw
|
||||
name = "deathclaw bits (Molenar)"
|
||||
@@ -55,6 +54,7 @@
|
||||
icon_state = "molenar-deathclaw"
|
||||
ckeys_allowed = list("molenar","silvertalismen","jertheace")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "molenar-deathclaw_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/runac
|
||||
name = "fennecsune tails (Runac)"
|
||||
@@ -62,6 +62,7 @@
|
||||
icon_state = "runac"
|
||||
ckeys_allowed = list("rebcom1807")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "runac_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/reika //Leaving this since it was too hard to split the wings from the tail.
|
||||
name = "fox tail (+ beewings) (Reika)"
|
||||
@@ -69,6 +70,7 @@
|
||||
icon_state = "reika"
|
||||
ckeys_allowed = list("rikaru19xjenkins")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "reika_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/rosey
|
||||
name = "tritail kitsune tails (Rosey)"
|
||||
@@ -76,6 +78,7 @@
|
||||
icon_state = "rosey_three"
|
||||
ckeys_allowed = list("joey4298")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "rosey_three_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/rosey2
|
||||
name = "pentatail kitsune tails (Rosey)" //I predict seven tails next. ~CK
|
||||
@@ -83,6 +86,15 @@
|
||||
icon_state = "rosey_five"
|
||||
do_colouration = FALSE
|
||||
ckeys_allowed = list("joey4298")
|
||||
tailsock_iconstate = "rosey_five_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/longtail/roiz_long_lizard
|
||||
name = "Long Lizard Tail (Roiz Lizden)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_long.dmi'
|
||||
icon_state = "roiz_tail_s"
|
||||
do_colouration = FALSE
|
||||
ckeys_allowed = list("spoopylizz")
|
||||
tailsock_iconstate = "roiz_tail_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/scree
|
||||
name = "green taj tail (Scree)"
|
||||
@@ -90,6 +102,7 @@
|
||||
icon_state = "scree"
|
||||
ckeys_allowed = list("scree")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "scree_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/aronai
|
||||
name = "aronai tail (Aronai)"
|
||||
@@ -97,6 +110,7 @@
|
||||
icon_state = "aronai"
|
||||
ckeys_allowed = list("arokha")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "aronai_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/cabletail
|
||||
name = "cabletail"
|
||||
@@ -104,6 +118,7 @@
|
||||
icon_state = "tuckercabletail"
|
||||
ckeys_allowed = list("tucker0666")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "tuckercabletail_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/featherfluff_tail
|
||||
name = "featherfluff_tail"
|
||||
@@ -111,6 +126,7 @@
|
||||
icon_state = "tuckerfeather_tail"
|
||||
ckeys_allowed = list("tucker0666")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "tuckerfeather_tail_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/holly
|
||||
name = "tigress tail (Holly)"
|
||||
@@ -118,3 +134,4 @@
|
||||
icon_state = "hoodootail"
|
||||
ckeys_allowed = list("hoodoo")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "hoodootail_sock"
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
name = "Zeng-Hu Tajaran Synth tail"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
|
||||
icon_state = "zenghu_taj"
|
||||
do_colouration = FALSE
|
||||
|
||||
/datum/sprite_accessory/tail/wartacosushi_tail //brightened +20RGB from matching roboparts
|
||||
name = "Ward-Takahashi Tail"
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
|
||||
icon_state = "beethorax_tesh"
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "beethorax_tesh_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/teshbuggo
|
||||
name = "Teshari bug abdomen, colorable"
|
||||
|
||||
@@ -27,7 +27,8 @@
|
||||
clip_mask_icon = 'icons/mob/human_races/sprite_accessories/biglegs.dmi'
|
||||
clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
|
||||
|
||||
/datum/sprite_accessory/tail/taur/bigleggy
|
||||
//By making big leggy a subtype of longtail, it gets the offset but doesn't conflict with taur specific settings.
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy
|
||||
name = "Big Leggies"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/biglegs.dmi'
|
||||
icon_state = "bigleggy"
|
||||
@@ -36,46 +37,47 @@
|
||||
fullness_icons = 3
|
||||
ani_state = "bigleggy_stanced"
|
||||
extra_overlay_w = "bigleggy_markings_stanced"
|
||||
clip_mask_icon = 'icons/mob/human_races/sprite_accessories/biglegs.dmi'
|
||||
clip_mask_state = "taur_clip_mask_def" //Leaving this here to make it clear it it's INTENTIONAL it shows above clothes. Use the marking if you want it to show UNDER clothes!
|
||||
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/canine
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/canine
|
||||
name = "Big Leggies (Canine Tail)"
|
||||
extra_overlay2 = "bigleggy_canine"
|
||||
extra_overlay2_w = "bigleggy_canine"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/feline
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/feline
|
||||
name = "Big Leggies (Feline Tail)"
|
||||
extra_overlay2 = "bigleggy_feline"
|
||||
extra_overlay2_w = "bigleggy_feline"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/reptile
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/reptile
|
||||
name = "Big Leggies (Reptile Tail)"
|
||||
extra_overlay2 = "bigleggy_reptile"
|
||||
extra_overlay2_w = "bigleggy_reptile"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/snake
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/snake
|
||||
name = "Big Leggies (Snake Tail)"
|
||||
extra_overlay2 = "bigleggy_snake"
|
||||
extra_overlay2_w = "bigleggy_snake"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/fox
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/fox
|
||||
name = "Big Leggies (Fox Tail)"
|
||||
extra_overlay2 = "bigleggy_vulpine"
|
||||
extra_overlay2_w = "bigleggy_vulpine"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/bird
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/bird
|
||||
name = "Big Leggies (Bird)"
|
||||
extra_overlay = "bigleggy_m_bird"
|
||||
extra_overlay2 = "bigleggy_bird"
|
||||
extra_overlay_w = "bigleggy_m_bird_stanced"
|
||||
extra_overlay2_w = "bigleggy_bird"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/plug
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/plug
|
||||
name = "Big Leggies (Plug Tail)"
|
||||
extra_overlay2 = "bigleggy_plug"
|
||||
extra_overlay2_w = "bigleggy_plug"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/AlienSlug
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/AlienSlug
|
||||
name = "Big Leggies (Alien Slug Tail)"
|
||||
icon_state = "bigleggy_full_alienslug"
|
||||
extra_overlay = "bigleggy_alienslug"
|
||||
|
||||
@@ -6,11 +6,12 @@
|
||||
var/can_ride = TRUE //whether we're real rideable taur or just in that category
|
||||
offset_x = -16
|
||||
em_block = TRUE
|
||||
|
||||
/// Suit sprites are stored in icons/inventory/suit/taursuits_[name]
|
||||
var/icon/suit_sprites = null //File for suit sprites, if any.
|
||||
var/icon/under_sprites = null
|
||||
|
||||
var/icon_sprite_tag // This is where we put stuff like _Horse, so we can assign icons easier.
|
||||
tailsock_icon = 'icons/mob/human_races/sprite_accessories/taurs/taur_socks.dmi'
|
||||
|
||||
//Could do nested lists but it started becoming a nightmare. It'd be more fun for lookups of a_intent and m_intent, but then subtypes need to
|
||||
//duplicate all the messages, and it starts getting awkward. These are singletons, anyway!
|
||||
@@ -41,6 +42,14 @@
|
||||
hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case.
|
||||
clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
|
||||
|
||||
/datum/sprite_accessory/tail/taur/New()
|
||||
. = ..()
|
||||
//give us the default sprite state, hijacking icon_sprite_tag that was only ever used for saddlebags.
|
||||
if(icon_sprite_tag)
|
||||
tailsock_iconstate = "[icon_sprite_tag]_sock"
|
||||
///few taurs have working tailwags, but to ensure future proofing and no null icons the taur_sock.dmi file has these prepared.
|
||||
tailsock_wagicon = "[icon_sprite_tag]_w_sock"
|
||||
|
||||
/datum/riding/taur
|
||||
keytype = /obj/item/material/twohanded/riding_crop // Crack!
|
||||
nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
/datum/sprite_accessory/tail/taur/bunny
|
||||
name = "Bunny (Taur, Fat vwag)"
|
||||
icon = 'icons/rogue-star/tails_64x32_rs.dmi'
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "bnytr"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_bnytr.dmi'
|
||||
icon_sprite_tag = "bnytr"
|
||||
extra_overlay = "bnytr-m1"
|
||||
extra_overlay2 = "bnytr-m2"
|
||||
ani_state = "bnytr-f"
|
||||
extra_overlay_w = "bnytr-m1"
|
||||
extra_overlay2_w = "bnytr-f-m2"
|
||||
|
||||
tailsock_wagicon = "bnytr-f_sock"
|
||||
tailsock_wagmarkings = "bnytr-m1"
|
||||
tailsock_wagmarkings2 = "bnytr-f-m2"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/rogue-star/loafs_64x32.dmi'
|
||||
loaf_offset = 4
|
||||
@@ -16,7 +20,7 @@
|
||||
name = "Cow (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "cow_s"
|
||||
suit_sprites = 'icons/mob/taursuits_cow.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_cow.dmi'
|
||||
icon_sprite_tag = "cow"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -41,19 +45,19 @@
|
||||
|
||||
/datum/sprite_accessory/tail/taur/cow/fat
|
||||
name = "Fat Cow (Taur)"
|
||||
icon_sprite_tag = "fatcow"
|
||||
icon_state = "fatcow_s"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/cow/fat_wag
|
||||
name = "Cow (Taur, Fat vwag)"
|
||||
icon_state = "cow_s"
|
||||
ani_state = "fatcow_s"
|
||||
tailsock_wagicon = "fatcow_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/cow/paw // this grabs suit sprites from the normal cow, the outline is the same
|
||||
name = "Cow w/ paws (Taur)"
|
||||
icon_state = "pawcow_s"
|
||||
icon_sprite_tag = "pawcow" //little suit booties in place of the hoof cutouts.
|
||||
extra_overlay = "pawcow_markings"
|
||||
suit_sprites = 'icons/mob/taursuits_cow.dmi'
|
||||
icon_sprite_tag = "cow"
|
||||
|
||||
msg_owner_disarm_run = "You quickly push %prey to the ground with your paw!"
|
||||
msg_prey_disarm_run = "%owner pushes you down to the ground with their paw!"
|
||||
@@ -75,7 +79,9 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "deer_s"
|
||||
extra_overlay = "deer_markings"
|
||||
suit_sprites = 'icons/mob/taursuits_deer.dmi'
|
||||
ani_state = "deer_w"
|
||||
extra_overlay_w = "deer_markings_w"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_deer.dmi'
|
||||
icon_sprite_tag = "deer"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -104,6 +110,7 @@
|
||||
icon_state = "deer_s"
|
||||
ani_state = "fatdeer_s"
|
||||
extra_overlay_w = "fatdeer_markings"
|
||||
tailsock_wagicon = "fatdeer_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/deer/fatdeer
|
||||
name = "Fat Deer (Dual-color Taur)"
|
||||
@@ -114,7 +121,7 @@
|
||||
name = "Feline (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "feline_s" //I just want to talk to whomever thought every feline varient needed this same sprite but uniquely renamed...
|
||||
suit_sprites = 'icons/mob/taursuits_deer.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_feline.dmi'
|
||||
icon_sprite_tag = "feline"
|
||||
extra_overlay = "feline_markings"
|
||||
ani_state = "feline_w"
|
||||
@@ -125,10 +132,13 @@
|
||||
vore_tail_sprite_variant = "Feline"
|
||||
belly_variant_when_loaf = TRUE
|
||||
fullness_icons = 1
|
||||
tailsock_markings = "none"
|
||||
tailsock_wagmarkings = "none"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/feline/fat
|
||||
name = "Fat Feline (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
icon_sprite_tag = "fatfeline"
|
||||
extra_overlay = "fatfeline_markings" //feet, belly, and chest
|
||||
ani_state = "fatfeline_w"
|
||||
extra_overlay_w = "fatfeline_markings"
|
||||
@@ -138,12 +148,15 @@
|
||||
name = "Fat Feline (Taur, Fat vwag)"
|
||||
ani_state = "fatfeline_s" //static fat sprite
|
||||
can_loaf = TRUE
|
||||
icon_sprite_tag = "fatfeline"
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 3
|
||||
tailsock_wagicon = "fatfeline_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/feline/fatfeline_2c
|
||||
name = "Fat Feline 3-color (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
icon_sprite_tag = "fatfeline"
|
||||
extra_overlay = "fatfeline2_markings" // chest and belly
|
||||
extra_overlay2 = "fatfeline2_markings_2" // feet
|
||||
can_loaf = TRUE
|
||||
@@ -154,7 +167,6 @@
|
||||
icon_state = "feline_s"
|
||||
extra_overlay = "feline2_markings"
|
||||
extra_overlay2 = "feline2_markings_2"
|
||||
//icon_sprite_tag = "feline2c"
|
||||
can_loaf = TRUE
|
||||
|
||||
/datum/sprite_accessory/tail/taur/feline/feline_2c_wag
|
||||
@@ -162,19 +174,16 @@
|
||||
extra_overlay = "feline2_markings"
|
||||
extra_overlay2 = "feline2_markings_2"
|
||||
ani_state = "fatfeline_s"
|
||||
extra_overlay = "fatfeline2_markings"
|
||||
extra_overlay2 = "fatfeline2_markings_2"
|
||||
extra_overlay_w = "fatfeline2_markings"
|
||||
extra_overlay2_w = "fatfeline2_markings_2"
|
||||
loaf_offset = 3
|
||||
|
||||
/datum/sprite_accessory/tail/taur/feline/tiger
|
||||
name = "Tiger (Taur)"
|
||||
suit_sprites = 'icons/mob/taursuits_deer.dmi'
|
||||
icon_sprite_tag = "feline"
|
||||
extra_overlay = "feline_markings"
|
||||
extra_overlay2 = "tiger_markings"
|
||||
extra_overlay2_w = "tiger_markings_w"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 5
|
||||
vore_tail_sprite_variant = "Feline"
|
||||
belly_variant_when_loaf = TRUE
|
||||
@@ -183,21 +192,25 @@
|
||||
/datum/sprite_accessory/tail/taur/feline/tiger/fat
|
||||
name = "Fat Tiger (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
icon_sprite_tag = "fatfeline"
|
||||
extra_overlay = "fatfeline_markings"
|
||||
extra_overlay2 = "fattiger_markings"
|
||||
extra_overlay2_w = "fattiger_markings_w"
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 3
|
||||
tailsock_markings2 = "tiger_markings"
|
||||
tailsock_wagmarkings2 = "tiger_markings_w"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/feline/tiger/fat_vwag
|
||||
name = "Tiger (Taur, Fat vwag)"
|
||||
ani_state = "fatfeline_s"
|
||||
extra_overlay_w = "fatfeline_markings"
|
||||
extra_overlay2_w = "fattiger_markings"
|
||||
tailsock_wagicon = "fatfeline_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/fox
|
||||
name = "Fox (Taur, 3-color)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_fox.dmi'
|
||||
icon_state = "fox"
|
||||
extra_overlay = "fox_markings"
|
||||
extra_overlay2 = "fox_markings2"
|
||||
@@ -210,6 +223,7 @@
|
||||
/datum/sprite_accessory/tail/taur/fox/kitsune
|
||||
name = "Kitsune (Taur)"
|
||||
icon_state = "kitsune"
|
||||
icon_sprite_tag = "kitsune"
|
||||
extra_overlay = "kitsune_markings"
|
||||
extra_overlay2 = "kitsune_markings2"
|
||||
|
||||
@@ -223,8 +237,8 @@
|
||||
name = "Horse (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "horse_s"
|
||||
under_sprites = 'icons/mob/taursuits_horse.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_horse.dmi'
|
||||
under_sprites = 'icons/inventory/suit/taursuits_horse.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_horse.dmi'
|
||||
icon_sprite_tag = "horse"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -250,12 +264,12 @@
|
||||
/datum/sprite_accessory/tail/taur/horse/big
|
||||
name = "Kentauri (Taur)"
|
||||
icon_state = "kentauri_s"
|
||||
icon_sprite_tag = "kentauri"
|
||||
extra_overlay = "kentauri_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/horse/horse_2c
|
||||
name = "Horse & colorable tail (Taur)"
|
||||
extra_overlay = "horse_markings"
|
||||
//icon_sprite_tag = "wolf2c"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/otie
|
||||
name = "Otie (Taur)"
|
||||
@@ -263,7 +277,10 @@
|
||||
icon_state = "otie_s"
|
||||
extra_overlay = "otie_markings"
|
||||
extra_overlay2 = "otie_markings_2"
|
||||
suit_sprites = 'icons/mob/taursuits_otie.dmi'
|
||||
ani_state = "otie_w"
|
||||
extra_overlay_w = "otie_markings_w"
|
||||
extra_overlay2_w = "otie_markings_2w"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_otie.dmi'
|
||||
icon_sprite_tag = "otie"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -271,10 +288,15 @@
|
||||
vore_tail_sprite_variant = "Otie"
|
||||
belly_variant_when_loaf = TRUE
|
||||
fullness_icons = 1
|
||||
tailsock_markings = "none"
|
||||
tailsock_wagmarkings = "none"
|
||||
tailsock_markings2 = "otie_markings"
|
||||
tailsock_wagmarkings2 = "otie_markings_w"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/rat
|
||||
name = "Rat (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_rat.dmi'
|
||||
icon_state = "rat_s"
|
||||
extra_overlay = "rat_markings"
|
||||
clip_mask_state = "taur_clip_mask_rat"
|
||||
@@ -283,18 +305,22 @@
|
||||
/datum/sprite_accessory/tail/taur/redpanda
|
||||
name = "Red Panda (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_redpanda.dmi'
|
||||
icon_state = "redpanda"
|
||||
icon_sprite_tag = "redpanda"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/redpanda/dc
|
||||
name = "Red Panda (Taur dual-color)"
|
||||
icon_state = "redpanda_dc"
|
||||
extra_overlay = "redpanda_dc_markings"
|
||||
tailsock_markings = "redpanda_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/sergal/wheaties
|
||||
name = "Sergal (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_sergal.dmi'
|
||||
icon_state = "sergwheat"
|
||||
icon_sprite_tag = "wolf"
|
||||
icon_sprite_tag = "sergal"
|
||||
vore_tail_sprite_variant = "N"
|
||||
fullness_icons = 3
|
||||
struggle_anim = TRUE
|
||||
@@ -302,7 +328,6 @@
|
||||
/datum/sprite_accessory/tail/taur/sergal/wheaties/fat
|
||||
name = "Fat Sergal (Taur)"
|
||||
icon_state = "fatsergal"
|
||||
icon_sprite_tag = "wolf"
|
||||
vore_tail_sprite_variant = "N"
|
||||
fullness_icons = 3
|
||||
struggle_anim = TRUE
|
||||
@@ -312,7 +337,7 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "sergwheat"
|
||||
extra_overlay = "sergwheat_markings"
|
||||
icon_sprite_tag = "wolf"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_sergal.dmi'
|
||||
vore_tail_sprite_variant = "N"
|
||||
fullness_icons = 3
|
||||
struggle_anim = TRUE
|
||||
@@ -321,7 +346,6 @@
|
||||
name = "Fat Sergal (Taur, dual-color)"
|
||||
icon_state = "fatsergal"
|
||||
extra_overlay = "sergwheat_markings"
|
||||
icon_sprite_tag = "wolf"
|
||||
vore_tail_sprite_variant = "N"
|
||||
fullness_icons = 3
|
||||
struggle_anim = TRUE
|
||||
@@ -332,6 +356,7 @@
|
||||
icon_state = "skunk_s"
|
||||
extra_overlay = "skunk_markings"
|
||||
extra_overlay2 = "skunk_markings_2"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_skunk.dmi'
|
||||
icon_sprite_tag = "skunk"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -344,8 +369,8 @@
|
||||
name = "Wolf (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "wolf_s"
|
||||
under_sprites = 'icons/mob/taursuits_wolf.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_wolf.dmi'
|
||||
under_sprites = 'icons/inventory/suit/taursuits_wolf.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_wolf.dmi'
|
||||
icon_sprite_tag = "wolf"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -358,75 +383,96 @@
|
||||
name = "Fat Wolf (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "fatwolf_s"
|
||||
icon_sprite_tag = "wolf" //This could be modified later.
|
||||
icon_sprite_tag = "fatwolf"
|
||||
loaf_offset = 3
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/fat_wag
|
||||
name = "Wolf (Taur, Fat vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "wolf_s"
|
||||
ani_state = "fatwolf_s"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/fatwolf_2c
|
||||
name = "Fat Wolf 3-color (Taur)"
|
||||
icon_state = "fatwolf2_s"
|
||||
extra_overlay = "fatwolf2_markings"
|
||||
extra_overlay2 = "fatwolf2_markings_2"
|
||||
loaf_offset = 3
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/fatwolf_2c/fatwolfalt
|
||||
name = "Fat Wolf 3-color-alt (Taur)"
|
||||
icon_state = "fatwolfalt_s"
|
||||
extra_overlay = "fatwolfalt_markings1"
|
||||
extra_overlay2 = "fatwolfalt_markings2"
|
||||
icon_sprite_tag = "wolf"
|
||||
tailsock_wagicon = "fatwolf_s"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/wolf_2c
|
||||
name = "Wolf 3-color (Taur)"
|
||||
icon_state = "wolf_s"
|
||||
extra_overlay = "wolf_markings"
|
||||
extra_overlay2 = "wolf_markings_2"
|
||||
//icon_sprite_tag = "wolf2c"
|
||||
extra_overlay = "wolf2_markings"
|
||||
extra_overlay2 = "wolf2_markings_2"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/wolf_2c_wag
|
||||
name = "Wolf 3-color (Taur, Fat vwag)"
|
||||
icon_state = "wolf2_s"
|
||||
extra_overlay = "wolf2_markings"
|
||||
extra_overlay2 = "wolf2_markings_2"
|
||||
ani_state = "fatwolf_s"
|
||||
extra_overlay_w = "fatwolf2_markings"
|
||||
extra_overlay2_w = "fatwolf2_markings_2"
|
||||
ani_state = "fatwolf2_s"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/fat/wolf_2c
|
||||
name = "Fat Wolf 3-color (Taur)"
|
||||
extra_overlay = "fatwolf2_markings"
|
||||
extra_overlay2 = "fatwolf2_markings_2"
|
||||
loaf_offset = 3
|
||||
icon_sprite_tag = "fatwolf"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/fat/altwolf_2c
|
||||
name = "Fat Wolf 3-color-alt (Taur)"
|
||||
extra_overlay = "fatwolfalt_markings1"
|
||||
extra_overlay2 = "fatwolfalt_markings2"
|
||||
icon_sprite_tag = "fatwolf"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/wolf_3
|
||||
name = "WolfTG (Taur)" //It's Citadel, not TG. :V
|
||||
icon_state = "wolf3_s"
|
||||
icon_state = "wolftg"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_husky.dmi'
|
||||
clip_mask_state = "taur_clip_mask_husky"
|
||||
do_colouration = FALSE //this is already pre-colored.
|
||||
tailsock_markings = "wolftg"
|
||||
tailsock_wagmarkings = "wolftg_w"
|
||||
icon_sprite_tag = "wolftg"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/husky
|
||||
name = "Husky (Taur)"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_husky.dmi'
|
||||
clip_mask_state = "taur_clip_mask_husky"
|
||||
icon_state = "husky_s"
|
||||
extra_overlay = "husky_markings" //Only affects the black back / tail fluff sections, so it works for the fat one too
|
||||
ani_state = "husky_w"
|
||||
extra_overlay_w = "husky_markings_w"
|
||||
icon_sprite_tag = "husky"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/huskyfat
|
||||
name = "Fat Husky (Taur)"
|
||||
icon_state = "huskyf_s"
|
||||
icon_state = "fathusky_s"
|
||||
extra_overlay = "husky_markings"
|
||||
ani_state = "fathusky_w"
|
||||
extra_overlay_w = "husky_markings_w"
|
||||
icon_sprite_tag = "fathusky"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/zorgoia
|
||||
name = "Zorgoia (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "zorgoia"
|
||||
extra_overlay = "zorgoia_fluff"
|
||||
icon_sprite_tag = "zorgoia"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_zorgoia.dmi'
|
||||
|
||||
/datum/sprite_accessory/tail/taur/zorgoia/fat
|
||||
name = "Zorgoia (Fat Taur)"
|
||||
extra_overlay = "zorgoia_fat2"
|
||||
icon_state = "zorgoia_fat"
|
||||
extra_overlay = "zorgoia_fat_fluff"
|
||||
icon_sprite_tag = "zorgoia_fat"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/zorgoia_new
|
||||
name = "Zorgoia (Taur) (New)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "zorgoia_new"
|
||||
icon_sprite_tag = "zorgoia_new"
|
||||
extra_overlay = "zorgoia_new_fluff"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_zorgoia.dmi'
|
||||
|
||||
/datum/sprite_accessory/tail/taur/zorgoia_new/fatvwag
|
||||
name = "Zorgoia (Taur, vwag) (New)"
|
||||
ani_state = "zorgoia_new_fat"
|
||||
extra_overlay_w = "zorgoia_new_fat_fluff"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/zorgoia_new/fat
|
||||
name = "Zorgoia (Fat Taur) (New)"
|
||||
icon_state = "zorgoia_new_fat"
|
||||
extra_overlay = "zorgoia_new_fat_overlay"
|
||||
extra_overlay = "zorgoia_new_fat_fluff"
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
|
||||
icon_state = "giantspidertaur"
|
||||
do_colouration = FALSE
|
||||
extra_overlay = null
|
||||
icon_sprite_tag = "giantspidertaur"
|
||||
|
||||
msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
|
||||
@@ -43,42 +42,38 @@
|
||||
/datum/sprite_accessory/tail/taur/giantspider/carrier
|
||||
name = "Carrier Spider (Taur)"
|
||||
icon_state = "carrierspidertaur"
|
||||
extra_overlay = null
|
||||
icon_sprite_tag = "carrierspidertaur"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/giantspider/phoron
|
||||
name = "Phorogenic Spider (Taur)"
|
||||
icon_state = "phoronspidertaur"
|
||||
extra_overlay = null
|
||||
icon_sprite_tag = "phoronspidertaur"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/giantspider/spark
|
||||
name = "Voltaic Spider (Taur)"
|
||||
icon_state = "sparkspidertaur"
|
||||
extra_overlay = null
|
||||
icon_sprite_tag = "sparkspidertaur"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/giantspider/frost
|
||||
name = "Frost Spider (Taur)"
|
||||
icon_state = "frostspidertaur"
|
||||
extra_overlay = null
|
||||
icon_sprite_tag = "frostspidertaur"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/giantspider/ant //technically not a spider, but it inherits the same messages
|
||||
name = "Ant (dual color)"
|
||||
icon_state = "ant_s"
|
||||
do_colouration = TRUE
|
||||
extra_overlay = "ant_markings"
|
||||
clip_mask_state = "taur_clip_mask_wasp"
|
||||
icon_sprite_tag = "wasp"
|
||||
icon_sprite_tag = "ant"
|
||||
do_colouration = TRUE
|
||||
|
||||
/datum/sprite_accessory/tail/taur/giantspider/wasp //same as above, but for wasps
|
||||
name = "Wasp (dual color)"
|
||||
icon_state = "wasp_s"
|
||||
do_colouration = TRUE
|
||||
extra_overlay = "wasp_markings"
|
||||
clip_mask_state = "taur_clip_mask_wasp"
|
||||
icon_sprite_tag = "wasp"
|
||||
do_colouration = TRUE
|
||||
|
||||
/datum/sprite_accessory/tail/taur/mermaid
|
||||
name = "Mermaid (Taur)"
|
||||
@@ -121,22 +116,23 @@
|
||||
|
||||
/datum/sprite_accessory/tail/taur/mermaid/alt/marked
|
||||
name = "Mermaid Koi (Taur)"
|
||||
icon_state = "altmermaid_s"
|
||||
extra_overlay = "altmermaid_markings"
|
||||
extra_overlay2 = "altmermaid_markings2"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/horse/scoli
|
||||
name = "Scolipede (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_scoli.dmi'
|
||||
icon_state = "scoli_s"
|
||||
extra_overlay = "scoli_markings1"
|
||||
extra_overlay2 = "scoli_markings2"
|
||||
icon_sprite_tag = "scoli"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/spider
|
||||
name = "Spider (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
|
||||
icon_state = "spider_s"
|
||||
suit_sprites = 'icons/mob/taursuits_spider.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_spider.dmi'
|
||||
icon_sprite_tag = "spider"
|
||||
|
||||
msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
|
||||
@@ -157,6 +153,7 @@
|
||||
/datum/sprite_accessory/tail/taur/sloog
|
||||
name = "Sloog (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_sloog.dmi'
|
||||
icon_state = "sloog"
|
||||
extra_overlay = "sloog_glowstripe"
|
||||
extra_overlay_w = "sloog_glowstripe"
|
||||
@@ -166,7 +163,6 @@
|
||||
name = "Slug (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
|
||||
icon_state = "slug_s"
|
||||
suit_sprites = 'icons/mob/taursuits_deer.dmi' //Yes it sounds odd, but they share the same sprites.
|
||||
icon_sprite_tag = "slug"
|
||||
vore_tail_sprite_variant = "Slug"
|
||||
fullness_icons = 1
|
||||
@@ -200,15 +196,15 @@
|
||||
|
||||
/datum/sprite_accessory/tail/taur/slug/snail
|
||||
name = "Snail (Taur)"
|
||||
icon_state = "slug_s"
|
||||
extra_overlay = "snail_shell_marking"
|
||||
icon_sprite_tag = "snail"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/tents
|
||||
name = "Tentacles (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
|
||||
icon_state = "tent_s"
|
||||
icon_sprite_tag = "tentacle"
|
||||
can_ride = 0
|
||||
can_ride = FALSE
|
||||
|
||||
msg_prey_stepunder = "You run between %prey's tentacles."
|
||||
msg_owner_stepunder = "%owner runs between your tentacles."
|
||||
@@ -241,6 +237,7 @@
|
||||
name = "Tree Roots (Oak)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
|
||||
icon_state = "tree_oak_roots"
|
||||
icon_sprite_tag = "tree_oak_roots"
|
||||
can_ride = FALSE
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
/datum/sprite_accessory/tail/taur/drake //Enabling on request, no suit compatibility but then again see 2 above.
|
||||
/datum/sprite_accessory/tail/taur/drake
|
||||
name = "Drake (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_reptile.dmi'
|
||||
icon_state = "drake_s"
|
||||
extra_overlay = "drake_markings"
|
||||
/// suit_sprites = 'icons/mob/taursuits_drake.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_drake_ch.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_drake.dmi'
|
||||
icon_sprite_tag = "drake"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -17,98 +16,71 @@
|
||||
name = "Fat Drake (Taur)"
|
||||
icon_state = "fatdrake_s"
|
||||
extra_overlay = "fatdrake_markings"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
icon_sprite_tag = "fatdrake"
|
||||
vore_tail_sprite_variant = "FatDrake"
|
||||
loaf_offset = 6
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/drake_vwag
|
||||
name = "Drake (Taur, Fat vwag)"
|
||||
icon_state = "drake_s"
|
||||
extra_overlay = "drake_markings"
|
||||
ani_state = "fatdrake_s"
|
||||
extra_overlay_w = "fatdrake_markings"
|
||||
can_loaf = TRUE
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/extended
|
||||
name = "Fat Drake Extended (Taur)"
|
||||
icon_state = "extended_fatdrake"
|
||||
extra_overlay = "extended_fatdrake_markings"
|
||||
extra_overlay2 = "extended_fatdrake_markings2"
|
||||
fullness_icons = 2
|
||||
can_loaf = TRUE //Soon //Actually, NOW
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
|
||||
loaf_offset = 5
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/extended/spotty
|
||||
name = "Fat Spotted Drake Extended (Taur)"
|
||||
vore_tail_sprite_variant = "FatDrake"
|
||||
icon_state = "spottedextended_fatdrake"
|
||||
extra_overlay = "spottedextended_fatdrake_markings"
|
||||
extra_overlay_w = "spottedextended_fatdrake_markings"
|
||||
extra_overlay2 = "spottedextended_fatdrake_markings_2"
|
||||
extra_overlay2_w = "spottedextended_fatdrake_markings_2"
|
||||
fullness_icons = 2
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
|
||||
loaf_offset = 5
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/spotty
|
||||
name = "Spotted Drake (Taur, Tricolor)"
|
||||
icon_state = "spotteddrake_s"
|
||||
extra_overlay = "spotteddrake_markings"
|
||||
extra_overlay_w = "spotteddrake_markings"
|
||||
extra_overlay2 = "spotteddrake_markings_2"
|
||||
extra_overlay2_w = "spotteddrake_markings_2"
|
||||
suit_sprites = 'icons/mob/taursuits_drake_ch.dmi'
|
||||
icon_sprite_tag = "drake"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
|
||||
extra_overlay2_w = "spotteddrake_markings"
|
||||
loaf_offset = 6
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/fat/spotty
|
||||
name = "Fat Spotted Drake (Taur, Tricolor)"
|
||||
vore_tail_sprite_variant = "FatDrake"
|
||||
icon_state = "fatspotteddrake_s"
|
||||
extra_overlay = "fatspotteddrake_markings"
|
||||
extra_overlay_w = "fatspotteddrake_markings"
|
||||
extra_overlay2 = "fatspotteddrake_markings_2"
|
||||
extra_overlay2_w = "fatspotteddrake_markings_2"
|
||||
extra_overlay2 = "fatspotteddrake_markings"
|
||||
extra_overlay2_w = "fatspotteddrake_markings"
|
||||
fullness_icons = 2
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
|
||||
loaf_offset = 6
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/extended_alt
|
||||
/datum/sprite_accessory/tail/taur/drake/drake_vwag/spotty
|
||||
name = "Spotted Drake (Taur, Tricolor, Fat vwag)"
|
||||
extra_overlay2 = "spotteddrake_markings"
|
||||
extra_overlay2_w = "fatspotteddrake_markings"
|
||||
loaf_offset = 6
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/extended
|
||||
name = "Drake Extended (Taur)"
|
||||
vore_tail_sprite_variant = "Drake"
|
||||
icon_state = "extended_drake"
|
||||
extra_overlay = "extended_drake_markings"
|
||||
extra_overlay_w = "extended_drake_markings"
|
||||
extra_overlay2 = "extended_drake_markings_2"
|
||||
extra_overlay2_w = "extended_drake_markings_2"
|
||||
icon_state = "extendeddrake"
|
||||
extra_overlay = "extendeddrake_markings"
|
||||
extra_overlay_w = "extendeddrake_markings"
|
||||
extra_overlay2 = "extendeddrake_markings_2"
|
||||
extra_overlay2_w = "extendeddrake_markings_2"
|
||||
icon_sprite_tag = "extendeddrake"
|
||||
fullness_icons = 3
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 5
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/extended_alt/spotted
|
||||
/datum/sprite_accessory/tail/taur/drake/extended/spotted
|
||||
name = "Spotted Drake Extended (Taur)"
|
||||
vore_tail_sprite_variant = "Drake"
|
||||
icon_state = "spottedextended_drake"
|
||||
extra_overlay = "spottedextended_drake_markings"
|
||||
extra_overlay_w = "spottedextended_drake_markings"
|
||||
extra_overlay2 = "spottedextended_drake_markings_2"
|
||||
extra_overlay2_w = "spottedextended_drake_markings_2"
|
||||
fullness_icons = 3
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
|
||||
loaf_offset = 5
|
||||
extra_overlay2 = "spottedextendeddrake_markings"
|
||||
extra_overlay2_w = "spottedextendeddrake_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/extended/fat
|
||||
name = "Fat Drake Extended (Taur)"
|
||||
icon_state = "extendedfatdrake"
|
||||
extra_overlay = "extendedfatdrake_markings"
|
||||
extra_overlay2 = "extendedfatdrake_markings_2"
|
||||
icon_sprite_tag = "extendedfatdrake"
|
||||
vore_tail_sprite_variant = "FatDrake"
|
||||
fullness_icons = 2
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/extended/fat/spotty
|
||||
name = "Fat Spotted Drake Extended (Taur)"
|
||||
extra_overlay2 = "spottedextendedfatdrake_markings"
|
||||
extra_overlay2_w = "spottedextendedfatdrake_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard
|
||||
name = "Lizard (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_reptile.dmi'
|
||||
icon_state = "lizard_s"
|
||||
suit_sprites = 'icons/mob/taursuits_lizard_ch.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_lizard.dmi'
|
||||
icon_sprite_tag = "lizard"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -116,36 +88,16 @@
|
||||
vore_tail_sprite_variant = "Lizard"
|
||||
fullness_icons = 1
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/fatlizard
|
||||
name = "Fat Lizard (Taur)"
|
||||
icon_state = "fatlizard_s"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 3
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/lizard_wag
|
||||
name = "Lizard (Taur, Fat vwag)"
|
||||
icon_state = "lizard_s"
|
||||
ani_state = "fatlizard_s"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/lizard_2c
|
||||
/datum/sprite_accessory/tail/taur/lizard/twocolor
|
||||
name = "Lizard dual-color (Taur)"
|
||||
icon_state = "lizard_s"
|
||||
extra_overlay = "lizard_markings"
|
||||
//icon_sprite_tag = "lizard2c"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 5
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/fatlizard_2c
|
||||
name = "Fat Lizard (Taur, dual-color)"
|
||||
icon_state = "fatlizard_s"
|
||||
extra_overlay = "fatlizard_markings"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 3
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/lizard_2c_wag
|
||||
/datum/sprite_accessory/tail/taur/lizard/twocolor_wag
|
||||
name = "Fat Lizard (Taur, dual-color, Fat vwag)"
|
||||
icon_state = "lizard_s"
|
||||
extra_overlay = "lizard_markings"
|
||||
@@ -154,32 +106,40 @@
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/spotty
|
||||
name = "Spotted Lizard (Taur, Tricolor)"
|
||||
icon_state = "spottedlizard_s"
|
||||
extra_overlay = "spottedlizard_markings"
|
||||
extra_overlay_w = "spottedlizard_markings"
|
||||
extra_overlay2 = "spottedlizard_markings_2"
|
||||
extra_overlay2_w = "spottedlizard_markings_2"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
|
||||
loaf_offset = 5
|
||||
extra_overlay2 = "spottedlizard_markings"
|
||||
extra_overlay2_w = "spottedlizard_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/spotty_fat
|
||||
name = "Fat Spotted Lizard (Taur, Tricolor)"
|
||||
icon_state = "fatspottedlizard_s"
|
||||
extra_overlay = "fatspottedlizard_markings"
|
||||
extra_overlay_w = "fatspottedlizard_markings"
|
||||
extra_overlay2 = "fatspottedlizard_markings_2"
|
||||
extra_overlay2_w = "fatspottedlizard_markings_2"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
|
||||
/datum/sprite_accessory/tail/taur/lizard/spotty_wag
|
||||
name = "Spotted Lizard (Taur, Tricolor, Fat vwag)"
|
||||
ani_state = "fatlizard_s"
|
||||
extra_overlay_w = "fatlizard_markings"
|
||||
extra_overlay2 = "fatspottedlizard_markings"
|
||||
extra_overlay2_w = "fatspottedlizard_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/fatlizard
|
||||
name = "Fat Lizard (Taur)"
|
||||
icon_state = "fatlizard_s"
|
||||
icon_sprite_tag = "fatlizard"
|
||||
loaf_offset = 3
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/fatlizard/twocolor
|
||||
name = "Fat Lizard (Taur, dual-color)"
|
||||
extra_overlay = "fatlizard_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/fatlizard/spotty
|
||||
name = "Fat Spotted Lizard (Taur, Tricolor)"
|
||||
extra_overlay = "fatlizard_markings"
|
||||
extra_overlay_w = "fatlizard_markings"
|
||||
extra_overlay2 = "fatspottedlizard_markings"
|
||||
extra_overlay2_w = "fatspottedlizard_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga
|
||||
name = "Naga (Taur)"
|
||||
//TODO: MOAR NAGA SUITS
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_reptile.dmi'
|
||||
icon_state = "naga_s"
|
||||
suit_sprites = 'icons/mob/taursuits_naga.dmi'
|
||||
//icon_sprite_tag = "naga"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_naga.dmi'
|
||||
icon_sprite_tag = "naga"
|
||||
vore_tail_sprite_variant = "Naga"
|
||||
fullness_icons = 1
|
||||
|
||||
@@ -214,51 +174,41 @@
|
||||
name = "Naga (Taur, Fat, dual color)"
|
||||
icon_state = "fatnaga_s"
|
||||
extra_overlay = "fatnaga_markings"
|
||||
suit_sprites = null
|
||||
icon_sprite_tag = "fatnaga"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga/naga_2c
|
||||
/datum/sprite_accessory/tail/taur/naga/naga_twocolor
|
||||
name = "Naga dual-color (Taur)"
|
||||
icon_state = "naga_s"
|
||||
extra_overlay = "naga_markings"
|
||||
//icon_sprite_tag = "naga2c"
|
||||
|
||||
//should really be called 'thin naga'
|
||||
/datum/sprite_accessory/tail/taur/naga/alt
|
||||
name = "Naga alt (Taur)"
|
||||
icon_state = "naga_alt_s"
|
||||
icon_state = "altnaga_s"
|
||||
vore_tail_sprite_variant = "NagaAlt"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_naga_alt.dmi'
|
||||
fullness_icons = 1
|
||||
icon_sprite_tag = "altnaga"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga/alt/second
|
||||
name = "Naga dual-color alt (Taur)"
|
||||
extra_overlay = "naga_alt_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga/alt_2c
|
||||
/datum/sprite_accessory/tail/taur/naga/alt/twocolor
|
||||
name = "Naga alt style dual-color (Taur)"
|
||||
suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
|
||||
icon_state = "altnaga_s"
|
||||
extra_overlay = "altnaga_markings"
|
||||
//icon_sprite_tag = "altnaga2c"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga/alt_3c
|
||||
/datum/sprite_accessory/tail/taur/naga/alt/threecolor
|
||||
name = "Naga alt style tri-color (Taur)"
|
||||
suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
|
||||
icon_state = "altnaga_s"
|
||||
extra_overlay = "altnaga_markings"
|
||||
extra_overlay2 = "altnaga_stripes"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga/alt_3c_rattler
|
||||
/datum/sprite_accessory/tail/taur/naga/alt/threecolor_rattler
|
||||
name = "Naga alt style tri-color, rattler (Taur)"
|
||||
suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
|
||||
icon_state = "altnaga_s"
|
||||
extra_overlay = "altnaga_markings"
|
||||
extra_overlay2 = "altnaga_rattler"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga/alt_3c_tailmaw
|
||||
/datum/sprite_accessory/tail/taur/naga/alt/threecolor_tailmaw
|
||||
name = "Naga alt style tri-color, tailmaw (Taur)"
|
||||
suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
|
||||
icon_state = "altnagatailmaw_s"
|
||||
extra_overlay = "altnagatailmaw_markings"
|
||||
extra_overlay2 = "altnagatailmaw_eyes"
|
||||
icon_sprite_tag = "altnagatailmaw"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/noodle
|
||||
name = "Eastern Dragon (Taur)"
|
||||
@@ -266,7 +216,7 @@
|
||||
icon_state = "noodle_s"
|
||||
extra_overlay = "noodle_markings"
|
||||
extra_overlay2 = "noodle_markings_2"
|
||||
suit_sprites = 'icons/mob/taursuits_noodle.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_noodle.dmi'
|
||||
clip_mask_state = "taur_clip_mask_noodle"
|
||||
icon_sprite_tag = "noodle"
|
||||
|
||||
|
||||
@@ -1,16 +1,4 @@
|
||||
// Special snowflake tails/taurhalves
|
||||
|
||||
//spoopylizz: Roiz Lizden
|
||||
/datum/sprite_accessory/tail/taur/roiz_long_lizard // Not ACTUALLY a taur, but it uses 64x32 so it wouldn't fit in tails.dmi, and having it as a tail bugs up the sprite.
|
||||
name = "Long Lizard Tail (Roiz Lizden)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_snowflake.dmi'
|
||||
icon_state = "roiz_tail_s"
|
||||
do_colouration = FALSE
|
||||
ckeys_allowed = list("spoopylizz")
|
||||
hide_body_parts = null
|
||||
clip_mask_icon = null
|
||||
clip_mask_state = null
|
||||
|
||||
//grallstonefist: Ranihrönn Skrolk
|
||||
/datum/sprite_accessory/tail/taur/altmermaid/orcamermaid
|
||||
name = "Mermaid Orca (Taur)"
|
||||
@@ -19,6 +7,7 @@
|
||||
can_ride = TRUE
|
||||
do_colouration = FALSE
|
||||
ckeys_allowed = list("grallstonefist")
|
||||
tailsock_markings = "orcamermaid_marking"
|
||||
|
||||
//wickedtemp: Chakat Tempest
|
||||
/datum/sprite_accessory/tail/taur/feline/tempest
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "sectdrone"
|
||||
extra_overlay = "sectdrone_markings"
|
||||
icon_sprite_tag = "sectdrone"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
vore_tail_sprite_variant = "SectDrone"
|
||||
@@ -10,6 +11,7 @@
|
||||
struggle_anim = TRUE
|
||||
loaf_offset = 3
|
||||
fullness_icons = 3
|
||||
clip_mask_state = "taur_clip_mask_sectdrone"
|
||||
|
||||
msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
|
||||
msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
|
||||
@@ -26,21 +28,21 @@
|
||||
msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
|
||||
msg_prey_grab_fail = "%owner steps down and squishes you with their leg, forcing you down to the ground!"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/sect_drone/drone_wag
|
||||
/datum/sprite_accessory/tail/taur/sectdrone/drone_wag
|
||||
name = "Sect Drone (Taur, Fat vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "sect_drone"
|
||||
extra_overlay = "sect_drone_markings"
|
||||
ani_state = "fat_sect_drone"
|
||||
extra_overlay_w = "fat_sect_drone_markings"
|
||||
icon_sprite_tag = "sect_drone"
|
||||
icon_state = "sectdrone"
|
||||
extra_overlay = "sectdrone_markings"
|
||||
ani_state = "fatsectdrone"
|
||||
extra_overlay_w = "fatsectdrone_markings"
|
||||
icon_sprite_tag = "sectdrone"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/sect_drone/fat
|
||||
/datum/sprite_accessory/tail/taur/sectdrone/fat
|
||||
name = "Fat Sect Drone (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "fat_sect_drone"
|
||||
extra_overlay = "fat_sect_drone_markings"
|
||||
icon_sprite_tag = "sect_drone"
|
||||
icon_state = "fatsectdrone"
|
||||
extra_overlay = "fatsectdrone_markings"
|
||||
icon_sprite_tag = "sectdrone"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/horse/synthhorse
|
||||
name = "SynthHorse dual-color (Taur)"
|
||||
@@ -48,7 +50,7 @@
|
||||
icon_state = "synthhorse_s"
|
||||
extra_overlay = "synthhorse_markings"
|
||||
extra_overlay2 = "synthhorse_glow"
|
||||
//icon_sprite_tag = "synthhorse"
|
||||
icon_sprite_tag = "synthhorse"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 3
|
||||
@@ -59,7 +61,7 @@
|
||||
icon_state = "synthfeline_s"
|
||||
extra_overlay = "synthfeline_markings"
|
||||
extra_overlay2 = "synthfeline_glow"
|
||||
//icon_sprite_tag = "synthfeline"
|
||||
icon_sprite_tag = "synthfeline"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 3
|
||||
@@ -70,6 +72,7 @@
|
||||
icon_state = "fatsynthfeline_s"
|
||||
extra_overlay = "fatsynthfeline_markings"
|
||||
extra_overlay2 = "fatsynthfeline_glow"
|
||||
icon_sprite_tag = "fatsynthfeline"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 3
|
||||
@@ -78,6 +81,7 @@
|
||||
name = "SynthFeline dual-color (Taur, Fat vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "synthfeline_s"
|
||||
icon_sprite_tag = "synthfeline"
|
||||
extra_overlay = "synthfeline_markings"
|
||||
extra_overlay2 = "synthfeline_glow"
|
||||
ani_state = "fatsynthfeline_s"
|
||||
@@ -88,6 +92,7 @@
|
||||
name = "Synthetic chassis - agile (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "synthtaur1_s"
|
||||
icon_sprite_tag = "synthtaur1"
|
||||
extra_overlay = "synthtaur1_markings"
|
||||
extra_overlay2 = "synthtaur1_glow"
|
||||
clip_mask_state = "taur_clip_mask_synthtaur1"
|
||||
@@ -95,7 +100,8 @@
|
||||
/datum/sprite_accessory/tail/taur/synthetic/syntheticagi_fat
|
||||
name = "Synthetic chassis - agile (Taur, Fat)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "synthtaur1_s"
|
||||
icon_state = "synthtaur1_fat_s"
|
||||
icon_sprite_tag = "synthtaur1_fat"
|
||||
extra_overlay = "synthtaur1_fat_markings"
|
||||
extra_overlay2 = "synthtaur1_glow"
|
||||
clip_mask_state = "taur_clip_mask_synthtaur1"
|
||||
@@ -104,9 +110,10 @@
|
||||
name = "Synthetic chassis - agile (Taur, Fat vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "synthtaur1_s"
|
||||
icon_sprite_tag = "synthtaur1"
|
||||
extra_overlay = "synthtaur1_markings"
|
||||
extra_overlay2 = "synthtaur1_glow"
|
||||
ani_state = "synthtaur1_s"
|
||||
ani_state = "synthtaur1_fat_s"
|
||||
extra_overlay_w = "synthtaur1_fat_markings"
|
||||
extra_overlay2_w = "synthtaur1_glow"
|
||||
clip_mask_state = "taur_clip_mask_synthtaur1"
|
||||
@@ -115,9 +122,9 @@
|
||||
name = "SynthLizard dual-color (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "synthlizard_s"
|
||||
icon_sprite_tag = "synthlizard"
|
||||
extra_overlay = "synthlizard_markings"
|
||||
extra_overlay2 = "synthlizard_glow"
|
||||
//icon_sprite_tag = "synthlizard"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 3
|
||||
@@ -128,6 +135,7 @@
|
||||
name = "Fat SynthLizard dual-color (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "fatsynthlizard_s"
|
||||
icon_sprite_tag = "fatsynthlizard"
|
||||
extra_overlay = "fatsynthlizard_markings"
|
||||
extra_overlay2 = "fatsynthlizard_glow"
|
||||
can_loaf = TRUE
|
||||
@@ -138,6 +146,7 @@
|
||||
name = "SynthLizard dual-color (Taur, Fat vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "synthlizard_s"
|
||||
icon_sprite_tag = "fatsynthlizard"
|
||||
extra_overlay = "synthlizard_markings"
|
||||
extra_overlay2 = "synthlizard_glow"
|
||||
ani_state = "fatsynthlizard_s"
|
||||
@@ -148,6 +157,7 @@
|
||||
name = "Synthetic Naga dual-color (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "synthnaga"
|
||||
icon_sprite_tag = "synthnaga"
|
||||
extra_overlay = "synthnaga_belly"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/longvirus
|
||||
@@ -155,21 +165,22 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "longvirus_s"
|
||||
extra_overlay = "longvirus_markings"
|
||||
icon_sprite_tag = "virus"
|
||||
icon_sprite_tag = "longvirus"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/synthwolf
|
||||
name = "SynthWolf dual-color (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "synthwolf_s"
|
||||
icon_sprite_tag = "synthwolf"
|
||||
extra_overlay = "synthwolf_markings"
|
||||
extra_overlay2 = "synthwolf_glow"
|
||||
//icon_sprite_tag = "synthwolf"
|
||||
loaf_offset = 3
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/fatsynthwolf
|
||||
name = "Fat SynthWolf dual-color (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "fatsynthwolf_s"
|
||||
icon_sprite_tag = "fatsynthwolf"
|
||||
extra_overlay = "fatsynthwolf_markings"
|
||||
extra_overlay2 = "fatsynthwolf_glow"
|
||||
loaf_offset = 3
|
||||
@@ -177,6 +188,7 @@
|
||||
/datum/sprite_accessory/tail/taur/wolf/fatsynthwolf_wag
|
||||
name = "SynthWolf dual-color (Taur, Fat vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_sprite_tag = "synthwolf"
|
||||
icon_state = "synthwolf_s"
|
||||
extra_overlay = "synthwolf_markings"
|
||||
extra_overlay2 = "synthwolf_glow"
|
||||
|
||||
@@ -1145,7 +1145,7 @@ Departamental Swimsuits, for general use
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/jessie
|
||||
name = "Handmade Winter Suit"
|
||||
desc = "A durable, but somewhat ragged lower portion of a snow suit fitted for a wolftaur."
|
||||
icon = 'icons/mob/taursuits_wolf.dmi'
|
||||
icon = 'icons/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon_state = "jessiecoat"
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/jessie/mob_can_equip(mob/living/carbon/human/H, slot, disable_warning = FALSE, ignore_obstruction, go_over_slot = FALSE)
|
||||
@@ -1161,7 +1161,7 @@ Departamental Swimsuits, for general use
|
||||
name = "Kat's Fox Taur Armor"
|
||||
desc = "A set of security armor, light weight and easy to run in for a Taur, this item protects the \
|
||||
entire body."
|
||||
icon = 'icons/mob/taursuits_wolf.dmi'
|
||||
icon = 'icons/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon_state = "katesuit"
|
||||
item_state_slots = null
|
||||
|
||||
@@ -1179,7 +1179,7 @@ Departamental Swimsuits, for general use
|
||||
desc = "Taur engineering voidsuit. Recolored navy blue and white. Slightly tweaked as well to \
|
||||
get close to having security voidsuit protection as possible with a slight reduction in movement \
|
||||
speed to compensate for custom padding and armor Kateryna made herself."
|
||||
icon = 'icons/mob/taursuits_wolf.dmi'
|
||||
icon = 'icons/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon_state = "lilithsuit"
|
||||
species_restricted = null
|
||||
armor = list(melee = 40, bullet = 20, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 20)
|
||||
@@ -1532,7 +1532,7 @@ Departamental Swimsuits, for general use
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
desc = "A series of armor plates painted black, deployed from a back-mounted module. They fit smoothly over the unit's armor plates and projects a skintight bubble shield over the unit's uncovered parts. Faceplate and coolant unit not included."
|
||||
species_restricted = null
|
||||
icon = 'icons/mob/taursuits_lizard.dmi'
|
||||
icon = 'icons/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon_state = "hasd_suit"
|
||||
pixel_x = -16
|
||||
|
||||
|
||||
@@ -455,7 +455,7 @@
|
||||
name = "custom security cuirass"
|
||||
desc = "An armored vest that protects against some damage. It appears to be created for a wolfhound. The name 'Serdykov L. Antoz' is written on a tag inside one of the haunchplates."
|
||||
species_restricted = null //Species restricted since all it cares about is a taur half
|
||||
icon = 'icons/mob/taursuits_wolf.dmi'
|
||||
icon = 'icons/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon_state = "serdy_armor"
|
||||
item_state = "serdy_armor"
|
||||
body_parts_covered = CHEST|LEGS|ARMS //It's a full body suit, minus hands and feet. Arms and legs should be protected, not just the torso. Retains normal security armor values still.
|
||||
|
||||
|
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 292 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 781 KiB After Width: | Height: | Size: 797 KiB |
|
Before Width: | Height: | Size: 352 KiB After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 177 KiB |
|
After Width: | Height: | Size: 697 KiB |
|
After Width: | Height: | Size: 692 KiB |
|
After Width: | Height: | Size: 689 KiB |
|
After Width: | Height: | Size: 751 KiB |
|
After Width: | Height: | Size: 697 KiB |
|
After Width: | Height: | Size: 692 KiB |
|
After Width: | Height: | Size: 687 KiB |
|
After Width: | Height: | Size: 676 KiB |
|
After Width: | Height: | Size: 698 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 783 KiB |
|
After Width: | Height: | Size: 760 KiB |
|
After Width: | Height: | Size: 768 KiB |
|
After Width: | Height: | Size: 690 KiB |
|
After Width: | Height: | Size: 749 KiB |
|
After Width: | Height: | Size: 700 KiB |
|
After Width: | Height: | Size: 699 KiB |
|
After Width: | Height: | Size: 692 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 696 KiB |
|
After Width: | Height: | Size: 736 KiB |
@@ -0,0 +1,9 @@
|
||||
Looking to add a new tail? Issue with one?
|
||||
|
||||
Due to limitations with Byond, we have to essentially copypasta all tail sections to avoid ghosts or layering issues. The current overlay system expects all four directions to be present and on the same layer. If you try to force a north only, but your sprite still contains all four directionals, then they'll be all four directions. And so, only the exposed tail markings will be shown.
|
||||
|
||||
Yes it's very silly but it was tried so many times to only get the north face of the main sprite to lay atop of things...
|
||||
|
||||
Tailsocks layer on top of tails. Suits without a tailsock will apply their markings and still layer over clothing. HIDETAIL clothing tag is removed as a result of these changes, the verb to hide your tail works anyway if that's your choice!
|
||||
|
||||
Snowflake colored tails (usually do_coloration = FALSE ones) need to have a whitescaled version of themselves added appended with _sock, as well as tailsock_iconstate = "[icon_state]_sock" in order to properly get a unique, tailsock colorized overlay. Tailmaws are another example, they've been given little space suit bubble helmets!
|
||||
|
Before Width: | Height: | Size: 809 B After Width: | Height: | Size: 826 B |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 195 KiB |
|
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 117 KiB |
|
Before Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 312 B |
|
Before Width: | Height: | Size: 6.8 KiB |