diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm index 2bc6032bca6..acaf4160e8b 100644 --- a/code/datums/diseases/appendicitis.dm +++ b/code/datums/diseases/appendicitis.dm @@ -21,19 +21,19 @@ if(2) if(prob(3)) affected_mob << "\red You feel a stabbing pain in your abdomen!" - affected_mob.stunned = rand(2,3) + affected_mob.Stun(rand(2,3)) affected_mob.adjustToxLoss(1) if(3) if(prob(1)) if (affected_mob.nutrition > 100) - affected_mob.stunned = rand(4,6) + affected_mob.Stun(rand(4,6)) affected_mob << "\red You throw up!" var/turf/location = affected_mob.loc if (istype(location, /turf/simulated)) location.add_vomit_floor(affected_mob) affected_mob.nutrition -= 95 - affected_mob:adjustToxLoss(-1) + affected_mob.adjustToxLoss(-1) else affected_mob << "\red You gag as you want to throw up, but there's nothing in your stomach!" - affected_mob.weakened += 10 + affected_mob.Weaken(10) affected_mob.adjustToxLoss(3) \ No newline at end of file diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm index a96dd660d1a..d068e42f771 100644 --- a/code/datums/diseases/brainrot.dm +++ b/code/datums/diseases/brainrot.dm @@ -59,7 +59,7 @@ affected_mob << "\red You lose consciousness..." for(var/mob/O in viewers(affected_mob, null)) O.show_message("[affected_mob] suddenly collapses", 1) - affected_mob.paralysis = rand(5,10) + affected_mob.Paralyse(rand(5,10)) if(prob(1)) affected_mob.emote("snore") if(prob(15)) diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm index bd2b96b69d8..4d3cc7e7759 100644 --- a/code/datums/diseases/retrovirus.dm +++ b/code/datums/diseases/retrovirus.dm @@ -60,7 +60,7 @@ affected_mob << "You feel very strange." if (prob(4)) affected_mob << "\red You feel a stabbing pain in your head!" - affected_mob.paralysis += 2 + affected_mob.Paralyse(2) if (prob(4)) affected_mob << "\red Your stomach churns." if(3) diff --git a/code/datums/diseases/robotic_transformation.dm b/code/datums/diseases/robotic_transformation.dm index f4363435e90..d68952d9a0b 100644 --- a/code/datums/diseases/robotic_transformation.dm +++ b/code/datums/diseases/robotic_transformation.dm @@ -36,7 +36,7 @@ affected_mob.take_organ_damage(5) if (prob(4)) affected_mob << "\red You feel a stabbing pain in your head." - affected_mob.paralysis += 2 + affected_mob.Paralyse(2) if (prob(4)) affected_mob << "\red You can feel something move...inside." if(4) diff --git a/code/datums/diseases/xeno_transformation.dm b/code/datums/diseases/xeno_transformation.dm index 90d6d656ea8..f3a822fb952 100644 --- a/code/datums/diseases/xeno_transformation.dm +++ b/code/datums/diseases/xeno_transformation.dm @@ -36,7 +36,7 @@ affected_mob.take_organ_damage(5) if (prob(4)) affected_mob << "\red You feel a stabbing pain in your head." - affected_mob.paralysis += 2 + affected_mob.Paralyse(2) if (prob(4)) affected_mob << "\red You can feel something move...inside." if(4) diff --git a/code/datums/spells/inflict_handler.dm b/code/datums/spells/inflict_handler.dm index 03c6685c25a..58783eb9c2b 100644 --- a/code/datums/spells/inflict_handler.dm +++ b/code/datums/spells/inflict_handler.dm @@ -2,8 +2,9 @@ name = "Inflict Handler" desc = "This spell blinds and/or destroys/damages/heals and/or weakens/stuns the target." - var/amt_weaken = 0 - var/amt_paralysis = 0 //stun + var/amt_weakened = 0 + var/amt_paralysis = 0 + var/amt_stunned = 0 //set to negatives for healing var/amt_dam_fire = 0 @@ -43,8 +44,9 @@ target.adjustToxLoss(amt_dam_tox) target.oxyloss += amt_dam_oxy //disabling - target.weakened += amt_weaken - target.paralysis += amt_paralysis + target.Weaken(amt_weakened) + target.Paralyse(amt_paralysis) + target.Stun(amt_stunned) target.eye_blind += amt_eye_blind target.eye_blurry += amt_eye_blurry \ No newline at end of file diff --git a/code/datums/spells/mind_transfer.dm b/code/datums/spells/mind_transfer.dm index 6d45a813ea4..1ce3a8d389b 100644 --- a/code/datums/spells/mind_transfer.dm +++ b/code/datums/spells/mind_transfer.dm @@ -115,8 +115,8 @@ Also, you never added distance checking after target is selected. I've went ahea victim.mind.current = victim //Here we paralyze both mobs and knock them out for a time. - caster.paralysis += paralysis_amount_caster - victim.paralysis += paralysis_amount_victim + caster.Paralyse(paralysis_amount_caster) + victim.Paralyse(paralysis_amount_victim) //After a certain amount of time the victim gets a message about being in a different body. spawn(msg_wait) diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm index a60a2b30d85..66821e3d33b 100644 --- a/code/datums/spells/wizard.dm +++ b/code/datums/spells/wizard.dm @@ -24,7 +24,7 @@ proj_trail_icon_state = "magicmd" /obj/effect/proc_holder/spell/targeted/inflict_handler/magic_missile - amt_weaken = 5 + amt_weakened = 5 amt_dam_fire = 10 /obj/effect/proc_holder/spell/targeted/genetic/mutate diff --git a/code/defines/obj/toy.dm b/code/defines/obj/toy.dm index ee4e47ab1c8..f1ab8b50b64 100644 --- a/code/defines/obj/toy.dm +++ b/code/defines/obj/toy.dm @@ -213,7 +213,7 @@ return else if (bullets == 0) - user.weakened += 5 + user.Weaken(5) for(var/mob/O in viewers(world.view, user)) O.show_message(text("\red [] realized they were out of ammo and starting scrounging for some!", user), 1) @@ -236,7 +236,7 @@ else if (M.lying && src.bullets == 0) for(var/mob/O in viewers(M, null)) if (O.client) O.show_message(text("\red [] casually lines up a shot with []'s head, pulls the trigger, then realizes they are out of ammo and drops to the floor in search of some!", user, M), 1, "\red You hear someone fall", 2) - user.weakened += 5 + user.Weaken(5) return /obj/item/toy/crayonbox diff --git a/code/game/cellautomata.dm b/code/game/cellautomata.dm index 825a260d44a..65432b46fac 100644 --- a/code/game/cellautomata.dm +++ b/code/game/cellautomata.dm @@ -97,6 +97,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() diff --git a/code/game/dna.dm b/code/game/dna.dm index 082a45069d7..b84b3b67063 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -279,7 +279,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)) diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index a52099481e0..8672b1f3d8f 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -383,9 +383,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() diff --git a/code/game/gamemodes/events/ninja_abilities.dm b/code/game/gamemodes/events/ninja_abilities.dm index c7b1521d058..ec08ae9d6fb 100644 --- a/code/game/gamemodes/events/ninja_abilities.dm +++ b/code/game/gamemodes/events/ninja_abilities.dm @@ -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. diff --git a/code/game/gamemodes/wizard/spells.dm b/code/game/gamemodes/wizard/spells.dm index a10739c4103..d80191f516f 100644 --- a/code/game/gamemodes/wizard/spells.dm +++ b/code/game/gamemodes/wizard/spells.dm @@ -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 @@ -560,8 +560,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 diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index b168dc21bc5..85a350d8571 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -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 diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 2d923b416d2..4143f4e5de0 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -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 diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index d7f335d4157..eec60faf6f0 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -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 ..() diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 5819d1c5313..03208420a67 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -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 diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 100b1434bb3..b0f2357fdfa 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -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) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 384e8daf81f..791b3db0617 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -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 diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 32b59335e9f..38055e34444 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -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)) diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index ce140838923..8e240470efc 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -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) diff --git a/code/game/machinery/morgue.dm b/code/game/machinery/morgue.dm index 336514d391c..0d8ff6209b5 100644 --- a/code/game/machinery/morgue.dm +++ b/code/game/machinery/morgue.dm @@ -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) diff --git a/code/game/machinery/sink.dm b/code/game/machinery/sink.dm index a10f73a3b3e..d488b9235d7 100644 --- a/code/game/machinery/sink.dm +++ b/code/game/machinery/sink.dm @@ -70,9 +70,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 diff --git a/code/game/magic/cultist/runes.dm b/code/game/magic/cultist/runes.dm index 217a493e1fe..2298af13fd9 100644 --- a/code/game/magic/cultist/runes.dm +++ b/code/game/magic/cultist/runes.dm @@ -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 diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm index 53d0362cfd9..b022f7663fe 100644 --- a/code/game/mecha/combat/combat.dm +++ b/code/game/mecha/combat/combat.dm @@ -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)) diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 869a99142e8..8b8907ed55c 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -129,10 +129,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 diff --git a/code/game/objects/alien/facehugger.dm b/code/game/objects/alien/facehugger.dm index dfb45df9575..ec6cbdfece8 100644 --- a/code/game/objects/alien/facehugger.dm +++ b/code/game/objects/alien/facehugger.dm @@ -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) diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm index d7b2b481b32..39b737f15f7 100644 --- a/code/game/objects/devices/PDA/PDA.dm +++ b/code/game/objects/devices/PDA/PDA.dm @@ -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. diff --git a/code/game/objects/devices/flash.dm b/code/game/objects/devices/flash.dm index d0f47f0fd60..20ec9617a85 100644 --- a/code/game/objects/devices/flash.dm +++ b/code/game/objects/devices/flash.dm @@ -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) diff --git a/code/game/objects/effect_system.dm b/code/game/objects/effect_system.dm index 677e26b9612..00a3b2353d6 100644 --- a/code/game/objects/effect_system.dm +++ b/code/game/objects/effect_system.dm @@ -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 diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm index 518bc4cea26..4a8d3c3b532 100644 --- a/code/game/objects/items/item.dm +++ b/code/game/objects/items/item.dm @@ -403,8 +403,8 @@ mob/proc/flash_weak_pain() 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!" diff --git a/code/game/objects/items/robot_items.dm b/code/game/objects/items/robot_items.dm index 517d08c3848..667ac47e479 100644 --- a/code/game/objects/items/robot_items.dm +++ b/code/game/objects/items/robot_items.dm @@ -11,12 +11,12 @@ M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") 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 [user] has prodded [M] with an electrically-charged arm!", 1, "\red You hear someone fall", 2) diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index f8dd6391141..4c892471140 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -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)) diff --git a/code/game/objects/items/weapons/grenades.dm b/code/game/objects/items/weapons/grenades.dm index 38402a2366f..8edac23a62f 100644 --- a/code/game/objects/items/weapons/grenades.dm +++ b/code/game/objects/items/weapons/grenades.dm @@ -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) diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm index 422d5d64a97..3f9e47750bb 100644 --- a/code/game/objects/items/weapons/hydroponics.dm +++ b/code/game/objects/items/weapons/hydroponics.dm @@ -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) diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index 70aaa51329a..6866fae1a6e 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -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()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") @@ -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 [] has been knocked unconscious!", 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()]\] Used the [src.name] to attack [M.name] ([M.ckey])") 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 [] slams [] with the tray!", 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 [] slams [] in the face with the tray!", 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 diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 6a29f44c745..5f7185d72b6 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -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 [M] has been beaten with the stun baton by [user]!", 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 [M] has been beaten with the police baton by [user]!", 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 [M] has been stunned with the police baton by [user]!", 1, "\red You hear someone fall", 2) diff --git a/code/game/objects/radio/electropack.dm b/code/game/objects/radio/electropack.dm index 3920b0ab354..4f5b5d07632 100644 --- a/code/game/objects/radio/electropack.dm +++ b/code/game/objects/radio/electropack.dm @@ -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() diff --git a/code/game/objects/secstorage/sbriefcase.dm b/code/game/objects/secstorage/sbriefcase.dm index 3362984a608..472d9b33fa7 100644 --- a/code/game/objects/secstorage/sbriefcase.dm +++ b/code/game/objects/secstorage/sbriefcase.dm @@ -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 [] has been knocked unconscious!", M), 1, "\red You hear someone fall.", 2) diff --git a/code/game/objects/stacks/glass.dm b/code/game/objects/stacks/glass.dm index 04dd4284ced..e81bb4217ce 100644 --- a/code/game/objects/stacks/glass.dm +++ b/code/game/objects/stacks/glass.dm @@ -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() diff --git a/code/game/objects/stool.dm b/code/game/objects/stool.dm index 5f1214fc8db..a47ba982293 100644 --- a/code/game/objects/stool.dm +++ b/code/game/objects/stool.dm @@ -197,8 +197,7 @@ M << "\red You feel a deep shock course through your body!" 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) diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/storage/bible.dm index 4d2a37e6aba..f8d409bc87d 100644 --- a/code/game/objects/storage/bible.dm +++ b/code/game/objects/storage/bible.dm @@ -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) diff --git a/code/game/objects/storage/briefcase.dm b/code/game/objects/storage/briefcase.dm index d29aa0c830b..a2dd6970cd6 100644 --- a/code/game/objects/storage/briefcase.dm +++ b/code/game/objects/storage/briefcase.dm @@ -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 [] has been knocked unconscious!", M), 1, "\red You hear someone fall.", 2) diff --git a/code/game/objects/tables_racks.dm b/code/game/objects/tables_racks.dm index 8878770a712..2df373a1b1a 100644 --- a/code/game/objects/tables_racks.dm +++ b/code/game/objects/tables_racks.dm @@ -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) diff --git a/code/game/objects/weapons.dm b/code/game/objects/weapons.dm index 57499d809dc..a118b09f2e3 100644 --- a/code/game/objects/weapons.dm +++ b/code/game/objects/weapons.dm @@ -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() diff --git a/code/game/turf.dm b/code/game/turf.dm index c05fd4ae961..10902f962ba 100644 --- a/code/game/turf.dm +++ b/code/game/turf.dm @@ -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 diff --git a/code/game/vials.dm b/code/game/vials.dm index f7f4483f243..0e27b6b6ee6 100644 --- a/code/game/vials.dm +++ b/code/game/vials.dm @@ -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) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index b2efa177b5a..5e114f35d71 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -556,7 +556,7 @@ W.dropped(M) W.layer = initial(W.layer) //teleport person to cell - M.paralysis += 5 + M.Paralyse(5) sleep(5) //so they black out before warping M.loc = pick(prisonwarp) if(istype(M, /mob/living/carbon/human)) @@ -623,7 +623,7 @@ W.loc = M.loc W.dropped(M) W.layer = initial(W.layer) - M.paralysis += 5 + M.Paralyse(5) sleep(5) M.loc = pick(tdome1) spawn(50) @@ -649,7 +649,7 @@ W.loc = M.loc W.dropped(M) W.layer = initial(W.layer) - M.paralysis += 5 + M.Paralyse(5) sleep(5) M.loc = pick(tdome2) spawn(50) @@ -664,7 +664,7 @@ if(istype(M, /mob/living/silicon/ai)) alert("The AI can't be sent to the thunderdome you jerk!", null, null, null, null, null) return - M.paralysis += 5 + M.Paralyse(5) sleep(5) M.loc = pick(tdomeadmin) spawn(50) @@ -694,7 +694,7 @@ var/mob/living/carbon/human/observer = M observer.equip_if_possible(new /obj/item/clothing/under/suit_jacket(observer), observer.slot_w_uniform) observer.equip_if_possible(new /obj/item/clothing/shoes/black(observer), observer.slot_shoes) - M.paralysis += 5 + M.Paralyse(5) sleep(5) M.loc = pick(tdomeobserve) spawn(50) @@ -1209,7 +1209,7 @@ if(loc.z > 1 || prisonwarped.Find(H)) //don't warp them if they aren't ready or are already there continue - H.paralysis += 5 + H.Paralyse(5) if(H.wear_id) var/obj/item/weapon/card/id/id = H.get_idcard() for(var/A in id.access) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 2310fe32ea5..a4e021d50ce 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -24,7 +24,7 @@ for(var/obj/item/W in M) M.drop_from_slot(W) //teleport person to cell - M.paralysis += 5 + M.Paralyse(5) sleep(5) //so they black out before warping M.loc = pick(prisonwarp) if(istype(M, /mob/living/carbon/human)) @@ -484,9 +484,9 @@ Traitors and the like can also be revived with the previous role mostly intact. M.setToxLoss(0) //M.bruteloss = 0 M.setOxyLoss(0) - M.paralysis = 0 - M.stunned = 0 - M.weakened = 0 + M.SetParalysis(0) + M.SetStunned(0) + M.SetWeakened(0) M.radiation = 0 //M.health = 100 M.nutrition = 400 diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm index 203ce25a57f..f9ba28f7955 100644 --- a/code/modules/chemical/Chemistry-Reagents.dm +++ b/code/modules/chemical/Chemistry-Reagents.dm @@ -372,8 +372,8 @@ datum if(15 to 25) M:drowsyness = max(M:drowsyness, 20) if(25 to INFINITY) - M:paralysis = max(M:paralysis, 20) - M:drowsyness = max(M:drowsyness, 30) + M.Paralyse(20) + M.drowsyness = max(M:drowsyness, 30) data++ ..() return @@ -398,17 +398,17 @@ datum if(15 to 25) M:drowsyness = max(M:drowsyness, 20) if(25 to INFINITY) - M:sleeping = 1 - M:oxyloss = 0 - M:weakened = 0 - M:stunned = 0 - M:paralysis = 0 + M.sleeping = 1 + M.oxyloss = 0 + M.SetWeakened(0) + M.SetStunned(0) + M.SetParalysis(0) M.dizziness = 0 - M:drowsyness = 0 - M:stuttering = 0 - M:slurring = 0 - M:confused = 0 - M:jitteriness = 0 + M.drowsyness = 0 + M.stuttering = 0 + M.slurring = 0 + M.confused = 0 + M.jitteriness = 0 ..() return @@ -1218,11 +1218,11 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom ///This can even heal dead people. - M:cloneloss = 0 - M:oxyloss = 0 - M:radiation = 0 - M:heal_organ_damage(5,5) - M:adjustToxLoss(-5) + M.cloneloss = 0 + M.setOxyLoss(0) + M.radiation = 0 + M.heal_organ_damage(5,5) + M.adjustToxLoss(-5) if(holder.has_reagent("toxin")) holder.remove_reagent("toxin", 5) if(holder.has_reagent("stoxin")) @@ -1245,25 +1245,25 @@ datum holder.remove_reagent("carpotoxin", 5) if(holder.has_reagent("zombiepowder")) holder.remove_reagent("zombiepowder", 5) - M:brainloss = 0 + M.brainloss = 0 M.disabilities = 0 M.sdisabilities = 0 - M:eye_blurry = 0 - M:eye_blind = 0 - M:disabilities &= ~1 - M:sdisabilities &= ~1 - M:weakened = 0 - M:stunned = 0 - M:paralysis = 0 - M:silent = 0 + M.eye_blurry = 0 + M.eye_blind = 0 + M.disabilities &= ~1 + M.sdisabilities &= ~1 + M.SetWeakened(0) + M.SetStunned(0) + M.SetParalysis(0) + M.silent = 0 M.dizziness = 0 - M:drowsyness = 0 - M:stuttering = 0 - M:slurring = 0 - M:confused = 0 - if(!M:sleeping_willingly) - M:sleeping = 0 - M:jitteriness = 0 + M.drowsyness = 0 + M.stuttering = 0 + M.slurring = 0 + M.confused = 0 + if(!M.sleeping_willingly) + M.sleeping = 0 + M.jitteriness = 0 for(var/datum/disease/D in M.viruses) D.spread = "Remissive" D.stage-- @@ -1282,10 +1282,10 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M:drowsyness = max(M:drowsyness-5, 0) - if(M:paralysis) M:paralysis-- - if(M:stunned) M:stunned-- - if(M:weakened) M:weakened-- - if(prob(60)) M:adjustToxLoss(1) + M.AdjustParalysis(-1) + M.AdjustStunned(-1) + M.AdjustWeakened(-1) + if(prob(60)) M.adjustToxLoss(1) ..() return @@ -1462,10 +1462,10 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M:adjustOxyLoss(0.5) - M:adjustToxLoss(0.5) - M:weakened = max(M:weakened, 10) - M:silent = max(M:silent, 10) + M.adjustOxyLoss(0.5) + M.adjustToxLoss(0.5) + M.Weaken(10) + M.silent = max(M:silent, 10) ..() return @@ -1710,9 +1710,9 @@ datum return M:emote("scream") M << "\red You're sprayed directly in the eyes with pepperspray!" - M.eye_blurry = max(M.eye_blurry, 60) - M.eye_blind = max(M.eye_blind, 12) - M:weakened = max(M:weakened, 20) + M.eye_blurry = max(M.eye_blurry, 5) + M.eye_blind = max(M.eye_blind, 2) + M.Paralyse(1) M.drop_item() frostoil @@ -3056,7 +3056,7 @@ datum color = "#664300" // rgb: 102, 67, 0 on_mob_life(var/mob/living/M as mob) - M.stunned = 2 + M.Stun(2) if(!data) data = 1 data++ M.dizziness +=3 diff --git a/code/modules/chemical/Chemistry-Recipes.dm b/code/modules/chemical/Chemistry-Recipes.dm index 831f349c4f2..1276208a413 100644 --- a/code/modules/chemical/Chemistry-Recipes.dm +++ b/code/modules/chemical/Chemistry-Recipes.dm @@ -310,7 +310,7 @@ datum continue flick("e_flash", M.flash) - M.weakened = 15 + M.Weaken(15) if(4 to 5) if(hasvar(M, "glasses")) @@ -318,7 +318,7 @@ datum continue flick("e_flash", M.flash) - M.stunned = 5 + M.Stun(5) napalm name = "Napalm" diff --git a/code/modules/critters/critters.dm b/code/modules/critters/critters.dm index d79500fe3fb..9d86cb5bbe3 100644 --- a/code/modules/critters/critters.dm +++ b/code/modules/critters/critters.dm @@ -176,7 +176,7 @@ AfterAttack(var/mob/living/target) if(prob(stunchance)) if(target.weakened <= 0) - target.weakened += rand(10, 15) + target.Weaken(rand(10, 15)) for(var/mob/O in viewers(src, null)) O.show_message("\red [src] knocks down [target]!", 1) playsound(loc, 'pierce.ogg', 25, 1, -1) diff --git a/code/modules/mob/living/blob/blob.dm b/code/modules/mob/living/blob/blob.dm index fa0b312c246..38d848bb9c3 100644 --- a/code/modules/mob/living/blob/blob.dm +++ b/code/modules/mob/living/blob/blob.dm @@ -36,12 +36,12 @@ proc/clamp_values() - stunned = 0 - paralysis = 0 - weakened = 0 + AdjustStunned(0) + AdjustParalysis(0) + AdjustWeakened(0) sleeping = 0 if(stat) - stat = 0 + stat = CONSCIOUS return diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 1fad304014d..0098c849c01 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -15,4 +15,7 @@ if(facehugger.stat == CONSCIOUS) var/image/activeIndicator = image('alien.dmi', loc = facehugger, icon_state = "facehugger_active") activeIndicator.override = 1 - client.images += activeIndicator \ No newline at end of file + client.images += activeIndicator + +/mob/living/carbon/alien/IsAdvancedToolUser() + return has_fine_manipulation \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 63d1ddcd7d0..d9d9e130dc3 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -80,16 +80,16 @@ health = 150 - (getOxyLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - if(getOxyLoss() > 50) paralysis = max(paralysis, 3) + if(getOxyLoss() > 50) Paralyse(3) if(src.sleeping) - src.paralysis = max(src.paralysis, 3) + Paralyse(3) if (prob(10) && health) spawn(0) emote("snore") if(!src.sleeping_willingly) src.sleeping-- if(src.resting) - src.weakened = max(src.weakened, 5) + Weaken(5) if(health < config.health_threshold_dead || src.brain_op_stage == 4.0) death() @@ -100,20 +100,20 @@ if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss++ if(src.stat != 2) src.stat = 1 - src.paralysis = max(src.paralysis, 5) + Paralyse(5) if (src.stat != 2) //Alive. if (src.paralysis || src.stunned || src.weakened) //Stunned etc. if (src.stunned > 0) - src.stunned-- + AdjustStunned(-1) src.stat = 0 if (src.weakened > 0) - src.weakened-- + AdjustWeakened(-1) src.lying = 1 src.stat = 0 if (src.paralysis > 0) - src.paralysis-- + AdjustParalysis(-1) src.blinded = 1 src.lying = 1 src.stat = 1 @@ -192,7 +192,7 @@ if(M in stomach_contents) stomach_contents.Remove(M) M.loc = loc - M.paralysis += 10 + Paralyse(10) for(var/mob/O in viewers(src, null)) O.show_message(text("\green [src] hurls out the contents of their stomach!"), 1) return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index 591789497cf..6444ee1974a 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -81,16 +81,16 @@ health = 150 - (getOxyLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - if(getOxyLoss() > 50) paralysis = max(paralysis, 3) + if(getOxyLoss() > 50) Paralyse(3) if(src.sleeping) - src.paralysis = max(src.paralysis, 3) + Paralyse(3) if (prob(10) && health) spawn(0) emote("snore") if(!src.sleeping_willingly) src.sleeping-- if(src.resting) - src.weakened = max(src.weakened, 5) + Weaken(5) if(health < config.health_threshold_dead || src.brain_op_stage == 4.0) death() @@ -101,20 +101,20 @@ if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss++ if(src.stat != 2) src.stat = 1 - src.paralysis = max(src.paralysis, 5) + Paralyse(5) if (src.stat != 2) //Alive. if (src.paralysis || src.stunned || src.weakened) //Stunned etc. if (src.stunned > 0) - src.stunned-- + AdjustStunned(-1) src.stat = 0 if (src.weakened > 0) - src.weakened-- + AdjustWeakened(-1) src.lying = 1 src.stat = 0 if (src.paralysis > 0) - src.paralysis-- + AdjustParalysis(-1) src.blinded = 1 src.lying = 1 src.stat = 1 diff --git a/code/modules/mob/living/carbon/alien/humanoid/emote.dm b/code/modules/mob/living/carbon/alien/humanoid/emote.dm index b5a34511527..fa1e722df48 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/emote.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/emote.dm @@ -87,7 +87,7 @@ message = "The [src.name] jumps!" m_type = 1 if("collapse") - if (!src.paralysis) src.paralysis += 2 + Paralyse(2) message = text("[] collapses!", src) m_type = 2 if ("me") diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 5a584a6d711..3e30dbd19da 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -117,7 +117,7 @@ if(3.0) b_loss += 30 if (prob(50) && !shielded) - paralysis += 1 + Paralyse(1) ear_damage += 15 ear_deaf += 60 @@ -542,12 +542,10 @@ if ((O.client && !( O.blinded ))) O.show_message(text("\red The [M.name] has shocked []!", src), 1) - if (weakened < power) - weakened = power + Weaken(power) if (stuttering < power) stuttering = power - if (stunned < power) - stunned = power + Stun(power) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) @@ -577,12 +575,12 @@ if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien. if(M.gloves.cell.charge >= 2500) M.gloves.cell.charge -= 2500 - if (weakened < 5) - weakened = 5 + + Weaken(5) if (stuttering < 5) stuttering = 5 - if (stunned < 5) - stunned = 5 + Stun(5) + for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message("\red [src] has been touched with the stun gloves by [M]!", 1, "\red You hear someone fall.", 2) @@ -649,7 +647,7 @@ if (M.mutations & HULK)//HULK SMASH damage += 14 spawn(0) - paralysis += 5 + Paralyse(5) step_away(src,M,15) sleep(3) step_away(src,M,15) @@ -657,8 +655,7 @@ playsound(loc, "punch", 25, 1, -1) visible_message("\red [M] has [attack_verb]ed [src]!") if (damage > 9||prob(5))//Regular humans have a very small chance of weakening an alien. - if (weakened < 10) - weakened = rand(1,5) + Weaken(1,5) for(var/mob/O in viewers(M, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has weakened []!", M, src), 1, "\red You hear someone fall.", 2) @@ -672,15 +669,14 @@ if ("disarm") if (!lying) - var/randn = rand(1, 100) - if (randn <= 5)//Very small chance to push an alien down. - weakened = 2 + if (prob(5))//Very small chance to push an alien down. + Weaken(2) playsound(loc, 'thudswoosh.ogg', 50, 1, -1) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has pushed down []!", M, src), 1) else - if (randn <= 50) + if (prob(50)) drop_item() playsound(loc, 'thudswoosh.ogg', 50, 1, -1) for(var/mob/O in viewers(src, null)) @@ -715,9 +711,9 @@ In all, this is a lot like the monkey code. /N if(!sleeping_willingly) sleeping = 0 resting = 0 - if (paralysis >= 3) paralysis -= 3 - if (stunned >= 3) stunned -= 3 - if (weakened >= 3) weakened -= 3 + AdjustParalysis(-3) + AdjustStunned(-3) + AdjustWeakened(-3) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\blue [M.name] nuzzles [] trying to wake it up!", src), 1) diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index ede5bf418f4..2a6bd8680d2 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -80,9 +80,9 @@ proc clamp_values() - stunned = max(min(stunned, 20),0) - paralysis = max(min(paralysis, 20), 0) - weakened = max(min(weakened, 20), 0) + SetStunned(min(stunned, 20)) + SetParalysis(min(paralysis, 20)) + SetWeakened(min(weakened, 20)) sleeping = max(min(sleeping, 20), 0) adjustBruteLoss(0) adjustToxLoss(0) @@ -95,7 +95,7 @@ if (src.disabilities & 2) if ((prob(1) && src.paralysis < 10 && src.r_epil < 1)) src << "\red You have a seizure!" - src.paralysis = max(10, src.paralysis) + Paralyse(10) if (src.disabilities & 4) if ((prob(5) && src.paralysis <= 1 && src.r_ch_cou < 1)) src.drop_item() @@ -104,7 +104,7 @@ return if (src.disabilities & 8) if ((prob(10) && src.paralysis <= 1 && src.r_Tourette < 1)) - src.stunned = max(10, src.stunned) + Stun(10) spawn( 0 ) emote("twitch") return @@ -132,13 +132,13 @@ if (src.mutations & HULK && src.health <= 25) src.mutations &= ~HULK src << "\red You suddenly feel very weak." - src.weakened = 3 + Weaken(3) emote("collapse") if (src.radiation) if (src.radiation > 100) src.radiation = 100 - src.weakened = 10 + Weaken(10) src << "\red You feel weak." emote("collapse") @@ -157,7 +157,7 @@ src.adjustToxLoss(1) if(prob(5)) src.radiation -= 5 - src.weakened = 3 + Weaken(3) src << "\red You feel weak." emote("collapse") src.updatehealth() @@ -377,7 +377,7 @@ src.eye_blurry = max(2, src.eye_blurry) if (prob(5)) src.sleeping = 1 - src.paralysis = 5 + src.Paralyse(5) confused = max(0, confused - 1) // decrement dizziness counter, clamped to 0 @@ -396,16 +396,16 @@ health = 100 - (getOxyLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - if(getOxyLoss() > 50) paralysis = max(paralysis, 3) + if(getOxyLoss() > 50) Paralyse(3) if(src.sleeping) - src.paralysis = max(src.paralysis, 3) + Paralyse(3) if (prob(10) && health) spawn(0) emote("snore") if(!src.sleeping_willingly) src.sleeping-- if(src.resting) - src.weakened = max(src.weakened, 5) + Weaken(5) if(health < config.health_threshold_dead || src.brain_op_stage == 4.0) death() @@ -416,20 +416,20 @@ if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss++ if(src.stat != 2) src.stat = 1 - src.paralysis = max(src.paralysis, 5) + Paralyse(5) if (src.stat != 2) //Alive. if (src.paralysis || src.stunned || src.weakened) //Stunned etc. if (src.stunned > 0) - src.stunned-- + AdjustStunned(-1) src.stat = 0 if (src.weakened > 0) - src.weakened-- + AdjustWeakened(-1) src.lying = 1 src.stat = 0 if (src.paralysis > 0) - src.paralysis-- + AdjustParalysis(-1) src.blinded = 1 src.lying = 1 src.stat = 1 diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 69a7fb21963..8c2bff36562 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -82,16 +82,16 @@ health = 250 - (getOxyLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - if(getOxyLoss() > 50) paralysis = max(paralysis, 3) + if(getOxyLoss() > 50) Paralyse(3) if(src.sleeping) - src.paralysis = max(src.paralysis, 3) + Paralyse(3) if (prob(10) && health) spawn(0) emote("snore") if(!src.sleeping_willingly) src.sleeping-- if(src.resting) - src.weakened = max(src.weakened, 5) + Weaken(5) if(health < config.health_threshold_dead || src.brain_op_stage == 4.0) death() @@ -102,20 +102,20 @@ if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss++ if(src.stat != 2) src.stat = 1 - src.paralysis = max(src.paralysis, 5) + Paralyse(5) if (src.stat != 2) //Alive. if (src.paralysis || src.stunned || src.weakened) //Stunned etc. if (src.stunned > 0) - src.stunned-- + AdjustStunned(-1) src.stat = 0 if (src.weakened > 0) - src.weakened-- + AdjustWeakened(-1) src.lying = 1 src.stat = 0 if (src.paralysis > 0) - src.paralysis-- + AdjustParalysis(-1) src.blinded = 1 src.lying = 1 src.stat = 1 diff --git a/code/modules/mob/living/carbon/alien/larva/emote.dm b/code/modules/mob/living/carbon/alien/larva/emote.dm index 34a0911f77e..dd32a2183db 100644 --- a/code/modules/mob/living/carbon/alien/larva/emote.dm +++ b/code/modules/mob/living/carbon/alien/larva/emote.dm @@ -84,7 +84,7 @@ message = "The [src.name] jumps!" m_type = 1 if("collapse") - if (!src.paralysis) src.paralysis += 2 + Paralyse(2) message = text("[] collapses!", src) m_type = 2 if ("me") diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index cbe576e7454..828ba9cdd04 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -105,7 +105,7 @@ if(3.0) b_loss += 30 if (prob(50)) - paralysis += 1 + Paralyse(1) ear_damage += 15 ear_deaf += 60 @@ -358,12 +358,12 @@ if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien. if(M.gloves.cell.charge >= 2500) M.gloves.cell.charge -= 2500 - if (weakened < 5) - weakened = 5 + + Weaken(5) if (stuttering < 5) stuttering = 5 - if (stunned < 5) - stunned = 5 + Stun(5) + for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message("\red [src] has been touched with the stun gloves by [M]!", 1, "\red You hear someone fall.", 2) @@ -428,7 +428,7 @@ if (M.mutations & HULK) damage += 5 spawn(0) - paralysis += 1 + Paralyse(1) step_away(src,M,15) sleep(3) step_away(src,M,15) @@ -437,8 +437,7 @@ if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has [attack_verb]ed []!", M, src), 1) if (damage > 4.9) - if (weakened < 10) - weakened = rand(10, 15) + Weaken(rand(10,15)) for(var/mob/O in viewers(M, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has weakened []!", M, src), 1, "\red You hear someone fall.", 2) @@ -468,9 +467,9 @@ if(!sleeping_willingly) sleeping = 0 resting = 0 - if (paralysis >= 3) paralysis -= 3 - if (stunned >= 3) stunned -= 3 - if (weakened >= 3) weakened -= 3 + AdjustParalysis(-3) + AdjustStunned(-3) + AdjustWeakened(-3) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\blue [M.name] nuzzles [] trying to wake it up!", src), 1) diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 9272023a879..0bffacb7108 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -78,9 +78,9 @@ proc clamp_values() - stunned = max(min(stunned, 20),0) - paralysis = max(min(paralysis, 20), 0) - weakened = max(min(weakened, 20), 0) + SetStunned(min(stunned, 20)) + SetParalysis(min(paralysis, 20)) + SetWeakened(min(weakened, 20)) sleeping = max(min(sleeping, 20), 0) handle_mutations_and_radiation() @@ -114,7 +114,7 @@ if (radiation) if (radiation > 100) radiation = 100 - weakened = 10 + Weaken(10) src << "\red You feel weak." emote("collapse") @@ -133,7 +133,7 @@ adjustToxLoss(1) if(prob(5)) radiation -= 5 - weakened = 3 + Weaken(3) src << "\red You feel weak." emote("collapse") updatehealth() @@ -302,7 +302,7 @@ eye_blurry = max(2, eye_blurry) if (prob(5)) sleeping = 1 - paralysis = 5 + Paralyse(5) confused = max(0, confused - 1) // decrement dizziness counter, clamped to 0 @@ -321,16 +321,16 @@ health = 25 - (getOxyLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - if(getOxyLoss() > 50) paralysis = max(paralysis, 3) + if(getOxyLoss() > 50) Paralyse(3) if(sleeping) - paralysis = max(paralysis, 3) + Paralyse(3) if (prob(10) && health) spawn(0) emote("snore") if(!src.sleeping_willingly) src.sleeping-- if(resting) - weakened = max(weakened, 5) + Weaken(5) if(health < config.health_threshold_dead || brain_op_stage == 4.0) death() @@ -341,20 +341,20 @@ if(!reagents.has_reagent("inaprovaline")) oxyloss++ if(stat != 2) stat = 1 - paralysis = max(paralysis, 5) + Paralyse(5) if (stat != 2) //Alive. if (paralysis || stunned || weakened) //Stunned etc. if (stunned > 0) - stunned-- + AdjustStunned(-1) stat = 0 if (weakened > 0) - weakened-- + AdjustWeakened(-1) lying = 1 stat = 0 if (paralysis > 0) - paralysis-- + AdjustParalysis(-1) blinded = 1 lying = 1 stat = 1 diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm index b4e051a9d08..b5a1c7896eb 100644 --- a/code/modules/mob/living/carbon/brain/life.dm +++ b/code/modules/mob/living/carbon/brain/life.dm @@ -42,9 +42,9 @@ clamp_values() - stunned = max(stunned,0) - paralysis = max(paralysis, 0) - weakened = max(weakened, 0) + AdjustParalysis(0) + AdjustStunned(0) + AdjustWeakened(0) adjustBruteLoss(0) adjustFireLoss(0) adjustOxyLoss(0) @@ -55,7 +55,7 @@ if (radiation) if (radiation > 100) radiation = 100 - weakened = 10 + Weaken(10) src << "\red You feel weak." switch(radiation) @@ -70,7 +70,7 @@ adjustToxLoss(1) if(prob(5)) radiation -= 5 - weakened = 3 + Weaken(3) src << "\red You feel weak." // emote("collapse") updatehealth() @@ -139,7 +139,7 @@ eye_blurry = max(2, eye_blurry) if (prob(5)) sleeping = 1 - paralysis = 5 + Paralyse(5) confused = max(0, confused - 1) // decrement dizziness counter, clamped to 0 @@ -156,14 +156,14 @@ health = 100 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - if(getOxyLoss() > 25) paralysis = max(paralysis, 3) + if(getOxyLoss() > 25) Paralyse(3) if(sleeping) - paralysis = max(paralysis, 5) + Paralyse(5) if (prob(1) && health) spawn(0) emote("snore") if(resting) - weakened = max(weakened, 5) + Weaken(5) if(stat != 2 && (!container && (health < config.health_threshold_dead || (config.revival_brain_life >= 0 && ((world.time - timeofhostdeath) > config.revival_brain_life ))))) death() @@ -174,20 +174,20 @@ if(!reagents.has_reagent("inaprovaline")) oxyloss++ if(stat != 2) stat = 1 - paralysis = max(paralysis, 5) + Paralyse(5) if (stat != 2) //Alive. if (paralysis || stunned || weakened) //Stunned etc. if (stunned > 0) - stunned-- + AdjustStunned(-1) stat = 0 if (weakened > 0) - weakened-- + AdjustWeakened(-1) lying = 1 stat = 0 if (paralysis > 0) - paralysis-- + AdjustParalysis(-1) blinded = 1 lying = 1 stat = 1 diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index ea917a66c38..e7c75aff32f 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -134,9 +134,9 @@ "\red You hear a heavy electrical crack." \ ) // if(src.stunned < shock_damage) src.stunned = shock_damage - src.stunned = max(src.stunned,10)//This should work for now, more is really silly and makes you lay there forever + Stun(10)//This should work for now, more is really silly and makes you lay there forever // if(src.weakened < 20*siemens_coeff) src.weakened = 20*siemens_coeff - src.weakened = max(src.weakened,10) + Weaken(10) return shock_damage @@ -167,9 +167,9 @@ if(!src.sleeping_willingly) src.sleeping = 0 src.resting = 0 - if (src.paralysis >= 3) src.paralysis -= 3 - if (src.stunned >= 3) src.stunned -= 3 - if (src.weakened >= 3) src.weakened -= 3 + AdjustParalysis(-3) + AdjustStunned(-3) + AdjustWeakened(-3) playsound(src.loc, 'thudswoosh.ogg', 50, 1, -1) M.visible_message( \ "\blue [M] shakes [src] trying to wake [t_him] up!", \ diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 960de60b470..e8f3e278790 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -400,8 +400,7 @@ m_type = 2 if ("collapse") - if (!src.paralysis) - src.paralysis += 2 + Paralyse(2) message = "[src] collapses!" m_type = 2 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 1f065ea48fa..e67bc80f549 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -266,7 +266,7 @@ ear_damage += 15 ear_deaf += 60 if (prob(50) && !shielded) - paralysis += 10 + Paralyse(10) for(var/datum/organ/external/temp in organs) switch(temp.name) @@ -1196,12 +1196,10 @@ if ((O.client && !( O.blinded ))) O.show_message(text("\red The [M.name] has shocked []!", src), 1) - if (weakened < power) - weakened = power + Weaken(power) if (stuttering < power) stuttering = power - if (stunned < power) - stunned = power + Stun(power) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) @@ -2316,3 +2314,18 @@ It can still be worn/put on as normal. take_overall_damage(0, amount) else heal_overall_damage(0, -amount) + +/mob/living/carbon/human/Stun(amount) + if(mutations & HULK) + return + ..() + +/mob/living/carbon/human/Weaken(amount) + if(mutations & HULK) + return + ..() + +/mob/living/carbon/human/Paralyse(amount) + if(mutations & HULK) + return + ..() diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm index 66ecc32aa12..1b8e5a1ef1a 100644 --- a/code/modules/mob/living/carbon/human/human_attackalien.dm +++ b/code/modules/mob/living/carbon/human/human_attackalien.dm @@ -54,8 +54,7 @@ var/randn = rand(1, 100) if (randn <= 90) playsound(loc, 'pierce.ogg', 25, 1, -1) - if (weakened < 15) - weakened = rand(10, 15) + Weaken(rand(15,20)) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has tackled down []!", M, src), 1) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 96357e6e70c..cd715e4236a 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -98,9 +98,9 @@ proc clamp_values() - stunned = max(min(stunned, 20),0) - paralysis = max(min(paralysis, 20), 0) - weakened = max(min(weakened, 20), 0) + SetStunned(min(stunned, 20)) + SetParalysis(min(paralysis, 20)) + SetWeakened(min(weakened, 20)) sleeping = max(min(sleeping, 20), 0) adjustBruteLoss(0) adjustToxLoss(0) @@ -126,7 +126,7 @@ if(O == src) continue O.show_message(text("\red [src] starts having a seizure!"), 1) - paralysis = max(10, paralysis) + Paralyse(10) make_jittery(1000) if (disabilities & 4) if ((prob(5) && paralysis <= 1 && r_ch_cou < 1)) @@ -136,7 +136,7 @@ return if (disabilities & 8) if ((prob(10) && paralysis <= 1 && r_Tourette < 1)) - stunned = max(10, stunned) + Stun(10) spawn( 0 ) switch(rand(1, 3)) if(1) @@ -160,7 +160,7 @@ if(1) say(pick("IM A PONY NEEEEEEIIIIIIIIIGH", "without oxigen blob don't evoluate?", "CAPTAINS A COMDOM", "[pick("", "that faggot traitor")] [pick("joerge", "george", "gorge", "gdoruge")] [pick("mellens", "melons", "mwrlins")] is grifing me HAL;P!!!", "can u give me [pick("telikesis","halk","eppilapse")]?", "THe saiyans screwed", "Bi is THE BEST OF BOTH WORLDS>", "I WANNA PET TEH monkeyS", "stop grifing me!!!!", "SOTP IT#")) if(2) - say(pick("fucking 4rries!", "stat me", ">my face", "roll it easy!", "waaaaaagh!!!", "red wonz go fasta", "FOR TEH EMPRAH", "lol2cat", "dem dwarfs man, dem dwarfs", "SPESS MAHREENS", "hwee did eet fhor khayosss", "lifelike texture ;_;", "luv can bloooom")) + say(pick("FUS RO DAH","fucking 4rries!", "stat me", ">my face", "roll it easy!", "waaaaaagh!!!", "red wonz go fasta", "FOR TEH EMPRAH", "lol2cat", "dem dwarfs man, dem dwarfs", "SPESS MAHREENS", "hwee did eet fhor khayosss", "lifelike texture ;_;", "luv can bloooom")) if(3) emote("drool") @@ -173,13 +173,13 @@ if (mutations & HULK && health <= 25) mutations &= ~HULK src << "\red You suddenly feel very weak." - weakened = 3 + Weaken(3) emote("collapse") if (radiation) if (radiation > 100) radiation = 100 - weakened = 10 + Weaken(10) src << "\red You feel weak." emote("collapse") @@ -198,7 +198,7 @@ adjustToxLoss(1) if(prob(5)) radiation -= 5 - weakened = 3 + Weaken(3) src << "\red You feel weak." emote("collapse") updatehealth() @@ -357,7 +357,7 @@ if(!co2overloadtime) // If it's the first breath with too much CO2 in it, lets start a counter, then have them pass out after 12s or so. co2overloadtime = world.time else if(world.time - co2overloadtime > 120) - paralysis = max(paralysis, 3) + Paralyse(3) oxyloss += 3 // Lets hurt em a little, let them know we mean business if(world.time - co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good! oxyloss += 8 @@ -378,7 +378,7 @@ for(var/datum/gas/sleeping_agent/SA in breath.trace_gases) var/SA_pp = (SA.moles/breath.total_moles())*breath_pressure if(SA_pp > SA_para_min) // Enough to make us paralysed for a bit - paralysis = max(paralysis, 3) // 3 gives them one second to wake up and run away a bit! + Paralyse(3) // 3 gives them one second to wake up and run away a bit! if(SA_pp > SA_sleep_min) // Enough to make us sleep as well sleeping = max(sleeping, 2) else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning @@ -646,7 +646,7 @@ eye_blurry = max(2, eye_blurry) if (prob(5)) sleeping = 1 - paralysis = 5 + Paralyse(5) confused = max(0, confused - 1) // decrement dizziness counter, clamped to 0 @@ -665,16 +665,16 @@ // health = 100 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - if(getOxyLoss() > 50) paralysis = max(paralysis, 3) + if(getOxyLoss() > 50) Paralyse(3) if(sleeping) - paralysis = max(paralysis, 3) + Paralyse(3) if (prob(10) && health) spawn(0) emote("snore") if(!src.sleeping_willingly) src.sleeping-- if(resting) - weakened = max(weakened, 3) + Weaken(3) if(health < config.health_threshold_dead || brain_op_stage == 4.0) death() @@ -685,7 +685,7 @@ if(!reagents.has_reagent("inaprovaline")) oxyloss++ if(stat != 2) stat = 1 - paralysis = max(paralysis, 5) + Paralyse(5) if (stat != 2) //Alive. if (silent) @@ -693,14 +693,14 @@ if (paralysis || stunned || weakened || (changeling && changeling.changeling_fakedeath)) //Stunned etc. if (stunned > 0) - stunned-- + AdjustStunned(-1) stat = 0 if (weakened > 0) - weakened-- + AdjustWeakened(-1) lying = 1 stat = 0 if (paralysis > 0) - paralysis-- + AdjustParalysis(-1) blinded = 1 lying = 1 stat = 1 diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm index 251dbbbc5e6..8cc12f2c5ae 100644 --- a/code/modules/mob/living/carbon/metroid/life.dm +++ b/code/modules/mob/living/carbon/metroid/life.dm @@ -413,7 +413,7 @@ //if(!src.rejuv) src.oxyloss++ if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss+=10 - if(src.stat != 2) src.stat = 1 + if(src.stat != DEAD) src.stat = UNCONSCIOUS if(prob(30)) if(getOxyLoss()>0) oxyloss = max(getOxyLoss()-1, 0) @@ -423,23 +423,22 @@ if(getBruteLoss()>0) bruteloss = max(getBruteLoss()-1,0) - if (src.stat == 2) + if (src.stat == DEAD) src.lying = 1 src.blinded = 1 - src.stat = 2 else if (src.paralysis || src.stunned || src.weakened || (changeling && changeling.changeling_fakedeath)) //Stunned etc. if (src.stunned > 0) - src.stunned = 0 + AdjustStunned(-1) src.stat = 0 if (src.weakened > 0) - src.weakened = 0 + AdjustWeakened(-1) src.lying = 0 src.stat = 0 if (src.paralysis > 0) - src.paralysis = 0 + AdjustParalysis(-1) src.blinded = 0 src.lying = 0 src.stat = 0 diff --git a/code/modules/mob/living/carbon/monkey/emote.dm b/code/modules/mob/living/carbon/monkey/emote.dm index b555982764b..b99ab4a42e5 100644 --- a/code/modules/mob/living/carbon/monkey/emote.dm +++ b/code/modules/mob/living/carbon/monkey/emote.dm @@ -84,7 +84,7 @@ message = "The [src.name] jumps!" m_type = 1 if("collapse") - if (!src.paralysis) src.paralysis += 2 + Paralyse(2) message = text("[] collapses!", src) m_type = 2 if("deathgasp") diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index cff8cb751f5..84232b1d331 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -90,16 +90,16 @@ clamp_values() - stunned = max(stunned,0) - paralysis = max(paralysis, 0) - weakened = max(weakened, 0) + AdjustStunned(0) + AdjustParalysis(0) + AdjustWeakened(0) handle_disabilities() if (src.disabilities & 2) if ((prob(1) && src.paralysis < 10 && src.r_epil < 1)) src << "\red You have a seizure!" - src.paralysis = max(10, src.paralysis) + Paralyse(10) if (src.disabilities & 4) if ((prob(5) && src.paralysis <= 1 && src.r_ch_cou < 1)) src.drop_item() @@ -108,7 +108,7 @@ return if (src.disabilities & 8) if ((prob(10) && src.paralysis <= 1 && src.r_Tourette < 1)) - src.stunned = max(10, src.stunned) + Stun(10) spawn( 0 ) emote("twitch") return @@ -135,13 +135,13 @@ if (src.mutations & HULK && src.health <= 25) src.mutations &= ~HULK src << "\red You suddenly feel very weak." - src.weakened = 3 + Weaken(3) emote("collapse") if (src.radiation) if (src.radiation > 100) src.radiation = 100 - src.weakened = 10 + Weaken(10) src << "\red You feel weak." emote("collapse") @@ -157,7 +157,7 @@ src.adjustToxLoss(1) if(prob(5)) src.radiation -= 5 - src.weakened = 3 + Weaken(3) src << "\red You feel weak." emote("collapse") src.updatehealth() @@ -304,7 +304,7 @@ if(!co2overloadtime) // If it's the first breath with too much CO2 in it, lets start a counter, then have them pass out after 12s or so. co2overloadtime = world.time else if(world.time - co2overloadtime > 120) - src.paralysis = max(src.paralysis, 3) + Paralyse(3) oxyloss += 3 // Lets hurt em a little, let them know we mean business if(world.time - co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good! oxyloss += 8 @@ -325,7 +325,7 @@ for(var/datum/gas/sleeping_agent/SA in breath.trace_gases) var/SA_pp = (SA.moles/breath.total_moles())*breath_pressure if(SA_pp > SA_para_min) // Enough to make us paralysed for a bit - src.paralysis = max(src.paralysis, 3) // 3 gives them one second to wake up and run away a bit! + Paralyse(3) // 3 gives them one second to wake up and run away a bit! if(SA_pp > SA_sleep_min) // Enough to make us sleep as well src.sleeping = max(src.sleeping, 2) else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning @@ -387,7 +387,7 @@ src.eye_blurry = max(2, src.eye_blurry) if (prob(5)) src.sleeping = 1 - src.paralysis = 5 + Paralyse(5) confused = max(0, confused - 1) // decrement dizziness counter, clamped to 0 @@ -404,14 +404,14 @@ health = 100 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - if(getOxyLoss() > 25) paralysis = max(paralysis, 3) + if(getOxyLoss() > 25) Paralyse(3) if(src.sleeping) - src.paralysis = max(src.paralysis, 5) + Paralyse(5) if (prob(1) && health) spawn(0) emote("snore") if(src.resting) - src.weakened = max(src.weakened, 5) + Weaken(5) if(health < config.health_threshold_dead && stat != 2) death() @@ -422,20 +422,20 @@ if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss++ if(src.stat != 2) src.stat = 1 - src.paralysis = max(src.paralysis, 5) + Paralyse(5) if (src.stat != 2) //Alive. if (src.paralysis || src.stunned || src.weakened || (changeling && changeling.changeling_fakedeath)) //Stunned etc. if (src.stunned > 0) - src.stunned-- + AdjustStunned(-1) src.stat = 0 if (src.weakened > 0) - src.weakened-- + AdjustWeakened(-1) src.lying = 1 src.stat = 0 if (src.paralysis > 0) - src.paralysis-- + AdjustParalysis(-1) src.blinded = 1 src.lying = 1 src.stat = 1 diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 49de37d75cb..40bac18b91c 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -161,12 +161,11 @@ if(M.a_intent == "hurt") if(M.gloves.cell.charge >= 2500) M.gloves.cell.charge -= 2500 - if (weakened < 5) - weakened = 5 + Weaken(5) if (stuttering < 5) stuttering = 5 - if (stunned < 5) - stunned = 5 + Stun(5) + for(var/mob/O in viewers(src, null)) if (O.client) O.show_message("\red [src] has been touched with the stun gloves by [M]!", 1, "\red You hear someone fall", 2) @@ -198,7 +197,7 @@ if (prob(40)) damage = rand(10, 15) if (paralysis < 5) - paralysis = rand(10, 15) + Paralyse(rand(10, 15)) spawn( 0 ) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) @@ -235,7 +234,7 @@ else if (!( paralysis )) if (prob(25)) - paralysis = 2 + Paralyse(2) playsound(loc, 'thudswoosh.ogg', 50, 1, -1) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) @@ -270,7 +269,7 @@ if (damage >= 25) damage = rand(20, 40) if (paralysis < 15) - paralysis = rand(10, 15) + Paralyse(rand(10, 15)) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has wounded [name]!", M), 1) @@ -310,7 +309,7 @@ playsound(loc, 'pierce.ogg', 25, 1, -1) var/damage = 5 if(prob(95)) - weakened = rand(10, 15) + Weaken(rand(10,15)) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has tackled down [name]!", M), 1) @@ -368,12 +367,10 @@ if ((O.client && !( O.blinded ))) O.show_message(text("\red The [M.name] has shocked []!", src), 1) - if (weakened < power) - weakened = power + Weaken(power) if (stuttering < power) stuttering = power - if (stunned < power) - stunned = power + Stun(power) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) @@ -562,7 +559,7 @@ adjustBruteLoss(30) health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss() if (prob(50)) - paralysis += 10 + Paralyse(10) else return @@ -571,7 +568,7 @@ adjustFireLoss(60) health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss() if (prob(50)) - paralysis += 10 + Paralyse(10) /obj/effect/equip_e/monkey/process() if (item) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 779e440aa25..2293f00dd3a 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -42,11 +42,11 @@ if(!effect || (blocked >= 2)) return 0 switch(effecttype) if(STUN) - stunned = max(stunned,(effect/(blocked+1))) + Stun(effect/(blocked+1)) if(WEAKEN) - weakened = max(weakened,(effect/(blocked+1))) + Weaken(effect/(blocked+1)) if(PARALYZE) - paralysis = max(paralysis,(effect/(blocked+1))) + Paralyse(effect/(blocked+1)) if(IRRADIATE) radiation += min((effect - (effect*getarmor(null, "rad"))), 0)//Rads auto check armor if(STUTTER) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 1587fb990f0..7561307562c 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -138,14 +138,14 @@ src.setToxLoss(0) //src.bruteloss = 0 src.setOxyLoss(0) - src.paralysis = 0 - src.stunned = 0 - src.weakened =0 + SetParalysis(0) + SetStunned(0) + SetWeakened(0) //src.health = 100 src.heal_overall_damage(1000, 1000) src.buckled = initial(src.buckled) src.handcuffed = initial(src.handcuffed) - if(src.stat > 1) src.stat=0 + if(src.stat > 1) src.stat = CONSCIOUS ..() return diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index a6f693641df..28cbf9e3c3d 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -41,7 +41,7 @@ if(C && C.active) C.attack_self(src)//Should shut it off src << "\blue Your [C.name] was disrupted!" - stunned = max(stunned, 2) + Stun(2) flash_weak_pain() diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 4e56f6d66f0..2af2ec67095 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -30,9 +30,9 @@ proc clamp_values() - stunned = max(min(stunned, 30),0) - paralysis = max(min(paralysis, 30), 0) - weakened = max(min(weakened, 20), 0) + SetStunned(min(stunned, 30)) + SetParalysis(min(paralysis, 30)) + SetWeakened(min(weakened, 20)) sleeping = 0 adjustBruteLoss(0) adjustToxLoss(0) @@ -89,15 +89,15 @@ health = 200 - (getOxyLoss() + getFireLoss() + getBruteLoss()) - if(getOxyLoss() > 50) paralysis = max(paralysis, 3) + if(getOxyLoss() > 50) Paralyse(3) if(src.sleeping) - src.paralysis = max(src.paralysis, 3) + Paralyse(3) if(!src.sleeping_willingly) src.sleeping-- if(src.resting) - src.weakened = max(src.weakened, 5) + Weaken(5) if(health < config.health_threshold_dead && src.stat != 2) //die only once death() @@ -106,11 +106,11 @@ if (src.paralysis || src.stunned || src.weakened) //Stunned etc. src.stat = 1 if (src.stunned > 0) - src.stunned-- + AdjustStunned(-1) if (src.weakened > 0) - src.weakened-- + AdjustWeakened(-1) if (src.paralysis > 0) - src.paralysis-- + AdjustParalysis(-1) src.blinded = 1 else src.blinded = 0 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 6911ec8364f..35c94e66cde 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -527,9 +527,8 @@ if ("disarm") if(!(lying)) - var/randn = rand(1, 100) - if (randn <= 85) - stunned = 5 + if (rand(1,100) <= 85) + Stun(5) step(src,get_dir(M,src)) spawn(5) step(src,get_dir(M,src)) playsound(loc, 'pierce.ogg', 50, 1, -1) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 92f30ca0c87..c2d6c1141fc 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -11,10 +11,10 @@ switch(severity) if(1) src.take_organ_damage(40) - src.stunned = max(src.stunned,rand(5,10)) + Stun(rand(5,10)) if(2) src.take_organ_damage(20) - src.stunned = max(src.stunned,rand(1,5)) + Stun(rand(1,5)) flick("noise", src:flash) src << "\red *BZZZT*" src << "\red Warning: Electromagnetic pulse detected." diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 745c6d8f2d7..a8c5686c8b3 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1071,4 +1071,38 @@ note dizziness decrements automatically in the mob's Life() proc. /mob/proc/IsAdvancedToolUser()//This might need a rename but it should replace the can this mob use things check return 0 +/mob/proc/Stun(amount) + stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun + return +/mob/proc/SetStunned(amount) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned" + stunned = max(amount,0) + return + +/mob/proc/AdjustStunned(amount) + stunned = max(stunned + amount,0) + return + +/mob/proc/Weaken(amount) + weakened = max(max(weakened,amount),0) + return + +/mob/proc/SetWeakened(amount) + weakened = max(amount,0) + return + +/mob/proc/AdjustWeakened(amount) + weakened = max(weakened + amount,0) + return + +/mob/proc/Paralyse(amount) + paralysis = max(max(paralysis,amount),0) + return + +/mob/proc/SetParalysis(amount) + paralysis = max(amount,0) + return + +/mob/proc/AdjustParalysis(amount) + paralysis = max(paralysis + amount,0) + return diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 0c510e40d8d..9eaab1143a6 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -76,8 +76,8 @@ if (!( affecting.buckled )) affecting.loc = assailant.loc if ((killing && state == 3)) - affecting.stunned = max(5, affecting.stunned) - affecting.paralysis = max(3, affecting.paralysis) + affecting.Stun(5) + affecting.Paralyse(3) affecting.losebreath = min(affecting.losebreath + 2, 3) return diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index f5593cd95eb..0f679e421a9 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -64,9 +64,11 @@ user.visible_message("\red [user.name] was shocked by the [src.name]!", \ "\red You feel a powerful shock course through your body sending you flying!", \ "\red You hear a heavy electrical crack") + var/stun = min(shock_damage, 15) - if(user.stunned < shock_damage) user.stunned = stun - if(user.weakened < 10) user.weakened = 10 + user.Stun(stun) + user.Weaken(10) + user.updatehealth() var/atom/target = get_edge_target_turf(user, get_dir(src, get_step_away(user, src))) user.throw_at(target, 200, 4) @@ -81,8 +83,7 @@ "\red Energy pulse detected, system damaged!", \ "\red You hear an electrical crack") if(prob(20)) - if(user.stunned < 2) - user.stunned = 2 + user.Stun(2) return return