mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-24 21:57:53 +01:00
Merge branch 'master' into master
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user