mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-16 12:22:42 +00:00
Martial arts improvements and additions (#6094)
-adds framework for weapons based martial arts, implementing a very basic swordsmanship -makes the martial art books more modular -fixes some minor issues with some of the martial art code -adds amohdan swordsmen gear, to be used in a future event/sold by the merchant - fixes #6083
This commit is contained in:
@@ -12,16 +12,51 @@
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
can_embed = 0
|
||||
var/parry_chance = 50
|
||||
var/parry_chance = 40
|
||||
|
||||
/obj/item/weapon/material/sword/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
|
||||
var/parry_bonus = 1
|
||||
|
||||
if(default_parry_check(user, attacker, damage_source) && prob(parry_chance))
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.martial_art && H.martial_art.weapon_affinity && istype(src, H.martial_art.weapon_affinity))
|
||||
parry_bonus = H.martial_art.parry_multiplier
|
||||
|
||||
if(default_parry_check(user, attacker, damage_source) && prob(parry_chance * parry_bonus))
|
||||
user.visible_message("<span class='danger'>\The [user] parries [attack_text] with \the [src]!</span>")
|
||||
playsound(user.loc, 'sound/weapons/punchmiss.ogg', 50, 1)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/material/sword/perform_technique(var/mob/living/carbon/human/target, var/mob/living/carbon/human/user, var/target_zone)
|
||||
var/armor_reduction = target.run_armor_check(target_zone,"melee")
|
||||
var/obj/item/organ/external/affecting = target.get_organ(target_zone)
|
||||
if(!affecting)
|
||||
return
|
||||
|
||||
user.do_attack_animation(target)
|
||||
|
||||
if(target_zone == "head" || target_zone == "eyes" || target_zone == "mouth")
|
||||
if(prob(70 - armor_reduction))
|
||||
target.eye_blurry += 5
|
||||
target.confused += 10
|
||||
return TRUE
|
||||
|
||||
if(target_zone == "r_arm" || target_zone == "l_arm" || target_zone == "r_hand" || target_zone == "l_hand")
|
||||
if(prob(80 - armor_reduction))
|
||||
if(target_zone == "r_arm" || target_zone == "r_hand")
|
||||
target.drop_r_hand()
|
||||
else
|
||||
target.drop_l_hand()
|
||||
return TRUE
|
||||
|
||||
if(target_zone == "r_feet" || target_zone == "l_feet" || target_zone == "r_leg" || target_zone == "l_leg")
|
||||
if(prob(60 - armor_reduction))
|
||||
target.Weaken(5)
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/obj/item/weapon/material/sword/katana
|
||||
name = "katana"
|
||||
desc = "Woefully underpowered in D20. This one looks pretty sharp."
|
||||
@@ -104,3 +139,12 @@
|
||||
item_state = "gladius"
|
||||
contained_sprite = 1
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
/obj/item/weapon/material/sword/amohdan_sword
|
||||
name = "amohdan blade"
|
||||
desc = "A tajaran sword, commonly used by the swordsmen of the island of Amohda."
|
||||
icon = 'icons/obj/sword.dmi'
|
||||
icon_state = "amohdan_sword"
|
||||
item_state = "amohdan_sword"
|
||||
contained_sprite = 1
|
||||
slot_flags = SLOT_BELT
|
||||
Reference in New Issue
Block a user