Merge branch 'master' into master

This commit is contained in:
Repede
2019-12-02 20:44:35 -05:00
committed by GitHub
@@ -11,15 +11,13 @@
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
rarity_value = 10 //INTERDIMENSIONAL FLUFFERS
siemens_coefficient = 0
darksight = 10
slowdown = -0.5
item_slowdown_mod = 0.5
brute_mod = 0.7 // Naturally sturdy.
brute_mod = 0.9 // Naturally sturdy.
burn_mod = 1.2 // Furry
warning_low_pressure = 50
@@ -32,11 +30,7 @@
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
flags = NO_SCAN
spawn_flags = SPECIES_CAN_JOIN
reagent_tag = IS_SHADEKIN // for shadekin-unqiue chem interactions
@@ -59,8 +53,6 @@
genders = list(PLURAL, NEUTER) //no sexual dymorphism
ambiguous_genders = TRUE //but just in case
virus_immune = 1
breath_type = null
poison_type = null
@@ -93,20 +85,7 @@
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)
@@ -119,131 +98,5 @@
/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
*/
return TRUE //they dont quite breathe