Various things

Restores glass shard throwdamage to 15 because it should never have been
reduced in the first plaaaace.

Slightly buffs bombsuits-- you'll still die if hit by epicenter, but if
you have a suit, reduces damage taken from heavy explosions.  Was 90+15
+ whatever pressure does to you while you're out to 60 + 1 + whatever
pressure does to you while you're out.  Significantly increases odds of
survival, I think.  Can easily be tweaked further.

Fixes ipcs being affected by cloneloss-- check was placed after damage
was applied so it terminated after damage was applied.
Fixes tasers piercing through godmode.  Now properly calls the proc
instead of applying direct damage like everything else.
Makes pain-immune races immune to halloss.  Because pain damage doesn't
really make sense against things that feel no pain.
Nerfs chloral to stun for ~4 seconds + metabolism duration as opposed to
40 seconds + metabolism duration.  that can go and die.
Painkillers now rapidly remove halloss.  If you have tramadol running in
you, it will take rapid consecutive taser hits to bring you down.  If
you have oxy, it'll most likely take multiple people tasing you
simultaneously to down you.  stun batons and lasers still work just as
well though.
This commit is contained in:
Duck-
2014-10-17 14:25:37 -04:00
parent 6764416a9a
commit aef81d9d14
9 changed files with 25 additions and 18 deletions
+2 -2
View File
@@ -35,8 +35,8 @@
//Main function variables.
var/s_initialized = 0//Suit starts off.
var/s_coold = 0//If the suit is on cooldown. Can be used to attach different cooldowns to abilities. Ticks down every second based on suit ntick().
var/s_cost = 5.0//Base energy cost each ntick.
var/s_acost = 25.0//Additional cost for additional powers active.
var/s_cost = 0.0//Base energy cost each ntick.
var/s_acost = 20.0//Additional cost for additional powers active.
var/k_cost = 200.0//Kamikaze energy cost each ntick.
var/k_damage = 1.0//Brute damage potentially done by Kamikaze each ntick.
var/s_delay = 40.0//How fast the suit does certain things, lower is faster. Can be overridden in specific procs. Also determines adverse probability.
@@ -228,8 +228,8 @@
f_loss += 60
if (prob(getarmor(null, "bomb")))
b_loss = b_loss/1.5
f_loss = f_loss/1.5
b_loss = b_loss/3 //was 1.5
f_loss = f_loss/3 //was 1.5
if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
ear_damage += 30
@@ -240,7 +240,7 @@
if(3.0)
b_loss += 30
if (prob(getarmor(null, "bomb")))
b_loss = b_loss/2
b_loss = b_loss/b_loss //was 2.
if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
ear_damage += 15
ear_deaf += 60
@@ -101,11 +101,15 @@
if(HULK in mutations) return
..()
/mob/living/carbon/human/adjustCloneLoss(var/amount)
/mob/living/carbon/human/adjustHalLoss(var/amount)
if(species.flags & NO_PAIN) //pain immune
return
..()
/mob/living/carbon/human/adjustCloneLoss(var/amount)
if(species.flags & IS_SYNTHETIC)
return
..()
var/heal_prob = max(0, 80 - getCloneLoss())
var/mut_prob = min(80, getCloneLoss()+10)
@@ -264,20 +268,20 @@ This function restores all organs.
/mob/living/carbon/human/apply_damage(var/damage = 0, var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/sharp = 0, var/edge = 0, var/obj/used_weapon = null)
//visible_message("Hit debug. [damage] | [damagetype] | [def_zone] | [blocked] | [sharp] | [used_weapon]")
//Handle other types of damage
if((damagetype != BRUTE) && (damagetype != BURN))
if(damagetype == HALLOSS)
if ((damage > 25 && prob(20)) || (damage > 50 && prob(60)))
emote("scream")
..(damage, damagetype, def_zone, blocked)
return 1
//Handle BRUTE and BURN damage
handle_suit_punctures(damagetype, damage)
if(blocked >= 2) return 0
var/datum/organ/external/organ = null
+3 -1
View File
@@ -5,7 +5,7 @@
/mob/living/carbon/proc/updateshock()
src.traumatic_shock = \
1 * src.getOxyLoss() + \
0.7 * src.getToxLoss() + \
0.5 * src.getToxLoss() + \
1.5 * src.getFireLoss() + \
1.2 * src.getBruteLoss() + \
1.7 * src.getCloneLoss() + \
@@ -13,6 +13,8 @@
if(reagents.has_reagent("alkysine"))
src.traumatic_shock -= 10
if(reagents.has_reagent("ethanol"))
src.traumatic_shock -= 20
if(reagents.has_reagent("inaprovaline"))
src.traumatic_shock -= 25
if(reagents.has_reagent("synaptizine"))
+1 -1
View File
@@ -50,7 +50,7 @@
if(PARALYZE)
Paralyse(effect/(blocked+1))
if(AGONY)
halloss += effect // Useful for objects that cause "subdual" damage. PAIN!
adjustHalLoss(effect) // Useful for objects that cause "subdual" damage. PAIN! //ducknote: tasers did not previously care about armor. i assume this was deliberate and am leaving it alone since taserdamage is mitigated by siemens
if(IRRADIATE)
radiation += max((((effect - (effect*(getarmor(null, "rad")/100))))/(blocked+1)),0)//Rads auto check armor
if(STUTTER)
+4 -1
View File
@@ -813,6 +813,7 @@ datum
if (volume > overdose)
M.hallucination = max(M.hallucination, 2)
..()
M.adjustHalLoss(-5)
return
tramadol
@@ -827,6 +828,7 @@ datum
if (volume > overdose)
M.hallucination = max(M.hallucination, 2)
..()
M.adjustHalLoss(-20)
return
oxycodone
@@ -842,6 +844,7 @@ datum
M.druggy = max(M.druggy, 10)
M.hallucination = max(M.hallucination, 3)
..()
M.adjustHalLoss(-70)
return
@@ -1973,7 +1976,7 @@ datum
M.confused += 2
M.drowsyness += 2
if(2 to 199)
M.Weaken(30)
M.Weaken(2)
if(200 to INFINITY)
M.sleeping += 1
..()