Adds in GeneShadekins. A form of shadekin without their powers.

This commit is contained in:
Luke Vale
2019-11-25 22:02:12 -06:00
parent 4cc79949f1
commit a3aa3f252e
8 changed files with 265 additions and 12 deletions

View File

@@ -0,0 +1 @@
#define SPECIES_SHADEKIN_YW "GeneShadekin"

View File

@@ -427,7 +427,8 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN,
SPECIES_XENO_QUEEN,
SPECIES_SHADOW,
SPECIES_GOLEM, //Some special species that may or may not be ever used in event too,
SPECIES_SHADEKIN) //Shadefluffers just poof away
SPECIES_SHADEKIN,
SPECIES_SHADEKIN_YW) //Shadefluffers just poof away
/hook/startup/proc/init_vore_datum_ref_lists()
var/paths

View File

@@ -1,4 +1,4 @@
// MEDICAL SIDE EFFECT BASE
oh // MEDICAL SIDE EFFECT BASE
// ========================
/datum/medical_effect
var/name = "None"

View File

@@ -0,0 +1,249 @@
/datum/species/shadekin_yw
name = SPECIES_SHADEKIN_YW
name_plural = "Shadekin"
icobase = 'icons/mob/human_races/r_shadekin_vr.dmi'
deform = 'icons/mob/human_races/r_shadekin_vr.dmi'
tail = "tail"
icobase_tail = 1
blurb = "A shadekin, where their powers have been stripped down, their access to the bluespace warp, removed."
catalogue_data = list(/datum/category_item/catalogue/fauna/shadekin)
language = LANGUAGE_SHADEKIN
assisted_langs = list()
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
siemens_coefficient = 0
darksight = 10
slowdown = -0.5
item_slowdown_mod = 0.5
brute_mod = 0.7 // Naturally sturdy.
burn_mod = 1.2 // Furry
warning_low_pressure = 50
hazard_low_pressure = -1
warning_high_pressure = 300
hazard_high_pressure = INFINITY
cold_level_1 = -1 //Immune to cold
cold_level_2 = -1
cold_level_3 = -1
heat_level_1 = 850 //Resistant to heat
heat_level_2 = 1000
heat_level_3 = 1150
flags = NO_SCAN | NO_MINOR_CUT | NO_INFECT
spawn_flags = SPECIES_CAN_JOIN
reagent_tag = IS_SHADEKIN // for shadekin-unqiue chem interactions
flesh_color = "#FFC896"
blood_color = "#A10808"
base_color = "#f0f0f0"
color_mult = 1
has_glowing_eyes = TRUE
death_message = "phases to somewhere far away!"
male_cough_sounds = null
female_cough_sounds = null
male_sneeze_sound = null
female_sneeze_sound = null
speech_bubble_appearance = "ghost"
genders = list(PLURAL, NEUTER) //no sexual dymorphism
ambiguous_genders = TRUE //but just in case
virus_immune = 1
breath_type = null
poison_type = null
vision_flags = SEE_SELF
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_SKIN_COLOR | HAS_EYE_COLOR | HAS_UNDERWEAR
move_trail = /obj/effect/decal/cleanable/blood/tracks/paw
has_organ = list(
O_HEART = /obj/item/organ/internal/heart,
O_VOICE = /obj/item/organ/internal/voicebox,
O_LIVER = /obj/item/organ/internal/liver,
O_KIDNEYS = /obj/item/organ/internal/kidneys,
O_BRAIN = /obj/item/organ/internal/brain/shadekin,
O_EYES = /obj/item/organ/internal/eyes,
O_STOMACH = /obj/item/organ/internal/stomach,
O_INTESTINE = /obj/item/organ/internal/intestine
)
has_limbs = list(
BP_TORSO = list("path" = /obj/item/organ/external/chest),
BP_GROIN = list("path" = /obj/item/organ/external/groin),
BP_HEAD = list("path" = /obj/item/organ/external/head/vr/shadekin),
BP_L_ARM = list("path" = /obj/item/organ/external/arm),
BP_R_ARM = list("path" = /obj/item/organ/external/arm/right),
BP_L_LEG = list("path" = /obj/item/organ/external/leg),
BP_R_LEG = list("path" = /obj/item/organ/external/leg/right),
BP_L_HAND = list("path" = /obj/item/organ/external/hand),
BP_R_HAND = list("path" = /obj/item/organ/external/hand/right),
BP_L_FOOT = list("path" = /obj/item/organ/external/foot),
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right)
)
/*
//SHADEKIN-UNIQUE STUFF GOES HERE
var/list/shadekin_abilities = list(/datum/power/shadekin/phase_shift,
/datum/power/shadekin/regenerate_other,
/datum/power/shadekin/create_shade)
var/list/shadekin_ability_datums = list()
/datum/species/shadekin/New()
..()
for(var/power in shadekin_abilities)
var/datum/power/shadekin/SKP = new power(src)
shadekin_ability_datums.Add(SKP)
*/
/datum/species/shadekin_yw/handle_death(var/mob/living/carbon/human/H)
spawn(1)
for(var/obj/item/W in H)
H.drop_from_inventory(W)
qdel(H)
/datum/species/shadekin_yw/get_bodytype()
return SPECIES_SHADEKIN
/datum/species/shadekin_yw/get_random_name()
return "shadekin"
///datum/species/shadekin_yw/handle_environment_special(var/mob/living/carbon/human/H)
// handle_shade(H)
/datum/species/shadekin_yw/can_breathe_water()
return TRUE //they dont quite breathe
/*
/datum/species/shadekin/add_inherent_verbs(var/mob/living/carbon/human/H)
..()
add_shadekin_abilities(H)
/datum/species/shadekin/proc/add_shadekin_abilities(var/mob/living/carbon/human/H)
if(!H.ability_master || !istype(H.ability_master, /obj/screen/movable/ability_master/shadekin))
H.ability_master = null
H.ability_master = new /obj/screen/movable/ability_master/shadekin(H)
for(var/datum/power/shadekin/P in shadekin_ability_datums)
if(!(P.verbpath in H.verbs))
H.verbs += P.verbpath
H.ability_master.add_shadekin_ability(
object_given = H,
verb_given = P.verbpath,
name_given = P.name,
ability_icon_given = P.ability_icon_state,
arguments = list()
/datum/species/shadekin/proc/handle_shade(var/mob/living/carbon/human/H)
//Shifted kin don't gain/lose energy (and save time if we're at the cap)
var/darkness = 1
var/dark_gains = 0
var/turf/T = get_turf(H)
if(!T)
dark_gains = 0
return
var/brightness = T.get_lumcount() //Brightness in 0.0 to 1.0
darkness = 1-brightness //Invert
if(H.ability_flags & AB_PHASE_SHIFTED)
dark_gains = 0
else
//Heal (very) slowly in good darkness
if(darkness >= 0.75)
H.adjustFireLoss(-0.05)
H.adjustBruteLoss(-0.05)
H.adjustToxLoss(-0.05)
dark_gains = 0.75
else
dark_gains = 0.25
set_energy(H, get_energy(H) + dark_gains)
//Update huds
update_shadekin_hud(H)
/datum/species/shadekin/proc/get_energy(var/mob/living/carbon/human/H)
var/obj/item/organ/internal/brain/shadekin/shade_organ = H.internal_organs_by_name[O_BRAIN]
if(!istype(shade_organ))
return 0
return shade_organ.dark_energy
/datum/species/shadekin/proc/get_max_energy(var/mob/living/carbon/human/H)
var/obj/item/organ/internal/brain/shadekin/shade_organ = H.internal_organs_by_name[O_BRAIN]
if(!istype(shade_organ))
return 0
return shade_organ.max_dark_energy
/datum/species/shadekin/proc/set_energy(var/mob/living/carbon/human/H, var/new_energy)
var/obj/item/organ/internal/brain/shadekin/shade_organ = H.internal_organs_by_name[O_BRAIN]
if(!istype(shade_organ))
return
shade_organ.dark_energy = CLAMP(new_energy, 0, get_max_energy(H))
/datum/species/shadekin/proc/set_max_energy(var/mob/living/carbon/human/H, var/new_max_energy)
var/obj/item/organ/internal/brain/shadekin/shade_organ = H.internal_organs_by_name[O_BRAIN]
if(!istype(shade_organ))
return 0
shade_organ.max_dark_energy = new_max_energy
/datum/species/shadekin/proc/check_infinite_energy(var/mob/living/carbon/human/H)
var/obj/item/organ/internal/brain/shadekin/shade_organ = H.internal_organs_by_name[O_BRAIN]
if(!istype(shade_organ))
return 0
return shade_organ.dark_energy_infinite
/datum/species/shadekin/proc/update_shadekin_hud(var/mob/living/carbon/human/H)
var/turf/T = get_turf(H)
if(!T)
return
if(H.shadekin_energy_display)
H.shadekin_energy_display.invisibility = 0
switch(get_energy(H))
if(80 to INFINITY)
H.shadekin_energy_display.icon_state = "energy0"
if(60 to 80)
H.shadekin_energy_display.icon_state = "energy1"
if(40 to 60)
H.shadekin_energy_display.icon_state = "energy2"
if(20 to 40)
H.shadekin_energy_display.icon_state = "energy3"
if(0 to 20)
H.shadekin_energy_display.icon_state = "energy4"
if(H.shadekin_dark_display)
H.shadekin_dark_display.invisibility = 0
var/brightness = T.get_lumcount() //Brightness in 0.0 to 1.0
var/darkness = 1-brightness //Invert
switch(darkness)
if(0.80 to 1.00)
H.shadekin_dark_display.icon_state = "dark2"
if(0.60 to 0.80)
H.shadekin_dark_display.icon_state = "dark1"
if(0.40 to 0.60)
H.shadekin_dark_display.icon_state = "dark"
if(0.20 to 0.40)
H.shadekin_dark_display.icon_state = "dark-1"
if(0.00 to 0.20)
H.shadekin_dark_display.icon_state = "dark-2"
return
*/

View File

@@ -8,7 +8,7 @@
//var/icon_add = 'icons/mob/human_face.dmi' //Already defined in sprite_accessories.dm line 49.
var/color_blend_mode = ICON_MULTIPLY
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN) //This lets all races use the default hairstyles.
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_FLAT, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_YW) //This lets all races use the default hairstyles.
astolfo
name = "Astolfo"
@@ -481,7 +481,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "shadekin_short"
species_allowed = list(SPECIES_SHADEKIN)
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_YW)
gender = NEUTER
shadekin_hair_poofy
@@ -489,7 +489,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "shadekin_poofy"
species_allowed = list(SPECIES_SHADEKIN)
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_YW)
gender = NEUTER
shadekin_hair_long
@@ -497,7 +497,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "shadekin_long"
species_allowed = list(SPECIES_SHADEKIN)
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_YW)
gender = NEUTER
shadekin_hair_rivyr
@@ -506,7 +506,7 @@
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "shadekin_rivyr"
ckeys_allowed = list("verysoft")
species_allowed = list(SPECIES_SHADEKIN)
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_YW)
gender = NEUTER
/datum/sprite_accessory/facial_hair
@@ -1096,7 +1096,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, SPECIES_SHADEKIN) //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, SPECIES_SHADEKIN_YW) //This lets all races use the default hairstyles.
werewolf_nose
name = "Werewolf nose"
@@ -1135,4 +1135,4 @@
icon_state = "shadekin-snoot"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_SHADEKIN)
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_YW)

View File

@@ -167,7 +167,7 @@
clip_mask_icon = null
clip_mask_state = null
apply_restrictions = TRUE
species_allowed = list(SPECIES_SHADEKIN)
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_YW)
/datum/sprite_accessory/tail/taur/shadekin_tail/shadekin_tail_2c
name = "Shadekin Tail dual-color (Shadekin)"

View File

@@ -39,7 +39,7 @@
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
apply_restrictions = TRUE
species_allowed = list(SPECIES_SHADEKIN)
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_YW)
// Ears avaliable to anyone
@@ -692,7 +692,7 @@
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
apply_restrictions = TRUE
species_allowed = list(SPECIES_SHADEKIN)
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_YW)
// Everyone tails

View File

@@ -60,6 +60,7 @@
#include "code\__defines\misc_vr.dm"
#include "code\__defines\mobs.dm"
#include "code\__defines\mobs_vr.dm"
#include "code\__defines\mobs_yw.dm"
#include "code\__defines\nifsoft.dm"
#include "code\__defines\objects.dm"
#include "code\__defines\planets.dm"
@@ -2321,6 +2322,7 @@
#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin.dm"
#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_abilities.dm"
#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_hud.dm"
#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_yw.dm"
#include "code\modules\mob\living\carbon\human\species\station\alraune.dm"
#include "code\modules\mob\living\carbon\human\species\station\blank_vr.dm"
#include "code\modules\mob\living\carbon\human\species\station\golem.dm"