Adds werebeast event species

-Adds new customizable carbonspecies for werebeast shenanigans.
-Stats-wise somewhat faster, tougher, and hungrier compared to base humans. Also darksight.
-Added whatever the code needed to make it possible to have taller carbonspecies.
-As a side effect, the forementioned also makes it possible to do long necked species and more.
-The werebeast can use the tail, hair, ear, and markings customization. This will be messy on tails that rely heavily on human silhouette. The hair and ear customization is fully functional using unedited human assets with a coded offset.
-The hair/ears offset is a modifiable var for the species specific head organ subtype, and can be used by other species that use custom headtypes.
-The werebeast has a set of markings as well, restricted to the species. face, belly, socks, and nose.

Currently the werebeast ready clothing is limited to:
-Back: basic backpack, basic satchel, leather satchel, basic courier bag, and basic duffle.
-Belt: toolbelt and security belt.
-Eyes: most sunglasses and sunglass huds, welding goggles, regular and 3d glasses, plain, meson, and science goggles.
-Feet: black and brown basic shoes, galoshes, jackboots, and toeless jackboots.
-Hands: latex/white, nitrile, yellow/insulated, black, and fingerless gloves.
-Head: the entire selection of vanilla headgear.
-Suit: labcoat, regular and white hazard vest, and 4 flavors of varsity jackets.
-Uniform: white pants, white shorts, white, orange, yellow, black, grey, robo, engie, and janitor jumpsuits, swept and nurse skirt.
Everything else will likely not show up at all, but more can be added whenever needed.
This commit is contained in:
Verkister
2019-10-20 18:45:29 +03:00
parent d8f3a81d0c
commit 47d56f13d1
30 changed files with 167 additions and 13 deletions

View File

@@ -35,3 +35,4 @@
#define SPECIES_MONKEY_NEVREAN "Sparra" #define SPECIES_MONKEY_NEVREAN "Sparra"
#define SPECIES_MONKEY_SERGAL "Saru" #define SPECIES_MONKEY_SERGAL "Saru"
#define SPECIES_MONKEY_VULPKANIN "Wolpin" #define SPECIES_MONKEY_VULPKANIN "Wolpin"
#define SPECIES_WEREBEAST "Werebeast"

View File

@@ -17,3 +17,6 @@
centComm = 1 centComm = 1
ks2type = /obj/item/device/encryptionkey/ert ks2type = /obj/item/device/encryptionkey/ert
/obj/item/device/radio/headset
sprite_sheets = list(SPECIES_TESHARI = 'icons/mob/species/seromi/ears.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/ears.dmi')

View File

@@ -128,4 +128,9 @@
/obj/item/weapon/storage/backpack/dufflebag/fluff //Black dufflebag without syndie buffs. /obj/item/weapon/storage/backpack/dufflebag/fluff //Black dufflebag without syndie buffs.
name = "plain black dufflebag" name = "plain black dufflebag"
desc = "A large dufflebag for holding extra tactical supplies." desc = "A large dufflebag for holding extra tactical supplies."
icon_state = "duffle_syndie" icon_state = "duffle_syndie"
/obj/item/weapon/storage/backpack
sprite_sheets = list(
SPECIES_TESHARI = 'icons/mob/species/seromi/back.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/back.dmi')

View File

@@ -0,0 +1,4 @@
/obj/item/weapon/storage/belt
sprite_sheets = list(
SPECIES_TESHARI = 'icons/mob/species/seromi/belt.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/belt.dmi')

View File

@@ -4,6 +4,10 @@
/obj/item/clothing/shoes /obj/item/clothing/shoes
var/list/inside_emotes = list() var/list/inside_emotes = list()
var/recent_squish = 0 var/recent_squish = 0
sprite_sheets = list(
SPECIES_TESHARI = 'icons/mob/species/seromi/shoes.dmi',
SPECIES_VOX = 'icons/mob/species/vox/shoes.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/feet.dmi')
/obj/item/clothing/shoes/New() /obj/item/clothing/shoes/New()
inside_emotes = list( inside_emotes = list(
@@ -51,6 +55,17 @@
..() ..()
/obj/item/clothing/gloves
sprite_sheets = list(
SPECIES_TESHARI = 'icons/mob/species/seromi/gloves.dmi',
SPECIES_VOX = 'icons/mob/species/vox/gloves.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/hands.dmi')
/obj/item/clothing/ears
sprite_sheets = list(
SPECIES_TESHARI = 'icons/mob/species/seromi/ears.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/ears.dmi')
/obj/item/clothing/relaymove(var/mob/living/user,var/direction) /obj/item/clothing/relaymove(var/mob/living/user,var/direction)
if(recent_struggle) if(recent_struggle)
@@ -98,13 +113,18 @@
SPECIES_ZORREN_FLAT = 'icons/mob/species/fennec/mask_vr.dmi', SPECIES_ZORREN_FLAT = 'icons/mob/species/fennec/mask_vr.dmi',
SPECIES_AKULA = 'icons/mob/species/akula/mask_vr.dmi', SPECIES_AKULA = 'icons/mob/species/akula/mask_vr.dmi',
SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/mask.dmi', SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/mask.dmi',
SPECIES_XENOCHIMERA = 'icons/mob/species/tajaran/mask_vr.dmi' SPECIES_XENOCHIMERA = 'icons/mob/species/tajaran/mask_vr.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/masks.dmi'
) )
//"Spider" = 'icons/mob/species/spider/mask_vr.dmi' Add this later when they have custom mask sprites and everything. //"Spider" = 'icons/mob/species/spider/mask_vr.dmi' Add this later when they have custom mask sprites and everything.
//Switch to taur sprites if a taur equips //Switch to taur sprites if a taur equips
/obj/item/clothing/suit /obj/item/clothing/suit
var/taurized = FALSE //Easier than trying to 'compare icons' to see if it's a taur suit var/taurized = FALSE //Easier than trying to 'compare icons' to see if it's a taur suit
sprite_sheets = list(
SPECIES_TESHARI = 'icons/mob/species/seromi/suit.dmi',
SPECIES_VOX = 'icons/mob/species/vox/suit.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/suit.dmi')
/obj/item/clothing/suit/equipped(var/mob/user, var/slot) /obj/item/clothing/suit/equipped(var/mob/user, var/slot)
var/normalize = TRUE var/normalize = TRUE
@@ -137,6 +157,10 @@
/obj/item/clothing/under /obj/item/clothing/under
sensor_mode = 3 sensor_mode = 3
var/sensorpref = 5 var/sensorpref = 5
sprite_sheets = list(
SPECIES_TESHARI = 'icons/mob/species/seromi/uniform.dmi',
SPECIES_VOX = 'icons/mob/species/vox/uniform.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/uniform.dmi')
//TFF 5/8/19 - define numbers and specifics for suit sensor settings //TFF 5/8/19 - define numbers and specifics for suit sensor settings
/obj/item/clothing/under/New(var/mob/living/carbon/human/H) /obj/item/clothing/under/New(var/mob/living/carbon/human/H)
@@ -150,4 +174,10 @@
if(5) sensor_mode = pick(0,1,2,3) //Select a random setting if(5) sensor_mode = pick(0,1,2,3) //Select a random setting
else else
sensor_mode = pick(0,1,2,3) sensor_mode = pick(0,1,2,3)
log_debug("Invalid switch for suit sensors, defaulting to random. [sensorpref] chosen") log_debug("Invalid switch for suit sensors, defaulting to random. [sensorpref] chosen")
/obj/item/clothing/head
sprite_sheets = list(
SPECIES_TESHARI = 'icons/mob/species/seromi/head.dmi',
SPECIES_VOX = 'icons/mob/species/vox/head.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/head.dmi')

View File

@@ -111,3 +111,10 @@
item_state = "tajblind_meson" item_state = "tajblind_meson"
off_state = "tajblind" off_state = "tajblind"
body_parts_covered = EYES body_parts_covered = EYES
/obj/item/clothing/glasses
sprite_sheets = list(
SPECIES_TESHARI = 'icons/mob/species/seromi/eyes.dmi',
SPECIES_VOX = 'icons/mob/species/vox/eyes.dmi',
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/eyes.dmi'
)

View File

@@ -382,3 +382,63 @@
H.eye_blurry = 5 H.eye_blurry = 5
H.shock_stage = min(H.shock_stage + coldshock, 160) //cold hurts and gives them pain messages, eventually weakening and paralysing, but doesn't damage. H.shock_stage = min(H.shock_stage + coldshock, 160) //cold hurts and gives them pain messages, eventually weakening and paralysing, but doesn't damage.
return return
/datum/species/werebeast
name = SPECIES_WEREBEAST
name_plural = "Werebeasts"
icobase = 'icons/mob/human_races/r_werebeast.dmi'
deform = 'icons/mob/human_races/r_def_werebeast.dmi'
icon_template = 'icons/mob/human_races/r_werebeast.dmi'
tail = "tail"
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
total_health = 200
brute_mod = 0.85
burn_mod = 0.85
metabolic_rate = 2
item_slowdown_mod = 0.25
hunger_factor = 0.4
darksight = 8
mob_size = MOB_LARGE
num_alternate_languages = 3
secondary_langs = list(LANGUAGE_CANILUNZT)
name_language = LANGUAGE_CANILUNZT
primitive_form = "Wolpin"
color_mult = 1
min_age = 18
max_age = 200
blurb = "Big buff werewolves. These are a limited functionality event species that are not balanced for regular gameplay. Adminspawn only."
wikilink="N/A"
catalogue_data = list(/datum/category_item/catalogue/fauna/vulpkanin)
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_WHITELIST_SELECTABLE
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_COLOR | HAS_EYE_COLOR
inherent_verbs = list(
/mob/living/proc/shred_limb,
/mob/living/proc/eat_trash)
flesh_color = "#AFA59E"
base_color = "#777777"
heat_discomfort_strings = list(
"Your fur prickles in the heat.",
"You feel uncomfortably warm.",
"Your overheated skin itches."
)
has_limbs = list(
BP_TORSO = list("path" = /obj/item/organ/external/chest),
BP_GROIN = list("path" = /obj/item/organ/external/groin),
BP_HEAD = list("path" = /obj/item/organ/external/head/vr/werebeast),
BP_L_ARM = list("path" = /obj/item/organ/external/arm),
BP_R_ARM = list("path" = /obj/item/organ/external/arm/right),
BP_L_LEG = list("path" = /obj/item/organ/external/leg),
BP_R_LEG = list("path" = /obj/item/organ/external/leg/right),
BP_L_HAND = list("path" = /obj/item/organ/external/hand),
BP_R_HAND = list("path" = /obj/item/organ/external/hand/right),
BP_L_FOOT = list("path" = /obj/item/organ/external/foot),
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right)
)

View File

@@ -295,7 +295,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
//That part makes left and right legs drawn topmost and lowermost when human looks WEST or EAST //That part makes left and right legs drawn topmost and lowermost when human looks WEST or EAST
//And no change in rendering for other parts (they icon_position is 0, so goes to 'else' part) //And no change in rendering for other parts (they icon_position is 0, so goes to 'else' part)
if(part.icon_position & (LEFT | RIGHT)) if(part.icon_position & (LEFT | RIGHT))
var/icon/temp2 = new('icons/mob/human.dmi',"blank") var/icon/temp2 = new(species.icon_template ? species.icon_template : 'icons/mob/human.dmi', icon_state = "blank")
temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH) temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH)
temp2.Insert(new/icon(temp,dir=SOUTH),dir=SOUTH) temp2.Insert(new/icon(temp,dir=SOUTH),dir=SOUTH)
if(!(part.icon_position & LEFT)) if(!(part.icon_position & LEFT))
@@ -440,8 +440,13 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
// VOREStation Edit - START // VOREStation Edit - START
var/icon/ears_s = get_ears_overlay() var/icon/ears_s = get_ears_overlay()
if (ears_s) if(ears_s)
face_standing.Blend(ears_s, ICON_OVERLAY) face_standing.Blend(ears_s, ICON_OVERLAY)
if(istype(head_organ,/obj/item/organ/external/head/vr))
var/obj/item/organ/external/head/vr/head_organ_vr = head_organ
overlays_standing[HAIR_LAYER] = image(face_standing, layer = BODY_LAYER+HAIR_LAYER, "pixel_y" = head_organ_vr.head_offset)
apply_layer(HAIR_LAYER)
return
// VOREStation Edit - END // VOREStation Edit - END
if(head_organ.nonsolid) if(head_organ.nonsolid)

View File

@@ -8,7 +8,7 @@
//var/icon_add = 'icons/mob/human_face.dmi' //Already defined in sprite_accessories.dm line 49. //var/icon_add = 'icons/mob/human_face.dmi' //Already defined in sprite_accessories.dm line 49.
var/color_blend_mode = ICON_MULTIPLY var/color_blend_mode = ICON_MULTIPLY
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE) //This lets all races use the default hairstyles. species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST) //This lets all races use the default hairstyles.
astolfo astolfo
name = "Astolfo" name = "Astolfo"
@@ -87,14 +87,14 @@
name = "Bald" name = "Bald"
icon_state = "bald" icon_state = "bald"
gender = MALE gender = MALE
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE) //Lets all the races be bald if they want. species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST) //Lets all the races be bald if they want.
ponytail6_fixed //Eggnerd's done with waiting for upstream fixes lmao. ponytail6_fixed //Eggnerd's done with waiting for upstream fixes lmao.
name = "Ponytail 6 but fixed" name = "Ponytail 6 but fixed"
icon = 'icons/mob/human_face_vr.dmi' icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi' icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_ponytail6" icon_state = "hair_ponytail6"
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_NEVREAN, SPECIES_AKULA,SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE) species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_NEVREAN, SPECIES_AKULA,SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST)
una_hood una_hood
name = "Cobra Hood" name = "Cobra Hood"
@@ -477,13 +477,13 @@
/datum/sprite_accessory/facial_hair /datum/sprite_accessory/facial_hair
icon = 'icons/mob/human_face_or_vr.dmi' icon = 'icons/mob/human_face_or_vr.dmi'
var/color_blend_mode = ICON_MULTIPLY var/color_blend_mode = ICON_MULTIPLY
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE) //This lets all races use the facial hair styles. species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST) //This lets all races use the facial hair styles.
shaved shaved
name = "Shaved" name = "Shaved"
icon_state = "bald" icon_state = "bald"
gender = NEUTER gender = NEUTER
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE) //This needed to be manually defined, apparantly. species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST) //This needed to be manually defined, apparantly.
vulp_none vulp_none
@@ -1064,4 +1064,36 @@
name = "Heterochromia" name = "Heterochromia"
icon_state = "heterochromia" icon_state = "heterochromia"
body_parts = list(BP_HEAD) body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE) //This lets all races use the default hairstyles. species_allowed = list(SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST) //This lets all races use the default hairstyles.
werewolf_nose
name = "Werewolf nose"
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
icon_state = "werewolf_nose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_WEREBEAST)
werewolf_face
name = "Werewolf face"
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
icon_state = "werewolf"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_WEREBEAST)
werewolf_belly
name = "Werewolf belly"
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
icon_state = "werewolf"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_GROIN,BP_TORSO)
species_allowed = list(SPECIES_WEREBEAST)
werewolf_socks
name = "Werewolf socks"
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
icon_state = "werewolf"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
species_allowed = list(SPECIES_WEREBEAST)

View File

@@ -37,7 +37,7 @@
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
if(facial_hair_style.do_colouration) if(facial_hair_style.do_colouration)
facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_ADD) facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_ADD)
overlays |= facial_s overlays |= image(facial_s, "pixel_y" = head_offset)
if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR))) if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR)))
var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style] var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style]
@@ -45,14 +45,20 @@
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
if(hair_style.do_colouration && islist(h_col) && h_col.len >= 3) if(hair_style.do_colouration && islist(h_col) && h_col.len >= 3)
hair_s.Blend(rgb(h_col[1], h_col[2], h_col[3]), ICON_MULTIPLY) hair_s.Blend(rgb(h_col[1], h_col[2], h_col[3]), ICON_MULTIPLY)
overlays |= hair_s overlays |= image(hair_s, "pixel_y" = head_offset)
return mob_icon return mob_icon
/obj/item/organ/external/head/vr /obj/item/organ/external/head/vr
var/eye_icons_vr = 'icons/mob/human_face_vr.dmi' var/eye_icons_vr = 'icons/mob/human_face_vr.dmi'
var/eye_icon_vr = "blank_eyes" var/eye_icon_vr = "blank_eyes"
var/head_offset = 0
eye_icon = "blank_eyes" eye_icon = "blank_eyes"
/obj/item/organ/external/head/vr/sergal /obj/item/organ/external/head/vr/sergal
eye_icon_vr = "eyes_sergal" eye_icon_vr = "eyes_sergal"
/obj/item/organ/external/head/vr/werebeast
eye_icons_vr = 'icons/mob/werebeast_face_vr.dmi'
eye_icon_vr = "werebeast_eyes"
head_offset = 6

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

View File

@@ -1170,6 +1170,7 @@
#include "code\game\objects\items\weapons\storage\backpack_vr.dm" #include "code\game\objects\items\weapons\storage\backpack_vr.dm"
#include "code\game\objects\items\weapons\storage\bags.dm" #include "code\game\objects\items\weapons\storage\bags.dm"
#include "code\game\objects\items\weapons\storage\belt.dm" #include "code\game\objects\items\weapons\storage\belt.dm"
#include "code\game\objects\items\weapons\storage\belt_vr.dm"
#include "code\game\objects\items\weapons\storage\bible.dm" #include "code\game\objects\items\weapons\storage\bible.dm"
#include "code\game\objects\items\weapons\storage\boxes.dm" #include "code\game\objects\items\weapons\storage\boxes.dm"
#include "code\game\objects\items\weapons\storage\boxes_vr.dm" #include "code\game\objects\items\weapons\storage\boxes_vr.dm"