Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dyeing Finisher #576

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions code/datums/components/storage/storage_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@
screen_max_rows = 8
screen_max_columns = 4

/datum/component/storage/concrete/roguetown/bin/New(datum/P, ...)
. = ..()
cant_hold = typecacheof(list(/obj/item/rogueweapon))

/datum/component/storage/concrete/roguetown/sack
max_w_class = WEIGHT_CLASS_NORMAL
screen_max_rows = 5
Expand Down
17 changes: 17 additions & 0 deletions code/datums/slapcrafting/orderless/pies.dm
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,20 @@
finished_icon_state = "meatpie_raw"
finished_cooked_type = /obj/item/reagent_containers/food/snacks/rogue/pie/cooked/meat/meat
finished_cooked_smell = /datum/pollutant/food/meat_pie




/* ................. Cheap dye crafting ................... */
/datum/orderless_slapcraft/cheapdye
recipe_name = "Cheap dyes"
starting_item = /obj/item/ash
related_skill = /datum/skill/misc/sewing
skill_xp_gained = 2
requirements = list(
list(
/obj/item/reagent_containers/food/snacks/produce/jacksberry/poison,
/obj/item/reagent_containers/food/snacks/produce/jacksberry,
/obj/item/reagent_containers/food/snacks/produce/swampweed) = 2
)
output_item = /obj/item/cheap_dyes
11 changes: 0 additions & 11 deletions code/datums/slapcrafting/recipes/carpentry/structures.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,17 +69,6 @@
result_type = /obj/item/roguebin
craftdiff = 0

/datum/slapcraft_recipe/carpentry/structure/simple_dye_bin
name = "simple dye bin"
steps = list(
/datum/slapcraft_step/item/small_log,
/datum/slapcraft_step/use_item/carpentry/hammer,
/datum/slapcraft_step/item/jacksberry,
/datum/slapcraft_step/item/dirtclod
)
result_type = /obj/machinery/simple_dye_bin
craftdiff = 0

/datum/slapcraft_recipe/carpentry/structure/chair
name = "wooden chair"
steps = list(
Expand Down
11 changes: 11 additions & 0 deletions code/game/objects/effects/decals/cleanable/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -209,3 +209,14 @@
icon = 'icons/effects/blood.dmi'
icon_state = "xfloor1"
random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7")

/* ................. Dye spill ................... */
/obj/effect/decal/cleanable/dyes
name = "spilled dyes"
icon = 'icons/effects/tomatodecal.dmi'
icon_state = "flour"
random_icon_states = list("flour", "smashed_plant")
beauty = -100
/obj/effect/decal/cleanable/dyes/Initialize()
color = pick(CLOTHING_ROYAL_TEAL, CLOTHING_BOG_GREEN, CLOTHING_ROYAL_PURPLE )
..()
136 changes: 79 additions & 57 deletions code/game/objects/structures/dystation.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
/* ................. Luxury dye bin ................... */
/obj/machinery/dye_bin
name = "luxury dye bin"
desc = "Precious extracts, oils, powders, will transform your plain clothes to displays of wealth and extravagance!"
icon = 'icons/roguetown/misc/structure.dmi'
icon_state = "dye_bin_full"
icon_state = "dye_bin_luxury"
density = TRUE
anchored = FALSE
max_integrity = 80
Expand All @@ -12,53 +13,51 @@
/// Allow holder'd mobs
var/allow_mobs = TRUE
var/static/list/selectable_colors = list(
"White" ="#ffffff",
"Ash Grey" ="#999999",
"Bleach" ="#ffffff",
"Ash Grey" ="#676262",
"Chalk White" ="#c7c0b5",
"Cream" ="#b0ae80",
"Blood Red" ="#770d0d",
"Plum Purple" ="#4b2265",
"Dark Ink" ="#372b2b",
"Forest Green" ="#3f8b24",
"Sky Blue" ="#1b3c7a",
"Mustard Yellow" ="#979044",
"Linen" ="#a1a17a",
"Blood Red" ="#763434",
"Plum Purple" ="#4b3c54",
"Dark Ink" ="#392f2f",
"Forest Green" ="#45553f",
"Sky Blue" ="#40445f",
"Mustard Yellow" ="#646149",

"Royal Black" ="#2f352f",
"Royal Red" ="#8f3636",
"Royal Red" ="#813434",
"Royal Majenta" ="#822b52",
"Bark Brown"="#685542",
"Bog Green" ="#58793f",
"Mage Green" ="#759259",
"Royal Teal" ="#249589",
"Pear Yellow" ="#b5b004",
"Mage Yellow" ="#d2bc2b",
"Fyritius Orange" ="#b47011",
"Mage Orange" ="#ad5e29",
"Bog Green" ="#4f693b",
"Mage Green" ="#60794a",
"Royal Teal" ="#3b817a",
"Pear Yellow" ="#a19f52",
"Mage Yellow" ="#a79730",
"Fyritius Orange" ="#9b7540",
"Mage Orange" ="#935329",
"Royal Purple" ="#865c9c",
"Mage Blue" ="#4756d8",
"Mage Blue" ="#454fa6",

"Salmon" ="#a56176",
"Russet" ="#733f18",
"Yellow Ochre" ="#9b7a02",
"Red Ochre" = "#6f2d28",
"Maroon" ="#672c0d"
"Salmon" ="#70545e",
"Russet" ="#583f2c",
"Yellow Ochre" ="#685e3b",
"Red Ochre" = "#573936",
"Maroon" ="#533727"
)


/obj/machinery/dye_bin/Destroy()
inserted?.forceMove(get_turf(src))
inserted?.forceMove(drop_location())
return ..()

/obj/machinery/dye_bin/Destroy()
layer = 2.8
icon_state = "washbin_destroy"
density = FALSE
GLOB.machines.Remove(src)
if(!speed_process)
STOP_PROCESSING(SSmachines, src)
else
STOP_PROCESSING(SSfastprocess, src)
dropContents()
playsound(get_turf(src), 'sound/combat/hits/onwood/destroywalldoor.ogg', 40, TRUE, -1)
return ..()

/obj/machinery/dye_bin/attackby(obj/item/I, mob/living/user)
Expand All @@ -83,8 +82,11 @@
user.visible_message("<span class='notice'>[user] inserts [I] into [src].</span>")

inserted = I
icon_state = "dye_bin_full"
return
else
if(I.force < 8)
to_chat(user, "<span class='warning'>I don't think this item can be dyed this way.</span>")
return ..()

/obj/machinery/dye_bin/attack_hand(mob/living/user)
Expand Down Expand Up @@ -137,22 +139,25 @@
if(!inserted)
return
inserted.add_atom_colour(activecolor, FIXED_COLOUR_PRIORITY)
playsound(src, "bubbles", 50, 1)
playsound(src, pick('sound/foley/waterwash (1).ogg','sound/foley/waterwash (2).ogg'), 50, FALSE)
updateUsrDialog()

if(href_list["clear"])
if(!inserted)
return
inserted.remove_atom_colour(FIXED_COLOUR_PRIORITY)
playsound(src, "bubbles", 50, 1)
playsound(src, pick('sound/foley/waterwash (1).ogg','sound/foley/waterwash (2).ogg'), 50, FALSE)
updateUsrDialog()

if(href_list["eject"])
if(!inserted)
return
inserted.forceMove(get_turf(usr))
inserted = null
playsound(src, pick('sound/foley/touch1.ogg','sound/foley/touch2.ogg','sound/foley/touch3.ogg'), 170, TRUE)
updateUsrDialog()
icon_state = "dye_bin_luxury"
update_icon()

/obj/machinery/dye_bin/onkick(mob/user)
if(isliving(user))
Expand All @@ -161,6 +166,7 @@
playsound(src, 'sound/combat/hits/onwood/woodimpact (1).ogg', 100)
user.visible_message("<span class='warning'>[user] kicks over [src], ruining the contents!</span>", \
"<span class='warning'>I kick over [src], ruining the contents!</span>")
new /obj/effect/decal/cleanable/dyes(get_turf(src))
var/obj/item/roguebin/I = new /obj/item/roguebin (loc)
I.kover = TRUE
I.update_icon()
Expand All @@ -171,12 +177,12 @@
user.visible_message("<span class='warning'>[user] kicks [src]!</span>", \
"<span class='warning'>I kick [src]!</span>")


/* ................. Cheap dye bin ................... */
/obj/machinery/simple_dye_bin
name = "cheap dye bin"
desc = "A barrel with a selection of cheap things that will stain your clothes in muted colors. Ash, clods of dirt, jacksberries and swampweed provides all the colors any peasant could want!"
icon = 'icons/roguetown/misc/structure.dmi'
icon_state = "dye_bin_full"
icon_state = "dye_bin"
density = TRUE
anchored = FALSE
max_integrity = 80
Expand All @@ -186,26 +192,26 @@
/// Allow holder'd mobs
var/allow_mobs = TRUE
var/static/list/selectable_colors = list(
"White" ="#ffffff",
"Ash Grey" ="#999999",
"Bleach" ="#ffffff",
"Ash Grey" ="#676262",
"Chalk White" ="#c7c0b5",
"Cream" ="#b0ae80",
"Soot Black" ="#4b4b50",
"Linen" ="#a1a17a",
"Soot Black" ="#414145",
"Royal Black" ="#2f352f",
"Winestain Red" ="#6b3737",
"Winestain Red" ="#673c3c",
"Royal Red" ="#8f3636",
"Royal Majenta" ="#822b52",
"Peasant Brown" ="#705243",
"Chestnut" ="#5f3d21",
"Peasant Brown" ="#634f44",
"Chestnut" ="#604631",
"Bark Brown"="#685542",
"Mud Brown" ="#685542",
"Old Leather" ="#473a30",
"Spring Green" ="#435436",
"Bog Green" ="#58793f",
"Royal Teal" ="#249589",
"Berry Blue" ="#38455b",
"Pear Yellow" ="#b5b004",
"Fyritius Orange" ="#b47011",
"Mud Brown" ="#6f5f4d",
"Old Leather" ="#473f39",
"Spring Green" ="#41493a",
"Bog Green" ="#4f693b",
"Royal Teal" ="#3b817a",
"Berry Blue" ="#39404d",
"Pear Yellow" ="#a19f52",
"Fyritius Orange" ="#9b7540",
"Royal Purple" ="#865c9c"
)

Expand All @@ -214,6 +220,7 @@
return ..()

/obj/machinery/simple_dye_bin/Destroy()
layer = 2.8
icon_state = "washbin_destroy"
density = FALSE
GLOB.machines.Remove(src)
Expand All @@ -222,13 +229,12 @@
else
STOP_PROCESSING(SSfastprocess, src)
dropContents()
playsound(get_turf(src), 'sound/combat/hits/onwood/destroywalldoor.ogg', 40, TRUE, -1)
return ..()

/obj/machinery/simple_dye_bin/attackby(obj/item/I, mob/living/user)
if(istype(I, /obj/item/luxury_dyes))
playsound(src, "bubbles", 50, 1)
user.visible_message("<span class='notice'>[user] is adding the [I].</span>")
user.visible_message("<span class='info'>[user] adds luxury dye to [src].</span>")
if(do_after(user, 3 SECONDS))
new /obj/machinery/dye_bin(get_turf(src.loc))
qdel(I)
Expand Down Expand Up @@ -256,10 +262,11 @@
to_chat(user, "<span class='warning'>[I] is stuck to your hand!</span>")
return
user.visible_message("<span class='notice'>[user] inserts [I] into [src]'s receptable.</span>")

inserted = I
icon_state = "dye_bin_full"
else
to_chat(user, "<span class='warning'>I don't think this item can be dyed this way.</span>")
if(I.force < 8)
to_chat(user, "<span class='warning'>I don't think this item can be dyed this way.</span>")
return ..()

/obj/machinery/simple_dye_bin/AllowDrop()
Expand Down Expand Up @@ -312,24 +319,25 @@
if(!inserted)
return
inserted.add_atom_colour(activecolor, FIXED_COLOUR_PRIORITY)
playsound(src, "bubbles", 50, 1)
playsound(src, pick('sound/foley/waterwash (1).ogg','sound/foley/waterwash (2).ogg'), 50, FALSE)
updateUsrDialog()

if(href_list["clear"])
if(!inserted)
return
inserted.remove_atom_colour(FIXED_COLOUR_PRIORITY)
playsound(src, "bubbles", 50, 1)
playsound(src, pick('sound/foley/waterwash (1).ogg','sound/foley/waterwash (2).ogg'), 50, FALSE)
updateUsrDialog()

if(href_list["eject"])
if(!inserted)
return
inserted.forceMove(get_turf(usr))
inserted = null
playsound(src, pick('sound/foley/touch1.ogg','sound/foley/touch2.ogg','sound/foley/touch3.ogg'), 170, TRUE)
updateUsrDialog()


icon_state = "dye_bin"
update_icon()

/obj/machinery/simple_dye_bin/onkick(mob/user)
if(isliving(user))
Expand All @@ -338,6 +346,7 @@
playsound(src, 'sound/combat/hits/onwood/woodimpact (1).ogg', 100)
user.visible_message("<span class='warning'>[user] kicks over [src], ruining the contents!</span>", \
"<span class='warning'>I kick over [src], ruining the contents!</span>")
new /obj/effect/decal/cleanable/dyes(get_turf(src))
var/obj/item/roguebin/I = new /obj/item/roguebin (loc)
I.kover = TRUE
I.update_icon()
Expand All @@ -348,16 +357,29 @@
user.visible_message("<span class='warning'>[user] kicks [src]!</span>", \
"<span class='warning'>I kick [src]!</span>")

/* ................. Dyes ................... */
/obj/item/luxury_dyes
name = "luxury dyes"
desc = "Adding these to a existing cheap dye bin will let you use even the rarest, most expensive dyes."
desc = "Adding these to a existing cheap dye bin will let you use even the rarest, most expensive dyes. Rare imported dyes."
icon = 'icons/roguetown/items/misc.dmi'
icon_state = "luxury_dyes"
w_class = WEIGHT_CLASS_TINY
dropshrink = 0.8
sellprice = 30
/obj/item/luxury_dyes/throw_impact(atom/hit_atom, datum/thrownthing/thrownthing)
new /obj/effect/decal/cleanable/dyes(get_turf(src))
..()
qdel(src)

/obj/item/cheap_dyes
name = "cheap dyes"
desc = "Adding these to a wooden bin will let you use it to dye clothing."
desc = "Adding these to a wooden bin will let you use it to dye clothing. Made from ash with several jacksberries or swampweed mixed in."
icon = 'icons/roguetown/items/misc.dmi'
icon_state = "cheap_dyes"
w_class = WEIGHT_CLASS_TINY
dropshrink = 0.7
sellprice = 3
/obj/item/cheap_dyes/throw_impact(atom/hit_atom, datum/thrownthing/thrownthing)
new /obj/effect/decal/cleanable/dyes(get_turf(src))
..()
qdel(src)
5 changes: 5 additions & 0 deletions code/modules/cargo/packsrogue/apparel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -247,3 +247,8 @@
name = "Backpack"
cost = 20
contains = /obj/item/storage/backpack/rogue/backpack

/datum/supply_pack/rogue/apparel/luxurydyes
name = "Luxury Dyes"
cost = 70
contains = /obj/item/luxury_dyes
2 changes: 1 addition & 1 deletion code/modules/clothing/rogueclothes/pants.dm
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
body_parts_covered = GROIN|LEG_RIGHT

/obj/item/clothing/under/roguetown/tights/vagrant/Initialize()
color = pick("#6b5445", "#435436", "#704542", "#79763f")
color = pick(CLOTHING_MUD_BROWN, CLOTHING_OLD_LEATHER, CLOTHING_SPRING_GREEN, CLOTHING_BARK_BROWN, CLOTHING_CANVAS )
..()

/obj/item/clothing/under/roguetown/tights/sailor
Expand Down
Loading
Loading