mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 22:17:32 +01:00
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:
@@ -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
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
..()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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!"
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user