diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index c0399b4b..6060000e 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -97,6 +97,90 @@
new /obj/item/stack/sheet/mineral/wood(get_turf(src), drop_amount)
+/obj/structure/barricade/shadoww
+ name = "Shadow barricade"
+ desc = "This space is blocked off by a shadow wood barricade."
+ icon = 'icons/obj/structures.dmi'
+ icon_state = "shadowwbarricade"
+ max_integrity = 50
+ material = WOOD
+ var/drop_amount = 3
+
+/obj/structure/barricade/shadoww/attackby(obj/item/I, mob/user)
+ if(istype(I,/obj/item/stack/sheet/mineral/shadoww))
+ var/obj/item/stack/sheet/mineral/shadoww/W = I
+ if(W.amount < 5)
+ to_chat(user, "You need at least five shadown planks to make a wall!")
+ return
+ else
+ to_chat(user, "You start adding [I] to [src]...")
+ if(do_after(user, 50, target=src))
+ W.use(5)
+ new /turf/closed/wall/mineral/shadoww/nonmetal(get_turf(src))
+ qdel(src)
+ return
+ return ..()
+
+/obj/structure/barricade/shadoww/make_debris()
+ new /obj/item/stack/sheet/mineral/shadoww(get_turf(src), drop_amount)
+
+
+/obj/structure/barricade/plaswood
+ name = "Plaswood barricade"
+ desc = "This space is blocked off by a plaswood barricade."
+ icon = 'icons/obj/structures.dmi'
+ icon_state = "plaswoodwbarricade"
+ max_integrity = 180
+ material = WOOD
+ var/drop_amount = 3
+
+/obj/structure/barricade/plaswood/attackby(obj/item/I, mob/user)
+ if(istype(I,/obj/item/stack/sheet/mineral/plaswood))
+ var/obj/item/stack/sheet/mineral/plaswood/W = I
+ if(W.amount < 5)
+ to_chat(user, "You need at least five plaswood planks to make a wall!")
+ return
+ else
+ to_chat(user, "You start adding [I] to [src]...")
+ if(do_after(user, 50, target=src))
+ W.use(5)
+ new /turf/closed/wall/mineral/plaswood/nonmetal(get_turf(src))
+ qdel(src)
+ return
+ return ..()
+
+/obj/structure/barricade/plaswood/make_debris()
+ new /obj/item/stack/sheet/mineral/plaswood(get_turf(src), drop_amount)
+
+
+/obj/structure/barricade/gmushroom
+ name = "Mushroom barricade"
+ desc = "This space is blocked off by a mushroom barricade."
+ icon = 'icons/obj/structures.dmi'
+ icon_state = "gmushroombarricade"
+ max_integrity = 50
+ material = WOOD
+ var/drop_amount = 3
+
+/obj/structure/barricade/gmushroom/attackby(obj/item/I, mob/user)
+ if(istype(I,/obj/item/stack/sheet/mineral/gmushroom))
+ var/obj/item/stack/sheet/mineral/gmushroom/W = I
+ if(W.amount < 5)
+ to_chat(user, "You need at least five mushroom planks to make a wall!")
+ return
+ else
+ to_chat(user, "You start adding [I] to [src]...")
+ if(do_after(user, 50, target=src))
+ W.use(5)
+ new /turf/closed/wall/mineral/gmushroom/nonmetal(get_turf(src))
+ qdel(src)
+ return
+ return ..()
+
+/obj/structure/barricade/gmushroom/make_debris()
+ new /obj/item/stack/sheet/mineral/gmushroom(get_turf(src), drop_amount)
+
+
/obj/structure/barricade/sandbags
name = "sandbags"
desc = "Bags of sand. Self explanatory."
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 3c94563d..9763eeda 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -780,6 +780,8 @@ GLOBAL_LIST_INIT(shadoww_recipes, list ( \
new/datum/stack_recipe("Shadow wood floor tile", /obj/item/stack/tile/shadoww, 1, 4, 20), \
new/datum/stack_recipe("Shadow wood table frame", /obj/structure/table_frame/shadoww, 2, time = 10), \
null, \
+ new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/shadoww, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
+ null, \
))
/obj/item/stack/sheet/mineral/shadoww
@@ -810,6 +812,8 @@ GLOBAL_LIST_INIT(gmushroom_recipes, list ( \
new/datum/stack_recipe("Mushroom floor tile", /obj/item/stack/tile/gmushroom, 1, 4, 20), \
new/datum/stack_recipe("Mushroom table frame", /obj/structure/table_frame/gmushroom, 2, time = 10), \
null, \
+ new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/gmushroom, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
+ null, \
))
/obj/item/stack/sheet/mineral/gmushroom
@@ -840,6 +844,8 @@ GLOBAL_LIST_INIT(plaswood_recipes, list ( \
new/datum/stack_recipe("Plaswood floor tile", /obj/item/stack/tile/plaswood, 1, 4, 20), \
new/datum/stack_recipe("Plaswood table frame", /obj/structure/table_frame/plaswood, 2, time = 10), \
null, \
+ new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/plaswood, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
+ null, \
))
/obj/item/stack/sheet/mineral/plaswood
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index 47fb6f87..b194548f 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -282,6 +282,33 @@
walltype = /turf/closed/wall/mineral/wood
canSmoothWith = list(/obj/structure/falsewall/wood, /turf/closed/wall/mineral/wood)
+/obj/structure/falsewall/gmushroom
+ name = "mushroom wall"
+ desc = "A wall with mushroom plating."
+ icon = 'icons/turf/walls/gmushroom_wall.dmi'
+ icon_state = "gmushroom"
+ mineral = /obj/item/stack/sheet/mineral/gmushroom
+ walltype = /turf/closed/wall/mineral/gmushroom
+ canSmoothWith = list(/obj/structure/falsewall/gmushroom, /turf/closed/wall/mineral/gmushroom)
+
+/obj/structure/falsewall/plaswood
+ name = "plaswood wall"
+ desc = "A wall with plaswood plating."
+ icon = 'icons/turf/walls/plaswood_wall.dmi'
+ icon_state = "plaswood"
+ mineral = /obj/item/stack/sheet/mineral/plaswood
+ walltype = /turf/closed/wall/mineral/plaswood
+ canSmoothWith = list(/obj/structure/falsewall/plaswood, /turf/closed/wall/mineral/plaswood)
+
+/obj/structure/falsewall/shadoww
+ name = "shadow wall"
+ desc = "A wall with shadow wood plating."
+ icon = 'icons/turf/walls/shadoww_wall.dmi'
+ icon_state = "shadoww"
+ mineral = /obj/item/stack/sheet/mineral/shadoww
+ walltype = /turf/closed/wall/mineral/shadoww
+ canSmoothWith = list(/obj/structure/falsewall/shadoww, /turf/closed/wall/mineral/shadoww)
+
/obj/structure/falsewall/iron
name = "rough metal wall"
desc = "A wall with rough metal plating."
diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm
index 25e98d2b..fb9bee9c 100644
--- a/code/game/objects/structures/table_frames.dm
+++ b/code/game/objects/structures/table_frames.dm
@@ -148,6 +148,8 @@
var/toConstruct // stores the table variant
if(istype(I, /obj/item/stack/sheet/mineral/plaswood))
toConstruct = /obj/structure/table/plaswood
+ else if(istype(I, /obj/item/stack/tile/carpet))
+ toConstruct = /obj/structure/table/plaswood/plaswoodpoker
if (toConstruct)
if(material.get_amount() < 1)
@@ -177,6 +179,8 @@
var/toConstruct // stores the table variant
if(istype(I, /obj/item/stack/sheet/mineral/gmushroom))
toConstruct = /obj/structure/table/gmushroom
+ else if(istype(I, /obj/item/stack/tile/carpet))
+ toConstruct = /obj/structure/table/gmushroom/gmushroompoker
if (toConstruct)
if(material.get_amount() < 1)
@@ -206,6 +210,8 @@
var/toConstruct // stores the table variant
if(istype(I, /obj/item/stack/sheet/mineral/shadoww))
toConstruct = /obj/structure/table/shadoww
+ else if(istype(I, /obj/item/stack/tile/carpet))
+ toConstruct = /obj/structure/table/shadoww/shadowwpoker
if (toConstruct)
if(material.get_amount() < 1)
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 03585d92..d58bda5f 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -326,13 +326,22 @@
name = "Shadow wood table"
desc = "Do not apply fire to this. Rumour says it burns easily."
icon = 'icons/obj/smooth_structures/shadoww_table.dmi'
- icon_state = "wood_table"
+ icon_state = "shadoww_table"
frame = /obj/structure/table_frame/shadoww
framestack = /obj/item/stack/sheet/mineral/shadoww
buildstack = /obj/item/stack/sheet/mineral/shadoww
resistance_flags = FLAMMABLE
max_integrity = 70
- canSmoothWith = null
+ canSmoothWith = list(/obj/structure/table/shadoww,
+ /obj/structure/table/shadoww/shadowwpoker)
+
+/obj/structure/table/shadoww/shadowwpoker
+ name = "gambling table"
+ desc = "A seedy table for seedy dealings in seedy places."
+ icon = 'icons/obj/smooth_structures/shadowwpoker_table.dmi'
+ icon_state = "shadowwpoker_table"
+ frame = /obj/structure/table_frame/shadoww
+ buildstack = /obj/item/stack/tile/carpet
/*
* Plaswood tables
@@ -342,15 +351,24 @@
name = "plaswood table"
desc = "An strong and grey wooden table."
icon = 'icons/obj/smooth_structures/plaswood_table.dmi'
- icon_state = "wood_table"
- frame = /obj/structure/table_frame/wood
+ icon_state = "plaswood_table"
+ frame = /obj/structure/table_frame/plaswood
framestack = /obj/item/stack/sheet/mineral/plaswood
buildstack = /obj/item/stack/sheet/mineral/plaswood
resistance_flags = FLAMMABLE
max_integrity = 200
integrity_failure = 50
armor = list("melee" = 10, "bullet" = 30, "laser" = 30, "energy" = 100, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70)
- canSmoothWith = null
+ canSmoothWith = list(/obj/structure/table/plaswood,
+ /obj/structure/table/plaswood/plaswoodpoker)
+
+/obj/structure/table/plaswood/plaswoodpoker
+ name = "gambling table"
+ desc = "A seedy table for seedy dealings in seedy places."
+ icon = 'icons/obj/smooth_structures/plaswoodpoker_table.dmi'
+ icon_state = "plaswoodpoker_table"
+ frame = /obj/structure/table_frame/plaswood
+ buildstack = /obj/item/stack/tile/carpet
/*
* Mushroom tables
@@ -366,7 +384,16 @@
buildstack = /obj/item/stack/sheet/mineral/gmushroom
resistance_flags = FIRE_PROOF
max_integrity = 70
- canSmoothWith = null
+ canSmoothWith = list(/obj/structure/table/gmushroom,
+ /obj/structure/table/gmushroom/gmushroompoker)
+
+/obj/structure/table/gmushroom/gmushroompoker
+ name = "gambling table"
+ desc = "A seedy table for seedy dealings in seedy places."
+ icon = 'icons/obj/smooth_structures/gmushroompoker_table.dmi'
+ icon_state = "gmushroompoker_table"
+ frame = /obj/structure/table_frame/gmushroom
+ buildstack = /obj/item/stack/tile/carpet
/*
* Wooden tables
diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm
index 4913fdb9..b37b5ec6 100644
--- a/code/game/turfs/simulated/wall/mineral_walls.dm
+++ b/code/game/turfs/simulated/wall/mineral_walls.dm
@@ -149,6 +149,84 @@
hardness = 50
canSmoothWith = list(/turf/closed/wall/mineral/wood, /obj/structure/falsewall/wood, /turf/closed/wall/mineral/wood/nonmetal)
+/turf/closed/wall/mineral/gmushroom
+ name = "mushroom wall"
+ desc = "A wall with mushroom plating."
+ icon = 'icons/turf/walls/gmushroom_wall.dmi'
+ icon_state = "gmushroom"
+ sheet_type = /obj/item/stack/sheet/mineral/gmushroom
+ hardness = 70
+ explosion_block = 0
+ canSmoothWith = list(/turf/closed/wall/mineral/gmushroom, /obj/structure/falsewall/gmushroom, /turf/closed/wall/mineral/gmushroom/nonmetal)
+
+/turf/closed/wall/mineral/gmushroom/attackby(obj/item/W, mob/user)
+ if(W.sharpness && W.force)
+ var/duration = (48/W.force) * 2 //In seconds, for now.
+ if(istype(W, /obj/item/hatchet) || istype(W, /obj/item/twohanded/fireaxe))
+ duration /= 4 //Much better with hatchets and axes.
+ if(do_after(user, duration*10, target=src)) //Into deciseconds.
+ dismantle_wall(FALSE,FALSE)
+ return
+ return ..()
+
+/turf/closed/wall/mineral/gmushroom/nonmetal
+ desc = "A solidly mushroom wall. It's a bit weaker than a wall made with metal."
+ girder_type = /obj/structure/barricade/gmushroom
+ hardness = 50
+ canSmoothWith = list(/turf/closed/wall/mineral/gmushroom, /obj/structure/falsewall/gmushroom, /turf/closed/wall/mineral/gmushroom/nonmetal)
+
+/turf/closed/wall/mineral/plaswood
+ name = "plaswood wall"
+ desc = "A wall with plaswood plating."
+ icon = 'icons/turf/walls/plaswood_wall.dmi'
+ icon_state = "plaswood"
+ sheet_type = /obj/item/stack/sheet/mineral/plaswood
+ hardness = 90
+ explosion_block = 35
+ canSmoothWith = list(/turf/closed/wall/mineral/plaswood, /obj/structure/falsewall/plaswood, /turf/closed/wall/mineral/plaswood/nonmetal)
+
+/turf/closed/wall/mineral/plaswood/attackby(obj/item/W, mob/user)
+ if(W.sharpness && W.force)
+ var/duration = (48/W.force) * 2 //In seconds, for now.
+ if(istype(W, /obj/item/hatchet) || istype(W, /obj/item/twohanded/fireaxe))
+ duration /= 4 //Much better with hatchets and axes.
+ if(do_after(user, duration*10, target=src)) //Into deciseconds.
+ dismantle_wall(FALSE,FALSE)
+ return
+ return ..()
+
+/turf/closed/wall/mineral/plaswood/nonmetal
+ desc = "A solidly plaswood wall. It's a bit weaker than a wall made with metal."
+ girder_type = /obj/structure/barricade/plaswood
+ hardness = 70
+ canSmoothWith = list(/turf/closed/wall/mineral/plaswood, /obj/structure/falsewall/plaswood, /turf/closed/wall/mineral/plaswood/nonmetal)
+
+/turf/closed/wall/mineral/shadoww
+ name = "shadow wall"
+ desc = "A wall with shadow wood plating."
+ icon = 'icons/turf/walls/shadoww_wall.dmi'
+ icon_state = "shadoww"
+ sheet_type = /obj/item/stack/sheet/mineral/shadoww
+ hardness = 70
+ explosion_block = 0
+ canSmoothWith = list(/turf/closed/wall/mineral/shadoww, /obj/structure/falsewall/shadoww, /turf/closed/wall/mineral/shadoww/nonmetal)
+
+/turf/closed/wall/mineral/shadoww/attackby(obj/item/W, mob/user)
+ if(W.sharpness && W.force)
+ var/duration = (48/W.force) * 2 //In seconds, for now.
+ if(istype(W, /obj/item/hatchet) || istype(W, /obj/item/twohanded/fireaxe))
+ duration /= 4 //Much better with hatchets and axes.
+ if(do_after(user, duration*10, target=src)) //Into deciseconds.
+ dismantle_wall(FALSE,FALSE)
+ return
+ return ..()
+
+/turf/closed/wall/mineral/shadoww/nonmetal
+ desc = "A solidly shadow wall. It's a bit weaker than a wall made with metal."
+ girder_type = /obj/structure/barricade/shadoww
+ hardness = 50
+ canSmoothWith = list(/turf/closed/wall/mineral/shadoww, /obj/structure/falsewall/shadoww, /turf/closed/wall/mineral/shadoww/nonmetal)
+
/turf/closed/wall/mineral/iron
name = "rough metal wall"
desc = "A wall with rough metal plating."
diff --git a/code/modules/cargo/bounties/mining.dm b/code/modules/cargo/bounties/mining.dm
index 8328075a..ec2303e8 100644
--- a/code/modules/cargo/bounties/mining.dm
+++ b/code/modules/cargo/bounties/mining.dm
@@ -68,5 +68,19 @@ datum/bounty/item/mining/plaswood
name = "Plaswood Planks"
description = "Central Command's carpentry department needs more exotic wood, send us some plaswood planks!"
reward = 5500
- required_count = 50
+ required_count = 100
wanted_types = list(/obj/item/stack/sheet/mineral/plaswood)
+
+datum/bounty/item/mining/gmushroom
+ name = "Mushroom Planks"
+ description = "Central Command's carpentry department needs more exotic 'wood', send us some mushroom planks!"
+ reward = 1100
+ required_count = 100
+ wanted_types = list(/obj/item/stack/sheet/mineral/gmushroom)
+
+datum/bounty/item/mining/shadoww
+ name = "Shadow Planks"
+ description = "Central Command's carpentry department needs more exotic wood, send us some shadow planks!"
+ reward = 900
+ required_count = 100
+ wanted_types = list(/obj/item/stack/sheet/mineral/shadoww)
\ No newline at end of file
diff --git a/icons/obj/smooth_structures/gmushroompoker_table.dmi b/icons/obj/smooth_structures/gmushroompoker_table.dmi
new file mode 100644
index 00000000..b5e396e3
Binary files /dev/null and b/icons/obj/smooth_structures/gmushroompoker_table.dmi differ
diff --git a/icons/obj/smooth_structures/plaswoodpoker_table.dmi b/icons/obj/smooth_structures/plaswoodpoker_table.dmi
new file mode 100644
index 00000000..85bdbcbc
Binary files /dev/null and b/icons/obj/smooth_structures/plaswoodpoker_table.dmi differ
diff --git a/icons/obj/smooth_structures/shadowwpoker_table.dmi b/icons/obj/smooth_structures/shadowwpoker_table.dmi
new file mode 100644
index 00000000..1903c23c
Binary files /dev/null and b/icons/obj/smooth_structures/shadowwpoker_table.dmi differ
diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi
index 2a0f066e..00e5fa56 100644
Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ
diff --git a/icons/turf/walls/gmushroom_wall.dmi b/icons/turf/walls/gmushroom_wall.dmi
new file mode 100644
index 00000000..2776bdf0
Binary files /dev/null and b/icons/turf/walls/gmushroom_wall.dmi differ
diff --git a/icons/turf/walls/plaswood_wall.dmi b/icons/turf/walls/plaswood_wall.dmi
new file mode 100644
index 00000000..92c19a05
Binary files /dev/null and b/icons/turf/walls/plaswood_wall.dmi differ
diff --git a/icons/turf/walls/shadoww_wall.dmi b/icons/turf/walls/shadoww_wall.dmi
new file mode 100644
index 00000000..fac0e1cc
Binary files /dev/null and b/icons/turf/walls/shadoww_wall.dmi differ