Merge pull request #15188 from KillianKirilenko/kk-staves

Staves
This commit is contained in:
Heroman3003
2023-07-30 21:13:57 +10:00
committed by GitHub
5 changed files with 45 additions and 1 deletions
@@ -26,7 +26,6 @@
edge = TRUE
sharp = TRUE
/obj/item/weapon/material/twohanded/saber/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if (src.wielded == 1)
if(unique_parry_check(user, attacker, damage_source) && prob(50))
@@ -34,3 +33,47 @@
playsound(src, 'sound/weapons/punchmiss.ogg', 50, 1)
return 1
return 0
/obj/item/weapon/material/twohanded/staff
w_class = ITEMSIZE_LARGE
default_material = MAT_WOOD
name = "staff"
desc = "A sturdy length of metal or wood. A common traveler's aid mostly used for support or probing unstable ground, but also a fairly effective weapon in a pinch."
description_info = "When wielded with two hands, staves can be used to parry incoming attacks. Being on disarm intent also grants them an added chance to stun or knock down opponents, and increases your chances of parrying an attack."
icon = 'icons/obj/weapons_vr.dmi'
icon_state = "mat_staff"
base_icon = "mat_staff"
item_state = "mat_staff"
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_melee_vr.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_melee_vr.dmi',
)
force_wielded = 18 //a bit stronger than a stun baton
force_divisor = 0.45
unwielded_force_divisor = 0.1
var/base_parry_chance = 20
var/disarm_defense = 1.5 //bonus multiplier to parry rate when in disarm stance
var/stun_chance = 25 //chance to weaken an opponent when used in disarm stance only, remembering that disarm also halves damage dealt
var/stun_duration = 2
attack_verb = list("struck","smashed","thumped","thrashed","beaten","slammed","battered")
edge = FALSE
sharp = FALSE
/obj/item/weapon/material/twohanded/staff/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
var/parry_chance
if(src.wielded == 1)
if(user.a_intent == I_DISARM)
parry_chance = base_parry_chance * disarm_defense
else
parry_chance = base_parry_chance
if(unique_parry_check(user, attacker, damage_source) && prob(parry_chance))
user.visible_message("<span class='danger'>\The [user] parries [attack_text] with \the [src]!</span>")
playsound(src, 'sound/weapons/punchmiss.ogg', 50, 1)
return 1
return 0
/obj/item/weapon/material/twohanded/staff/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
. = ..()
if(src.wielded == 1 && user.a_intent == I_DISARM && prob(stun_chance))
target.Weaken(stun_duration)
user.visible_message("<span class='danger'>\The [user] trips [target] with \the [src]!</span>")