mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-25 09:31:30 +00:00
@@ -67,25 +67,22 @@
|
||||
if (get_dist(src, O) > src.range)
|
||||
continue
|
||||
|
||||
var/flash_time = strength
|
||||
if (istype(O, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = O
|
||||
if(!H.eyecheck() <= 0)
|
||||
continue
|
||||
|
||||
if (istype(O, /mob/living/carbon/alien))//So aliens don't get flashed (they have no external eyes)/N
|
||||
continue
|
||||
|
||||
O.Weaken(strength)
|
||||
if (istype(O, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = O
|
||||
flash_time *= H.species.flash_mod
|
||||
var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"]
|
||||
if (E && (E.damage > E.min_bruised_damage && prob(E.damage + 50)))
|
||||
if(!E)
|
||||
return
|
||||
if(E.is_bruised() && prob(E.damage + 50))
|
||||
flick("e_flash", O:flash)
|
||||
E.damage += rand(1, 5)
|
||||
else
|
||||
if(!O.blinded)
|
||||
flick("flash", O:flash)
|
||||
|
||||
O.Weaken(flash_time)
|
||||
|
||||
/obj/machinery/flasher/emp_act(severity)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
|
||||
@@ -64,30 +64,18 @@
|
||||
var/flashfail = 0
|
||||
|
||||
if(iscarbon(M))
|
||||
var/safety = M:eyecheck()
|
||||
if(safety <= 0)
|
||||
M.Weaken(10)
|
||||
flick("e_flash", M.flash)
|
||||
|
||||
if(ishuman(M) && ishuman(user) && M.stat!=DEAD)
|
||||
if(user.mind && user.mind in revs.current_antagonists)
|
||||
var/revsafe = 0
|
||||
for(var/obj/item/weapon/implant/loyalty/L in M)
|
||||
if(L && L.implanted)
|
||||
revsafe = 1
|
||||
break
|
||||
M.mind_initialize() //give them a mind datum if they don't have one.
|
||||
if(M.mind.has_been_rev)
|
||||
revsafe = 2
|
||||
if(!revsafe)
|
||||
M.mind.has_been_rev = 1
|
||||
revs.add_antagonist(M.mind)
|
||||
else if(revsafe == 1)
|
||||
user << "<span class='warning'>Something seems to be blocking the flash!</span>"
|
||||
else
|
||||
user << "<span class='warning'>This mind seems resistant to the flash!</span>"
|
||||
else
|
||||
flashfail = 1
|
||||
if(M.stat!=DEAD)
|
||||
var/safety = M:eyecheck()
|
||||
if(safety <= 0)
|
||||
var/flash_strength = 10
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
flash_strength *= H.species.flash_mod
|
||||
if(flash_strength > 0)
|
||||
M.Weaken(flash_strength)
|
||||
flick("e_flash", M.flash)
|
||||
else
|
||||
flashfail = 1
|
||||
|
||||
else if(issilicon(M))
|
||||
M.Weaken(rand(5,10))
|
||||
|
||||
@@ -85,9 +85,7 @@
|
||||
|
||||
|
||||
/mob/living/carbon/human/adjustBruteLoss(var/amount)
|
||||
if(species && species.brute_mod)
|
||||
amount = amount*species.brute_mod
|
||||
|
||||
amount = amount*species.brute_mod
|
||||
if(amount > 0)
|
||||
take_overall_damage(amount, 0)
|
||||
else
|
||||
@@ -95,9 +93,7 @@
|
||||
BITSET(hud_updateflag, HEALTH_HUD)
|
||||
|
||||
/mob/living/carbon/human/adjustFireLoss(var/amount)
|
||||
if(species && species.burn_mod)
|
||||
amount = amount*species.burn_mod
|
||||
|
||||
amount = amount*species.burn_mod
|
||||
if(amount > 0)
|
||||
take_overall_damage(0, amount)
|
||||
else
|
||||
@@ -105,9 +101,7 @@
|
||||
BITSET(hud_updateflag, HEALTH_HUD)
|
||||
|
||||
/mob/living/carbon/human/proc/adjustBruteLossByPart(var/amount, var/organ_name, var/obj/damage_source = null)
|
||||
if(species && species.brute_mod)
|
||||
amount = amount*species.brute_mod
|
||||
|
||||
amount = amount*species.brute_mod
|
||||
if (organ_name in organs_by_name)
|
||||
var/obj/item/organ/external/O = get_organ(organ_name)
|
||||
|
||||
@@ -120,9 +114,7 @@
|
||||
BITSET(hud_updateflag, HEALTH_HUD)
|
||||
|
||||
/mob/living/carbon/human/proc/adjustFireLossByPart(var/amount, var/organ_name, var/obj/damage_source = null)
|
||||
if(species && species.burn_mod)
|
||||
amount = amount*species.burn_mod
|
||||
|
||||
amount = amount*species.burn_mod
|
||||
if (organ_name in organs_by_name)
|
||||
var/obj/item/organ/external/O = get_organ(organ_name)
|
||||
|
||||
@@ -205,7 +197,8 @@
|
||||
if(species.flags & NO_BREATHE)
|
||||
oxyloss = 0
|
||||
else
|
||||
..()
|
||||
amount = amount*species.oxy_mod
|
||||
..(amount)
|
||||
|
||||
/mob/living/carbon/human/setOxyLoss(var/amount)
|
||||
if(species.flags & NO_BREATHE)
|
||||
@@ -222,7 +215,8 @@
|
||||
if(species.flags & NO_POISON)
|
||||
toxloss = 0
|
||||
else
|
||||
..()
|
||||
amount = amount*species.toxins_mod
|
||||
..(amount)
|
||||
|
||||
/mob/living/carbon/human/setToxLoss(var/amount)
|
||||
if(species.flags & NO_POISON)
|
||||
@@ -388,14 +382,12 @@ This function restores all organs.
|
||||
switch(damagetype)
|
||||
if(BRUTE)
|
||||
damageoverlaytemp = 20
|
||||
if(species && species.brute_mod)
|
||||
damage = damage*species.brute_mod
|
||||
damage = damage*species.brute_mod
|
||||
if(organ.take_damage(damage, 0, sharp, edge, used_weapon))
|
||||
UpdateDamageIcon()
|
||||
if(BURN)
|
||||
damageoverlaytemp = 20
|
||||
if(species && species.burn_mod)
|
||||
damage = damage*species.burn_mod
|
||||
damage = damage*species.burn_mod
|
||||
if(organ.take_damage(0, damage, sharp, edge, used_weapon))
|
||||
UpdateDamageIcon()
|
||||
|
||||
|
||||
@@ -280,7 +280,7 @@
|
||||
Weaken(3)
|
||||
if(!lying)
|
||||
emote("collapse")
|
||||
if(prob(5) && prob(100 * RADIATION_SPEED_COEFFICIENT) && species.name == "Human") //apes go bald
|
||||
if(prob(5) && prob(100 * RADIATION_SPEED_COEFFICIENT) && species.get_bodytype() == "Human") //apes go bald
|
||||
if((h_style != "Bald" || f_style != "Shaved" ))
|
||||
src << "<span class='warning'>Your hair falls out.</span>"
|
||||
h_style = "Bald"
|
||||
@@ -298,6 +298,7 @@
|
||||
emote("gasp")
|
||||
|
||||
if(damage)
|
||||
damage *= species.radiation_mod
|
||||
adjustToxLoss(damage * RADIATION_SPEED_COEFFICIENT)
|
||||
updatehealth()
|
||||
if(organs.len)
|
||||
|
||||
@@ -47,8 +47,12 @@
|
||||
/datum/unarmed_attack/bite
|
||||
)
|
||||
var/list/unarmed_attacks = null // For empty hand harm-intent attack
|
||||
var/brute_mod = 1 // Physical damage multiplier.
|
||||
var/burn_mod = 1 // Burn damage multiplier.
|
||||
var/brute_mod = 1 // Physical damage multiplier.
|
||||
var/burn_mod = 1 // Burn damage multiplier.
|
||||
var/oxy_mod = 1 // Oxyloss modifier
|
||||
var/toxins_mod = 1 // Toxloss modifier
|
||||
var/radiation_mod = 1 // Radiation modifier
|
||||
var/flash_mod = 1 // Stun from blindness modifier.
|
||||
var/vision_flags = SEE_SELF // Same flags as glasses.
|
||||
|
||||
// Death vars.
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
/datum/species/human/gravworlder
|
||||
name = "grav-adapted Human"
|
||||
name_plural = "grav-adapted Humans"
|
||||
blurb = "Heavier and stronger than a baseline human, gravity-adapted people have \
|
||||
thick radiation-resistant skin with a high lead content, denser bones, and recessed \
|
||||
eyes beneath a prominent brow in order to shield them from the glare of a dangerously \
|
||||
bright, alien sun. This comes at the cost of mobility, flexibility, and increased \
|
||||
oxygen requirements to support their robust metabolism."
|
||||
icobase = 'icons/mob/human_races/subspecies/r_gravworlder.dmi'
|
||||
|
||||
flash_mod = 0.9
|
||||
oxy_mod = 1.1
|
||||
radiation_mod = 0.5
|
||||
brute_mod = 0.85
|
||||
slowdown = 1
|
||||
|
||||
/datum/species/human/spacer
|
||||
name = "space-adapted Human"
|
||||
name_plural = "space-adapted Humans"
|
||||
blurb = "Lithe and frail, these sickly folk were engineered for work in environments that \
|
||||
lack both light and atmosphere. As such, they're quite resistant to asphyxiation as well as \
|
||||
toxins, but they suffer from weakened bone structure and a marked vulnerability to bright lights."
|
||||
icobase = 'icons/mob/human_races/subspecies/r_spacer.dmi'
|
||||
|
||||
oxy_mod = 0.8
|
||||
toxins_mod = 0.9
|
||||
flash_mod = 1.2
|
||||
brute_mod = 1.1
|
||||
burn_mod = 1.1
|
||||
|
||||
/datum/species/human/vatgrown
|
||||
name = "vat-grown Human"
|
||||
name_plural = "vat-grown Humans"
|
||||
blurb = "With cloning on the forefront of human scientific advancement, cheap mass production \
|
||||
of bodies is a very real and rather ethically grey industry. Vat-grown humans tend to be paler than \
|
||||
baseline, with no appendix and fewer inherited genetic disabilities, but a weakened metabolism."
|
||||
icobase = 'icons/mob/human_races/subspecies/r_vatgrown.dmi'
|
||||
|
||||
toxins_mod = 1.1
|
||||
has_organ = list(
|
||||
"heart" = /obj/item/organ/heart,
|
||||
"lungs" = /obj/item/organ/lungs,
|
||||
"liver" = /obj/item/organ/liver,
|
||||
"kidneys" = /obj/item/organ/kidneys,
|
||||
"brain" = /obj/item/organ/brain,
|
||||
"eyes" = /obj/item/organ/eyes
|
||||
)
|
||||
|
||||
/*
|
||||
// These guys are going to need full resprites of all the suits/etc so I'm going to
|
||||
// define them and commit the sprites, but leave the clothing for another day.
|
||||
/datum/species/human/chimpanzee
|
||||
name = "uplifted Chimpanzee"
|
||||
name_plural = "uplifted Chimpanzees"
|
||||
blurb = "Ook ook."
|
||||
icobase = 'icons/mob/human_races/subspecies/r_upliftedchimp.dmi'
|
||||
*/
|
||||
@@ -14,6 +14,9 @@
|
||||
spawn_flags = CAN_JOIN
|
||||
appearance_flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR
|
||||
|
||||
/datum/species/human/get_bodytype()
|
||||
return "Human"
|
||||
|
||||
/datum/species/unathi
|
||||
name = "Unathi"
|
||||
name_plural = "Unathi"
|
||||
|
||||
Reference in New Issue
Block a user