diff --git a/code/game/objects/items/melee/baton.dm b/code/game/objects/items/melee/baton.dm index 946a9e47eae..d000ac58e89 100644 --- a/code/game/objects/items/melee/baton.dm +++ b/code/game/objects/items/melee/baton.dm @@ -984,3 +984,56 @@ else stuff_in_hand.forceMove(user.drop_location()) stuff_in_hand.loc.visible_message(span_warning("[stuff_in_hand] suddenly appears!")) + + +/obj/item/melee/baton/nunchaku + name = "Syndie Fitness Nunchuks" + desc = "The most common fitness equipment in the entire syndicate, titanium rods weigh strictly 13 pounds" + desc_controls = "Left click to stun, right click to harm. Throw mode counterattack any melee/throwable attacks." + icon_state = "nunchaku" + lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' + inhand_icon_state = "nunchaku" + worn_icon_state = "nunchaku" + attack_verb_continuous = list("beats", "whips", "smashes", "punishes") + attack_verb_simple = list("beat", "whip", "smash", "punish") + hitsound = 'sound/items/weapons/chainhit.ogg' + block_sound = 'sound/items/weapons/block_shield.ogg' + slot_flags = ITEM_SLOT_BELT + cooldown = CLICK_CD_MELEE + knockdown_time = 0.25 SECONDS + demolition_mod = 1.5 + stamina_damage = 30 // 4 hit stamcrit + stun_armour_penetration = 30 // bronze-silver telescopic + force = 16 // 7 hit crit + bare_wound_bonus = 5 + +/obj/item/melee/baton/nunchaku/proc/randomize_state() + icon_state = pick(list("nunchaku", "nunchaku_x", "nunchaku_y")) + update_appearance() + +/obj/item/melee/baton/nunchaku/after_throw(datum/callback/callback) + . = ..() + randomize_state() + +/obj/item/melee/baton/nunchaku/afterattack(atom/target, mob/user, click_parameters) + . = ..() + randomize_state() + +/obj/item/melee/baton/nunchaku/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text, final_block_chance, damage, attack_type, damage_type) + if(attack_type == PROJECTILE_ATTACK || !owner.throw_mode) + return ..() + + randomize_state() + + // blocks any melee/throwable attacks + owner.adjustStaminaLoss(5) + final_block_chance = 100 + + // counterattack at melee + if(attack_type in list(MELEE_ATTACK, UNARMED_ATTACK, LEAP_ATTACK)) + var/mob/living/attacker = GET_ASSAILANT(hitby) + playsound(src, pick(list('sound/items/weapons/cqchit2.ogg', 'sound/items/weapons/cqchit1.ogg')), 70, FALSE) + melee_attack_chain(owner, attacker, LEFT_CLICK) + + return ..() diff --git a/code/modules/uplink/uplink_items/spy_unique.dm b/code/modules/uplink/uplink_items/spy_unique.dm index 7d2f5fb34cb..f0e25d7bb68 100644 --- a/code/modules/uplink/uplink_items/spy_unique.dm +++ b/code/modules/uplink/uplink_items/spy_unique.dm @@ -148,3 +148,10 @@ name = /datum/uplink_item/implants/nuclear/thermals::name desc = /datum/uplink_item/implants/nuclear/thermals::desc item = /obj/item/autosurgeon/syndicate/thermal_eyes/single_use + +/datum/uplink_item/spy_unique/nunchaku + name = "Syndie Fitness Nunchuks" + desc = "Heavyweight titanium nunchucks, quickly knocking opponents to the ground, then just as easily smashing the opponent afterward." + item = /obj/item/melee/baton/nunchaku + cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index 7bb42a56a14..787d2867042 100644 Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ diff --git a/icons/mob/inhands/weapons/melee_lefthand.dmi b/icons/mob/inhands/weapons/melee_lefthand.dmi index dc9cb6e9866..8ceaa871caf 100644 Binary files a/icons/mob/inhands/weapons/melee_lefthand.dmi and b/icons/mob/inhands/weapons/melee_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/melee_righthand.dmi b/icons/mob/inhands/weapons/melee_righthand.dmi index c694a765520..615aad43152 100644 Binary files a/icons/mob/inhands/weapons/melee_righthand.dmi and b/icons/mob/inhands/weapons/melee_righthand.dmi differ diff --git a/icons/obj/weapons/baton.dmi b/icons/obj/weapons/baton.dmi index 6b7cbd8544a..101baab3c79 100644 Binary files a/icons/obj/weapons/baton.dmi and b/icons/obj/weapons/baton.dmi differ