From e2b47484c87f4877a1db9133ed4f39c577915d51 Mon Sep 17 00:00:00 2001 From: lolman360 <22850904+lolman360@users.noreply.github.com> Date: Fri, 6 Dec 2019 10:27:33 +1100 Subject: [PATCH] Fixy-wixies the fucky-wucky I madey-wadey with toy swords. (#6526) * one * rtwo * image * Update material_weapons.dm * Update toys.dm * Revert "Update material_weapons.dm" This reverts commit 1a37bb015a5e503a4c5f0433bc279f15514319a7. * Revert "image" This reverts commit 6496dd404d0eb740e158fbc94322f6944f508886. * Revert "rtwo" This reverts commit 3b7aacd6c830e52986f2a34abf5b5ccbfbb135f8. * Revert "one" This reverts commit 324d188058c0a824c0259e2d6b98f69e563846bd. * Update toys.dm --- code/game/objects/items/toys.dm | 52 ++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 067338bee9a..7db0eb9228c 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -255,12 +255,14 @@ name = "toy sword" desc = "A cheap, plastic replica of an energy sword. Realistic sounds! Ages 8 and up." icon = 'icons/obj/weapons.dmi' - icon_state = "sword0" + icon_state = "esword" + var/lcolor + var/rainbow = FALSE item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi', slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi', ) - var/active = 0.0 + var/active = 0 w_class = ITEMSIZE_SMALL attack_verb = list("attacked", "struck", "hit") @@ -269,22 +271,52 @@ if (src.active) user << "You extend the plastic blade with a quick flick of your wrist." playsound(user, 'sound/weapons/saberon.ogg', 50, 1) - src.icon_state = "swordblue" src.w_class = ITEMSIZE_LARGE else user << "You push the plastic blade back down into the handle." playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) - src.icon_state = "sword0" src.w_class = ITEMSIZE_SMALL - - if(istype(user,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - H.update_inv_l_hand() - H.update_inv_r_hand() - + update_icon() src.add_fingerprint(user) return +/obj/item/toy/sword/update_icon() + . = ..() + var/mutable_appearance/blade_overlay = mutable_appearance(icon, "[icon_state]_blade") + blade_overlay.color = lcolor + cut_overlays() //So that it doesn't keep stacking overlays non-stop on top of each other + if(active) + add_overlay(blade_overlay) + if(istype(usr,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = usr + H.update_inv_l_hand() + H.update_inv_r_hand() + +/obj/item/toy/sword/AltClick(mob/living/user) + if(!in_range(src, user)) //Basic checks to prevent abuse + return + if(user.incapacitated() || !istype(user)) + to_chat(user, "You can't do that right now!") + return + + if(alert("Are you sure you want to recolor your blade?", "Confirm Recolor", "Yes", "No") == "Yes") + var/energy_color_input = input(usr,"","Choose Energy Color",lcolor) as color|null + if(energy_color_input) + lcolor = sanitize_hexcolor(energy_color_input) + update_icon() + +/obj/item/toy/sword/examine(mob/user) + ..() + to_chat(user, "Alt-click to recolor it.") + +/obj/item/toy/sword/attackby(obj/item/weapon/W, mob/user) + if(istype(W, /obj/item/device/multitool) && !active) + if(!rainbow) + rainbow = TRUE + else + rainbow = FALSE + to_chat(user, "You manipulate the color controller in [src].") + update_icon() /obj/item/toy/katana name = "replica katana" desc = "Woefully underpowered in D20."