why didn't it do this before fuck oh my god

shields can now block impaling
This commit is contained in:
Joan Lung
2016-06-11 08:05:41 -04:00
parent cc1b0f5ffa
commit 1c19a6a2fb
7 changed files with 20 additions and 16 deletions

View File

@@ -34,7 +34,7 @@
user.lastattacked = M
M.lastattacker = user
M.attacked_by(src, user)
. = M.attacked_by(src, user)
add_logs(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
add_fingerprint(user)
@@ -69,6 +69,7 @@
add_splatter_floor(location)
if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood
user.add_mob_blood(src)
return 1
// Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person.

View File

@@ -797,22 +797,24 @@
attack_verb = list("impaled")
force += 23 //40 damage if ratvar isn't alive, 53 if he is
user.stop_pulling()
target.Stun(2)
PoolOrNew(/obj/effect/overlay/temp/bloodsplatter, list(get_turf(target), get_dir(user, target)))
if(impale_cooldown > world.time)
user << "<span class='warning'>You can't attack right now, wait [max(round((impale_cooldown - world.time)*0.1, 0.1), 0)] seconds!</span>"
return
..()
if(issilicon(target))
var/mob/living/silicon/S = target
if(S.stat != DEAD)
S.visible_message("<span class='warning'>[S] shudders violently at [src]'s touch!</span>", "<span class='userdanger'>ERROR: Temperature rising!</span>")
S.adjustFireLoss(25)
else if(iscultist(target) || isconstruct(target)) //Cultists take extra fire damage
var/mob/living/M = target
M << "<span class='userdanger'>Your body flares with agony at [src]'s touch!</span>"
M.adjustFireLoss(10)
if(!..())
impaling = FALSE
else
if(issilicon(target))
var/mob/living/silicon/S = target
if(S.stat != DEAD)
S.visible_message("<span class='warning'>[S] shudders violently at [src]'s touch!</span>", "<span class='userdanger'>ERROR: Temperature rising!</span>")
S.adjustFireLoss(25)
else if(iscultist(target) || isconstruct(target)) //Cultists take extra fire damage
var/mob/living/M = target
M << "<span class='userdanger'>Your body flares with agony at [src]'s touch!</span>"
M.adjustFireLoss(10)
if(impaling)
target.Stun(2)
PoolOrNew(/obj/effect/overlay/temp/bloodsplatter, list(get_turf(target), get_dir(user, target)))
impale_cooldown = world.time + initial(impale_cooldown)
attack_verb = list("stabbed", "poked", "slashed")
if(target)

View File

@@ -121,6 +121,7 @@
if(message_verb)
visible_message("<span class='danger'>[attack_message]</span>",
"<span class='userdanger'>[attack_message]</span>")
return 1
/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity)
A.attack_hand(src)

View File

@@ -132,7 +132,7 @@
myjob.apply_fingerprints(src)
/mob/living/carbon/human/interactive/attacked_by(obj/item/I, mob/living/user, def_zone)
..()
. = ..()
retal = 1
retal_target = user

View File

@@ -1161,7 +1161,7 @@
if(Iforce > 10 || Iforce >= 5 && prob(33))
H.forcesay(hit_appends) //forcesay checks stat already.
return
return 1
/datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H)
blocked = (100-(blocked+armor))/100

View File

@@ -624,7 +624,7 @@
/mob/living/silicon/robot/attacked_by(obj/item/I, mob/living/user, def_zone)
if(I.force && I.damtype != STAMINA && stat != DEAD) //only sparks if real damage is dealt.
spark_system.start()
..()
return ..()
/mob/living/silicon/robot/emag_act(mob/user)