mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Finishes up the main shadekin features
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)"
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user