Sharpening kits. (#6501)

* one

* rtwo

* image

* Update material_weapons.dm
This commit is contained in:
lolman360
2019-11-05 13:43:49 +11:00
committed by VirgoBot
parent 222a144b13
commit 31995aba35
3 changed files with 84 additions and 4 deletions

View File

@@ -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 ..()
*/
*/

View File

@@ -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]!")