digitigrade legs port wip
@@ -50,3 +50,7 @@
|
||||
#define SELECTS_BODYTYPE_FALSE 0
|
||||
#define SELECTS_BODYTYPE_CUSTOM 1
|
||||
#define SELECTS_BODYTYPE_SHAPESHIFTER 2
|
||||
|
||||
#define MARKING_NONDIGI_ONLY (1 << 0)
|
||||
#define MARKING_DIGITIGRADE_ONLY (1 << 1)
|
||||
#define MARKING_ALL_LEGS MARKING_NONDIGI_ONLY|MARKING_DIGITIGRADE_ONLY
|
||||
|
||||
@@ -120,6 +120,7 @@ var/global/list/datum/dna/gene/dna_genes[0]
|
||||
var/custom_exclaim
|
||||
var/list/custom_heat = list()
|
||||
var/list/custom_cold = list()
|
||||
var/digitigrade = 0 //0, Not FALSE, for future use as indicator for digitigrade types
|
||||
// VOREStation
|
||||
|
||||
// New stuff
|
||||
@@ -148,6 +149,7 @@ var/global/list/datum/dna/gene/dna_genes[0]
|
||||
new_dna.custom_exclaim=custom_exclaim //VOREStaton Edit
|
||||
new_dna.custom_heat=custom_heat //VOREStation Edit
|
||||
new_dna.custom_cold=custom_cold //VOREStation Edit
|
||||
new_dna.digitigrade=src.digitigrade //VOREStation Edit
|
||||
var/list/body_markings_genetic = (body_markings - body_marking_nopersist_list)
|
||||
new_dna.body_markings=body_markings_genetic.Copy()
|
||||
for(var/b=1;b<=DNA_SE_LENGTH;b++)
|
||||
@@ -222,6 +224,7 @@ var/global/list/datum/dna/gene/dna_genes[0]
|
||||
src.custom_exclaim = character.custom_exclaim
|
||||
src.custom_heat = character.custom_heat
|
||||
src.custom_cold = character.custom_cold
|
||||
src.digitigrade = character.digitigrade
|
||||
|
||||
// +1 to account for the none-of-the-above possibility
|
||||
SetUIValueRange(DNA_UI_EAR_STYLE, ear_style + 1, ear_styles_list.len + 1, 1)
|
||||
|
||||
@@ -153,6 +153,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
S["r_wing3"] >> pref.r_wing3
|
||||
S["g_wing3"] >> pref.g_wing3
|
||||
S["b_wing3"] >> pref.b_wing3
|
||||
S["digitigrade"] >> pref.digitigrade
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/save_character(var/savefile/S)
|
||||
S["species"] << pref.species
|
||||
@@ -217,6 +218,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
S["r_wing3"] << pref.r_wing3
|
||||
S["g_wing3"] << pref.g_wing3
|
||||
S["b_wing3"] << pref.b_wing3
|
||||
S["digitigrade"] << pref.digitigrade
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/sanitize_character(var/savefile/S)
|
||||
if(!pref.species || !(pref.species in GLOB.playable_species))
|
||||
@@ -281,6 +283,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
pref.r_wing3 = sanitize_integer(pref.r_wing3, 0, 255, initial(pref.r_wing3))
|
||||
pref.g_wing3 = sanitize_integer(pref.g_wing3, 0, 255, initial(pref.g_wing3))
|
||||
pref.b_wing3 = sanitize_integer(pref.b_wing3, 0, 255, initial(pref.b_wing3))
|
||||
pref.digitigrade = sanitize_integer(pref.digitigrade, 0, 1, initial(pref.digitigrade))
|
||||
|
||||
pref.sanitize_body_styles()
|
||||
|
||||
@@ -314,6 +317,15 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
character.g_synth = pref.g_synth
|
||||
character.b_synth = pref.b_synth
|
||||
character.synth_markings = pref.synth_markings
|
||||
if(character.species.digi_allowed)
|
||||
character.digitigrade = pref.digitigrade
|
||||
else
|
||||
character.digitigrade = 0
|
||||
|
||||
//sanity check
|
||||
if(character.digitigrade == null)
|
||||
character.digitigrade = 0
|
||||
pref.digitigrade = 0
|
||||
|
||||
var/list/ear_styles = pref.get_available_styles(global.ear_styles_list)
|
||||
character.ear_style = ear_styles[pref.ear_style]
|
||||
@@ -577,6 +589,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
. += "<br><b>Body Color</b><br>"
|
||||
. += "<a href='?src=\ref[src];skin_color=1'>Change Color</a> [color_square(pref.r_skin, pref.g_skin, pref.b_skin)]<br>"
|
||||
|
||||
if(mob_species.digi_allowed)
|
||||
. += "<br><b>Digitigrade?:</b> <a href='?src=\ref[src];digitigrade=1'><b>[pref.digitigrade ? "Yes" : "No"]</b></a><br>"
|
||||
|
||||
. += "<h2>Genetics Settings</h2>"
|
||||
|
||||
var/list/ear_styles = pref.get_available_styles(global.ear_styles_list)
|
||||
@@ -794,6 +809,11 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
pref.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
if(href_list["digitigrade"])
|
||||
pref.digitigrade = !pref.digitigrade
|
||||
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["eye_color"])
|
||||
if(!has_flag(mob_species, HAS_EYE_COLOR))
|
||||
return TOPIC_NOACTION
|
||||
|
||||
@@ -82,6 +82,7 @@ var/list/preferences_datums = list()
|
||||
var/g_synth //Same as above
|
||||
var/b_synth //Same as above
|
||||
var/synth_markings = 1 //Enable/disable markings on synth parts. //VOREStation Edit - 1 by default
|
||||
var/digitigrade = 0
|
||||
|
||||
//Some faction information.
|
||||
var/home_system = "Unset" //Current home or residence.
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
|
||||
var/polychromic = FALSE //VOREStation edit
|
||||
|
||||
var/update_icon_define_orig = null // temp storage for original update_icon_define (if it exists)
|
||||
var/fit_for_digi = FALSE // flag for if clothing has already been reskinned to digitigrade
|
||||
|
||||
//Updates the icons of the mob wearing the clothing item, if any.
|
||||
/obj/item/clothing/proc/update_clothing_icon()
|
||||
return
|
||||
@@ -1059,3 +1062,61 @@
|
||||
M.forceMove(get_turf(src))
|
||||
return ..()
|
||||
//Vorestation edit end
|
||||
|
||||
/obj/item/clothing/proc/handle_digitigrade(var/mob/user)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
// if digitigrade-use flag is set
|
||||
if(H.digitigrade)
|
||||
|
||||
// figure out what slot we care about
|
||||
var/update_icon_define_digi = null
|
||||
|
||||
if(istype(src, /obj/item/clothing/shoes))
|
||||
update_icon_define_digi = "icons/inventory/feet/mob_digi.dmi"
|
||||
else if(istype(src, /obj/item/clothing/suit)) //suit
|
||||
update_icon_define_digi = "icons/inventory/suit/mob_digi.dmi"
|
||||
else if(istype(src, /obj/item/clothing/under)) //uniform
|
||||
update_icon_define_digi = "icons/inventory/uniform/mob_digi.dmi"
|
||||
else
|
||||
return
|
||||
|
||||
// Don't reset if already set
|
||||
if(!fit_for_digi)
|
||||
fit_for_digi = TRUE // set flag even if no icon_state exists, so we don't repeat checks
|
||||
|
||||
//if update_icon_define is already set to something, place it in a var to hold it temporarily
|
||||
if(update_icon_define)
|
||||
update_icon_define_orig = update_icon_define
|
||||
|
||||
// only override icon if a corresponding digitigrade replacement icon_state exists
|
||||
// otherwise, keep the old non-digi icon_define (or nothing)
|
||||
if(icon_state && icon_states(update_icon_define_digi).Find(icon_state))
|
||||
update_icon_define = update_icon_define_digi
|
||||
|
||||
|
||||
// if not-digitigrade, only act if the clothing was previously fit for a digitigrade char
|
||||
else
|
||||
if(fit_for_digi)
|
||||
fit_for_digi = FALSE
|
||||
|
||||
//either reset update_icon_define to it's old value
|
||||
// or reset update_icon_define to null
|
||||
if(update_icon_define_orig)
|
||||
update_icon_define = update_icon_define_orig
|
||||
update_icon_define_orig = null
|
||||
else
|
||||
update_icon_define = null
|
||||
|
||||
/obj/item/clothing/shoes/equipped(var/mob/user, var/slot)
|
||||
. = ..()
|
||||
handle_digitigrade(user)
|
||||
|
||||
/obj/item/clothing/suit/equipped(var/mob/user, var/slot)
|
||||
. = ..()
|
||||
handle_digitigrade(user)
|
||||
|
||||
/obj/item/clothing/under/equipped(var/mob/user, var/slot)
|
||||
. = ..()
|
||||
handle_digitigrade(user)
|
||||
|
||||
@@ -36,6 +36,8 @@
|
||||
var/b_synth //Same as above
|
||||
var/synth_markings = 0 //Enables/disables markings on synth parts.
|
||||
|
||||
var/digitigrade = 0 // 0 = no digi, 1 = default, 2+ = digi styles... (Not used yet)
|
||||
|
||||
//var/size_multiplier = 1 //multiplier for the mob's icon size //VOREStation Edit (Moved to /mob/living)
|
||||
var/damage_multiplier = 1 //multiplies melee combat damage
|
||||
var/icon_update = 1 //whether icon updating shall take place
|
||||
|
||||
@@ -61,6 +61,9 @@
|
||||
var/min_age = 17
|
||||
var/max_age = 70
|
||||
|
||||
var/icodigi = 'icons/mob/human_races/r_digi.dmi'
|
||||
var/digi_allowed = FALSE
|
||||
|
||||
// Language/culture vars.
|
||||
var/default_language = LANGUAGE_GALCOM // Default language is used when 'say' is used without modifiers.
|
||||
var/language = LANGUAGE_GALCOM // Default racial language, if any.
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
name_plural = "Custom"
|
||||
selects_bodytype = SELECTS_BODYTYPE_CUSTOM
|
||||
base_species = SPECIES_HUMAN
|
||||
digi_allowed = TRUE
|
||||
|
||||
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch, /datum/unarmed_attack/bite)
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
selects_bodytype = SELECTS_BODYTYPE_SHAPESHIFTER
|
||||
base_species = SPECIES_HUMAN
|
||||
digi_allowed = TRUE
|
||||
|
||||
blood_color = "#505050" //This is the same as the 80,80,80 below, but in hex
|
||||
flesh_color = "#505050"
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
health_hud_intensity = 2.5
|
||||
chem_strength_alcohol = 0.75
|
||||
throwforce_absorb_threshold = 10
|
||||
digi_allowed = TRUE
|
||||
|
||||
min_age = 32
|
||||
max_age = 260
|
||||
@@ -198,6 +199,7 @@
|
||||
species_language = LANGUAGE_SIIK
|
||||
health_hud_intensity = 2.5
|
||||
chem_strength_alcohol = 1.25
|
||||
digi_allowed = TRUE
|
||||
|
||||
min_age = 17
|
||||
max_age = 80
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
burn_mod = 1.15 //As vulnerable to burn as a Tajara.
|
||||
base_species = "Xenochimera"
|
||||
selects_bodytype = SELECTS_BODYTYPE_CUSTOM
|
||||
digi_allowed = TRUE
|
||||
|
||||
num_alternate_languages = 3
|
||||
species_language = null
|
||||
@@ -332,6 +333,7 @@
|
||||
brute_mod = 0.8 //20% brute damage reduction
|
||||
burn_mod = 1.15 //15% burn damage increase. They're spiders. Aerosol can+lighter = dead spiders.
|
||||
throwforce_absorb_threshold = 10
|
||||
digi_allowed = TRUE
|
||||
|
||||
num_alternate_languages = 3
|
||||
species_language = LANGUAGE_VESPINAE
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
species_language = LANGUAGE_SAGARU
|
||||
color_mult = 1
|
||||
inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair)
|
||||
digi_allowed = TRUE
|
||||
|
||||
min_age = 18
|
||||
max_age = 80
|
||||
@@ -86,6 +87,7 @@
|
||||
inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair, /mob/living/carbon/human/proc/water_stealth, /mob/living/carbon/human/proc/underwater_devour)
|
||||
min_age = 18
|
||||
max_age = 80
|
||||
digi_allowed = TRUE
|
||||
|
||||
blurb = "The Akula are a species of amphibious humanoids like the Skrell, but have an appearance very similar to that of a shark. \
|
||||
They were first discovered as a primitive race of underwater dwelling tribal creatures by the Skrell. At first they were not believed \
|
||||
@@ -138,6 +140,7 @@
|
||||
/mob/living/carbon/human/proc/tie_hair)
|
||||
min_age = 18
|
||||
max_age = 80
|
||||
digi_allowed = TRUE
|
||||
|
||||
blurb = "Nevreans are a race of avian and dinosaur-like creatures living on Tal. They belong to a group of races that hails from Eltus, \
|
||||
in the Vilous system. Unlike sergals whom they share a star system with, their species is a very peaceful one. They possess remarkable \
|
||||
@@ -180,6 +183,7 @@
|
||||
inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds,
|
||||
/mob/living/proc/shred_limb,
|
||||
/mob/living/carbon/human/proc/tie_hair)
|
||||
digi_allowed = TRUE
|
||||
|
||||
min_age = 18
|
||||
max_age = 80
|
||||
@@ -237,6 +241,7 @@
|
||||
color_mult = 1
|
||||
inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds,
|
||||
/mob/living/carbon/human/proc/tie_hair)
|
||||
digi_allowed = TRUE
|
||||
|
||||
wikilink="https://wiki.vore-station.net/Backstory#Vulpkanin"
|
||||
|
||||
@@ -411,6 +416,7 @@
|
||||
color_mult = 1
|
||||
genders = list(MALE, FEMALE, PLURAL, NEUTER)
|
||||
inherent_verbs = list(/mob/living/proc/flying_toggle,/mob/living/proc/flying_vore_toggle,/mob/living/proc/start_wings_hovering,/mob/living/carbon/human/proc/tie_hair)
|
||||
digi_allowed = TRUE
|
||||
|
||||
min_age = 18
|
||||
max_age = 80
|
||||
@@ -452,6 +458,7 @@
|
||||
taken to calling these creatures 'Shadekin', and the name has generally stuck and spread. " //TODO: Something more fitting for black-eyes
|
||||
wikilink = "https://wiki.vore-station.net/Shadekin"
|
||||
catalogue_data = list(/datum/category_item/catalogue/fauna/shadekin)
|
||||
digi_allowed = TRUE
|
||||
|
||||
language = LANGUAGE_SHADEKIN
|
||||
name_language = LANGUAGE_SHADEKIN
|
||||
@@ -561,6 +568,7 @@
|
||||
name_language = LANGUAGE_TERMINUS
|
||||
species_language = LANGUAGE_TERMINUS
|
||||
inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds,/mob/living/proc/shred_limb,/mob/living/carbon/human/proc/tie_hair)
|
||||
digi_allowed = TRUE
|
||||
|
||||
min_age = 18
|
||||
max_age = 80
|
||||
@@ -592,6 +600,7 @@
|
||||
darksight = 4 //Better hunters in the dark.
|
||||
hunger_factor = 0.1 //In exchange, they get hungry a tad faster.
|
||||
num_alternate_languages = 3
|
||||
digi_allowed = TRUE
|
||||
|
||||
min_age = 18
|
||||
max_age = 80
|
||||
@@ -631,6 +640,7 @@
|
||||
name_language = null
|
||||
color_mult = 1
|
||||
inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair)
|
||||
digi_allowed = TRUE
|
||||
|
||||
min_age = 18
|
||||
max_age = 80
|
||||
|
||||
@@ -311,6 +311,9 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
if(tail_style.clip_mask) //VOREStation Edit.
|
||||
icon_key += tail_style.clip_mask_state
|
||||
|
||||
if(digitigrade && (part.organ_tag == BP_R_LEG || part.organ_tag == BP_L_LEG || part.organ_tag == BP_R_FOOT || part.organ_tag == BP_L_FOOT))
|
||||
icon_key += "_digi"
|
||||
|
||||
if(tail_style)
|
||||
pixel_x = tail_style.mob_offset_x
|
||||
pixel_y = tail_style.mob_offset_y
|
||||
@@ -789,6 +792,14 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
if(istype(foot) && foot.is_hidden_by_sprite_accessory(clothing_only = TRUE)) //If either foot is hidden by the tail, don't render footwear.
|
||||
return
|
||||
|
||||
var/obj/item/clothing/shoes/shoe = shoes
|
||||
var/shoe_sprite
|
||||
|
||||
if(istype(shoe) && !isnull(shoe.update_icon_define))
|
||||
shoe_sprite = shoe.update_icon_define
|
||||
else
|
||||
shoe_sprite = INV_FEET_DEF_ICON
|
||||
|
||||
//Allow for shoe layer toggle nonsense
|
||||
var/shoe_layer = SHOES_LAYER
|
||||
if(istype(shoes, /obj/item/clothing/shoes))
|
||||
@@ -797,7 +808,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
shoe_layer = SHOES_LAYER_ALT
|
||||
|
||||
//NB: the use of a var for the layer on this one
|
||||
overlays_standing[shoe_layer] = shoes.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_shoes_str, default_icon = INV_FEET_DEF_ICON, default_layer = shoe_layer)
|
||||
overlays_standing[shoe_layer] = shoes.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_shoes_str, default_icon = shoe_sprite, default_layer = shoe_layer)
|
||||
|
||||
apply_layer(SHOES_LAYER)
|
||||
apply_layer(SHOES_LAYER_ALT)
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
/datum/sprite_accessory/marking //Override for base markings
|
||||
color_blend_mode = ICON_ADD
|
||||
species_allowed = list() //This lets all races use
|
||||
var/digitigrade_acceptance = MARKING_NONDIGI_ONLY
|
||||
var/digitigrade_icon = 'icons/mob/human_races/markings_digi.dmi'
|
||||
|
||||
/datum/sprite_accessory/marking/vr_vulp_belly
|
||||
name = "belly fur (Vulp)"
|
||||
@@ -1128,4 +1130,105 @@
|
||||
icon = 'icons/mob/human_races/markings_vr.dmi'
|
||||
icon_state = "backsail"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO)
|
||||
body_parts = list(BP_TORSO)
|
||||
|
||||
//Digitigrade markings
|
||||
/datum/sprite_accessory/marking/digi
|
||||
icon = 'icons/mob/human_races/markings_digi.dmi'
|
||||
digitigrade_acceptance = MARKING_DIGITIGRADE_ONLY
|
||||
|
||||
/datum/sprite_accessory/marking/digi/fullleft
|
||||
name = "Digitigrade Full Left Leg(Only works with digitigrade legs)"
|
||||
icon_state = "full"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/fullright
|
||||
name = "Digitigrade Full Right Leg(Only works with digitigrade legs)"
|
||||
icon_state = "full"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG,BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/longsockleft
|
||||
name = "Digitigrade Long Socks Left(Only works with digitigrade legs)"
|
||||
icon_state = "longsock"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/longsockright
|
||||
name = "Digitigrade Long Socks Right(Only works with digitigrade legs)"
|
||||
icon_state = "longsock"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG,BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/medsockleft
|
||||
name = "Digitigrade Medium Socks Left(Only works with digitigrade legs)"
|
||||
icon_state = "medsock"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/medsockright
|
||||
name = "Digitigrade Medium Socks Right(Only works with digitigrade legs)"
|
||||
icon_state = "medsock"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG,BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/shortsockleft
|
||||
name = "Digitigrade Short Socks Left(Only works with digitigrade legs)"
|
||||
icon_state = "shortsock"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/shortsockright
|
||||
name = "Digitigrade Short Socks Right(Only works with digitigrade legs)"
|
||||
icon_state = "shortsock"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/toesleft
|
||||
name = "Digitigrade Toes Left(Only works with digitigrade legs)"
|
||||
icon_state = "toes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/toesright
|
||||
name = "Digitigrade Toes Right(Only works with digitigrade legs)"
|
||||
icon_state = "toes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/stripesleft
|
||||
name = "Digitigrade Stripes Left(Only works with digitigrade legs)"
|
||||
icon_state = "stripes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/stripesright
|
||||
name = "Digitigrade Stripes Right(Only works with digitigrade legs)"
|
||||
icon_state = "stripes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG,BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/smallspotsleft
|
||||
name = "Digitigrade Small Spots Left(Only works with digitigrade legs)"
|
||||
icon_state = "smallspots"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/smallspotsright
|
||||
name = "Digitigrade Small Spots Right(Only works with digitigrade legs)"
|
||||
icon_state = "smallspots"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG,BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/bigspotsleft
|
||||
name = "Digitigrade Big Spots Left(Only works with digitigrade legs)"
|
||||
icon_state = "bigspots"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_L_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/digi/bigspotsright
|
||||
name = "Digitigrade Big Spots Right(Only works with digitigrade legs)"
|
||||
icon_state = "bigspots"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG,BP_R_FOOT)
|
||||
|
||||
@@ -45,6 +45,8 @@
|
||||
var/body_hair // Icon blend for body hair if any.
|
||||
var/mob/living/applied_pressure
|
||||
var/list/markings = list() // Markings (body_markings) to apply to the icon
|
||||
var/skip_robo_icon = FALSE //to force it to use the normal species icon
|
||||
var/digi_prosthetic = FALSE //is it a prosthetic that can be digitigrade
|
||||
|
||||
// Wound and structural data.
|
||||
var/wound_update_accuracy = 1 // how often wounds should be updated, a higher number means less often
|
||||
@@ -201,6 +203,12 @@
|
||||
O = O.parent
|
||||
return 0
|
||||
|
||||
//new function to check for markings
|
||||
/obj/item/organ/external/proc/is_hidden_by_markings()
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
if(istype(mark_style,/datum/sprite_accessory/marking) && (organ_tag in mark_style.hide_body_parts))
|
||||
return 1
|
||||
|
||||
/obj/item/organ/external/proc/dislocate()
|
||||
if(dislocated == -1)
|
||||
|
||||
@@ -99,6 +99,11 @@
|
||||
for(var/modifier_type in R.genetic_modifiers)
|
||||
H.add_modifier(modifier_type)
|
||||
|
||||
//Apply legs
|
||||
H.digitigrade = R.dna.digitigrade // ensure clone mob has digitigrade var set appropriately
|
||||
if(H.dna.digitigrade <> R.dna.digitigrade)
|
||||
H.dna.digitigrade = R.dna.digitigrade // ensure cloned DNA is set appropriately from record??? for some reason it doesn't get set right despite the override to datum/dna/Clone()
|
||||
|
||||
//Apply damage
|
||||
H.adjustCloneLoss(H.getMaxHealth()*1.5)
|
||||
H.Paralyse(4)
|
||||
|
||||
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 336 KiB |
|
After Width: | Height: | Size: 416 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 715 B |
|
After Width: | Height: | Size: 324 B |
|
After Width: | Height: | Size: 702 B |
|
After Width: | Height: | Size: 548 B |
|
After Width: | Height: | Size: 3.1 KiB |
@@ -4265,6 +4265,7 @@
|
||||
#include "maps\southern_cross\loadout\loadout_suit.dm"
|
||||
#include "maps\southern_cross\loadout\loadout_uniform.dm"
|
||||
#include "maps\southern_cross\loadout\loadout_vr.dm"
|
||||
#include "maps\stellar_delight\stellar_delight.dm"
|
||||
#include "maps\submaps\_helpers.dm"
|
||||
#include "maps\submaps\_readme.dm"
|
||||
#include "maps\submaps\admin_use_vr\event_autonomous_drone.dm"
|
||||
@@ -4275,6 +4276,5 @@
|
||||
#include "maps\submaps\space_submaps\debrisfield\debrisfield.dm"
|
||||
#include "maps\submaps\surface_submaps\wilderness\wilderness.dm"
|
||||
#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm"
|
||||
#include "maps\tether\tether.dm"
|
||||
#include "maps\~map_system\maps.dm"
|
||||
// END_INCLUDE
|
||||
|
||||