Adds "you" to local visible_messages (#45631)

* adds "you" to some combat visible_messages.

* more you-messages and attack verbs to present tense.

* small fixes

* more additions and small fixes

* few message tweaks

* Fixes a typo and few other wordings.
This commit is contained in:
kingofkosmos
2019-08-06 02:15:34 -07:00
committed by Rob Bailey
parent cf5fa29c14
commit c3ea51908d
53 changed files with 335 additions and 272 deletions
+7 -4
View File
@@ -83,7 +83,8 @@
/obj/attacked_by(obj/item/I, mob/living/user)
if(I.force)
visible_message("<span class='danger'>[user] has hit [src] with [I]!</span>", null, null, COMBAT_MESSAGE_RANGE)
user.visible_message("<span class='danger'>[user] hits [src] with [I]!</span>", \
"<span class='danger'>You hit [src] with [I]!</span>", null, COMBAT_MESSAGE_RANGE)
//only witnesses close by and the victim see a hit message.
log_combat(user, src, "attacked", I)
take_damage(I.force, I.damtype, "melee", 1)
@@ -130,9 +131,11 @@
var/message_hit_area = ""
if(hit_area)
message_hit_area = " in the [hit_area]"
var/attack_message = "[src] has been [message_verb][message_hit_area] with [I]."
var/attack_message = "[src] is [message_verb][message_hit_area] with [I]!"
var/attack_message_local = "You're [message_verb][message_hit_area] with [I]!"
if(user in viewers(src, null))
attack_message = "[user] has [message_verb] [src][message_hit_area] with [I]!"
attack_message = "[user] [message_verb] [src][message_hit_area] with [I]!"
attack_message_local = "[src] [message_verb] you[message_hit_area] with [I]!"
visible_message("<span class='danger'>[attack_message]</span>",\
"<span class='userdanger'>[attack_message]</span>", null, COMBAT_MESSAGE_RANGE)
"<span class='userdanger'>[attack_message_local]</span>", null, COMBAT_MESSAGE_RANGE)
return 1
+3 -2
View File
@@ -147,14 +147,15 @@
if(prob(75))
ML.apply_damage(rand(1,3), BRUTE, affecting, armor)
ML.visible_message("<span class='danger'>[name] bites [ML]!</span>", \
"<span class='userdanger'>[name] bites [ML]!</span>")
"<span class='userdanger'>[name] bites you!</span>", null, COMBAT_MESSAGE_RANGE)
if(armor >= 2)
return
for(var/thing in diseases)
var/datum/disease/D = thing
ML.ForceContractDisease(D)
else
ML.visible_message("<span class='danger'>[src] has attempted to bite [ML]!</span>")
ML.visible_message("<span class='danger'>[src]'s bite misses [ML]!</span>", \
"<span class='danger'>[src]'s bite misses you!</span>", null, COMBAT_MESSAGE_RANGE)
/*
Aliens
+2 -1
View File
@@ -60,7 +60,8 @@
new sinew (T)
meat.guaranteed_butcher_results.Remove(sinew)
if(butcher)
meat.visible_message("<span class='notice'>[butcher] butchers [meat].</span>")
butcher.visible_message("<span class='notice'>[butcher] butchers [meat].</span>", \
"<span class='notice'>You butcher [meat].</span>")
ButcherEffects(meat)
meat.harvest(butcher)
meat.gib(FALSE, FALSE, TRUE)
+6 -3
View File
@@ -62,7 +62,8 @@
var/atom/movable/AM = parent
var/mob/AMM = AM
if((ride_check_rider_restrained && M.restrained(TRUE)) || (ride_check_rider_incapacitated && M.incapacitated(FALSE, TRUE)) || (ride_check_ridden_incapacitated && istype(AMM) && AMM.incapacitated(FALSE, TRUE)))
AM.visible_message("<span class='warning'>[M] falls off of [AM]!</span>")
M.visible_message("<span class='warning'>[M] falls off of [AM]!</span>", \
"<span class='warning'>You fall off of [AM]!</span>")
AM.unbuckle_mob(M)
return TRUE
@@ -246,7 +247,8 @@
var/atom/movable/AM = parent
AM.unbuckle_mob(user)
user.Paralyze(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>", \
"<span class='warning'>[AM] pushes you off of [AM.p_them()]!</span>")
/datum/component/riding/cyborg
del_on_unbuckle_all = TRUE
@@ -302,7 +304,8 @@
var/turf/target = get_edge_target_turf(AM, AM.dir)
var/turf/targetm = get_step(get_turf(AM), AM.dir)
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>", \
"<span class='warning'>You're thrown clear of [AM]!</span>")
M.throw_at(target, 14, 5, AM)
M.Paralyze(60)
+2 -1
View File
@@ -49,7 +49,8 @@
to_chat(affected_mob, "<span class='danger'>Strange buzzing fills your head, removing all thoughts.</span>")
if(prob(3))
to_chat(affected_mob, "<span class='danger'>You lose consciousness...</span>")
affected_mob.visible_message("<span class='warning'>[affected_mob] suddenly collapses</span>")
affected_mob.visible_message("<span class='warning'>[affected_mob] suddenly collapses!</span>", \
"<span class='userdanger'>You suddenly collapse!</span>")
affected_mob.Unconscious(rand(100,200))
if(prob(1))
affected_mob.emote("snore")
+2 -1
View File
@@ -55,7 +55,8 @@
H.stop_sound_channel(CHANNEL_HEARTBEAT)
H.playsound_local(H, 'sound/effects/singlebeat.ogg', 100, 0)
if(H.stat == CONSCIOUS)
H.visible_message("<span class='userdanger'>[H] clutches at [H.p_their()] chest as if [H.p_their()] heart is stopping!</span>")
H.visible_message("<span class='danger'>[H] clutches at [H.p_their()] chest as if [H.p_their()] heart is stopping!</span>", \
"<span class='userdanger'>You feel a terrible pain in your chest, as if your heart has stopped!</span>")
H.adjustStaminaLoss(60)
H.set_heartattack(TRUE)
H.reagents.add_reagent(/datum/reagent/medicine/corazone, 3) // To give the victim a final chance to shock their heart before losing consciousness
+6 -6
View File
@@ -53,8 +53,8 @@
if(!damage)
playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1)
D.visible_message("<span class='warning'>[A] has attempted to [atk_verb] [D]!</span>", \
"<span class='userdanger'>[A] has attempted to [atk_verb] [D]!</span>", null, COMBAT_MESSAGE_RANGE)
D.visible_message("<span class='warning'>[A]'s [atk_verb] misses [D]!</span>", \
"<span class='userdanger'>[A]'s [atk_verb] misses you!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(A, D, "attempted to [atk_verb]")
return 0
@@ -62,16 +62,16 @@
var/armor_block = D.run_armor_check(affecting, "melee")
playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1)
D.visible_message("<span class='danger'>[A] has [atk_verb]ed [D]!</span>", \
"<span class='userdanger'>[A] has [atk_verb]ed [D]!</span>", null, COMBAT_MESSAGE_RANGE)
D.visible_message("<span class='danger'>[A] [atk_verb]ed [D]!</span>", \
"<span class='userdanger'>[A] [atk_verb]ed you!</span>", null, COMBAT_MESSAGE_RANGE)
D.apply_damage(damage, A.dna.species.attack_type, affecting, armor_block)
log_combat(A, D, "punched")
if((D.stat != DEAD) && damage >= A.dna.species.punchstunthreshold)
D.visible_message("<span class='danger'>[A] has knocked [D] down!!</span>", \
"<span class='userdanger'>[A] has knocked [D] down!</span>")
D.visible_message("<span class='danger'>[A] knocks [D] down!!</span>", \
"<span class='userdanger'>[A] knocks you down!</span>")
D.apply_effect(40, EFFECT_KNOCKDOWN, armor_block)
D.forcesay(GLOB.hit_appends)
else if(!(D.mobility_flags & MOBILITY_STAND))
+6 -6
View File
@@ -19,8 +19,8 @@
var/damage = rand(5, 8) + A.dna.species.punchdamagelow
if(!damage)
playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1)
D.visible_message("<span class='warning'>[A] has attempted to [atk_verb] [D]!</span>", \
"<span class='userdanger'>[A] has attempted to [atk_verb] [D]!</span>", null, COMBAT_MESSAGE_RANGE)
D.visible_message("<span class='warning'>[A]'s [atk_verb] misses [D]!</span>", \
"<span class='userdanger'>[A]'s [atk_verb] misses you!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(A, D, "attempted to hit", atk_verb)
return 0
@@ -30,16 +30,16 @@
playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1)
D.visible_message("<span class='danger'>[A] has [atk_verb]ed [D]!</span>", \
"<span class='userdanger'>[A] has [atk_verb]ed [D]!</span>", null, COMBAT_MESSAGE_RANGE)
D.visible_message("<span class='danger'>[A] [atk_verb]ed [D]!</span>", \
"<span class='userdanger'>[A] [atk_verb]ed you!</span>", null, COMBAT_MESSAGE_RANGE)
D.apply_damage(damage, STAMINA, affecting, armor_block)
log_combat(A, D, "punched (boxing) ")
if(D.getStaminaLoss() > 50)
var/knockout_prob = D.getStaminaLoss() + rand(-15,15)
if((D.stat != DEAD) && prob(knockout_prob))
D.visible_message("<span class='danger'>[A] has knocked [D] out with a haymaker!</span>", \
"<span class='userdanger'>[A] has knocked [D] out with a haymaker!</span>")
D.visible_message("<span class='danger'>[A] knocks [D] out with a haymaker!</span>", \
"<span class='userdanger'>[A] knocks you out with a haymaker!</span>")
D.apply_effect(200,EFFECT_KNOCKDOWN,armor_block)
D.SetSleeping(100)
D.forcesay(GLOB.hit_appends)
+9 -8
View File
@@ -57,7 +57,7 @@
return FALSE
if(!D.stat || !D.IsParalyzed())
D.visible_message("<span class='warning'>[A] kicks [D] back!</span>", \
"<span class='userdanger'>[A] kicks you back!</span>")
"<span class='userdanger'>[A] kicks you back!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1)
var/atom/throw_target = get_edge_target_turf(D, A.dir)
D.throw_at(throw_target, 1, 14, A)
@@ -76,7 +76,8 @@
if(!can_use(A))
return FALSE
log_combat(A, D, "pressured (CQC)")
D.visible_message("<span class='warning'>[A] punches [D]'s neck!</span>")
D.visible_message("<span class='danger'>[A] punches [D]'s neck!</span>", \
"<span class='userdanger'>[A] punches your neck!</span>", null, COMBAT_MESSAGE_RANGE)
D.adjustStaminaLoss(60)
playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1)
return TRUE
@@ -102,7 +103,7 @@
if(!D.stat)
log_combat(A, D, "consecutive CQC'd (CQC)")
D.visible_message("<span class='warning'>[A] strikes [D]'s abdomen, neck and back consecutively</span>", \
"<span class='userdanger'>[A] strikes your abdomen, neck and back consecutively!</span>")
"<span class='userdanger'>[A] strikes your abdomen, neck and back consecutively!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(get_turf(D), 'sound/weapons/cqchit2.ogg', 50, 1, -1)
var/obj/item/I = D.get_active_held_item()
if(I && D.temporarilyRemoveItemFromInventory(I))
@@ -123,7 +124,7 @@
A.grab_state = GRAB_AGGRESSIVE //Instant agressive grab if on grab intent
log_combat(A, D, "grabbed", addition="aggressively")
D.visible_message("<span class='warning'>[A] violently grabs [D]!</span>", \
"<span class='userdanger'>[A] violently grabs you!</span>")
"<span class='userdanger'>[A] violently grabs you!</span>", null, COMBAT_MESSAGE_RANGE)
return TRUE
else
return FALSE
@@ -147,7 +148,7 @@
else
playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1)
D.visible_message("<span class='danger'>[A] [picked_hit_type] [D]!</span>", \
"<span class='userdanger'>[A] [picked_hit_type] you!</span>")
"<span class='userdanger'>[A] [picked_hit_type] you!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(A, D, "[picked_hit_type] (CQC)")
if(A.resting && !D.stat && !D.IsParalyzed())
D.visible_message("<span class='warning'>[A] leg sweeps [D]!", \
@@ -169,15 +170,15 @@
if(!D.stat || !D.IsParalyzed() || !restraining)
I = D.get_active_held_item()
D.visible_message("<span class='warning'>[A] strikes [D]'s jaw with their hand!</span>", \
"<span class='userdanger'>[A] strikes your jaw, disorienting you!</span>")
"<span class='userdanger'>[A] strikes your jaw, disorienting you!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1)
if(I && D.temporarilyRemoveItemFromInventory(I))
A.put_in_hands(I)
D.Jitter(2)
D.apply_damage(5, A.dna.species.attack_type)
else
D.visible_message("<span class='danger'>[A] attempted to disarm [D]!</span>", \
"<span class='userdanger'>[A] attempted to disarm [D]!</span>")
D.visible_message("<span class='danger'>[A] fails to disarm [D]!</span>", \
"<span class='userdanger'>[A] fails to disarm you!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
log_combat(A, D, "disarmed (CQC)", "[I ? " grabbing \the [I]" : ""]")
if(restraining && A.pulling == D)
+7 -7
View File
@@ -99,7 +99,7 @@
/datum/martial_art/krav_maga/proc/quick_choke(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)//is actually lung punch
D.visible_message("<span class='warning'>[A] pounds [D] on the chest!</span>", \
"<span class='userdanger'>[A] slams your chest! You can't breathe!</span>")
"<span class='userdanger'>[A] slams your chest! You can't breathe!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1)
if(D.losebreath <= 10)
D.losebreath = CLAMP(D.losebreath + 5, 0, 10)
@@ -109,7 +109,7 @@
/datum/martial_art/krav_maga/proc/neck_chop(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
D.visible_message("<span class='warning'>[A] karate chops [D]'s neck!</span>", \
"<span class='userdanger'>[A] karate chops your neck, rendering you unable to speak!</span>")
"<span class='userdanger'>[A] karate chops your neck, rendering you unable to speak!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1)
D.apply_damage(5, A.dna.species.attack_type)
if(D.silent <= 10)
@@ -140,7 +140,7 @@
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
playsound(get_turf(D), 'sound/effects/hit_punch.ogg', 50, 1, -1)
D.visible_message("<span class='danger'>[A] [picked_hit_type] [D]!</span>", \
"<span class='userdanger'>[A] [picked_hit_type] you!</span>")
"<span class='userdanger'>[A] [picked_hit_type] you!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(A, D, "[picked_hit_type] with [name]")
return 1
@@ -153,12 +153,12 @@
if(I)
if(D.temporarilyRemoveItemFromInventory(I))
A.put_in_hands(I)
D.visible_message("<span class='danger'>[A] has disarmed [D]!</span>", \
"<span class='userdanger'>[A] has disarmed [D]!</span>")
D.visible_message("<span class='danger'>[A] disarms [D]!</span>", \
"<span class='userdanger'>[A] disarms you!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(D, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
else
D.visible_message("<span class='danger'>[A] attempted to disarm [D]!</span>", \
"<span class='userdanger'>[A] attempted to disarm [D]!</span>")
D.visible_message("<span class='danger'>[A] fails to disarm [D]!</span>", \
"<span class='userdanger'>[A] fails to disarm you!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
log_combat(A, D, "disarmed (Krav Maga)", "[I ? " removing \the [I]" : ""]")
return 1
+2 -1
View File
@@ -35,4 +35,5 @@
var/datum/martial_art/mushpunch/mush = new(null)
mush.teach(user)
qdel(src)
visible_message("<span class='warning'>[user] devours [src].</span>")
visible_message("<span class='warning'>[user] devours [src].</span>", \
"<span class='notice'>You devour [src].</span>")
+4 -4
View File
@@ -44,8 +44,8 @@
return
/datum/martial_art/plasma_fist/proc/Throwback(mob/living/carbon/human/A, mob/living/carbon/human/D)
D.visible_message("<span class='danger'>[A] has hit [D] with Plasma Punch!</span>", \
"<span class='userdanger'>[A] has hit [D] with Plasma Punch!</span>")
D.visible_message("<span class='danger'>[A] hits [D] with Plasma Punch!</span>", \
"<span class='userdanger'>[A] hits you with Plasma Punch!</span>")
playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1)
var/atom/throw_target = get_edge_target_turf(D, get_dir(D, get_step_away(D, A)))
D.throw_at(throw_target, 200, 4,A)
@@ -57,8 +57,8 @@
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1)
A.say("PLASMA FIST!", forced="plasma fist")
D.visible_message("<span class='danger'>[A] has hit [D] with THE PLASMA FIST TECHNIQUE!</span>", \
"<span class='userdanger'>[A] has hit [D] with THE PLASMA FIST TECHNIQUE!</span>")
D.visible_message("<span class='danger'>[A] hits [D] with THE PLASMA FIST TECHNIQUE!</span>", \
"<span class='userdanger'>[A] hits you with THE PLASMA FIST TECHNIQUE!</span>")
D.gib()
log_combat(A, D, "gibbed (Plasma Fist)")
return
+19 -10
View File
@@ -135,7 +135,8 @@
D.setDir(get_dir(D, A))
D.Stun(80)
A.visible_message("<span class='danger'><B>[A] starts spinning around with [D]!</B></span>")
D.visible_message("<span class='danger'><B>[A] starts spinning around with [D]!</B></span>", \
"<span class='userdanger'>[A] starts spinning around with you!</span>")
A.emote("scream")
for (var/i = 0, i < 20, i++)
@@ -186,7 +187,8 @@
D.forceMove(A.loc) // Maybe this will help with the wallthrowing bug.
A.visible_message("<span class='danger'><B>[A] throws [D]!</B></span>")
D.visible_message("<span class='danger'><B>[A] throws [D]!</B></span>", \
"<span class='userdanger'>[A] throws you!</span>")
playsound(A.loc, "swing_hit", 50, 1)
var/turf/T = get_edge_target_turf(A, A.dir)
if (T && isturf(T))
@@ -214,7 +216,8 @@
A.setDir(get_dir(A, D))
D.setDir(get_dir(D, A))
A.visible_message("<span class='danger'><B>[A] lifts [D] up!</B></span>")
D.visible_message("<span class='danger'><B>[A] lifts [D] up!</B></span>", \
"<span class='userdanger'>[A] lifts you up!</span>")
FlipAnimation()
@@ -284,7 +287,8 @@
if (3)
fluff = "atomic [fluff]"
A.visible_message("<span class='danger'><B>[A] [fluff] [D]!</B></span>")
D.visible_message("<span class='danger'><B>[A] [fluff] [D]!</B></span>", \
"<span class='userdanger'>[A] [fluff] you!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(A.loc, "swing_hit", 50, 1)
if (!D.stat)
D.emote("scream")
@@ -327,7 +331,8 @@
A.forceMove(D.loc)
addtimer(CALLBACK(src, .proc/CheckStrikeTurf, A, T), 4)
A.visible_message("<span class='danger'><b>[A] headbutts [D]!</b></span>")
D.visible_message("<span class='danger'><B>[A] headbutts [D]!</B></span>", \
"<span class='userdanger'>[A] headbutts you!</span>", null, COMBAT_MESSAGE_RANGE)
D.adjustBruteLoss(rand(10,20))
playsound(A.loc, "swing_hit", 50, 1)
D.Unconscious(20)
@@ -340,7 +345,8 @@
A.emote("flip")
A.setDir(turn(A.dir, 90))
A.visible_message("<span class='danger'><B>[A] roundhouse-kicks [D]!</B></span>")
D.visible_message("<span class='danger'><B>[A] roundhouse-kicks [D]!</B></span>", \
"<span class='userdanger'>[A] roundhouse-kicks you!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(A.loc, "swing_hit", 50, 1)
D.adjustBruteLoss(rand(10,20))
@@ -372,7 +378,8 @@
if (surface && (ST && isturf(ST)))
A.forceMove(ST)
A.visible_message("<span class='danger'><B>[A] climbs onto [surface]!</b></span>")
A.visible_message("<span class='danger'><B>[A] climbs onto [surface]!</B></span>", \
"<span class='danger'><B>You climb onto [surface]!</B></span>")
A.pixel_y = 10
falling = 1
sleep(10)
@@ -383,7 +390,8 @@
if ((falling == 0 && get_dist(A, D) > 1) || (falling == 1 && get_dist(A, D) > 2)) // We climbed onto stuff.
A.pixel_y = 0
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>", \
"<span class='userdanger'>...and dive head-first into the ground, ouch!</span>")
A.adjustBruteLoss(rand(10,20))
A.Paralyze(60)
to_chat(A, "<span class='warning'>[D] is too far away!</span>")
@@ -402,7 +410,8 @@
A.forceMove(D.loc)
A.visible_message("<span class='danger'><B>[A] leg-drops [D]!</B></span>")
D.visible_message("<span class='danger'><B>[A] leg-drops [D]!</B></span>", \
"<span class='userdanger'>[A] leg-drops you!</span>")
playsound(A.loc, "swing_hit", 50, 1)
A.emote("scream")
@@ -437,7 +446,7 @@
return 1
A.start_pulling(D)
D.visible_message("<span class='danger'>[A] gets [D] in a cinch!</span>", \
"<span class='userdanger'>[A] gets [D] in a cinch!</span>")
"<span class='userdanger'>[A] gets you in a cinch!</span>", null, COMBAT_MESSAGE_RANGE)
D.Stun(rand(60,100))
log_combat(A, D, "cinched")
return 1
+2 -1
View File
@@ -148,7 +148,8 @@
var/mob/M = AM
log_combat(src, M, "grabbed", addition="passive grab")
if(!supress_message)
visible_message("<span class='warning'>[src] has grabbed [M] passively!</span>")
M.visible_message("<span class='warning'>[src] grabs [M] passively.</span>", \
"<span class='danger'>[src] grabs you passively.</span>")
return TRUE
/atom/movable/proc/stop_pulling()
+15 -14
View File
@@ -82,10 +82,10 @@
return
M.adjustOxyLoss(round(dam_force/2))
M.updatehealth()
target.visible_message("<span class='danger'>[chassis] squeezes [target].</span>", \
"<span class='userdanger'>[chassis] squeezes [target].</span>",\
target.visible_message("<span class='danger'>[chassis] squeezes [target]!</span>", \
"<span class='userdanger'>[chassis] squeezes you!</span>",\
"<span class='italics'>You hear something crack.</span>")
log_combat(chassis.occupant, M, "attacked", "[name]", "(INTENT: [uppertext(chassis.occupant.a_intent)]) (DAMTYE: [uppertext(damtype)])")
log_combat(chassis.occupant, M, "attacked", "[name]", "(INTENT: [uppertext(chassis.occupant.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
else
step_away(M,chassis)
occupant_message("You push [target] out of the way.")
@@ -143,12 +143,12 @@
return
M.adjustOxyLoss(round(dam_force/2))
M.updatehealth()
target.visible_message("<span class='danger'>[chassis] destroys [target] in an unholy fury.</span>", \
"<span class='userdanger'>[chassis] destroys [target] in an unholy fury.</span>")
log_combat(chassis.occupant, M, "attacked", "[name]", "(INTENT: [uppertext(chassis.occupant.a_intent)]) (DAMTYE: [uppertext(damtype)])")
target.visible_message("<span class='danger'>[chassis] destroys [target] in an unholy fury!</span>", \
"<span class='userdanger'>[chassis] destroys you in an unholy fury!</span>")
log_combat(chassis.occupant, M, "attacked", "[name]", "(INTENT: [uppertext(chassis.occupant.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
else
target.visible_message("<span class='danger'>[chassis] destroys [target] in an unholy fury.</span>", \
"<span class='userdanger'>[chassis] destroys [target] in an unholy fury.</span>")
target.visible_message("<span class='danger'>[chassis] destroys [target] in an unholy fury!</span>", \
"<span class='userdanger'>[chassis] destroys you in an unholy fury!</span>")
else if(chassis.occupant.a_intent == INTENT_DISARM)
if(real_clamp)
var/mob/living/carbon/C = target
@@ -166,15 +166,16 @@
limbs_gone = "[limbs_gone], [affected]"
if(play_sound)
playsound(src, get_dismember_sound(), 80, TRUE)
target.visible_message("<span class='danger'>[chassis] rips [target]'s arms off.</span>", \
"<span class='userdanger'>[chassis] rips [target]'s arms off.</span>")
log_combat(chassis.occupant, M, "dismembered of[limbs_gone],", "[name]", "(INTENT: [uppertext(chassis.occupant.a_intent)]) (DAMTYE: [uppertext(damtype)])")
target.visible_message("<span class='danger'>[chassis] rips [target]'s arms off!</span>", \
"<span class='userdanger'>[chassis] rips your arms off!</span>")
log_combat(chassis.occupant, M, "dismembered of[limbs_gone],", "[name]", "(INTENT: [uppertext(chassis.occupant.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
else
target.visible_message("<span class='danger'>[chassis] rips [target]'s arms off.</span>", \
"<span class='userdanger'>[chassis] rips [target]'s arms off.</span>")
target.visible_message("<span class='danger'>[chassis] rips [target]'s arms off!</span>", \
"<span class='userdanger'>[chassis] rips your arms off!</span>")
else
step_away(M,chassis)
target.visible_message("[chassis] tosses [target] like a piece of paper.")
target.visible_message("<span class='danger'>[chassis] tosses [target] like a piece of paper!</span>", \
"<span class='userdanger'>[chassis] tosses you like a piece of paper!</span>")
return 1
+3 -5
View File
@@ -60,17 +60,15 @@
user.do_attack_animation(src)
if(I.force)
user.visible_message("<span class='danger'>[user] has hit \
[src] with [I]!</span>", "<span class='danger'>You hit [src] \
with [I]!</span>")
user.visible_message("<span class='danger'>[user] hits [src] with [I]!</span>", \
"<span class='danger'>You hit [src] with [I]!</span>")
if(prob(I.force))
push_over()
/obj/item/cardboard_cutout/bullet_act(obj/item/projectile/P)
if(istype(P, /obj/item/projectile/bullet/reusable))
P.on_hit(src, 0)
visible_message("<span class='danger'>[src] has been hit by [P]!</span>")
visible_message("<span class='danger'>[src] is hit by [P]!</span>")
playsound(src, 'sound/weapons/slice.ogg', 50, 1)
if(prob(P.damage))
push_over()
+8 -5
View File
@@ -107,15 +107,16 @@ GENE SCANNER
// Clumsiness/brain damage check
if ((HAS_TRAIT(user, TRAIT_CLUMSY) || HAS_TRAIT(user, TRAIT_DUMB)) && prob(50))
to_chat(user, "<span class='notice'>You stupidly try to analyze the floor's vitals!</span>")
user.visible_message("<span class='warning'>[user] has analyzed the floor's vitals!</span>")
user.visible_message("<span class='warning'>[user] analyzes the floor's vitals!</span>", \
"<span class='notice'>You stupidly try to analyze the floor's vitals!</span>")
to_chat(user, "<span class='info'>Analyzing results for The floor:\n\tOverall status: <b>Healthy</b></span>")
to_chat(user, "<span class='info'>Key: <font color='blue'>Suffocation</font>/<font color='green'>Toxin</font>/<font color='#FF8000'>Burn</font>/<font color='red'>Brute</font></span>")
to_chat(user, "<span class='info'>\tDamage specifics: <font color='blue'>0</font>-<font color='green'>0</font>-<font color='#FF8000'>0</font>-<font color='red'>0</font></span>")
to_chat(user, "<span class='info'>Body temperature: ???</span>")
return
user.visible_message("<span class='notice'>[user] has analyzed [M]'s vitals.</span>")
user.visible_message("<span class='notice'>[user] analyzes [M]'s vitals.</span>", \
"<span class='notice'>You analyze [M]'s vitals.</span>")
if(scanmode == 0)
healthscan(user, M, mode, advanced)
@@ -696,7 +697,8 @@ GENE SCANNER
materials = list(/datum/material/iron=200)
/obj/item/nanite_scanner/attack(mob/living/M, mob/living/carbon/human/user)
user.visible_message("<span class='notice'>[user] has analyzed [M]'s nanites.</span>")
user.visible_message("<span class='notice'>[user] analyzes [M]'s nanites.</span>", \
"<span class='notice'>You analyze [M]'s nanites.</span>")
add_fingerprint(user)
@@ -728,7 +730,8 @@ GENE SCANNER
/obj/item/sequence_scanner/attack(mob/living/M, mob/living/carbon/human/user)
add_fingerprint(user)
if (!HAS_TRAIT(M, TRAIT_RADIMMUNE) && !HAS_TRAIT(M, TRAIT_BADDNA)) //no scanning if its a husk or DNA-less Species
user.visible_message("<span class='notice'>[user] has analyzed [M]'s genetic sequence.</span>")
user.visible_message("<span class='notice'>[user] analyzes [M]'s genetic sequence.</span>", \
"<span class='notice'>You analyze [M]'s genetic sequence.</span>")
gene_scan(M, user)
else
+3 -3
View File
@@ -60,11 +60,12 @@
log_combat(user, target, "attempted to inject", src)
if(target != user)
target.visible_message("<span class='danger'>[user] is trying to inject [target] with [src]!</span>", "<span class='userdanger'>[user] is trying to inject [target] with [src]!</span>")
target.visible_message("<span class='danger'>[user] is trying to inject [target] with [src]!</span>", \
"<span class='userdanger'>[user] is trying to inject you with [src]!</span>")
if(!do_mob(user, target) || used)
return
target.visible_message("<span class='danger'>[user] injects [target] with the syringe with [src]!", \
"<span class='userdanger'>[user] injects [target] with the syringe with [src]!</span>")
"<span class='userdanger'>[user] injects you with the syringe with [src]!</span>")
else
to_chat(user, "<span class='notice'>You inject yourself with [src].</span>")
@@ -515,4 +516,3 @@
log_attack("[log_msg] [loc_name(user)]")
return TRUE
return FALSE
+3 -2
View File
@@ -58,7 +58,7 @@
if(!C.handcuffed)
if(C.get_num_arms(FALSE) >= 2 || C.get_arm_ignore())
C.visible_message("<span class='danger'>[user] is trying to put [src.name] on [C]!</span>", \
"<span class='userdanger'>[user] is trying to put [src.name] on [C]!</span>")
"<span class='userdanger'>[user] is trying to put [src.name] on you!</span>")
playsound(loc, cuffsound, 30, 1, -2)
if(do_mob(user, C, 30) && (C.get_num_arms(FALSE) >= 2 || C.get_arm_ignore()))
@@ -66,7 +66,8 @@
apply_cuffs(C, user, TRUE)
else
apply_cuffs(C, user)
to_chat(user, "<span class='notice'>You handcuff [C].</span>")
C.visible_message("<span class='notice'>[user] handcuffs [C].</span>", \
"<span class='userdanger'>[user] handcuffs you.</span>")
SSblackbox.record_feedback("tally", "handcuffs", 1, type)
log_combat(user, C, "handcuffed")
+4 -4
View File
@@ -212,8 +212,8 @@
/obj/item/melee/classic_baton/proc/get_stun_description(mob/living/target, mob/living/user)
. = list()
.["visible"] = "<span class ='danger'>[user] has knocked down [target] with [src]!</span>"
.["local"] = "<span class ='danger'>[user] has knocked down [target] with [src]!</span>"
.["visible"] = "<span class ='danger'>[user] knocks [target] down with [src]!</span>"
.["local"] = "<span class ='userdanger'>[user] knocks you down with [src]!</span>"
return .
@@ -386,8 +386,8 @@
force = 5
cooldown = 20
stun_time_carbon = 85
affect_silicon = TRUE
stun_time_carbon = 85
affect_silicon = TRUE
on_sound = 'sound/weapons/contractorbatonextend.ogg'
on_stun_sound = 'sound/effects/contractorbatonhit.ogg'
+2 -2
View File
@@ -78,7 +78,7 @@
/obj/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
if(user.a_intent == INTENT_HARM)
..(user, 1)
visible_message("<span class='danger'>[user] smashes [src]!</span>", null, null, COMBAT_MESSAGE_RANGE)
user.visible_message("<span class='danger'>[user] smashes [src]!</span>", "<span class='danger'>You smash [src]!</span>", null, COMBAT_MESSAGE_RANGE)
if(density)
playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced="hulk")
@@ -153,7 +153,7 @@
return 0
else
return 0
visible_message("<span class='danger'>[M.name] has hit [src].</span>", null, null, COMBAT_MESSAGE_RANGE)
M.visible_message("<span class='danger'>[M.name] hits [src]!</span>", "<span class='danger'>You hit [src]!</span>", null, COMBAT_MESSAGE_RANGE)
return take_damage(M.force*3, mech_damtype, "melee", play_soundeffect, get_dir(src, M)) // multiplied by 3 so we can hit objs hard but not be overpowered against mobs.
/obj/singularity_act()
+2 -1
View File
@@ -146,7 +146,8 @@
if(!can_be_reached(user))
return
user.changeNext_move(CLICK_CD_MELEE)
user.visible_message("[user] knocks on [src].")
user.visible_message("<span class='notice'>[user] knocks on [src].</span>", \
"<span class='notice'>You knock on [src].</span>")
add_fingerprint(user)
playsound(src, 'sound/effects/Glassknock.ogg', 50, 1)
+9 -3
View File
@@ -110,7 +110,8 @@
switch(M.damtype)
if(BRUTE)
playsound(src, 'sound/weapons/punch4.ogg', 50, 1)
visible_message("<span class='danger'>[M.name] has hit [src]!</span>", null, null, COMBAT_MESSAGE_RANGE)
M.visible_message("<span class='danger'>[M.name] hits [src]!</span>", \
"<span class='danger'>You hit [src]!</span>", null, COMBAT_MESSAGE_RANGE)
if(prob(hardness + M.force) && M.force > 20)
dismantle_wall(1)
playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
@@ -144,7 +145,10 @@
else
playsound(src, 'sound/effects/bang.ogg', 50, 1)
add_dent(WALL_DENT_HIT)
to_chat(user, text("<span class='notice'>You punch the wall.</span>"))
user.visible_message("<span class='danger'>[user] smashes \the [src]!</span>", \
"<span class='danger'>You smash \the [src]!</span>", \
"<span class='italics'>You hear a booming smash!</span>")
return TRUE
/turf/closed/wall/attack_hand(mob/user)
@@ -230,7 +234,9 @@
if(user.loc == T)
I.play_tool_sound(src)
dismantle_wall()
visible_message("<span class='warning'>[user] smashes through [src] with [I]!</span>", "<span class='italics'>You hear the grinding of metal.</span>")
user.visible_message("<span class='warning'>[user] smashes through [src] with [I]!</span>", \
"<span class='warning'>You smash through [src] with [I]!</span>", \
"<span class='italics'>You hear the grinding of metal.</span>")
return TRUE
return FALSE
@@ -165,8 +165,8 @@
if ("harm")
var/damage = rand(1, 5)
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[M] has punched [src]!</span>", \
"<span class='userdanger'>[M] has punched [src]!</span>")
visible_message("<span class='danger'>[M] punches [src]!</span>", \
"<span class='userdanger'>[M] punches you!</span>")
adjustBruteLoss(damage)
log_combat(M, src, "attacked")
updatehealth()
@@ -176,17 +176,18 @@
Unconscious(40)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
log_combat(M, src, "pushed")
visible_message("<span class='danger'>[M] has pushed down [src]!</span>", \
"<span class='userdanger'>[M] has pushed down [src]!</span>")
visible_message("<span class='danger'>[M] pushes [src] down!</span>", \
"<span class='userdanger'>[M] pushes you down!</span>")
else
if (prob(25))
dropItemToGround(get_active_held_item())
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
visible_message("<span class='danger'>[M] has disarmed [src]!</span>", \
"<span class='userdanger'>[M] has disarmed [src]!</span>")
visible_message("<span class='danger'>[M] disarms [src]!</span>", \
"<span class='userdanger'>[M] disarms you!</span>")
else
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has attempted to disarm [src]!</span>")
visible_message("<span class='danger'>[M] fails to disarm [src]!</span>", \
"<span class='userdanger'>[M] fails to disarm you!</span>")
/mob/living/carbon/true_devil/handle_breathing()
// devils do not need to breathe
@@ -35,17 +35,20 @@
return 0
if(M == user)
user.visible_message("<span class='notice'>[user] swallows a gulp of [src].</span>", "<span class='notice'>You swallow a gulp of [src].</span>")
user.visible_message("<span class='notice'>[user] swallows a gulp of [src].</span>", \
"<span class='notice'>You swallow a gulp of [src].</span>")
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
M.changeNext_move(CLICK_CD_MELEE * 0.5) //chug! chug! chug!
else
M.visible_message("<span class='danger'>[user] attempts to feed the contents of [src] to [M].</span>", "<span class='userdanger'>[user] attempts to feed the contents of [src] to [M].</span>")
M.visible_message("<span class='danger'>[user] attempts to feed [M] the contents of [src].</span>", \
"<span class='userdanger'>[user] attempts to feed you the contents of [src].</span>")
if(!do_mob(user, M))
return
if(!reagents || !reagents.total_volume)
return // The drink might be empty after the delay, such as by spam-feeding
M.visible_message("<span class='danger'>[user] feeds the contents of [src] to [M].</span>", "<span class='userdanger'>[user] feeds the contents of [src] to [M].</span>")
M.visible_message("<span class='danger'>[user] fed [M] the contents of [src].</span>", \
"<span class='userdanger'>[user] fed you the contents of [src].</span>")
log_combat(user, M, "fed", reagents.log_list())
var/fraction = min(gulp_size/reagents.total_volume, 1)
@@ -100,11 +100,11 @@
//Display an attack message.
if(target != user)
target.visible_message("<span class='danger'>[user] has hit [target][head_attack_message] with a bottle of [src.name]!</span>", \
"<span class='userdanger'>[user] has hit [target][head_attack_message] with a bottle of [src.name]!</span>")
target.visible_message("<span class='danger'>[user] hits [target][head_attack_message] with a bottle of [src.name]!</span>", \
"<span class='userdanger'>[user] hits you [head_attack_message] with a bottle of [src.name]!</span>")
else
user.visible_message("<span class='danger'>[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!</span>", \
"<span class='userdanger'>[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!</span>")
target.visible_message("<span class='danger'>[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!</span>", \
"<span class='userdanger'>You hit yourself with a bottle of [src.name][head_attack_message]!</span>")
//Attack logs
log_combat(user, target, "attacked", src)
@@ -110,7 +110,7 @@
/obj/item/reagent_containers/food/drinks/drinkingglass/attack(obj/target, mob/user)
if(user.a_intent == INTENT_HARM && ismob(target) && target.reagents && reagents.total_volume)
target.visible_message("<span class='danger'>[user] splashes the contents of [src] onto [target]!</span>", \
"<span class='userdanger'>[user] splashes the contents of [src] onto [target]!</span>")
"<span class='userdanger'>[user] splashes the contents of [src] onto you!</span>")
log_combat(user, target, "splashed", src)
reagents.reaction(target, TOUCH)
reagents.clear_reagents()
@@ -128,4 +128,3 @@
reagents.reaction(target, TOUCH)
reagents.clear_reagents()
return
@@ -46,14 +46,17 @@
return 0
if(M == user)
user.visible_message("<span class='notice'>[user] swallows some of the contents of \the [src].</span>", "<span class='notice'>You swallow some of the contents of \the [src].</span>")
user.visible_message("<span class='notice'>[user] swallows some of the contents of \the [src].</span>", \
"<span class='notice'>You swallow some of the contents of \the [src].</span>")
else
user.visible_message("<span class='warning'>[user] attempts to feed [M] from [src].</span>")
M.visible_message("<span class='warning'>[user] attempts to feed [M] from [src].</span>", \
"<span class='warning'>[user] attempts to feed you from [src].</span>")
if(!do_mob(user, M))
return
if(!reagents || !reagents.total_volume)
return // The condiment might be empty after the delay.
user.visible_message("<span class='warning'>[user] feeds [M] from [src].</span>")
M.visible_message("<span class='warning'>[user] fed [M] from [src].</span>", \
"<span class='warning'>[user] fed you from [src].</span>")
log_combat(user, M, "fed", reagents.log_list())
var/fraction = min(10/reagents.total_volume, 1)
+4 -4
View File
@@ -119,17 +119,17 @@ All foods are distributed among various categories. Use common sense.
if(!isbrain(M)) //If you're feeding it to someone else.
if(fullness <= (600 * (1 + M.overeatduration / 1000)))
M.visible_message("<span class='danger'>[user] attempts to feed [M] [src].</span>", \
"<span class='userdanger'>[user] attempts to feed [M] [src].</span>")
"<span class='userdanger'>[user] attempts to feed you [src].</span>")
else
M.visible_message("<span class='warning'>[user] cannot force any more of [src] down [M]'s throat!</span>", \
"<span class='warning'>[user] cannot force any more of [src] down [M]'s throat!</span>")
"<span class='warning'>[user] cannot force any more of [src] down your throat!</span>")
return FALSE
if(!do_mob(user, M))
return
log_combat(user, M, "fed", reagents.log_list())
M.visible_message("<span class='danger'>[user] forces [M] to eat [src].</span>", \
"<span class='userdanger'>[user] forces [M] to eat [src].</span>")
M.visible_message("<span class='danger'>[user] forces [M] to eat [src]!</span>", \
"<span class='userdanger'>[user] forces you to eat [src]!</span>")
else
to_chat(user, "<span class='warning'>[M] doesn't seem to have a mouth!</span>")
@@ -38,7 +38,7 @@ In all, this is a lot like the monkey code. /N
M.do_attack_animation(src, ATTACK_EFFECT_BITE)
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
visible_message("<span class='danger'>[M.name] bites [src]!</span>", \
"<span class='userdanger'>[M.name] bites [src]!</span>", null, COMBAT_MESSAGE_RANGE)
"<span class='userdanger'>[M.name] bites you!</span>", null, COMBAT_MESSAGE_RANGE)
adjustBruteLoss(1)
log_combat(M, src, "attacked")
updatehealth()
@@ -54,7 +54,7 @@
//strip panel
if(href_list["pouches"] && usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY))
visible_message("<span class='danger'>[usr] tries to empty [src]'s pouches.</span>", \
"<span class='userdanger'>[usr] tries to empty [src]'s pouches.</span>")
"<span class='userdanger'>[usr] tries to empty your pouches.</span>")
if(do_mob(usr, src, POCKET_STRIP_DELAY * 0.5))
dropItemToGround(r_store)
dropItemToGround(l_store)
@@ -68,7 +68,8 @@
/mob/living/carbon/alien/humanoid/resist_grab(moving_resist)
if(pulledby.grab_state)
visible_message("<span class='danger'>[src] has broken free of [pulledby]'s grip!</span>")
visible_message("<span class='danger'>[src] breaks free of [pulledby]'s grip!</span>", \
"<span class='danger'>You break free of [pulledby]'s grip!</span>")
pulledby.stop_pulling()
. = 0
@@ -4,15 +4,15 @@
if(user.a_intent == INTENT_HARM)
..(user, 1)
adjustBruteLoss(15)
var/hitverb = "punched"
var/hitverb = "punches"
if(mob_size < MOB_SIZE_LARGE)
step_away(src,user,15)
sleep(1)
step_away(src,user,15)
hitverb = "slammed"
hitverb = "slams"
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[user] has [hitverb] [src]!</span>", \
"<span class='userdanger'>[user] has [hitverb] [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[user] [hitverb] [src]!</span>", \
"<span class='userdanger'>[user] [hitverb] you!</span>", null, COMBAT_MESSAGE_RANGE)
return 1
/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M)
@@ -22,19 +22,19 @@
var/damage = rand(1, 9)
if (prob(90))
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[M] has punched [src]!</span>", \
"<span class='userdanger'>[M] has punched [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] punches [src]!</span>", \
"<span class='userdanger'>[M] punches you!</span>", null, COMBAT_MESSAGE_RANGE)
if ((stat != DEAD) && (damage > 9 || prob(5)))//Regular humans have a very small chance of knocking an alien down.
Unconscious(40)
visible_message("<span class='danger'>[M] has knocked [src] down!</span>", \
"<span class='userdanger'>[M] has knocked [src] down!</span>")
visible_message("<span class='danger'>[M] knocks [src] down!</span>", \
"<span class='userdanger'>[M] knocks you down!</span>")
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
apply_damage(damage, BRUTE, affecting)
log_combat(M, src, "attacked")
else
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<span class='userdanger'>[M] has attempted to punch [src]!</span>", \
"<span class='userdanger'>[M] has attempted to punch [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M]'s punch misses [src]!</span>", \
"<span class='userdanger'>[M]'s punch misses you!</span>", null, COMBAT_MESSAGE_RANGE)
if ("disarm")
if (!(mobility_flags & MOBILITY_STAND))
@@ -42,18 +42,18 @@
Unconscious(40)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
log_combat(M, src, "pushed")
visible_message("<span class='danger'>[M] has pushed down [src]!</span>", \
"<span class='userdanger'>[M] has pushed down [src]!</span>")
visible_message("<span class='danger'>[M] pushed [src] down!</span>", \
"<span class='userdanger'>[M] pushed you down!</span>")
else
if (prob(50))
dropItemToGround(get_active_held_item())
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
visible_message("<span class='danger'>[M] has disarmed [src]!</span>", \
"<span class='userdanger'>[M] has disarmed [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] disarms [src]!</span>", \
"<span class='userdanger'>[M] disarms you!</span>", null, COMBAT_MESSAGE_RANGE)
else
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<span class='userdanger'>[M] has attempted to disarm [src]!</span>",\
"<span class='userdanger'>[M] has attempted to disarm [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] fails to disarm [src]!</span>",\
"<span class='userdanger'>[M] fails to disarm you!</span>", null, COMBAT_MESSAGE_RANGE)
@@ -6,8 +6,8 @@
if (prob(90))
playsound(loc, "punch", 25, 1, -1)
log_combat(M, src, "attacked")
visible_message("<span class='danger'>[M] has kicked [src]!</span>", \
"<span class='userdanger'>[M] has kicked [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] kicks [src]!</span>", \
"<span class='userdanger'>[M] kicks you!</span>", null, COMBAT_MESSAGE_RANGE)
if ((stat != DEAD) && (damage > 4.9))
Unconscious(rand(100,200))
@@ -15,8 +15,8 @@
apply_damage(damage, BRUTE, affecting)
else
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has attempted to kick [src]!</span>", \
"<span class='userdanger'>[M] has attempted to kick [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M]'s kick misses [src]!</span>", \
"<span class='userdanger'>[M]'s kick misses you!</span>", null, COMBAT_MESSAGE_RANGE)
/mob/living/carbon/alien/larva/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
if(user.a_intent == INTENT_HARM)
@@ -150,7 +150,7 @@
return FALSE
// passed initial checks - time to leap!
M.visible_message("<span class='danger'>[src] leaps at [M]'s face!</span>", \
"<span class='userdanger'>[src] leaps at [M]'s face!</span>")
"<span class='userdanger'>[src] leaps at your face!</span>")
// probiscis-blocker handling
if(iscarbon(M))
@@ -160,7 +160,7 @@
var/mob/living/carbon/human/H = M
if(H.is_mouth_covered(head_only = 1))
H.visible_message("<span class='danger'>[src] smashes against [H]'s [H.head]!</span>", \
"<span class='userdanger'>[src] smashes against [H]'s [H.head]!</span>")
"<span class='userdanger'>[src] smashes against your [H.head]!</span>")
Die()
return FALSE
@@ -168,7 +168,7 @@
var/obj/item/clothing/W = target.wear_mask
if(target.dropItemToGround(W))
target.visible_message("<span class='danger'>[src] tears [W] off of [target]'s face!</span>", \
"<span class='userdanger'>[src] tears [W] off of [target]'s face!</span>")
"<span class='userdanger'>[src] tears [W] off of your face!</span>")
target.equip_to_slot_if_possible(src, SLOT_WEAR_MASK, 0, 1, 1)
return TRUE // time for a smoke
@@ -203,7 +203,7 @@
if(!sterile)
target.visible_message("<span class='danger'>[src] falls limp after violating [target]'s face!</span>", \
"<span class='userdanger'>[src] falls limp after violating [target]'s face!</span>")
"<span class='userdanger'>[src] falls limp after violating your face!</span>")
Die()
icon_state = "[initial(icon_state)]_impregnated"
@@ -216,7 +216,7 @@
else
target.visible_message("<span class='danger'>[src] violates [target]'s face!</span>", \
"<span class='userdanger'>[src] violates [target]'s face!</span>")
"<span class='userdanger'>[src] violates your face!</span>")
/obj/item/clothing/mask/facehugger/proc/GoActive()
if(stat == DEAD || stat == CONSCIOUS)
+4 -3
View File
@@ -154,7 +154,8 @@
return
if(thrown_thing)
visible_message("<span class='danger'>[src] has thrown [thrown_thing].</span>")
visible_message("<span class='danger'>[src] throws [thrown_thing].</span>", \
"<span class='danger'>You throw [thrown_thing].</span>")
log_message("has thrown [thrown_thing]", LOG_ATTACK)
newtonian_move(get_dir(target, src))
thrown_thing.safe_throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src, null, null, null, move_force)
@@ -215,7 +216,7 @@
var/obj/item/ITEM = get_item_by_slot(slot)
if(ITEM && istype(ITEM, /obj/item/tank) && wear_mask && (wear_mask.clothing_flags & MASKINTERNALS))
visible_message("<span class='danger'>[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].</span>", \
"<span class='userdanger'>[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].</span>")
"<span class='userdanger'>You try to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].</span>")
if(do_mob(usr, src, POCKET_STRIP_DELAY))
if(internal)
internal = null
@@ -226,7 +227,7 @@
update_internals_hud_icon(1)
visible_message("<span class='danger'>[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].</span>", \
"<span class='userdanger'>[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].</span>")
"<span class='userdanger'>You [internal ? "open" : "close"] the valve on [src]'s [ITEM.name].</span>")
/mob/living/carbon/fall(forced)
loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing
@@ -57,7 +57,8 @@
if(isturf(I.loc))
I.attack_hand(src)
if(get_active_held_item() == I) //if our attack_hand() picks up the item...
visible_message("<span class='warning'>[src] catches [I]!</span>") //catch that sucker!
visible_message("<span class='warning'>[src] catches [I]!</span>", \
"<span class='userdanger'>You catch [I] in mid-air!</span>")
throw_mode_off()
return 1
..()
@@ -159,7 +160,7 @@
M.powerlevel = 0
visible_message("<span class='danger'>The [M.name] has shocked [src]!</span>", \
"<span class='userdanger'>The [M.name] has shocked [src]!</span>")
"<span class='userdanger'>The [M.name] has shocked you!</span>")
do_sparks(5, TRUE, src)
var/power = M.powerlevel + rand(0,3)
@@ -216,19 +216,19 @@
if(I && dropItemToGround(I))
playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] disarmed [src]!</span>", \
"<span class='userdanger'>[M] disarmed [src]!</span>")
"<span class='userdanger'>[M] disarmed you!</span>")
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)
if (src.IsKnockdown() && !src.IsParalyzed())
Paralyze(40)
log_combat(M, src, "pinned")
visible_message("<span class='danger'>[M] has pinned down [src]!</span>", \
"<span class='userdanger'>[M] has pinned down [src]!</span>")
visible_message("<span class='danger'>[M] has pinned [src] down!</span>", \
"<span class='userdanger'>[M] has pinned you down!</span>")
else
Knockdown(30)
log_combat(M, src, "tackled")
visible_message("<span class='danger'>[M] has tackled down [src]!</span>", \
"<span class='userdanger'>[M] has tackled down [src]!</span>")
visible_message("<span class='danger'>[M] has tackled [src] down!</span>", \
"<span class='userdanger'>[M] has tackled you down!</span>")
if(M.limb_destroyer)
dismembering_strike(M, affecting.body_zone)
@@ -244,7 +244,8 @@
/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M)
if(check_shields(M, 0, "the M.name"))
visible_message("<span class='danger'>[M] attempted to touch [src]!</span>")
visible_message("<span class='danger'>[M] attempts to touch [src]!</span>", \
"<span class='danger'>[M] attempts to touch you!</span>")
return 0
if(..())
@@ -254,8 +255,8 @@
var/damage = prob(90) ? 20 : 0
if(!damage)
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1)
visible_message("<span class='danger'>[M] has lunged at [src]!</span>", \
"<span class='userdanger'>[M] has lunged at [src]!</span>")
visible_message("<span class='danger'>[M] lunges at [src]!</span>", \
"<span class='userdanger'>[M] lunges at you!</span>")
return 0
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
if(!affecting)
@@ -263,8 +264,8 @@
var/armor_block = run_armor_check(affecting, "melee","","",10)
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has slashed at [src]!</span>", \
"<span class='userdanger'>[M] has slashed at [src]!</span>")
visible_message("<span class='danger'>[M] slashes at [src]!</span>", \
"<span class='userdanger'>[M] slashes at you!</span>")
log_combat(M, src, "attacked")
if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful
return 1
@@ -274,14 +275,14 @@
var/obj/item/I = get_active_held_item()
if(I && dropItemToGround(I))
playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] disarmed [src]!</span>", \
"<span class='userdanger'>[M] disarmed [src]!</span>")
visible_message("<span class='danger'>[M] disarms [src]!</span>", \
"<span class='userdanger'>[M] disarms you!</span>")
else
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
Paralyze(100)
log_combat(M, src, "tackled")
visible_message("<span class='danger'>[M] has tackled down [src]!</span>", \
"<span class='userdanger'>[M] has tackled down [src]!</span>")
visible_message("<span class='danger'>[M] tackles [src] down!</span>", \
"<span class='userdanger'>[M] tackles you down!</span>")
/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L)
@@ -361,8 +362,8 @@
update_damage_overlays()
updatehealth()
visible_message("<span class='danger'>[M.name] has hit [src]!</span>", \
"<span class='userdanger'>[M.name] has hit [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M.name] hits [src]!</span>", \
"<span class='userdanger'>[M.name] hits you!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(M.occupant, src, "attacked", M, "(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])")
else
+21 -16
View File
@@ -1175,7 +1175,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
/datum/species/proc/grab(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style)
if(target.check_block())
target.visible_message("<span class='warning'>[target] blocks [user]'s grab attempt!</span>")
target.visible_message("<span class='warning'>[target] blocks [user]'s grab attempt!</span>", \
"<span class='userdanger'>You block [user]'s grab attempt!</span>")
return 0
if(attacker_style && attacker_style.grab_act(user,target))
return 1
@@ -1189,7 +1190,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
to_chat(user, "<span class='warning'>You don't want to harm [target]!</span>")
return FALSE
if(target.check_block())
target.visible_message("<span class='warning'>[target] blocks [user]'s attack!</span>")
target.visible_message("<span class='warning'>[target] blocks [user]'s attack!</span>", \
"<span class='userdanger'>You block [user]'s attack!</span>")
return FALSE
if(attacker_style && attacker_style.harm_act(user,target))
return TRUE
@@ -1222,8 +1224,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(!damage || !affecting || prob(miss_chance))//future-proofing for species that have 0 damage/weird cases where no zone is targeted
playsound(target.loc, user.dna.species.miss_sound, 25, 1, -1)
target.visible_message("<span class='danger'>[user] has attempted to [atk_verb] [target]!</span>",\
"<span class='userdanger'>[user] has attempted to [atk_verb] [target]!</span>", null, COMBAT_MESSAGE_RANGE)
target.visible_message("<span class='danger'>[user]'s [atk_verb] misses [target]!</span>",\
"<span class='userdanger'>[user]'s [atk_verb] misses you!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(user, target, "attempted to punch")
return FALSE
@@ -1231,8 +1233,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
playsound(target.loc, user.dna.species.attack_sound, 25, 1, -1)
target.visible_message("<span class='danger'>[user] has [atk_verb]ed [target]!</span>", \
"<span class='userdanger'>[user] has [atk_verb]ed [target]!</span>", null, COMBAT_MESSAGE_RANGE)
target.visible_message("<span class='danger'>[user] [atk_verb]ed [target]!</span>", \
"<span class='userdanger'>[user] [atk_verb]ed you!</span>", null, COMBAT_MESSAGE_RANGE)
target.lastattacker = user.real_name
target.lastattackerckey = user.ckey
@@ -1250,8 +1252,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
log_combat(user, target, "punched")
if((target.stat != DEAD) && damage >= user.dna.species.punchstunthreshold)
target.visible_message("<span class='danger'>[user] has knocked [target] down!</span>", \
"<span class='userdanger'>[user] has knocked [target] down!</span>", null, COMBAT_MESSAGE_RANGE)
target.visible_message("<span class='danger'>[user] knocked [target] down!</span>", \
"<span class='userdanger'>[user] knocked you down!</span>", null, COMBAT_MESSAGE_RANGE)
var/knockdown_duration = 40 + (target.getStaminaLoss() + (target.getBruteLoss()*0.5))*0.8 //50 total damage = 40 base stun + 40 stun modifier = 80 stun duration, which is the old base duration
target.apply_effect(knockdown_duration, EFFECT_KNOCKDOWN, armor_block)
target.forcesay(GLOB.hit_appends)
@@ -1264,7 +1266,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
/datum/species/proc/disarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style)
if(target.check_block())
target.visible_message("<span class='warning'>[target] blocks [user]'s shoving attempt!</span>")
target.visible_message("<span class='warning'>[target] blocks [user]'s shoving attempt!</span>", \
"<span class='userdanger'>You block [user]'s shoving attempt!</span>")
return FALSE
if(attacker_style && attacker_style.disarm_act(user,target))
return TRUE
@@ -1385,7 +1388,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
attacker_style = M.mind.martial_art
if((M != H) && M.a_intent != INTENT_HELP && H.check_shields(M, 0, M.name, attack_type = UNARMED_ATTACK))
log_combat(M, H, "attempted to touch")
H.visible_message("<span class='warning'>[M] attempted to touch [H]!</span>")
H.visible_message("<span class='warning'>[M] attempts to touch [H]!</span>", \
"<span class='userdanger'>[M] attempts to touch you!</span>")
return 0
SEND_SIGNAL(M, COMSIG_MOB_ATTACK_HAND, M, H, attacker_style)
switch(M.a_intent)
@@ -1407,7 +1411,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(H.check_shields(I, I.force, "the [I.name]", MELEE_ATTACK, I.armour_penetration))
return 0
if(H.check_block())
H.visible_message("<span class='warning'>[H] blocks [I]!</span>")
H.visible_message("<span class='warning'>[H] blocks [I]!</span>", \
"<span class='userdanger'>You block [I]!</span>")
return 0
var/hit_area
@@ -1417,7 +1422,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
hit_area = affecting.name
var/def_zone = affecting.body_zone
var/armor_block = H.run_armor_check(affecting, "melee", "<span class='notice'>Your armor has protected your [hit_area].</span>", "<span class='notice'>Your armor has softened a hit to your [hit_area].</span>",I.armour_penetration)
var/armor_block = H.run_armor_check(affecting, "melee", "<span class='notice'>Your armor has protected your [hit_area]!</span>", "<span class='warning'>Your armor has softened a hit to your [hit_area]!</span>",I.armour_penetration)
armor_block = min(90,armor_block) //cap damage reduction at 90%
var/Iforce = I.force //to avoid runtimes on the forcesay checks at the bottom. Some items might delete themselves if you drop them. (stunning yourself, ninja swords)
@@ -1454,8 +1459,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(prob(I.force))
H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 20)
if(H.stat == CONSCIOUS)
H.visible_message("<span class='danger'>[H] has been knocked senseless!</span>", \
"<span class='userdanger'>[H] has been knocked senseless!</span>")
H.visible_message("<span class='danger'>[H] is knocked senseless!</span>", \
"<span class='userdanger'>You're knocked senseless!</span>")
H.confused = max(H.confused, 20)
H.adjust_blurriness(10)
if(prob(10))
@@ -1482,8 +1487,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(BODY_ZONE_CHEST)
if(H.stat == CONSCIOUS && !I.is_sharp() && armor_block < 50)
if(prob(I.force))
H.visible_message("<span class='danger'>[H] has been knocked down!</span>", \
"<span class='userdanger'>[H] has been knocked down!</span>")
H.visible_message("<span class='danger'>[H] is knocked down!</span>", \
"<span class='userdanger'>You're knocked down!</span>")
H.apply_effect(60, EFFECT_KNOCKDOWN, armor_block)
if(bloody)
@@ -39,8 +39,8 @@
if("harm")
M.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
if (prob(75))
visible_message("<span class='danger'>[M] has punched [name]!</span>", \
"<span class='userdanger'>[M] has punched [name]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] punches [name]!</span>", \
"<span class='userdanger'>[M] punches you!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(loc, "punch", 25, 1, -1)
var/damage = rand(5, 10)
@@ -48,8 +48,8 @@
damage = rand(10, 15)
if(AmountUnconscious() < 100 && health > 0)
Unconscious(rand(200, 300))
visible_message("<span class='danger'>[M] has knocked out [name]!</span>", \
"<span class='userdanger'>[M] has knocked out [name]!</span>", null, 5)
visible_message("<span class='danger'>[M] knocks [name] out!</span>", \
"<span class='userdanger'>[M] knocks you out!</span>", null, 5)
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
@@ -58,8 +58,8 @@
else
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has attempted to punch [name]!</span>", \
"<span class='userdanger'>[M] has attempted to punch [name]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M]'s punch misses [name]!</span>", \
"<span class='userdanger'>[M]'s punch misses you!</span>", null, COMBAT_MESSAGE_RANGE)
if("disarm")
if(!IsUnconscious())
M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
@@ -67,11 +67,12 @@
Paralyze(40)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
log_combat(M, src, "pushed")
visible_message("<span class='danger'>[M] has pushed down [src]!</span>", \
"<span class='userdanger'>[M] has pushed down [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] pushes [src] down!</span>", \
"<span class='userdanger'>[M] pushes you down!</span>")
else if(dropItemToGround(get_active_held_item()))
playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
visible_message("<span class='danger'>[M] has disarmed [src]!</span>", "<span class='userdanger'>[M] has disarmed [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] disarms [src]!</span>", \
"<span class='userdanger'>[M] disarms you!</span>", null, COMBAT_MESSAGE_RANGE)
/mob/living/carbon/monkey/attack_alien(mob/living/carbon/alien/humanoid/M)
if(..()) //if harm or disarm intent.
@@ -83,11 +84,11 @@
damage = rand(20, 40)
if(AmountUnconscious() < 300)
Unconscious(rand(200, 300))
visible_message("<span class='danger'>[M] has wounded [name]!</span>", \
"<span class='userdanger'>[M] has wounded [name]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] wounds [name]!</span>", \
"<span class='userdanger'>[M] wounds you!</span>", null, COMBAT_MESSAGE_RANGE)
else
visible_message("<span class='danger'>[M] has slashed [name]!</span>", \
"<span class='userdanger'>[M] has slashed [name]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] slashes [name]!</span>", \
"<span class='userdanger'>[M] slashes you!</span>", null, COMBAT_MESSAGE_RANGE)
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
log_combat(M, src, "attacked")
@@ -99,20 +100,21 @@
else
playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has attempted to lunge at [name]!</span>", \
"<span class='userdanger'>[M] has attempted to lunge at [name]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M]'s lunge misses [name]!</span>", \
"<span class='userdanger'>[M]'s lunge misses you!</span>", null, COMBAT_MESSAGE_RANGE)
if (M.a_intent == INTENT_DISARM)
var/obj/item/I = null
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
if(prob(95))
Paralyze(20)
visible_message("<span class='danger'>[M] has tackled down [name]!</span>", \
"<span class='userdanger'>[M] has tackled down [name]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] tackles [name] down!</span>", \
"<span class='userdanger'>[M] tackles you down!</span>", null, COMBAT_MESSAGE_RANGE)
else
I = get_active_held_item()
if(dropItemToGround(I))
visible_message("<span class='danger'>[M] has disarmed [name]!</span>", "<span class='userdanger'>[M] has disarmed [name]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] disarms [name]!</span>", \
"<span class='userdanger'>[M] disarms you!</span>", null, COMBAT_MESSAGE_RANGE)
else
I = null
log_combat(M, src, "disarmed", "[I ? " removing \the [I]" : ""]")
+5 -3
View File
@@ -277,7 +277,8 @@
log_combat(src, M, "grabbed", addition="passive grab")
if(!supress_message && !(iscarbon(AM) && HAS_TRAIT(src, TRAIT_STRONG_GRABBER)))
visible_message("<span class='warning'>[src] has grabbed [M] passively!</span>")
M.visible_message("<span class='warning'>[src] grabs [M] passively!</span>", \
"<span class='warning'>[src] grabs you passively!</span>")
if(!iscarbon(src))
M.LAssailant = null
else
@@ -781,7 +782,7 @@
to_chat(src, "<span class='warning'>You can't remove \the [what.name], it appears to be stuck!</span>")
return
who.visible_message("<span class='danger'>[src] tries to remove [who]'s [what.name].</span>", \
"<span class='userdanger'>[src] tries to remove [who]'s [what.name].</span>")
"<span class='userdanger'>[src] tries to remove your [what.name].</span>")
what.add_fingerprint(src)
if(do_mob(src, who, what.strip_delay))
if(what && Adjacent(who))
@@ -820,7 +821,8 @@
to_chat(src, "<span class='warning'>\The [what.name] doesn't fit in that place!</span>")
return
visible_message("<span class='notice'>[src] tries to put [what] on [who].</span>")
who.visible_message("<span class='notice'>[src] tries to put [what] on [who].</span>", \
"<span class='notice'>[src] tries to put [what] on you.</span>")
if(do_mob(src, who, what.equip_delay_other))
if(what && Adjacent(who) && what.mob_can_equip(who, src, final_where, TRUE, TRUE))
if(temporarilyRemoveItemFromInventory(what))
+31 -27
View File
@@ -11,14 +11,14 @@
to_chat(src, "<span class='userdanger'>Your armor was penetrated!</span>")
else if(armor >= 100)
if(absorb_text)
to_chat(src, "<span class='userdanger'>[absorb_text]</span>")
to_chat(src, "<span class='notice'>[absorb_text]</span>")
else
to_chat(src, "<span class='userdanger'>Your armor absorbs the blow!</span>")
to_chat(src, "<span class='notice'>Your armor absorbs the blow!</span>")
else if(armor > 0)
if(soften_text)
to_chat(src, "<span class='userdanger'>[soften_text]</span>")
to_chat(src, "<span class='warning'>[soften_text]</span>")
else
to_chat(src, "<span class='userdanger'>Your armor softens the blow!</span>")
to_chat(src, "<span class='warning'>Your armor softens the blow!</span>")
return armor
@@ -85,8 +85,8 @@
if(!I.throwforce)// Otherwise, if the item's throwforce is 0...
playsound(loc, 'sound/weapons/throwtap.ogg', 1, volume, -1)//...play throwtap.ogg.
if(!blocked)
visible_message("<span class='danger'>[src] has been hit by [I].</span>", \
"<span class='userdanger'>[src] has been hit by [I].</span>")
visible_message("<span class='danger'>[src] is hit by [I]!</span>", \
"<span class='userdanger'>You're hit by [I]!</span>")
var/armor = run_armor_check(zone, "melee", "Your armor has protected your [parse_zone(zone)].", "Your armor has softened hit to your [parse_zone(zone)].",I.armour_penetration)
apply_damage(I.throwforce, dtype, zone, armor)
if(I.thrownby)
@@ -116,13 +116,14 @@
else
return
updatehealth()
visible_message("<span class='danger'>[M.name] has hit [src]!</span>", \
"<span class='userdanger'>[M.name] has hit [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M.name] hits [src]!</span>", \
"<span class='userdanger'>[M.name] hits you!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(M.occupant, src, "attacked", M, "(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])")
else
step_away(src,M)
log_combat(M.occupant, src, "pushed", M)
visible_message("<span class='warning'>[M] pushes [src] out of the way.</span>", null, null, 5)
visible_message("<span class='warning'>[M] pushes [src] out of the way.</span>", \
"<span class='warning'>[M] pushes you out of the way.</span>", null, 5)
/mob/living/fire_act()
adjust_fire_stacks(3)
@@ -177,19 +178,19 @@
if(GRAB_AGGRESSIVE)
var/add_log = ""
if(HAS_TRAIT(user, TRAIT_PACIFISM))
visible_message("<span class='danger'>[user] has firmly gripped [src]!</span>",
"<span class='danger'>[user] has firmly gripped you!</span>")
visible_message("<span class='danger'>[user] firmly grips [src]!</span>",
"<span class='danger'>[user] firmly grips you!</span>")
add_log = " (pacifist)"
else
visible_message("<span class='danger'>[user] has grabbed [src] aggressively!</span>", \
"<span class='userdanger'>[user] has grabbed you aggressively!</span>")
visible_message("<span class='danger'>[user] grabs [src] aggressively!</span>", \
"<span class='userdanger'>[user] grabs you aggressively!</span>")
drop_all_held_items()
stop_pulling()
log_combat(user, src, "grabbed", addition="aggressive grab[add_log]")
if(GRAB_NECK)
log_combat(user, src, "grabbed", addition="neck grab")
visible_message("<span class='danger'>[user] has grabbed [src] by the neck!</span>",\
"<span class='userdanger'>[user] has grabbed you by the neck!</span>")
visible_message("<span class='danger'>[user] grabs [src] by the neck!</span>",\
"<span class='userdanger'>[user] grabs you by the neck!</span>")
update_mobility() //we fall down
if(!buckled && !density)
Move(user.loc)
@@ -221,14 +222,15 @@
if (stat != DEAD)
log_combat(M, src, "attacked")
M.do_attack_animation(src)
visible_message("<span class='danger'>The [M.name] glomps [src]!</span>", \
"<span class='userdanger'>The [M.name] glomps [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>\The [M.name] glomps [src]!</span>", \
"<span class='userdanger'>\The [M.name] glomps you!</span>", null, COMBAT_MESSAGE_RANGE)
return TRUE
/mob/living/attack_animal(mob/living/simple_animal/M)
M.face_atom(src)
if(M.melee_damage_upper == 0)
M.visible_message("<span class='notice'>\The [M] [M.friendly] [src]!</span>")
M.visible_message("<span class='notice'>\The [M] [M.friendly] [src]!</span>", \
"<span class='notice'>\The [M] [M.friendly] you!</span>")
return FALSE
else
if(HAS_TRAIT(M, TRAIT_PACIFISM))
@@ -239,7 +241,7 @@
playsound(loc, M.attack_sound, 50, 1, 1)
M.do_attack_animation(src)
visible_message("<span class='danger'>\The [M] [M.attacktext] [src]!</span>", \
"<span class='userdanger'>\The [M] [M.attacktext] [src]!</span>", null, COMBAT_MESSAGE_RANGE)
"<span class='userdanger'>\The [M] [M.attacktext] you!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(M, src, "attacked")
return TRUE
@@ -262,17 +264,18 @@
log_combat(M, src, "attacked")
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
visible_message("<span class='danger'>[M.name] bites [src]!</span>", \
"<span class='userdanger'>[M.name] bites [src]!</span>", null, COMBAT_MESSAGE_RANGE)
"<span class='userdanger'>[M.name] bites you!</span>", null, COMBAT_MESSAGE_RANGE)
return TRUE
else
visible_message("<span class='danger'>[M.name] has attempted to bite [src]!</span>", \
"<span class='userdanger'>[M.name] has attempted to bite [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M.name]'s bite misses [src]!</span>", \
"<span class='userdanger'>[M.name]'s bite misses you!</span>", null, COMBAT_MESSAGE_RANGE)
return FALSE
/mob/living/attack_larva(mob/living/carbon/alien/larva/L)
switch(L.a_intent)
if("help")
visible_message("<span class='notice'>[L.name] rubs its head against [src].</span>")
visible_message("<span class='notice'>[L.name] rubs its head against [src].</span>", \
"<span class='notice'>[L.name] rubs its head against you.</span>")
return FALSE
else
@@ -284,18 +287,19 @@
if(prob(90))
log_combat(L, src, "attacked")
visible_message("<span class='danger'>[L.name] bites [src]!</span>", \
"<span class='userdanger'>[L.name] bites [src]!</span>", null, COMBAT_MESSAGE_RANGE)
"<span class='userdanger'>[L.name] bites you!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
return TRUE
else
visible_message("<span class='danger'>[L.name] has attempted to bite [src]!</span>", \
"<span class='userdanger'>[L.name] has attempted to bite [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[L.name]'s bite misses [src]!</span>", \
"<span class='userdanger'>[L.name]'s bite misses you!</span>", null, COMBAT_MESSAGE_RANGE)
return FALSE
/mob/living/attack_alien(mob/living/carbon/alien/humanoid/M)
switch(M.a_intent)
if ("help")
visible_message("<span class='notice'>[M] caresses [src] with its scythe like arm.</span>")
visible_message("<span class='notice'>[M] caresses [src] with its scythe-like arm.</span>", \
"<span class='notice'>[M] caresses you with its scythe-like arm.</span>")
return FALSE
if ("grab")
grabbedby(M)
@@ -11,8 +11,8 @@
if (prob(90))
log_combat(M, src, "attacked")
playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has slashed at [src]!</span>", \
"<span class='userdanger'>[M] has slashed at [src]!</span>")
visible_message("<span class='danger'>[M] slashes at [src]!</span>", \
"<span class='userdanger'>[M] slashes at you!</span>")
if(prob(8))
flash_act(affect_silicon = 1)
log_combat(M, src, "attacked")
@@ -20,8 +20,8 @@
updatehealth()
else
playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] took a swipe at [src]!</span>", \
"<span class='userdanger'>[M] took a swipe at [src]!</span>")
visible_message("<span class='danger'>[M]'s swipe misses [src]!</span>", \
"<span class='userdanger'>[M]'s swipe misses you!</span>")
/mob/living/silicon/attack_animal(mob/living/simple_animal/M)
. = ..()
@@ -31,7 +31,8 @@
for(var/mob/living/N in buckled_mobs)
N.Paralyze(20)
unbuckle_mob(N)
N.visible_message("<span class='boldwarning'>[N] is knocked off of [src] by [M]!</span>")
N.visible_message("<span class='boldwarning'>[N] is knocked off of [src] by [M]!</span>", \
"<span class='boldwarning'>You're knocked off of [src] by [M]!</span>")
switch(M.melee_damage_type)
if(BRUTE)
adjustBruteLoss(damage)
@@ -58,8 +59,8 @@
..(user, 1)
adjustBruteLoss(rand(10, 15))
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[user] has punched [src]!</span>", \
"<span class='userdanger'>[user] has punched [src]!</span>")
visible_message("<span class='danger'>[user] punches [src]!</span>", \
"<span class='userdanger'>[user] punches you!</span>", null, COMBAT_MESSAGE_RANGE)
return 1
return 0
@@ -77,8 +78,8 @@
else
M.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
playsound(src.loc, 'sound/effects/bang.ogg', 10, 1)
visible_message("<span class='danger'>[M] punches [src], but doesn't leave a dent.</span>", \
"<span class='warning'>[M] punches [src], but doesn't leave a dent.</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] punches [src], but doesn't leave a dent!</span>", \
"<span class='warning'>[M] punches you, but doesn't leave a dent!</span>", null, COMBAT_MESSAGE_RANGE)
/mob/living/silicon/attack_drone(mob/living/simple_animal/drone/M)
if(M.a_intent == INTENT_HARM)
@@ -5,7 +5,8 @@
switch(M.a_intent)
if("help")
if (health > 0)
visible_message("<span class='notice'>[M] [response_help] [src].</span>")
visible_message("<span class='notice'>[M] [response_help] [src].</span>", \
"<span class='notice'>[M] [response_help] you.</span>")
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
if("grab")
@@ -17,7 +18,7 @@
return
M.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
visible_message("<span class='danger'>[M] [response_harm] [src]!</span>",\
"<span class='userdanger'>[M] [response_harm] [src]!</span>", null, COMBAT_MESSAGE_RANGE)
"<span class='userdanger'>[M] [response_harm] you!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(loc, attacked_sound, 25, 1, -1)
attack_threshold_check(harm_intent_damage)
log_combat(M, src, "attacked")
@@ -31,8 +32,8 @@
return FALSE
..(user, 1)
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[user] has punched [src]!</span>", \
"<span class='userdanger'>[user] has punched [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[user] punches [src]!</span>", \
"<span class='userdanger'>[user] punches you!</span>", null, COMBAT_MESSAGE_RANGE)
adjustBruteLoss(15)
return TRUE
@@ -44,7 +45,8 @@
return 1
if (M.a_intent == INTENT_HELP)
if (health > 0)
visible_message("<span class='notice'>[M.name] [response_help] [src].</span>")
visible_message("<span class='notice'>[M.name] [response_help] [src].</span>", \
"<span class='notice'>[M.name] [response_help] you.</span>")
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
@@ -53,12 +55,12 @@
if(M.a_intent == INTENT_DISARM)
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] [response_disarm] [name]!</span>", \
"<span class='userdanger'>[M] [response_disarm] [name]!</span>", null, COMBAT_MESSAGE_RANGE)
"<span class='userdanger'>[M] [response_disarm] you!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(M, src, "disarmed")
else
var/damage = rand(15, 30)
visible_message("<span class='danger'>[M] has slashed at [src]!</span>", \
"<span class='userdanger'>[M] has slashed at [src]!</span>", null, COMBAT_MESSAGE_RANGE)
visible_message("<span class='danger'>[M] slashes at [src]!</span>", \
"<span class='userdanger'>[M] slashes at you!</span>", null, COMBAT_MESSAGE_RANGE)
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
attack_threshold_check(damage)
log_combat(M, src, "attacked")
@@ -287,7 +287,8 @@
return
if(buckled)
Feedstop(silent = TRUE)
visible_message("<span class='danger'>[M] pulls [src] off!</span>")
visible_message("<span class='danger'>[M] pulls [src] off!</span>", \
"<span class='danger'>You pull [src] off!</span>")
return
attacked += 5
if(nutrition >= 100) //steal some nutrition. negval handled in life()
@@ -321,22 +322,26 @@
M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
if(buckled == M)
if(prob(60))
visible_message("<span class='warning'>[M] attempts to wrestle \the [name] off!</span>")
M.visible_message("<span class='warning'>[M] attempts to wrestle \the [name] off!</span>", \
"<span class='danger'>You attempt to wrestle \the [name] off!</span>")
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
else
visible_message("<span class='warning'>[M] manages to wrestle \the [name] off!</span>")
M.visible_message("<span class='warning'>[M] manages to wrestle \the [name] off!</span>", \
"<span class='notice'>You manage to wrestle \the [name] off!</span>")
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
discipline_slime(M)
else
if(prob(30))
visible_message("<span class='warning'>[M] attempts to wrestle \the [name] off of [buckled]!</span>")
buckled.visible_message("<span class='warning'>[M] attempts to wrestle \the [name] off of [buckled]!</span>", \
"<span class='warning'>[M] attempts to wrestle \the [name] off of you!</span>")
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
else
visible_message("<span class='warning'>[M] manages to wrestle \the [name] off of [buckled]!</span>")
buckled.visible_message("<span class='warning'>[M] manages to wrestle \the [name] off of [buckled]!</span>", \
"<span class='notice'>[M] manage to wrestle \the [name] off of you!</span>")
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
discipline_slime(M)
+1 -1
View File
@@ -190,7 +190,7 @@
var/volume = vol_by_damage()
playsound(loc, hitsound, volume, 1, -1)
L.visible_message("<span class='danger'>[L] is hit by \a [src][organ_hit_text]!</span>", \
"<span class='userdanger'>[L] is hit by \a [src][organ_hit_text]!</span>", null, COMBAT_MESSAGE_RANGE)
"<span class='userdanger'>You're hit by \a [src][organ_hit_text]!</span>", null, COMBAT_MESSAGE_RANGE)
L.on_hit(src)
var/reagent_note
@@ -40,7 +40,7 @@
trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this, transfered_by = user, method = TOUCH)
target.visible_message("<span class='danger'>[user] tries to squirt something into [target]'s eyes, but fails!</span>", \
"<span class='userdanger'>[user] tries to squirt something into [target]'s eyes, but fails!</span>")
"<span class='userdanger'>[user] tries to squirt something into your eyes, but fails!</span>")
to_chat(user, "<span class='notice'>You transfer [trans] unit\s of the solution.</span>")
update_icon()
@@ -50,7 +50,7 @@
return
target.visible_message("<span class='danger'>[user] squirts something into [target]'s eyes!</span>", \
"<span class='userdanger'>[user] squirts something into [target]'s eyes!</span>")
"<span class='userdanger'>[user] squirts something into your eyes!</span>")
reagents.reaction(target, TOUCH, fraction)
var/mob/M = target
@@ -24,7 +24,7 @@
if(user.a_intent == INTENT_HARM)
var/R
M.visible_message("<span class='danger'>[user] splashes the contents of [src] onto [M]!</span>", \
"<span class='userdanger'>[user] splashes the contents of [src] onto [M]!</span>")
"<span class='userdanger'>[user] splashes the contents of [src] onto you!</span>")
if(reagents)
for(var/datum/reagent/A in reagents.reagent_list)
R += "[A] ([num2text(A.volume)]),"
@@ -37,13 +37,14 @@
reagents.clear_reagents()
else
if(M != user)
M.visible_message("<span class='danger'>[user] attempts to feed something to [M].</span>", \
"<span class='userdanger'>[user] attempts to feed something to you.</span>")
M.visible_message("<span class='danger'>[user] attempts to feed [M] something.</span>", \
"<span class='userdanger'>[user] attempts to feed you something.</span>")
if(!do_mob(user, M))
return
if(!reagents || !reagents.total_volume)
return // The drink might be empty after the delay, such as by spam-feeding
M.visible_message("<span class='danger'>[user] feeds something to [M].</span>", "<span class='userdanger'>[user] feeds something to you.</span>")
M.visible_message("<span class='danger'>[user] feeds [M] something.</span>", \
"<span class='userdanger'>[user] feeds you something.</span>")
log_combat(user, M, "fed", reagents.log_list())
else
to_chat(user, "<span class='notice'>You swallow a gulp of [src].</span>")
@@ -49,13 +49,13 @@
else
log_combat(user, M, "attempted to apply", src, reagents.log_list())
M.visible_message("<span class='danger'>[user] attempts to [apply_method] [src] on [M].</span>", \
"<span class='userdanger'>[user] attempts to [apply_method] [src] on [M].</span>")
"<span class='userdanger'>[user] attempts to [apply_method] [src] on you.</span>")
if(!do_mob(user, M))
return
if(!reagents || !reagents.total_volume)
return
M.visible_message("<span class='danger'>[user] [apply_method]s [M] down with [src].</span>", \
"<span class='userdanger'>[user] [apply_method]s [M] down with [src].</span>")
"<span class='userdanger'>[user] [apply_method]s you down with [src].</span>")
if(!reagents || !reagents.total_volume)
return
@@ -40,11 +40,11 @@
else
M.visible_message("<span class='danger'>[user] attempts to force [M] to [apply_method] [src].</span>", \
"<span class='userdanger'>[user] attempts to force [M] to [apply_method] [src].</span>")
"<span class='userdanger'>[user] attempts to force you to [apply_method] [src].</span>")
if(!do_mob(user, M))
return FALSE
M.visible_message("<span class='danger'>[user] forces [M] to [apply_method] [src].</span>", \
"<span class='userdanger'>[user] forces [M] to [apply_method] [src].</span>")
"<span class='userdanger'>[user] forces you to [apply_method] [src].</span>")
var/makes_me_think = pick(strings(REDPILL_FILE, "redpill_questions"))
if(icon_state == "pill4" && prob(5)) //you take the red pill - you stay in Wonderland, and I show you how deep the rabbit hole goes
@@ -261,6 +261,3 @@
icon_state = "pill9"
list_reagents = list(/datum/reagent/iron = 30)
rename_with_volume = TRUE
@@ -79,7 +79,7 @@
var/drawn_amount = reagents.maximum_volume - reagents.total_volume
if(target != user)
target.visible_message("<span class='danger'>[user] is trying to take a blood sample from [target]!</span>", \
"<span class='userdanger'>[user] is trying to take a blood sample from [target]!</span>")
"<span class='userdanger'>[user] is trying to take a blood sample from you!</span>")
busy = TRUE
if(!do_mob(user, target, extra_checks=CALLBACK(L, /mob/living/proc/can_inject, user, TRUE)))
busy = FALSE
@@ -130,7 +130,7 @@
return
if(L != user)
L.visible_message("<span class='danger'>[user] is trying to inject [L]!</span>", \
"<span class='userdanger'>[user] is trying to inject [L]!</span>")
"<span class='userdanger'>[user] is trying to inject you!</span>")
if(!do_mob(user, L, extra_checks=CALLBACK(L, /mob/living/proc/can_inject, user, TRUE)))
return
if(!reagents.total_volume)
@@ -138,7 +138,7 @@
if(L.reagents.total_volume >= L.reagents.maximum_volume)
return
L.visible_message("<span class='danger'>[user] injects [L] with the syringe!", \
"<span class='userdanger'>[user] injects [L] with the syringe!</span>")
"<span class='userdanger'>[user] injects you with the syringe!</span>")
if(L != user)
log_combat(user, L, "injected", src, addition="which had [contained]")
+1 -1
View File
@@ -137,7 +137,7 @@
if(user == target)
user.visible_message("[user] climbs into [src].", "<span class='notice'>You climb into [src].</span>")
else
target.visible_message("<span class='danger'>[user] has placed [target] in [src].</span>", "<span class='userdanger'>[user] has placed [target] in [src].</span>")
target.visible_message("<span class='danger'>[user] has placed [target] in [src].</span>", "<span class='userdanger'>[user] has placed you in [src].</span>")
log_combat(user, target, "stuffed", addition="into [src]")
target.LAssailant = user
update_icon()
+2 -1
View File
@@ -86,7 +86,8 @@
if(organ_flags & ORGAN_FAILING) //heart broke, stopped beating, death imminent
if(owner.stat == CONSCIOUS)
owner.visible_message("<span class='userdanger'>[owner] clutches at [owner.p_their()] chest as if [owner.p_their()] heart is stopping!</span>")
owner.visible_message("<span class='danger'>[owner] clutches at [owner.p_their()] chest as if [owner.p_their()] heart is stopping!</span>", \
"<span class='userdanger'>You feel a terrible pain in your chest, as if your heart has stopped!</span>")
owner.set_heartattack(TRUE)
failed = TRUE
+2 -1
View File
@@ -392,7 +392,8 @@
..()
if((!failed) && ((organ_flags & ORGAN_FAILING)))
if(owner.stat == CONSCIOUS)
owner.visible_message("<span class='userdanger'>[owner] grabs [owner.p_their()] throat, struggling for breath!</span>")
owner.visible_message("<span class='danger'>[owner] grabs [owner.p_their()] throat, struggling for breath!</span>", \
"<span class='userdanger'>You suddenly feel like you can't breathe!</span>")
failed = TRUE
else if(!(organ_flags & ORGAN_FAILING))
failed = FALSE