Merge branch 'master' into upstream-merge-10906

This commit is contained in:
Nadyr
2021-07-05 15:59:26 -04:00
committed by GitHub
16 changed files with 308 additions and 168 deletions

View File

@@ -121,7 +121,7 @@ GLOBAL_LIST_EMPTY(mannequins)
var/list/paths
//Hair - Initialise all /datum/sprite_accessory/hair into an list indexed by hair-style name
paths = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
paths = subtypesof(/datum/sprite_accessory/hair)
for(var/path in paths)
var/datum/sprite_accessory/hair/H = new path()
hair_styles_list[H.name] = H
@@ -133,7 +133,7 @@ GLOBAL_LIST_EMPTY(mannequins)
hair_styles_female_list += H.name
//Facial Hair - Initialise all /datum/sprite_accessory/facial_hair into an list indexed by facialhair-style name
paths = typesof(/datum/sprite_accessory/facial_hair) - /datum/sprite_accessory/facial_hair
paths = subtypesof(/datum/sprite_accessory/facial_hair)
for(var/path in paths)
var/datum/sprite_accessory/facial_hair/H = new path()
facial_hair_styles_list[H.name] = H
@@ -145,27 +145,27 @@ GLOBAL_LIST_EMPTY(mannequins)
facial_hair_styles_female_list += H.name
//Body markings - Initialise all /datum/sprite_accessory/marking into an list indexed by marking name
paths = typesof(/datum/sprite_accessory/marking) - /datum/sprite_accessory/marking
paths = subtypesof(/datum/sprite_accessory/marking)
for(var/path in paths)
var/datum/sprite_accessory/marking/M = new path()
body_marking_styles_list[M.name] = M
//Surgery Steps - Initialize all /datum/surgery_step into a list
paths = typesof(/datum/surgery_step)-/datum/surgery_step
paths = subtypesof(/datum/surgery_step)
for(var/T in paths)
var/datum/surgery_step/S = new T
surgery_steps += S
sort_surgeries()
//List of job. I can't believe this was calculated multiple times per tick!
paths = typesof(/datum/job)-/datum/job
paths = subtypesof(/datum/job)
paths -= exclude_jobs
for(var/T in paths)
var/datum/job/J = new T
joblist[J.title] = J
//Languages
paths = typesof(/datum/language)-/datum/language
paths = subtypesof(/datum/language)
for(var/T in paths)
var/datum/language/L = new T
if (isnull(GLOB.all_languages[L.name]))
@@ -189,7 +189,7 @@ GLOBAL_LIST_EMPTY(mannequins)
//Species
var/rkey = 0
paths = typesof(/datum/species)
paths = subtypesof(/datum/species)
for(var/T in paths)
rkey++
@@ -214,37 +214,37 @@ GLOBAL_LIST_EMPTY(mannequins)
GLOB.whitelisted_species += S.name
//Ores
paths = typesof(/ore)-/ore
paths = subtypesof(/ore)
for(var/oretype in paths)
var/ore/OD = new oretype()
GLOB.ore_data[OD.name] = OD
paths = typesof(/datum/alloy)-/datum/alloy
paths = subtypesof(/datum/alloy)
for(var/alloytype in paths)
GLOB.alloy_data += new alloytype()
//Closet appearances
GLOB.closet_appearances = decls_repository.get_decls_of_type(/decl/closet_appearance)
paths = typesof(/datum/sprite_accessory/ears) - /datum/sprite_accessory/ears
paths = subtypesof(/datum/sprite_accessory/ears)
for(var/path in paths)
var/obj/item/clothing/head/instance = new path()
ear_styles_list[path] = instance
// Custom Tails
paths = typesof(/datum/sprite_accessory/tail) - /datum/sprite_accessory/tail - /datum/sprite_accessory/tail/taur
paths = subtypesof(/datum/sprite_accessory/tail) - /datum/sprite_accessory/tail/taur
for(var/path in paths)
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
paths = subtypesof(/datum/sprite_accessory/wing)
for(var/path in paths)
var/datum/sprite_accessory/wing/instance = new path()
wing_styles_list[path] = instance
// VOREStation Add - Vore Modes!
paths = typesof(/datum/digest_mode)
paths = subtypesof(/datum/digest_mode)
for(var/T in paths)
var/datum/digest_mode/DM = new T
GLOB.digest_modes[DM.id] = DM
@@ -253,7 +253,7 @@ GLOBAL_LIST_EMPTY(mannequins)
/*
// Custom species traits
paths = typesof(/datum/trait) - /datum/trait
paths = subtypesof(/datum/trait) - /datum/trait
for(var/path in paths)
var/datum/trait/instance = new path()
if(!instance.name)

View File

@@ -133,6 +133,7 @@ GLOBAL_LIST_BOILERPLATE(allCasters, /obj/machinery/newscaster)
light_power = 0.9
light_range = 2
light_color = "#00ff00"
vis_flags = VIS_HIDE // They have an emissive that looks bad in openspace due to their wall-mounted nature
var/isbroken = 0 //1 if someone banged it with something heavy
var/ispowered = 1 //starts powered, changes with power_change()
//var/list/datum/feed_channel/channel_list = list() //This list will contain the names of the feed channels. Each name will refer to a data region where the messages of the feed channels are stored.

View File

@@ -33,6 +33,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
blocks_emissive = NONE
light_power = 0.25
light_color = "#00ff00"
vis_flags = VIS_HIDE // They have an emissive that looks bad in openspace due to their wall-mounted nature
var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department
var/list/message_log = list() //List of all messages
var/departmentType = 0 //Bitflag. Zero is reply-only. Map currently uses raw numbers instead of defines.

View File

@@ -250,7 +250,7 @@
src.throwing = 0
if (src.loc == user)
if(!user.unEquip(src, null, src))
if(!user.unEquip(src))
return
else
if(isliving(src.loc))

View File

@@ -12,6 +12,7 @@
light_color = "#00ff00"
light_power = 0.25
blocks_emissive = NONE
vis_flags = VIS_HIDE // They have an emissive that looks bad in openspace due to their wall-mounted nature
var/circuit = /obj/item/weapon/circuitboard/intercom
var/number = 0
var/wiresexposed = 0

View File

@@ -270,7 +270,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
if(istype(target, /mob/living/carbon/human))
var/mob/living/carbon/human/H = target
if(H.resleeve_lock && stored_mind.loaded_from_ckey != H.resleeve_lock)
to_chat(usr,"<span class='warning'>\[H] is protected from impersonation!</span>")
to_chat(usr,"<span class='warning'>\The [H] is protected from impersonation!</span>")
return
usr.visible_message("<span class='warning'>[usr] begins uploading someone's mind into [target]!</span>","<span class='notice'>You begin uploading a mind into [target]!</span>")

View File

@@ -1278,7 +1278,7 @@
var/client/C = usr.client
if(!isobserver(usr)) C.admin_ghost()
sleep(2)
C.jumptomob(M)
C.do_jumptomob(M)
else if(href_list["adminplayerobservefollow"])
if(!check_rights(R_MOD|R_ADMIN|R_SERVER)) //VOREStation Edit

View File

@@ -39,6 +39,7 @@
tgui_alert_async(usr, "Admin jumping disabled")
return
/// Verb wrapper around do_jumptomob()
/client/proc/jumptomob()
set category = "Admin"
set name = "Jump to Mob"
@@ -47,24 +48,30 @@
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
if(config.allow_admin_jump)
var/mob/M = tgui_input_list(usr, "Pick a mob:", "Jump to Mob", mob_list)
if(!M)
return
var/mob/M = tgui_input_list(usr, "Pick a mob:", "Jump to Mob", mob_list)
if(!M) // Cancelled
return
do_jumptomob(M)
/// Performs the jumps
/client/proc/do_jumptomob(var/mob/M)
if(!config.allow_admin_jump)
tgui_alert_async(usr, "Admin jumping disabled")
return
if(!M)
return
var/mob/A = src.mob // Impossible to be unset, enforced by byond
var/turf/T = get_turf(M)
if(isturf(T))
A.on_mob_jump()
A.forceMove(T)
log_admin("[key_name(usr)] jumped to [key_name(M)]")
message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]", 1)
if(src.mob)
var/mob/A = src.mob
var/turf/T = get_turf(M)
if(T && isturf(T))
feedback_add_details("admin_verb","JM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
A.on_mob_jump()
A.forceMove(T)
else
to_chat(A, "<span class='filter_adminlog'>This mob is not located in the game world.</span>")
feedback_add_details("admin_verb","JM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
else
tgui_alert_async(usr, "Admin jumping disabled")
to_chat(A, "<span class='filter_adminlog'>This mob is not located in the game world.</span>")
/client/proc/jumptocoord(tx as num, ty as num, tz as num)
set category = "Admin"
set name = "Jump to Coordinate"

View File

@@ -132,17 +132,7 @@
new_player_panel_proc()
if(href_list["observe"])
<<<<<<< HEAD
var/alert_time = ticker?.current_state <= GAME_STATE_SETTING_UP ? 1 : round(config.respawn_time/10/60)
if(tgui_alert(src,"Are you sure you wish to observe? You will have to wait up to [alert_time] minute\s before being able to spawn into the game!","Player Setup",list("Yes","No")) == "Yes")
||||||| parent of 186b262955... Merge pull request #10906 from VOREStation/Fixes/unused
var/alert_time = ticker?.current_state <= GAME_STATE_SETTING_UP ? 1 : round(config.respawn_time/10/60)
if(tgui_alert(src,"Are you sure you wish to observe? If you do, make sure to not use any knowledge gained from observing if you decide to join later.","Player Setup",list("Yes","No")) == "Yes")
=======
if(tgui_alert(src,"Are you sure you wish to observe? If you do, make sure to not use any knowledge gained from observing if you decide to join later.","Player Setup",list("Yes","No")) == "Yes")
>>>>>>> 186b262955... Merge pull request #10906 from VOREStation/Fixes/unused
if(!client) return 1
//Make a new mannequin quickly, and allow the observer to take the appearance

View File

@@ -23,7 +23,7 @@
var/icon_state // the icon_state of the accessory
var/preview_state // a custom preview state for whatever reason
var/name // the preview name of the accessory
var/name = "ERROR - FIXME" // the preview name of the accessory
// Determines if the accessory will be skipped or included in random hair generations
var/gender = NEUTER

View File

@@ -5,732 +5,849 @@
color_blend_mode = ICON_ADD
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
/datum/sprite_accessory/marking/vr
icon = 'icons/mob/human_races/markings_vr.dmi'
/datum/sprite_accessory/marking/vr/vulp_belly
/datum/sprite_accessory/marking/vr_vulp_belly
name = "belly fur (Vulp)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_belly"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
/datum/sprite_accessory/marking/vr/vulp_fullbelly
/datum/sprite_accessory/marking/vr_vulp_fullbelly
name = "full belly fur (Vulp)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_fullbelly"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
/datum/sprite_accessory/marking/vr/vulp_crest
/datum/sprite_accessory/marking/vr_vulp_crest
name = "belly crest (Vulp)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_crest"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
/datum/sprite_accessory/marking/vr/vulp_nose
/datum/sprite_accessory/marking/vr_vulp_nose
name = "nose (Vulp)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_nose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/vulp_short_nose
/datum/sprite_accessory/marking/vr_vulp_short_nose
name = "nose, short (Vulp)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_short_nose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/snoutstripe
/datum/sprite_accessory/marking/vr_snoutstripe
name = "snout stripe (Vulp)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "snoutstripe"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/vulp_face
/datum/sprite_accessory/marking/vr_vulp_face
name = "face (Vulp)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_face"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/vulp_facealt
/datum/sprite_accessory/marking/vr_vulp_facealt
name = "face, alt. (Vulp)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_facealt"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/vulp_earsface
/datum/sprite_accessory/marking/vr_vulp_earsface
name = "ears and face (Vulp)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_earsface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/vulp_all
/datum/sprite_accessory/marking/vr_vulp_all
name = "all head highlights (Vulp)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_all"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/sergal_full
/datum/sprite_accessory/marking/vr_sergal_full
name = "Sergal Markings"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "sergal_full"
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,BP_GROIN,BP_TORSO,BP_HEAD)
species_allowed = list("Sergal")
/datum/sprite_accessory/marking/vr/sergal_full_female
/datum/sprite_accessory/marking/vr_sergal_full_female
name = "Sergal Markings (Female)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "sergal_full_female"
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,BP_GROIN,BP_TORSO,BP_HEAD)
species_allowed = list("Sergal")
/datum/sprite_accessory/marking/vr/monoeye
/datum/sprite_accessory/marking/vr_monoeye
name = "Monoeye"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "monoeye"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/spidereyes
/datum/sprite_accessory/marking/vr_spidereyes
name = "Spider Eyes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "spidereyes"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/sergaleyes
/datum/sprite_accessory/marking/vr_sergaleyes
name = "Sergal Eyes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "eyes_sergal"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/closedeyes
/datum/sprite_accessory/marking/vr_closedeyes
name = "Closed Eyes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "eyes_closed"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/brows
/datum/sprite_accessory/marking/vr_brows
name = "Eyebrows"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "brows"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/nevrean_female
/datum/sprite_accessory/marking/vr_nevrean_female
name = "Female Nevrean beak"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "nevrean_f"
body_parts = list(BP_HEAD)
color_blend_mode = ICON_MULTIPLY
gender = FEMALE
/datum/sprite_accessory/marking/vr/nevrean_male
/datum/sprite_accessory/marking/vr_nevrean_male
name = "Male Nevrean beak"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "nevrean_m"
body_parts = list(BP_HEAD)
color_blend_mode = ICON_MULTIPLY
gender = MALE
/datum/sprite_accessory/marking/vr/spots
/datum/sprite_accessory/marking/vr_spots
name = "Spots"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "spots"
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,BP_GROIN,BP_TORSO)
/datum/sprite_accessory/marking/vr/shaggy_mane
/datum/sprite_accessory/marking/vr_shaggy_mane
name = "Shaggy mane/feathers"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "shaggy"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
/datum/sprite_accessory/marking/vr/jagged_teeth
/datum/sprite_accessory/marking/vr_jagged_teeth
name = "Jagged teeth"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "jagged"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/blank_face
/datum/sprite_accessory/marking/vr_blank_face
name = "Blank round face (use with monster mouth)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "blankface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/monster_mouth
/datum/sprite_accessory/marking/vr_monster_mouth
name = "Monster mouth"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "monster"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/saber_teeth
/datum/sprite_accessory/marking/vr_saber_teeth
name = "Saber teeth"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "saber"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/fangs
/datum/sprite_accessory/marking/vr_fangs
name = "Fangs"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "fangs"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/tusks
/datum/sprite_accessory/marking/vr_tusks
name = "Tusks"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tusks"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/otie_face
/datum/sprite_accessory/marking/vr_otie_face
name = "Otie face"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otieface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/otie_nose
/datum/sprite_accessory/marking/vr_otie_nose
name = "Otie nose"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otie_nose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/otienose_lite
/datum/sprite_accessory/marking/vr_otienose_lite
name = "Short otie nose"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otienose_lite"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/backstripes
/datum/sprite_accessory/marking/vr_backstripes
name = "Back stripes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otiestripes"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_HEAD)
/datum/sprite_accessory/marking/vr/belly_butt
/datum/sprite_accessory/marking/vr_belly_butt
name = "Belly and butt"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "bellyandbutt"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_GROIN,BP_TORSO)
/datum/sprite_accessory/marking/vr/fingers_toes
/datum/sprite_accessory/marking/vr_fingers_toes
name = "Fingers and toes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "fingerstoes"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
/datum/sprite_accessory/marking/vr/otie_socks
/datum/sprite_accessory/marking/vr_otie_socks
name = "Fingerless socks"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otiesocks"
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)
/datum/sprite_accessory/marking/vr/corvid_beak
/datum/sprite_accessory/marking/vr_corvid_beak
name = "Corvid beak"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "corvidbeak"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/corvid_belly
/datum/sprite_accessory/marking/vr_corvid_belly
name = "Corvid belly"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "corvidbelly"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_GROIN,BP_TORSO,BP_HEAD)
/datum/sprite_accessory/marking/vr/cow_body
/datum/sprite_accessory/marking/vr_cow_body
name = "Cow markings"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "cowbody"
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,BP_GROIN,BP_TORSO,BP_HEAD)
/datum/sprite_accessory/marking/vr/cow_nose
/datum/sprite_accessory/marking/vr_cow_nose
name = "Cow nose"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "cownose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/zmask
/datum/sprite_accessory/marking/vr_zmask
name = "Eye mask"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zmask"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/zbody
/datum/sprite_accessory/marking/vr_zbody
name = "Thick jagged stripes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zbody"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_GROIN,BP_TORSO)
/datum/sprite_accessory/marking/vr/znose
/datum/sprite_accessory/marking/vr_znose
name = "Jagged snout"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "znose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/otter_nose
/datum/sprite_accessory/marking/vr_otter_nose
name = "Otter nose"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otternose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/otter_face
/datum/sprite_accessory/marking/vr_otter_face
name = "Otter face"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otterface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/deer_face
/datum/sprite_accessory/marking/vr_deer_face
name = "Deer face"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "deerface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/sharkface
/datum/sprite_accessory/marking/vr_sharkface
name = "Akula snout"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "sharkface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/sheppy_face
/datum/sprite_accessory/marking/vr_sheppy_face
name = "Shepherd snout"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "shepface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/sheppy_back
/datum/sprite_accessory/marking/vr_sheppy_back
name = "Shepherd back"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "shepback"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
/datum/sprite_accessory/marking/vr/zorren_belly_male
/datum/sprite_accessory/marking/vr_zorren_belly_male
name = "Zorren Male Torso"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_belly"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
/datum/sprite_accessory/marking/vr/zorren_belly_female
/datum/sprite_accessory/marking/vr_zorren_belly_female
name = "Zorren Female Torso"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_belly_female"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
/datum/sprite_accessory/marking/vr/zorren_back_patch
/datum/sprite_accessory/marking/vr_zorren_back_patch
name = "Zorren Back Patch"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_backpatch"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
/datum/sprite_accessory/marking/vr/zorren_face_male
/datum/sprite_accessory/marking/vr_zorren_face_male
name = "Zorren Male Face"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_face"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
gender = MALE
/datum/sprite_accessory/marking/vr/zorren_face_female
/datum/sprite_accessory/marking/vr_zorren_face_female
name = "Zorren Female Face"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_face_female"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
gender = FEMALE
/datum/sprite_accessory/marking/vr/zorren_muzzle_male
/datum/sprite_accessory/marking/vr_zorren_muzzle_male
name = "Zorren Male Muzzle"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_muzzle"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
gender = MALE
/datum/sprite_accessory/marking/vr/zorren_muzzle_female
/datum/sprite_accessory/marking/vr_zorren_muzzle_female
name = "Zorren Female Muzzle"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_muzzle_female"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
gender = FEMALE
/datum/sprite_accessory/marking/vr/zorren_socks
/datum/sprite_accessory/marking/vr_zorren_socks
name = "Zorren Socks"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_socks"
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)
/datum/sprite_accessory/marking/vr/zorren_longsocks
/datum/sprite_accessory/marking/vr_zorren_longsocks
name = "Zorren Longsocks"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_longsocks"
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)
/datum/sprite_accessory/marking/vr/tesh_feathers
/datum/sprite_accessory/marking/vr_tesh_feathers
name = "Teshari Feathers"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tesh-feathers"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
/datum/sprite_accessory/marking/vr/harpy_feathers
/datum/sprite_accessory/marking/vr_harpy_feathers
name = "Rapala leg Feather"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "harpy-feathers"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG)
/datum/sprite_accessory/marking/vr/harpy_legs
/datum/sprite_accessory/marking/vr_harpy_legs
name = "Rapala leg coloring"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "harpy-leg"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
/datum/sprite_accessory/marking/vr/chooves
/datum/sprite_accessory/marking/vr_chooves
name = "Cloven hooves"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "chooves"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT)
/datum/sprite_accessory/marking/vr/body_tone
/datum/sprite_accessory/marking/vr_body_tone
name = "Body toning (for emergency contrast loss)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "btone"
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,BP_GROIN,BP_TORSO)
/datum/sprite_accessory/marking/vr/gloss
/datum/sprite_accessory/marking/vr_gloss
name = "Full body gloss"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "gloss"
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,BP_GROIN,BP_TORSO,BP_HEAD)
/datum/sprite_accessory/marking/vr/eboop_panels
/datum/sprite_accessory/marking/vr_eboop_panels
name = "Eggnerd FBP panels"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "eboop"
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,BP_GROIN,BP_TORSO,BP_HEAD)
/datum/sprite_accessory/marking/vr/osocks_rarm
/datum/sprite_accessory/marking/vr_osocks_rarm
name = "Modular Longsock (right arm)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "osocks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM,BP_R_HAND)
/datum/sprite_accessory/marking/vr/osocks_larm
/datum/sprite_accessory/marking/vr_osocks_larm
name = "Modular Longsock (left arm)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "osocks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_ARM,BP_L_HAND)
/datum/sprite_accessory/marking/vr/osocks_rleg
/datum/sprite_accessory/marking/vr_osocks_rleg
name = "Modular Longsock (right leg)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "osocks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_FOOT,BP_R_LEG)
/datum/sprite_accessory/marking/vr/osocks_lleg
/datum/sprite_accessory/marking/vr_osocks_lleg
name = "Modular Longsock (left leg)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "osocks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_L_LEG)
/datum/sprite_accessory/marking/vr/animeeyesinner
/datum/sprite_accessory/marking/vr_animeeyesinner
name = "Anime Eyes Inner"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "animeeyesinner"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/animeeyesouter
/datum/sprite_accessory/marking/vr_animeeyesouter
name = "Anime Eyes Outer"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "animeeyesouter"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/panda_eye_marks
/datum/sprite_accessory/marking/vr_panda_eye_marks
name = "Panda Eye Markings"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "eyes_panda"
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
/datum/sprite_accessory/marking/vr/catwomantorso
/datum/sprite_accessory/marking/vr_catwomantorso
name = "Catwoman chest stripes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "catwomanchest"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
/datum/sprite_accessory/marking/vr/catwomangroin
/datum/sprite_accessory/marking/vr_catwomangroin
name = "Catwoman groin stripes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "catwomangroin"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_GROIN)
/datum/sprite_accessory/marking/vr/catwoman_rleg
/datum/sprite_accessory/marking/vr_catwoman_rleg
name = "Catwoman right leg stripes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "catwomanright"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
/datum/sprite_accessory/marking/vr/catwoman_lleg
/datum/sprite_accessory/marking/vr_catwoman_lleg
name = "Catwoman left leg stripes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "catwomanleft"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
/datum/sprite_accessory/marking/vr/teshi_small_feathers
/datum/sprite_accessory/marking/vr_teshi_small_feathers
name = "Teshari small wingfeathers"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "teshi_sf"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND,BP_TORSO)
/datum/sprite_accessory/marking/vr/spirit_lights
/datum/sprite_accessory/marking/vr_spirit_lights
name = "Ward - Spirit FBP Lights"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "lights"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_HEAD)
/datum/sprite_accessory/marking/vr/spirit_lights_body
/datum/sprite_accessory/marking/vr_spirit_lights_body
name = "Ward - Spirit FBP Lights (body)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "lights"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO)
/datum/sprite_accessory/marking/vr/spirit_lights_head
/datum/sprite_accessory/marking/vr_spirit_lights_head
name = "Ward - Spirit FBP Lights (head)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "lights"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/spirit_panels
/datum/sprite_accessory/marking/vr_spirit_panels
name = "Ward - Spirit FBP Panels"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "panels"
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,BP_GROIN,BP_TORSO,BP_HEAD)
/datum/sprite_accessory/marking/vr/spirit_panels_body
/datum/sprite_accessory/marking/vr_spirit_panels_body
name = "Ward - Spirit FBP Panels (body)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "panels"
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,BP_GROIN,BP_TORSO)
/datum/sprite_accessory/marking/vr/spirit_panels_head
/datum/sprite_accessory/marking/vr_spirit_panels_head
name = "Ward - Spirit FBP Panels (head)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "panels"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/tentacle_head
/datum/sprite_accessory/marking/vr_tentacle_head
name = "Squid Head"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tentaclehead"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/tentacle_mouth
/datum/sprite_accessory/marking/vr_tentacle_mouth
name = "Tentacle Mouth"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tentaclemouth"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/rosette
/datum/sprite_accessory/marking/vr_rosette
name = "Rosettes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "rosette"
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,BP_GROIN,BP_TORSO,BP_HEAD)
/datum/sprite_accessory/marking/vr/werewolf_nose
/datum/sprite_accessory/marking/vr_werewolf_nose
name = "Werewolf nose"
icon = 'icons/mob/human_races/markings_vr.dmi'
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)
/datum/sprite_accessory/marking/vr/werewolf_face
/datum/sprite_accessory/marking/vr_werewolf_face
name = "Werewolf face"
icon = 'icons/mob/human_races/markings_vr.dmi'
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)
/datum/sprite_accessory/marking/vr/werewolf_belly
/datum/sprite_accessory/marking/vr_werewolf_belly
name = "Werewolf belly"
icon = 'icons/mob/human_races/markings_vr.dmi'
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)
/datum/sprite_accessory/marking/vr/werewolf_socks
/datum/sprite_accessory/marking/vr_werewolf_socks
name = "Werewolf socks"
icon = 'icons/mob/human_races/markings_vr.dmi'
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)
/datum/sprite_accessory/marking/vr/shadekin_snoot
/datum/sprite_accessory/marking/vr_shadekin_snoot
name = "Shadekin Snoot"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "shadekin-snoot"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
/datum/sprite_accessory/marking/vr/taj_nose_alt
/datum/sprite_accessory/marking/vr_taj_nose_alt
name = "Nose Color, alt. (Taj)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "taj_nosealt"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/talons
/datum/sprite_accessory/marking/vr_talons
name = "Talons"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "talons"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
/datum/sprite_accessory/marking/vr/claws
/datum/sprite_accessory/marking/vr_claws
name = "Claws"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "claws"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_HAND,BP_R_HAND)
/datum/sprite_accessory/marking/vr/equine_snout //Why the long face? Works best with sergal bodytype.
/datum/sprite_accessory/marking/vr_equine_snout //Why the long face? Works best with sergal bodytype.
name = "Equine Snout"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "donkey"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/equine_nose
/datum/sprite_accessory/marking/vr_equine_nose
name = "Equine Nose"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "dnose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/bee_stripes
/datum/sprite_accessory/marking/vr_bee_stripes
name = "bee stripes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "beestripes"
body_parts = list(BP_TORSO,BP_GROIN)
/datum/sprite_accessory/marking/vr/vas_toes
/datum/sprite_accessory/marking/vr_vas_toes
name = "Bug Paws (Vasilissan)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vas_toes"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT)
//CitRP stuff
/datum/sprite_accessory/marking/vr/vox_alt
/datum/sprite_accessory/marking/vr_vox_alt
name = "Vox Alternate"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "bay_vox"
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,BP_TORSO,BP_GROIN,BP_HEAD)
species_allowed = list(SPECIES_VOX)
/datum/sprite_accessory/marking/vr/vox_alt_eyes
/datum/sprite_accessory/marking/vr_vox_alt_eyes
name = "Alternate Vox Eyes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "bay_vox_eyes"
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_VOX)
/datum/sprite_accessory/marking/vr/c_beast_body
/datum/sprite_accessory/marking/vr_c_beast_body
name = "Cyber Body"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_body"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_GROIN)
/datum/sprite_accessory/marking/vr/c_beast_plating
/datum/sprite_accessory/marking/vr_c_beast_plating
name = "Cyber Plating (Use w/ Cyber Body)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_plating"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM)
/datum/sprite_accessory/marking/vr/c_beast_band
/datum/sprite_accessory/marking/vr_c_beast_band
name = "Cyber Band (Use w/ Cybertech head)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_band"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/c_beast_cheek_a
/datum/sprite_accessory/marking/vr_c_beast_cheek_a
name = "Cyber Beast Cheeks A (Use A, B and C)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_a"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/c_beast_cheek_b
/datum/sprite_accessory/marking/vr_c_beast_cheek_b
name = "Cyber Beast Cheeks B (Use A, B and C)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_b"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/c_beast_cheek_c
/datum/sprite_accessory/marking/vr_c_beast_cheek_c
name = "Cyber Beast Cheeks C (Use A, B and C)"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_c"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/teshari_large_eyes
/datum/sprite_accessory/marking/vr_teshari_large_eyes
name = "Teshari large eyes"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "teshlarge_eyes"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_TESHARI)
/datum/sprite_accessory/marking/vr/teshari_coat
/datum/sprite_accessory/marking/vr_teshari_coat
name = "Teshari coat"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tesh_coat"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_HEAD)
species_allowed = list(SPECIES_TESHARI)
/datum/sprite_accessory/marking/vr/teshari_pattern_male
/datum/sprite_accessory/marking/vr_teshari_pattern_male
name = "Teshari male pattern"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tesh-pattern-male"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
species_allowed = list(SPECIES_TESHARI)
/datum/sprite_accessory/marking/vr/teshari_pattern_female
/datum/sprite_accessory/marking/vr_teshari_pattern_female
name = "Teshari female pattern"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tesh-pattern-fem"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
species_allowed = list(SPECIES_TESHARI)
/datum/sprite_accessory/marking/vr/voxscales
/datum/sprite_accessory/marking/vr_voxscales
name = "Vox Scales"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "Voxscales"
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,BP_HEAD)
/datum/sprite_accessory/marking/vr/voxclaws
/datum/sprite_accessory/marking/vr_voxclaws
name = "Vox Claws"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "Voxclaws"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
/datum/sprite_accessory/marking/vr/voxbeak
/datum/sprite_accessory/marking/vr_voxbeak
name = "Vox Beak"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "Voxscales"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/unathihood
/datum/sprite_accessory/marking/vr_unathihood
name = "Cobra Hood"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathihood"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/unathidoublehorns
/datum/sprite_accessory/marking/vr_unathidoublehorns
name = "Double Unathi Horns"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathidoublehorns"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/unathihorns
/datum/sprite_accessory/marking/vr_unathihorns
name = "Unathi Horns"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathihorns"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/unathiramhorns
/datum/sprite_accessory/marking/vr_unathiramhorns
name = "Unathi Ram Horns"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathiramhorns"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/unathishortspines
/datum/sprite_accessory/marking/vr_unathishortspines
name = "Unathi Short Spines"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathishortspines"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/unathilongspines
/datum/sprite_accessory/marking/vr_unathilongspines
name = "Unathi Long Spines"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathilongspines"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/unathishortfrills
/datum/sprite_accessory/marking/vr_unathishortfrills
name = "Unathi Short Frills"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathishortfrills"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/unathilongfrills
/datum/sprite_accessory/marking/vr_unathilongfrills
name = "Unathi Long Frills"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathilongfrills"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/vr/thunderthighs
/datum/sprite_accessory/marking/vr_thunderthighs
name = "Boosted Thighs"
icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "thunderthighs"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG)

View File

@@ -245,60 +245,79 @@
//Teshari things
/datum/sprite_accessory/hair/teshari
name = "Teshari Default"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_altdefault
name = "Teshari Default (Alt)"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_tight
name = "Teshari Tight"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_excited
name = "Teshari Excited"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_spike
name = "Teshari Spike"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_long
name = "Teshari Long"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_burst
name = "Teshari Burst"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_shortburst
name = "Teshari Shortburst"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_mohawk
name = "Teshari Mohawk"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_pointy
name = "Teshari Pointy"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_upright
name = "Teshari Upright"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_mane
name = "Teshari Mane"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_droopy
name = "Teshari Droopy"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_mushroom
name = "Teshari Mushroom"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_twies
name = "Teshari Twies"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_backstrafe
name = "Teshari Backstrafe"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_longway
name = "Teshari Longway"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_tree
name = "Teshari Tree"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_fluffymohawk
name = "Teshari Fluffy Mohawk"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'

View File

@@ -247,7 +247,7 @@
to_chat(user, "<span class='notice'>You ready \the [src]! Click and drag the target around to shoot.</span>")
else//Otherwise just make a new one
auto_target = new/obj/screen/auto_target(get_turf(A), src)
visible_message("<span class='danger'>\[user] readies the [src]!</span>")
visible_message("<span class='danger'>\The [user] readies the [src]!</span>")
playsound(src, 'sound/weapons/TargetOn.ogg', 50, 1)
to_chat(user, "<span class='notice'>You ready \the [src]! Click and drag the target around to shoot.</span>")
return

View File

@@ -93,7 +93,7 @@
/obj/machinery/shield/hitby(AM as mob|obj)
//Let everyone know we've been hit!
visible_message("<span class='notice'><B>\[src] was hit by [AM].</B></span>")
visible_message("<span class='danger'>\The [src] was hit by [AM].</span>")
//Super realistic, resource-intensive, real-time damage calculations.
var/tforce = 0

View File

@@ -99,6 +99,10 @@
var/static/regex/whitelistedWords = regex(@{"([^\u0020-\u8000]+)"})
for(var/i in buttons)
if(isnull(i))
stack_trace("Null in a tgui_input_list() buttons")
continue
var/string_key = whitelistedWords.Replace("[i]", "")
//avoids duplicated keys E.g: when areas have the same name

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 119 KiB