mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Renames stun effects and changes stun input values as preliminary work for changing stuns to status effects (#28524)
This commit is contained in:
@@ -18,8 +18,8 @@
|
||||
#define SHAME 16
|
||||
|
||||
#define STUN "stun"
|
||||
#define WEAKEN "weaken"
|
||||
#define PARALYZE "paralize"
|
||||
#define KNOCKDOWN "knockdown"
|
||||
#define UNCONSCIOUS "unconscious"
|
||||
#define IRRADIATE "irradiate"
|
||||
#define STUTTER "stutter"
|
||||
#define SLUR "slur"
|
||||
@@ -29,8 +29,8 @@
|
||||
|
||||
//Bitflags defining which status effects could be or are inflicted on a mob
|
||||
#define CANSTUN 1
|
||||
#define CANWEAKEN 2
|
||||
#define CANPARALYSE 4
|
||||
#define CANKNOCKDOWN 2
|
||||
#define CANUNCONSCIOUS 4
|
||||
#define CANPUSH 8
|
||||
#define IGNORESLOWDOWN 16
|
||||
#define GOTTAGOFAST 32
|
||||
|
||||
@@ -307,7 +307,7 @@ Proc for attack log creation, because really why not
|
||||
drifting = 0
|
||||
Uloc = user.loc
|
||||
|
||||
if(QDELETED(user) || user.stat || user.weakened || user.stunned || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke()))
|
||||
if(QDELETED(user) || user.stat || user.knockdown || user.stun || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke()))
|
||||
. = 0
|
||||
break
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
if(call(client.click_intercept,"InterceptClickOn")(src,params,A))
|
||||
return
|
||||
|
||||
if(stat || lockcharge || weakened || stunned || paralysis)
|
||||
if(stat || lockcharge || knockdown || stun || unconscious)
|
||||
return
|
||||
|
||||
var/list/modifiers = params2list(params)
|
||||
|
||||
@@ -348,7 +348,7 @@
|
||||
/obj/screen/storage/Click(location, control, params)
|
||||
if(world.time <= usr.next_move)
|
||||
return 1
|
||||
if(usr.stat || usr.paralysis || usr.stunned || usr.weakened)
|
||||
if(usr.stat || usr.unconscious || usr.stun || usr.knockdown)
|
||||
return 1
|
||||
if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech
|
||||
return 1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#define AB_CHECK_RESTRAINED 1
|
||||
#define AB_CHECK_STUNNED 2
|
||||
#define AB_CHECK_STUN 2
|
||||
#define AB_CHECK_LYING 4
|
||||
#define AB_CHECK_CONSCIOUS 8
|
||||
|
||||
@@ -72,8 +72,8 @@
|
||||
if(check_flags & AB_CHECK_RESTRAINED)
|
||||
if(owner.restrained())
|
||||
return 0
|
||||
if(check_flags & AB_CHECK_STUNNED)
|
||||
if(owner.stunned || owner.weakened)
|
||||
if(check_flags & AB_CHECK_STUN)
|
||||
if(owner.stun || owner.knockdown)
|
||||
return 0
|
||||
if(check_flags & AB_CHECK_LYING)
|
||||
if(owner.lying)
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
//Presets for item actions
|
||||
/datum/action/item_action
|
||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING|AB_CHECK_CONSCIOUS
|
||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_LYING|AB_CHECK_CONSCIOUS
|
||||
button_icon_state = null
|
||||
// If you want to override the normal icon being the item
|
||||
// then change this to an icon state
|
||||
|
||||
@@ -125,4 +125,4 @@ Bonus
|
||||
if(12 to 24)
|
||||
M.drowsyness += 1
|
||||
if(24 to INFINITY)
|
||||
M.Sleeping(2, 0)
|
||||
M.Sleeping(40, 0)
|
||||
|
||||
@@ -40,5 +40,5 @@ Bonus
|
||||
M.adjustStaminaLoss(30)
|
||||
if(M.getStaminaLoss() > 60 && !M.stat)
|
||||
M.visible_message("<span class='warning'>[M] faints!</span>", "<span class='userdanger'>You swoon and faint...</span>")
|
||||
M.AdjustSleeping(5)
|
||||
M.AdjustSleeping(100)
|
||||
return
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
A.update_icon()
|
||||
if(prob(3))
|
||||
to_chat(affected_mob, "<span class='warning'>You feel a stabbing pain in your abdomen!</span>")
|
||||
affected_mob.Stun(rand(2,3))
|
||||
affected_mob.Stun(rand(40,60))
|
||||
affected_mob.adjustToxLoss(1)
|
||||
if(3)
|
||||
if(prob(1))
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
if(prob(3))
|
||||
to_chat(affected_mob, "<span class='danger'>You lose consciousness...</span>")
|
||||
affected_mob.visible_message("<span class='warning'>[affected_mob] suddenly collapses</span>")
|
||||
affected_mob.Paralyse(rand(5,10))
|
||||
affected_mob.Unconscious(rand(100,200))
|
||||
if(prob(1))
|
||||
affected_mob.emote("snore")
|
||||
if(prob(15))
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
to_chat(affected_mob, "You feel very strange.")
|
||||
if (prob(4))
|
||||
to_chat(affected_mob, "<span class='danger'>You feel a stabbing pain in your head!</span>")
|
||||
affected_mob.Paralyse(2)
|
||||
affected_mob.Unconscious(40)
|
||||
if (prob(4))
|
||||
to_chat(affected_mob, "<span class='danger'>Your stomach churns.</span>")
|
||||
if(3)
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop"))
|
||||
if (prob(4))
|
||||
to_chat(affected_mob, "<span class='danger'>You feel a stabbing pain in your head.</span>")
|
||||
affected_mob.Paralyse(2)
|
||||
affected_mob.Unconscious(40)
|
||||
if(4)
|
||||
if (prob(20))
|
||||
affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee..."))
|
||||
@@ -167,7 +167,7 @@
|
||||
if(3)
|
||||
if (prob(4))
|
||||
to_chat(affected_mob, "<span class='danger'>You feel a stabbing pain in your head.</span>")
|
||||
affected_mob.Paralyse(2)
|
||||
affected_mob.Unconscious(40)
|
||||
if(4)
|
||||
if (prob(20))
|
||||
affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!"))
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
if(prob(10))
|
||||
affected_mob.adjustStaminaLoss(100)
|
||||
affected_mob.visible_message("<span class='warning'>[affected_mob] faints!</span>", "<span class='userdanger'>You surrender yourself and feel at peace...</span>")
|
||||
affected_mob.AdjustSleeping(5)
|
||||
affected_mob.AdjustSleeping(100)
|
||||
if(prob(2))
|
||||
to_chat(affected_mob, "<span class='userdanger'>You feel your mind relax and your thoughts drift!</span>")
|
||||
affected_mob.confused = min(100, affected_mob.confused + 8)
|
||||
|
||||
@@ -68,9 +68,9 @@
|
||||
add_logs(A, D, "punched")
|
||||
|
||||
if((D.stat != DEAD) && damage >= A.dna.species.punchstunthreshold)
|
||||
D.visible_message("<span class='danger'>[A] has weakened [D]!!</span>", \
|
||||
"<span class='userdanger'>[A] has weakened [D]!</span>")
|
||||
D.apply_effect(4, WEAKEN, armor_block)
|
||||
D.visible_message("<span class='danger'>[A] has knocked [D] down!!</span>", \
|
||||
"<span class='userdanger'>[A] has knocked [D] down!</span>")
|
||||
D.apply_effect(40, KNOCKDOWN, armor_block)
|
||||
D.forcesay(GLOB.hit_appends)
|
||||
else if(D.lying)
|
||||
D.forcesay(GLOB.hit_appends)
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
if((D.stat != DEAD) && prob(knockout_prob))
|
||||
D.visible_message("<span class='danger'>[A] has knocked [D] out with a haymaker!</span>", \
|
||||
"<span class='userdanger'>[A] has knocked [D] out with a haymaker!</span>")
|
||||
D.apply_effect(10,WEAKEN,armor_block)
|
||||
D.SetSleeping(5)
|
||||
D.apply_effect(200,KNOCKDOWN,armor_block)
|
||||
D.SetSleeping(100)
|
||||
D.forcesay(GLOB.hit_appends)
|
||||
add_logs(A, D, "knocked out (boxing) ")
|
||||
else if(D.lying)
|
||||
|
||||
@@ -35,17 +35,17 @@
|
||||
return 0
|
||||
|
||||
/datum/martial_art/cqc/proc/Slam(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
if(!D.stat || !D.weakened)
|
||||
if(!D.stat || !D.knockdown)
|
||||
D.visible_message("<span class='warning'>[A] slams [D] into the ground!</span>", \
|
||||
"<span class='userdanger'>[A] slams you into the ground!</span>")
|
||||
playsound(get_turf(A), 'sound/weapons/slam.ogg', 50, 1, -1)
|
||||
D.apply_damage(10, BRUTE)
|
||||
D.Weaken(6)
|
||||
D.Knockdown(120)
|
||||
add_logs(A, D, "cqc slammed")
|
||||
return 1
|
||||
|
||||
/datum/martial_art/cqc/proc/Kick(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
if(!D.stat || !D.weakened)
|
||||
if(!D.stat || !D.knockdown)
|
||||
D.visible_message("<span class='warning'>[A] kicks [D] back!</span>", \
|
||||
"<span class='userdanger'>[A] kicks you back!</span>")
|
||||
playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1)
|
||||
@@ -53,11 +53,11 @@
|
||||
D.throw_at(throw_target, 1, 14, A)
|
||||
D.apply_damage(10, BRUTE)
|
||||
add_logs(A, D, "cqc kicked")
|
||||
if(D.weakened && !D.stat)
|
||||
if(D.knockdown && !D.stat)
|
||||
D.visible_message("<span class='warning'>[A] kicks [D]'s head, knocking them out!</span>", \
|
||||
"<span class='userdanger'>[A] kicks your head, knocking you out!</span>")
|
||||
playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1)
|
||||
D.SetSleeping(15)
|
||||
D.SetSleeping(300)
|
||||
D.adjustBrainLoss(25)
|
||||
return 1
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
D.visible_message("<span class='warning'>[A] locks [D] into a restraining position!</span>", \
|
||||
"<span class='userdanger'>[A] locks you into a restraining position!</span>")
|
||||
D.adjustStaminaLoss(20)
|
||||
D.Stun(5)
|
||||
D.Stun(100)
|
||||
restraining = 1
|
||||
addtimer(CALLBACK(src, .proc/drop_restraining), 50, TIMER_UNIQUE)
|
||||
return 1
|
||||
@@ -114,7 +114,7 @@
|
||||
A.do_attack_animation(D)
|
||||
var/picked_hit_type = pick("CQC'd", "Big Bossed")
|
||||
var/bonus_damage = 13
|
||||
if(D.weakened || D.resting || D.lying)
|
||||
if(D.knockdown || D.resting || D.lying)
|
||||
bonus_damage += 5
|
||||
picked_hit_type = "stomps on"
|
||||
D.apply_damage(bonus_damage, BRUTE)
|
||||
@@ -125,12 +125,12 @@
|
||||
D.visible_message("<span class='danger'>[A] [picked_hit_type] [D]!</span>", \
|
||||
"<span class='userdanger'>[A] [picked_hit_type] you!</span>")
|
||||
add_logs(A, D, "[picked_hit_type] with CQC")
|
||||
if(A.resting && !D.stat && !D.weakened)
|
||||
if(A.resting && !D.stat && !D.knockdown)
|
||||
D.visible_message("<span class='warning'>[A] leg sweeps [D]!", \
|
||||
"<span class='userdanger'>[A] leg sweeps you!</span>")
|
||||
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1)
|
||||
D.apply_damage(10, BRUTE)
|
||||
D.Weaken(3)
|
||||
D.Knockdown(60)
|
||||
add_logs(A, D, "cqc sweeped")
|
||||
return 1
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
if(check_streak(A,D))
|
||||
return 1
|
||||
if(prob(65))
|
||||
if(!D.stat || !D.weakened || !restraining)
|
||||
if(!D.stat || !D.knockdown || !restraining)
|
||||
I = D.get_active_held_item()
|
||||
D.visible_message("<span class='warning'>[A] strikes [D]'s jaw with their hand!</span>", \
|
||||
"<span class='userdanger'>[A] strikes your jaw, disorienting you!</span>")
|
||||
@@ -157,7 +157,7 @@
|
||||
if(restraining && A.pulling == D)
|
||||
D.visible_message("<span class='danger'>[A] puts [D] into a chokehold!</span>", \
|
||||
"<span class='userdanger'>[A] puts you into a chokehold!</span>")
|
||||
D.SetSleeping(20)
|
||||
D.SetSleeping(400)
|
||||
restraining = 0
|
||||
if(A.grab_state < GRAB_NECK)
|
||||
A.grab_state = GRAB_NECK
|
||||
@@ -173,8 +173,8 @@
|
||||
|
||||
to_chat(usr, "<b><i>You try to remember some of the basics of CQC.</i></b>")
|
||||
|
||||
to_chat(usr, "<span class='notice'>Slam</span>: Grab Harm. Slam opponent into the ground, weakens and knocks down.")
|
||||
to_chat(usr, "<span class='notice'>CQC Kick</span>: Harm Disarm Harm. Knocks opponent away. Knocks out stunned or weakened opponents.")
|
||||
to_chat(usr, "<span class='notice'>Slam</span>: Grab Harm. Slam opponent into the ground, knocking them down.")
|
||||
to_chat(usr, "<span class='notice'>CQC Kick</span>: Harm Disarm Harm. Knocks opponent away. Knocks out stunned or knocked down opponents.")
|
||||
to_chat(usr, "<span class='notice'>Restrain</span>: Grab Grab. Locks opponents into a restraining position, disarm to knock them out with a choke hold.")
|
||||
to_chat(usr, "<span class='notice'>Pressure</span>: Disarm Grab. Decent stamina damage.")
|
||||
to_chat(usr, "<span class='notice'>Consecutive CQC</span>: Disarm Disarm Harm. Mainly offensive move, huge damage and decent stamina damage.")
|
||||
|
||||
@@ -84,13 +84,13 @@
|
||||
return 0
|
||||
|
||||
/datum/martial_art/krav_maga/proc/leg_sweep(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
|
||||
if(D.stat || D.weakened)
|
||||
if(D.stat || D.knockdown)
|
||||
return 0
|
||||
D.visible_message("<span class='warning'>[A] leg sweeps [D]!</span>", \
|
||||
"<span class='userdanger'>[A] leg sweeps you!</span>")
|
||||
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1)
|
||||
D.apply_damage(5, BRUTE)
|
||||
D.Weaken(2)
|
||||
D.Knockdown(40)
|
||||
add_logs(A, D, "leg sweeped")
|
||||
return 1
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
add_logs(A, D, "punched")
|
||||
var/picked_hit_type = pick("punches", "kicks")
|
||||
var/bonus_damage = 10
|
||||
if(D.weakened || D.resting || D.lying)
|
||||
if(D.knockdown || D.resting || D.lying)
|
||||
bonus_damage += 5
|
||||
picked_hit_type = "stomps on"
|
||||
D.apply_damage(bonus_damage, BRUTE)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
return 0
|
||||
|
||||
/datum/martial_art/the_sleeping_carp/proc/wristWrench(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
if(!D.stat && !D.stunned && !D.weakened)
|
||||
if(!D.stat && !D.stun && !D.knockdown)
|
||||
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
|
||||
D.visible_message("<span class='warning'>[A] grabs [D]'s wrist and wrenches it sideways!</span>", \
|
||||
"<span class='userdanger'>[A] grabs your wrist and violently wrenches it to the side!</span>")
|
||||
@@ -43,51 +43,51 @@
|
||||
D.emote("scream")
|
||||
D.drop_item()
|
||||
D.apply_damage(5, BRUTE, pick("l_arm", "r_arm"))
|
||||
D.Stun(3)
|
||||
D.Stun(60)
|
||||
return 1
|
||||
add_logs(A, D, "wrist wrenched (Sleeping Carp)")
|
||||
return basic_hit(A,D)
|
||||
|
||||
/datum/martial_art/the_sleeping_carp/proc/backKick(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
if(A.dir == D.dir && !D.stat && !D.weakened)
|
||||
if(A.dir == D.dir && !D.stat && !D.knockdown)
|
||||
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
|
||||
D.visible_message("<span class='warning'>[A] kicks [D] in the back!</span>", \
|
||||
"<span class='userdanger'>[A] kicks you in the back, making you stumble and fall!</span>")
|
||||
step_to(D,get_step(D,D.dir),1)
|
||||
D.Weaken(4)
|
||||
D.Knockdown(80)
|
||||
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
|
||||
return 1
|
||||
add_logs(A, D, "back-kicked (Sleeping Carp)")
|
||||
return basic_hit(A,D)
|
||||
|
||||
/datum/martial_art/the_sleeping_carp/proc/kneeStomach(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
if(!D.stat && !D.weakened)
|
||||
if(!D.stat && !D.knockdown)
|
||||
A.do_attack_animation(D, ATTACK_EFFECT_KICK)
|
||||
D.visible_message("<span class='warning'>[A] knees [D] in the stomach!</span>", \
|
||||
"<span class='userdanger'>[A] winds you with a knee in the stomach!</span>")
|
||||
D.audible_message("<b>[D]</b> gags!")
|
||||
D.losebreath += 3
|
||||
D.Stun(2)
|
||||
D.Stun(40)
|
||||
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
|
||||
return 1
|
||||
add_logs(A, D, "stomach kneed (Sleeping Carp)")
|
||||
return basic_hit(A,D)
|
||||
|
||||
/datum/martial_art/the_sleeping_carp/proc/headKick(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
if(!D.stat && !D.weakened)
|
||||
if(!D.stat && !D.knockdown)
|
||||
A.do_attack_animation(D, ATTACK_EFFECT_KICK)
|
||||
D.visible_message("<span class='warning'>[A] kicks [D] in the head!</span>", \
|
||||
"<span class='userdanger'>[A] kicks you in the jaw!</span>")
|
||||
D.apply_damage(20, BRUTE, "head")
|
||||
D.drop_item()
|
||||
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
|
||||
D.Stun(4)
|
||||
D.Stun(80)
|
||||
return 1
|
||||
add_logs(A, D, "head kicked (Sleeping Carp)")
|
||||
return basic_hit(A,D)
|
||||
|
||||
/datum/martial_art/the_sleeping_carp/proc/elbowDrop(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
if(D.weakened || D.resting || D.stat)
|
||||
if(D.knockdown || D.resting || D.stat)
|
||||
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
|
||||
D.visible_message("<span class='warning'>[A] elbow drops [D]!</span>", \
|
||||
"<span class='userdanger'>[A] piledrives you with their elbow!</span>")
|
||||
@@ -130,7 +130,7 @@
|
||||
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, 1, -1)
|
||||
if(prob(D.getBruteLoss()) && !D.lying)
|
||||
D.visible_message("<span class='warning'>[D] stumbles and falls!</span>", "<span class='userdanger'>The blow sends you to the ground!</span>")
|
||||
D.Weaken(4)
|
||||
D.Knockdown(80)
|
||||
add_logs(A, D, "[atk_verb] (Sleeping Carp)")
|
||||
return 1
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
add_fingerprint(user)
|
||||
if((CLUMSY in user.disabilities) && prob(50))
|
||||
to_chat(user, "<span class ='warning'>You club yourself over the head with [src].</span>")
|
||||
user.Weaken(3)
|
||||
user.Knockdown(60)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.apply_damage(2*force, BRUTE, "head")
|
||||
@@ -230,13 +230,13 @@
|
||||
if(prob(10))
|
||||
H.visible_message("<span class='warning'>[H] collapses!</span>", \
|
||||
"<span class='userdanger'>Your legs give out!</span>")
|
||||
H.Weaken(4)
|
||||
H.Knockdown(80)
|
||||
if(H.staminaloss && !H.sleeping)
|
||||
var/total_health = (H.health - H.staminaloss)
|
||||
if(total_health <= HEALTH_THRESHOLD_CRIT && !H.stat)
|
||||
H.visible_message("<span class='warning'>[user] delivers a heavy hit to [H]'s head, knocking them out cold!</span>", \
|
||||
"<span class='userdanger'>[user] knocks you unconscious!</span>")
|
||||
H.SetSleeping(30)
|
||||
H.SetSleeping(600)
|
||||
H.adjustBrainLoss(25)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
D.forceMove(A.loc)
|
||||
D.setDir(get_dir(D, A))
|
||||
|
||||
D.Stun(4)
|
||||
D.Stun(80)
|
||||
A.visible_message("<span class = 'danger'><B>[A] starts spinning around with [D]!</B></span>")
|
||||
A.emote("scream")
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
if (T && isturf(T))
|
||||
if (!D.stat)
|
||||
D.emote("scream")
|
||||
D.throw_at(T, 10, 4, callback = CALLBACK(D, /mob/living/carbon/human/.Weaken, 2))
|
||||
D.throw_at(T, 10, 4, callback = CALLBACK(D, /mob/living/carbon/human/.Knockdown, 20))
|
||||
add_logs(A, D, "has thrown with wrestling")
|
||||
return 0
|
||||
|
||||
@@ -288,8 +288,7 @@
|
||||
playsound(A.loc, "swing_hit", 50, 1)
|
||||
if (!D.stat)
|
||||
D.emote("scream")
|
||||
D.weakened += 2
|
||||
D.stunned += 2
|
||||
D.Knockdown(40)
|
||||
|
||||
switch(rand(1,3))
|
||||
if (2)
|
||||
@@ -331,7 +330,7 @@
|
||||
A.visible_message("<span class = 'danger'><b>[A] headbutts [D]!</b></span>")
|
||||
D.adjustBruteLoss(rand(10,20))
|
||||
playsound(A.loc, "swing_hit", 50, 1)
|
||||
D.Paralyse(1)
|
||||
D.Unconscious(20)
|
||||
add_logs(A, D, "headbutted")
|
||||
|
||||
/datum/martial_art/wrestling/proc/kick(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
@@ -347,7 +346,7 @@
|
||||
|
||||
var/turf/T = get_edge_target_turf(A, get_dir(A, get_step_away(D, A)))
|
||||
if (T && isturf(T))
|
||||
D.Weaken(1)
|
||||
D.Knockdown(20)
|
||||
D.throw_at(T, 3, 2)
|
||||
add_logs(A, D, "roundhouse-kicked")
|
||||
|
||||
@@ -383,7 +382,7 @@
|
||||
if (falling == 1)
|
||||
A.visible_message("<span class = 'danger'><B>...and dives head-first into the ground, ouch!</b></span>")
|
||||
A.adjustBruteLoss(rand(10,20))
|
||||
A.Weaken(3)
|
||||
A.Knockdown(60)
|
||||
to_chat(A, "[D] is too far away!")
|
||||
return 0
|
||||
|
||||
@@ -412,8 +411,7 @@
|
||||
else
|
||||
D.adjustBruteLoss(rand(20,30))
|
||||
|
||||
D.Weaken(1)
|
||||
D.Stun(2)
|
||||
D.Knockdown(40)
|
||||
|
||||
A.pixel_y = 0
|
||||
|
||||
@@ -437,7 +435,7 @@
|
||||
A.start_pulling(D)
|
||||
D.visible_message("<span class='danger'>[A] gets [D] in a cinch!</span>", \
|
||||
"<span class='userdanger'>[A] gets [D] in a cinch!</span>")
|
||||
D.Stun(rand(3,5))
|
||||
D.Stun(rand(60,100))
|
||||
add_logs(A, D, "cinched")
|
||||
return 1
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ GLOBAL_LIST_EMPTY(mutations_list)
|
||||
/datum/mutation/human/hulk/on_acquiring(mob/living/carbon/human/owner)
|
||||
if(..())
|
||||
return
|
||||
var/status = CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH
|
||||
var/status = CANSTUN | CANKNOCKDOWN | CANUNCONSCIOUS | CANPUSH
|
||||
owner.status_flags &= ~status
|
||||
owner.update_body_parts()
|
||||
|
||||
@@ -142,7 +142,7 @@ GLOBAL_LIST_EMPTY(mutations_list)
|
||||
/datum/mutation/human/hulk/on_losing(mob/living/carbon/human/owner)
|
||||
if(..())
|
||||
return
|
||||
owner.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH
|
||||
owner.status_flags |= CANSTUN | CANKNOCKDOWN | CANUNCONSCIOUS | CANPUSH
|
||||
owner.update_body_parts()
|
||||
|
||||
/datum/mutation/human/hulk/say_mod(message)
|
||||
@@ -233,9 +233,9 @@ GLOBAL_LIST_EMPTY(mutations_list)
|
||||
text_gain_indication = "<span class='danger'>You get a headache.</span>"
|
||||
|
||||
/datum/mutation/human/epilepsy/on_life(mob/living/carbon/human/owner)
|
||||
if(prob(1) && !owner.paralysis)
|
||||
if(prob(1) && !owner.unconscious)
|
||||
owner.visible_message("<span class='danger'>[owner] starts having a seizure!</span>", "<span class='userdanger'>You have a seizure!</span>")
|
||||
owner.Paralyse(10)
|
||||
owner.Unconscious(200)
|
||||
owner.Jitter(1000)
|
||||
addtimer(CALLBACK(src, .proc/jitter_less, owner), 90)
|
||||
|
||||
@@ -269,7 +269,7 @@ GLOBAL_LIST_EMPTY(mutations_list)
|
||||
text_gain_indication = "<span class='danger'>You start coughing.</span>"
|
||||
|
||||
/datum/mutation/human/cough/on_life(mob/living/carbon/human/owner)
|
||||
if((prob(5) && owner.paralysis <= 1))
|
||||
if((prob(5) && owner.unconscious <= 1))
|
||||
owner.drop_item()
|
||||
owner.emote("cough")
|
||||
|
||||
@@ -317,8 +317,8 @@ GLOBAL_LIST_EMPTY(mutations_list)
|
||||
text_gain_indication = "<span class='danger'>You twitch.</span>"
|
||||
|
||||
/datum/mutation/human/tourettes/on_life(mob/living/carbon/human/owner)
|
||||
if((prob(10) && owner.paralysis <= 1))
|
||||
owner.Stun(10)
|
||||
if((prob(10) && owner.unconscious <= 1))
|
||||
owner.Stun(200)
|
||||
switch(rand(1, 3))
|
||||
if(1)
|
||||
owner.emote("twitch")
|
||||
|
||||
@@ -333,8 +333,7 @@
|
||||
|
||||
/datum/riding/human/force_dismount(mob/living/user)
|
||||
ridden.unbuckle_mob(user)
|
||||
user.Weaken(3)
|
||||
user.Stun(3)
|
||||
user.Knockdown(60)
|
||||
user.visible_message("<span class='warning'>[ridden] pushes [user] off of them!</span>")
|
||||
|
||||
/datum/riding/cyborg
|
||||
@@ -389,7 +388,7 @@
|
||||
M.Move(targetm)
|
||||
M.visible_message("<span class='warning'>[M] is thrown clear of [ridden]!</span>")
|
||||
M.throw_at(target, 14, 5, ridden)
|
||||
M.Weaken(3)
|
||||
M.Knockdown(60)
|
||||
|
||||
/datum/riding/proc/equip_buckle_inhands(mob/living/carbon/human/user, amount_required = 1)
|
||||
var/amount_equipped = 0
|
||||
|
||||
@@ -73,8 +73,8 @@
|
||||
add_logs(owner, null, "gained Vanguard stun immunity")
|
||||
owner.add_stun_absorption("vanguard", 200, 1, "'s yellow aura momentarily intensifies!", "Your ward absorbs the stun!", " radiating with a soft yellow light!")
|
||||
owner.visible_message("<span class='warning'>[owner] begins to faintly glow!</span>", "<span class='brass'>You will absorb all stuns for the next twenty seconds.</span>")
|
||||
owner.SetStunned(0, FALSE)
|
||||
owner.SetWeakened(0)
|
||||
owner.SetStun(0, FALSE)
|
||||
owner.SetKnockdown(0)
|
||||
progbar = new(owner, duration, owner)
|
||||
progbar.bar.color = list("#FAE48C", "#FAE48C", "#FAE48C", rgb(0,0,0))
|
||||
progbar.update(duration - world.time)
|
||||
@@ -96,13 +96,12 @@
|
||||
otheractiveabsorptions = TRUE
|
||||
if(!GLOB.ratvar_awakens && stuns_blocked && !otheractiveabsorptions)
|
||||
vanguard["end_time"] = 0 //so it doesn't absorb the stuns we're about to apply
|
||||
owner.Stun(stuns_blocked)
|
||||
owner.Weaken(stuns_blocked)
|
||||
owner.Knockdown(stuns_blocked)
|
||||
message_to_owner = "<span class='boldwarning'>The weight of the Vanguard's protection crashes down upon you!</span>"
|
||||
if(stuns_blocked >= 15)
|
||||
message_to_owner += "\n<span class='userdanger'>You faint from the exertion!</span>"
|
||||
stuns_blocked *= 2
|
||||
owner.Paralyse(stuns_blocked)
|
||||
owner.Unconscious(stuns_blocked)
|
||||
else
|
||||
stuns_blocked = 0 //so logging is correct in cases where there were stuns blocked but we didn't stun for other reasons
|
||||
owner.visible_message("<span class='warning'>[owner]'s glowing aura fades!</span>", message_to_owner)
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
if(iscarbon(owner) && !is_servant_of_ratvar(owner) && !owner.null_rod_check() && number_legs)
|
||||
if(force_damage || owner.m_intent != MOVE_INTENT_WALK)
|
||||
if(GLOB.ratvar_awakens)
|
||||
owner.Weaken(1)
|
||||
owner.Knockdown(20)
|
||||
if(iscultist(owner))
|
||||
owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, "l_leg")
|
||||
owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, "r_leg")
|
||||
@@ -138,7 +138,7 @@
|
||||
if(is_eligible_servant(owner))
|
||||
to_chat(owner, "<span class='sevtug[span_part]'>\"[text2ratvar("You are mine and his, now.")]\"</span>")
|
||||
add_servant_of_ratvar(owner)
|
||||
owner.Paralyse(5)
|
||||
owner.Unconscious(100)
|
||||
else
|
||||
if(prob(severity * 0.15))
|
||||
to_chat(owner, "<span class='sevtug[span_part]'>\"[text2ratvar(pick(mania_messages))]\"</span>")
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
/obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user)
|
||||
to_chat(user, "<span class='notice'>Energy rushes through us.[user.lying ? " We arise." : ""]</span>")
|
||||
user.SetSleeping(0)
|
||||
user.SetParalysis(0)
|
||||
user.SetStunned(0)
|
||||
user.SetWeakened(0)
|
||||
user.SetUnconscious(0)
|
||||
user.SetStun(0)
|
||||
user.SetKnockdown(0)
|
||||
user.reagents.add_reagent("changelingAdrenaline", 10)
|
||||
user.reagents.add_reagent("changelingAdrenaline2", 2) //For a really quick burst of speed
|
||||
user.adjustStaminaLoss(-75)
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
explosion(get_turf(user),0,0,2,0,silent=1)
|
||||
for(var/mob/living/carbon/human/H in range(2,user))
|
||||
to_chat(H, "<span class='userdanger'>You are blinded by a shower of blood!</span>")
|
||||
H.Stun(1)
|
||||
H.Stun(20)
|
||||
H.blur_eyes(20)
|
||||
H.adjust_eye_damage(5)
|
||||
H.confused += 3
|
||||
for(var/mob/living/silicon/S in range(2,user))
|
||||
to_chat(S, "<span class='userdanger'>Your sensors are disabled by a shower of blood!</span>")
|
||||
S.Weaken(3)
|
||||
S.Knockdown(60)
|
||||
var/turf = get_turf(user)
|
||||
user.gib()
|
||||
. = TRUE
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
if(issilicon(M))
|
||||
M << sound('sound/weapons/flash.ogg')
|
||||
M.Weaken(rand(5,10))
|
||||
M.Knockdown(rand(100,200))
|
||||
|
||||
for(var/obj/machinery/light/L in range(4, user))
|
||||
L.on = 1
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
to_chat(user, "<span class='notice'>Our muscles relax.</span>")
|
||||
if(stacks >= 10)
|
||||
to_chat(user, "<span class='danger'>We collapse in exhaustion.</span>")
|
||||
user.Weaken(3)
|
||||
user.Knockdown(60)
|
||||
user.emote("gasp")
|
||||
|
||||
INVOKE_ASYNC(src, .proc/muscle_loop, user)
|
||||
@@ -33,7 +33,7 @@
|
||||
if(user.stat != CONSCIOUS || user.staminaloss >= 90)
|
||||
active = !active
|
||||
to_chat(user, "<span class='notice'>Our muscles relax without the energy to strengthen them.</span>")
|
||||
user.Weaken(2)
|
||||
user.Knockdown(40)
|
||||
user.status_flags &= ~GOTTAGOFAST
|
||||
break
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
/obj/effect/clockwork/sigil/proc/sigil_effects(mob/living/L)
|
||||
|
||||
|
||||
//Sigil of Transgression: Stuns the first non-servant to walk on it and flashes all nearby non_servants. Nar-Sian cultists are damaged and knocked down for a longer stun
|
||||
//Sigil of Transgression: Stuns the first non-servant to walk on it and flashes all nearby non_servants. Nar-Sian cultists are damaged and knocked down for a longer time
|
||||
/obj/effect/clockwork/sigil/transgression
|
||||
name = "dull sigil"
|
||||
desc = "A dull, barely-visible golden sigil. It's as though light was carved into the ground."
|
||||
@@ -69,10 +69,10 @@
|
||||
if(iscultist(L))
|
||||
to_chat(L, "<span class='heavy_brass'>\"Watch your step, wretch.\"</span>")
|
||||
L.adjustBruteLoss(10)
|
||||
L.Weaken(7)
|
||||
L.Knockdown(140)
|
||||
L.visible_message("<span class='warning'>[src] appears around [L] in a burst of light!</span>", \
|
||||
"<span class='userdanger'>[target_flashed ? "An unseen force":"The glowing sigil around you"] holds you in place!</span>")
|
||||
L.Stun(5)
|
||||
L.Stun(100)
|
||||
new /obj/effect/temp_visual/ratvar/sigil/transgression(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
@@ -121,8 +121,7 @@
|
||||
if(is_eligible_servant(L))
|
||||
to_chat(L, "<span class='heavy_brass'>\"You belong to me now.\"</span>")
|
||||
add_servant_of_ratvar(L)
|
||||
L.Weaken(3) //Completely defenseless for about five seconds - mainly to give them time to read over the information they've just been presented with
|
||||
L.Stun(3)
|
||||
L.Knockdown(60) //Completely defenseless for about five seconds - mainly to give them time to read over the information they've just been presented with
|
||||
if(iscarbon(L))
|
||||
var/mob/living/carbon/C = L
|
||||
C.silent += 5
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
desc = "Allows you to communicate with other Servants."
|
||||
button_icon_state = "hierophant"
|
||||
background_icon_state = "bg_clock"
|
||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS
|
||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS
|
||||
buttontooltipstyle = "clockcult"
|
||||
var/title = "Servant"
|
||||
var/span_for_name = "heavy_brass"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//Judicial visor: Grants the ability to smite an area and stun the unfaithful nearby every thirty seconds.
|
||||
//Judicial visor: Grants the ability to smite an area and knocking down the unfaithful nearby every thirty seconds.
|
||||
/obj/item/clothing/glasses/judicial_visor
|
||||
name = "judicial visor"
|
||||
desc = "A strange purple-lensed visor. Looking at it inspires an odd sense of guilt."
|
||||
@@ -145,7 +145,7 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
//Judicial marker: Created by the judicial visor. After three seconds, stuns any non-servants nearby and damages Nar-Sian cultists.
|
||||
//Judicial marker: Created by the judicial visor. After three seconds, knocks down any non-Servants nearby and damages Nar-Sian cultists.
|
||||
/obj/effect/clockwork/judicial_marker
|
||||
name = "judicial marker"
|
||||
desc = "You get the feeling that you shouldn't be standing here."
|
||||
@@ -184,11 +184,11 @@
|
||||
if(!iscultist(L))
|
||||
L.visible_message("<span class='warning'>[L] is struck by a judicial explosion!</span>", \
|
||||
"<span class='userdanger'>[!issilicon(L) ? "An unseen force slams you into the ground!" : "ERROR: Motor servos disabled by external source!"]</span>")
|
||||
L.Weaken(8) //stun targets for 14-16 seconds
|
||||
L.Knockdown(160) //knocks down targets for 14-16 seconds
|
||||
else
|
||||
L.visible_message("<span class='warning'>[L] is struck by a judicial explosion!</span>", \
|
||||
"<span class='heavy_brass'>\"Keep an eye out, filth.\"</span>\n<span class='userdanger'>A burst of heat crushes you against the ground!</span>")
|
||||
L.Weaken(4) //stun for 6-8 seconds, but set cultist targets on fire
|
||||
L.Knockdown(80) //knocks down for 6-8 seconds, but set cultist targets on fire
|
||||
L.adjust_fire_stacks(2)
|
||||
L.IgniteMob()
|
||||
if(iscarbon(L))
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
if(is_servant_of_ratvar(user) || isobserver(user))
|
||||
to_chat(user, "<span class='brass'>Stabbing a human you are pulling or have grabbed with the spear will impale them, doing massive damage and stunning.</span>")
|
||||
if(!iscyborg(user))
|
||||
to_chat(user, "<span class='brass'>Throwing the spear will do massive damage, break the spear, and stun the target.</span>")
|
||||
to_chat(user, "<span class='brass'>Throwing the spear will do massive damage, break the spear, and knock down the target.</span>")
|
||||
|
||||
/obj/item/clockwork/ratvarian_spear/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
var/impaling = FALSE
|
||||
@@ -97,7 +97,7 @@
|
||||
attack_cooldown = world.time + initial(attack_cooldown) //can't attack until we're done impaling
|
||||
if(target)
|
||||
new /obj/effect/temp_visual/dir_setting/bloodsplatter(get_turf(target), get_dir(user, target))
|
||||
target.Stun(2) //brief stun
|
||||
target.Stun(80) //brief stun
|
||||
to_chat(user, "<span class='brass'>You prepare to remove your ratvarian spear from [target]...</span>")
|
||||
var/remove_verb = pick("pull", "yank", "drag")
|
||||
if(do_after(user, 10, 1, target))
|
||||
@@ -114,7 +114,7 @@
|
||||
step(target, get_dir(user, target))
|
||||
T = get_turf(target)
|
||||
B.forceMove(T)
|
||||
target.Weaken(2) //then weaken if we stayed next to them
|
||||
target.Knockdown(40) //then knockdown if we stayed next to them
|
||||
playsound(T, 'sound/weapons/thudswoosh.ogg', 50, 1)
|
||||
flash_color(target, flash_color="#911414", flash_time=8)
|
||||
else if(target) //it's a do_after, we gotta check again to make sure they didn't get deleted
|
||||
@@ -136,11 +136,9 @@
|
||||
else if(!..())
|
||||
if(!L.null_rod_check())
|
||||
if(issilicon(L) || iscultist(L))
|
||||
L.Stun(6)
|
||||
L.Weaken(6)
|
||||
L.Knockdown(100)
|
||||
else
|
||||
L.Stun(2)
|
||||
L.Weaken(2)
|
||||
L.Knockdown(40)
|
||||
break_spear(T)
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -124,8 +124,7 @@
|
||||
invoker.visible_message("<span class='warning'>The tendril, covered in blood, retracts from [invoker]'s head and back into the [slab.name]!</span>", \
|
||||
"<span class='userdanger'>Total agony overcomes you as the tendril is forced out early!</span>")
|
||||
invoker.notransform = FALSE
|
||||
invoker.Stun(5)
|
||||
invoker.Weaken(5)
|
||||
invoker.Knockdown(100)
|
||||
invoker.apply_damage(10, BRUTE, "head")
|
||||
slab.busy = null
|
||||
return FALSE
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
invocations = list("May heathens...", "...kneel under our force!")
|
||||
channel_time = 30
|
||||
primary_component = BELLIGERENT_EYE
|
||||
quickbind_desc = "Allows you to place a Judicial Marker to stun and damage a target location.<br><b>Click your slab to disable.</b>"
|
||||
quickbind_desc = "Allows you to place a Judicial Marker to knock down and damage non-Servants in an area.<br><b>Click your slab to disable.</b>"
|
||||
slab_icon = "judicial"
|
||||
ranged_type = /obj/effect/proc_holder/slab/judicial
|
||||
ranged_message = "<span class='neovgre_small'><i>You charge the clockwork slab with judicial force.</i>\n\
|
||||
|
||||
@@ -26,10 +26,9 @@
|
||||
|
||||
//Judicial Visor: Creates a judicial visor, which can smite an area.
|
||||
/datum/clockwork_scripture/create_object/judicial_visor
|
||||
descname = "Delayed Area Stun Glasses"
|
||||
descname = "Delayed Area Knockdown Glasses"
|
||||
name = "Judicial Visor"
|
||||
desc = "Forms a visor that, when worn, will grant the ability to smite an area, stunning, muting, and damaging non-Servants. \
|
||||
Cultists of Nar-Sie will be set on fire, though they will be stunned for half the time."
|
||||
desc = "Forms a visor that, when worn, will grant the ability to smite an area, knocking down, muting, and damaging non-Servants."
|
||||
invocations = list("Grant me the flames of Engine!")
|
||||
channel_time = 10
|
||||
consumed_components = list(BELLIGERENT_EYE = 1)
|
||||
@@ -42,14 +41,14 @@
|
||||
primary_component = BELLIGERENT_EYE
|
||||
sort_priority = 2
|
||||
quickbind = TRUE
|
||||
quickbind_desc = "Creates a Judicial Visor, which can create a Judicial Marker at an area, stunning, muting, and damaging non-Servants after a delay."
|
||||
quickbind_desc = "Creates a Judicial Visor, which can create a Judicial Marker at an area, knocking down, muting, and damaging non-Servants after a delay."
|
||||
|
||||
|
||||
//Vanguard: Provides twenty seconds of stun immunity. At the end of the twenty seconds, 25% of all stuns absorbed are applied to the invoker.
|
||||
/datum/clockwork_scripture/vanguard
|
||||
descname = "Self Stun Immunity"
|
||||
name = "Vanguard"
|
||||
desc = "Provides twenty seconds of stun immunity. At the end of the twenty seconds, the invoker is stunned for the equivalent of 25% of all stuns they absorbed. \
|
||||
desc = "Provides twenty seconds of stun immunity. At the end of the twenty seconds, the invoker is knocked down for the equivalent of 25% of all stuns they absorbed. \
|
||||
Excessive absorption will cause unconsciousness."
|
||||
invocations = list("Shield me...", "...from darkness!")
|
||||
channel_time = 30
|
||||
@@ -178,7 +177,7 @@
|
||||
/datum/clockwork_scripture/channeled/taunting_tirade
|
||||
descname = "Channeled, Mobile Confusion Trail"
|
||||
name = "Taunting Tirade"
|
||||
desc = "Allows movement for five seconds, leaving a confusing and weakening trail. Chanted every second for up to thirty seconds."
|
||||
desc = "Allows movement for five seconds, leaving a trail that confuses and knocks down. Chanted every second for up to thirty seconds."
|
||||
chant_invocations = list("Hostiles on my back!", "Enemies on my trail!", "Gonna try and shake my tail.", "Bogeys on my six!")
|
||||
chant_amount = 5
|
||||
chant_interval = 10
|
||||
@@ -188,7 +187,7 @@
|
||||
primary_component = GEIS_CAPACITOR
|
||||
sort_priority = 6
|
||||
quickbind = TRUE
|
||||
quickbind_desc = "Allows movement for five seconds, leaving a confusing and weakening trail.<br><b>Maximum 5 chants.</b>"
|
||||
quickbind_desc = "Allows movement for five seconds, leaving a trail that confuses and knocks down.<br><b>Maximum 5 chants.</b>"
|
||||
var/flee_time = 47 //allow fleeing for 5 seconds
|
||||
var/grace_period = 3 //very short grace period so you don't have to stop immediately
|
||||
var/datum/progressbar/progbar
|
||||
|
||||
@@ -251,7 +251,7 @@
|
||||
channel_time = 20
|
||||
consumed_components = list(REPLICANT_ALLOY = 2, HIEROPHANT_ANSIBLE = 1)
|
||||
whispered = TRUE
|
||||
usage_tip = "You can impale human targets with the spear by pulling them, then attacking. Throwing the spear at a mob will do massive damage and stun them, but break the spear."
|
||||
usage_tip = "You can impale human targets with the spear by pulling them, then attacking. Throwing the spear at a mob will do massive damage and knock them down, but break the spear."
|
||||
tier = SCRIPTURE_SCRIPT
|
||||
primary_component = REPLICANT_ALLOY
|
||||
sort_priority = 8
|
||||
@@ -275,7 +275,7 @@
|
||||
desc = "Allows you to summon a Ratvarian spear to fight enemies."
|
||||
button_icon_state = "ratvarian_spear"
|
||||
background_icon_state = "bg_clock"
|
||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS
|
||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS
|
||||
buttontooltipstyle = "clockcult"
|
||||
var/cooldown = 0
|
||||
var/base_cooldown = RATVARIAN_SPEAR_DURATION
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
for(var/m in buckled_mobs)
|
||||
var/mob/living/L = m
|
||||
if(L)
|
||||
L.Stun(1, 1, 1)
|
||||
L.Stun(20, 1, 1)
|
||||
if(iscarbon(L))
|
||||
var/mob/living/carbon/C = L
|
||||
C.silent += 4
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/obj/structure/destructible/clockwork/taunting_trail
|
||||
name = "strange smoke"
|
||||
desc = "A cloud of purple smoke."
|
||||
clockwork_desc = "A cloud of purple smoke that confuses and weakens non-Servants that enter it."
|
||||
clockwork_desc = "A cloud of purple smoke that confuses and knocks down non-Servants that enter it."
|
||||
gender = PLURAL
|
||||
max_integrity = 5
|
||||
obj_integrity = 5
|
||||
@@ -58,5 +58,5 @@
|
||||
L.confused = min(L.confused + 15, 50)
|
||||
L.dizziness = min(L.dizziness + 15, 50)
|
||||
if(L.confused >= 25)
|
||||
L.Weaken(Floor(L.confused * 0.04))
|
||||
L.Knockdown(Floor(L.confused * 0.8))
|
||||
take_damage(max_integrity)
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
return 0
|
||||
if(cult_mind.add_antag_datum(ANTAG_DATUM_CULT))
|
||||
if(stun)
|
||||
cult_mind.current.Paralyse(5)
|
||||
cult_mind.current.Unconscious(100)
|
||||
return 1
|
||||
|
||||
/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, silent, stun)
|
||||
@@ -167,7 +167,7 @@
|
||||
cult_datum.silent = silent
|
||||
cult_datum.on_removal()
|
||||
if(stun)
|
||||
cult_mind.current.Paralyse(5)
|
||||
cult_mind.current.Unconscious(100)
|
||||
return TRUE
|
||||
|
||||
/datum/game_mode/proc/update_cult_icons_added(datum/mind/cult_mind)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/datum/action/innate/cult
|
||||
background_icon_state = "bg_demon"
|
||||
buttontooltipstyle = "cult"
|
||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS
|
||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS
|
||||
|
||||
/datum/action/innate/cult/IsAvailable()
|
||||
if(!iscultist(owner))
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
/obj/item/weapon/melee/cultblade/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
if(!iscultist(user))
|
||||
user.Weaken(5)
|
||||
user.Knockdown(100)
|
||||
user.dropItemToGround(src, TRUE)
|
||||
user.visible_message("<span class='warning'>A powerful force shoves [user] away from [target]!</span>", \
|
||||
"<span class='cultlarge'>\"You shouldn't play with sharp things. You'll poke someone's eye out.\"</span>")
|
||||
@@ -69,7 +69,7 @@
|
||||
desc = "A strong bola, bound with dark magic. Throw it to trip and slow your victim."
|
||||
icon_state = "bola_cult"
|
||||
breakouttime = 45
|
||||
weaken = 1
|
||||
knockdown = 10
|
||||
|
||||
|
||||
/obj/item/clothing/head/culthood
|
||||
@@ -192,7 +192,7 @@
|
||||
to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>")
|
||||
user.dropItemToGround(src, TRUE)
|
||||
user.Dizzy(30)
|
||||
user.Weaken(5)
|
||||
user.Knockdown(100)
|
||||
else
|
||||
to_chat(user, "<span class='cultlarge'>\"Trying to use things you don't own is bad, you know.\"</span>")
|
||||
to_chat(user, "<span class='userdanger'>The armor squeezes at your body!</span>")
|
||||
@@ -244,7 +244,7 @@
|
||||
to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>")
|
||||
user.dropItemToGround(src, TRUE)
|
||||
user.Dizzy(30)
|
||||
user.Weaken(5)
|
||||
user.Knockdown(100)
|
||||
else
|
||||
to_chat(user, "<span class='cultlarge'>\"Trying to use things you don't own is bad, you know.\"</span>")
|
||||
to_chat(user, "<span class='userdanger'>The robes squeeze at your body!</span>")
|
||||
@@ -266,7 +266,7 @@
|
||||
to_chat(user, "<span class='cultlarge'>\"You want to be blind, do you?\"</span>")
|
||||
user.dropItemToGround(src, TRUE)
|
||||
user.Dizzy(30)
|
||||
user.Weaken(5)
|
||||
user.Knockdown(100)
|
||||
user.blind_eyes(30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/unholywater
|
||||
@@ -286,7 +286,7 @@
|
||||
/obj/item/device/shuttle_curse/attack_self(mob/user)
|
||||
if(!iscultist(user))
|
||||
user.dropItemToGround(src, TRUE)
|
||||
user.Weaken(5)
|
||||
user.Knockdown(100)
|
||||
to_chat(user, "<span class='warning'>A powerful force shoves you away from [src]!</span>")
|
||||
return
|
||||
if(curselimit > 1)
|
||||
|
||||
@@ -357,7 +357,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
L.visible_message("<span class='warning'>[L]'s eyes glow a defiant yellow!</span>", \
|
||||
"<span class='cultlarge'>\"Stop resisting. You <i>will</i> be mi-\"</span>\n\
|
||||
<span class='large_brass'>\"Give up and you will feel pain unlike anything you've ever felt!\"</span>")
|
||||
L.Weaken(4)
|
||||
L.Knockdown(80)
|
||||
else if(is_convertable)
|
||||
do_convert(L, invokers)
|
||||
else
|
||||
@@ -615,7 +615,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
for(var/M in invokers)
|
||||
var/mob/living/L = M
|
||||
to_chat(L, "<span class='userdanger'>You chant in unison and a colossal burst of energy knocks you backward!</span>")
|
||||
L.Weaken(2)
|
||||
L.Knockdown(40)
|
||||
qdel(src) //delete before pulsing because it's a delay reee
|
||||
empulse(E, 9*invokers.len, 12*invokers.len) // Scales now, from a single room to most of the station depending on # of chanters
|
||||
|
||||
@@ -671,7 +671,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
affecting.visible_message("<span class='warning'>[affecting] slowly relaxes, the glow around [affecting.p_them()] dimming.</span>", \
|
||||
"<span class='danger'>You are re-united with your physical form. [src] releases its hold over you.</span>")
|
||||
affecting.remove_atom_colour(ADMIN_COLOUR_PRIORITY, RUNE_COLOR_DARKRED)
|
||||
affecting.Weaken(3)
|
||||
affecting.Knockdown(60)
|
||||
break
|
||||
if(affecting.stat == UNCONSCIOUS)
|
||||
if(prob(1))
|
||||
|
||||
@@ -169,8 +169,7 @@
|
||||
target.visible_message("<span class='warning'>[target]'s holy weapon absorbs the talisman's light!</span>", \
|
||||
"<span class='userdanger'>Your holy weapon absorbs the blinding light!</span>")
|
||||
else
|
||||
target.Weaken(10)
|
||||
target.Stun(10)
|
||||
target.Knockdown(200)
|
||||
target.flash_act(1,1)
|
||||
if(issilicon(target))
|
||||
var/mob/living/silicon/S = target
|
||||
|
||||
@@ -31,8 +31,8 @@
|
||||
return 2.5 // Will take four hits with a normal toolbox to crit.
|
||||
if(BANE_HARVEST)
|
||||
if(istype(weapon,/obj/item/weapon/reagent_containers/food/snacks/grown/))
|
||||
src.visible_message("<span class='warning'>The spirits of the harvest aid in the exorcism.</span>", "<span class='notice'>The harvest spirits are harming you.</span>")
|
||||
src.Weaken(2)
|
||||
visible_message("<span class='warning'>The spirits of the harvest aid in the exorcism.</span>", "<span class='notice'>The harvest spirits are harming you.</span>")
|
||||
Knockdown(40)
|
||||
qdel(weapon)
|
||||
return 2
|
||||
return 1
|
||||
@@ -177,7 +177,7 @@
|
||||
if ("disarm")
|
||||
if (!lying && !ascended) //No stealing the arch devil's pitchfork.
|
||||
if (prob(5))
|
||||
Paralyse(2)
|
||||
Unconscious(40)
|
||||
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
add_logs(M, src, "pushed")
|
||||
visible_message("<span class='danger'>[M] has pushed down [src]!</span>", \
|
||||
|
||||
@@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(gang_outfit_pool, list(/obj/item/clothing/suit/jacket/leather,/
|
||||
var/mob/living/carbon/carbon_mob = gangster_mind.current
|
||||
carbon_mob.silent = max(carbon_mob.silent, 5)
|
||||
carbon_mob.flash_act(1, 1)
|
||||
gangster_mind.current.Stun(5)
|
||||
gangster_mind.current.Stun(100)
|
||||
if(G.is_deconvertible)
|
||||
to_chat(gangster_mind.current, "<FONT size=3 color=red><B>You are now a member of the [G.name] Gang!</B></FONT>")
|
||||
to_chat(gangster_mind.current, "<font color='red'>Help your bosses take over the station by claiming territory with <b>special spraycans</b> only they can provide. Simply spray on any unclaimed area of the station.</font>")
|
||||
@@ -241,7 +241,7 @@ GLOBAL_LIST_INIT(gang_outfit_pool, list(/obj/item/clothing/suit/jacket/leather,/
|
||||
message_admins("[ADMIN_LOOKUPFLW(gangster_mind.current)] has been borged while being a member of the [gang.name] Gang. They are no longer a gangster.")
|
||||
else
|
||||
if(!silent)
|
||||
gangster_mind.current.Paralyse(5)
|
||||
gangster_mind.current.Unconscious(100)
|
||||
gangster_mind.current.visible_message("<FONT size=3><B>[gangster_mind.current] looks like they've given up the life of crime!<B></font>")
|
||||
to_chat(gangster_mind.current, "<FONT size=3 color=red><B>You have been reformed! You are no longer a gangster!</B><BR>You try as hard as you can, but you can't seem to recall any of the identities of your former gangsters...</FONT>")
|
||||
gangster_mind.memory = ""
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
cooldown(G)
|
||||
if(2)
|
||||
new /obj/item/device/gangtool/soldier(M)
|
||||
M.Paralyse(5)
|
||||
M.Unconscious(100)
|
||||
cooldown(G)
|
||||
if(1)
|
||||
to_chat(user, "<span class='warning'>This mind is resistant to recruitment!</span>")
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
/obj/item/device/gangtool/proc/can_use(mob/living/carbon/human/user)
|
||||
if(!istype(user))
|
||||
return 0
|
||||
if(user.restrained() || user.lying || user.stat || user.stunned || user.weakened)
|
||||
if(user.restrained() || user.lying || user.stat || user.stun || user.knockdown)
|
||||
return 0
|
||||
if(!(src in user.contents))
|
||||
return 0
|
||||
|
||||
@@ -108,9 +108,9 @@
|
||||
return
|
||||
var/mob/living/carbon/human/M = loc
|
||||
M.adjustStaminaLoss(-75)
|
||||
M.SetParalysis(0)
|
||||
M.SetStunned(0)
|
||||
M.SetWeakened(0)
|
||||
M.SetUnconscious(0)
|
||||
M.SetStun(0)
|
||||
M.SetKnockdown(0)
|
||||
combat_cooldown = 0
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
@@ -414,8 +414,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
|
||||
user.lastattacked = L
|
||||
L.lastattacker = user
|
||||
|
||||
L.Stun(7)
|
||||
L.Weaken(7)
|
||||
L.Knockdown(140)
|
||||
L.apply_effect(STUTTER, 7)
|
||||
|
||||
L.visible_message("<span class='danger'>[user] has stunned [L] with [src]!</span>", \
|
||||
@@ -429,11 +428,11 @@ Congratulations! You are now trained for invasive xenobiology research!"}
|
||||
add_logs(user, L, "stunned")
|
||||
|
||||
/obj/item/weapon/abductor_baton/proc/SleepAttack(mob/living/L,mob/living/user)
|
||||
if(L.stunned || L.sleeping)
|
||||
if(L.stun || L.sleeping)
|
||||
L.visible_message("<span class='danger'>[user] has induced sleep in [L] with [src]!</span>", \
|
||||
"<span class='userdanger'>You suddenly feel very drowsy!</span>")
|
||||
playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1)
|
||||
L.Sleeping(60)
|
||||
L.Sleeping(1200)
|
||||
add_logs(user, L, "put to sleep")
|
||||
else
|
||||
L.drowsyness += 1
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
|
||||
|
||||
/obj/machinery/abductor/experiment/proc/SendBack(mob/living/carbon/human/H)
|
||||
H.Sleeping(8)
|
||||
H.Sleeping(160)
|
||||
H.uncuff()
|
||||
if(console && console.pad && console.pad.teleport_target)
|
||||
H.forceMove(console.pad.teleport_target)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
target.forceMove(teleport_target)
|
||||
new /obj/effect/temp_visual/dir_setting/ninja(get_turf(target), target.dir)
|
||||
to_chat(target, "<span class='warning'>The instability of the warp leaves you disoriented!</span>")
|
||||
target.Stun(3)
|
||||
target.Stun(60)
|
||||
|
||||
/obj/machinery/abductor/pad/proc/Retrieve(mob/living/target)
|
||||
flick("alien-pad", src)
|
||||
|
||||
@@ -500,14 +500,14 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10)
|
||||
return
|
||||
|
||||
if(M.has_brain_worms())
|
||||
to_chat(src, "<span class='warning'>You cannot paralyze someone who is already infested!</span>")
|
||||
to_chat(src, "<span class='warning'>You cannot stun someone who is already infested!</span>")
|
||||
return
|
||||
|
||||
layer = MOB_LAYER
|
||||
|
||||
to_chat(src, "<span class='warning'>You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread.</span>")
|
||||
to_chat(M, "<span class='userdanger'>You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing.</span>")
|
||||
M.Stun(3)
|
||||
M.Stun(60)
|
||||
|
||||
used_dominate = world.time
|
||||
|
||||
@@ -608,9 +608,9 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10)
|
||||
victim.setToxLoss(0)
|
||||
victim.setOxyLoss(0)
|
||||
victim.setCloneLoss(0)
|
||||
victim.SetParalysis(0)
|
||||
victim.SetStunned(0)
|
||||
victim.SetWeakened(0)
|
||||
victim.SetUnconscious(0)
|
||||
victim.SetStun(0)
|
||||
victim.SetKnockdown(0)
|
||||
victim.radiation = 0
|
||||
victim.heal_overall_damage(victim.getBruteLoss(), victim.getFireLoss())
|
||||
victim.reagents.clear_reagents()
|
||||
@@ -766,7 +766,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10)
|
||||
if("Deafness")
|
||||
victim.minimumDeafTicks(20)
|
||||
if("Stun")
|
||||
victim.Weaken(10)
|
||||
victim.Knockdown(200)
|
||||
|
||||
log_game("[src]/([src.ckey]) punished [victim]/([victim.ckey] with [punishment]")
|
||||
|
||||
|
||||
@@ -582,7 +582,7 @@
|
||||
playsound(loc,'sound/effects/snap.ogg',50, 1, -1)
|
||||
L.electrocute_act(0, src, 1, 1, 1)
|
||||
if(iscyborg(L))
|
||||
L.Weaken(5)
|
||||
L.Knockdown(100)
|
||||
qdel(src)
|
||||
..()
|
||||
|
||||
|
||||
@@ -269,7 +269,7 @@
|
||||
var/mob/living/carbon/carbon_mob = rev_mind.current
|
||||
carbon_mob.silent = max(carbon_mob.silent, 5)
|
||||
carbon_mob.flash_act(1, 1)
|
||||
rev_mind.current.Stun(5)
|
||||
rev_mind.current.Stun(100)
|
||||
to_chat(rev_mind.current, "<span class='danger'><FONT size = 3> You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!</FONT></span>")
|
||||
rev_mind.current.log_message("<font color='red'>Has been converted to the revolution!</font>", INDIVIDUAL_ATTACK_LOG)
|
||||
rev_mind.special_role = "Revolutionary"
|
||||
@@ -297,7 +297,7 @@
|
||||
message_admins("[ADMIN_LOOKUPFLW(rev_mind.current)] has been borged while being a [remove_head ? "leader" : " member"] of the revolution.")
|
||||
|
||||
else
|
||||
rev_mind.current.Paralyse(5)
|
||||
rev_mind.current.Unconscious(100)
|
||||
rev_mind.current.visible_message("[rev_mind.current] looks like they just remembered their real allegiance!",\
|
||||
"<span class='danger'><FONT size = 3>You have been brainwashed! You are no longer a revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you...</FONT></span>")
|
||||
update_rev_icons_removed(rev_mind)
|
||||
|
||||
@@ -467,7 +467,7 @@
|
||||
GiveHint(target)
|
||||
else if(is_pointed(I))
|
||||
to_chat(target, "<span class='userdanger'>You feel a stabbing pain in [parse_zone(user.zone_selected)]!</span>")
|
||||
target.Weaken(2)
|
||||
target.Knockdown(40)
|
||||
GiveHint(target)
|
||||
else if(istype(I,/obj/item/weapon/bikehorn))
|
||||
to_chat(target, "<span class='userdanger'>HONK</span>")
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
/obj/item/device/soulstone/attack(mob/living/carbon/human/M, mob/user)
|
||||
if(!iscultist(user) && !iswizard(user) && !usability)
|
||||
user.Paralyse(5)
|
||||
user.Unconscious(100)
|
||||
to_chat(user, "<span class='userdanger'>Your body is wracked with debilitating pain!</span>")
|
||||
return
|
||||
if(spent)
|
||||
@@ -67,7 +67,7 @@
|
||||
if(!in_range(src, user))
|
||||
return
|
||||
if(!iscultist(user) && !iswizard(user) && !usability)
|
||||
user.Paralyse(5)
|
||||
user.Unconscious(100)
|
||||
to_chat(user, "<span class='userdanger'>Your body is wracked with debilitating pain!</span>")
|
||||
return
|
||||
release_shades(user)
|
||||
|
||||
@@ -841,7 +841,7 @@
|
||||
/obj/item/weapon/spellbook/oneuse/forcewall/recoil(mob/user)
|
||||
..()
|
||||
to_chat(user,"<span class='warning'>You suddenly feel very solid!</span>")
|
||||
user.Stun(2)
|
||||
user.Stun(40)
|
||||
user.petrify(30)
|
||||
|
||||
/obj/item/weapon/spellbook/oneuse/knock
|
||||
@@ -853,7 +853,7 @@
|
||||
/obj/item/weapon/spellbook/oneuse/knock/recoil(mob/user)
|
||||
..()
|
||||
to_chat(user,"<span class='warning'>You're knocked down!</span>")
|
||||
user.Weaken(20)
|
||||
user.Knockdown(40)
|
||||
|
||||
/obj/item/weapon/spellbook/oneuse/barnyard
|
||||
spell = /obj/effect/proc_holder/spell/targeted/barnyardcurse
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
//Get the clone body ready
|
||||
maim_clone(H)
|
||||
check_brine() // put in chemicals NOW to stop death via cardiac arrest
|
||||
H.Paralyse(4)
|
||||
H.Unconscious(80)
|
||||
|
||||
clonemind.transfer_to(H)
|
||||
|
||||
@@ -243,7 +243,7 @@
|
||||
go_out()
|
||||
|
||||
else if(mob_occupant.cloneloss > (100 - heal_level))
|
||||
mob_occupant.Paralyse(4)
|
||||
mob_occupant.Unconscious(80)
|
||||
|
||||
//Slowly get that clone healed and finished.
|
||||
mob_occupant.adjustCloneLoss(-((speed_coeff/2) * config.damage_multiplier))
|
||||
|
||||
@@ -518,15 +518,15 @@
|
||||
to_chat(M, "<span class='userdanger'>You suddenly feel slightly nauseous.</span>" )
|
||||
if(severity == 2)
|
||||
to_chat(usr, "<span class='userdanger'>You suddenly feel extremely nauseous and hunch over until it passes.</span>")
|
||||
M.Stun(3)
|
||||
M.Stun(60)
|
||||
if(severity >= 3) //you didn't pray hard enough
|
||||
to_chat(M, "<span class='warning'>An overpowering wave of nausea consumes over you. You hunch over, your stomach's contents preparing for a spectacular exit.</span>")
|
||||
M.Stun(5)
|
||||
M.Stun(100)
|
||||
sleep(30)
|
||||
M.vomit(10, distance = 5)
|
||||
if(ORION_TRAIL_FLUX)
|
||||
if(prob(75))
|
||||
M.Weaken(3)
|
||||
M.Knockdown(60)
|
||||
say("A sudden gust of powerful wind slams [M] into the floor!")
|
||||
M.take_bodypart_damage(25)
|
||||
playsound(loc, 'sound/weapons/genhit.ogg', 100, 1)
|
||||
@@ -618,7 +618,7 @@
|
||||
if(emagged) //has to be here because otherwise it doesn't work
|
||||
playsound(loc, 'sound/effects/supermatter.ogg', 100, 1)
|
||||
say("A miniature black hole suddenly appears in front of [src], devouring [usr] alive!")
|
||||
usr.Stun(10) //you can't run :^)
|
||||
usr.Stun(200) //you can't run :^)
|
||||
var/S = new /obj/singularity/academy(usr.loc)
|
||||
emagged = 0 //immediately removes emagged status so people can't kill themselves by sprinting up and interacting
|
||||
sleep(50)
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
teleporter.handle_prisoner(id, temporary_record)
|
||||
playsound(loc, 'sound/weapons/emitter.ogg', 50, 1)
|
||||
prisoner.forceMove(get_turf(beacon))
|
||||
prisoner.Weaken(2) // small travel dizziness
|
||||
prisoner.Knockdown(40) // small travel dizziness
|
||||
to_chat(prisoner, "<span class='warning'>The teleportation makes you a little dizzy.</span>")
|
||||
new /obj/effect/particle_effect/sparks(prisoner.loc)
|
||||
playsound(src.loc, "sparks", 50, 1)
|
||||
|
||||
@@ -259,7 +259,7 @@
|
||||
addtimer(CALLBACK(src, .proc/reset_hallucinate_shock_animation, user, shock_image, electrocution_skeleton_anim), 40)
|
||||
user.playsound_local(get_turf(src), "sparks", 100, 1)
|
||||
user.staminaloss += 50
|
||||
user.Stun(2)
|
||||
user.Stun(40)
|
||||
user.jitteriness += 1000
|
||||
user.do_jitter_animation(user.jitteriness)
|
||||
addtimer(CALLBACK(src, .proc/hallucinate_shock_drop, user), 20)
|
||||
@@ -271,8 +271,7 @@
|
||||
|
||||
/obj/machinery/door/airlock/proc/hallucinate_shock_drop(mob/living/user)
|
||||
user.jitteriness = max(user.jitteriness - 990, 10) //Still jittery, but vastly less
|
||||
user.Stun(3)
|
||||
user.Weaken(3)
|
||||
user.Knockdown(60)
|
||||
|
||||
/obj/machinery/door/airlock/proc/isElectrified()
|
||||
if(src.secondsElectrified != NOT_ELECTRIFIED)
|
||||
@@ -746,8 +745,7 @@
|
||||
if(!istype(H.head, /obj/item/clothing/head/helmet))
|
||||
H.visible_message("<span class='danger'>[user] headbutts the airlock.</span>", \
|
||||
"<span class='userdanger'>You headbutt the airlock!</span>")
|
||||
H.Stun(5)
|
||||
H.Weaken(5)
|
||||
H.Knockdown(100)
|
||||
H.apply_damage(10, BRUTE, "head")
|
||||
else
|
||||
visible_message("<span class='danger'>[user] headbutts the airlock. Good thing [user.p_theyre()] wearing a helmet.</span>")
|
||||
@@ -1214,7 +1212,7 @@
|
||||
if(!do_after(user, 150*I.toolspeed, target = src))
|
||||
to_chat(user, "<span class='warning'>You slip and [charge] detonates!</span>")
|
||||
charge.ex_act(1)
|
||||
user.Weaken(3)
|
||||
user.Knockdown(60)
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] removes [charge] from [src].</span>", \
|
||||
"<span class='notice'>You gently pry out [charge] from [src] and unhook its wires.</span>")
|
||||
@@ -1302,7 +1300,7 @@
|
||||
detonated = 1
|
||||
charge = null
|
||||
for(var/mob/living/carbon/human/H in orange(2,src))
|
||||
H.Paralyse(8)
|
||||
H.Unconscious(160)
|
||||
H.adjust_fire_stacks(20)
|
||||
H.IgniteMob() //Guaranteed knockout and ignition for nearby people
|
||||
H.apply_damage(40, BRUTE, "chest")
|
||||
|
||||
@@ -391,7 +391,7 @@
|
||||
throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(M, src)))
|
||||
M << pick(sound('sound/hallucinations/turn_around1.ogg',0,1,50), sound('sound/hallucinations/turn_around2.ogg',0,1,50))
|
||||
flash_color(M, flash_color="#960000", flash_time=20)
|
||||
M.Weaken(2)
|
||||
M.Knockdown(40)
|
||||
M.throw_at(throwtarget, 5, 1,src)
|
||||
return 0
|
||||
|
||||
|
||||
@@ -294,10 +294,10 @@
|
||||
else if(ishuman(L)) //For humans
|
||||
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
|
||||
L.emote("scream")
|
||||
L.Weaken(5)
|
||||
L.Knockdown(100)
|
||||
else if(ismonkey(L)) //For monkeys
|
||||
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
|
||||
L.Weaken(5)
|
||||
L.Knockdown(100)
|
||||
else //for simple_animals & borgs
|
||||
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
|
||||
var/turf/location = get_turf(src)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/id = null
|
||||
var/range = 2 //this is roughly the size of brig cell
|
||||
var/last_flash = 0 //Don't want it getting spammed like regular flashes
|
||||
var/strength = 5 //How weakened targets are when flashed.
|
||||
var/strength = 100 //How knocked down targets are when flashed.
|
||||
var/base_state = "mflash"
|
||||
obj_integrity = 250
|
||||
max_integrity = 250
|
||||
@@ -20,7 +20,7 @@
|
||||
name = "portable flasher"
|
||||
desc = "A portable flashing device. Wrench to activate and deactivate. Cannot detect slow movements."
|
||||
icon_state = "pflash1-p"
|
||||
strength = 4
|
||||
strength = 80
|
||||
anchored = 0
|
||||
base_state = "pflash"
|
||||
density = 1
|
||||
@@ -119,7 +119,7 @@
|
||||
continue
|
||||
|
||||
if(L.flash_act(affect_silicon = 1))
|
||||
L.Weaken(strength)
|
||||
L.Knockdown(strength)
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
eat(I, sound=FALSE)
|
||||
|
||||
// Instantly lie down, also go unconscious from the pain, before you die.
|
||||
L.Paralyse(5)
|
||||
L.Unconscious(100)
|
||||
|
||||
// For admin fun, var edit emagged to 2.
|
||||
if(gib || emagged == 2)
|
||||
|
||||
@@ -229,10 +229,9 @@
|
||||
return
|
||||
if(M.health > 0)
|
||||
M.adjustOxyLoss(-1)
|
||||
M.updatehealth()
|
||||
M.AdjustStunned(-4)
|
||||
M.AdjustWeakened(-4)
|
||||
M.AdjustStunned(-4)
|
||||
M.AdjustStun(-80)
|
||||
M.AdjustKnockdown(-80)
|
||||
M.AdjustUnconscious(-80)
|
||||
if(M.reagents.get_reagent_amount("epinephrine") < 5)
|
||||
M.reagents.add_reagent("epinephrine", 5)
|
||||
chassis.use_power(energy_drain)
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
target.take_bodypart_damage(drill_damage)
|
||||
|
||||
if(target)
|
||||
target.Paralyse(10)
|
||||
target.Unconscious(200)
|
||||
target.updatehealth()
|
||||
|
||||
|
||||
|
||||
@@ -178,10 +178,10 @@
|
||||
M.SetSleeping(0)
|
||||
M.stuttering += 20
|
||||
M.adjustEarDamage(0, 30)
|
||||
M.Weaken(3)
|
||||
M.Knockdown(60)
|
||||
if(prob(30))
|
||||
M.Stun(10)
|
||||
M.Paralyse(4)
|
||||
M.Stun(200)
|
||||
M.Unconscious(80)
|
||||
else
|
||||
M.Jitter(500)
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
|
||||
/datum/action/innate/mecha
|
||||
check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_CONSCIOUS
|
||||
check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUN | AB_CHECK_CONSCIOUS
|
||||
var/obj/mecha/chassis
|
||||
|
||||
/datum/action/innate/mecha/Grant(mob/living/L, obj/mecha/M)
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
|
||||
/obj/effect/anomaly/grav/proc/gravShock(mob/A)
|
||||
if(boing && isliving(A) && !A.stat)
|
||||
A.Weaken(2)
|
||||
A.Knockdown(40)
|
||||
var/atom/target = get_edge_target_turf(A, get_dir(src, get_step_away(A, src)))
|
||||
A.throw_at(target, 5, 1)
|
||||
boing = 0
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
/obj/effect/particle_effect/foam/Crossed(atom/movable/AM)
|
||||
if(istype(AM, /mob/living/carbon))
|
||||
var/mob/living/carbon/M = AM
|
||||
M.slip(5, 2, src)
|
||||
M.slip(5, src)
|
||||
|
||||
/obj/effect/particle_effect/foam/metal/Crossed(atom/movable/AM)
|
||||
return
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
for(var/mob/M in viewers(1, location))
|
||||
if (prob (50 * amount))
|
||||
to_chat(M, "<span class='danger'>The explosion knocks you down.</span>")
|
||||
M.Weaken(rand(1,5))
|
||||
M.Knockdown(rand(20,100))
|
||||
return
|
||||
else
|
||||
dyn_explosion(location, amount, flashing_factor)
|
||||
@@ -207,7 +207,7 @@
|
||||
/obj/effect/particle_effect/smoke/sleeping/smoke_mob(mob/living/carbon/M)
|
||||
if(..())
|
||||
M.drop_item()
|
||||
M.Sleeping(max(M.sleeping,10))
|
||||
M.Sleeping(max(M.sleeping,200))
|
||||
M.emote("cough")
|
||||
return 1
|
||||
|
||||
|
||||
@@ -44,11 +44,11 @@
|
||||
|
||||
/obj/effect/mine/stun
|
||||
name = "stun mine"
|
||||
var/stun_time = 8
|
||||
var/stun_time = 80
|
||||
|
||||
/obj/effect/mine/stun/mineEffect(mob/victim)
|
||||
if(isliving(victim))
|
||||
victim.Weaken(stun_time)
|
||||
victim.Knockdown(stun_time)
|
||||
|
||||
/obj/effect/mine/kickmine
|
||||
name = "kick mine"
|
||||
|
||||
@@ -426,7 +426,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
|
||||
//This proc is executed when someone clicks the on-screen UI button.
|
||||
//The default action is attack_self().
|
||||
//Checks before we get to here are: mob is alive, mob is not restrained, paralyzed, asleep, resting, laying, item is on the mob.
|
||||
//Checks before we get to here are: mob is alive, mob is not restrained, stunned, asleep, resting, laying, item is on the mob.
|
||||
/obj/item/proc/ui_action_click(mob/user, actiontype)
|
||||
attack_self(user)
|
||||
|
||||
@@ -501,8 +501,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
if(M.drop_item())
|
||||
to_chat(M, "<span class='danger'>You drop what you're holding and clutch at your eyes!</span>")
|
||||
M.adjust_blurriness(10)
|
||||
M.Paralyse(1)
|
||||
M.Weaken(2)
|
||||
M.Unconscious(20)
|
||||
M.Knockdown(40)
|
||||
if (prob(M.eye_damage - 10 + 1))
|
||||
if(M.become_blind())
|
||||
to_chat(M, "<span class='danger'>You go blind!</span>")
|
||||
|
||||
@@ -634,7 +634,7 @@
|
||||
C.blind_eyes(1)
|
||||
if(C.get_eye_protection() <= 0) // no eye protection? ARGH IT BURNS.
|
||||
C.confused = max(C.confused, 3)
|
||||
C.Weaken(3)
|
||||
C.Knockdown(60)
|
||||
if(ishuman(C) && actually_paints)
|
||||
var/mob/living/carbon/human/H = C
|
||||
H.lip_style = "spray_face"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/obj/item/device/pda/clown/Crossed(AM as mob|obj)
|
||||
if (istype(AM, /mob/living/carbon))
|
||||
var/mob/living/carbon/M = AM
|
||||
if(M.slip(0, 6, src, NO_SLIP_WHEN_WALKING))
|
||||
if(M.slip(6, src, NO_SLIP_WHEN_WALKING))
|
||||
if (ishuman(M) && (M.real_name != src.owner))
|
||||
if (istype(src.cartridge, /obj/item/weapon/cartridge/virus/clown))
|
||||
var/obj/item/weapon/cartridge/virus/cart = src.cartridge
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
//20% chance to actually hit the sensors
|
||||
if(prob(effectchance * diode.rating))
|
||||
S.flash_act(affect_silicon = 1)
|
||||
S.Weaken(rand(5,10))
|
||||
S.Knockdown(rand(100,200))
|
||||
to_chat(S, "<span class='danger'>Your sensors were overloaded by a laser!</span>")
|
||||
outmsg = "<span class='notice'>You overload [S] by shining [src] at their sensors.</span>"
|
||||
add_logs(user, S, "shone in the sensors", src)
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
s.set_up(3, 1, M)
|
||||
s.start()
|
||||
|
||||
M.Weaken(5)
|
||||
M.Knockdown(100)
|
||||
|
||||
if(master)
|
||||
master.receive_signal()
|
||||
|
||||
@@ -42,9 +42,7 @@ effective or pretty fucking useless.
|
||||
for(var/mob/living/carbon/human/M in urange(10, user, 1))
|
||||
if(prob(50))
|
||||
|
||||
M.Weaken(rand(10,20))
|
||||
if(prob(25))
|
||||
M.Stun(rand(5,10))
|
||||
M.Knockdown(rand(200,400))
|
||||
to_chat(M, "<span class='userdanger'>You feel a tremendous, paralyzing wave flood your mind.</span>")
|
||||
|
||||
else
|
||||
@@ -90,7 +88,7 @@ effective or pretty fucking useless.
|
||||
spawn((wavelength+(intensity*4))*5)
|
||||
if(M)
|
||||
if(intensity >= 5)
|
||||
M.apply_effect(round(intensity/1.5), PARALYZE)
|
||||
M.apply_effect(round(intensity/0.075), UNCONSCIOUS)
|
||||
M.rad_act(intensity*10)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The radioactive microlaser is still recharging.</span>")
|
||||
@@ -241,4 +239,3 @@ effective or pretty fucking useless.
|
||||
GLOB.active_jammers -= src
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -17,10 +17,9 @@
|
||||
to_chat(H, "<span class='notice'>Your morale is increased by [user]'s banner!</span>")
|
||||
H.adjustBruteLoss(-15)
|
||||
H.adjustFireLoss(-15)
|
||||
H.AdjustStunned(-2)
|
||||
H.AdjustWeakened(-2)
|
||||
H.AdjustParalysis(-2)
|
||||
|
||||
H.AdjustStun(-40)
|
||||
H.AdjustKnockdown(-40)
|
||||
H.AdjustUnconscious(-40)
|
||||
|
||||
/obj/item/weapon/banner/red
|
||||
name = "red banner"
|
||||
|
||||
@@ -22,9 +22,8 @@
|
||||
return
|
||||
|
||||
user.do_attack_animation(M)
|
||||
M.Weaken(5)
|
||||
M.Knockdown(100)
|
||||
M.apply_effect(STUTTER, 5)
|
||||
M.Stun(5)
|
||||
|
||||
M.visible_message("<span class='danger'>[user] has prodded [M] with [src]!</span>", \
|
||||
"<span class='userdanger'>[user] has prodded you with [src]!</span>")
|
||||
@@ -330,7 +329,7 @@
|
||||
C.stuttering += 10
|
||||
C.Jitter(10)
|
||||
if(2)
|
||||
C.Weaken(2)
|
||||
C.Knockdown(40)
|
||||
C.confused += 10
|
||||
C.stuttering += 15
|
||||
C.Jitter(25)
|
||||
@@ -506,7 +505,7 @@
|
||||
//Peacekeeper Cyborg Projectile Dampenening Field
|
||||
/obj/item/borg/projectile_dampen
|
||||
name = "Hyperkinetic Dampening projector"
|
||||
desc = "A device that projects a dampening field that weakens kinetic energy above a certain threshold. <span class='boldnotice'>Projects a field that drains power per second \
|
||||
desc = "A device that projects a dampening field that weakenss kinetic energy above a certain threshold. <span class='boldnotice'>Projects a field that drains power per second \
|
||||
while active, that will weaken and slow damaging projectiles inside its field.</span> Still being a prototype, it tends to induce a charge on ungrounded metallic surfaces."
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "shield"
|
||||
|
||||
@@ -210,4 +210,4 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
|
||||
"<span class='userdanger'>You slide on the broken glass!</span>")
|
||||
|
||||
cooldown = world.time
|
||||
H.Weaken(3)
|
||||
H.Knockdown(60)
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
qdel(captured)
|
||||
qdel(src)
|
||||
else
|
||||
captured.Paralyse(4)
|
||||
captured.Unconscious(80)
|
||||
if(captured.loc != src)
|
||||
captured.loc = src
|
||||
update_icon()
|
||||
|
||||
@@ -777,12 +777,13 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
if(prob(5))//small chance for the vape to break and deal damage if it's emagged
|
||||
playsound(get_turf(src), 'sound/effects/pop_expl.ogg', 50, 0)
|
||||
M.apply_damage(20, BURN, "head")
|
||||
M.Weaken(15, 1, 0)
|
||||
qdel(src)
|
||||
M.Knockdown(300, 1, 0)
|
||||
var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread
|
||||
sp.set_up(5, 1, src)
|
||||
sp.start()
|
||||
to_chat(M, "<span class='userdanger'>The [name] suddenly explodes in your mouth!</span>")
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
if(reagents && reagents.total_volume)
|
||||
hand_reagents()
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
/obj/item/weapon/soap/Crossed(AM as mob|obj)
|
||||
if (istype(AM, /mob/living/carbon))
|
||||
var/mob/living/carbon/M = AM
|
||||
M.slip(4, 2, src)
|
||||
M.slip(4, src)
|
||||
|
||||
/obj/item/weapon/soap/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity || !check_allowed_items(target))
|
||||
|
||||
@@ -400,7 +400,7 @@
|
||||
M.visible_message("<span class='danger'>[user] has touched [M] with [src]!</span>", \
|
||||
"<span class='userdanger'>[user] has touched [M] with [src]!</span>")
|
||||
M.adjustStaminaLoss(50)
|
||||
M.Weaken(5)
|
||||
M.Knockdown(100)
|
||||
M.updatehealth() //forces health update before next life tick
|
||||
playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
|
||||
M.emote("gasp")
|
||||
@@ -455,7 +455,7 @@
|
||||
H.set_heartattack(TRUE)
|
||||
H.apply_damage(50, BURN, "chest")
|
||||
add_logs(user, H, "overloaded the heart of", defib)
|
||||
H.Weaken(5)
|
||||
H.Knockdown(100)
|
||||
H.Jitter(100)
|
||||
if(req_defib)
|
||||
defib.deductcharge(revivecost)
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
return 0
|
||||
to_chat(H, "<span class='userdanger'>You step on the D4!</span>")
|
||||
H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg")))
|
||||
H.Weaken(3)
|
||||
H.Knockdown(60)
|
||||
|
||||
/obj/item/weapon/dice/update_icon()
|
||||
cut_overlays()
|
||||
|
||||
@@ -27,13 +27,11 @@
|
||||
|
||||
//Flash
|
||||
if(M.flash_act(affect_silicon = 1))
|
||||
M.Stun(max(10/max(1,distance), 3))
|
||||
M.Weaken(max(10/max(1,distance), 3))
|
||||
M.Knockdown(max(100/max(1,distance), 3))
|
||||
//Bang
|
||||
if(!distance || loc == M || loc == M.loc) //Stop allahu akbarring rooms with this.
|
||||
M.Stun(10)
|
||||
M.Weaken(10)
|
||||
M.soundbang_act(1, 10, 10, 15)
|
||||
M.Knockdown(200)
|
||||
M.soundbang_act(1, 200, 10, 15)
|
||||
|
||||
else
|
||||
M.soundbang_act(1, max(10/max(1,distance), 3), rand(0, 5))
|
||||
M.soundbang_act(1, max(20/max(1,distance), 3), rand(0, 5))
|
||||
|
||||
@@ -320,7 +320,7 @@
|
||||
breakouttime = 35//easy to apply, easy to break out of
|
||||
gender = NEUTER
|
||||
origin_tech = "engineering=3;combat=1"
|
||||
var/weaken = 0
|
||||
var/knockdown = 0
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/bola/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback)
|
||||
if(!..())
|
||||
@@ -338,7 +338,7 @@
|
||||
C.update_inv_legcuffed()
|
||||
SSblackbox.add_details("handcuffs","[type]")
|
||||
to_chat(C, "<span class='userdanger'>\The [src] ensnares you!</span>")
|
||||
C.Weaken(weaken)
|
||||
C.Knockdown(knockdown)
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/bola/tactical//traitor variant
|
||||
name = "reinforced bola"
|
||||
@@ -346,7 +346,7 @@
|
||||
icon_state = "bola_r"
|
||||
breakouttime = 70
|
||||
origin_tech = "engineering=4;combat=3"
|
||||
weaken = 1
|
||||
knockdown = 20
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/bola/energy //For Security
|
||||
name = "energy bola"
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
master.emote("scream")
|
||||
master.remove_status_effect(STATUS_EFFECT_HISGRACE)
|
||||
flags &= ~NODROP
|
||||
master.Weaken(3)
|
||||
master.Knockdown(60)
|
||||
master.adjustBruteLoss(master.maxHealth)
|
||||
playsound(master, 'sound/effects/splat.ogg', 100, 0)
|
||||
else
|
||||
|
||||
@@ -68,18 +68,18 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/implant/explosive/proc/timed_explosion()
|
||||
imp_in.visible_message("<span class = 'warning'>[imp_in] starts beeping ominously!</span>")
|
||||
imp_in.visible_message("<span class='warning'>[imp_in] starts beeping ominously!</span>")
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
sleep(delay*0.25)
|
||||
if(imp_in && !imp_in.stat)
|
||||
imp_in.visible_message("<span class = 'warning'>[imp_in] doubles over in pain!</span>")
|
||||
imp_in.Weaken(7)
|
||||
imp_in.visible_message("<span class='warning'>[imp_in] doubles over in pain!</span>")
|
||||
imp_in.Knockdown(140)
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
sleep(delay*0.25)
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
sleep(delay*0.25)
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
sleep(delay*0.25)
|
||||
explosion(src,heavy,medium,weak,weak, flame_range = weak)
|
||||
if(imp_in)
|
||||
imp_in.gib(1)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
/obj/item/weapon/implant/adrenalin
|
||||
name = "adrenal implant"
|
||||
desc = "Removes all stuns and knockdowns."
|
||||
desc = "Removes all stuns."
|
||||
icon_state = "adrenal"
|
||||
origin_tech = "materials=2;biotech=4;combat=3;syndicate=4"
|
||||
uses = 3
|
||||
@@ -35,9 +35,9 @@
|
||||
/obj/item/weapon/implant/adrenalin/activate()
|
||||
uses--
|
||||
to_chat(imp_in, "<span class='notice'>You feel a sudden surge of energy!</span>")
|
||||
imp_in.SetStunned(0)
|
||||
imp_in.SetWeakened(0)
|
||||
imp_in.SetParalysis(0)
|
||||
imp_in.SetStun(0)
|
||||
imp_in.SetKnockdown(0)
|
||||
imp_in.SetUnconscious(0)
|
||||
imp_in.adjustStaminaLoss(-75)
|
||||
imp_in.lying = 0
|
||||
imp_in.update_canmove()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
if(target.check_block())
|
||||
target.visible_message("<span class='danger'>[target.name] blocks [src] and twists [user]'s arm behind their back!</span>",
|
||||
"<span class='userdanger'>You block the attack!</span>")
|
||||
user.Stun(2)
|
||||
user.Stun(40)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
add_fingerprint(user)
|
||||
if((CLUMSY in user.disabilities) && prob(50))
|
||||
to_chat(user, "<span class ='danger'>You club yourself over the head.</span>")
|
||||
user.Weaken(3 * force)
|
||||
user.Knockdown(60 * force)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.apply_damage(2*force, BRUTE, "head")
|
||||
@@ -110,7 +110,7 @@
|
||||
if(check_martial_counter(H, user))
|
||||
return
|
||||
playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1)
|
||||
target.Weaken(3)
|
||||
target.Knockdown(60)
|
||||
add_logs(user, target, "stunned", src)
|
||||
src.add_fingerprint(user)
|
||||
target.visible_message("<span class ='danger'>[user] has knocked down [target] with [src]!</span>", \
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
fire_items(T, user)
|
||||
if(pressureSetting >= 3 && user)
|
||||
user.visible_message("<span class='warning'>[user] is thrown down by the force of the cannon!</span>", "<span class='userdanger'>[src] slams into your shoulder, knocking you down!")
|
||||
user.Weaken(3)
|
||||
user.Knockdown(60)
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/proc/fire_items(turf/target, mob/user)
|
||||
if(fire_mode == PCANNON_FIREALL)
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
var/obj/item/clothing/shoes/magboots/M = H.shoes
|
||||
if(M.magpulse)
|
||||
continue
|
||||
H.apply_effect(1, WEAKEN, 0)
|
||||
H.apply_effect(20, KNOCKDOWN, 0)
|
||||
step_towards(H,pull)
|
||||
step_towards(H,pull)
|
||||
step_towards(H,pull)
|
||||
@@ -78,14 +78,14 @@
|
||||
throwforce = 30
|
||||
throw_range = 7
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
//var/charged = 5
|
||||
origin_tech = "combat=4;powerstorage=7"
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/proc/shock(mob/living/target)
|
||||
target.Stun(60)
|
||||
var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread
|
||||
s.set_up(5, 1, target.loc)
|
||||
s.start()
|
||||
target.visible_message("<span class='danger'>[target.name] was shocked by the [src.name]!</span>", \
|
||||
target.visible_message("<span class='danger'>[target.name] was shocked by [src]!</span>", \
|
||||
"<span class='userdanger'>You feel a powerful shock course through your body sending you flying!</span>", \
|
||||
"<span class='italics'>You hear a heavy electrical crack!</span>")
|
||||
var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src)))
|
||||
@@ -95,18 +95,13 @@
|
||||
/obj/item/weapon/twohanded/mjollnir/attack(mob/living/M, mob/user)
|
||||
..()
|
||||
if(wielded)
|
||||
//if(charged == 5)
|
||||
//charged = 0
|
||||
playsound(src.loc, "sparks", 50, 1)
|
||||
M.Stun(3)
|
||||
shock(M)
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/throw_impact(atom/target)
|
||||
. = ..()
|
||||
if(isliving(target))
|
||||
var/mob/living/L = target
|
||||
L.Stun(3)
|
||||
shock(L)
|
||||
shock(target)
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/update_icon() //Currently only here to fuck with the on-mob icons.
|
||||
icon_state = "mjollnir[wielded]"
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
/obj/item/weapon/storage/backpack/holding/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
user.drop_item()
|
||||
user.Stun(5)
|
||||
user.Stun(100)
|
||||
sleep(20)
|
||||
playsound(src, "rustle", 50, 1, -5)
|
||||
qdel(user)
|
||||
|
||||
@@ -329,7 +329,7 @@
|
||||
|
||||
if(ishuman(M) || ismonkey(M))
|
||||
if(prob(10))
|
||||
M.Weaken(2)
|
||||
M.Knockdown(40)
|
||||
|
||||
/obj/item/weapon/storage/bag/tray/proc/rebuild_overlays()
|
||||
cut_overlays()
|
||||
|
||||
@@ -94,7 +94,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible",
|
||||
if (user.disabilities & CLUMSY && prob(50))
|
||||
to_chat(user, "<span class='danger'>[src] slips out of your hand and hits your head.</span>")
|
||||
user.take_bodypart_damage(10)
|
||||
user.Paralyse(20)
|
||||
user.Unconscious(400)
|
||||
return
|
||||
|
||||
var/chaplain = 0
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
attack_verb = list("beaten")
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 50, bio = 0, rad = 0, fire = 80, acid = 80)
|
||||
|
||||
var/stunforce = 7
|
||||
var/stunforce = 140
|
||||
var/status = 0
|
||||
var/obj/item/weapon/stock_parts/cell/high/cell
|
||||
var/hitcost = 1000
|
||||
@@ -110,7 +110,7 @@
|
||||
if(status && user.disabilities & CLUMSY && prob(50))
|
||||
user.visible_message("<span class='danger'>[user] accidentally hits themself with [src]!</span>", \
|
||||
"<span class='userdanger'>You accidentally hit yourself with [src]!</span>")
|
||||
user.Weaken(stunforce*3)
|
||||
user.Knockdown(stunforce*3)
|
||||
deductcharge(hitcost)
|
||||
return
|
||||
|
||||
@@ -152,8 +152,7 @@
|
||||
if(!deductcharge(hitcost))
|
||||
return 0
|
||||
|
||||
L.Stun(stunforce)
|
||||
L.Weaken(stunforce)
|
||||
L.Knockdown(stunforce)
|
||||
L.apply_effect(STUTTER, stunforce)
|
||||
if(user)
|
||||
user.lastattacked = L
|
||||
@@ -184,7 +183,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
force = 3
|
||||
throwforce = 5
|
||||
stunforce = 5
|
||||
stunforce = 100
|
||||
hitcost = 2000
|
||||
throw_hit_chance = 10
|
||||
slot_flags = SLOT_BACK
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
user.visible_message("<span class='danger'>[user] accidentally hits themself with [src]!</span>", \
|
||||
"<span class='userdanger'>You accidentally hit yourself with [src]!</span>")
|
||||
if(do_teleport(user, get_turf(user), 50))//honk honk
|
||||
user.Weaken(stunforce*3)
|
||||
user.Knockdown(stunforce*3)
|
||||
deductcharge(hitcost)
|
||||
else
|
||||
user.Weaken(stunforce*3)
|
||||
user.Knockdown(stunforce*3)
|
||||
deductcharge(hitcost/4)
|
||||
return
|
||||
else
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
// during their ascension
|
||||
|
||||
// Stun stops them from wandering off
|
||||
user.Stun(5)
|
||||
user.Stun(100)
|
||||
playsound(loc, 'sound/effects/pray.ogg', 50, 1, -1)
|
||||
|
||||
// Let the sound effect finish playing
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user