mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-01 04:21:42 +00:00
About The Pull Request For an item to be two handed just add this handy component. All existing two handed items have been converted to use this component. Why It's Good For The Game It has components and signals, and now you can make items two handed so simply. /obj/item/shockpaddles/ComponentInitialize() . = ..() AddComponent(/datum/component/two_handed)
57 lines
2.3 KiB
Plaintext
57 lines
2.3 KiB
Plaintext
/obj/item/sharpener
|
|
name = "whetstone"
|
|
icon = 'icons/obj/kitchen.dmi'
|
|
icon_state = "sharpener"
|
|
desc = "A block that makes things sharp."
|
|
force = 5
|
|
var/used = 0
|
|
var/increment = 4
|
|
var/max = 30
|
|
var/prefix = "sharpened"
|
|
var/requires_sharpness = 1
|
|
|
|
|
|
/obj/item/sharpener/attackby(obj/item/I, mob/user, params)
|
|
if(used)
|
|
to_chat(user, "<span class='warning'>The sharpening block is too worn to use again!</span>")
|
|
return
|
|
if(I.force >= max || I.throwforce >= max)//no esword sharpening
|
|
to_chat(user, "<span class='warning'>[I] is much too powerful to sharpen further!</span>")
|
|
return
|
|
if(requires_sharpness && !I.get_sharpness())
|
|
to_chat(user, "<span class='warning'>You can only sharpen items that are already sharp, such as knives!</span>")
|
|
return
|
|
if(istype(I, /obj/item/melee/transforming/energy))
|
|
to_chat(user, "<span class='warning'>You don't think \the [I] will be the thing getting modified if you use it on \the [src]!</span>")
|
|
return
|
|
|
|
var/signal_out = SEND_SIGNAL(I, COMSIG_ITEM_SHARPEN_ACT, increment, max)
|
|
if(signal_out & COMPONENT_BLOCK_SHARPEN_MAXED)
|
|
to_chat(user, "<span class='warning'>[I] is much too powerful to sharpen further!</span>")
|
|
return
|
|
if(signal_out & COMPONENT_BLOCK_SHARPEN_BLOCKED)
|
|
to_chat(user, "<span class='warning'>[I] is not able to be sharpened right now!</span>")
|
|
return
|
|
if((signal_out & COMPONENT_BLOCK_SHARPEN_ALREADY) || (I.force > initial(I.force) && !signal_out))
|
|
to_chat(user, "<span class='warning'>[I] has already been refined before. It cannot be sharpened further!</span>")
|
|
return
|
|
if(!(signal_out & COMPONENT_BLOCK_SHARPEN_APPLIED))
|
|
I.force = clamp(I.force + increment, 0, max)
|
|
user.visible_message("<span class='notice'>[user] sharpens [I] with [src]!</span>", "<span class='notice'>You sharpen [I], making it much more deadly than before.</span>")
|
|
playsound(src, 'sound/items/unsheath.ogg', 25, TRUE)
|
|
I.sharpness = IS_SHARP_ACCURATE
|
|
I.throwforce = clamp(I.throwforce + increment, 0, max)
|
|
I.name = "[prefix] [I.name]"
|
|
name = "worn out [name]"
|
|
desc = "[desc] At least, it used to."
|
|
used = 1
|
|
update_icon()
|
|
|
|
/obj/item/sharpener/super
|
|
name = "super whetstone"
|
|
desc = "A block that will make your weapon sharper than Einstein on adderall."
|
|
increment = 200
|
|
max = 200
|
|
prefix = "super-sharpened"
|
|
requires_sharpness = 0
|