mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 11:38:12 +01:00
Makes wings their own seperate entity on char setup
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
var/global/list/ear_styles_list = list() // Stores /datum/sprite_accessory/ears indexed by type
|
||||
var/global/list/tail_styles_list = list() // Stores /datum/sprite_accessory/tail indexed by type
|
||||
var/global/list/wing_styles_list = list() // Stores /datum/sprite_accessory/wing indexed by type
|
||||
var/global/list/negative_traits = list() // Negative custom species traits, indexed by path
|
||||
var/global/list/neutral_traits = list() // Neutral custom species traits, indexed by path
|
||||
var/global/list/positive_traits = list() // Positive custom species traits, indexed by path
|
||||
@@ -127,6 +128,12 @@ var/global/list/tf_egg_types = list(
|
||||
var/datum/sprite_accessory/tail/instance = new path()
|
||||
tail_styles_list[path] = instance
|
||||
|
||||
// Custom Wings
|
||||
paths = typesof(/datum/sprite_accessory/wing) - /datum/sprite_accessory/wing
|
||||
for(var/path in paths)
|
||||
var/datum/sprite_accessory/wing/instance = new path()
|
||||
wing_styles_list[path] = instance
|
||||
|
||||
// Custom species traits
|
||||
paths = typesof(/datum/trait) - /datum/trait
|
||||
for(var/path in paths)
|
||||
|
||||
+15
-1
@@ -39,7 +39,11 @@
|
||||
#define DNA_UI_TAIL_R 20
|
||||
#define DNA_UI_TAIL_G 21
|
||||
#define DNA_UI_TAIL_B 22
|
||||
#define DNA_UI_LENGTH 22 // Update this when you add something, or you WILL break shit.
|
||||
#define DNA_UI_WING_STYLE 23 //VOREStation Edit
|
||||
#define DNA_UI_WING_R 24 //VOREStation Edit
|
||||
#define DNA_UI_WING_G 25 //VOREStation Edit
|
||||
#define DNA_UI_WING_B 26 //VOREStation Edit
|
||||
#define DNA_UI_LENGTH 26 // Update this when you add something, or you WILL break shit. //VOREStation Edit to 26
|
||||
|
||||
#define DNA_SE_LENGTH 27
|
||||
// For later:
|
||||
@@ -160,6 +164,11 @@ var/global/list/datum/dna/gene/dna_genes[0]
|
||||
if(character.tail_style)
|
||||
tail_style = tail_styles_list.Find(character.tail_style.type)
|
||||
|
||||
// Demi Wings
|
||||
var/wing_style = 0
|
||||
if(character.wing_style)
|
||||
wing_style = wing_styles_list.Find(character.wing_style.type)
|
||||
|
||||
// Playerscale (This assumes list is sorted big->small)
|
||||
var/size_multiplier = player_sizes_list.len // If fail to find, take smallest
|
||||
for(var/N in player_sizes_list)
|
||||
@@ -179,11 +188,16 @@ var/global/list/datum/dna/gene/dna_genes[0]
|
||||
SetUIValueRange(DNA_UI_EAR_STYLE, ear_style + 1, ear_styles_list.len + 1, 1)
|
||||
SetUIValueRange(DNA_UI_TAIL_STYLE, tail_style + 1, tail_styles_list.len + 1, 1)
|
||||
SetUIValueRange(DNA_UI_PLAYERSCALE, size_multiplier, player_sizes_list.len, 1)
|
||||
SetUIValueRange(DNA_UI_WING_STYLE, wing_style + 1, wing_styles_list.len + 1, 1)
|
||||
|
||||
SetUIValueRange(DNA_UI_TAIL_R, character.r_tail, 255, 1)
|
||||
SetUIValueRange(DNA_UI_TAIL_G, character.g_tail, 255, 1)
|
||||
SetUIValueRange(DNA_UI_TAIL_B, character.b_tail, 255, 1)
|
||||
|
||||
SetUIValueRange(DNA_UI_WING_R, character.r_wing, 255, 1)
|
||||
SetUIValueRange(DNA_UI_WING_G, character.g_wing, 255, 1)
|
||||
SetUIValueRange(DNA_UI_WING_B, character.b_wing, 255, 1)
|
||||
|
||||
// VORE Station Edit End
|
||||
|
||||
SetUIValueRange(DNA_UI_HAIR_R, character.r_hair, 255, 1)
|
||||
|
||||
@@ -189,6 +189,13 @@
|
||||
else if((0 < tail) && (tail <= tail_styles_list.len))
|
||||
H.tail_style = tail_styles_list[tail_styles_list[tail]]
|
||||
|
||||
//Wing
|
||||
var/wing = dna.GetUIValueRange(DNA_UI_WING_STYLE, wing_styles_list.len + 1) - 1
|
||||
if(wing <= 1)
|
||||
H.wing_style = null
|
||||
else if((0 < wing) && (wing <= wing_styles_list.len))
|
||||
H.wing_style = wing_styles_list[wing_styles_list[wing]]
|
||||
|
||||
// Playerscale
|
||||
var/size = dna.GetUIValueRange(DNA_UI_PLAYERSCALE, player_sizes_list.len)
|
||||
if((0 < size) && (size <= player_sizes_list.len))
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
var/r_tail2 = 30 // For extra overlay.
|
||||
var/g_tail2 = 30 // For extra overlay.
|
||||
var/b_tail2 = 30 // For extra overlay.
|
||||
var/wing_style // Type of selected wing style
|
||||
var/r_wing = 30 // Wing color
|
||||
var/g_wing = 30 // Wing color
|
||||
var/b_wing = 30 // Wing color
|
||||
var/dress_mob = TRUE
|
||||
|
||||
// Definition of the stuff for Ears
|
||||
@@ -36,6 +40,10 @@
|
||||
S["r_tail2"] >> pref.r_tail2
|
||||
S["g_tail2"] >> pref.g_tail2
|
||||
S["b_tail2"] >> pref.b_tail2
|
||||
S["wing_style"] >> pref.wing_style
|
||||
S["r_wing"] >> pref.r_wing
|
||||
S["g_wing"] >> pref.g_wing
|
||||
S["b_wing"] >> pref.b_wing
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/save_character(var/savefile/S)
|
||||
S["ear_style"] << pref.ear_style
|
||||
@@ -49,6 +57,10 @@
|
||||
S["r_tail2"] << pref.r_tail2
|
||||
S["g_tail2"] << pref.g_tail2
|
||||
S["b_tail2"] << pref.b_tail2
|
||||
S["wing_style"] << pref.wing_style
|
||||
S["r_wing"] << pref.r_wing
|
||||
S["g_wing"] << pref.g_wing
|
||||
S["b_wing"] << pref.b_wing
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/sanitize_character()
|
||||
pref.red_ear = sanitize_integer(pref.red_ear, 0, 255, initial(pref.red_ear))
|
||||
@@ -60,10 +72,15 @@
|
||||
pref.r_tail2 = sanitize_integer(pref.r_tail2, 0, 255, initial(pref.r_tail2))
|
||||
pref.g_tail2 = sanitize_integer(pref.g_tail2, 0, 255, initial(pref.g_tail2))
|
||||
pref.b_tail2 = sanitize_integer(pref.b_tail2, 0, 255, initial(pref.b_tail2))
|
||||
pref.r_wing = sanitize_integer(pref.r_wing, 0, 255, initial(pref.r_wing))
|
||||
pref.g_wing = sanitize_integer(pref.g_wing, 0, 255, initial(pref.g_wing))
|
||||
pref.b_wing = sanitize_integer(pref.b_wing, 0, 255, initial(pref.b_wing))
|
||||
if(pref.ear_style)
|
||||
pref.ear_style = sanitize_inlist(pref.ear_style, ear_styles_list, initial(pref.ear_style))
|
||||
if(pref.tail_style)
|
||||
pref.tail_style = sanitize_inlist(pref.tail_style, tail_styles_list, initial(pref.tail_style))
|
||||
if(pref.wing_style)
|
||||
pref.wing_style = sanitize_inlist(pref.wing_style, wing_styles_list, initial(pref.wing_style))
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/copy_to_mob(var/mob/living/carbon/human/character)
|
||||
character.ear_style = ear_styles_list[pref.ear_style]
|
||||
@@ -77,6 +94,12 @@
|
||||
character.r_tail2 = pref.r_tail2
|
||||
character.b_tail2 = pref.b_tail2
|
||||
character.g_tail2 = pref.g_tail2
|
||||
character.wing_style = wing_styles_list[pref.wing_style]
|
||||
character.r_wing = pref.r_wing
|
||||
character.b_wing = pref.b_wing
|
||||
character.g_wing = pref.g_wing
|
||||
|
||||
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/content(var/mob/user)
|
||||
. += "<h2>VORE Station Settings</h2>"
|
||||
@@ -119,6 +142,20 @@
|
||||
if (T.extra_overlay)
|
||||
. += "<a href='?src=\ref[src];tail_color2=1'>Change Secondary Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_tail2, 2)][num2hex(pref.g_tail2, 2)][num2hex(pref.b_tail2, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_tail2, 2)][num2hex(pref.g_tail2, 2)][num2hex(pref.b_tail2)]'><tr><td>__</td></tr></table> </font><br>"
|
||||
|
||||
var/wing_display = "Normal"
|
||||
if(pref.wing_style && (pref.wing_style in wing_styles_list))
|
||||
var/datum/sprite_accessory/wing/instance = wing_styles_list[pref.wing_style]
|
||||
wing_display = instance.name
|
||||
else if(pref.wing_style)
|
||||
wing_display = "REQUIRES UPDATE"
|
||||
. += "<b>Wing</b><br>"
|
||||
. += " Style: <a href='?src=\ref[src];wing_style=1'>[wing_display]</a><br>"
|
||||
|
||||
if(wing_styles_list[pref.wing_style])
|
||||
var/datum/sprite_accessory/wing/T = wing_styles_list[pref.wing_style]
|
||||
if (T.do_colouration)
|
||||
. += "<a href='?src=\ref[src];wing_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_wing, 2)][num2hex(pref.g_wing, 2)][num2hex(pref.b_wing, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_wing, 2)][num2hex(pref.g_wing, 2)][num2hex(pref.b_wing)]'><tr><td>__</td></tr></table> </font><br>"
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
if(!CanUseTopic(user))
|
||||
return TOPIC_NOACTION
|
||||
@@ -178,6 +215,29 @@
|
||||
pref.b_tail2 = hex2num(copytext(new_tailc2, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["wing_style"])
|
||||
// Construct the list of names allowed for this user.
|
||||
var/list/pretty_wing_styles = list("Normal" = null)
|
||||
for(var/path in wing_styles_list)
|
||||
var/datum/sprite_accessory/wing/instance = wing_styles_list[path]
|
||||
if((!instance.ckeys_allowed) || (user.ckey in instance.ckeys_allowed))
|
||||
pretty_wing_styles[instance.name] = path
|
||||
|
||||
// Present choice to user
|
||||
var/selection = input(user, "Pick wings", "Character Preference") as null|anything in pretty_wing_styles
|
||||
pref.wing_style = pretty_wing_styles[selection]
|
||||
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["wing_color"])
|
||||
var/new_wingc = input(user, "Choose your character's wing colour:", "Character Preference",
|
||||
rgb(pref.r_wing, pref.g_wing, pref.b_wing)) as color|null
|
||||
if(new_wingc)
|
||||
pref.r_wing = hex2num(copytext(new_wingc, 2, 4))
|
||||
pref.g_wing = hex2num(copytext(new_wingc, 4, 6))
|
||||
pref.b_wing = hex2num(copytext(new_wingc, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["toggle_clothing"])
|
||||
pref.dress_mob = !pref.dress_mob
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
@@ -7,6 +7,12 @@
|
||||
message = "[wagging ? "starts" : "stops"] wagging their tail."
|
||||
else
|
||||
return 1
|
||||
if ("vflap")
|
||||
if(toggle_wing_vr(message = 1))
|
||||
m_type = 1
|
||||
message = "[flapping ? "starts" : "stops"] flapping their wings."
|
||||
else
|
||||
return 1
|
||||
if ("mlem")
|
||||
message = "mlems [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] tongue up over [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] nose. Mlem."
|
||||
m_type = 1
|
||||
@@ -102,3 +108,17 @@
|
||||
|
||||
update_tail_showing()
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/proc/toggle_wing_vr(var/setting,var/message = 0)
|
||||
if(!wing_style || !wing_style.ani_state)
|
||||
if(message)
|
||||
src << "<span class='warning'>You don't have a tail that supports this.</span>"
|
||||
return 0
|
||||
|
||||
if(setting != null)
|
||||
flapping = setting
|
||||
else
|
||||
flapping = !flapping
|
||||
|
||||
update_wing_showing()
|
||||
return 1
|
||||
|
||||
@@ -4,4 +4,5 @@
|
||||
b_skin = 179
|
||||
|
||||
var/wagging = 0 //UGH.
|
||||
var/flapping = 0
|
||||
var/vantag_pref = VANTAG_NONE //What's my status?
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
/datum/species/proc/get_wing_hair(var/mob/living/carbon/human/H) //I have no idea what this is even used for other than teshari, but putting it in just in case.
|
||||
return wing_hair //Since the tail has it.
|
||||
/datum/species/proc/get_wing(var/mob/living/carbon/human/H)
|
||||
return wing
|
||||
/datum/species/proc/get_wing_animation(var/mob/living/carbon/human/H)
|
||||
return wing_animation
|
||||
@@ -9,4 +9,10 @@
|
||||
|
||||
//This is so that if a race is using the chimera revive they can't use it more than once.
|
||||
//Shouldn't really be seen in play too often, but it's case an admin event happens and they give a non chimera the chimera revive. Only one person can use the chimera revive at a time per race.
|
||||
//var/reviving = 0 //commented out 'cause moved to mob
|
||||
//var/reviving = 0 //commented out 'cause moved to mob
|
||||
holder_type = /obj/item/weapon/holder/micro //This allows you to pick up crew
|
||||
min_age = 18
|
||||
var/wing_hair
|
||||
var/wing
|
||||
var/wing_animation
|
||||
var/icobase_wing
|
||||
@@ -331,8 +331,3 @@
|
||||
gluttonous = 0
|
||||
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
|
||||
min_age = 18
|
||||
|
||||
/datum/species
|
||||
holder_type = /obj/item/weapon/holder/micro //This allows you to pick up crew
|
||||
min_age = 18
|
||||
|
||||
|
||||
@@ -135,7 +135,8 @@ Please contact me on #coderbus IRC. ~Carn x
|
||||
#define FIRE_LAYER 27 //If you're on fire
|
||||
#define WATER_LAYER 28 //If you're submerged in water.
|
||||
#define TARGETED_LAYER 29 //BS12: Layer for the target overlay from weapon targeting system
|
||||
#define TOTAL_LAYERS 30
|
||||
#define WING_LAYER 30 //VOREStation edit. Simply move this up a number if things are added.
|
||||
#define TOTAL_LAYERS 31 //VOREStation edit. Add it to the number polaris has but +1 to accomidate the wing_layer.
|
||||
//////////////////////////////////
|
||||
|
||||
/mob/living/carbon/human
|
||||
@@ -338,6 +339,7 @@ var/global/list/damage_icon_parts = list()
|
||||
|
||||
//tail
|
||||
update_tail_showing(0)
|
||||
update_wing_showing(0) //VOREStation edit
|
||||
|
||||
//UNDERWEAR OVERLAY
|
||||
/mob/living/carbon/human/proc/update_underwear(var/update_icons=1)
|
||||
@@ -836,6 +838,7 @@ var/global/list/damage_icon_parts = list()
|
||||
update_inv_w_uniform(0)
|
||||
update_inv_shoes(0)
|
||||
update_tail_showing(0)
|
||||
update_wing_showing(0)//VOREStation Edit
|
||||
|
||||
if(update_icons) update_icons()
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
/mob/living/carbon/human/proc/get_wing_icon()
|
||||
var/icon_key = "[species.get_race_key(src)][r_skin][g_skin][b_skin][r_hair][g_hair][b_hair]"
|
||||
var/icon/wing_icon = wing_icon_cache[icon_key]
|
||||
if(!wing_icon)
|
||||
//generate a new one
|
||||
var/species_wing_anim = species.get_wing_animation(src)
|
||||
if(species.icobase_wing) species_wing_anim = species.icobase
|
||||
if(!species_wing_anim) species_wing_anim = 'icons/effects/species.dmi'
|
||||
wing_icon = new/icon(species_wing_anim)
|
||||
if(species.color_mult)
|
||||
wing_icon.Blend(rgb(r_skin, g_skin, b_skin), ICON_MULTIPLY)
|
||||
else
|
||||
wing_icon.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD)
|
||||
// The following will not work with animated wings.
|
||||
var/use_species_wing = species.get_wing_hair(src)
|
||||
if(use_species_wing)
|
||||
var/icon/hair_icon = icon('icons/effects/species.dmi', "[species.get_wing(src)]_[use_species_wing]")
|
||||
hair_icon.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
|
||||
wing_icon.Blend(hair_icon, ICON_OVERLAY)
|
||||
wing_icon_cache[icon_key] = wing_icon
|
||||
|
||||
return wing_icon
|
||||
|
||||
/mob/living/carbon/human/proc/set_wing_state(var/t_state)
|
||||
var/image/wing_overlay = overlays_standing[WING_LAYER]
|
||||
|
||||
if(wing_overlay && species.get_wing_animation(src))
|
||||
wing_overlay.icon_state = t_state
|
||||
return wing_overlay
|
||||
return null
|
||||
|
||||
/mob/living/carbon/human/proc/animate_wing_reset(var/update_icons=1)
|
||||
if(stat != DEAD)
|
||||
set_wing_state("[species.get_wing(src)]_idle[rand(0,9)]")
|
||||
else
|
||||
set_wing_state("[species.get_wing(src)]_static")
|
||||
toggle_wing_vr(0)
|
||||
if(update_icons)
|
||||
update_icons()
|
||||
|
||||
/mob/living/carbon/human/proc/get_wing_image()
|
||||
//If you are FBP with tail style and didn't set a custom one
|
||||
if(synthetic && synthetic.includes_wing && !wing_style)
|
||||
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)
|
||||
return image(wing_s)
|
||||
|
||||
//If you have custom wings selected
|
||||
if(wing_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL))
|
||||
var/icon/wing_s = new/icon("icon" = wing_style.icon, "icon_state" = flapping && wing_style.ani_state ? wing_style.ani_state : wing_style.icon_state)
|
||||
if(wing_style.do_colouration)
|
||||
wing_s.Blend(rgb(src.r_wing, src.g_wing, src.b_wing), wing_style.color_blend_mode)
|
||||
return image(wing_s)
|
||||
else
|
||||
return image(wing_s)
|
||||
return null
|
||||
|
||||
/mob/living/carbon/human/proc/update_wing_showing(var/update_icons=1)
|
||||
overlays_standing[WING_LAYER] = null
|
||||
|
||||
overlays_standing[WING_LAYER] = get_wing_image()
|
||||
if(overlays_standing[WING_LAYER])
|
||||
if(update_icons)
|
||||
update_icons()
|
||||
return
|
||||
@@ -1,5 +1,6 @@
|
||||
/datum/robolimb
|
||||
var/includes_tail //Cyberlimbs dmi includes a tail sprite to wear.
|
||||
var/includes_wing //Cyberlimbs dmi includes a wing sprite to wear.
|
||||
var/list/whitelisted_to //List of ckeys that are allowed to pick this in charsetup.
|
||||
|
||||
//////////////// For-specific-character fluff ones /////////////////
|
||||
|
||||
@@ -109,6 +109,14 @@
|
||||
temp["colorHref"] = "tail_color"
|
||||
styles["Tail"] = temp
|
||||
|
||||
temp = list("styleHref" = "wing_style", "style" = "Normal")
|
||||
if(mannequin.wing_style)
|
||||
temp["style"] = mannequin.wing_style.name
|
||||
if(mannequin.wing_style.do_colouration)
|
||||
temp["color"] = MOB_HEX_COLOR(mannequin, wing)
|
||||
temp["colorHref"] = "wing_color"
|
||||
styles["Tail"] = temp
|
||||
|
||||
temp = list("styleHref" = "hair_style", "style" = mannequin.h_style)
|
||||
if(mannequin.species && (mannequin.species.appearance_flags & HAS_HAIR_COLOR))
|
||||
temp["color"] = MOB_HEX_COLOR(mannequin, hair)
|
||||
|
||||
@@ -21,6 +21,10 @@
|
||||
var/r_tail2 = 30
|
||||
var/g_tail2 = 30
|
||||
var/b_tail2 = 30
|
||||
var/datum/sprite_accessory/tail/wing_style = null
|
||||
var/r_wing = 30
|
||||
var/g_wing = 30
|
||||
var/b_wing = 30
|
||||
|
||||
// Custom Species Name
|
||||
var/custom_species
|
||||
|
||||
@@ -279,6 +279,80 @@
|
||||
icon_state = "alurane-ears"
|
||||
ckeys_allowed = list("natje")
|
||||
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
/ == Wing Definitions == /
|
||||
/ =--------------------= /
|
||||
////////////////////////////
|
||||
*/
|
||||
/datum/sprite_accessory/wing
|
||||
name = "You should not see this..."
|
||||
icon = 'icons/mob/vore/wings_vr.dmi'
|
||||
do_colouration = 0 //Set to 1 to enable coloration using the tail color.
|
||||
|
||||
var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
|
||||
var/extra_overlay // Icon state of an additional overlay to blend in.
|
||||
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
|
||||
var/desc = "You should not see this..."
|
||||
var/ani_state // State when flapping/animated
|
||||
var/extra_overlay_w // Flapping state for extra overlay
|
||||
|
||||
/datum/sprite_accessory/wing/moth
|
||||
name = "moth wings"
|
||||
desc = ""
|
||||
icon_state = "moth"
|
||||
|
||||
/datum/sprite_accessory/wing/mothc
|
||||
name = "moth wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "moth"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/feathered
|
||||
name = "feathered wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "feathered"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/bat_black
|
||||
name = "bat wings, black"
|
||||
desc = ""
|
||||
icon_state = "bat-black"
|
||||
|
||||
/datum/sprite_accessory/wing/bat_color
|
||||
name = "bat wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "bat-color"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/wing/bat_red
|
||||
name = "bat wings, red"
|
||||
desc = ""
|
||||
icon_state = "bat-red"
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings
|
||||
name = "harpy wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "harpywings"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/feathered
|
||||
name = "feathered wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "feathered"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/beewings
|
||||
name = "bee wings"
|
||||
desc = ""
|
||||
icon_state = "beewings"
|
||||
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
@@ -364,18 +438,6 @@
|
||||
icon_state = "bunny"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/mothc
|
||||
name = "moth wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "moth"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/moth
|
||||
name = "moth wings"
|
||||
desc = ""
|
||||
icon_state = "moth"
|
||||
|
||||
/datum/sprite_accessory/tail/bear_brown
|
||||
name = "bear, brown"
|
||||
desc = ""
|
||||
@@ -452,53 +514,48 @@
|
||||
icon_state = "fantail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/*
|
||||
/datum/sprite_accessory/tail/faintailwings
|
||||
name = "avian fantail, colorable (+wings)"
|
||||
desc = ""
|
||||
icon_state= "fantailwings"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
*/
|
||||
/datum/sprite_accessory/tail/wagtail
|
||||
name = "avian wagtail, colorable"
|
||||
desc = ""
|
||||
icon_state = "wagtail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/*
|
||||
/datum/sprite_accessory/tail/wagtailwings
|
||||
name = "avian wagtail, colorable (+wings)"
|
||||
desc = ""
|
||||
icon_state = "wagtailwings"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
*/
|
||||
/datum/sprite_accessory/tail/crossfox
|
||||
name = "cross fox"
|
||||
desc = ""
|
||||
icon_state = "crossfox"
|
||||
|
||||
/*
|
||||
/datum/sprite_accessory/tail/bee
|
||||
name = "bee thorax (+wings)"
|
||||
desc = ""
|
||||
icon_state = "bee"
|
||||
|
||||
*/
|
||||
/datum/sprite_accessory/tail/beethorax
|
||||
name = "bee thorax"
|
||||
desc = ""
|
||||
icon_state = "beethorax"
|
||||
|
||||
/datum/sprite_accessory/tail/beewings
|
||||
name = "bee wings"
|
||||
desc = ""
|
||||
icon_state = "beewings"
|
||||
|
||||
/datum/sprite_accessory/tail/moth_full
|
||||
/datum/sprite_accessory/tail/moth_full //I'll... Let this one stay. The antenna itself isn't a big enough thing to be standalone.
|
||||
name = "moth antenna and wings"
|
||||
desc = ""
|
||||
icon_state = "moth_full"
|
||||
|
||||
/*
|
||||
/datum/sprite_accessory/tail/succubus_purple
|
||||
name = "succubus, purple (+wings)"
|
||||
desc = ""
|
||||
@@ -513,45 +570,26 @@
|
||||
name = "succubus, black (+wings)"
|
||||
desc = ""
|
||||
icon_state = "succubus-black"
|
||||
|
||||
*/
|
||||
/datum/sprite_accessory/tail/doublekitsune
|
||||
name = "double kitsune tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "doublekitsune"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/*
|
||||
/datum/sprite_accessory/tail/succubus_color
|
||||
name = "succubus, colorable (+wings)"
|
||||
desc = ""
|
||||
icon_state = "succubus-black"
|
||||
do_colouration = 1
|
||||
|
||||
*/
|
||||
/datum/sprite_accessory/tail/spade_color
|
||||
name = "spade-tail (colorable)"
|
||||
desc = ""
|
||||
icon_state = "spadetail-black"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/bat_black
|
||||
name = "bat wings, black"
|
||||
desc = ""
|
||||
icon_state = "bat-black"
|
||||
show_species_tail = 1
|
||||
|
||||
/datum/sprite_accessory/tail/bat_color
|
||||
name = "bat wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "bat-color"
|
||||
show_species_tail = 1
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/bat_red
|
||||
name = "bat wings, red"
|
||||
desc = ""
|
||||
icon_state = "bat-red"
|
||||
show_species_tail = 1
|
||||
|
||||
/datum/sprite_accessory/tail/snag
|
||||
name = "xenomorph tail w/ backplate"
|
||||
desc = ""
|
||||
@@ -568,21 +606,13 @@
|
||||
icon_state = "molenar-kitsune"
|
||||
ckeys_allowed = list("molenar")
|
||||
|
||||
/datum/sprite_accessory/tail/harpywings
|
||||
name = "harpy wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "harpywings"
|
||||
do_colouration = 1
|
||||
show_species_tail = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/liquidfirefly_gazer
|
||||
name = "gazer eyestalks"
|
||||
desc = ""
|
||||
icon_state = "liquidfirefly-eyestalks"
|
||||
//ckeys_allowed = list("liquidfirefly","seiga") //At request.
|
||||
|
||||
/datum/sprite_accessory/tail/miria_fluffdragon
|
||||
/datum/sprite_accessory/tail/miria_fluffdragon //Fluff tails with wings stay under tails.
|
||||
name = "fluffdragon wings+tail (Miria Masters)"
|
||||
desc = ""
|
||||
icon_state = "miria-fluffdragontail"
|
||||
@@ -655,14 +685,6 @@
|
||||
ani_state = "ketraitail_w"
|
||||
//ckeys_allowed = list("ketrai") //They requested it to be enabled for everyone.
|
||||
|
||||
/datum/sprite_accessory/tail/feathered
|
||||
name = "feathered wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "feathered"
|
||||
show_species_tail = 1
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/redpanda
|
||||
name = "red panda"
|
||||
desc = ""
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
#define isTaurTail(A) istype(A, /datum/sprite_accessory/tail/taur)
|
||||
var/global/list/wing_icon_cache = list()
|
||||
|
||||
/mob/living/carbon/human/proc/get_ears_overlay()
|
||||
if(ear_style && !(head && (head.flags_inv & BLOCKHEADHAIR)))
|
||||
|
||||
@@ -525,6 +525,7 @@
|
||||
if(TFchance == 1)
|
||||
if(P.species != O.species || P.tail_style != O.tail_style || P.custom_species != O.custom_species || P.ear_style != O.ear_style)
|
||||
P.tail_style = O.tail_style
|
||||
P.wing_style = O.wing_style
|
||||
P.ear_style = O.ear_style
|
||||
P.species = O.species
|
||||
P.custom_species = O.custom_species
|
||||
@@ -594,6 +595,7 @@
|
||||
P.g_skin = O.g_skin
|
||||
P.b_skin = O.b_skin
|
||||
P.tail_style = O.tail_style
|
||||
P.wing_style = O.wing_style
|
||||
P.r_tail = O.r_tail
|
||||
P.g_tail = O.g_tail
|
||||
P.b_tail = O.b_tail
|
||||
@@ -631,6 +633,7 @@
|
||||
var/mob/living/carbon/human/O = owner
|
||||
|
||||
P.tail_style = O.tail_style
|
||||
P.wing_style = O.wing_style
|
||||
P.ear_style = O.ear_style
|
||||
P.species = O.species
|
||||
P.custom_species = O.custom_species
|
||||
@@ -724,6 +727,7 @@
|
||||
P.g_skin = O.g_skin
|
||||
P.b_skin = O.b_skin
|
||||
P.tail_style = O.tail_style
|
||||
P.wing_style = O.wing_style
|
||||
P.r_tail = O.r_tail
|
||||
P.g_tail = O.g_tail
|
||||
P.b_tail = O.b_tail
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 43 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -1798,9 +1798,11 @@
|
||||
#include "code\modules\mob\living\carbon\human\stripping.dm"
|
||||
#include "code\modules\mob\living\carbon\human\unarmed_attack.dm"
|
||||
#include "code\modules\mob\living\carbon\human\update_icons.dm"
|
||||
#include "code\modules\mob\living\carbon\human\update_icons_vr.dm"
|
||||
#include "code\modules\mob\living\carbon\human\species\species.dm"
|
||||
#include "code\modules\mob\living\carbon\human\species\species_attack.dm"
|
||||
#include "code\modules\mob\living\carbon\human\species\species_getters.dm"
|
||||
#include "code\modules\mob\living\carbon\human\species\species_getters_vr.dm"
|
||||
#include "code\modules\mob\living\carbon\human\species\species_helpers.dm"
|
||||
#include "code\modules\mob\living\carbon\human\species\species_hud.dm"
|
||||
#include "code\modules\mob\living\carbon\human\species\species_shapeshift.dm"
|
||||
|
||||
Reference in New Issue
Block a user