([\W\.])Knockdown\(

This commit is contained in:
kevinz000
2020-01-06 03:39:20 -08:00
parent 1f2597784f
commit 7378d91684
157 changed files with 262 additions and 262 deletions

View File

@@ -136,7 +136,7 @@
fall_chance += 2 fall_chance += 2
if(prob(fall_chance) && !owner.lying && !owner.buckled) if(prob(fall_chance) && !owner.lying && !owner.buckled)
to_chat(owner, "<span class='warning'>Your leg gives out!</span>") to_chat(owner, "<span class='warning'>Your leg gives out!</span>")
owner.Knockdown(35) owner.DefaultCombatKnockdown(35)
else if(owner.get_active_held_item()) else if(owner.get_active_held_item())
var/drop_chance = 1 var/drop_chance = 1

View File

@@ -59,4 +59,4 @@
"<span class='userdanger'>You slide on [A]!</span>") "<span class='userdanger'>You slide on [A]!</span>")
cooldown = world.time cooldown = world.time
H.Knockdown(60) H.DefaultCombatKnockdown(60)

View File

@@ -100,7 +100,7 @@
AM.forceMove(T) AM.forceMove(T)
if(isliving(AM)) if(isliving(AM))
var/mob/living/L = AM var/mob/living/L = AM
L.Knockdown(100) L.DefaultCombatKnockdown(100)
L.adjustBruteLoss(30) L.adjustBruteLoss(30)
falling_atoms -= AM falling_atoms -= AM

View File

@@ -54,7 +54,7 @@
msg += " and knocks [target] [target_buckled? "off of [target.buckled]" : "down"]" msg += " and knocks [target] [target_buckled? "off of [target.buckled]" : "down"]"
if(target_buckled) if(target_buckled)
target.buckled.unbuckle_mob(target) target.buckled.unbuckle_mob(target)
target.Knockdown(knockdown_time) target.DefaultCombatKnockdown(knockdown_time)
if(length(msg)) if(length(msg))
user.visible_message("<span class='danger'>[msg]!</span>") user.visible_message("<span class='danger'>[msg]!</span>")

View File

@@ -240,7 +240,7 @@
/datum/component/riding/human/force_dismount(mob/living/user) /datum/component/riding/human/force_dismount(mob/living/user)
var/atom/movable/AM = parent var/atom/movable/AM = parent
AM.unbuckle_mob(user) AM.unbuckle_mob(user)
user.Knockdown(60) user.DefaultCombatKnockdown(60)
user.visible_message("<span class='warning'>[AM] pushes [user] off of [AM.p_them()]!</span>") user.visible_message("<span class='warning'>[AM] pushes [user] off of [AM.p_them()]!</span>")
/datum/component/riding/cyborg /datum/component/riding/cyborg
@@ -298,7 +298,7 @@
M.Move(targetm) M.Move(targetm)
M.visible_message("<span class='warning'>[M] is thrown clear of [AM]!</span>") M.visible_message("<span class='warning'>[M] is thrown clear of [AM]!</span>")
M.throw_at(target, 14, 5, AM) M.throw_at(target, 14, 5, AM)
M.Knockdown(60) M.DefaultCombatKnockdown(60)
/datum/component/riding/proc/equip_buckle_inhands(mob/living/carbon/human/user, amount_required = 1, mob/living/riding_target_override) /datum/component/riding/proc/equip_buckle_inhands(mob/living/carbon/human/user, amount_required = 1, mob/living/riding_target_override)
var/list/equipped var/list/equipped

View File

@@ -22,7 +22,7 @@
return //undeads are unaffected by the spook-pocalypse. return //undeads are unaffected by the spook-pocalypse.
if(istype(H.dna.species, /datum/species/zombie)) if(istype(H.dna.species, /datum/species/zombie))
H.adjustStaminaLoss(25) H.adjustStaminaLoss(25)
H.Knockdown(15) //zombies can't resist the doot H.DefaultCombatKnockdown(15) //zombies can't resist the doot
C.Jitter(35) C.Jitter(35)
C.stuttering = 20 C.stuttering = 20
if((!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly))) if((!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly)))
@@ -36,7 +36,7 @@
/datum/component/spooky/proc/spectral_change(mob/living/carbon/human/H, mob/user) /datum/component/spooky/proc/spectral_change(mob/living/carbon/human/H, mob/user)
if((H.getStaminaLoss() > 95) && (!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly))) if((H.getStaminaLoss() > 95) && (!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly)))
H.Knockdown(20) H.DefaultCombatKnockdown(20)
H.set_species(/datum/species/skeleton) H.set_species(/datum/species/skeleton)
H.visible_message("<span class='warning'>[H] has given up on life as a mortal.</span>") H.visible_message("<span class='warning'>[H] has given up on life as a mortal.</span>")
var/T = get_turf(H) var/T = get_turf(H)

View File

@@ -11,7 +11,7 @@
var/turf/loccheck = get_turf(A) var/turf/loccheck = get_turf(A)
if(is_reebe(loccheck.z)) if(is_reebe(loccheck.z))
user.visible_message("<span class='warning'>An unseen force knocks [user] to the ground!</span>", "<span class='big_brass'>\"I think not!\"</span>") user.visible_message("<span class='warning'>An unseen force knocks [user] to the ground!</span>", "<span class='big_brass'>\"I think not!\"</span>")
user.Knockdown(60) user.DefaultCombatKnockdown(60)
return return
if(istype(loccheck.loc, /area/fabric_of_reality)) if(istype(loccheck.loc, /area/fabric_of_reality))
to_chat(user, "<span class='danger'>You can't do that here!</span>") to_chat(user, "<span class='danger'>You can't do that here!</span>")
@@ -25,7 +25,7 @@
for(var/mob/living/M in T) for(var/mob/living/M in T)
if(M.movement_type & FLYING) if(M.movement_type & FLYING)
M.visible_message("<span class='danger'>The bluespace collapse crushes the air towards it, pulling [M] towards the ground...</span>") M.visible_message("<span class='danger'>The bluespace collapse crushes the air towards it, pulling [M] towards the ground...</span>")
M.Knockdown(5, TRUE, TRUE) //Overrides stun absorbs. M.DefaultCombatKnockdown(5, TRUE, TRUE) //Overrides stun absorbs.
T.TerraformTurf(/turf/open/chasm/magic, /turf/open/chasm/magic) T.TerraformTurf(/turf/open/chasm/magic, /turf/open/chasm/magic)
for (var/obj/structure/ladder/unbreakable/binary/ladder in GLOB.ladders) for (var/obj/structure/ladder/unbreakable/binary/ladder in GLOB.ladders)
ladder.ActivateAlmonds() ladder.ActivateAlmonds()

View File

@@ -44,7 +44,7 @@
if(prob(25)) if(prob(25))
affected_mob.vomit(95) affected_mob.vomit(95)
H.emote("cough") H.emote("cough")
H.Knockdown(40) H.DefaultCombatKnockdown(40)
H.losebreath += 4 H.losebreath += 4
if(prob(3)) if(prob(3))
to_chat(H, "<span class='danger'>You feel very weak and dizzy...</span>") to_chat(H, "<span class='danger'>You feel very weak and dizzy...</span>")

View File

@@ -47,7 +47,7 @@
"<span class='userdanger'>[A] slams you 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) playsound(get_turf(A), 'sound/weapons/slam.ogg', 50, 1, -1)
D.apply_damage(10, BRUTE) D.apply_damage(10, BRUTE)
D.Knockdown(120) D.DefaultCombatKnockdown(120)
log_combat(A, D, "slammed (CQC)") log_combat(A, D, "slammed (CQC)")
return TRUE return TRUE
@@ -152,7 +152,7 @@
"<span class='userdanger'>[A] leg sweeps you!</span>") "<span class='userdanger'>[A] leg sweeps you!</span>")
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1)
D.apply_damage(10, BRUTE) D.apply_damage(10, BRUTE)
D.Knockdown(60) D.DefaultCombatKnockdown(60)
log_combat(A, D, "sweeped (CQC)") log_combat(A, D, "sweeped (CQC)")
return TRUE return TRUE

View File

@@ -102,7 +102,7 @@
"<span class='userdanger'>[A] leg sweeps you!</span>") "<span class='userdanger'>[A] leg sweeps you!</span>")
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1)
D.apply_damage(5, BRUTE) D.apply_damage(5, BRUTE)
D.Knockdown(40, override_hardstun = 0.01, override_stamdmg = 25) D.DefaultCombatKnockdown(40, override_hardstun = 0.01, override_stamdmg = 25)
log_combat(A, D, "leg sweeped") log_combat(A, D, "leg sweeped")
return 1 return 1

View File

@@ -16,7 +16,7 @@
playsound(D, 'sound/effects/meteorimpact.ogg', 25, 1, -1) playsound(D, 'sound/effects/meteorimpact.ogg', 25, 1, -1)
var/throwtarget = get_edge_target_turf(A, get_dir(A, get_step_away(D, A))) var/throwtarget = get_edge_target_turf(A, get_dir(A, get_step_away(D, A)))
D.throw_at(throwtarget, 4, 2, A)//So stuff gets tossed around at the same time. D.throw_at(throwtarget, 4, 2, A)//So stuff gets tossed around at the same time.
D.Knockdown(20) D.DefaultCombatKnockdown(20)
if(atk_verb) if(atk_verb)
log_combat(A, D, "[atk_verb] (Mushroom Punch)") log_combat(A, D, "[atk_verb] (Mushroom Punch)")
return TRUE return TRUE

View File

@@ -49,7 +49,7 @@
if(!istype(D.head,/obj/item/clothing/head/helmet/) && !istype(D.head,/obj/item/clothing/head/hardhat)) if(!istype(D.head,/obj/item/clothing/head/helmet/) && !istype(D.head,/obj/item/clothing/head/hardhat))
D.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5) D.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5)
A.Stun(rand(10,45)) A.Stun(rand(10,45))
D.Knockdown(rand(5,30))//CIT CHANGE - makes stuns from martial arts always use Knockdown instead of Stun for the sake of consistency D.DefaultCombatKnockdown(rand(5,30))//CIT CHANGE - makes stuns from martial arts always use Knockdown instead of Stun for the sake of consistency
if(5,6) if(5,6)
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
atk_verb = pick("punches", "kicks", "hits", "slams into") atk_verb = pick("punches", "kicks", "hits", "slams into")
@@ -59,7 +59,7 @@
playsound(get_turf(D), 'sound/effects/meteorimpact.ogg', 25, 1, -1) playsound(get_turf(D), 'sound/effects/meteorimpact.ogg', 25, 1, -1)
var/throwtarget = get_edge_target_turf(A, get_dir(A, get_step_away(D, A))) var/throwtarget = get_edge_target_turf(A, get_dir(A, get_step_away(D, A)))
D.throw_at(throwtarget, 4, 2, A)//So stuff gets tossed around at the same time. D.throw_at(throwtarget, 4, 2, A)//So stuff gets tossed around at the same time.
D.Knockdown(60) D.DefaultCombatKnockdown(60)
if(7,8) if(7,8)
basic_hit(A,D) basic_hit(A,D)

View File

@@ -43,7 +43,7 @@
"<span class='userdanger'>[A] kicks you in the side, forcing you to step away!</span>") "<span class='userdanger'>[A] kicks you in the side, forcing you to step away!</span>")
playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1) playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
D.apply_damage(5, BRUTE, BODY_ZONE_CHEST) D.apply_damage(5, BRUTE, BODY_ZONE_CHEST)
D.Knockdown(60) D.DefaultCombatKnockdown(60)
var/L = H var/L = H
for(var/obj/i in H.contents) for(var/obj/i in H.contents)
if(!istype(i,/mob) && i.density == 1) if(!istype(i,/mob) && i.density == 1)
@@ -68,7 +68,7 @@
D.apply_damage(10, BRUTE, BODY_ZONE_CHEST) D.apply_damage(10, BRUTE, BODY_ZONE_CHEST)
D.apply_damage(30, BRUTE, BODY_ZONE_HEAD) D.apply_damage(30, BRUTE, BODY_ZONE_HEAD)
D.Sleeping(60) D.Sleeping(60)
D.Knockdown(300) D.DefaultCombatKnockdown(300)
D.forceMove(L) D.forceMove(L)
log_combat(A, D, "shoulder flipped (Rising Bass)") log_combat(A, D, "shoulder flipped (Rising Bass)")
return 1 return 1
@@ -83,7 +83,7 @@
var/atom/F = get_edge_target_turf(D, get_dir(A, get_step_away(D, A))) var/atom/F = get_edge_target_turf(D, get_dir(A, get_step_away(D, A)))
D.throw_at(F, 10, 1) D.throw_at(F, 10, 1)
D.apply_damage(10, BRUTE, BODY_ZONE_CHEST) D.apply_damage(10, BRUTE, BODY_ZONE_CHEST)
D.Knockdown(90) D.DefaultCombatKnockdown(90)
log_combat(A, D, "repulse punched (Rising Bass)") log_combat(A, D, "repulse punched (Rising Bass)")
return 1 return 1
return basic_hit(A,D) return basic_hit(A,D)

View File

@@ -46,7 +46,7 @@
D.emote("scream") D.emote("scream")
D.dropItemToGround(D.get_active_held_item()) D.dropItemToGround(D.get_active_held_item())
D.apply_damage(5, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) D.apply_damage(5, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
D.Knockdown(60)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun() D.DefaultCombatKnockdown(60)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun()
return TRUE return TRUE
return basic_hit(A,D) return basic_hit(A,D)
@@ -58,7 +58,7 @@
D.visible_message("<span class='warning'>[A] kicks [D] in the back!</span>", \ 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>") "<span class='userdanger'>[A] kicks you in the back, making you stumble and fall!</span>")
step_to(D,get_step(D,D.dir),1) step_to(D,get_step(D,D.dir),1)
D.Knockdown(80) D.DefaultCombatKnockdown(80)
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
return TRUE return TRUE
else else
@@ -75,7 +75,7 @@
"<span class='userdanger'>[A] winds you with a knee 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.audible_message("<b>[D]</b> gags!")
D.losebreath += 3 D.losebreath += 3
D.Knockdown(40)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun() D.DefaultCombatKnockdown(40)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun()
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
return TRUE return TRUE
return basic_hit(A,D) return basic_hit(A,D)
@@ -89,7 +89,7 @@
D.apply_damage(20, BRUTE, BODY_ZONE_HEAD) D.apply_damage(20, BRUTE, BODY_ZONE_HEAD)
D.drop_all_held_items() D.drop_all_held_items()
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
D.Knockdown(80)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun() D.DefaultCombatKnockdown(80)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun()
return TRUE return TRUE
return basic_hit(A,D) return basic_hit(A,D)
@@ -134,7 +134,7 @@
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, 1, -1) playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, 1, -1)
if(prob(D.getBruteLoss()) && !D.lying) 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.visible_message("<span class='warning'>[D] stumbles and falls!</span>", "<span class='userdanger'>The blow sends you to the ground!</span>")
D.Knockdown(80) D.DefaultCombatKnockdown(80)
log_combat(A, D, "[atk_verb] (Sleeping Carp)") log_combat(A, D, "[atk_verb] (Sleeping Carp)")
return TRUE return TRUE
@@ -192,7 +192,7 @@
add_fingerprint(user) add_fingerprint(user)
if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50)) if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50))
to_chat(user, "<span class ='warning'>You club yourself over the head with [src].</span>") to_chat(user, "<span class ='warning'>You club yourself over the head with [src].</span>")
user.Knockdown(60) user.DefaultCombatKnockdown(60)
if(ishuman(user)) if(ishuman(user))
var/mob/living/carbon/human/H = user var/mob/living/carbon/human/H = user
H.apply_damage(2*force, BRUTE, BODY_ZONE_HEAD) H.apply_damage(2*force, BRUTE, BODY_ZONE_HEAD)
@@ -226,7 +226,7 @@
if(prob(10)) if(prob(10))
H.visible_message("<span class='warning'>[H] collapses!</span>", \ H.visible_message("<span class='warning'>[H] collapses!</span>", \
"<span class='userdanger'>Your legs give out!</span>") "<span class='userdanger'>Your legs give out!</span>")
H.Knockdown(80) H.DefaultCombatKnockdown(80)
if(H.staminaloss && !H.IsSleeping()) if(H.staminaloss && !H.IsSleeping())
var/total_health = (H.health - H.staminaloss) var/total_health = (H.health - H.staminaloss)
if(total_health <= HEALTH_THRESHOLD_CRIT && !H.stat) if(total_health <= HEALTH_THRESHOLD_CRIT && !H.stat)

View File

@@ -303,7 +303,7 @@
playsound(A.loc, "swing_hit", 50, 1) playsound(A.loc, "swing_hit", 50, 1)
if (!D.stat) if (!D.stat)
D.emote("scream") D.emote("scream")
D.Knockdown(40) D.DefaultCombatKnockdown(40)
switch(rand(1,3)) switch(rand(1,3))
if (2) if (2)
@@ -361,7 +361,7 @@
var/turf/T = get_edge_target_turf(A, get_dir(A, get_step_away(D, A))) var/turf/T = get_edge_target_turf(A, get_dir(A, get_step_away(D, A)))
if (T && isturf(T)) if (T && isturf(T))
D.Knockdown(20) D.DefaultCombatKnockdown(20)
D.throw_at(T, 3, 2) D.throw_at(T, 3, 2)
log_combat(A, D, "roundhouse-kicked") log_combat(A, D, "roundhouse-kicked")
@@ -400,7 +400,7 @@
if (falling == 1) if (falling == 1)
A.visible_message("<span class = 'danger'><B>...and dives head-first into the ground, ouch!</b></span>") A.visible_message("<span class = 'danger'><B>...and dives head-first into the ground, ouch!</b></span>")
A.adjustBruteLoss(rand(10,20)) A.adjustBruteLoss(rand(10,20))
A.Knockdown(60) A.DefaultCombatKnockdown(60)
to_chat(A, "[D] is too far away!") to_chat(A, "[D] is too far away!")
return 0 return 0
@@ -429,7 +429,7 @@
else else
D.adjustBruteLoss(rand(20,30)) D.adjustBruteLoss(rand(20,30))
D.Knockdown(40) D.DefaultCombatKnockdown(40)
A.pixel_y = 0 A.pixel_y = 0

View File

@@ -97,7 +97,7 @@
if(owner.stun_absorption[i]["end_time"] > world.time && owner.stun_absorption[i]["priority"] > vanguard["priority"]) if(owner.stun_absorption[i]["end_time"] > world.time && owner.stun_absorption[i]["priority"] > vanguard["priority"])
otheractiveabsorptions = TRUE otheractiveabsorptions = TRUE
if(!GLOB.ratvar_awakens && stuns_blocked && !otheractiveabsorptions) if(!GLOB.ratvar_awakens && stuns_blocked && !otheractiveabsorptions)
owner.Knockdown(stuns_blocked) owner.DefaultCombatKnockdown(stuns_blocked)
message_to_owner = "<span class='boldwarning'>The weight of the Vanguard's protection crashes down upon you!</span>" message_to_owner = "<span class='boldwarning'>The weight of the Vanguard's protection crashes down upon you!</span>"
if(stuns_blocked >= 300) if(stuns_blocked >= 300)
message_to_owner += "\n<span class='userdanger'>You faint from the exertion!</span>" message_to_owner += "\n<span class='userdanger'>You faint from the exertion!</span>"

View File

@@ -179,7 +179,7 @@
if(iscarbon(owner) && !is_servant_of_ratvar(owner) && !owner.anti_magic_check(chargecost = 0) && number_legs) if(iscarbon(owner) && !is_servant_of_ratvar(owner) && !owner.anti_magic_check(chargecost = 0) && number_legs)
if(force_damage || owner.m_intent != MOVE_INTENT_WALK) if(force_damage || owner.m_intent != MOVE_INTENT_WALK)
if(GLOB.ratvar_awakens) if(GLOB.ratvar_awakens)
owner.Knockdown(20) owner.DefaultCombatKnockdown(20)
if(iscultist(owner)) if(iscultist(owner))
owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, BODY_ZONE_L_LEG) owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, BODY_ZONE_L_LEG)
owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, BODY_ZONE_R_LEG) owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, BODY_ZONE_R_LEG)
@@ -526,7 +526,7 @@
var/old_oxyloss var/old_oxyloss
/datum/status_effect/kindle/tick() /datum/status_effect/kindle/tick()
owner.Knockdown(15, TRUE, FALSE, 15) owner.DefaultCombatKnockdown(15, TRUE, FALSE, 15)
if(iscarbon(owner)) if(iscarbon(owner))
var/mob/living/carbon/C = owner var/mob/living/carbon/C = owner
C.silent = max(2, C.silent) C.silent = max(2, C.silent)

View File

@@ -54,6 +54,6 @@
return return
var/mob/living/carbon/human/H = gangster_mind.current // we are sure the dude's human cause it's checked in attack() var/mob/living/carbon/human/H = gangster_mind.current // we are sure the dude's human cause it's checked in attack()
H.silent = max(H.silent, 5) H.silent = max(H.silent, 5)
H.Knockdown(100) H.DefaultCombatKnockdown(100)
gangster_mind.add_antag_datum(/datum/antagonist/gang, gang) gangster_mind.add_antag_datum(/datum/antagonist/gang, gang)
return TRUE return TRUE

View File

@@ -217,7 +217,7 @@
M.vomit(10, distance = 5) M.vomit(10, distance = 5)
if(ORION_TRAIL_FLUX) if(ORION_TRAIL_FLUX)
if(prob(75)) if(prob(75))
M.Knockdown(60) M.DefaultCombatKnockdown(60)
say("A sudden gust of powerful wind slams [M] into the floor!") say("A sudden gust of powerful wind slams [M] into the floor!")
M.take_bodypart_damage(25) M.take_bodypart_damage(25)
playsound(loc, 'sound/weapons/genhit.ogg', 100, 1) playsound(loc, 'sound/weapons/genhit.ogg', 100, 1)

View File

@@ -769,7 +769,7 @@
if(!istype(H.head, /obj/item/clothing/head/helmet)) if(!istype(H.head, /obj/item/clothing/head/helmet))
H.visible_message("<span class='danger'>[user] headbutts the airlock.</span>", \ H.visible_message("<span class='danger'>[user] headbutts the airlock.</span>", \
"<span class='userdanger'>You headbutt the airlock!</span>") "<span class='userdanger'>You headbutt the airlock!</span>")
H.Knockdown(100) H.DefaultCombatKnockdown(100)
H.apply_damage(10, BRUTE, BODY_ZONE_HEAD) H.apply_damage(10, BRUTE, BODY_ZONE_HEAD)
else else
visible_message("<span class='danger'>[user] headbutts the airlock. Good thing [user.p_theyre()] wearing a helmet.</span>") visible_message("<span class='danger'>[user] headbutts the airlock. Good thing [user.p_theyre()] wearing a helmet.</span>")
@@ -1033,7 +1033,7 @@
if(!I.use_tool(src, user, 150, volume=50)) if(!I.use_tool(src, user, 150, volume=50))
to_chat(user, "<span class='warning'>You slip and [charge] detonates!</span>") to_chat(user, "<span class='warning'>You slip and [charge] detonates!</span>")
charge.ex_act(EXPLODE_DEVASTATE) charge.ex_act(EXPLODE_DEVASTATE)
user.Knockdown(60) user.DefaultCombatKnockdown(60)
return return
user.visible_message("<span class='notice'>[user] removes [charge] from [src].</span>", \ 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>") "<span class='notice'>You gently pry out [charge] from [src] and unhook its wires.</span>")

View File

@@ -508,7 +508,7 @@
throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src))) throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src)))
SEND_SOUND(L, sound(pick('sound/hallucinations/turn_around1.ogg','sound/hallucinations/turn_around2.ogg'),0,1,50)) SEND_SOUND(L, sound(pick('sound/hallucinations/turn_around1.ogg','sound/hallucinations/turn_around2.ogg'),0,1,50))
flash_color(L, flash_color="#960000", flash_time=20) flash_color(L, flash_color="#960000", flash_time=20)
L.Knockdown(40) L.DefaultCombatKnockdown(40)
L.throw_at(throwtarget, 5, 1) L.throw_at(throwtarget, 5, 1)
return 0 return 0

View File

@@ -319,10 +319,10 @@
else if(ishuman(L)) //For humans else if(ishuman(L)) //For humans
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
L.emote("scream") L.emote("scream")
L.Knockdown(100) L.DefaultCombatKnockdown(100)
else if(ismonkey(L)) //For monkeys else if(ismonkey(L)) //For monkeys
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
L.Knockdown(100) L.DefaultCombatKnockdown(100)
else //for simple_animals & borgs else //for simple_animals & borgs
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
var/turf/location = get_turf(src) var/turf/location = get_turf(src)

View File

@@ -115,7 +115,7 @@
continue continue
if(L.flash_act(affect_silicon = 1)) if(L.flash_act(affect_silicon = 1))
L.Knockdown(strength) L.DefaultCombatKnockdown(strength)
flashed = TRUE flashed = TRUE
if(flashed) if(flashed)

View File

@@ -177,7 +177,7 @@
M.SetSleeping(0) M.SetSleeping(0)
M.stuttering += 20 M.stuttering += 20
M.adjustEarDamage(0, 30) M.adjustEarDamage(0, 30)
M.Knockdown(60) M.DefaultCombatKnockdown(60)
if(prob(30)) if(prob(30))
M.Stun(200) M.Stun(200)
M.Unconscious(80) M.Unconscious(80)

View File

@@ -113,7 +113,7 @@
/obj/effect/anomaly/grav/proc/gravShock(mob/living/A) /obj/effect/anomaly/grav/proc/gravShock(mob/living/A)
if(boing && isliving(A) && !A.stat) if(boing && isliving(A) && !A.stat)
A.Knockdown(40) A.DefaultCombatKnockdown(40)
var/atom/target = get_edge_target_turf(A, get_dir(src, get_step_away(A, src))) var/atom/target = get_edge_target_turf(A, get_dir(src, get_step_away(A, src)))
A.throw_at(target, 5, 1) A.throw_at(target, 5, 1)
boing = 0 boing = 0

View File

@@ -112,7 +112,7 @@
for(var/mob/living/L in viewers(1, location)) for(var/mob/living/L in viewers(1, location))
if(prob(50 * amount)) if(prob(50 * amount))
to_chat(L, "<span class='danger'>The explosion knocks you down.</span>") to_chat(L, "<span class='danger'>The explosion knocks you down.</span>")
L.Knockdown(rand(20,100)) L.DefaultCombatKnockdown(rand(20,100))
return return
else else
dyn_explosion(location, amount, flashing_factor) dyn_explosion(location, amount, flashing_factor)

View File

@@ -48,7 +48,7 @@
/obj/effect/mine/stun/mineEffect(mob/living/victim) /obj/effect/mine/stun/mineEffect(mob/living/victim)
if(isliving(victim)) if(isliving(victim))
victim.Knockdown(stun_time) victim.DefaultCombatKnockdown(stun_time)
/obj/effect/mine/kickmine /obj/effect/mine/kickmine
name = "kick mine" name = "kick mine"

View File

@@ -544,7 +544,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
to_chat(M, "<span class='danger'>You drop what you're holding and clutch at your eyes!</span>") to_chat(M, "<span class='danger'>You drop what you're holding and clutch at your eyes!</span>")
M.adjust_blurriness(10) M.adjust_blurriness(10)
M.Unconscious(20) M.Unconscious(20)
M.Knockdown(40) M.DefaultCombatKnockdown(40)
if (prob(eyes.damage - 10 + 1)) if (prob(eyes.damage - 10 + 1))
M.become_blind(EYE_DAMAGE) M.become_blind(EYE_DAMAGE)
to_chat(M, "<span class='danger'>You go blind!</span>") to_chat(M, "<span class='danger'>You go blind!</span>")

View File

@@ -853,7 +853,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(prob(5))//small chance for the vape to break and deal damage if it's emagged 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) playsound(get_turf(src), 'sound/effects/pop_expl.ogg', 50, 0)
M.apply_damage(20, BURN, BODY_ZONE_HEAD) M.apply_damage(20, BURN, BODY_ZONE_HEAD)
M.Knockdown(300, 1, 0) M.DefaultCombatKnockdown(300, 1, 0)
var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread
sp.set_up(5, 1, src) sp.set_up(5, 1, src)
sp.start() sp.start()

View File

@@ -695,7 +695,7 @@
C.blind_eyes(1) C.blind_eyes(1)
if(C.get_eye_protection() <= 0) // no eye protection? ARGH IT BURNS. if(C.get_eye_protection() <= 0) // no eye protection? ARGH IT BURNS.
C.confused = max(C.confused, 3) C.confused = max(C.confused, 3)
C.Knockdown(60) C.DefaultCombatKnockdown(60)
if(ishuman(C) && actually_paints) if(ishuman(C) && actually_paints)
var/mob/living/carbon/human/H = C var/mob/living/carbon/human/H = C
H.lip_style = "spray_face" H.lip_style = "spray_face"

View File

@@ -473,7 +473,7 @@
M.visible_message("<span class='danger'>[user] zaps [M] with [src]!</span>", \ M.visible_message("<span class='danger'>[user] zaps [M] with [src]!</span>", \
"<span class='userdanger'>[user] zaps [M] with [src]!</span>") "<span class='userdanger'>[user] zaps [M] with [src]!</span>")
M.adjustStaminaLoss(50) M.adjustStaminaLoss(50)
M.Knockdown(100) M.DefaultCombatKnockdown(100)
M.updatehealth() //forces health update before next life tick M.updatehealth() //forces health update before next life tick
playsound(src, 'sound/machines/defib_zap.ogg', 50, 1, -1) playsound(src, 'sound/machines/defib_zap.ogg', 50, 1, -1)
M.emote("gasp") M.emote("gasp")
@@ -530,7 +530,7 @@
H.set_heartattack(TRUE) H.set_heartattack(TRUE)
H.apply_damage(50, BURN, BODY_ZONE_CHEST) H.apply_damage(50, BURN, BODY_ZONE_CHEST)
log_combat(user, H, "overloaded the heart of", defib) log_combat(user, H, "overloaded the heart of", defib)
H.Knockdown(100) H.DefaultCombatKnockdown(100)
H.Jitter(100) H.Jitter(100)
if(req_defib) if(req_defib)
defib.deductcharge(revivecost) defib.deductcharge(revivecost)

View File

@@ -108,7 +108,7 @@
//chance to actually hit the eyes depends on internal component //chance to actually hit the eyes depends on internal component
if(prob(effectchance * diode.rating)) if(prob(effectchance * diode.rating))
S.flash_act(affect_silicon = 1) S.flash_act(affect_silicon = 1)
S.Knockdown(rand(100,200)) S.DefaultCombatKnockdown(rand(100,200))
to_chat(S, "<span class='danger'>Your sensors were overloaded by a laser!</span>") 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 [S.p_their()] sensors.</span>" outmsg = "<span class='notice'>You overload [S] by shining [src] at [S.p_their()] sensors.</span>"
else else

View File

@@ -113,7 +113,7 @@
s.set_up(3, 1, L) s.set_up(3, 1, L)
s.start() s.start()
L.Knockdown(100) L.DefaultCombatKnockdown(100)
if(master) if(master)
master.receive_signal() master.receive_signal()

View File

@@ -44,7 +44,7 @@ effective or pretty fucking useless.
for(var/mob/living/carbon/human/M in urange(10, user, 1)) for(var/mob/living/carbon/human/M in urange(10, user, 1))
if(prob(50)) if(prob(50))
M.Knockdown(rand(200,400)) M.DefaultCombatKnockdown(rand(200,400))
to_chat(M, "<span class='userdanger'>You feel a tremendous, paralyzing wave flood your mind.</span>") to_chat(M, "<span class='userdanger'>You feel a tremendous, paralyzing wave flood your mind.</span>")
else else

View File

@@ -294,7 +294,7 @@
/obj/item/book/granter/spell/knock/recoil(mob/living/user) /obj/item/book/granter/spell/knock/recoil(mob/living/user)
..() ..()
to_chat(user,"<span class='warning'>You're knocked down!</span>") to_chat(user,"<span class='warning'>You're knocked down!</span>")
user.Knockdown(40) user.DefaultCombatKnockdown(40)
/obj/item/book/granter/spell/barnyard /obj/item/book/granter/spell/barnyard
spell = /obj/effect/proc_holder/spell/targeted/barnyardcurse spell = /obj/effect/proc_holder/spell/targeted/barnyardcurse

View File

@@ -31,7 +31,7 @@
M.show_message("<span class='warning'>BANG</span>", MSG_AUDIBLE) M.show_message("<span class='warning'>BANG</span>", MSG_AUDIBLE)
var/distance = get_dist(get_turf(M), source) var/distance = get_dist(get_turf(M), source)
if(!distance || loc == M || loc == M.loc) //Stop allahu akbarring rooms with this. if(!distance || loc == M || loc == M.loc) //Stop allahu akbarring rooms with this.
M.Knockdown(200) M.DefaultCombatKnockdown(200)
M.soundbang_act(1, 200, 10, 15) M.soundbang_act(1, 200, 10, 15)
else else
M.soundbang_act(1, max(200/max(1,distance), 60), rand(0, 5)) M.soundbang_act(1, max(200/max(1,distance), 60), rand(0, 5))
@@ -41,4 +41,4 @@
return return
var/distance = get_dist(get_turf(M), source) var/distance = get_dist(get_turf(M), source)
if(M.flash_act(affect_silicon = 1)) if(M.flash_act(affect_silicon = 1))
M.Knockdown(max(200/max(1,distance), 60)) M.DefaultCombatKnockdown(max(200/max(1,distance), 60))

View File

@@ -351,7 +351,7 @@
C.update_inv_legcuffed() C.update_inv_legcuffed()
SSblackbox.record_feedback("tally", "handcuffs", 1, type) SSblackbox.record_feedback("tally", "handcuffs", 1, type)
to_chat(C, "<span class='userdanger'>\The [src] ensnares you!</span>") to_chat(C, "<span class='userdanger'>\The [src] ensnares you!</span>")
C.Knockdown(knockdown) C.DefaultCombatKnockdown(knockdown)
/obj/item/restraints/legcuffs/bola/tactical//traitor variant /obj/item/restraints/legcuffs/bola/tactical//traitor variant
name = "reinforced bola" name = "reinforced bola"

View File

@@ -92,7 +92,7 @@
master.emote("scream") master.emote("scream")
master.remove_status_effect(STATUS_EFFECT_HISGRACE) master.remove_status_effect(STATUS_EFFECT_HISGRACE)
REMOVE_TRAIT(src, TRAIT_NODROP, HIS_GRACE_TRAIT) REMOVE_TRAIT(src, TRAIT_NODROP, HIS_GRACE_TRAIT)
master.Knockdown(60) master.DefaultCombatKnockdown(60)
master.adjustBruteLoss(master.maxHealth) master.adjustBruteLoss(master.maxHealth)
playsound(master, 'sound/effects/splat.ogg', 100, 0) playsound(master, 'sound/effects/splat.ogg', 100, 0)
else else

View File

@@ -673,7 +673,7 @@
add_fingerprint(user) add_fingerprint(user)
if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50)) if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50))
to_chat(user, "<span class ='warning'>You club yourself over the head with [src].</span>") to_chat(user, "<span class ='warning'>You club yourself over the head with [src].</span>")
user.Knockdown(60) user.DefaultCombatKnockdown(60)
if(ishuman(user)) if(ishuman(user))
var/mob/living/carbon/human/H = user var/mob/living/carbon/human/H = user
H.apply_damage(2*force, BRUTE, BODY_ZONE_HEAD) H.apply_damage(2*force, BRUTE, BODY_ZONE_HEAD)

View File

@@ -78,7 +78,7 @@
return return
if(message && imp_in.stat == CONSCIOUS) if(message && imp_in.stat == CONSCIOUS)
imp_in.visible_message("<span class='warning'>[imp_in] doubles over in pain!</span>") imp_in.visible_message("<span class='warning'>[imp_in] doubles over in pain!</span>")
imp_in.Knockdown(140) imp_in.DefaultCombatKnockdown(140)
/obj/item/implant/explosive/proc/boom_goes_the_weasel() /obj/item/implant/explosive/proc/boom_goes_the_weasel()
explosion(get_turf(imp_in ? imp_in : src), heavy, medium, weak, weak, flame_range = weak) explosion(get_turf(imp_in ? imp_in : src), heavy, medium, weak, weak, flame_range = weak)

View File

@@ -199,7 +199,7 @@
add_fingerprint(user) add_fingerprint(user)
if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50)) if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50))
to_chat(user, "<span class ='danger'>You club yourself over the head.</span>") to_chat(user, "<span class ='danger'>You club yourself over the head.</span>")
user.Knockdown(60 * force) user.DefaultCombatKnockdown(60 * force)
if(ishuman(user)) if(ishuman(user))
var/mob/living/carbon/human/H = user var/mob/living/carbon/human/H = user
H.apply_damage(2*force, BRUTE, BODY_ZONE_HEAD) H.apply_damage(2*force, BRUTE, BODY_ZONE_HEAD)
@@ -224,7 +224,7 @@
if(check_martial_counter(H, user)) if(check_martial_counter(H, user))
return return
playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1) playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1)
target.Knockdown(softstun_ds, TRUE, FALSE, hardstun_ds, stam_dmg) target.DefaultCombatKnockdown(softstun_ds, TRUE, FALSE, hardstun_ds, stam_dmg)
log_combat(user, target, "stunned", src) log_combat(user, target, "stunned", src)
src.add_fingerprint(user) src.add_fingerprint(user)
target.visible_message("<span class ='danger'>[user] has knocked down [target] with [src]!</span>", \ target.visible_message("<span class ='danger'>[user] has knocked down [target] with [src]!</span>", \

View File

@@ -168,7 +168,7 @@
if(pressureSetting >= 3 && iscarbon(user)) if(pressureSetting >= 3 && iscarbon(user))
var/mob/living/carbon/C = user var/mob/living/carbon/C = user
C.visible_message("<span class='warning'>[C] is thrown down by the force of the cannon!</span>", "<span class='userdanger'>[src] slams into your shoulder, knocking you down!") C.visible_message("<span class='warning'>[C] is thrown down by the force of the cannon!</span>", "<span class='userdanger'>[src] slams into your shoulder, knocking you down!")
C.Knockdown(60) C.DefaultCombatKnockdown(60)
/obj/item/pneumatic_cannon/proc/fire_items(turf/target, mob/user) /obj/item/pneumatic_cannon/proc/fire_items(turf/target, mob/user)
if(fire_mode == PCANNON_FIREALL) if(fire_mode == PCANNON_FIREALL)

View File

@@ -20,7 +20,7 @@
return return
user.do_attack_animation(M) user.do_attack_animation(M)
M.Knockdown(100) M.DefaultCombatKnockdown(100)
M.apply_effect(EFFECT_STUTTER, 5) M.apply_effect(EFFECT_STUTTER, 5)
M.visible_message("<span class='danger'>[user] has prodded [M] with [src]!</span>", \ M.visible_message("<span class='danger'>[user] has prodded [M] with [src]!</span>", \
@@ -330,7 +330,7 @@
C.stuttering += 10 C.stuttering += 10
C.Jitter(10) C.Jitter(10)
if(2) if(2)
C.Knockdown(40) C.DefaultCombatKnockdown(40)
C.confused += 10 C.confused += 10
C.stuttering += 15 C.stuttering += 15
C.Jitter(25) C.Jitter(25)

View File

@@ -336,7 +336,7 @@
if(ishuman(M) || ismonkey(M)) if(ishuman(M) || ismonkey(M))
if(prob(10)) if(prob(10))
M.Knockdown(40) M.DefaultCombatKnockdown(40)
update_icon() update_icon()
/obj/item/storage/bag/tray/update_icon() /obj/item/storage/bag/tray/update_icon()

View File

@@ -188,7 +188,7 @@
stunpwr *= round(stuncharge/hitcost, 0.1) stunpwr *= round(stuncharge/hitcost, 0.1)
L.Knockdown(stunpwr) L.DefaultCombatKnockdown(stunpwr)
L.adjustStaminaLoss(stunpwr*0.1)//CIT CHANGE - makes stunbatons deal extra staminaloss. Todo: make this also deal pain when pain gets implemented. L.adjustStaminaLoss(stunpwr*0.1)//CIT CHANGE - makes stunbatons deal extra staminaloss. Todo: make this also deal pain when pain gets implemented.
L.apply_effect(EFFECT_STUTTER, stunforce) L.apply_effect(EFFECT_STUTTER, stunforce)
SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK) SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK)
@@ -212,7 +212,7 @@
user.visible_message("<span class='danger'>[user] accidentally hits [user.p_them()]self with [src]!</span>", \ user.visible_message("<span class='danger'>[user] accidentally hits [user.p_them()]self with [src]!</span>", \
"<span class='userdanger'>You accidentally hit yourself with [src]!</span>") "<span class='userdanger'>You accidentally hit yourself with [src]!</span>")
SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK)
user.Knockdown(stunforce*3) user.DefaultCombatKnockdown(stunforce*3)
playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1)
deductcharge(hitcost) deductcharge(hitcost)

View File

@@ -16,7 +16,7 @@
user.visible_message("<span class='danger'>[user] accidentally hits [user.p_them()]self with [src]!</span>", \ user.visible_message("<span class='danger'>[user] accidentally hits [user.p_them()]self with [src]!</span>", \
"<span class='userdanger'>You accidentally hit yourself with [src]!</span>") "<span class='userdanger'>You accidentally hit yourself with [src]!</span>")
SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK)
user.Knockdown(stunforce*3) user.DefaultCombatKnockdown(stunforce*3)
playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1)
if(do_teleport(user, get_turf(user), 50, channel = TELEPORT_CHANNEL_BLUESPACE)) if(do_teleport(user, get_turf(user), 50, channel = TELEPORT_CHANNEL_BLUESPACE))
deductcharge(hitcost) deductcharge(hitcost)

View File

@@ -33,7 +33,7 @@
if(structureclimber && structureclimber != user) if(structureclimber && structureclimber != user)
user.changeNext_move(CLICK_CD_MELEE) user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src) user.do_attack_animation(src)
structureclimber.Knockdown(40) structureclimber.DefaultCombatKnockdown(40)
structureclimber.visible_message("<span class='warning'>[structureclimber] has been knocked off [src].", "You're knocked off [src]!", "You see [structureclimber] get knocked off [src].</span>") structureclimber.visible_message("<span class='warning'>[structureclimber] has been knocked off [src].", "You're knocked off [src]!", "You see [structureclimber] get knocked off [src].</span>")
/obj/structure/ui_act(action, params) /obj/structure/ui_act(action, params)

View File

@@ -332,7 +332,7 @@
if(iscarbon(target)) if(iscarbon(target))
var/mob/living/carbon/C = target var/mob/living/carbon/C = target
if(C.health < C.maxHealth*0.5) if(C.health < C.maxHealth*0.5)
C.Knockdown(20) C.DefaultCombatKnockdown(20)
smash(user) smash(user)
/obj/item/chair/stool /obj/item/chair/stool

View File

@@ -431,7 +431,7 @@
"<span class='italics'>You hear a loud metal bang.</span>") "<span class='italics'>You hear a loud metal bang.</span>")
var/mob/living/L = O var/mob/living/L = O
if(!issilicon(L)) if(!issilicon(L))
L.Knockdown(40) L.DefaultCombatKnockdown(40)
O.forceMove(T) O.forceMove(T)
close() close()
else else

View File

@@ -49,7 +49,7 @@
if(S.mind) if(S.mind)
if(petrified_mob) if(petrified_mob)
S.mind.transfer_to(petrified_mob) S.mind.transfer_to(petrified_mob)
petrified_mob.Knockdown(100) petrified_mob.DefaultCombatKnockdown(100)
to_chat(petrified_mob, "<span class='notice'>You slowly come back to your senses. You are in control of yourself again!</span>") to_chat(petrified_mob, "<span class='notice'>You slowly come back to your senses. You are in control of yourself again!</span>")
qdel(S) qdel(S)

View File

@@ -128,7 +128,7 @@
pushed_mob.pass_flags &= ~PASSTABLE pushed_mob.pass_flags &= ~PASSTABLE
if(pushed_mob.loc != loc) //Something prevented the tabling if(pushed_mob.loc != loc) //Something prevented the tabling
return return
pushed_mob.Knockdown(40) pushed_mob.DefaultCombatKnockdown(40)
pushed_mob.visible_message("<span class='danger'>[user] slams [pushed_mob] onto [src]!</span>", \ pushed_mob.visible_message("<span class='danger'>[user] slams [pushed_mob] onto [src]!</span>", \
"<span class='userdanger'>[user] slams you onto [src]!</span>") "<span class='userdanger'>[user] slams you onto [src]!</span>")
log_combat(user, pushed_mob, "tabled", null, "onto [src]") log_combat(user, pushed_mob, "tabled", null, "onto [src]")
@@ -139,7 +139,7 @@
/obj/structure/table/shove_act(mob/living/target, mob/living/user) /obj/structure/table/shove_act(mob/living/target, mob/living/user)
if(!target.resting) if(!target.resting)
target.Knockdown(SHOVE_KNOCKDOWN_TABLE) target.DefaultCombatKnockdown(SHOVE_KNOCKDOWN_TABLE)
user.visible_message("<span class='danger'>[user.name] shoves [target.name] onto \the [src]!</span>", user.visible_message("<span class='danger'>[user.name] shoves [target.name] onto \the [src]!</span>",
"<span class='danger'>You shove [target.name] onto \the [src]!</span>", null, COMBAT_MESSAGE_RANGE) "<span class='danger'>You shove [target.name] onto \the [src]!</span>", null, COMBAT_MESSAGE_RANGE)
target.forceMove(src.loc) target.forceMove(src.loc)
@@ -249,7 +249,7 @@
debris -= AM debris -= AM
if(istype(AM, /obj/item/shard)) if(istype(AM, /obj/item/shard))
AM.throw_impact(L) AM.throw_impact(L)
L.Knockdown(100) L.DefaultCombatKnockdown(100)
qdel(src) qdel(src)
/obj/structure/table/glass/deconstruct(disassembled = TRUE, wrench_disassembly = 0) /obj/structure/table/glass/deconstruct(disassembled = TRUE, wrench_disassembly = 0)

View File

@@ -74,7 +74,7 @@
pod.visible_message("<span class='warning'>[user] starts putting [GM] into the [pod]!</span>") pod.visible_message("<span class='warning'>[user] starts putting [GM] into the [pod]!</span>")
if(do_after(user, 15, target = src)) if(do_after(user, 15, target = src))
if(open_status == STATION_TUBE_OPEN && GM && user.grab_state >= GRAB_AGGRESSIVE && user.pulling == GM && !GM.buckled && !GM.has_buckled_mobs()) if(open_status == STATION_TUBE_OPEN && GM && user.grab_state >= GRAB_AGGRESSIVE && user.pulling == GM && !GM.buckled && !GM.has_buckled_mobs())
GM.Knockdown(100) GM.DefaultCombatKnockdown(100)
src.Bumped(GM) src.Bumped(GM)
break break
else else

View File

@@ -83,7 +83,7 @@
/obj/structure/trap/stun/trap_effect(mob/living/L) /obj/structure/trap/stun/trap_effect(mob/living/L)
L.electrocute_act(30, src, safety=1) // electrocute act does a message. L.electrocute_act(30, src, safety=1) // electrocute act does a message.
L.Knockdown(100) L.DefaultCombatKnockdown(100)
/obj/structure/trap/fire /obj/structure/trap/fire
name = "flame trap" name = "flame trap"
@@ -92,7 +92,7 @@
/obj/structure/trap/fire/trap_effect(mob/living/L) /obj/structure/trap/fire/trap_effect(mob/living/L)
to_chat(L, "<span class='danger'><B>Spontaneous combustion!</B></span>") to_chat(L, "<span class='danger'><B>Spontaneous combustion!</B></span>")
L.Knockdown(20) L.DefaultCombatKnockdown(20)
/obj/structure/trap/fire/flare() /obj/structure/trap/fire/flare()
..() ..()
@@ -106,7 +106,7 @@
/obj/structure/trap/chill/trap_effect(mob/living/L) /obj/structure/trap/chill/trap_effect(mob/living/L)
to_chat(L, "<span class='danger'><B>You're frozen solid!</B></span>") to_chat(L, "<span class='danger'><B>You're frozen solid!</B></span>")
L.Knockdown(20) L.DefaultCombatKnockdown(20)
L.adjust_bodytemperature(-300) L.adjust_bodytemperature(-300)
L.apply_status_effect(/datum/status_effect/freon) L.apply_status_effect(/datum/status_effect/freon)
@@ -119,7 +119,7 @@
/obj/structure/trap/damage/trap_effect(mob/living/L) /obj/structure/trap/damage/trap_effect(mob/living/L)
to_chat(L, "<span class='danger'><B>The ground quakes beneath your feet!</B></span>") to_chat(L, "<span class='danger'><B>The ground quakes beneath your feet!</B></span>")
L.Knockdown(100) L.DefaultCombatKnockdown(100)
L.adjustBruteLoss(35) L.adjustBruteLoss(35)
/obj/structure/trap/damage/flare() /obj/structure/trap/damage/flare()

View File

@@ -529,7 +529,7 @@
if(B.cell.charge > 0 && B.status == 1) if(B.cell.charge > 0 && B.status == 1)
flick("baton_active", src) flick("baton_active", src)
var/stunforce = B.stunforce var/stunforce = B.stunforce
user.Knockdown(stunforce) user.DefaultCombatKnockdown(stunforce)
user.stuttering = stunforce/20 user.stuttering = stunforce/20
B.deductcharge(B.hitcost) B.deductcharge(B.hitcost)
user.visible_message("<span class='warning'>[user] shocks [user.p_them()]self while attempting to wash the active [B.name]!</span>", \ user.visible_message("<span class='warning'>[user] shocks [user.p_them()]self while attempting to wash the active [B.name]!</span>", \

View File

@@ -273,7 +273,7 @@
var/olddir = C.dir var/olddir = C.dir
if(!(lube & SLIDE_ICE)) if(!(lube & SLIDE_ICE))
C.Knockdown(knockdown_amount) C.DefaultCombatKnockdown(knockdown_amount)
C.stop_pulling() C.stop_pulling()
else else
C.Stun(20) C.Stun(20)

View File

@@ -21,6 +21,6 @@
target.gib(1, 1) target.gib(1, 1)
else else
target.adjustBruteLoss(min(99,(target.health - 1))) target.adjustBruteLoss(min(99,(target.health - 1)))
target.Knockdown(400) target.DefaultCombatKnockdown(400)
target.stuttering = 20 target.stuttering = 20

View File

@@ -507,7 +507,7 @@
L.lastattackerckey = user.ckey L.lastattackerckey = user.ckey
L.adjustStaminaLoss(35) //because previously it took 5-6 hits to actually "incapacitate" someone for the purposes of the sleep inducement L.adjustStaminaLoss(35) //because previously it took 5-6 hits to actually "incapacitate" someone for the purposes of the sleep inducement
L.Knockdown(140) L.DefaultCombatKnockdown(140)
L.apply_effect(EFFECT_STUTTER, 7) L.apply_effect(EFFECT_STUTTER, 7)
SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK) SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK)

View File

@@ -72,7 +72,7 @@
if(rand(5 + powerlevel) >= 5) if(rand(5 + powerlevel) >= 5)
target.visible_message("<span class='danger'>[user] lands a vicious punch, sending [target] away!</span>", \ target.visible_message("<span class='danger'>[user] lands a vicious punch, sending [target] away!</span>", \
"<span class='userdanger'>[user] has landed a horrifying punch on you, sending you flying!!</span>", null, COMBAT_MESSAGE_RANGE) "<span class='userdanger'>[user] has landed a horrifying punch on you, sending you flying!!</span>", null, COMBAT_MESSAGE_RANGE)
target.Knockdown(min(5, rand(10, 10 * powerlevel)) ) target.DefaultCombatKnockdown(min(5, rand(10, 10 * powerlevel)) )
// Chance of KO // Chance of KO
if(rand(6 + powerlevel) >= 6 && target.stat <= UNCONSCIOUS) if(rand(6 + powerlevel) >= 6 && target.stat <= UNCONSCIOUS)
target.Unconscious(40) target.Unconscious(40)
@@ -147,7 +147,7 @@
// Knock Down (if Living) // Knock Down (if Living)
if (isliving(M)) if (isliving(M))
var/mob/living/L = M var/mob/living/L = M
L.Knockdown(pull_power * 10 + 20) L.DefaultCombatKnockdown(pull_power * 10 + 20)
// Knock Back (before Knockdown, which probably cancels pull) // Knock Back (before Knockdown, which probably cancels pull)
var/send_dir = get_dir(owner, M) var/send_dir = get_dir(owner, M)
var/turf/T = get_ranged_target_turf(M, send_dir, pull_power) var/turf/T = get_ranged_target_turf(M, send_dir, pull_power)

View File

@@ -306,7 +306,7 @@
// Bloodsuckers not affected by "the Kiss" of another vampire // Bloodsuckers not affected by "the Kiss" of another vampire
if (!target.mind || !target.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) if (!target.mind || !target.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER))
target.Unconscious(50,0) target.Unconscious(50,0)
target.Knockdown(40 + 5 * level_current,1) target.DefaultCombatKnockdown(40 + 5 * level_current,1)
// NOTE: THis is based on level of power! // NOTE: THis is based on level of power!
if (ishuman(target)) if (ishuman(target))
target.adjustStaminaLoss(5, forced = TRUE)// Base Stamina Damage target.adjustStaminaLoss(5, forced = TRUE)// Base Stamina Damage

View File

@@ -70,7 +70,7 @@
if (newtarget && newtarget != target && !(newtarget in foundtargets))//!newtarget.IsKnockdown()) if (newtarget && newtarget != target && !(newtarget in foundtargets))//!newtarget.IsKnockdown())
if (rand(0, 5) < level_current) if (rand(0, 5) < level_current)
playsound(get_turf(newtarget), "sound/weapons/punch[rand(1,4)].ogg", 15, 1, -1) playsound(get_turf(newtarget), "sound/weapons/punch[rand(1,4)].ogg", 15, 1, -1)
newtarget.Knockdown(10 + level_current * 5) newtarget.DefaultCombatKnockdown(10 + level_current * 5)
if(newtarget.IsStun()) if(newtarget.IsStun())
newtarget.spin(10,1) newtarget.spin(10,1)
if (rand(0,4)) if (rand(0,4))

View File

@@ -70,7 +70,7 @@
if(target.Adjacent(owner)) if(target.Adjacent(owner))
// LEVEL 2: If behind target, mute or unconscious! // LEVEL 2: If behind target, mute or unconscious!
if(do_knockdown) // && level_current >= 1) if(do_knockdown) // && level_current >= 1)
target.Knockdown(15 + 10 * level_current,1) target.DefaultCombatKnockdown(15 + 10 * level_current,1)
target.adjustStaminaLoss(40 + 10 * level_current) target.adjustStaminaLoss(40 + 10 * level_current)
// Cancel Walk (we were close enough to contact them) // Cancel Walk (we were close enough to contact them)
walk(owner, 0) walk(owner, 0)

View File

@@ -30,7 +30,7 @@
H.confused += 3 H.confused += 3
for(var/mob/living/silicon/S in range(2,user)) 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>") to_chat(S, "<span class='userdanger'>Your sensors are disabled by a shower of blood!</span>")
S.Knockdown(60) S.DefaultCombatKnockdown(60)
var/turf = get_turf(user) var/turf = get_turf(user)
user.gib() user.gib()
. = TRUE . = TRUE

View File

@@ -24,7 +24,7 @@
if(issilicon(M)) if(issilicon(M))
SEND_SOUND(M, sound('sound/weapons/flash.ogg')) SEND_SOUND(M, sound('sound/weapons/flash.ogg'))
M.Knockdown(rand(100,200)) M.DefaultCombatKnockdown(rand(100,200))
for(var/obj/machinery/light/L in range(4, user)) for(var/obj/machinery/light/L in range(4, user))
L.on = 1 L.on = 1

View File

@@ -26,7 +26,7 @@
changeling.chem_recharge_slowdown -= 0.5 changeling.chem_recharge_slowdown -= 0.5
if(stacks >= 20) if(stacks >= 20)
to_chat(user, "<span class='danger'>We collapse in exhaustion.</span>") to_chat(user, "<span class='danger'>We collapse in exhaustion.</span>")
user.Knockdown(60) user.DefaultCombatKnockdown(60)
user.emote("gasp") user.emote("gasp")
INVOKE_ASYNC(src, .proc/muscle_loop, user) INVOKE_ASYNC(src, .proc/muscle_loop, user)
@@ -40,7 +40,7 @@
if(user.stat != CONSCIOUS || user.staminaloss >= 90) if(user.stat != CONSCIOUS || user.staminaloss >= 90)
active = !active active = !active
to_chat(user, "<span class='notice'>Our muscles relax without the energy to strengthen them.</span>") to_chat(user, "<span class='notice'>Our muscles relax without the energy to strengthen them.</span>")
user.Knockdown(40) user.DefaultCombatKnockdown(40)
user.remove_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES) user.remove_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES)
changeling.chem_recharge_slowdown -= 0.5 changeling.chem_recharge_slowdown -= 0.5
break break

View File

@@ -80,7 +80,7 @@
if(iscultist(L)) //No longer stuns cultists, instead sets them on fire and burns them if(iscultist(L)) //No longer stuns cultists, instead sets them on fire and burns them
to_chat(L, "<span class='heavy_brass'>\"Watch your step, wretch.\"</span>") to_chat(L, "<span class='heavy_brass'>\"Watch your step, wretch.\"</span>")
L.adjustFireLoss(10) L.adjustFireLoss(10)
L.Knockdown(20, FALSE) L.DefaultCombatKnockdown(20, FALSE)
L.adjust_fire_stacks(5) //Burn! L.adjust_fire_stacks(5) //Burn!
L.IgniteMob() L.IgniteMob()
else else
@@ -155,7 +155,7 @@
if(brutedamage || burndamage) if(brutedamage || burndamage)
L.adjustBruteLoss(-(brutedamage * 0.25)) L.adjustBruteLoss(-(brutedamage * 0.25))
L.adjustFireLoss(-(burndamage * 0.25)) L.adjustFireLoss(-(burndamage * 0.25))
L.Knockdown(50) //Completely defenseless for five seconds - mainly to give them time to read over the information they've just been presented with L.DefaultCombatKnockdown(50) //Completely defenseless for five seconds - mainly to give them time to read over the information they've just been presented with
if(iscarbon(L)) if(iscarbon(L))
var/mob/living/carbon/C = L var/mob/living/carbon/C = L
C.silent += 5 C.silent += 5

View File

@@ -196,7 +196,7 @@
if(!iscultist(L)) if(!iscultist(L))
L.visible_message("<span class='warning'>[L]'s eyes blaze with brilliant light!</span>", \ L.visible_message("<span class='warning'>[L]'s eyes blaze with brilliant light!</span>", \
"<span class='userdanger'>Your vision suddenly screams with white-hot light!</span>") "<span class='userdanger'>Your vision suddenly screams with white-hot light!</span>")
L.Knockdown(15, TRUE, FALSE, 15) L.DefaultCombatKnockdown(15, TRUE, FALSE, 15)
L.apply_status_effect(STATUS_EFFECT_KINDLE) L.apply_status_effect(STATUS_EFFECT_KINDLE)
L.flash_act(1, 1) L.flash_act(1, 1)
if(issilicon(target)) if(issilicon(target))

View File

@@ -57,15 +57,15 @@
else if(!..()) else if(!..())
if(!L.anti_magic_check()) if(!L.anti_magic_check())
if(issilicon(L)) if(issilicon(L))
L.Knockdown(100) L.DefaultCombatKnockdown(100)
else if(iscultist(L)) else if(iscultist(L))
L.confused += CLAMP(10 - L.confused, 0, 5) // Spearthrow now confuses enemy cultists + just deals extra damage / sets on fire instead of hardstunning + damage L.confused += CLAMP(10 - L.confused, 0, 5) // Spearthrow now confuses enemy cultists + just deals extra damage / sets on fire instead of hardstunning + damage
to_chat(L, "<span class ='userdanger'>[src] crashes into you with burning force, sending you reeling!</span>") to_chat(L, "<span class ='userdanger'>[src] crashes into you with burning force, sending you reeling!</span>")
L.adjust_fire_stacks(2) L.adjust_fire_stacks(2)
L.Knockdown(1) L.DefaultCombatKnockdown(1)
L.IgniteMob() L.IgniteMob()
else else
L.Knockdown(40) L.DefaultCombatKnockdown(40)
GLOB.clockwork_vitality += L.adjustFireLoss(bonus_burn * 3) //normally a total of 40 damage, 70 with ratvar GLOB.clockwork_vitality += L.adjustFireLoss(bonus_burn * 3) //normally a total of 40 damage, 70 with ratvar
break_spear(T) break_spear(T)
else else

View File

@@ -176,7 +176,7 @@
var/datum/status_effect/belligerent/B = C.apply_status_effect(STATUS_EFFECT_BELLIGERENT) var/datum/status_effect/belligerent/B = C.apply_status_effect(STATUS_EFFECT_BELLIGERENT)
if(!QDELETED(B)) if(!QDELETED(B))
B.duration = world.time + 30 B.duration = world.time + 30
C.Knockdown(5) //knocks down for half a second if affected C.DefaultCombatKnockdown(5) //knocks down for half a second if affected
sleep(!GLOB.ratvar_approaches ? 16 : 10) sleep(!GLOB.ratvar_approaches ? 16 : 10)
name = "judicial blast" name = "judicial blast"
layer = ABOVE_ALL_MOB_LAYER layer = ABOVE_ALL_MOB_LAYER
@@ -196,7 +196,7 @@
L.visible_message("<span class='warning'>Strange energy flows into [L]'s [I.name]!</span>", \ L.visible_message("<span class='warning'>Strange energy flows into [L]'s [I.name]!</span>", \
"<span class='userdanger'>Your [I.name] shields you from [src]!</span>") "<span class='userdanger'>Your [I.name] shields you from [src]!</span>")
continue continue
L.Knockdown(15) //knocks down briefly when exploding L.DefaultCombatKnockdown(15) //knocks down briefly when exploding
if(!iscultist(L)) if(!iscultist(L))
L.visible_message("<span class='warning'>[L] is struck by a judicial explosion!</span>", \ 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>") "<span class='userdanger'>[!issilicon(L) ? "An unseen force slams you into the ground!" : "ERROR: Motor servos disabled by external source!"]</span>")

View File

@@ -57,5 +57,5 @@
L.confused = min(L.confused + 15, 50) L.confused = min(L.confused + 15, 50)
L.dizziness = min(L.dizziness + 15, 50) L.dizziness = min(L.dizziness + 15, 50)
if(L.confused >= 25) if(L.confused >= 25)
L.Knockdown(FLOOR(L.confused * 0.8, 1)) L.DefaultCombatKnockdown(FLOOR(L.confused * 0.8, 1))
take_damage(max_integrity) take_damage(max_integrity)

View File

@@ -22,7 +22,7 @@
if(buckled_mobs && LAZYLEN(buckled_mobs)) if(buckled_mobs && LAZYLEN(buckled_mobs))
var/mob/living/L = buckled_mobs[1] var/mob/living/L = buckled_mobs[1]
if(iscarbon(L)) if(iscarbon(L))
L.Knockdown(100) L.DefaultCombatKnockdown(100)
L.visible_message("<span class='warning'>[L] is maimed as the skewer shatters while still in [L.p_their()] body!</span>") L.visible_message("<span class='warning'>[L] is maimed as the skewer shatters while still in [L.p_their()] body!</span>")
L.adjustBruteLoss(15) L.adjustBruteLoss(15)
unbuckle_mob(L) unbuckle_mob(L)
@@ -117,6 +117,6 @@
return return
skewee.visible_message("<span class='danger'>[skewee] comes free of [src] with a squelching pop!</span>", \ skewee.visible_message("<span class='danger'>[skewee] comes free of [src] with a squelching pop!</span>", \
"<span class='boldannounce'>You come free of [src]!</span>") "<span class='boldannounce'>You come free of [src]!</span>")
skewee.Knockdown(30) skewee.DefaultCombatKnockdown(30)
playsound(skewee, 'sound/misc/desceration-03.ogg', 50, TRUE) playsound(skewee, 'sound/misc/desceration-03.ogg', 50, TRUE)
unbuckle_mob(skewee) unbuckle_mob(skewee)

View File

@@ -439,7 +439,7 @@
"<span class='userdanger'>A feeling of warmth washes over you, rays of holy light surround your body and protect you from the flash of light!</span>") "<span class='userdanger'>A feeling of warmth washes over you, rays of holy light surround your body and protect you from the flash of light!</span>")
else else
if(!iscultist(L)) if(!iscultist(L))
L.Knockdown(160) L.DefaultCombatKnockdown(160)
L.adjustStaminaLoss(140) //Ensures hard stamcrit L.adjustStaminaLoss(140) //Ensures hard stamcrit
L.flash_act(1,1) L.flash_act(1,1)
if(issilicon(target)) if(issilicon(target))

View File

@@ -49,7 +49,7 @@
/obj/item/melee/cultblade/attack(mob/living/target, mob/living/carbon/human/user) /obj/item/melee/cultblade/attack(mob/living/target, mob/living/carbon/human/user)
if(!iscultist(user)) if(!iscultist(user))
user.Knockdown(100) user.DefaultCombatKnockdown(100)
user.dropItemToGround(src, TRUE) user.dropItemToGround(src, TRUE)
user.visible_message("<span class='warning'>A powerful force shoves [user] away from [target]!</span>", \ 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>") "<span class='cultlarge'>\"You shouldn't play with sharp things. You'll poke someone's eye out.\"</span>")
@@ -148,7 +148,7 @@
user.emote("scream") user.emote("scream")
user.apply_damage(30, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) user.apply_damage(30, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
user.dropItemToGround(src, TRUE) user.dropItemToGround(src, TRUE)
user.Knockdown(50) user.DefaultCombatKnockdown(50)
return return
force = initial(force) force = initial(force)
jaunt.Grant(user, src) jaunt.Grant(user, src)
@@ -405,7 +405,7 @@
to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>") to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>")
user.dropItemToGround(src, TRUE) user.dropItemToGround(src, TRUE)
user.Dizzy(30) user.Dizzy(30)
user.Knockdown(100) user.DefaultCombatKnockdown(100)
else 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='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>") to_chat(user, "<span class='userdanger'>The armor squeezes at your body!</span>")
@@ -457,7 +457,7 @@
to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>") to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>")
user.dropItemToGround(src, TRUE) user.dropItemToGround(src, TRUE)
user.Dizzy(30) user.Dizzy(30)
user.Knockdown(100) user.DefaultCombatKnockdown(100)
else 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='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>") to_chat(user, "<span class='userdanger'>The robes squeeze at your body!</span>")
@@ -478,7 +478,7 @@
to_chat(user, "<span class='cultlarge'>\"You want to be blind, do you?\"</span>") to_chat(user, "<span class='cultlarge'>\"You want to be blind, do you?\"</span>")
user.dropItemToGround(src, TRUE) user.dropItemToGround(src, TRUE)
user.Dizzy(30) user.Dizzy(30)
user.Knockdown(100) user.DefaultCombatKnockdown(100)
user.blind_eyes(30) user.blind_eyes(30)
/obj/item/reagent_containers/glass/beaker/unholywater /obj/item/reagent_containers/glass/beaker/unholywater
@@ -499,7 +499,7 @@
/obj/item/shuttle_curse/attack_self(mob/living/user) /obj/item/shuttle_curse/attack_self(mob/living/user)
if(!iscultist(user)) if(!iscultist(user))
user.dropItemToGround(src, TRUE) user.dropItemToGround(src, TRUE)
user.Knockdown(100) user.DefaultCombatKnockdown(100)
to_chat(user, "<span class='warning'>A powerful force shoves you away from [src]!</span>") to_chat(user, "<span class='warning'>A powerful force shoves you away from [src]!</span>")
return return
if(curselimit > 1) if(curselimit > 1)
@@ -705,10 +705,10 @@
if(is_servant_of_ratvar(L)) if(is_servant_of_ratvar(L))
to_chat(L, "<span class='cultlarge'>\"Kneel for me, scum\"</span>") to_chat(L, "<span class='cultlarge'>\"Kneel for me, scum\"</span>")
L.confused += CLAMP(10 - L.confused, 0, 5) //confuses and lightly knockdowns + damages hostile cultists instead of hardstunning like before L.confused += CLAMP(10 - L.confused, 0, 5) //confuses and lightly knockdowns + damages hostile cultists instead of hardstunning like before
L.Knockdown(15) L.DefaultCombatKnockdown(15)
L.adjustBruteLoss(10) L.adjustBruteLoss(10)
else else
L.Knockdown(50) L.DefaultCombatKnockdown(50)
break_spear(T) break_spear(T)
else else
..() ..()
@@ -843,7 +843,7 @@
INVOKE_ASYNC(src, .proc/pewpew, user, params) INVOKE_ASYNC(src, .proc/pewpew, user, params)
var/obj/structure/emergency_shield/invoker/N = new(user.loc) var/obj/structure/emergency_shield/invoker/N = new(user.loc)
if(do_after(user, 90, target = user)) if(do_after(user, 90, target = user))
user.Knockdown(40) user.DefaultCombatKnockdown(40)
to_chat(user, "<span class='cult italic'>You have exhausted the power of this spell!</span>") to_chat(user, "<span class='cult italic'>You have exhausted the power of this spell!</span>")
firing = FALSE firing = FALSE
if(N) if(N)
@@ -908,7 +908,7 @@
else else
var/mob/living/L = target var/mob/living/L = target
if(L.density) if(L.density)
L.Knockdown(20) L.DefaultCombatKnockdown(20)
L.adjustBruteLoss(45) L.adjustBruteLoss(45)
playsound(L, 'sound/hallucinations/wail.ogg', 50, 1) playsound(L, 'sound/hallucinations/wail.ogg', 50, 1)
L.emote("scream") L.emote("scream")
@@ -944,7 +944,7 @@
T.visible_message("<span class='warning'>The sheer force from [P] shatters the mirror shield!</span>") T.visible_message("<span class='warning'>The sheer force from [P] shatters the mirror shield!</span>")
new /obj/effect/temp_visual/cult/sparks(T) new /obj/effect/temp_visual/cult/sparks(T)
playsound(T, 'sound/effects/glassbr3.ogg', 100) playsound(T, 'sound/effects/glassbr3.ogg', 100)
owner.Knockdown(25) owner.DefaultCombatKnockdown(25)
qdel(src) qdel(src)
return FALSE return FALSE
if(P.is_reflectable) if(P.is_reflectable)
@@ -1001,9 +1001,9 @@
else if(!..()) else if(!..())
if(!L.anti_magic_check()) if(!L.anti_magic_check())
if(is_servant_of_ratvar(L)) if(is_servant_of_ratvar(L))
L.Knockdown(60) L.DefaultCombatKnockdown(60)
else else
L.Knockdown(30) L.DefaultCombatKnockdown(30)
if(D.thrower) if(D.thrower)
for(var/mob/living/Next in orange(2, T)) for(var/mob/living/Next in orange(2, T))
if(!Next.density || iscultist(Next)) if(!Next.density || iscultist(Next))

View File

@@ -219,7 +219,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>", \ 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='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>") <span class='large_brass'>\"Give up and you will feel pain unlike anything you've ever felt!\"</span>")
L.Knockdown(80) L.DefaultCombatKnockdown(80)
else if(is_convertable) else if(is_convertable)
do_convert(L, invokers) do_convert(L, invokers)
else else
@@ -908,7 +908,7 @@ structure_check() searches for nearby cultist structures required for the invoca
if(affecting.key) if(affecting.key)
affecting.visible_message("<span class='warning'>[affecting] slowly relaxes, the glow around [affecting.p_them()] dimming.</span>", \ 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>") "<span class='danger'>You are re-united with your physical form. [src] releases its hold over you.</span>")
affecting.Knockdown(40) affecting.DefaultCombatKnockdown(40)
break break
if(affecting.health <= 10) if(affecting.health <= 10)
to_chat(G, "<span class='cultitalic'>Your body can no longer sustain the connection!</span>") to_chat(G, "<span class='cultitalic'>Your body can no longer sustain the connection!</span>")
@@ -970,7 +970,7 @@ structure_check() searches for nearby cultist structures required for the invoca
playsound(T, 'sound/magic/enter_blood.ogg', 100, 1) playsound(T, 'sound/magic/enter_blood.ogg', 100, 1)
visible_message("<span class='warning'>A colossal shockwave of energy bursts from the rune, disintegrating it in the process!</span>") visible_message("<span class='warning'>A colossal shockwave of energy bursts from the rune, disintegrating it in the process!</span>")
for(var/mob/living/L in range(src, 3)) for(var/mob/living/L in range(src, 3))
L.Knockdown(30) L.DefaultCombatKnockdown(30)
empulse(T, 0.42*(intensity), 1) empulse(T, 0.42*(intensity), 1)
var/list/images = list() var/list/images = list()
var/zmatch = T.z var/zmatch = T.z

View File

@@ -32,7 +32,7 @@
if(BANE_HARVEST) if(BANE_HARVEST)
if(istype(weapon, /obj/item/reagent_containers/food/snacks/grown/)) if(istype(weapon, /obj/item/reagent_containers/food/snacks/grown/))
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>") 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) DefaultCombatKnockdown(40)
qdel(weapon) qdel(weapon)
return 2 return 2
return 1 return 1

View File

@@ -584,7 +584,7 @@
playsound(loc,'sound/effects/snap.ogg',50, 1, -1) playsound(loc,'sound/effects/snap.ogg',50, 1, -1)
L.electrocute_act(0, src, 1, 1, 1) L.electrocute_act(0, src, 1, 1, 1)
if(iscyborg(L)) if(iscyborg(L))
L.Knockdown(100) L.DefaultCombatKnockdown(100)
qdel(src) qdel(src)
..() ..()

View File

@@ -261,7 +261,7 @@
GiveHint(target) GiveHint(target)
else if(is_pointed(I)) else if(is_pointed(I))
to_chat(target, "<span class='userdanger'>You feel a stabbing pain in [parse_zone(user.zone_selected)]!</span>") to_chat(target, "<span class='userdanger'>You feel a stabbing pain in [parse_zone(user.zone_selected)]!</span>")
target.Knockdown(40) target.DefaultCombatKnockdown(40)
GiveHint(target) GiveHint(target)
else if(istype(I, /obj/item/bikehorn)) else if(istype(I, /obj/item/bikehorn))
to_chat(target, "<span class='userdanger'>HONK</span>") to_chat(target, "<span class='userdanger'>HONK</span>")

View File

@@ -150,7 +150,7 @@
var/mob/living/silicon/robot/R = M var/mob/living/silicon/robot/R = M
log_combat(user, R, "flashed", src) log_combat(user, R, "flashed", src)
update_icon(1) update_icon(1)
R.Knockdown(rand(80,120)) R.DefaultCombatKnockdown(rand(80,120))
var/diff = 5 * CONFUSION_STACK_MAX_MULTIPLIER - M.confused var/diff = 5 * CONFUSION_STACK_MAX_MULTIPLIER - M.confused
R.confused += min(5, diff) R.confused += min(5, diff)
R.flash_act(affect_silicon = 1) R.flash_act(affect_silicon = 1)
@@ -204,7 +204,7 @@
. = ..() . = ..()
new /obj/effect/temp_visual/borgflash(get_turf(src)) new /obj/effect/temp_visual/borgflash(get_turf(src))
if(. && !CONFIG_GET(flag/disable_borg_flash_knockdown) && iscarbon(M) && !M.resting && !M.get_eye_protection()) if(. && !CONFIG_GET(flag/disable_borg_flash_knockdown) && iscarbon(M) && !M.resting && !M.get_eye_protection())
M.Knockdown(80) M.DefaultCombatKnockdown(80)
/obj/item/assembly/flash/cyborg/attack_self(mob/user) /obj/item/assembly/flash/cyborg/attack_self(mob/user)
..() ..()

View File

@@ -48,7 +48,7 @@
if("feet") if("feet")
if(!H.shoes) if(!H.shoes)
affecting = H.get_bodypart(pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) affecting = H.get_bodypart(pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
H.Knockdown(60) H.DefaultCombatKnockdown(60)
if(BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND) if(BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND)
if(!H.gloves) if(!H.gloves)
affecting = H.get_bodypart(type) affecting = H.get_bodypart(type)

View File

@@ -220,7 +220,7 @@
if(user.wear_suit == src) if(user.wear_suit == src)
if(hard_landing) if(hard_landing)
user.electrocute_act(35, src, safety = 1) user.electrocute_act(35, src, safety = 1)
user.Knockdown(200) user.DefaultCombatKnockdown(200)
if(!silent) if(!silent)
to_chat(user, "\nroot@ChronosuitMK4# chronowalk4 --stop\n") to_chat(user, "\nroot@ChronosuitMK4# chronowalk4 --stop\n")
if(camera) if(camera)

View File

@@ -481,7 +481,7 @@
adjust_momentum(0, 0, 10) adjust_momentum(0, 0, 10)
wearer.visible_message("<span class='warning'>[wearer]'s flight suit crashes into the ground!</span>") wearer.visible_message("<span class='warning'>[wearer]'s flight suit crashes into the ground!</span>")
if(knockdown) if(knockdown)
wearer.Knockdown(80) wearer.DefaultCombatKnockdown(80)
momentum_x = 0 momentum_x = 0
momentum_y = 0 momentum_y = 0
calculate_momentum_speed() calculate_momentum_speed()

View File

@@ -242,7 +242,7 @@
return return
owner.visible_message("<span class='danger'>The reactive teleport system flings [H] clear of [attack_text] and slams [H.p_them()] into a fabricated table!</span>") owner.visible_message("<span class='danger'>The reactive teleport system flings [H] clear of [attack_text] and slams [H.p_them()] into a fabricated table!</span>")
owner.visible_message("<font color='red' size='3'>[H] GOES ON THE TABLE!!!</font>") owner.visible_message("<font color='red' size='3'>[H] GOES ON THE TABLE!!!</font>")
owner.Knockdown(40) owner.DefaultCombatKnockdown(40)
var/list/turfs = new/list() var/list/turfs = new/list()
for(var/turf/T in orange(tele_range, H)) for(var/turf/T in orange(tele_range, H))
if(T.density) if(T.density)

View File

@@ -42,7 +42,7 @@
if(R.has_buckled_mobs()) if(R.has_buckled_mobs())
for(var/mob/living/L in R.buckled_mobs) for(var/mob/living/L in R.buckled_mobs)
L.visible_message("<span class='warning'>[L] is knocked off of [R] by the charge in [R]'s chassis induced by [name]!</span>") //I know it's bad. L.visible_message("<span class='warning'>[L] is knocked off of [R] by the charge in [R]'s chassis induced by [name]!</span>") //I know it's bad.
L.Knockdown(10) L.DefaultCombatKnockdown(10)
R.unbuckle_mob(L) R.unbuckle_mob(L)
do_sparks(5, 0, L) do_sparks(5, 0, L)
..() ..()

View File

@@ -217,7 +217,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
/obj/effect/hallucination/simple/xeno/throw_impact(A) /obj/effect/hallucination/simple/xeno/throw_impact(A)
update_icon("alienh_pounce") update_icon("alienh_pounce")
if(A == target && target.stat!=DEAD) if(A == target && target.stat!=DEAD)
target.Knockdown(100) target.DefaultCombatKnockdown(100)
target.visible_message("<span class='danger'>[target] flails around wildly.</span>","<span class ='userdanger'>[name] pounces on you!</span>") target.visible_message("<span class='danger'>[target] flails around wildly.</span>","<span class ='userdanger'>[name] pounces on you!</span>")
/datum/hallucination/xeno_attack /datum/hallucination/xeno_attack
@@ -304,7 +304,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
shake_camera(target, 2, 1) shake_camera(target, 2, 1)
if(bubblegum.Adjacent(target) && !charged) if(bubblegum.Adjacent(target) && !charged)
charged = TRUE charged = TRUE
target.Knockdown(80) target.DefaultCombatKnockdown(80)
target.adjustStaminaLoss(40) target.adjustStaminaLoss(40)
step_away(target, bubblegum) step_away(target, bubblegum)
shake_camera(target, 4, 3) shake_camera(target, 4, 3)
@@ -1102,7 +1102,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
if(istype(target, /obj/effect/dummy/phased_mob)) if(istype(target, /obj/effect/dummy/phased_mob))
return return
to_chat(target, "<span class='userdanger'>You fall into the chasm!</span>") to_chat(target, "<span class='userdanger'>You fall into the chasm!</span>")
target.Knockdown(40) target.DefaultCombatKnockdown(40)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, target, "<span class='notice'>It's surprisingly shallow.</span>"), 15) addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, target, "<span class='notice'>It's surprisingly shallow.</span>"), 15)
QDEL_IN(src, 30) QDEL_IN(src, 30)
@@ -1136,7 +1136,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
set waitfor = FALSE set waitfor = FALSE
..() ..()
target.set_screwyhud(SCREWYHUD_DEAD) target.set_screwyhud(SCREWYHUD_DEAD)
target.Knockdown(300) target.DefaultCombatKnockdown(300)
target.silent += 10 target.silent += 10
to_chat(target, "<span class='deadsay'><b>[target.real_name]</b> has died at <b>[get_area_name(target)]</b>.</span>") to_chat(target, "<span class='deadsay'><b>[target.real_name]</b> has died at <b>[get_area_name(target)]</b>.</span>")
if(prob(50)) if(prob(50))
@@ -1241,7 +1241,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
/datum/hallucination/shock/proc/shock_drop() /datum/hallucination/shock/proc/shock_drop()
target.jitteriness = max(target.jitteriness - 990, 10) //Still jittery, but vastly less target.jitteriness = max(target.jitteriness - 990, 10) //Still jittery, but vastly less
target.Knockdown(60) target.DefaultCombatKnockdown(60)
/datum/hallucination/husks /datum/hallucination/husks
@@ -1314,7 +1314,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
"<span class='userdanger'>[G] grabs your wrist and violently wrenches it to the side!</span>") "<span class='userdanger'>[G] grabs your wrist and violently wrenches it to the side!</span>")
C.emote("scream") C.emote("scream")
C.dropItemToGround(C.get_active_held_item()) C.dropItemToGround(C.get_active_held_item())
C.Knockdown(60) C.DefaultCombatKnockdown(60)
else else
to_chat(C,"<span class='userdanger'>[G] violently grabs you!</span>") to_chat(C,"<span class='userdanger'>[G] violently grabs you!</span>")
qdel(src) qdel(src)

View File

@@ -85,7 +85,7 @@
head_attack_message = " on the head" head_attack_message = " on the head"
//Knockdown the target for the duration that we calculated and divide it by 5. //Knockdown the target for the duration that we calculated and divide it by 5.
if(armor_duration) if(armor_duration)
target.Knockdown(min(armor_duration, 200)) // Never knockdown more than a flash! target.DefaultCombatKnockdown(min(armor_duration, 200)) // Never knockdown more than a flash!
//Display an attack message. //Display an attack message.
if(target != user) if(target != user)

View File

@@ -225,7 +225,7 @@
if(iscarbon(M)) if(iscarbon(M))
M.visible_message("[src] bursts out of [M]!</span>") M.visible_message("[src] bursts out of [M]!</span>")
M.emote("scream") M.emote("scream")
M.Knockdown(40) M.DefaultCombatKnockdown(40)
M.adjustBruteLoss(60) M.adjustBruteLoss(60)
Expand() Expand()
return ..() return ..()

View File

@@ -49,7 +49,7 @@
else else
creamoverlay.icon_state = "creampie_human" creamoverlay.icon_state = "creampie_human"
if(stunning) if(stunning)
H.Knockdown(20) //splat! H.DefaultCombatKnockdown(20) //splat!
H.adjust_blurriness(1) H.adjust_blurriness(1)
H.visible_message("<span class='warning'>[H] is creamed by [src]!</span>", "<span class='userdanger'>You've been creamed by [src]!</span>") H.visible_message("<span class='warning'>[H] is creamed by [src]!</span>", "<span class='userdanger'>You've been creamed by [src]!</span>")
playsound(H, "desceration", 50, TRUE) playsound(H, "desceration", 50, TRUE)
@@ -82,7 +82,7 @@
A.throw_at(T, 1, 1) A.throw_at(T, 1, 1)
M.visible_message("[src] bursts out of [M]!</span>") M.visible_message("[src] bursts out of [M]!</span>")
M.emote("scream") M.emote("scream")
M.Knockdown(40) M.DefaultCombatKnockdown(40)
M.adjustBruteLoss(60) M.adjustBruteLoss(60)
return ..() return ..()

View File

@@ -150,6 +150,6 @@ God bless America.
reagents.reaction(C, TOUCH) reagents.reaction(C, TOUCH)
C.apply_damage(min(30, reagents.total_volume), BURN, BODY_ZONE_HEAD) C.apply_damage(min(30, reagents.total_volume), BURN, BODY_ZONE_HEAD)
reagents.remove_any((reagents.total_volume/2)) reagents.remove_any((reagents.total_volume/2))
C.Knockdown(60) C.DefaultCombatKnockdown(60)
user.changeNext_move(CLICK_CD_MELEE) user.changeNext_move(CLICK_CD_MELEE)
return ..() return ..()

View File

@@ -87,7 +87,7 @@
playsound(src, 'sound/items/dodgeball.ogg', 50, 1) playsound(src, 'sound/items/dodgeball.ogg', 50, 1)
M.apply_damage(10, STAMINA) M.apply_damage(10, STAMINA)
if(prob(5)) if(prob(5))
M.Knockdown(60) M.DefaultCombatKnockdown(60)
visible_message("<span class='danger'>[M] is knocked right off [M.p_their()] feet!</span>") visible_message("<span class='danger'>[M] is knocked right off [M.p_their()] feet!</span>")
// //
@@ -117,7 +117,7 @@
to_chat(user, "<span class='warning'>You need a better grip to do that!</span>") to_chat(user, "<span class='warning'>You need a better grip to do that!</span>")
return return
L.forceMove(loc) L.forceMove(loc)
L.Knockdown(100) L.DefaultCombatKnockdown(100)
visible_message("<span class='danger'>[user] dunks [L] into \the [src]!</span>") visible_message("<span class='danger'>[user] dunks [L] into \the [src]!</span>")
user.stop_pulling() user.stop_pulling()
else else

View File

@@ -98,7 +98,7 @@
/obj/item/reagent_containers/food/snacks/grown/nettle/death/pickup(mob/living/carbon/user) /obj/item/reagent_containers/food/snacks/grown/nettle/death/pickup(mob/living/carbon/user)
if(..()) if(..())
if(prob(50)) if(prob(50))
user.Knockdown(100) user.DefaultCombatKnockdown(100)
to_chat(user, "<span class='userdanger'>You are stunned by the Deathnettle as you try picking it up!</span>") to_chat(user, "<span class='userdanger'>You are stunned by the Deathnettle as you try picking it up!</span>")
/obj/item/reagent_containers/food/snacks/grown/nettle/death/attack(mob/living/carbon/M, mob/user) /obj/item/reagent_containers/food/snacks/grown/nettle/death/attack(mob/living/carbon/M, mob/user)
@@ -111,5 +111,5 @@
M.adjust_blurriness(force/7) M.adjust_blurriness(force/7)
if(prob(20)) if(prob(20))
M.Unconscious(force / 0.3) M.Unconscious(force / 0.3)
M.Knockdown(force / 0.75) M.DefaultCombatKnockdown(force / 0.75)
M.drop_all_held_items() M.drop_all_held_items()

View File

@@ -336,7 +336,7 @@
if(!L || !isliving(L)) if(!L || !isliving(L))
return 0 return 0
L.Knockdown(stunforce) L.DefaultCombatKnockdown(stunforce)
SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK) SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK)
message_admins("stunned someone with an assembly. Last touches: Assembly: [assembly.fingerprintslast] Circuit: [fingerprintslast]") message_admins("stunned someone with an assembly. Last touches: Assembly: [assembly.fingerprintslast] Circuit: [fingerprintslast]")

View File

@@ -93,7 +93,7 @@
playsound(M,'sound/weapons/resonator_blast.ogg',50,1) playsound(M,'sound/weapons/resonator_blast.ogg',50,1)
if(iscarbon(M)) if(iscarbon(M))
var/mob/living/carbon/L = M var/mob/living/carbon/L = M
L.Knockdown(60) L.DefaultCombatKnockdown(60)
if(ishuman(L)) if(ishuman(L))
shake_camera(L, 20, 1) shake_camera(L, 20, 1)
addtimer(CALLBACK(L, /mob/living/carbon.proc/vomit), 20) addtimer(CALLBACK(L, /mob/living/carbon.proc/vomit), 20)

View File

@@ -73,7 +73,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
var/mutable_appearance/balloon3 var/mutable_appearance/balloon3
if(isliving(A)) if(isliving(A))
var/mob/living/M = A var/mob/living/M = A
M.Knockdown(320) // Keep them from moving during the duration of the extraction M.DefaultCombatKnockdown(320) // Keep them from moving during the duration of the extraction
M.buckled = 0 // Unbuckle them to prevent anchoring problems M.buckled = 0 // Unbuckle them to prevent anchoring problems
else else
A.anchored = TRUE A.anchored = TRUE

View File

@@ -65,16 +65,16 @@
var/mob/living/L = A var/mob/living/L = A
if(!L.check_shields(src, 0, "the [name]", attack_type = LEAP_ATTACK)) if(!L.check_shields(src, 0, "the [name]", attack_type = LEAP_ATTACK))
L.visible_message("<span class ='danger'>[src] pounces on [L]!</span>", "<span class ='userdanger'>[src] pounces on you!</span>") L.visible_message("<span class ='danger'>[src] pounces on [L]!</span>", "<span class ='userdanger'>[src] pounces on you!</span>")
L.Knockdown(100) L.DefaultCombatKnockdown(100)
sleep(2)//Runtime prevention (infinite bump() calls on hulks) sleep(2)//Runtime prevention (infinite bump() calls on hulks)
step_towards(src,L) step_towards(src,L)
else else
Knockdown(40, 1, 1) DefaultCombatKnockdown(40, 1, 1)
toggle_leap(0) toggle_leap(0)
else if(A.density && !A.CanPass(src)) else if(A.density && !A.CanPass(src))
visible_message("<span class ='danger'>[src] smashes into [A]!</span>", "<span class ='alertalien'>[src] smashes into [A]!</span>") visible_message("<span class ='danger'>[src] smashes into [A]!</span>", "<span class ='alertalien'>[src] smashes into [A]!</span>")
Knockdown(40, 1, 1) DefaultCombatKnockdown(40, 1, 1)
if(leaping) if(leaping)
leaping = 0 leaping = 0

View File

@@ -138,7 +138,7 @@
else if(ishuman(owner)) //Humans, being more fragile, are more overwhelmed by the mental backlash. else if(ishuman(owner)) //Humans, being more fragile, are more overwhelmed by the mental backlash.
to_chat(owner, "<span class='danger'>You feel a splitting pain in your head, and are struck with a wave of nausea. You cannot hear the hivemind anymore!</span>") to_chat(owner, "<span class='danger'>You feel a splitting pain in your head, and are struck with a wave of nausea. You cannot hear the hivemind anymore!</span>")
owner.emote("scream") owner.emote("scream")
owner.Knockdown(100) owner.DefaultCombatKnockdown(100)
owner.jitteriness += 30 owner.jitteriness += 30
owner.confused += 30 owner.confused += 30

View File

@@ -105,7 +105,7 @@
hurt = FALSE hurt = FALSE
if(hit_atom.density && isturf(hit_atom)) if(hit_atom.density && isturf(hit_atom))
if(hurt) if(hurt)
Knockdown(20) DefaultCombatKnockdown(20)
take_bodypart_damage(10) take_bodypart_damage(10)
if(iscarbon(hit_atom) && hit_atom != src) if(iscarbon(hit_atom) && hit_atom != src)
var/mob/living/carbon/victim = hit_atom var/mob/living/carbon/victim = hit_atom
@@ -114,8 +114,8 @@
if(hurt) if(hurt)
victim.take_bodypart_damage(10) victim.take_bodypart_damage(10)
take_bodypart_damage(10) take_bodypart_damage(10)
victim.Knockdown(20) victim.DefaultCombatKnockdown(20)
Knockdown(20) DefaultCombatKnockdown(20)
visible_message("<span class='danger'>[src] crashes into [victim], knocking them both over!</span>",\ visible_message("<span class='danger'>[src] crashes into [victim], knocking them both over!</span>",\
"<span class='userdanger'>You violently crash into [victim]!</span>") "<span class='userdanger'>You violently crash into [victim]!</span>")
playsound(src,'sound/weapons/punch1.ogg',50,1) playsound(src,'sound/weapons/punch1.ogg',50,1)
@@ -304,7 +304,7 @@
/mob/living/carbon/resist_fire() /mob/living/carbon/resist_fire()
fire_stacks -= 5 fire_stacks -= 5
Knockdown(60, TRUE, TRUE) DefaultCombatKnockdown(60, TRUE, TRUE)
spin(32,2) spin(32,2)
visible_message("<span class='danger'>[src] rolls on the floor, trying to put [p_them()]self out!</span>", \ visible_message("<span class='danger'>[src] rolls on the floor, trying to put [p_them()]self out!</span>", \
"<span class='notice'>You stop, drop, and roll!</span>") "<span class='notice'>You stop, drop, and roll!</span>")
@@ -490,7 +490,7 @@
visible_message("<span class='warning'>[src] dry heaves!</span>", \ visible_message("<span class='warning'>[src] dry heaves!</span>", \
"<span class='userdanger'>You try to throw up, but there's nothing in your stomach!</span>") "<span class='userdanger'>You try to throw up, but there's nothing in your stomach!</span>")
if(stun) if(stun)
Knockdown(200) DefaultCombatKnockdown(200)
return 1 return 1
if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious
@@ -576,7 +576,7 @@
if(total_health <= crit_threshold && !stat) if(total_health <= crit_threshold && !stat)
if(!IsKnockdown()) if(!IsKnockdown())
to_chat(src, "<span class='notice'>You're too exhausted to keep going...</span>") to_chat(src, "<span class='notice'>You're too exhausted to keep going...</span>")
Knockdown(100) DefaultCombatKnockdown(100)
update_health_hud() update_health_hud()
/mob/living/carbon/update_sight() /mob/living/carbon/update_sight()

View File

@@ -188,7 +188,7 @@
do_sparks(5, TRUE, src) do_sparks(5, TRUE, src)
var/power = M.powerlevel + rand(0,3) var/power = M.powerlevel + rand(0,3)
Knockdown(power*20) DefaultCombatKnockdown(power*20)
if(stuttering < power) if(stuttering < power)
stuttering = power stuttering = power
if (prob(stunprob) && M.powerlevel >= 8) if (prob(stunprob) && M.powerlevel >= 8)
@@ -262,7 +262,7 @@
spawn(20) spawn(20)
jitteriness = max(jitteriness - 990, 10) //Still jittery, but vastly less jitteriness = max(jitteriness - 990, 10) //Still jittery, but vastly less
if((!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) && stun) if((!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) && stun)
Knockdown(60) DefaultCombatKnockdown(60)
if(override) if(override)
return override return override
else else
@@ -415,7 +415,7 @@
var/effect_amount = intensity - ear_safety var/effect_amount = intensity - ear_safety
if(effect_amount > 0) if(effect_amount > 0)
if(stun_pwr) if(stun_pwr)
Knockdown(stun_pwr*effect_amount) DefaultCombatKnockdown(stun_pwr*effect_amount)
if(istype(ears) && (deafen_pwr || damage_pwr)) if(istype(ears) && (deafen_pwr || damage_pwr))
var/ear_damage = damage_pwr * effect_amount var/ear_damage = damage_pwr * effect_amount

View File

@@ -842,7 +842,7 @@
visible_message("<span class='warning'>[src] dry heaves!</span>", \ visible_message("<span class='warning'>[src] dry heaves!</span>", \
"<span class='userdanger'>You try to throw up, but there's nothing in your stomach!</span>") "<span class='userdanger'>You try to throw up, but there's nothing in your stomach!</span>")
if(stun) if(stun)
Knockdown(200) DefaultCombatKnockdown(200)
return 1 return 1
..() ..()

View File

@@ -176,7 +176,7 @@
"<span class='userdanger'>[M] disarmed [src]!</span>") "<span class='userdanger'>[M] disarmed [src]!</span>")
else if(!M.client || prob(5)) // only natural monkeys get to stun reliably, (they only do it occasionaly) else if(!M.client || prob(5)) // only natural monkeys get to stun reliably, (they only do it occasionaly)
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
Knockdown(100) DefaultCombatKnockdown(100)
log_combat(M, src, "tackled") log_combat(M, src, "tackled")
visible_message("<span class='danger'>[M] has tackled down [src]!</span>", \ visible_message("<span class='danger'>[M] has tackled down [src]!</span>", \
"<span class='userdanger'>[M] has tackled down [src]!</span>") "<span class='userdanger'>[M] has tackled down [src]!</span>")
@@ -225,9 +225,9 @@
else else
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
if(!lying) //CITADEL EDIT if(!lying) //CITADEL EDIT
Knockdown(100, TRUE, FALSE, 30, 25) DefaultCombatKnockdown(100, TRUE, FALSE, 30, 25)
else else
Knockdown(100) DefaultCombatKnockdown(100)
log_combat(M, src, "tackled") log_combat(M, src, "tackled")
visible_message("<span class='danger'>[M] has tackled down [src]!</span>", \ visible_message("<span class='danger'>[M] has tackled down [src]!</span>", \
"<span class='userdanger'>[M] has tackled down [src]!</span>") "<span class='userdanger'>[M] has tackled down [src]!</span>")
@@ -294,10 +294,10 @@
switch(M.damtype) switch(M.damtype)
if("brute") if("brute")
if(M.force > 35) // durand and other heavy mechas if(M.force > 35) // durand and other heavy mechas
Knockdown(50) DefaultCombatKnockdown(50)
src.throw_at(throw_target, rand(1,5), 7) src.throw_at(throw_target, rand(1,5), 7)
else if(M.force >= 20 && !IsKnockdown()) // lightweight mechas like gygax else if(M.force >= 20 && !IsKnockdown()) // lightweight mechas like gygax
Knockdown(30) DefaultCombatKnockdown(30)
src.throw_at(throw_target, rand(1,3), 7) src.throw_at(throw_target, rand(1,3), 7)
update |= temp.receive_damage(dmg, 0) update |= temp.receive_damage(dmg, 0)
playsound(src, 'sound/weapons/punch4.ogg', 50, 1) playsound(src, 'sound/weapons/punch4.ogg', 50, 1)

View File

@@ -1372,7 +1372,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(radiation > RAD_MOB_KNOCKDOWN && prob(RAD_MOB_KNOCKDOWN_PROB)) if(radiation > RAD_MOB_KNOCKDOWN && prob(RAD_MOB_KNOCKDOWN_PROB))
if(!H.IsKnockdown()) if(!H.IsKnockdown())
H.emote("collapse") H.emote("collapse")
H.Knockdown(RAD_MOB_KNOCKDOWN_AMOUNT) H.DefaultCombatKnockdown(RAD_MOB_KNOCKDOWN_AMOUNT)
to_chat(H, "<span class='danger'>You feel weak.</span>") to_chat(H, "<span class='danger'>You feel weak.</span>")
if(radiation > RAD_MOB_VOMIT && prob(RAD_MOB_VOMIT_PROB)) if(radiation > RAD_MOB_VOMIT && prob(RAD_MOB_VOMIT_PROB))
@@ -1896,13 +1896,13 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/directional_blocked = !target.Adjacent(target_shove_turf) var/directional_blocked = !target.Adjacent(target_shove_turf)
var/targetatrest = target.resting var/targetatrest = target.resting
if((directional_blocked || !(target_collateral_human || target_shove_turf.shove_act(target, user))) && !targetatrest) if((directional_blocked || !(target_collateral_human || target_shove_turf.shove_act(target, user))) && !targetatrest)
target.Knockdown(SHOVE_KNOCKDOWN_SOLID) target.DefaultCombatKnockdown(SHOVE_KNOCKDOWN_SOLID)
user.visible_message("<span class='danger'>[user.name] shoves [target.name], knocking them down!</span>", user.visible_message("<span class='danger'>[user.name] shoves [target.name], knocking them down!</span>",
"<span class='danger'>You shove [target.name], knocking them down!</span>", null, COMBAT_MESSAGE_RANGE) "<span class='danger'>You shove [target.name], knocking them down!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(user, target, "shoved", "knocking them down") log_combat(user, target, "shoved", "knocking them down")
else if(target_collateral_human && !targetatrest) else if(target_collateral_human && !targetatrest)
target.Knockdown(SHOVE_KNOCKDOWN_HUMAN) target.DefaultCombatKnockdown(SHOVE_KNOCKDOWN_HUMAN)
target_collateral_human.Knockdown(SHOVE_KNOCKDOWN_COLLATERAL) target_collateral_human.DefaultCombatKnockdown(SHOVE_KNOCKDOWN_COLLATERAL)
user.visible_message("<span class='danger'>[user.name] shoves [target.name] into [target_collateral_human.name]!</span>", user.visible_message("<span class='danger'>[user.name] shoves [target.name] into [target_collateral_human.name]!</span>",
"<span class='danger'>You shove [target.name] into [target_collateral_human.name]!</span>", null, COMBAT_MESSAGE_RANGE) "<span class='danger'>You shove [target.name] into [target_collateral_human.name]!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(user, target, "shoved", "into [target_collateral_human.name]") log_combat(user, target, "shoved", "into [target_collateral_human.name]")

View File

@@ -57,7 +57,7 @@
if(/obj/item/projectile/energy/floramut) if(/obj/item/projectile/energy/floramut)
if(prob(15)) if(prob(15))
H.rad_act(rand(30,80)) H.rad_act(rand(30,80))
H.Knockdown(100) H.DefaultCombatKnockdown(100)
H.visible_message("<span class='warning'>[H] writhes in pain as [H.p_their()] vacuoles boil.</span>", "<span class='userdanger'>You writhe in pain as your vacuoles boil!</span>", "<span class='italics'>You hear the crunching of leaves.</span>") H.visible_message("<span class='warning'>[H] writhes in pain as [H.p_their()] vacuoles boil.</span>", "<span class='userdanger'>You writhe in pain as your vacuoles boil!</span>", "<span class='italics'>You hear the crunching of leaves.</span>")
if(prob(80)) if(prob(80))
H.randmutb() H.randmutb()

Some files were not shown because too many files have changed in this diff Show More