mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-24 20:47:43 +01:00
This reverts commit 3e28b73e01.
This commit is contained in:
@@ -42,14 +42,15 @@
|
||||
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)
|
||||
@@ -986,26 +987,14 @@
|
||||
. = ..()
|
||||
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)
|
||||
@@ -1028,9 +1017,9 @@
|
||||
if(hood)
|
||||
hood.canremove = TRUE // This shouldn't matter anyways but just incase.
|
||||
if(ishuman(hood.loc))
|
||||
var/mob/living/carbon/Carbmob = hood.loc
|
||||
Carbmob.unEquip(hood, 1)
|
||||
Carbmob.update_inv_wear_suit()
|
||||
var/mob/living/carbon/H = hood.loc
|
||||
H.unEquip(hood, 1)
|
||||
H.update_inv_wear_suit()
|
||||
hood.forceMove(src)
|
||||
|
||||
/obj/item/clothing/suit/proc/ToggleHood()
|
||||
@@ -1040,64 +1029,69 @@
|
||||
RemoveHood()
|
||||
return
|
||||
if(ishuman(loc))
|
||||
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!"))
|
||||
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!"))
|
||||
return
|
||||
if(Hoomie.head)
|
||||
to_chat(Hoomie, span_warning("You're already wearing something on your head!"))
|
||||
if(H.head)
|
||||
to_chat(H, span_warning("You're already wearing something on your head!"))
|
||||
return
|
||||
else
|
||||
if(color != hood.color)
|
||||
hood.color = color
|
||||
Hoomie.equip_to_slot_if_possible(hood,slot_head,0,0,1)
|
||||
H.equip_to_slot_if_possible(hood,slot_head,0,0,1)
|
||||
hood_up = TRUE
|
||||
hood.canremove = FALSE
|
||||
update_icon()
|
||||
Hoomie.update_inv_wear_suit()
|
||||
H.update_inv_wear_suit()
|
||||
///Hood stuff end.
|
||||
|
||||
/obj/item/clothing/suit/update_clothing_icon()
|
||||
if (ismob(loc))
|
||||
var/mob/Mobbie = loc
|
||||
Mobbie.update_inv_wear_suit()
|
||||
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 ..()
|
||||
|
||||
///Establishes Icon overrides for taur bodies
|
||||
/obj/item/clothing/suit/proc/taurize(mob/living/carbon/human/taur, has_taur_tail = 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(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
|
||||
|
||||
taurized = TRUE
|
||||
if(!taurized)
|
||||
icon_override = initial(icon_override)
|
||||
taurized = FALSE
|
||||
|
||||
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)
|
||||
// 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)
|
||||
var/image/standing = ..()
|
||||
if(!standing)
|
||||
return null
|
||||
|
||||
// Only apply the -16 offset when taurized AND showtaurbutts is FALSE
|
||||
if(taurized && !showtaurbutts && icon_override)
|
||||
if(taurized) //Special snowflake var on suits
|
||||
standing.pixel_x = -16
|
||||
standing.layer = TAUR_LAYERING
|
||||
// but if we don't have an icon_override, we already have our offsets, set.
|
||||
standing.layer = BODY_LAYER + TAIL_UPPER_LAYER + 1
|
||||
return standing
|
||||
|
||||
/obj/item/clothing/suit/apply_accessories(image/standing)
|
||||
. = ..()
|
||||
|
||||
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
|
||||
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 ..()
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
@@ -1168,8 +1162,6 @@
|
||||
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,11 +24,6 @@
|
||||
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/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
|
||||
var/image/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
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
|
||||
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 = HIDEHOLSTER
|
||||
flags_inv = HIDETAIL|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
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAIL
|
||||
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.5
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|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,8 +77,7 @@
|
||||
|
||||
/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
|
||||
@@ -95,8 +94,6 @@
|
||||
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)
|
||||
@@ -184,8 +181,6 @@
|
||||
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]."))
|
||||
@@ -194,8 +189,6 @@
|
||||
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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|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/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon = 'icons/mob/taursuits_wolf.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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
|
||||
//CMO's biosuit, blue stripe
|
||||
/obj/item/clothing/suit/bio_suit/cmo
|
||||
icon_state = "bio_cmo"
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|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/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon = 'icons/mob/taursuits_drake.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/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon = 'icons/mob/taursuits_horse.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/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon = 'icons/mob/taursuits_horse.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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAIL|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|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
item_flags = THICKMATERIAL
|
||||
|
||||
/obj/item/clothing/suit/radiation/Initialize(mapload)
|
||||
|
||||
@@ -1,284 +0,0 @@
|
||||
//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_start()
|
||||
user.animate_tail_once()
|
||||
|
||||
/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_start()
|
||||
user.animate_tail_fast()
|
||||
|
||||
/datum/decl/emote/human/fastsway
|
||||
key = "fastsway"
|
||||
|
||||
/datum/decl/emote/human/fastsway/do_emote(mob/living/carbon/human/user)
|
||||
user.animate_tail_start()
|
||||
user.animate_tail_fast()
|
||||
|
||||
/datum/decl/emote/human/swag
|
||||
key = "swag"
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#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"
|
||||
@@ -85,23 +84,17 @@
|
||||
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 = DEFAULT_RGB_OUTLINE)
|
||||
/obj/item/remote_scene_tool/voodoo_doll/proc/generate_layer_image(image/input, matrix/newtransform, outline_width = 0, outline_color = rgb(50,50,50))
|
||||
if(input == null)
|
||||
return null
|
||||
|
||||
// Please for the love of fuck stop kidnapping taur bodies.
|
||||
var/image/doll_img = image(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!
|
||||
|
||||
input.dir = SOUTH
|
||||
input.transform = newtransform
|
||||
input.layer = FLOAT_LAYER
|
||||
if(outline_width > 0)
|
||||
doll_img.filters += filter(type="outline", size = outline_width, color = outline_color)
|
||||
input.filters += filter(type="outline", size = outline_width, color = outline_color)
|
||||
|
||||
return doll_img
|
||||
return input
|
||||
|
||||
/obj/item/remote_scene_tool/voodoo_doll/update_icon()
|
||||
. = ..()
|
||||
@@ -131,34 +124,26 @@
|
||||
|
||||
if(no_fun_mode) return //no fun allowed
|
||||
|
||||
var/image/tail_image = null
|
||||
if(ishuman(owner)) //Am I a real boy now, papa?
|
||||
if(ishuman(owner)) //TODO, refactor the fuck out of this once I port the tgui filter manager stuff over.
|
||||
var/mob/living/carbon/human/buddy = owner
|
||||
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)
|
||||
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)
|
||||
|
||||
//tails need special attention because taurs
|
||||
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/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)
|
||||
|
||||
// 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
|
||||
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)
|
||||
|
||||
//same kind of scenario for wings
|
||||
var/wingoutlinecolor = DEFAULT_RGB_OUTLINE
|
||||
var/wingoutlinecolor = rgb(50,50,50)
|
||||
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)
|
||||
@@ -192,7 +177,6 @@
|
||||
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,10 +305,7 @@
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/set_dir(new_dir)
|
||||
var/old_dir = dir
|
||||
. = ..()
|
||||
//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))
|
||||
if(. && (species.tail || tail_style))
|
||||
update_tail_showing()
|
||||
update_inv_wear_suit()
|
||||
|
||||
@@ -291,8 +291,3 @@
|
||||
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()
|
||||
|
||||
@@ -287,8 +287,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)) // 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.
|
||||
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)
|
||||
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.
|
||||
@@ -613,8 +613,6 @@ 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()
|
||||
@@ -633,37 +631,30 @@ 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
|
||||
return //Wearing a suit that prevents uniform rendering
|
||||
|
||||
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/icon/c_mask = null
|
||||
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
|
||||
|
||||
// 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
|
||||
)
|
||||
//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)
|
||||
apply_layer(UNIFORM_LAYER)
|
||||
|
||||
/mob/living/carbon/human/update_inv_wear_id()
|
||||
@@ -858,37 +849,31 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
|
||||
remove_layer(SUIT_LAYER)
|
||||
|
||||
// Hide/show uniform & shoes
|
||||
//Hide/show other layers if necessary
|
||||
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 = (istype(suit) && !isnull(suit.update_icon_define)) ? suit.update_icon_define : INV_SUIT_DEF_ICON
|
||||
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/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
|
||||
|
||||
// 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])
|
||||
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)
|
||||
|
||||
// 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()
|
||||
@@ -1001,13 +986,11 @@ 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 = LOWER_TAIL_DIRS // Tail below clothing on side views too.
|
||||
if(!tail_style) // Sanity checks good checks.
|
||||
return
|
||||
else
|
||||
var/list/lower_layer_dirs = list(SOUTH, EAST, WEST) //Tail below clothing on side views too.
|
||||
if(tail_style)
|
||||
lower_layer_dirs = tail_style.lower_layer_dirs.Copy()
|
||||
|
||||
if(istaurtail(tail_style) || (dir in lower_layer_dirs))
|
||||
if(dir in lower_layer_dirs)
|
||||
return TAIL_LOWER_LAYER
|
||||
else
|
||||
return TAIL_UPPER_LAYER
|
||||
@@ -1016,378 +999,130 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
// Clear previous tail layer assignments
|
||||
for(var/layers in TAIL_LAYER_CLEARING)
|
||||
remove_layer(layers)
|
||||
remove_layer(TAIL_UPPER_LAYER)
|
||||
remove_layer(TAIL_UPPER_LAYER_HIGH)
|
||||
remove_layer(TAIL_UPPER_LAYER_LOW)
|
||||
remove_layer(TAIL_LOWER_LAYER)
|
||||
|
||||
var/tail_layer = get_tail_layer()
|
||||
// Use default, let clip mask handle everything
|
||||
if(tail_style && tail_style.clip_mask_state && !istaurtail(tail_style))
|
||||
tail_layer = TAIL_UPPER_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
|
||||
|
||||
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)
|
||||
// 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)
|
||||
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()
|
||||
|
||||
//TODO: Is this the appropriate place for this, and not on species...?
|
||||
//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]"
|
||||
/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
|
||||
|
||||
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
|
||||
return tail_icon
|
||||
|
||||
/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()
|
||||
return overlays_standing[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]
|
||||
|
||||
//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
|
||||
remove_layer(TAIL_UPPER_LAYER)
|
||||
remove_layer(TAIL_UPPER_LAYER_HIGH)
|
||||
remove_layer(TAIL_UPPER_LAYER_LOW)
|
||||
remove_layer(TAIL_LOWER_LAYER)
|
||||
|
||||
// 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
|
||||
if(tail_overlay)
|
||||
overlays_standing[tail_layer] = tail_overlay
|
||||
if(species.get_tail_animation(src))
|
||||
tail_overlay.icon_state = t_state
|
||||
. = tail_overlay
|
||||
|
||||
return list(off_x, off_y)
|
||||
apply_layer(tail_layer)
|
||||
|
||||
/mob/living/carbon/human/proc/apply_tailsock_layer(image/tailoverlays, target_layer, apply_to_mob = TRUE)
|
||||
if(!tailoverlays)
|
||||
return null
|
||||
|
||||
var/obj/item/clothing/suit/socksuit = wear_suit
|
||||
var/datum/sprite_accessory/tail/tailtype = tail_style
|
||||
|
||||
// Simplify our offset maths
|
||||
var/list/offsets = get_tail_offsets(socksuit, tailtype)
|
||||
var/total_off_x = offsets[1]
|
||||
var/total_off_y = offsets[2]
|
||||
|
||||
// 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
|
||||
|
||||
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
|
||||
|
||||
// Get our tailsock ready
|
||||
var/has_sock = FALSE
|
||||
var/icon/sock_icon = null
|
||||
var/sock_state = null
|
||||
|
||||
if(socksuit && socksuit.requires_tailsock && socksuit.tailsock_toggle && tailtype)
|
||||
has_sock = TRUE
|
||||
sock_icon = tailtype.tailsock_icon ? tailtype.tailsock_icon : socksuit.icon
|
||||
|
||||
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) || !tail_style)
|
||||
//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
|
||||
|
||||
if(stat == DEAD)
|
||||
set_tail_state(tail_style.icon_state)
|
||||
toggle_tail(FALSE) // Stop wagging on death
|
||||
else
|
||||
// Resets tail state based on current wagging flag
|
||||
set_tail_state(wagging && tail_style.ani_state ? tail_style.ani_state : tail_style.icon_state)
|
||||
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/image/tail_overlay = overlays_standing[tail_layer]
|
||||
if(tail_overlay && tail_overlay.icon_state == t_state)
|
||||
return //let the existing animation finish
|
||||
|
||||
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()
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_start()
|
||||
if(QDESTROYING(src) || !tail_style)
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
toggle_tail(TRUE)
|
||||
if(tail_style.ani_state)
|
||||
set_tail_state(tail_style.ani_state)
|
||||
set_tail_state("[species.get_tail(src)]_slow[rand(0,9)]")
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_fast()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
set_tail_state("[species.get_tail(src)]_loop[rand(0,9)]")
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_reset()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
if(stat != DEAD)
|
||||
set_tail_state("[species.get_tail(src)]_idle[rand(0,9)]")
|
||||
else
|
||||
set_tail_state("[species.get_tail(src)]_static")
|
||||
toggle_tail(FALSE) //So tails stop when someone dies. TODO - Fix this hack ~Leshana
|
||||
|
||||
/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
|
||||
|
||||
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
|
||||
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.
|
||||
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()
|
||||
set_tail_state("[species.get_tail(src)]_static")
|
||||
|
||||
/mob/living/carbon/human/proc/update_wing_showing()
|
||||
if(QDESTROYING(src))
|
||||
@@ -1398,70 +1133,18 @@ 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
|
||||
if(wing_color)
|
||||
wing_image.color = wing_color
|
||||
wing_image.layer = BODY_LAYER+WING_LAYER
|
||||
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
|
||||
if(wing_color)
|
||||
wing_image.color = wing_color
|
||||
wing_image.layer = BODY_LAYER+WING_LOWER_LAYER
|
||||
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
|
||||
@@ -1537,6 +1220,49 @@ 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()
|
||||
@@ -1593,6 +1319,145 @@ 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
|
||||
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(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
|
||||
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,14 +1,8 @@
|
||||
/mob/living/Check_Shoegrip()
|
||||
if(flying)
|
||||
return TRUE
|
||||
return 1
|
||||
..()
|
||||
|
||||
/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"
|
||||
|
||||
+5
-7
@@ -1,10 +1,10 @@
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
/ =OLD Tail Definitions= /
|
||||
/ =-FOR REFERENCE ONLY-= /
|
||||
/ == Tail Definitions == /
|
||||
/ =--------------------= /
|
||||
////////////////////////////
|
||||
|
||||
*/
|
||||
/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 = LOWER_TAIL_DIRS
|
||||
var/list/lower_layer_dirs = list(SOUTH, WEST, EAST)
|
||||
var/icon_loaf = null
|
||||
|
||||
// Taur Vore
|
||||
@@ -281,7 +281,6 @@
|
||||
name = "xenomorph tail 2"
|
||||
desc = ""
|
||||
icon_state = "xenotail"
|
||||
do_colouration = FALSE
|
||||
|
||||
/datum/sprite_accessory/tail/eboop
|
||||
name = "EGN mech tail (dual color)"
|
||||
@@ -826,7 +825,6 @@
|
||||
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
|
||||
|
||||
@@ -1984,4 +1982,4 @@
|
||||
do_colouration = TRUE
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "chu_markings"
|
||||
extra_overlay2 = "chu_tipmarkings"*/
|
||||
extra_overlay2 = "chu_tipmarkings"
|
||||
@@ -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 = TRUE // 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 = 1 // 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
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
/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.
|
||||
@@ -33,7 +34,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 = LOWER_TAIL_DIRS
|
||||
var/list/lower_layer_dirs = list(SOUTH, WEST, EAST)
|
||||
var/icon_loaf = null
|
||||
|
||||
// Taur Vore
|
||||
@@ -43,42 +44,10 @@
|
||||
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,21 +88,12 @@
|
||||
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)"
|
||||
@@ -110,8 +101,6 @@
|
||||
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"
|
||||
@@ -245,7 +234,6 @@
|
||||
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"
|
||||
@@ -343,7 +331,6 @@
|
||||
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"
|
||||
@@ -405,7 +392,6 @@
|
||||
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,7 +3,6 @@
|
||||
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 = "nevreanwagtail"
|
||||
icon_state = "wagtail"
|
||||
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 = "nevreanwagtail2_dc"
|
||||
icon_state = "wagtail2_dc"
|
||||
extra_overlay = "wagtail2_dc_mark"
|
||||
|
||||
/datum/sprite_accessory/tail/spade_color
|
||||
@@ -38,14 +38,11 @@
|
||||
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)"
|
||||
@@ -97,15 +94,12 @@
|
||||
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,12 +104,14 @@
|
||||
|
||||
/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,28 +24,36 @@
|
||||
icon_state = "bigsnaketail"
|
||||
ani_state = "bigsnaketail_w"
|
||||
|
||||
/datum/sprite_accessory/tail/bigsnaketail/stripes
|
||||
/datum/sprite_accessory/tail/bigsnaketailstripes
|
||||
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/bigsnaketail/stripes_alt
|
||||
/datum/sprite_accessory/tail/bigsnaketailstripes_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/bigsnaketail/dual
|
||||
/datum/sprite_accessory/tail/bigsnaketaildual
|
||||
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/bigsnaketail/under
|
||||
/datum/sprite_accessory/tail/bigsnaketailunder
|
||||
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
|
||||
@@ -54,11 +62,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)"
|
||||
@@ -104,7 +112,6 @@
|
||||
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,8 +5,14 @@
|
||||
ani_state = "peacocktail_red_w"
|
||||
ckeys_allowed = list("prettiebyrd")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "peacocktail_red_sock"
|
||||
tailsock_wagicon = "peacocktail_red_w_sock"
|
||||
|
||||
/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")
|
||||
|
||||
/datum/sprite_accessory/tail/perrin_tentacles
|
||||
name = "octopus tentacles"
|
||||
@@ -14,7 +20,6 @@
|
||||
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"
|
||||
@@ -22,7 +27,6 @@
|
||||
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)"
|
||||
@@ -30,7 +34,6 @@
|
||||
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)"
|
||||
@@ -38,7 +41,6 @@
|
||||
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)"
|
||||
@@ -46,7 +48,6 @@
|
||||
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)"
|
||||
@@ -54,7 +55,6 @@
|
||||
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,7 +62,6 @@
|
||||
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)"
|
||||
@@ -70,7 +69,6 @@
|
||||
icon_state = "reika"
|
||||
ckeys_allowed = list("rikaru19xjenkins")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "reika_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/rosey
|
||||
name = "tritail kitsune tails (Rosey)"
|
||||
@@ -78,7 +76,6 @@
|
||||
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
|
||||
@@ -86,15 +83,6 @@
|
||||
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)"
|
||||
@@ -102,7 +90,6 @@
|
||||
icon_state = "scree"
|
||||
ckeys_allowed = list("scree")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "scree_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/aronai
|
||||
name = "aronai tail (Aronai)"
|
||||
@@ -110,7 +97,6 @@
|
||||
icon_state = "aronai"
|
||||
ckeys_allowed = list("arokha")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "aronai_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/cabletail
|
||||
name = "cabletail"
|
||||
@@ -118,7 +104,6 @@
|
||||
icon_state = "tuckercabletail"
|
||||
ckeys_allowed = list("tucker0666")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "tuckercabletail_sock"
|
||||
|
||||
/datum/sprite_accessory/tail/featherfluff_tail
|
||||
name = "featherfluff_tail"
|
||||
@@ -126,7 +111,6 @@
|
||||
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)"
|
||||
@@ -134,4 +118,3 @@
|
||||
icon_state = "hoodootail"
|
||||
ckeys_allowed = list("hoodoo")
|
||||
do_colouration = FALSE
|
||||
tailsock_iconstate = "hoodootail_sock"
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
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,7 +52,6 @@
|
||||
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,8 +27,7 @@
|
||||
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.
|
||||
|
||||
//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
|
||||
/datum/sprite_accessory/tail/taur/bigleggy
|
||||
name = "Big Leggies"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/biglegs.dmi'
|
||||
icon_state = "bigleggy"
|
||||
@@ -37,47 +36,46 @@
|
||||
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/longtail/bigleggy/canine
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/canine
|
||||
name = "Big Leggies (Canine Tail)"
|
||||
extra_overlay2 = "bigleggy_canine"
|
||||
extra_overlay2_w = "bigleggy_canine"
|
||||
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/feline
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/feline
|
||||
name = "Big Leggies (Feline Tail)"
|
||||
extra_overlay2 = "bigleggy_feline"
|
||||
extra_overlay2_w = "bigleggy_feline"
|
||||
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/reptile
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/reptile
|
||||
name = "Big Leggies (Reptile Tail)"
|
||||
extra_overlay2 = "bigleggy_reptile"
|
||||
extra_overlay2_w = "bigleggy_reptile"
|
||||
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/snake
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/snake
|
||||
name = "Big Leggies (Snake Tail)"
|
||||
extra_overlay2 = "bigleggy_snake"
|
||||
extra_overlay2_w = "bigleggy_snake"
|
||||
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/fox
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/fox
|
||||
name = "Big Leggies (Fox Tail)"
|
||||
extra_overlay2 = "bigleggy_vulpine"
|
||||
extra_overlay2_w = "bigleggy_vulpine"
|
||||
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/bird
|
||||
/datum/sprite_accessory/tail/taur/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/longtail/bigleggy/plug
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/plug
|
||||
name = "Big Leggies (Plug Tail)"
|
||||
extra_overlay2 = "bigleggy_plug"
|
||||
extra_overlay2_w = "bigleggy_plug"
|
||||
|
||||
/datum/sprite_accessory/tail/longtail/bigleggy/AlienSlug
|
||||
/datum/sprite_accessory/tail/taur/bigleggy/AlienSlug
|
||||
name = "Big Leggies (Alien Slug Tail)"
|
||||
icon_state = "bigleggy_full_alienslug"
|
||||
extra_overlay = "bigleggy_alienslug"
|
||||
|
||||
@@ -6,12 +6,11 @@
|
||||
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!
|
||||
@@ -42,14 +41,6 @@
|
||||
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,17 +1,13 @@
|
||||
/datum/sprite_accessory/tail/taur/bunny
|
||||
name = "Bunny (Taur, Fat vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon = 'icons/rogue-star/tails_64x32_rs.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
|
||||
@@ -20,7 +16,7 @@
|
||||
name = "Cow (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "cow_s"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_cow.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_cow.dmi'
|
||||
icon_sprite_tag = "cow"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -45,19 +41,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!"
|
||||
@@ -79,9 +75,7 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "deer_s"
|
||||
extra_overlay = "deer_markings"
|
||||
ani_state = "deer_w"
|
||||
extra_overlay_w = "deer_markings_w"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_deer.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_deer.dmi'
|
||||
icon_sprite_tag = "deer"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -110,7 +104,6 @@
|
||||
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)"
|
||||
@@ -121,7 +114,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/inventory/suit/taursuits_feline.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_deer.dmi'
|
||||
icon_sprite_tag = "feline"
|
||||
extra_overlay = "feline_markings"
|
||||
ani_state = "feline_w"
|
||||
@@ -132,13 +125,10 @@
|
||||
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"
|
||||
@@ -148,15 +138,12 @@
|
||||
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
|
||||
@@ -167,6 +154,7 @@
|
||||
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
|
||||
@@ -174,16 +162,19 @@
|
||||
extra_overlay = "feline2_markings"
|
||||
extra_overlay2 = "feline2_markings_2"
|
||||
ani_state = "fatfeline_s"
|
||||
extra_overlay_w = "fatfeline2_markings"
|
||||
extra_overlay2_w = "fatfeline2_markings_2"
|
||||
extra_overlay = "fatfeline2_markings"
|
||||
extra_overlay2 = "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
|
||||
@@ -192,25 +183,21 @@
|
||||
/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"
|
||||
@@ -223,7 +210,6 @@
|
||||
/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"
|
||||
|
||||
@@ -237,8 +223,8 @@
|
||||
name = "Horse (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "horse_s"
|
||||
under_sprites = 'icons/inventory/suit/taursuits_horse.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_horse.dmi'
|
||||
under_sprites = 'icons/mob/taursuits_horse.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_horse.dmi'
|
||||
icon_sprite_tag = "horse"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -264,12 +250,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)"
|
||||
@@ -277,10 +263,7 @@
|
||||
icon_state = "otie_s"
|
||||
extra_overlay = "otie_markings"
|
||||
extra_overlay2 = "otie_markings_2"
|
||||
ani_state = "otie_w"
|
||||
extra_overlay_w = "otie_markings_w"
|
||||
extra_overlay2_w = "otie_markings_2w"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_otie.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_otie.dmi'
|
||||
icon_sprite_tag = "otie"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -288,15 +271,10 @@
|
||||
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"
|
||||
@@ -305,22 +283,18 @@
|
||||
/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 = "sergal"
|
||||
icon_sprite_tag = "wolf"
|
||||
vore_tail_sprite_variant = "N"
|
||||
fullness_icons = 3
|
||||
struggle_anim = TRUE
|
||||
@@ -328,6 +302,7 @@
|
||||
/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
|
||||
@@ -337,7 +312,7 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "sergwheat"
|
||||
extra_overlay = "sergwheat_markings"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_sergal.dmi'
|
||||
icon_sprite_tag = "wolf"
|
||||
vore_tail_sprite_variant = "N"
|
||||
fullness_icons = 3
|
||||
struggle_anim = TRUE
|
||||
@@ -346,6 +321,7 @@
|
||||
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
|
||||
@@ -356,7 +332,6 @@
|
||||
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'
|
||||
@@ -369,8 +344,8 @@
|
||||
name = "Wolf (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "wolf_s"
|
||||
under_sprites = 'icons/inventory/suit/taursuits_wolf.dmi'
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_wolf.dmi'
|
||||
under_sprites = 'icons/mob/taursuits_wolf.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_wolf.dmi'
|
||||
icon_sprite_tag = "wolf"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -383,96 +358,75 @@
|
||||
name = "Fat Wolf (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
|
||||
icon_state = "fatwolf_s"
|
||||
icon_sprite_tag = "fatwolf"
|
||||
icon_sprite_tag = "wolf" //This could be modified later.
|
||||
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"
|
||||
tailsock_wagicon = "fatwolf_s"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/wolf_2c
|
||||
name = "Wolf 3-color (Taur)"
|
||||
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)"
|
||||
extra_overlay = "wolf2_markings"
|
||||
extra_overlay2 = "wolf2_markings_2"
|
||||
ani_state = "fatwolf_s"
|
||||
extra_overlay_w = "fatwolf2_markings"
|
||||
extra_overlay2_w = "fatwolf2_markings_2"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/fat/wolf_2c
|
||||
/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
|
||||
icon_sprite_tag = "fatwolf"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/fat/altwolf_2c
|
||||
/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 = "fatwolf"
|
||||
icon_sprite_tag = "wolf"
|
||||
|
||||
/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"
|
||||
|
||||
/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"
|
||||
extra_overlay_w = "fatwolf2_markings"
|
||||
extra_overlay2_w = "fatwolf2_markings_2"
|
||||
ani_state = "fatwolf2_s"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/wolf_3
|
||||
name = "WolfTG (Taur)" //It's Citadel, not TG. :V
|
||||
icon_state = "wolftg"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_husky.dmi'
|
||||
clip_mask_state = "taur_clip_mask_husky"
|
||||
icon_state = "wolf3_s"
|
||||
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 = "fathusky_s"
|
||||
extra_overlay = "husky_markings"
|
||||
ani_state = "fathusky_w"
|
||||
extra_overlay_w = "husky_markings_w"
|
||||
icon_sprite_tag = "fathusky"
|
||||
icon_state = "huskyf_s"
|
||||
|
||||
/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)"
|
||||
icon_state = "zorgoia_fat"
|
||||
extra_overlay = "zorgoia_fat_fluff"
|
||||
icon_sprite_tag = "zorgoia_fat"
|
||||
extra_overlay = "zorgoia_fat2"
|
||||
|
||||
/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_fluff"
|
||||
extra_overlay = "zorgoia_new_fat_overlay"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
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!"
|
||||
@@ -42,38 +43,42 @@
|
||||
/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 = "ant"
|
||||
do_colouration = TRUE
|
||||
icon_sprite_tag = "wasp"
|
||||
|
||||
/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)"
|
||||
@@ -116,23 +121,22 @@
|
||||
|
||||
/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/inventory/suit/taursuits_spider.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_spider.dmi'
|
||||
icon_sprite_tag = "spider"
|
||||
|
||||
msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
|
||||
@@ -153,7 +157,6 @@
|
||||
/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"
|
||||
@@ -163,6 +166,7 @@
|
||||
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
|
||||
@@ -196,15 +200,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 = FALSE
|
||||
can_ride = 0
|
||||
|
||||
msg_prey_stepunder = "You run between %prey's tentacles."
|
||||
msg_owner_stepunder = "%owner runs between your tentacles."
|
||||
@@ -237,7 +241,6 @@
|
||||
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,9 +1,10 @@
|
||||
/datum/sprite_accessory/tail/taur/drake
|
||||
/datum/sprite_accessory/tail/taur/drake //Enabling on request, no suit compatibility but then again see 2 above.
|
||||
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/inventory/suit/taursuits_drake.dmi'
|
||||
/// suit_sprites = 'icons/mob/taursuits_drake.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_drake_ch.dmi'
|
||||
icon_sprite_tag = "drake"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -16,71 +17,98 @@
|
||||
name = "Fat Drake (Taur)"
|
||||
icon_state = "fatdrake_s"
|
||||
extra_overlay = "fatdrake_markings"
|
||||
icon_sprite_tag = "fatdrake"
|
||||
vore_tail_sprite_variant = "FatDrake"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
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_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.
|
||||
loaf_offset = 6
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/fat/spotty
|
||||
name = "Fat Spotted Drake (Taur, Tricolor)"
|
||||
vore_tail_sprite_variant = "FatDrake"
|
||||
extra_overlay2 = "fatspotteddrake_markings"
|
||||
extra_overlay2_w = "fatspotteddrake_markings"
|
||||
icon_state = "fatspotteddrake_s"
|
||||
extra_overlay = "fatspotteddrake_markings"
|
||||
extra_overlay_w = "fatspotteddrake_markings"
|
||||
extra_overlay2 = "fatspotteddrake_markings_2"
|
||||
extra_overlay2_w = "fatspotteddrake_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 = 6
|
||||
|
||||
/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
|
||||
/datum/sprite_accessory/tail/taur/drake/extended_alt
|
||||
name = "Drake Extended (Taur)"
|
||||
vore_tail_sprite_variant = "Drake"
|
||||
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"
|
||||
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"
|
||||
fullness_icons = 3
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
loaf_offset = 5
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake/extended/spotted
|
||||
/datum/sprite_accessory/tail/taur/drake/extended_alt/spotted
|
||||
name = "Spotted Drake Extended (Taur)"
|
||||
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"
|
||||
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
|
||||
|
||||
/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/inventory/suit/taursuits_lizard.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_lizard_ch.dmi'
|
||||
icon_sprite_tag = "lizard"
|
||||
can_loaf = TRUE
|
||||
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
|
||||
@@ -88,16 +116,36 @@
|
||||
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/twocolor
|
||||
/datum/sprite_accessory/tail/taur/lizard/lizard_2c
|
||||
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/twocolor_wag
|
||||
/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
|
||||
name = "Fat Lizard (Taur, dual-color, Fat vwag)"
|
||||
icon_state = "lizard_s"
|
||||
extra_overlay = "lizard_markings"
|
||||
@@ -106,40 +154,32 @@
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/spotty
|
||||
name = "Spotted Lizard (Taur, Tricolor)"
|
||||
extra_overlay2 = "spottedlizard_markings"
|
||||
extra_overlay2_w = "spottedlizard_markings"
|
||||
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
|
||||
|
||||
/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
|
||||
/datum/sprite_accessory/tail/taur/lizard/spotty_fat
|
||||
name = "Fat Spotted Lizard (Taur, Tricolor)"
|
||||
extra_overlay = "fatlizard_markings"
|
||||
extra_overlay_w = "fatlizard_markings"
|
||||
extra_overlay2 = "fatspottedlizard_markings"
|
||||
extra_overlay2_w = "fatspottedlizard_markings"
|
||||
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.
|
||||
loaf_offset = 3
|
||||
|
||||
/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/inventory/suit/taursuits_naga.dmi'
|
||||
icon_sprite_tag = "naga"
|
||||
suit_sprites = 'icons/mob/taursuits_naga.dmi'
|
||||
//icon_sprite_tag = "naga"
|
||||
vore_tail_sprite_variant = "Naga"
|
||||
fullness_icons = 1
|
||||
|
||||
@@ -174,41 +214,51 @@
|
||||
name = "Naga (Taur, Fat, dual color)"
|
||||
icon_state = "fatnaga_s"
|
||||
extra_overlay = "fatnaga_markings"
|
||||
icon_sprite_tag = "fatnaga"
|
||||
suit_sprites = null
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga/naga_twocolor
|
||||
/datum/sprite_accessory/tail/taur/naga/naga_2c
|
||||
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 = "altnaga_s"
|
||||
icon_state = "naga_alt_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/twocolor
|
||||
/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
|
||||
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/threecolor
|
||||
/datum/sprite_accessory/tail/taur/naga/alt_3c
|
||||
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/threecolor_rattler
|
||||
/datum/sprite_accessory/tail/taur/naga/alt_3c_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/threecolor_tailmaw
|
||||
/datum/sprite_accessory/tail/taur/naga/alt_3c_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)"
|
||||
@@ -216,7 +266,7 @@
|
||||
icon_state = "noodle_s"
|
||||
extra_overlay = "noodle_markings"
|
||||
extra_overlay2 = "noodle_markings_2"
|
||||
suit_sprites = 'icons/inventory/suit/taursuits_noodle.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_noodle.dmi'
|
||||
clip_mask_state = "taur_clip_mask_noodle"
|
||||
icon_sprite_tag = "noodle"
|
||||
|
||||
|
||||
@@ -1,4 +1,16 @@
|
||||
// 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)"
|
||||
@@ -7,7 +19,6 @@
|
||||
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,7 +3,6 @@
|
||||
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"
|
||||
@@ -11,7 +10,6 @@
|
||||
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!"
|
||||
@@ -28,21 +26,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/sectdrone/drone_wag
|
||||
/datum/sprite_accessory/tail/taur/sect_drone/drone_wag
|
||||
name = "Sect Drone (Taur, Fat vwag)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "sectdrone"
|
||||
extra_overlay = "sectdrone_markings"
|
||||
ani_state = "fatsectdrone"
|
||||
extra_overlay_w = "fatsectdrone_markings"
|
||||
icon_sprite_tag = "sectdrone"
|
||||
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"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/sectdrone/fat
|
||||
/datum/sprite_accessory/tail/taur/sect_drone/fat
|
||||
name = "Fat Sect Drone (Taur)"
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "fatsectdrone"
|
||||
extra_overlay = "fatsectdrone_markings"
|
||||
icon_sprite_tag = "sectdrone"
|
||||
icon_state = "fat_sect_drone"
|
||||
extra_overlay = "fat_sect_drone_markings"
|
||||
icon_sprite_tag = "sect_drone"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/horse/synthhorse
|
||||
name = "SynthHorse dual-color (Taur)"
|
||||
@@ -50,7 +48,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
|
||||
@@ -61,7 +59,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
|
||||
@@ -72,7 +70,6 @@
|
||||
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
|
||||
@@ -81,7 +78,6 @@
|
||||
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"
|
||||
@@ -92,7 +88,6 @@
|
||||
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"
|
||||
@@ -100,8 +95,7 @@
|
||||
/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_fat_s"
|
||||
icon_sprite_tag = "synthtaur1_fat"
|
||||
icon_state = "synthtaur1_s"
|
||||
extra_overlay = "synthtaur1_fat_markings"
|
||||
extra_overlay2 = "synthtaur1_glow"
|
||||
clip_mask_state = "taur_clip_mask_synthtaur1"
|
||||
@@ -110,10 +104,9 @@
|
||||
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_fat_s"
|
||||
ani_state = "synthtaur1_s"
|
||||
extra_overlay_w = "synthtaur1_fat_markings"
|
||||
extra_overlay2_w = "synthtaur1_glow"
|
||||
clip_mask_state = "taur_clip_mask_synthtaur1"
|
||||
@@ -122,9 +115,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
|
||||
@@ -135,7 +128,6 @@
|
||||
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
|
||||
@@ -146,7 +138,6 @@
|
||||
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"
|
||||
@@ -157,7 +148,6 @@
|
||||
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
|
||||
@@ -165,22 +155,21 @@
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
|
||||
icon_state = "longvirus_s"
|
||||
extra_overlay = "longvirus_markings"
|
||||
icon_sprite_tag = "longvirus"
|
||||
icon_sprite_tag = "virus"
|
||||
|
||||
/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
|
||||
@@ -188,7 +177,6 @@
|
||||
/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"
|
||||
|
||||
@@ -1147,7 +1147,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/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon = 'icons/mob/taursuits_wolf.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)
|
||||
@@ -1163,7 +1163,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/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon = 'icons/mob/taursuits_wolf.dmi'
|
||||
icon_state = "katesuit"
|
||||
item_state_slots = null
|
||||
|
||||
@@ -1181,7 +1181,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/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon = 'icons/mob/taursuits_wolf.dmi'
|
||||
icon_state = "lilithsuit"
|
||||
species_restricted = null
|
||||
armor = list(melee = 40, bullet = 20, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 20)
|
||||
@@ -1534,7 +1534,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/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon = 'icons/mob/taursuits_lizard.dmi'
|
||||
icon_state = "hasd_suit"
|
||||
pixel_x = -16
|
||||
|
||||
|
||||
@@ -452,7 +452,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/inventory/suit/taursuits_snowflake.dmi'
|
||||
icon = 'icons/mob/taursuits_wolf.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.
|
||||
|
||||
Reference in New Issue
Block a user