Added stun, weaken and paralysis-related procs in place of directly editing the vars. Hulk is 5% chance now due to being completely immune to any sort of stunning (will nerf more later). Think that's all but not entirely sure.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2683 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
uporotiy
2011-12-14 16:38:46 +00:00
parent 8c1f50297a
commit 3f5b76aff0
83 changed files with 454 additions and 475 deletions
+2
View File
@@ -92,6 +92,8 @@
vote = new /datum/vote()
// coffinhandler = new /datum/coffinhandler()
radio_controller = new /datum/controller/radio()
//main_hud1 = new /obj/hud()
data_core = new /obj/datacore()
+1 -1
View File
@@ -277,7 +277,7 @@
M.disabilities |= 1
M << "\red Your eyes feel strange."
if (isblockon(getblock(M.dna.struc_enzymes, HULKBLOCK,3),2))
if(inj || prob(15))
if(inj || prob(5))
M << "\blue Your muscles hurt."
M.mutations |= HULK
if (isblockon(getblock(M.dna.struc_enzymes, 3,3),3))
@@ -382,9 +382,9 @@
//usr.bruteloss = 0
usr.setOxyLoss(0)
usr.setCloneLoss(0)
usr.paralysis = 0
usr.stunned = 0
usr.weakened = 0
usr.SetParalysis(0)
usr.SetStunned(0)
usr.SetWeakened(0)
usr.radiation = 0
//usr.health = 100
//usr.updatehealth()
@@ -269,9 +269,9 @@ Movement impairing would indicate drugs and the like.*/
var/mob/living/carbon/human/U = affecting
//Wouldn't need to track adrenaline boosters if there was a miracle injection to get rid of paralysis and the like instantly.
//For now, adrenaline boosters ARE the miracle injection. Well, radium, really.
U.paralysis = 0
U.stunned = 0
U.weakened = 0
U.SetParalysis(0)
U.SetStunned(0)
U.SetWeakened(0)
/*
Due to lag, it was possible to adrenaline boost but remain helpless while life.dm resets player stat.
This lead to me and others spamming adrenaline boosters because they failed to kick in on time.
+3 -3
View File
@@ -76,7 +76,7 @@
del(B)
step_to(A,M,0)
if (get_dist(A,M) == 0)
M.weakened += 5
M.Weaken(5)
M.take_overall_damage(0,10)
del(A)
return
@@ -558,8 +558,8 @@
spawn(500)
U << "Something about your body doesn't seem quite right..."
U.paralysis += 20
H.paralysis += 20
U.Paralyse(20)
H.Paralyse(20)
spawn(600)
H.verbs += /mob/proc/swap
+6 -9
View File
@@ -238,15 +238,12 @@
else
M.oxyloss = 0
M.updatehealth()
M.paralysis -= 4
M.weakened -= 4
M.stunned -= 4
if (M.paralysis < 1)
M.paralysis = 1
if (M.weakened < 1)
M.weakened = 1
if (M.stunned < 1)
M.stunned = 1
M.AdjustParalysis(-4)
M.AdjustWeakened(-4)
M.AdjustStunned(-4)
M.Paralyse(1)
M.Weaken(1)
M.Stun(1)
if (M:reagents.get_reagent_amount("inaprovaline") < 5)
M:reagents.add_reagent("inaprovaline", 5)
return
+4 -6
View File
@@ -242,16 +242,14 @@ Auto Patrol: []"},
var/mob/living/carbon/M = src.target
var/maxstuns = 4
if (istype(M, /mob/living/carbon/human))
if (M.weakened < 10 && (!(M.mutations & HULK)) /*&& (!istype(M:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.weakened = 10
if (M.stuttering < 10 && (!(M.mutations & HULK)) /*&& (!istype(M:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stuttering = 10
if (M.stunned < 10 && (!(M.mutations & HULK)) /*&& (!istype(M:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stunned = 10
M.Stun(10)
M.Weaken(10)
else
M.weakened = 10
M.Weaken(10)
M.stuttering = 10
M.stunned = 10
M.Stun(10)
maxstuns--
if (maxstuns <= 0)
target = null
+2 -2
View File
@@ -768,8 +768,8 @@
else
src.visible_message("\red [src] knocks over [M]!")
M.pulling = null
M.stunned = 8
M.weakened = 5
M.Stun(8)
M.Weaken(5)
M.lying = 1
..()
+5 -7
View File
@@ -223,16 +223,14 @@ Auto Patrol: []"},
var/mob/living/carbon/M = src.target
var/maxstuns = 4
if(istype(M, /mob/living/carbon/human))
if(M.weakened < 10 && (!(M.mutations & HULK)) /*&& (!istype(M:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.weakened = 10
if(M.stuttering < 10 && (!(M.mutations & HULK)) /*&& (!istype(M:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
if(M.stuttering < 10 && (!(M.mutations & HULK)))
M.stuttering = 10
if(M.stunned < 10 && (!(M.mutations & HULK)) /*&& (!istype(M:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stunned = 10
M.Stun(10)
M.Weaken(10)
else
M.weakened = 10
M.Weaken(10)
M.stuttering = 10
M.stunned = 10
M.Stun(10)
maxstuns--
if(maxstuns <= 0)
target = null
+2 -2
View File
@@ -461,7 +461,7 @@
src.occupant.rejuv = 10
src.occupant.adjustCloneLoss(190) //new damage var so you can't eject a clone early then stab them to abuse the current damage system --NeoFite
src.occupant.adjustBrainLoss(90)
src.occupant.paralysis += 4
src.occupant.Paralyse(4)
//Here let's calculate their health so the pod doesn't immediately eject them!!!
src.occupant.health = (src.occupant.getBruteLoss() + src.occupant.getToxLoss() + src.occupant.getOxyLoss() + src.occupant.getCloneLoss())
@@ -545,7 +545,7 @@
return
else if(src.occupant.health < src.heal_level)
src.occupant.paralysis = 4
src.occupant.Paralyse(4)
//Slowly get that clone healed and finished.
src.occupant.adjustCloneLoss(-2)
+1 -1
View File
@@ -166,7 +166,7 @@
occupant.stat = 1
if(occupant.bodytemperature < T0C)
occupant.sleeping = max(5, (1/occupant.bodytemperature)*2000)
occupant.paralysis = max(5, (1/occupant.bodytemperature)*3000)
occupant.Paralyse(max(5, (1/occupant.bodytemperature)*3000))
if(air_contents.oxygen > 2)
if(occupant.getOxyLoss()) occupant.adjustOxyLoss(-1)
else
+2 -2
View File
@@ -607,8 +607,8 @@ About the new airlock wires panel:
M << "\red [user] headbutts the airlock."
var/datum/organ/external/affecting = H.get_organ("head")
affecting.take_damage(10, 0)
H.stunned = 8
H.weakened = 5
H.Stun(8)
H.Weaken(5)
H.UpdateDamageIcon()
else
for(var/mob/M in viewers(src, null))
+1 -1
View File
@@ -77,7 +77,7 @@
if (istype(O, /mob/living/carbon/alien))//So aliens don't get flashed (they have no external eyes)/N
continue
O.weakened = src.strength
O.Weaken(strength)
if ((O.eye_stat > 15 && prob(O.eye_stat + 50)))
flick("e_flash", O:flash)
O.eye_stat += rand(1, 2)
+1 -1
View File
@@ -258,7 +258,7 @@
cremating = 1
locked = 1
for (var/mob/living/M in contents)
M:stunned = 100 //You really dont want to place this inside the loop.
M.Stun(100) //You really dont want to place this inside the loop.
spawn(1)
for(var/i=1 to 10)
sleep(10)
+2 -2
View File
@@ -65,9 +65,9 @@
var/obj/item/weapon/melee/baton/B = O
if (B.charges > 0 && B.status == 1)
flick("baton_active", src)
user.stunned = 10
user.Stun(10)
user.stuttering = 10
user.weakened = 10
user.Weaken(10)
if(isrobot(user))
var/mob/living/silicon/robot/R = user
R.cell.charge -= 20
+7 -11
View File
@@ -275,9 +275,9 @@ var/list/sacrificed = list()
affecting.heal_damage(1000, 1000)
corpse_to_raise.setToxLoss(0)
corpse_to_raise.setOxyLoss(0)
corpse_to_raise.paralysis = 0
corpse_to_raise.stunned = 0
corpse_to_raise.weakened = 0
corpse_to_raise.SetParalysis(0)
corpse_to_raise.SetStunned(0)
corpse_to_raise.SetWeakened(0)
corpse_to_raise.radiation = 0
corpse_to_raise.buckled = null
if (corpse_to_raise.handcuffed)
@@ -914,12 +914,10 @@ var/list/sacrificed = list()
usr.say("Fuu ma'jin!")
for(var/mob/living/carbon/C in viewers(src))
flick("e_flash", C.flash)
if (C.weakened < 1 && (!(C.mutations & HULK))) //Copied this off baton code
C.weakened = 1
if (C.stuttering < 1 && (!(C.mutations & HULK)))
C.stuttering = 1
if (C.stunned < 1 && (!(C.mutations & HULK)))
C.stunned = 1
C.Weaken(1)
C.Stun(1)
C.show_message("\red The rune explodes in a bright flash.", 3)
del(src)
else ///When invoked as talisman, stun and mute the target mob.
@@ -929,10 +927,8 @@ var/list/sacrificed = list()
flick("e_flash", T.flash)
if (!(T.mutations & HULK))
T.silent += 15
if (!(T.mutations & HULK))
T.weakened += 25
if (!(T.mutations & HULK))
T.stunned += 25
T.Weaken(25)
T.Stun(25)
return
/////////////////////////////////////////TWENTY-FIFTH RUNE
+2 -2
View File
@@ -61,7 +61,7 @@
if(temp)
switch(damtype)
if("brute")
H.paralysis += 1
H.Paralyse(1)
temp.take_damage(rand(force/2, force), 0)
if("fire")
temp.take_damage(0, rand(force/2, force))
@@ -79,7 +79,7 @@
else
switch(damtype)
if("brute")
M.paralysis += 1
M.Paralyse(1)
M.take_overall_damage(rand(force/2, force))
if("fire")
M.take_overall_damage(0, rand(force/2, force))
+3 -3
View File
@@ -128,10 +128,10 @@
M.sleeping = 0
M.stuttering += 20
M.ear_deaf += 30
M.weakened = 3
M.Weaken(3)
if(prob(30))
M.stunned = 10
M.paralysis += 4
M.Stun(10)
M.Paralyse(4)
else
M.make_jittery(500)
/* //else the mousetraps are useless
+1 -1
View File
@@ -145,7 +145,7 @@ var/const
GoIdle() //so it doesn't jump the people that tear it off
if(!sterile) target.paralysis = max(target.paralysis,MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings
if(!sterile) target.Paralyse(MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings
spawn(rand(MIN_IMPREGNATION_TIME,MAX_IMPREGNATION_TIME))
Impregnate(target)
+2 -2
View File
@@ -818,8 +818,8 @@
M.pulling = null
M << "\blue You slipped on the PDA!"
playsound(src.loc, 'slip.ogg', 50, 1, -3)
M.stunned = 8
M.weakened = 5
M.Stun(8)
M.Weaken(5)
//AI verb and proc for sending PDA messages.
+3 -4
View File
@@ -41,9 +41,8 @@
if(iscarbon(M))
var/safety = M:eyecheck()
if(safety <= 0)
if(M.weakened <= 10)
M.weakened = 10
flick("e_flash", M.flash)
M.Weaken(10)
flick("e_flash", M.flash)
if(ishuman(M) && ishuman(user))
if(user.mind in ticker.mode.head_revolutionaries)
@@ -65,7 +64,7 @@
flashfail = 1
else if(issilicon(M))
M.weakened = max(user.weakened, rand(5,10))
M.Weaken(rand(5,10))
if(isrobot(user))
spawn(0)
+3 -3
View File
@@ -884,8 +884,8 @@ steam.start() -- spawns the effect
M.pulling = null
M << "\blue You slipped on the foam!"
playsound(src.loc, 'slip.ogg', 50, 1, -3)
M.stunned = 5
M.weakened = 2
M.Stun(5)
M.Weaken(2)
/datum/effect/effect/system/foam_spread
@@ -1094,7 +1094,7 @@ steam.start() -- spawns the effect
for(var/mob/M in viewers(1, location))
if (prob (50 * amount))
M << "\red The explosion knocks you down."
M.weakened += rand (1, 5)
M.Weaken(rand(1,5))
return
else
var/devastation = -1
+2 -2
View File
@@ -399,8 +399,8 @@
M << "\red You drop what you're holding and clutch at your eyes!"
M.drop_item()
M.eye_blurry += 10
M.paralysis += 1
M.weakened += 4
M.Paralyse(1)
M.Weaken(4)
if (prob(M.eye_stat - 10 + 1))
if(M.stat != 2)
M << "\red You go blind!"
+4 -4
View File
@@ -11,12 +11,12 @@
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey])</font>")
user.cell.charge -= 30
if (M.weakened < 5)
M.weakened = 5
M.Weaken(5)
if (M.stuttering < 5)
M.stuttering = 5
if (M.stunned < 5)
M.stunned = 5
M.Stun(5)
for(var/mob/O in viewers(M, null))
if (O.client)
O.show_message("\red <B>[user] has prodded [M] with an electrically-charged arm!</B>", 1, "\red You hear someone fall", 2)
@@ -16,8 +16,8 @@ BIKE HORN
M.pulling = null
M << "\blue You slipped on the [name]!"
playsound(src.loc, 'slip.ogg', 50, 1, -3)
M.stunned = 4
M.weakened = 2
M.Stun(4)
M.Weaken(2)
/obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato/HasEntered(AM as mob|obj)
if (istype(AM, /mob/living/carbon))
@@ -28,8 +28,8 @@ BIKE HORN
M.pulling = null
M << "\blue You slipped on the [name]!"
playsound(src.loc, 'slip.ogg', 50, 1, -3)
M.stunned = 8
M.weakened = 5
M.Stun(8)
M.Weaken(5)
/obj/item/weapon/soap/HasEntered(AM as mob|obj) //EXACTLY the same as bananapeel for now, so it makes sense to put it in the same dm -- Urist
if (istype(AM, /mob/living/carbon))
@@ -40,8 +40,8 @@ BIKE HORN
M.pulling = null
M << "\blue You slipped on the [name]!"
playsound(src.loc, 'slip.ogg', 50, 1, -3)
M.stunned = 3
M.weakened = 2
M.Stun(3)
M.Weaken(2)
/obj/item/weapon/soap/afterattack(atom/target, mob/user as mob)
if(istype(target,/obj/effect/decal/cleanable))
+8 -8
View File
@@ -172,19 +172,19 @@ FLASHBANG
if(eye_safety < 1)
flick("e_flash", M.flash)
M.eye_stat += rand(1, 3)
M.stunned = max(M.stunned,2)
M.weakened = max(M.weakened,10)
M.Stun(2)
M.Weaken(10)
//Now applying sound
if((get_dist(M, T) <= 2 || src.loc == M.loc || src.loc == M))
if(ear_safety > 0)
M.stunned = max(M.stunned,2)
M.weakened = max(M.weakened,1)
M.Stun(2)
M.Weaken(1)
else
M.stunned = max(M.stunned,10)
M.weakened = max(M.weakened,3)
M.Stun(10)
M.Weaken(3)
if ((prob(14) || (M == src.loc && prob(70))))
M.ear_damage += rand(1, 10)
else
@@ -193,12 +193,12 @@ FLASHBANG
else if(get_dist(M, T) <= 5)
if(!ear_safety)
M.stunned = max(M.stunned,8)
M.Stun(8)
M.ear_damage += rand(0, 3)
M.ear_deaf = max(M.ear_deaf,10)
else if(!ear_safety)
M.stunned = max(M.stunned,4)
M.Stun(4)
M.ear_damage += rand(0, 1)
M.ear_deaf = max(M.ear_deaf,5)
@@ -108,7 +108,7 @@ Deathnettle
else
user.take_organ_damage(0,force)
if(prob(50))
user.paralysis += 5
user.Paralyse(5)
user << "\red You are stunned by the Deathnettle when you try picking it up!"
/obj/item/weapon/grown/deathnettle/attack(mob/living/carbon/M as mob, mob/user as mob)
@@ -120,8 +120,8 @@ Deathnettle
M.eye_blurry += force/7
if(prob(20))
M.paralysis += force/6
M.weakened += force/15
M.Paralyse(force/6)
M.Weaken(force/15)
M.drop_item()
/obj/item/weapon/grown/deathnettle/afterattack(atom/A as mob|obj, mob/user as mob)
+8 -10
View File
@@ -50,7 +50,7 @@ KNIFE
if ((user.mutations & CLUMSY) && prob(50))
user << "\red The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.paralysis += 2
user.Paralyse(2)
return
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey])</font>")
@@ -63,11 +63,9 @@ KNIFE
return
var/time = rand(2, 6)
if (prob(75))
if (M.paralysis < time && (!(M.mutations & HULK)) )
M.paralysis = time
M.Paralyse(time)
else
if (M.stunned < time && (!(M.mutations & HULK)) )
M.stunned = time
M.Stun(time)
if(M.stat != 2) M.stat = 1
for(var/mob/O in viewers(M, null))
O.show_message(text("\red <B>[] has been knocked unconscious!</B>", M), 1, "\red You hear someone fall.", 2)
@@ -109,7 +107,7 @@ KNIFE
if((user.mutations & CLUMSY) && prob(50)) //What if he's a clown?
M << "\red You accidentally slam yourself with the [src]!"
M.weakened += 1
M.Weaken(1)
user.take_organ_damage(2)
if(prob(50))
playsound(M, 'trayhit1.ogg', 50, 1)
@@ -132,7 +130,7 @@ KNIFE
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey])</font>")
if(prob(15))
M.weakened += 3
M.Weaken(3)
M.take_organ_damage(3)
else
M.take_organ_damage(5)
@@ -173,7 +171,7 @@ KNIFE
for(var/mob/O in viewers(M, null))
O.show_message(text("\red <B>[] slams [] with the tray!</B>", user, M), 1)
if(prob(10))
M.stunned = rand(1,3)
M.Stun(rand(1,3))
M.take_organ_damage(3)
return
else
@@ -197,13 +195,13 @@ KNIFE
for(var/mob/O in viewers(M, null))
O.show_message(text("\red <B>[] slams [] in the face with the tray!</B>", user, M), 1)
if(prob(30))
M.stunned = rand(2,4)
M.Stun(rand(2,4))
M.take_organ_damage(4)
return
else
M.take_organ_damage(8)
if(prob(30))
M.weakened+=2
M.Weaken(2)
return
return
@@ -105,7 +105,7 @@ STUN BATON
src.status = !( src.status )
if ((usr.mutations & CLUMSY) && prob(50))
usr << "\red You grab the stunbaton on the wrong side."
usr.paralysis += 60
usr.Paralyse(60)
return
if (src.status)
user << "\blue The baton is now on."
@@ -121,7 +121,7 @@ STUN BATON
/obj/item/weapon/melee/baton/attack(mob/M as mob, mob/user as mob)
if ((usr.mutations & CLUMSY) && prob(50))
usr << "\red You grab the stunbaton on the wrong side."
usr.weakened += 30
usr.Weaken(30)
return
src.add_fingerprint(user)
var/mob/living/carbon/human/H = M
@@ -136,8 +136,7 @@ STUN BATON
if (status == 0 || (status == 1 && charges ==0))
if(user.a_intent == "hurt")
if(!..()) return
if (M.weakened < 5 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.weakened = 5
M.Weaken(5)
for(var/mob/O in viewers(M))
if (O.client) O.show_message("\red <B>[M] has been beaten with the stun baton by [user]!</B>", 1)
if(status == 1 && charges == 0)
@@ -159,12 +158,10 @@ STUN BATON
R.cell.charge -= 20
else
charges--
if (M.weakened < 1 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.weakened = 1
if (M.stuttering < 1 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stuttering = 1
if (M.stunned < 1 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stunned = 1
M.Stun(1)
M.Weaken(1)
else
playsound(src.loc, 'Egloves.ogg', 50, 1, -1)
if(isrobot(user))
@@ -172,12 +169,10 @@ STUN BATON
R.cell.charge -= 20
else
charges--
if (M.weakened < 10 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.weakened = 10
if (M.stuttering < 10 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stuttering = 10
if (M.stunned < 10 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stunned = 10
M.Stun(10)
M.Weaken(10)
user.lastattacked = M
M.lastattacker = user
for(var/mob/O in viewers(M))
@@ -193,7 +188,7 @@ STUN BATON
/obj/item/weapon/melee/classic_baton/attack(mob/M as mob, mob/living/user as mob)
if ((user.mutations & CLUMSY) && prob(50))
user << "\red You club yourself over the head."
user.weakened = max(3 * force, user.weakened)
user.Weaken(3 * force)
if(ishuman(user))
var/mob/living/carbon/human/H = user
H.apply_damage(2*force, BRUTE, "head")
@@ -208,19 +203,15 @@ STUN BATON
if (user.a_intent == "hurt")
if(!..()) return
playsound(src.loc, "swing_hit", 50, 1, -1)
if (M.weakened < 8 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.weakened = 8
if (M.stuttering < 8 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stuttering = 8
if (M.stunned < 8 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stunned = 8
M.Stun(8)
M.Weaken(8)
for(var/mob/O in viewers(M))
if (O.client) O.show_message("\red <B>[M] has been beaten with the police baton by [user]!</B>", 1, "\red You hear someone fall", 2)
else
playsound(src.loc, 'Genhit.ogg', 50, 1, -1)
if (M.weakened < 5 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.weakened = 5
if (M.stunned < 5 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stunned = 5
M.Stun(5)
M.Weaken(5)
for(var/mob/O in viewers(M))
if (O.client) O.show_message("\red <B>[M] has been stunned with the police baton by [user]!</B>", 1, "\red You hear someone fall", 2)
+1 -2
View File
@@ -138,8 +138,7 @@
s.set_up(3, 1, M)
s.start()
if (M.weakened < 10)
M.weakened = 10
M.Weaken(10)
if ((src.master && src.wires & 1))
src.master.receive_signal()
+3 -5
View File
@@ -19,7 +19,7 @@
if ((user.mutations & CLUMSY) && prob(50))
user << "\red The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.paralysis += 2
user.Paralyse(2)
return
@@ -36,11 +36,9 @@
return
var/time = rand(2, 6)
if (prob(75))
if (M.paralysis < time)// && (!M.ishulk))
M.paralysis = time
M.Paralyse(time)
else
if (M.stunned < time)// && (!M.ishulk))
M.stunned = time
M.Stun(time)
if(M.stat != 2) M.stat = 1
for(var/mob/O in viewers(M, null))
O.show_message(text("\red <B>[] has been knocked unconscious!</B>", M), 1, "\red You hear someone fall.", 2)
+1 -1
View File
@@ -169,7 +169,7 @@ SHARDS
var/mob/living/carbon/human/H = M
if(!H.shoes)
var/datum/organ/external/affecting = H.get_organ(pick("l_leg", "r_leg"))
H.weakened = max(3, H.weakened)
H.Weaken(3)
affecting.take_damage(5, 0)
H.UpdateDamageIcon()
H.updatehealth()
+1 -2
View File
@@ -197,8 +197,7 @@
M << "\red <B>You feel a deep shock course through your body!</B>"
sleep(1)
M.burn_skin(85)
if(M.stunned < 600)
M.stunned = 600
M.Stun(600)
for(var/mob/M in hearers(src, null))
M.show_message("\red The electric chair went off!.", 3, "\red You hear a deep sharp shock.", 2)
+1 -1
View File
@@ -36,7 +36,7 @@
if ((user.mutations & CLUMSY) && prob(50))
user << "\red The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.paralysis += 20
user.Paralyse(20)
return
// if(..() == BLOCKED)
+3 -5
View File
@@ -14,7 +14,7 @@
if ((user.mutations & CLUMSY) && prob(50))
user << "\red The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.paralysis += 2
user.Paralyse(2)
return
@@ -29,11 +29,9 @@
return
var/time = rand(2, 6)
if (prob(75))
if (M.paralysis < time && (!(M.mutations & HULK)) )
M.paralysis = time
M.Paralyse(time)
else
if (M.stunned < time && (!(M.mutations & HULK)) )
M.stunned = time
M.Stun(time)
if(M.stat != 2) M.stat = 1
for(var/mob/O in viewers(M, null))
O.show_message(text("\red <B>[] has been knocked unconscious!</B>", M), 1, "\red You hear someone fall.", 2)
+3 -3
View File
@@ -123,7 +123,7 @@ TABLE AND RACK OBJECT INTERATIONS
user << "\red You need a better grip to do that!"
return
G.affecting.loc = src.loc
G.affecting.weakened = 5
G.affecting.Weaken(5)
for(var/mob/O in viewers(world.view, src))
if (O.client)
O << text("\red [] puts [] on the table.", G.assailant, G.affecting)
@@ -169,7 +169,7 @@ TABLE AND RACK OBJECT INTERATIONS
user << "\red You need a better grip to do that!"
return
G.affecting.loc = src.loc
G.affecting.weakened = 5
G.affecting.Weaken(5)
for(var/mob/O in viewers(world.view, src))
if (O.client)
O << text("\red [] puts [] on the wooden table.", G.assailant, G.affecting)
@@ -211,7 +211,7 @@ TABLE AND RACK OBJECT INTERATIONS
user << "\red You need a better grip to do that!"
return
G.affecting.loc = src.loc
G.affecting.weakened = 5
G.affecting.Weaken(5)
for(var/mob/O in viewers(world.view, src))
if (O.client)
O << text("\red [] puts [] on the reinforced table.", G.assailant, G.affecting)
+5 -3
View File
@@ -15,7 +15,9 @@
del(src)
/obj/effect/mine/proc/triggerstun(obj)
obj:stunned += 30
if(ismob(obj))
var/mob/M = obj
M.Stun(30)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
@@ -130,11 +132,11 @@
if("feet")
if(!H.shoes)
affecting = H.get_organ(pick("l_leg", "r_leg"))
H.weakened = max(3, H.weakened)
H.Weaken(3)
if("l_hand", "r_hand")
if(!H.gloves)
affecting = H.get_organ(type)
H.stunned = max(3, H.stunned)
H.Stun(3)
if(affecting)
affecting.take_damage(1, 0)
H.UpdateDamageIcon()
+16 -54
View File
@@ -187,8 +187,8 @@
step(M, M.dir)
M << "\blue You slipped on the wet floor!"
playsound(src.loc, 'slip.ogg', 50, 1, -3)
M.stunned = 8
M.weakened = 5
M.Stun(8)
M.Weaken(5)
else
M.inertia_dir = 0
return
@@ -198,8 +198,8 @@
step(M, M.dir)
M << "\blue You slipped on the wet floor!"
playsound(src.loc, 'slip.ogg', 50, 1, -3)
M.stunned = 8
M.weakened = 5
M.Stun(8)
M.Weaken(5)
else
M.inertia_dir = 0
return
@@ -215,7 +215,7 @@
M.take_organ_damage(2) // Was 5 -- TLE
M << "\blue You slipped on the floor!"
playsound(src.loc, 'slip.ogg', 50, 1, -3)
M.weakened = 10
M.Weaken(10)
..()
@@ -1197,7 +1197,7 @@ turf/simulated/floor/return_siding_icon_state()
else if(ticker.mode.name == "extended"||ticker.mode.name == "sandbox") Sandbox_Spacemove(A)
else
if (src.x <= 2)
if (src.x <= 2 || A.x >= (world.maxx - 1) || src.y <= 2 || A.y >= (world.maxy - 1))
if(istype(A, /obj/effect/meteor)||istype(A, /obj/effect/space_dust))
del(A)
return
@@ -1210,63 +1210,25 @@ turf/simulated/floor/return_siding_icon_state()
return
A.z = move_to_z
A.x = world.maxx - 2
spawn (0)
if ((A && A.loc))
A.loc.Entered(A)
else if (A.x >= (world.maxx - 1))
if(istype(A, /obj/effect/meteor)||istype(A, /obj/effect/space_dust))
del(A)
return
var/move_to_z_str = pickweight(accessable_z_levels)
if(src.x <= 2)
A.x = world.maxx - 2
var/move_to_z = text2num(move_to_z_str)
else if (A.x >= (world.maxx - 1))
A.x = 3
if(!move_to_z)
return
else if (src.y <= 2)
A.y = world.maxy - 2
A.z = move_to_z
A.x = 3
spawn (0)
if ((A && A.loc))
A.loc.Entered(A)
else if (src.y <= 2)
if(istype(A, /obj/effect/meteor)||istype(A, /obj/effect/space_dust))
del(A)
return
else if (A.y >= (world.maxy - 1))
A.y = 3
var/move_to_z_str = pickweight(accessable_z_levels)
var/move_to_z = text2num(move_to_z_str)
if(!move_to_z)
return
A.z = move_to_z
A.y = world.maxy - 2
spawn (0)
if ((A && A.loc))
A.loc.Entered(A)
else if (A.y >= (world.maxy - 1))
if(istype(A, /obj/effect/meteor)||istype(A, /obj/effect/space_dust))
del(A)
return
var/move_to_z_str = pickweight(accessable_z_levels)
var/move_to_z = text2num(move_to_z_str)
if(!move_to_z)
return
A.z = move_to_z
A.y = 3
spawn (0)
if ((A && A.loc))
A.loc.Entered(A)
// if(istype(A, /obj/structure/closet/coffin))
// coffinhandler.Add(A)
/turf/space/proc/Sandbox_Spacemove(atom/movable/A as mob|obj)
var/cur_x
+6 -5
View File
@@ -58,20 +58,21 @@
///////////////////////////////////////////////////////***
/////////////////////////////////////////////////////green
/obj/item/weapon/vial/green/drink(user)
/obj/item/weapon/vial/green/drink(mob/living/user as mob)
var/A = src
src = null
del(A)
switch(pick(1,2,3))
if(1)
spawn(300)
user:gib()
user.gib()
if(2)
user:weakened += 5
user:contract_disease(new /datum/disease/gbs,1)
user.Weaken(5)
user.contract_disease(new /datum/disease/gbs,1)
if(3)
spawn(200)
user:contract_disease(new /datum/disease/gbs,1)
user.contract_disease(new /datum/disease/gbs,1)
/obj/item/weapon/vial/green/shatter()
var/A = src
var/atom/sourceloc = get_turf(src.loc)