mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 19:17:50 +01:00
Dswords now return melee attack on parry. Eswords reflect lasers on parry. Throwing bodies at a dsword user may not work well (#21463)
This commit is contained in:
@@ -228,6 +228,24 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>It's already fabulous!</span>")
|
||||
|
||||
|
||||
/obj/item/melee/energy/sword/saber/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
if(!active)
|
||||
return FALSE
|
||||
. = ..()
|
||||
if(!.) // they did not block the attack
|
||||
return
|
||||
if(istype(hitby, /obj/item/projectile))
|
||||
var/obj/item/projectile/P = hitby
|
||||
if(P.reflectability == REFLECTABILITY_NEVER) //only 1 magic spell does this, but hey, needed
|
||||
owner.visible_message("<span class='danger'>[owner] blocks [attack_text] with [src]!</span>")
|
||||
playsound(src, 'sound/weapons/effects/ric3.ogg', 100, TRUE)
|
||||
return TRUE
|
||||
owner.visible_message("<span class='danger'>[owner] parries [attack_text] with [src]!</span>")
|
||||
add_attack_logs(P.firer, src, "hit by [P.type] but got parried by [src]")
|
||||
return -1
|
||||
return TRUE
|
||||
|
||||
/obj/item/melee/energy/sword/pirate
|
||||
name = "energy cutlass"
|
||||
desc = "Arrrr matey."
|
||||
|
||||
@@ -334,9 +334,23 @@
|
||||
sleep(1)
|
||||
|
||||
/obj/item/twohanded/dualsaber/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
if(wielded)
|
||||
return ..()
|
||||
return FALSE
|
||||
if(!wielded)
|
||||
return FALSE
|
||||
. = ..()
|
||||
if(!.) // they did not block the attack
|
||||
return
|
||||
|
||||
if(attack_type == THROWN_PROJECTILE_ATTACK)
|
||||
if(!isitem(hitby))
|
||||
return TRUE
|
||||
var/obj/item/TT = hitby
|
||||
addtimer(CALLBACK(TT, TYPE_PROC_REF(/atom/movable, throw_at), locateUID(TT.thrownby), 10, 4, owner), 0.2 SECONDS) //Timer set to 0.2 seconds to ensure item finshes the throwing to prevent double embeds
|
||||
return TRUE
|
||||
if(isitem(hitby))
|
||||
melee_attack_chain(owner, hitby.loc)
|
||||
else
|
||||
melee_attack_chain(owner, hitby)
|
||||
return TRUE
|
||||
|
||||
/obj/item/twohanded/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up
|
||||
if(wielded)
|
||||
|
||||
Reference in New Issue
Block a user