Finishes up the main shadekin features

This commit is contained in:
Heroman3003
2019-11-15 11:13:31 +10:00
parent 62889c39d9
commit ab603cffa4
16 changed files with 71 additions and 64 deletions

View File

@@ -106,7 +106,7 @@ obj/var/contaminated = 0
updatehealth()
//Burn eyes if exposed.
if(vsc.plc.EYE_BURNS && (species.breath_type != "phoron"))
if(vsc.plc.EYE_BURNS && species.breath_type && (species.breath_type != "phoron")) //VOREStation Edit: those who don't breathe
var/burn_eyes = 1
//Check for protective glasses

View File

@@ -884,7 +884,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
var/restricted = 0
if(!(current_species.spawn_flags & SPECIES_CAN_JOIN)) //VOREStation Edit
if(!(current_species.spawn_flags & SPECIES_CAN_JOIN))
restricted = 2
else if(!is_alien_whitelisted(preference_mob(),current_species))
restricted = 1

View File

@@ -89,10 +89,19 @@
pref.b_wing = sanitize_integer(pref.b_wing, 0, 255, initial(pref.b_wing))
if(pref.ear_style)
pref.ear_style = sanitize_inlist(pref.ear_style, ear_styles_list, initial(pref.ear_style))
var/datum/sprite_accessory/temp_ear_style = ear_styles_list[pref.ear_style]
if(temp_ear_style.apply_restrictions && (!(pref.species in temp_ear_style.species_allowed)))
pref.ear_style = initial(pref.ear_style)
if(pref.tail_style)
pref.tail_style = sanitize_inlist(pref.tail_style, tail_styles_list, initial(pref.tail_style))
var/datum/sprite_accessory/temp_tail_style = tail_styles_list[pref.tail_style]
if(temp_tail_style.apply_restrictions && (!(pref.species in temp_tail_style.species_allowed)))
pref.tail_style = initial(pref.tail_style)
if(pref.wing_style)
pref.wing_style = sanitize_inlist(pref.wing_style, wing_styles_list, initial(pref.wing_style))
var/datum/sprite_accessory/temp_wing_style = wing_styles_list[pref.wing_style]
if(temp_wing_style.apply_restrictions && (!(pref.species in temp_wing_style.species_allowed)))
pref.wing_style = initial(pref.wing_style)
/datum/category_item/player_setup_item/vore/ears/copy_to_mob(var/mob/living/carbon/human/character)
character.ear_style = ear_styles_list[pref.ear_style]
@@ -182,7 +191,7 @@
var/list/pretty_ear_styles = list("Normal" = null)
for(var/path in ear_styles_list)
var/datum/sprite_accessory/ears/instance = ear_styles_list[path]
if((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed))
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)))
pretty_ear_styles[instance.name] = path
// Present choice to user
@@ -215,7 +224,7 @@
var/list/pretty_tail_styles = list("Normal" = null)
for(var/path in tail_styles_list)
var/datum/sprite_accessory/tail/instance = tail_styles_list[path]
if((!instance.ckeys_allowed) || (user.ckey in instance.ckeys_allowed))
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)))
pretty_tail_styles[instance.name] = path
// Present choice to user
@@ -248,7 +257,7 @@
var/list/pretty_wing_styles = list("Normal" = null)
for(var/path in wing_styles_list)
var/datum/sprite_accessory/wing/instance = wing_styles_list[path]
if((!instance.ckeys_allowed) || (user.ckey in instance.ckeys_allowed))
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)))
pretty_wing_styles[instance.name] = path
// Present choice to user

View File

@@ -7,8 +7,8 @@
var/flapping = 0
var/vantag_pref = VANTAG_NONE //What's my status?
var/impersonate_bodytype //For impersonating a bodytype
var/ability_flags = 0 //Shadekin stoof
var/sensorpref = 5
var/ability_flags = 0 //Shadekin abilities/potentially other species-based?
var/sensorpref = 5 //Suit sensor loadout pref
/mob/living/carbon/human/proc/shadekin_get_energy()
var/datum/species/shadekin/SK = species

View File

@@ -887,7 +887,7 @@
for(var/obj/item/I in src)
if(I.contaminated)
if(check_belly(I)) continue //VOREStation Edit
if(src.species && src.species.get_bodytype() != "Vox")
if(src.species && src.species.get_bodytype() != "Vox" && src.species.get_bodytype() != "Shadekin") //VOREStation Edit: shadekin
// This is hacky, I'm so sorry.
if(I != l_hand && I != r_hand) //If the item isn't in your hands, you're probably wearing it. Full damage for you.
total_phoronloss += vsc.plc.CONTAMINATION_LOSS

View File

@@ -5,13 +5,17 @@
deform = 'icons/mob/human_races/r_shadekin_vr.dmi'
tail = "tail"
icobase_tail = 1
blurb = "Waow! A shaadefluffer!"
blurb = "Very little is known about these creatures. They appear to be largely mammalian in appearance. \
Seemingly very rare to encounter, there have been widespread myths of these creatures the galaxy over, \
but next to no verifiable evidence to their existence. However, they have recently been more verifiably \
documented in the Virgo system, following a mining bombardment of Virgo 3. The crew of NSB Adephagia have \
taken to calling these creatures 'Shadekin', and the name has generally stuck and spread. " //TODO: Something that's not wiki copypaste
wikilink = "https://wiki.vore-station.net/Shadekin"
catalogue_data = list(/datum/category_item/catalogue/fauna/shadekin)
language = LANGUAGE_SHADEKIN
assisted_langs = list()
unarmed_types = list(/datum/unarmed_attack/claws/shadekin/red)
//hud_type = /datum/hud_data/shadekin
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws/shadekin, /datum/unarmed_attack/bite/sharp/shadekin)
rarity_value = 15 //INTERDIMENSIONAL FLUFFERS
has_fine_manipulation = 0
@@ -41,16 +45,16 @@
flags = NO_SCAN | NO_MINOR_CUT | NO_INFECT
spawn_flags = SPECIES_CAN_JOIN | SPECIES_WHITELIST_SELECTABLE
reagent_tag = IS_SHADEKIN //TODO: shadekin-unqiue chem interactions
reagent_tag = IS_SHADEKIN // for shadekin-unqiue chem interactions
flesh_color = "#34AF10" //TODO: set colors
blood_color = "#b3cbc3"
base_color = "#066000"
flesh_color = "#FFC896"
blood_color = "#A10808"
base_color = "#f0f0f0"
color_mult = 1
has_glowing_eyes = TRUE
death_message = "lets out a waning guttural screech, green blood bubbling from its maw." //TODO: replace
death_message = "phases to somewhere far away!"
male_cough_sounds = null
female_cough_sounds = null
male_sneeze_sound = null
@@ -80,7 +84,7 @@
O_EYES = /obj/item/organ/internal/eyes,
O_STOMACH = /obj/item/organ/internal/stomach,
O_INTESTINE = /obj/item/organ/internal/intestine
) //TODO: Phoron-immune eyes
)
has_limbs = list(
BP_TORSO = list("path" = /obj/item/organ/external/chest),

View File

@@ -3,6 +3,18 @@
/////////////////////
/// PHASE SHIFT ///
/////////////////////
//Visual effect for phase in/out
/obj/effect/temp_visual/shadekin
randomdir = FALSE
duration = 5
icon = 'icons/mob/vore_shadekin.dmi'
/obj/effect/temp_visual/shadekin/phase_in
icon_state = "tp_in"
/obj/effect/temp_visual/shadekin/phase_out
icon_state = "tp_out"
/datum/power/shadekin/phase_shift
name = "Phase Shift (100)"
desc = "Shift yourself out of alignment with realspace to travel quickly areas."
@@ -56,7 +68,6 @@
B.escapable = initial(B.escapable)
//overlays.Cut()
alpha = initial(alpha)
invisibility = initial(invisibility)
see_invisible = initial(see_invisible)
incorporeal_move = initial(incorporeal_move)
@@ -65,10 +76,13 @@
update_icon()
//Cosmetics mostly
flick("tp_in",src)
var/obj/effect/temp_visual/shadekin/phase_in/phaseanim = new /obj/effect/temp_visual/shadekin/phase_in(src.loc)
phaseanim.dir = dir
alpha = 0
custom_emote(1,"phases in!")
sleep(5) //The duration of the TP animation
canmove = original_canmove
alpha = initial(alpha)
//Potential phase-in vore
if(can_be_drop_pred) //Toggleable in vore panel
@@ -101,7 +115,9 @@
var/obj/belly/B = belly
B.escapable = FALSE
//flick("tp_out",src)
var/obj/effect/temp_visual/shadekin/phase_out/phaseanim = new /obj/effect/temp_visual/shadekin/phase_out(src.loc)
phaseanim.dir = dir
alpha = 0
sleep(5)
invisibility = INVISIBILITY_LEVEL_TWO
see_invisible = INVISIBILITY_LEVEL_TWO

View File

@@ -1,27 +1,3 @@
/datum/hud_data/shadekin
icon = 'icons/mob/shadekin_hud.dmi'
has_a_intent = 1
has_m_intent = 1
has_warnings = 1
has_hands = 1
has_drop = 1
has_throw = 1
has_resist = 1
has_pressure = 1
has_nutrition = 1
has_bodytemp = 1
has_internals = 0
gear = list(
"head" = list("loc" = ui_shoes, "name" = "Hat", "slot" = slot_head, "state" = "hair", "toggle" = 1),
"suit storage" = list("loc" = ui_sstore1, "name" = "Uniform", "slot" = slot_w_uniform, "state" = "center", "toggle" = 1),
"id" = list("loc" = ui_id, "name" = "ID", "slot" = slot_wear_id, "state" = "id"),
"belt" = list("loc" = ui_belt, "name" = "Belt", "slot" = slot_belt, "state" = "belt"),
"back" = list("loc" = ui_back, "name" = "Back", "slot" = slot_back, "state" = "back"),
"storage1" = list("loc" = ui_storage1, "name" = "Left Pocket", "slot" = slot_l_store, "state" = "pocket"),
"storage2" = list("loc" = ui_storage2, "name" = "Right Pocket", "slot" = slot_r_store, "state" = "pocket")
)
/obj/screen/shadekin
icon = 'icons/mob/shadekin_hud.dmi'
invisibility = 101

View File

@@ -46,26 +46,15 @@
target.bloodstr.add_reagent("numbenzyme",attack_damage)
/datum/unarmed_attack/claws/shadekin
var/energy_gain = 0
var/energy_gain = 3
/datum/unarmed_attack/claws/shadekin/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage)
..()
user.shadekin_adjust_energy(energy_gain)
/datum/unarmed_attack/claws/shadekin/blue
energy_gain = 1
/datum/unarmed_attack/bite/sharp/shadekin
var/energy_gain = 3
/datum/unarmed_attack/claws/shadekin/red
energy_gain = 8
/datum/unarmed_attack/claws/shadekin/yellow
energy_gain = 3
/datum/unarmed_attack/claws/shadekin/purple
energy_gain = 4
/datum/unarmed_attack/claws/shadekin/orange
energy_gain = 5
/datum/unarmed_attack/claws/shadekin/green
energy_gain = 1
/datum/unarmed_attack/bite/sharp/shadekin/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage)
..()
user.shadekin_adjust_energy(energy_gain)

View File

@@ -1090,7 +1090,7 @@
name = "Heterochromia"
icon_state = "heterochromia"
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, SPECIES_WEREBEAST) //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, SPECIES_SHADEKIN) //This lets all races use the default hairstyles.
werewolf_nose
name = "Werewolf nose"
@@ -1123,3 +1123,10 @@
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)
shadekin_snoot
name = "Shadekin Snoot"
icon_state = "shadekin-snoot"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_SHADEKIN)

View File

@@ -163,10 +163,11 @@
name = "Shadekin Tail (Shadekin)"
icon_state = "shadekin_s"
can_ride = 0
//ckeys_allowed = list("spoopylizz")
hide_body_parts = null
clip_mask_icon = null
clip_mask_state = null
apply_restrictions = TRUE
species_allowed = list(SPECIES_SHADEKIN)
/datum/sprite_accessory/tail/taur/shadekin_tail/shadekin_tail_2c
name = "Shadekin Tail dual-color (Shadekin)"

View File

@@ -12,6 +12,7 @@
/datum/sprite_accessory
// Ckey of person allowed to use this, if defined.
var/list/ckeys_allowed = null
var/apply_restrictions = FALSE //whether to apply restrictions for specific tails/ears/wings
/*
////////////////////////////
@@ -37,6 +38,8 @@
icon_state = "shadekin"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
apply_restrictions = TRUE
species_allowed = list(SPECIES_SHADEKIN)
// Ears avaliable to anyone
@@ -682,6 +685,8 @@
icon_state = "shadekin-short"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
apply_restrictions = TRUE
species_allowed = list(SPECIES_SHADEKIN)
// Everyone tails

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB