mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-01-06 07:23:16 +00:00
Sharpening kits. (#6501)
* one * rtwo * image * Update material_weapons.dm
This commit is contained in:
@@ -86,10 +86,13 @@
|
||||
health--
|
||||
check_health()
|
||||
|
||||
/obj/item/weapon/material/attackby(obj/item/weapon/W, mob/user as mob)
|
||||
/obj/item/weapon/material/attackby(obj/item/weapon/W, mob/user)
|
||||
if(istype(W, /obj/item/weapon/whetstone))
|
||||
var/obj/item/weapon/whetstone/whet = W
|
||||
repair(whet.repair_amount, whet.repair_time, user)
|
||||
if(istype(W, /obj/item/weapon/material/sharpeningkit))
|
||||
var/obj/item/weapon/material/sharpeningkit/SK = W
|
||||
repair(SK.repair_amount, SK.repair_time, user)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/material/proc/check_health(var/consumed)
|
||||
@@ -134,7 +137,19 @@
|
||||
to_chat(user, "<span class='warning'>You can't repair \the [src].</span>")
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/material/proc/sharpen(var/material, var/sharpen_time, var/kit, mob/living/M)
|
||||
if(!fragile)
|
||||
if(health < initial(health))
|
||||
to_chat(M, "You should repair [src] first. Try using [kit] on it.")
|
||||
return FALSE
|
||||
M.visible_message("[M] begins to replace parts of [src] with [kit].", "You begin to replace parts of [src] with [kit].")
|
||||
if(do_after(usr, sharpen_time))
|
||||
M.visible_message("[M] has finished replacing parts of [src].", "You finish replacing parts of [src].")
|
||||
src.set_material(material)
|
||||
return TRUE
|
||||
else
|
||||
to_chat(M, "<span class = 'warning'>You can't sharpen and re-edge [src].</span>")
|
||||
return FALSE
|
||||
|
||||
/*
|
||||
Commenting this out pending rebalancing of radiation based on small objects.
|
||||
@@ -162,4 +177,4 @@ Commenting this out pending rebalancing of radiation based on small objects.
|
||||
TemperatureAct(150)
|
||||
else
|
||||
return ..()
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -8,4 +8,69 @@
|
||||
force = 3
|
||||
w_class = ITEMSIZE_SMALL
|
||||
var/repair_amount = 5
|
||||
var/repair_time = 40
|
||||
var/repair_time = 40
|
||||
|
||||
/obj/item/weapon/whetstone/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/stack/material))
|
||||
var/obj/item/stack/material/M = I
|
||||
if(M.amount >= 5)
|
||||
to_chat(user, "You begin to refine the [src] with [M]...")
|
||||
if(do_after(user, 70))
|
||||
M.use(5)
|
||||
var/obj/item/SK
|
||||
SK = new /obj/item/weapon/material/sharpeningkit(get_turf(user), M.material.name)
|
||||
to_chat(user, "You sharpen and refine the [src] into \a [SK].")
|
||||
qdel(src)
|
||||
if(SK)
|
||||
user.put_in_hands(SK)
|
||||
else
|
||||
to_chat(user, "You need 5 [src] to refine it into a sharpening kit.")
|
||||
|
||||
/obj/item/weapon/material/sharpeningkit
|
||||
name = "sharpening kit"
|
||||
desc = "A refined, fine grit whetstone, useful for sharpening dull edges, polishing out dents, and, with extra material, replacing an edge."
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
icon_state = "sharpener"
|
||||
hitsound = 'sound/weapons/genhit3.ogg'
|
||||
force_divisor = 0.7
|
||||
thrown_force_divisor = 1
|
||||
var/repair_amount = 5
|
||||
var/repair_time = 40
|
||||
var/sharpen_time = 100
|
||||
var/uses = 0
|
||||
|
||||
/obj/item/weapon/material/sharpeningkit/examine(mob/user, distance)
|
||||
. = ..()
|
||||
to_chat(user, "There [uses == 1 ? "is" : "are"] [uses] [material] [uses == 1 ? src.material.sheet_singular_name : src.material.sheet_plural_name] left for use.")
|
||||
/obj/item/weapon/material/sharpeningkit/Initialize()
|
||||
. = ..()
|
||||
setrepair()
|
||||
|
||||
/obj/item/weapon/material/sharpeningkit/proc/setrepair()
|
||||
repair_amount = material.hardness * 0.1
|
||||
repair_time = material.weight * 0.5
|
||||
sharpen_time = material.weight * 3
|
||||
|
||||
/obj/item/weapon/material/sharpeningkit/attackby(obj/item/weapon/W, mob/user)
|
||||
if(istype(W, /obj/item/stack/material))
|
||||
var/obj/item/stack/material/S = W
|
||||
if(S.material == material)
|
||||
S.use(1)
|
||||
uses += 1
|
||||
to_chat(user, "You add a [S.material.name] [S.material.sheet_singular_name] to [src].")
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/material))
|
||||
if(istype(W, /obj/item/weapon/material/sharpeningkit))
|
||||
to_chat(user, "Really? Sharpening a [W] with [src]? You goofball.")
|
||||
return
|
||||
var/obj/item/weapon/material/M = W
|
||||
if(uses >= M.w_class*2)
|
||||
if(M.sharpen(src.material.name, sharpen_time, src, user))
|
||||
uses -= M.w_class*2
|
||||
return
|
||||
else
|
||||
to_chat(user, "Not enough material to sharpen [M]. You need [M.w_class*2] [M.material.sheet_plural_name].")
|
||||
return
|
||||
else
|
||||
to_chat(user, "You can't sharpen [W] with [src]!")
|
||||
|
||||
Reference in New Issue
Block a user