TG: Adds Halloss as a damage type weapons can do. Halloss can be healed by

sleeping.  Halloss now effects the interface more fully.
Adds a holodeck to fitness!
Tensioner now respects antagonist preferences (Mmph.  More antagonist for me.)
More flailing attempts to fix the tensioner assigning braindead people.  (How?)
Revision: r3342
Author: 	 VivianFoxfoot
This commit is contained in:
Ren Erthilo
2012-04-29 23:16:02 +01:00
parent 1c661ab5ea
commit c467b4f84e
10 changed files with 735 additions and 61 deletions
@@ -32,6 +32,30 @@
visible_message("\red <B>[src] has been touched with the stun gloves by [M]!</B>")
return
if(istype(M.gloves , /obj/item/clothing/gloves/boxing/hologlove))
var/damage = rand(0, 9)
if(!damage)
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
visible_message("\red <B>[M] has attempted to punch [src]!</B>")
return 0
var/datum/organ/external/affecting = get_organ(ran_zone(M.zone_sel.selecting))
var/armor_block = run_armor_check(affecting, "melee")
if(M.mutations & HULK) damage += 5
playsound(loc, "punch", 25, 1, -1)
visible_message("\red <B>[M] has punched [src]!</B>")
apply_damage(damage, HALLOSS, affecting, armor_block)
if(damage >= 9)
visible_message("\red <B>[M] has weakened [src]!</B>")
apply_effect(4, WEAKEN, armor_block)
UpdateDamageIcon()
return
switch(M.a_intent)
if("help")
if(health > 0)
@@ -143,7 +143,7 @@ emp_act
apply_damage(power, I.damtype, affecting, armor, is_cut(I), I.name)
var/bloody = 0
if((I.damtype == BRUTE) && prob(25 + is_sharp(I) * 50 + (I.force * 2)))
if(((I.damtype == BRUTE) || (I.damtype == HALLOSS)) && prob(25 + is_sharp(I) * 50 + (I.force * 2)))
I.add_blood(src) //Make the weapon bloody, not the person.
bloody = 1
var/turf/location = loc
+17 -3
View File
@@ -186,15 +186,29 @@
// a.hallucinate(src)
if(!handling_hal && hallucination > 20)
spawn handle_hallucinations() //The not boring kind!
hallucination = max(hallucination - 2, 0)
if(hallucination <= 2)
halloss = 0
hallucination = 0
else
hallucination -= 2
//if(health < 0)
// for(var/obj/a in hallucinations)
// del a
else
halloss = 0
//halloss = 0
for(var/atom/a in hallucinations)
del a
if(halloss > 100)
src << "You're too tired to keep going..."
for(var/mob/O in viewers(src, null))
if(O == src)
continue
O.show_message(text("\red <B>[src] slumps to the ground panting, too weak to continue fighting."), 1)
Paralyse(15)
setHalLoss(99)
if(mutations2 & mSmallsize)
if(!(pass_flags & PASSTABLE))
pass_flags |= PASSTABLE
@@ -927,7 +941,7 @@
if(getOxyLoss() > 50) Paralyse(3)
if(sleeping)
// adjustHalLoss(-5)
adjustHalLoss(-5)
if(paralysis <= 0)
Paralyse(2)
if (prob(10) && health && !hal_crit) spawn(0) emote("snore")
+1 -1
View File
@@ -3,7 +3,7 @@
// proc to find out in how much pain the mob is at the moment
/mob/living/carbon/proc/updateshock()
src.traumatic_shock = src.getOxyLoss() + src.getToxLoss() + src.getFireLoss() + 1.2*src.getBruteLoss() + 2*src.getCloneLoss()
src.traumatic_shock = src.getOxyLoss() + src.getToxLoss() + src.getFireLoss() + 1.2*src.getBruteLoss() + 2*src.getCloneLoss() + src.halloss
if(reagents.has_reagent("alkysine"))
src.traumatic_shock -= 10
if(reagents.has_reagent("inaprovaline"))
+4 -1
View File
@@ -22,18 +22,21 @@
adjustOxyLoss(damage/(blocked+1))
if(CLONE)
adjustCloneLoss(damage/(blocked+1))
if(HALLOSS)
adjustHalLoss(damage/(blocked+1))
UpdateDamageIcon()
updatehealth()
return 1
/mob/living/proc/apply_damages(var/brute = 0, var/burn = 0, var/tox = 0, var/oxy = 0, var/clone = 0, var/def_zone = null, var/blocked = 0)
/mob/living/proc/apply_damages(var/brute = 0, var/burn = 0, var/tox = 0, var/oxy = 0, var/clone = 0, var/def_zone = null, var/blocked = 0, var/halloss = 0)
if(blocked >= 2) return 0
if(brute) apply_damage(brute, BRUTE, def_zone, blocked)
if(burn) apply_damage(burn, BURN, def_zone, blocked)
if(tox) apply_damage(tox, TOX, def_zone, blocked)
if(oxy) apply_damage(oxy, OXY, def_zone, blocked)
if(clone) apply_damage(clone, CLONE, def_zone, blocked)
if(halloss) apply_damage(halloss, HALLOSS, def_zone, blocked)
return 1
+63
View File
@@ -1149,3 +1149,66 @@ note dizziness decrements automatically in the mob's Life() proc.
/mob/proc/AdjustParalysis(amount)
paralysis = max(paralysis + amount,0)
return
// ++++ROCKDTBEN++++ MOB PROCS -- Ask me before touching
/mob/proc/getBruteLoss()
return bruteloss
/mob/proc/adjustBruteLoss(var/amount)
bruteloss = max(bruteloss + amount, 0)
/mob/proc/getOxyLoss()
return oxyloss
/mob/proc/adjustOxyLoss(var/amount)
oxyloss = max(oxyloss + amount, 0)
/mob/proc/setOxyLoss(var/amount)
oxyloss = amount
/mob/proc/getToxLoss()
return toxloss
/mob/proc/adjustToxLoss(var/amount)
toxloss = max(toxloss + amount, 0)
/mob/proc/setToxLoss(var/amount)
toxloss = amount
/mob/proc/getFireLoss()
return fireloss
/mob/proc/adjustFireLoss(var/amount)
fireloss = max(fireloss + amount, 0)
/mob/proc/getCloneLoss()
return cloneloss
/mob/proc/adjustCloneLoss(var/amount)
cloneloss = max(cloneloss + amount, 0)
/mob/proc/setCloneLoss(var/amount)
cloneloss = amount
/mob/proc/getHalLoss()
return halloss
/mob/proc/adjustHalLoss(var/amount)
halloss = max(halloss + amount, 0)
/mob/proc/setHalLoss(var/amount)
halloss = amount
/mob/proc/getBrainLoss()
return brainloss
/mob/proc/adjustBrainLoss(var/amount)
brainloss = max(brainloss + amount, 0)
/mob/proc/setBrainLoss(var/amount)
brainloss = amount
// ++++ROCKDTBEN++++ MOB PROCS //END
-55
View File
@@ -288,58 +288,3 @@ the mob is also allowed to move without any sort of restriction. For instance, i
//Singularity wants you!
var/grav_delay = 0
var/being_strangled = 0
// ++++ROCKDTBEN++++ MOB PROCS
/mob/proc/getBruteLoss()
return bruteloss
/mob/proc/adjustBruteLoss(var/amount)
bruteloss = max(bruteloss + amount, 0)
/mob/proc/getOxyLoss()
return oxyloss
/mob/proc/adjustOxyLoss(var/amount)
oxyloss = max(oxyloss + amount, 0)
/mob/proc/setOxyLoss(var/amount)
oxyloss = amount
/mob/proc/getToxLoss()
return toxloss
/mob/proc/adjustToxLoss(var/amount)
toxloss = max(toxloss + amount, 0)
/mob/proc/setToxLoss(var/amount)
toxloss = amount
/mob/proc/getFireLoss()
return fireloss
/mob/proc/adjustFireLoss(var/amount)
fireloss = max(fireloss + amount, 0)
/mob/proc/getCloneLoss()
return cloneloss
/mob/proc/adjustCloneLoss(var/amount)
cloneloss = max(cloneloss + amount, 0)
/mob/proc/setCloneLoss(var/amount)
cloneloss = amount
/mob/proc/getBrainLoss()
return brainloss
/mob/proc/adjustBrainLoss(var/amount)
brainloss = max(brainloss + amount, 0)
/mob/proc/setBrainLoss(var/amount)
brainloss = amount
// ++++ROCKDTBEN++++ MOB PROCS //END