Skip to content

Commit 71ea82a

Browse files
TheMrBakitNPC1314
andauthored
Update loom.dm (#1194)
updating the Loom so it has a use Co-authored-by: NPC1314 <110836368+NPC1314@users.noreply.github.com>
1 parent bd2ffbc commit 71ea82a

File tree

1 file changed

+58
-1
lines changed
  • code/modules/roguetown/roguejobs/tailor

1 file changed

+58
-1
lines changed
Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,65 @@
11
/obj/machinery/loom
22
icon = 'icons/roguetown/misc/structure.dmi'
33
name = "loom"
4-
desc = ""
4+
desc = "A wooden frame with taut threads ready to weave fabric."
55
icon_state = "loom"
6+
var/storedfiber = 0
7+
var/maxfiber = 50
68
max_integrity = 200
79
density = TRUE
810

11+
/obj/machinery/loom/attackby(obj/item/I, mob/user, params)
12+
if(istype(I, /obj/item/natural/bundle/fibers))
13+
var/obj/item/natural/bundle/fibers/W = I
14+
if(src.storedfiber + W.amount > src.maxfiber)
15+
W.amount = (W.amount - (src.maxfiber - src.storedfiber))
16+
to_chat(user, "You string some fiber onto [src].")
17+
src.storedfiber = src.maxfiber
18+
if(W.amount == 1)
19+
new /obj/item/natural/fibers(get_turf(user))
20+
qdel(W)
21+
else
22+
src.storedfiber = src.storedfiber + W.amount
23+
to_chat(user, "You string some fiber onto [src].")
24+
qdel(W)
25+
if(istype(I, /obj/item/natural/fibers))
26+
var/obj/item/natural/fibers/W = I
27+
if(src.storedfiber < src.maxfiber)
28+
src.storedfiber++
29+
to_chat(user, "You string a fiber onto [src].")
30+
qdel(W)
31+
else
32+
to_chat(user, "You can't add any more fiber.")
33+
. = ..()
34+
35+
/obj/machinery/loom/attack_right(mob/user)
36+
var/mob/living/L = user
37+
if(isliving(user) && L.stat == CONSCIOUS && !user.get_active_held_item())
38+
if(src.storedfiber > 0)
39+
to_chat(user, "You remove a strand from [src].")
40+
src.storedfiber--
41+
var/obj/item/natural/fibers/F = new (src.loc)
42+
L.put_in_hands(F)
43+
else
44+
to_chat(user, "There's nothing to take from [src].")
45+
46+
/obj/machinery/loom/attack_hand(mob/user)
47+
var/mob/living/weaver = user
48+
var/weavetime = 2 SECONDS //time to weave a cloth, duh
49+
var/skilltimemod = 0.2 SECONDS //how much each level of skill lowers the time to weave
50+
var/skill = weaver.mind.get_skill_level(/datum/skill/misc/sewing)
51+
if(isliving(user) && weaver.stat == CONSCIOUS)
52+
if(src.storedfiber < 2)
53+
to_chat(user, "You don't have enough fiber to do this.")
54+
else
55+
to_chat(user, "You start weaving some cloth...")
56+
while(src.storedfiber > 1)
57+
if(!do_after(weaver, (weavetime - (skilltimemod*skill)),target = src) || src.storedfiber < 2)
58+
break
59+
src.storedfiber -= 2
60+
new /obj/item/natural/cloth(get_turf(src))
61+
weaver.mind.adjust_experience(/datum/skill/misc/sewing, (weaver.STAINT*0.5))//you get less exp from using the loom
62+
63+
/obj/machinery/loom/examine(mob/user)
64+
to_chat(user, span_notice("There are [storedfiber] strands of fiber strung on [src]."))
65+
. = ..()

0 commit comments

Comments
 (0)