diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 2fc7d0c8ee..ae3adf9c3b 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -53,7 +53,7 @@
/obj/item/weapon/soap/deluxe
icon_state = "soapdeluxe"
-
+
/obj/item/weapon/soap/deluxe/New()
desc = "A deluxe Waffle Co. brand bar of soap. Smells of [pick("lavender", "vanilla", "strawberry", "chocolate" ,"space")]."
@@ -316,6 +316,12 @@
icon_state = "wood_tableparts"
flags = null
+/obj/item/weapon/table_parts/gambling
+ name = "gamble table parts"
+ desc = "Keep away from security."
+ icon_state = "gamble_tableparts"
+ flags = null
+
/obj/item/weapon/wire
desc = "This is just a simple piece of regular insulated wire."
name = "wire"
diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm
index d79fa0d7a6..b93e01e7cb 100644
--- a/code/game/objects/items/weapons/table_rack_parts.dm
+++ b/code/game/objects/items/weapons/table_rack_parts.dm
@@ -20,7 +20,7 @@
if (istype(W, /obj/item/stack/rods))
var/obj/item/stack/rods/R = W
if (R.use(4))
- new /obj/item/weapon/table_parts/reinforced(user.loc)
+ new /obj/item/weapon/table_parts/reinforced(get_turf(loc))
user << "You reinforce the [name]."
del(src)
else
@@ -38,8 +38,8 @@
*/
/obj/item/weapon/table_parts/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/wrench))
- new /obj/item/stack/sheet/metal( user.loc )
- new /obj/item/stack/rods( user.loc )
+ new /obj/item/stack/sheet/metal( get_turf(loc) )
+ new /obj/item/stack/rods( get_turf(loc) )
del(src)
/obj/item/weapon/table_parts/reinforced/attack_self(mob/user as mob)
@@ -52,9 +52,17 @@
* Wooden Table Parts
*/
/obj/item/weapon/table_parts/wood/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ ..()
if (istype(W, /obj/item/weapon/wrench))
- new /obj/item/stack/sheet/wood( user.loc )
+ new /obj/item/stack/sheet/wood( get_turf(loc) )
+ //SN src = null
del(src)
+ if (istype(W, /obj/item/stack/tile/carpet))
+ var/obj/item/stack/tile/carpet/C = W
+ if (C.use(1))
+ new /obj/item/weapon/table_parts/gambling(get_turf(loc))
+ user << "You put a layer of carpet on the table."
+ del(src)
/obj/item/weapon/table_parts/wood/attack_self(mob/user as mob)
new /obj/structure/table/woodentable( user.loc )
@@ -62,13 +70,32 @@
del(src)
return
+/*
+ * Gambling Table Parts
+ */
+/obj/item/weapon/table_parts/gambling/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if (istype(W, /obj/item/weapon/wrench))
+ new /obj/item/stack/sheet/wood( get_turf(loc) )
+ new /obj/item/stack/tile/carpet( get_turf(loc) )
+ del(src)
+ if (istype(W, /obj/item/weapon/crowbar))
+ new /obj/item/stack/tile/carpet( get_turf(loc) )
+ new /obj/item/weapon/table_parts/wood( get_turf(loc) )
+ user << "You pry the carpet out of the table."
+ del(src)
+
+/obj/item/weapon/table_parts/gambling/attack_self(mob/user as mob)
+ new /obj/structure/table/gamblingtable( user.loc )
+ user.drop_item()
+ del(src)
+ return
/*
* Rack Parts
*/
/obj/item/weapon/rack_parts/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/weapon/wrench))
- new /obj/item/stack/sheet/metal( user.loc )
+ new /obj/item/stack/sheet/metal( get_turf(loc) )
del(src)
return
return
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 2bda55b93f..d3463b1e7e 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -226,6 +226,22 @@
icon_state = "wood_tabledir2"
if(6)
icon_state = "wood_tabledir3"
+ else if(istype(src,/obj/structure/table/gamblingtable))
+ switch(table_type)
+ if(0)
+ icon_state = "gamble_table"
+ if(1)
+ icon_state = "gamble_1tileendtable"
+ if(2)
+ icon_state = "gamble_1tilethick"
+ if(3)
+ icon_state = "gamble_tabledir"
+ if(4)
+ icon_state = "gamble_middle"
+ if(5)
+ icon_state = "gamble_tabledir2"
+ if(6)
+ icon_state = "gamble_tabledir3"
else
switch(table_type)
if(0)
@@ -520,6 +536,15 @@
icon_state = "wood_table"
parts = /obj/item/weapon/table_parts/wood
health = 50
+/*
+ * Gambling tables
+ */
+/obj/structure/table/gamblingtable
+ name = "gambling table"
+ desc = "A curved wooden table with a thin carpet of green fabric."
+ icon_state = "gamble_table"
+ parts = /obj/item/weapon/table_parts/gambling
+ health = 50
/*
* Reinforced tables
*/
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 2a427a1f31..9a51fcc9a7 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi
index 6a0a37bc58..a02adb87f0 100644
Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ