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