diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm
index 34d2743ce9..7109f932aa 100644
--- a/code/game/machinery/hydroponics.dm
+++ b/code/game/machinery/hydroponics.dm
@@ -30,6 +30,18 @@
if(src.planted && src.myseed.yield < 2)
src.myseed.yield += 1
+/obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ ..()
+ if (istype(O, /obj/item/weapon/plantbag))
+ src.attack_hand(user)
+ var/obj/item/weapon/plantbag/S = O
+ for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in locate(user.x,user.y,user.z))
+ if (S.contents.len < S.capacity)
+ S.contents += G;
+ else
+ user << "\blue The plant bag is full."
+ return
+
obj/machinery/hydroponics/process()
if(myseed && !(myseed in contents))
diff --git a/code/game/objects/items/weapons/plant_bag.dm b/code/game/machinery/kitchen/smartfridge.dm
similarity index 69%
rename from code/game/objects/items/weapons/plant_bag.dm
rename to code/game/machinery/kitchen/smartfridge.dm
index edda903329..62cf17cd7a 100644
--- a/code/game/objects/items/weapons/plant_bag.dm
+++ b/code/game/machinery/kitchen/smartfridge.dm
@@ -1,48 +1,3 @@
-
-/**********************Plant Bag**************************/
-
-/obj/item/weapon/plantbag
- icon = 'icons/obj/hydroponics.dmi'
- icon_state = "plantbag"
- name = "Plant Bag"
- var/mode = 1; //0 = pick one at a time, 1 = pick all on tile
- var/capacity = 50; //the number of plant pieces it can carry.
- flags = FPRINT | TABLEPASS
- slot_flags = SLOT_BELT
- w_class = 1
-
-/obj/item/weapon/plantbag/attack_self(mob/user as mob)
- for (var/obj/item/weapon/reagent_containers/food/snacks/grown/O in contents)
- contents -= O
- O.loc = user.loc
- user << "\blue You empty the plant bag."
- return
-
-/obj/item/weapon/plantbag/verb/toggle_mode()
- set name = "Switch Bagging Method"
- set category = "Object"
-
- mode = !mode
- switch (mode)
- if(1)
- usr << "The bag now picks up all plants in a tile at once."
- if(0)
- usr << "The bag now picks up one plant at a time."
-
-
-/obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
- ..()
- if (istype(O, /obj/item/weapon/plantbag))
- src.attack_hand(user)
- var/obj/item/weapon/plantbag/S = O
- for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in locate(user.x,user.y,user.z))
- if (S.contents.len < S.capacity)
- S.contents += G;
- else
- user << "\blue The plant bag is full."
- return
-
-
/* SmartFridge. Much todo
*/
/obj/machinery/smartfridge
diff --git a/code/game/objects/items/weapons/medical.dm b/code/game/objects/items/stacks/medical.dm
similarity index 94%
rename from code/game/objects/items/weapons/medical.dm
rename to code/game/objects/items/stacks/medical.dm
index cbf794b33a..6922fd3a46 100644
--- a/code/game/objects/items/weapons/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -1,10 +1,3 @@
-/*
-CONTAINS:
-MEDICAL
-
-
-*/
-
/obj/item/stack/medical/attack(mob/living/carbon/M as mob, mob/user as mob)
if (M.stat == 2)
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index c3198d7144..1094be44c4 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -1,17 +1,16 @@
+/* Cards
+ * Contains:
+ * DATA CARD
+ * ID CARD
+ * FINGERPRINT CARD HOLDER
+ * FINGERPRINT CARD
+ */
+
+
+
/*
-CONTAINS:
-DATA CARD
-ID CARD
-FINGERPRINT CARD HOLDER
-FINGERPRINT CARD
-
-*/
-
-
-
-
-// DATA CARDS
-
+ * DATA CARDS - Used for the teleporter
+ */
/obj/item/weapon/card/data/verb/label(t as text)
set name = "Label Disk"
set category = "Object"
@@ -25,10 +24,9 @@ FINGERPRINT CARD
return
-
-
-// ID CARDS
-
+/*
+ * ID CARDS
+ */
/obj/item/weapon/card/id/attack_self(mob/user as mob)
for(var/mob/O in viewers(user, null))
O.show_message(text("[] shows you: \icon[] []: assignment: []", user, src, src.name, src.assignment), 1)
@@ -73,8 +71,9 @@ FINGERPRINT CARD
..()
-// FINGERPRINT HOLDER
-
+/*
+ * FINGERPRINT HOLDER
+ */
/obj/item/weapon/fcardholder/attack_self(mob/user as mob)
var/dat = "Clipboard
"
for(var/obj/item/weapon/f_card/P in src)
@@ -168,10 +167,9 @@ FINGERPRINT CARD
-
-// FINGERPRINT CARD
-
-
+/*
+ * FINGERPRINT CARD
+ */
/obj/item/weapon/f_card/examine()
set src in view(2)
@@ -191,25 +189,6 @@ FINGERPRINT CARD
return dat
return
-/*
-/obj/item/weapon/f_card/attack_hand(mob/user as mob)
-
- if ((user.r_hand == src || user.l_hand == src))
- src.add_fingerprint(user)
- var/obj/item/weapon/f_card/F = new /obj/item/weapon/f_card( user )
- F.amount = 1
- src.amount--
- user.put_in_hands(F)
- F.add_fingerprint(user)
- if (src.amount < 1)
- //SN src = null
- del(src)
- return
- else
- ..()
- return
-*/
-
/obj/item/weapon/f_card/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/weapon/f_card))
diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm
index 26310e1f72..1f3b451e62 100644
--- a/code/game/objects/items/weapons/clown_items.dm
+++ b/code/game/objects/items/weapons/clown_items.dm
@@ -1,12 +1,13 @@
+/* Clown Items
+ * Contains:
+ * Banana Peels
+ * Soap
+ * Bike Horns
+ */
+
/*
-CONTAINS:
-NO MORE BANANA, NOW YOU CAN EAT IT. GO SEE OTHER FOOD STUFFS.
-BANANA PEEL
-SOAP
-BIKE HORN
-
-*/
-
+ * Banana Peals
+ */
/obj/item/weapon/bananapeel/HasEntered(AM as mob|obj)
if (istype(AM, /mob/living/carbon))
var/mob/M = AM
@@ -19,6 +20,9 @@ BIKE HORN
M.Stun(4)
M.Weaken(2)
+/*
+ * Soap
+ */
/obj/item/weapon/soap/HasEntered(AM as mob|obj) //EXACTLY the same as bananapeel for now, so it makes sense to put it in the same dm -- Urist
if (istype(AM, /mob/living/carbon))
var/mob/M = AM
@@ -50,6 +54,9 @@ BIKE HORN
return
..()
+/*
+ * Bike Horns
+ */
/obj/item/weapon/bikehorn/attack_self(mob/user as mob)
if (spam_flag == 0)
spam_flag = 1
diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm
index cee6adb44c..03d3401cf1 100644
--- a/code/game/objects/items/weapons/flamethrower.dm
+++ b/code/game/objects/items/weapons/flamethrower.dm
@@ -1,17 +1,5 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
-/obj/item/weapon/flamethrower/full/New(var/loc)
- ..()
- weldtool = new/obj/item/weapon/weldingtool(src)
- weldtool.status = 0
- igniter = new/obj/item/device/assembly/igniter(src)
- igniter.secured = 0
- src.status = 1
- update_icon()
- return
-
-
-
/obj/item/weapon/flamethrower
name = "flamethrower"
icon = 'icons/obj/flamethrower.dmi'
@@ -245,3 +233,14 @@
target.hotspot_expose((ptank.air_contents.temperature*2) + 380,500) // -- More of my "how do I shot fire?" dickery. -- TLE
//location.hotspot_expose(1000,500,1)
return
+
+
+/obj/item/weapon/flamethrower/full/New(var/loc)
+ ..()
+ weldtool = new/obj/item/weapon/weldingtool(src)
+ weldtool.status = 0
+ igniter = new/obj/item/device/assembly/igniter(src)
+ igniter.secured = 0
+ src.status = 1
+ update_icon()
+ return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/wrappingpaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
similarity index 72%
rename from code/game/objects/items/weapons/wrappingpaper.dm
rename to code/game/objects/items/weapons/gift_wrappaper.dm
index c9f3b1781a..aee9479f7a 100644
--- a/code/game/objects/items/weapons/wrappingpaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -1,86 +1,12 @@
+/* Gifts and wrapping paper
+ * Contains:
+ * Gifts
+ * Wrapping Paper
+ */
+
/*
-CONTAINS:
-WRAPPING PAPER
-GIFTS
-BEDSHEET BIN
-PHOTOGRAPHS
-
-*/
-// WRAPPING PAPER
-
-/obj/item/weapon/wrapping_paper/attackby(obj/item/weapon/W as obj, mob/user as mob)
- ..()
- if (!( locate(/obj/structure/table, src.loc) ))
- user << "\blue You MUST put the paper on a table!"
- if (W.w_class < 4)
- if ((istype(user.l_hand, /obj/item/weapon/wirecutters) || istype(user.r_hand, /obj/item/weapon/wirecutters)))
- var/a_used = 2 ** (src.w_class - 1)
- if (src.amount < a_used)
- user << "\blue You need more paper!"
- return
- else
- if(istype(W, /obj/item/smallDelivery) || istype(W, /obj/item/weapon/gift)) //No gift wrapping gifts!
- return
-
- src.amount -= a_used
- user.drop_item()
- var/obj/item/weapon/gift/G = new /obj/item/weapon/gift( src.loc )
- G.size = W.w_class
- G.w_class = G.size + 1
- G.icon_state = text("gift[]", G.size)
- G.gift = W
- W.loc = G
- G.add_fingerprint(user)
- W.add_fingerprint(user)
- src.add_fingerprint(user)
- if (src.amount <= 0)
- new /obj/item/weapon/c_tube( src.loc )
- del(src)
- return
- else
- user << "\blue You need scissors!"
- else
- user << "\blue The object is FAR too large!"
- return
-
-
-/obj/item/weapon/wrapping_paper/examine()
- set src in oview(1)
-
- ..()
- usr << text("There is about [] square units of paper left!", src.amount)
- return
-
-/obj/item/weapon/wrapping_paper/attack(mob/target as mob, mob/user as mob)
- if (!istype(target, /mob/living/carbon/human)) return
- var/mob/living/carbon/human/H = target
-
- if (istype(H.wear_suit, /obj/item/clothing/suit/straight_jacket) || H.stat)
- if (src.amount > 2)
- var/obj/effect/spresent/present = new /obj/effect/spresent (H.loc)
- src.amount -= 2
-
- if (H.client)
- H.client.perspective = EYE_PERSPECTIVE
- H.client.eye = present
-
- H.loc = present
- H.attack_log += text("\[[time_stamp()]\] Has been wrapped with [src.name] by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to wrap [H.name] ([H.ckey])")
-
- log_attack("[user.name] ([user.ckey]) used the [src.name] to wrap [H.name] ([H.ckey])")
-
- else
- user << "\blue You need more paper."
- else
- user << "Theyre moving around too much. a Straitjacket would help."
-
-
-
-
-
-// GIFTS
-
+ * Gifts
+ */
/obj/item/weapon/gift/attack_self(mob/user as mob)
user.drop_item()
if(src.gift)
@@ -154,50 +80,72 @@ PHOTOGRAPHS
else
return
-// BEDSHEET BIN
+/*
+ * Wrapping Paper
+ */
+/obj/item/weapon/wrapping_paper/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ ..()
+ if (!( locate(/obj/structure/table, src.loc) ))
+ user << "\blue You MUST put the paper on a table!"
+ if (W.w_class < 4)
+ if ((istype(user.l_hand, /obj/item/weapon/wirecutters) || istype(user.r_hand, /obj/item/weapon/wirecutters)))
+ var/a_used = 2 ** (src.w_class - 1)
+ if (src.amount < a_used)
+ user << "\blue You need more paper!"
+ return
+ else
+ if(istype(W, /obj/item/smallDelivery) || istype(W, /obj/item/weapon/gift)) //No gift wrapping gifts!
+ return
-/obj/structure/bedsheetbin/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if (istype(W, /obj/item/weapon/bedsheet))
- del(W)
- src.amount++
+ src.amount -= a_used
+ user.drop_item()
+ var/obj/item/weapon/gift/G = new /obj/item/weapon/gift( src.loc )
+ G.size = W.w_class
+ G.w_class = G.size + 1
+ G.icon_state = text("gift[]", G.size)
+ G.gift = W
+ W.loc = G
+ G.add_fingerprint(user)
+ W.add_fingerprint(user)
+ src.add_fingerprint(user)
+ if (src.amount <= 0)
+ new /obj/item/weapon/c_tube( src.loc )
+ del(src)
+ return
+ else
+ user << "\blue You need scissors!"
+ else
+ user << "\blue The object is FAR too large!"
return
-/obj/structure/bedsheetbin/attack_paw(mob/user as mob)
- return src.attack_hand(user)
-/obj/structure/bedsheetbin/attack_hand(mob/user as mob)
- if (src.amount >= 1)
- src.amount--
- new /obj/item/weapon/bedsheet( src.loc )
- add_fingerprint(user)
-
-/obj/structure/bedsheetbin/examine()
+/obj/item/weapon/wrapping_paper/examine()
set src in oview(1)
- src.amount = round(src.amount)
- if (src.amount <= 0)
- src.amount = 0
- usr << "There are no bed sheets in the bin."
- else
- if (src.amount == 1)
- usr << "There is one bed sheet in the bin."
- else
- usr << text("There are [] bed sheets in the bin.", src.amount)
- return
-
-// PHOTOGRAPH
-
-/obj/item/weapon/paper/photograph/New()
-
..()
- src.pixel_y = 0
- src.pixel_x = 0
+ usr << text("There is about [] square units of paper left!", src.amount)
return
-/obj/item/weapon/paper/photograph/attack_self(mob/user as mob)
+/obj/item/weapon/wrapping_paper/attack(mob/target as mob, mob/user as mob)
+ if (!istype(target, /mob/living/carbon/human)) return
+ var/mob/living/carbon/human/H = target
- var/n_name = copytext(sanitize(input(user, "What would you like to label the photo?", "Paper Labelling", null) as text),1,32)
- if ((src.loc == user && user.stat == 0))
- src.name = text("photo[]", (n_name ? text("- '[]'", n_name) : null))
- src.add_fingerprint(user)
- return
+ if (istype(H.wear_suit, /obj/item/clothing/suit/straight_jacket) || H.stat)
+ if (src.amount > 2)
+ var/obj/effect/spresent/present = new /obj/effect/spresent (H.loc)
+ src.amount -= 2
+
+ if (H.client)
+ H.client.perspective = EYE_PERSPECTIVE
+ H.client.eye = present
+
+ H.loc = present
+ H.attack_log += text("\[[time_stamp()]\] Has been wrapped with [src.name] by [user.name] ([user.ckey])")
+ user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to wrap [H.name] ([H.ckey])")
+
+ log_attack("[user.name] ([user.ckey]) used the [src.name] to wrap [H.name] ([H.ckey])")
+
+ else
+ user << "\blue You need more paper."
+ else
+ user << "Theyre moving around too much. a Straitjacket would help."
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm
index d538619298..87d592a1e9 100644
--- a/code/game/objects/items/weapons/hydroponics.dm
+++ b/code/game/objects/items/weapons/hydroponics.dm
@@ -1,22 +1,56 @@
+/* Hydroponic stuff
+ * Contains:
+ * Plant Bags
+ * Sunflowers
+ * Nettle
+ * Deathnettle
+ * Corbcob
+ */
+
/*
+ * Plant Bags
+ */
+/obj/item/weapon/plantbag
+ icon = 'icons/obj/hydroponics.dmi'
+ icon_state = "plantbag"
+ name = "Plant Bag"
+ var/mode = 1; //0 = pick one at a time, 1 = pick all on tile
+ var/capacity = 50; //the number of plant pieces it can carry.
+ flags = FPRINT | TABLEPASS
+ slot_flags = SLOT_BELT
+ w_class = 1
-CONTAINS:
-Plant-B-Gone
-Nettle
-Deathnettle
-Craftables (Cob pipes, potato batteries, pumpkinheads)
+/obj/item/weapon/plantbag/attack_self(mob/user as mob)
+ for (var/obj/item/weapon/reagent_containers/food/snacks/grown/O in contents)
+ contents -= O
+ O.loc = user.loc
+ user << "\blue You empty the plant bag."
+ return
-*/
+/obj/item/weapon/plantbag/verb/toggle_mode()
+ set name = "Switch Bagging Method"
+ set category = "Object"
+
+ mode = !mode
+ switch (mode)
+ if(1)
+ usr << "The bag now picks up all plants in a tile at once."
+ if(0)
+ usr << "The bag now picks up one plant at a time."
+/*
+ * Sunflower
+ */
-// Sunflower
/obj/item/weapon/grown/sunflower/attack(mob/M as mob, mob/user as mob)
M << " [user] smacks you with a sunflower!FLOWER POWER"
user << " Your sunflower's FLOWER POWER strikes [M]"
-// Nettle
+/*
+ * Nettle
+ */
/obj/item/weapon/grown/nettle/pickup(mob/living/carbon/human/user as mob)
if(!user.gloves)
user << "\red The nettle burns your bare hand!"
@@ -39,8 +73,10 @@ Craftables (Cob pipes, potato batteries, pumpkinheads)
potency = newValue
force = round((5+potency/5), 1)
+/*
+ * Deathnettle
+ */
-// Deathnettle
/obj/item/weapon/grown/deathnettle/pickup(mob/living/carbon/human/user as mob)
if(!user.gloves)
if(istype(user, /mob/living/carbon/human))
@@ -82,7 +118,9 @@ Craftables (Cob pipes, potato batteries, pumpkinheads)
force = round((5+potency/2.5), 1)
-//Crafting
+/*
+ * Corncob
+ */
/obj/item/weapon/corncob/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife))
diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm
index da0812e7e2..0b2c869cc3 100644
--- a/code/game/objects/items/weapons/kitchen.dm
+++ b/code/game/objects/items/weapons/kitchen.dm
@@ -1,10 +1,10 @@
-/*
-CONTAINS:
-FORK
-ROLLING PIN
-KNIFE
-
-*/
+/* Kitchen tools
+ * Contains:
+ * Forks
+ * Knives
+ * Rolling Pins
+ * Trays
+ */
/obj/item/weapon/kitchen/utensil/New()
@@ -15,8 +15,9 @@ KNIFE
-
-// FORK
+/*
+ * Forks
+ */
/obj/item/weapon/kitchen/utensil/fork/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!istype(M))
@@ -41,10 +42,19 @@ KNIFE
M = user
return eyestab(M,user)
+/*
+ * Knives
+ */
+/obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob)
+ if ((CLUMSY in user.mutations) && prob(50))
+ user << "\red You accidentally cut yourself with the [src]."
+ user.take_organ_damage(20)
+ return
+ return ..()
-
-
-// ROLLING PIN
+/*
+ * Rolling Pins
+ */
/obj/item/weapon/kitchen/rollingpin/attack(mob/living/M as mob, mob/living/user as mob)
if ((CLUMSY in user.mutations) && prob(50))
@@ -80,21 +90,9 @@ KNIFE
return
-
-
-
-
-// KNIFE
-
-/obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob)
- if ((CLUMSY in user.mutations) && prob(50))
- user << "\red You accidentally cut yourself with the [src]."
- user.take_organ_damage(20)
- return
- return ..()
-///////////////////////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////// TRAY -Agouri :3 ///////////////////////////////////////////////
-
+/*
+ * Trays - Agouri
+ */
/obj/item/weapon/tray/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
// Drop all the things. All of them.
diff --git a/code/game/objects/items/weapons/cameras.dm b/code/game/objects/items/weapons/photography.dm
similarity index 85%
rename from code/game/objects/items/weapons/cameras.dm
rename to code/game/objects/items/weapons/photography.dm
index ae99680c64..0c5181dd49 100644
--- a/code/game/objects/items/weapons/cameras.dm
+++ b/code/game/objects/items/weapons/photography.dm
@@ -1,37 +1,13 @@
-/obj/item/weapon/storage/photo_album
- name = "Photo album"
- icon = 'icons/obj/items.dmi'
- icon_state = "album"
- item_state = "briefcase"
- can_hold = list("/obj/item/weapon/photo",)
-
-/obj/item/weapon/storage/photo_album/MouseDrop(obj/over_object as obj)
-
- if ((istype(usr, /mob/living/carbon/human) || (ticker && ticker.mode.name == "monkey")))
- var/mob/M = usr
- if (!( istype(over_object, /obj/screen) ))
- return ..()
- playsound(src.loc, "rustle", 50, 1, -5)
- if ((!( M.restrained() ) && !( M.stat ) && M.back == src))
- switch(over_object.name)
- if("r_hand")
- M.u_equip(src)
- M.put_in_r_hand(src)
- if("l_hand")
- M.u_equip(src)
- M.put_in_l_hand(src)
- src.add_fingerprint(usr)
- return
- if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
- if (usr.s_active)
- usr.s_active.close(usr)
- src.show_to(usr)
- return
- return
-
-/obj/item/weapon/storage/photo_album/attackby(obj/item/weapon/W as obj, mob/user as mob)
- ..()
+/* Photography!
+ * Contains:
+ * Camera
+ * Photos
+ * Photo Albums
+ */
+/*
+ * Camera
+ */
/obj/item/weapon/camera_test
name = "camera"
icon = 'icons/obj/items.dmi'
@@ -160,3 +136,59 @@
can_use = 0
spawn(50) can_use = 1
+/*
+ * Photos
+ */
+/obj/item/weapon/paper/photograph/New()
+
+ ..()
+ src.pixel_y = 0
+ src.pixel_x = 0
+ return
+
+/obj/item/weapon/paper/photograph/attack_self(mob/user as mob)
+
+ var/n_name = copytext(sanitize(input(user, "What would you like to label the photo?", "Paper Labelling", null) as text),1,32)
+ if ((src.loc == user && user.stat == 0))
+ src.name = text("photo[]", (n_name ? text("- '[]'", n_name) : null))
+ src.add_fingerprint(user)
+ return
+
+
+
+/*
+ * Photo Albums
+ */
+/obj/item/weapon/storage/photo_album
+ name = "Photo album"
+ icon = 'icons/obj/items.dmi'
+ icon_state = "album"
+ item_state = "briefcase"
+ can_hold = list("/obj/item/weapon/photo",)
+
+/obj/item/weapon/storage/photo_album/MouseDrop(obj/over_object as obj)
+
+ if ((istype(usr, /mob/living/carbon/human) || (ticker && ticker.mode.name == "monkey")))
+ var/mob/M = usr
+ if (!( istype(over_object, /obj/screen) ))
+ return ..()
+ playsound(src.loc, "rustle", 50, 1, -5)
+ if ((!( M.restrained() ) && !( M.stat ) && M.back == src))
+ switch(over_object.name)
+ if("r_hand")
+ M.u_equip(src)
+ M.put_in_r_hand(src)
+ if("l_hand")
+ M.u_equip(src)
+ M.put_in_l_hand(src)
+ src.add_fingerprint(usr)
+ return
+ if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
+ if (usr.s_active)
+ usr.s_active.close(usr)
+ src.show_to(usr)
+ return
+ return
+
+/obj/item/weapon/storage/photo_album/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ ..()
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/spray.dm b/code/game/objects/items/weapons/spray.dm
deleted file mode 100644
index d3aadde792..0000000000
--- a/code/game/objects/items/weapons/spray.dm
+++ /dev/null
@@ -1,197 +0,0 @@
-/obj/item/weapon/reagent_containers/spray
- name = "spray bottle"
- desc = "A spray bottle, with an unscrewable top."
- icon = 'icons/obj/janitor.dmi'
- icon_state = "cleaner"
- item_state = "cleaner"
- flags = TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY
- slot_flags = SLOT_BELT
- throwforce = 3
- w_class = 2.0
- throw_speed = 2
- throw_range = 10
- amount_per_transfer_from_this = 5
- volume = 250
- possible_transfer_amounts = null
-
-
-/obj/item/weapon/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user as mob)
- if(istype(A, /obj/item/weapon/storage) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack) || istype(A, /obj/structure/closet) \
- || istype(A, /obj/item/weapon/reagent_containers) || istype(A, /obj/structure/sink))
- return
-
- if(istype(A, /obj/effect/proc_holder/spell))
- return
-
- if(istype(A, /obj/structure/reagent_dispensers)) //this block copypasted from reagent_containers/glass, for lack of a better solution
- if(!A.reagents.total_volume && A.reagents)
- user << "\The [A] is empty."
- return
-
- if(reagents.total_volume >= reagents.maximum_volume)
- user << "\The [src] is full."
- return
-
- var/trans = A.reagents.trans_to(src, A:amount_per_transfer_from_this)
- user << "You fill \the [src] with [trans] units of the contents of \the [A]."
- return
-
- if(reagents.total_volume < amount_per_transfer_from_this)
- user << "\The [src] is empty!"
- return
-
- var/obj/effect/decal/D = new/obj/effect/decal(get_turf(src))
- D.create_reagents(amount_per_transfer_from_this)
- reagents.trans_to(D, amount_per_transfer_from_this)
-
- D.name = "chemicals"
- D.icon = 'icons/obj/chempuff.dmi'
-
- D.icon += mix_color_from_reagents(D.reagents.reagent_list)
-
- spawn(0)
- for(var/i=0, i<3, i++)
- step_towards(D,A)
- D.reagents.reaction(get_turf(D))
- for(var/atom/T in get_turf(D))
- D.reagents.reaction(T)
- sleep(3)
- del(D)
-
- playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6)
-
- if(reagents.has_reagent("sacid"))
- message_admins("[key_name_admin(user)] fired sulphuric acid from a spray bottle.")
- log_game("[key_name(user)] fired sulphuric acid from a spray bottle.")
- if(reagents.has_reagent("pacid"))
- message_admins("[key_name_admin(user)] fired Polyacid from a spray bottle.")
- log_game("[key_name(user)] fired Polyacid from a spray bottle.")
- if(reagents.has_reagent("lube"))
- message_admins("[key_name_admin(user)] fired Space lube from a spray bottle.")
- log_game("[key_name(user)] fired Space lube from a spray bottle.")
- return
-
-
-/obj/item/weapon/reagent_containers/spray/examine()
- set src in usr
- ..()
- for(var/datum/reagent/R in reagents.reagent_list)
- usr << "[round(R.volume)] units of [R.name] left."
- return
-
-
-//space cleaner
-/obj/item/weapon/reagent_containers/spray/cleaner
- name = "space cleaner"
- desc = "BLAM!-brand non-foaming space cleaner!"
-
-
-/obj/item/weapon/reagent_containers/spray/cleaner/New()
- ..()
- reagents.add_reagent("cleaner", 250)
-
-//pepperspray
-/obj/item/weapon/reagent_containers/spray/pepper
- name = "pepperspray"
- desc = "Manufactured by UhangInc, used to blind and down an opponent quickly."
- icon = 'icons/obj/weapons.dmi'
- icon_state = "pepperspray"
- item_state = "pepperspray"
- volume = 40
- amount_per_transfer_from_this = 10
-
-
-/obj/item/weapon/reagent_containers/spray/pepper/New()
- ..()
- reagents.add_reagent("condensedcapsaicin", 40)
-
-
-//chemsprayer
-/obj/item/weapon/reagent_containers/spray/chemsprayer
- name = "chem sprayer"
- desc = "A utility used to spray large amounts of reagent in a given area."
- icon = 'icons/obj/gun.dmi'
- icon_state = "chemsprayer"
- item_state = "chemsprayer"
- throwforce = 3
- w_class = 3.0
- volume = 600
- origin_tech = "combat=3;materials=3;engineering=3"
-
-
-//this is a big copypasta clusterfuck, but it's still better than it used to be!
-/obj/item/weapon/reagent_containers/spray/chemsprayer/afterattack(atom/A as mob|obj, mob/user as mob)
- if(istype(A, /obj/item/weapon/storage) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack) || istype(A, /obj/structure/closet) \
- || istype(A, /obj/item/weapon/reagent_containers) || istype(A, /obj/structure/sink))
- return
-
- if(istype(A, /obj/effect/proc_holder/spell))
- return
-
- if(istype(A, /obj/structure/reagent_dispensers)) //this block copypasted from reagent_containers/glass, for lack of a better solution
- if(!A.reagents.total_volume && A.reagents)
- user << "\The [A] is empty."
- return
-
- if(reagents.total_volume >= reagents.maximum_volume)
- user << "\The [src] is full."
- return
-
- var/trans = A.reagents.trans_to(src, A:amount_per_transfer_from_this)
- user << "You fill \the [src] with [trans] units of the contents of \the [A]."
- return
-
- if(reagents.total_volume < amount_per_transfer_from_this)
- user << "\The [src] is empty!"
- return
-
- var/Sprays[3]
- for(var/i=1, i<=3, i++) // intialize sprays
- if(src.reagents.total_volume < 1) break
- var/obj/effect/decal/D = new/obj/effect/decal(get_turf(src))
- D.name = "chemicals"
- D.icon = 'icons/obj/chempuff.dmi'
- D.create_reagents(amount_per_transfer_from_this)
- src.reagents.trans_to(D, amount_per_transfer_from_this)
-
- D.icon += mix_color_from_reagents(D.reagents.reagent_list)
-
- Sprays[i] = D
-
- var/direction = get_dir(src, A)
- var/turf/T = get_turf(A)
- var/turf/T1 = get_step(T,turn(direction, 90))
- var/turf/T2 = get_step(T,turn(direction, -90))
- var/list/the_targets = list(T,T1,T2)
-
- for(var/i=1, i<=Sprays.len, i++)
- spawn()
- var/obj/effect/decal/D = Sprays[i]
- if(!D) continue
-
- // Spreads the sprays a little bit
- var/turf/my_target = pick(the_targets)
- the_targets -= my_target
-
- for(var/j=1, j<=rand(6,8), j++)
- step_towards(D, my_target)
- D.reagents.reaction(get_turf(D))
- for(var/atom/t in get_turf(D))
- D.reagents.reaction(t)
- sleep(2)
- del(D)
-
- playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6)
-
- if(reagents.has_reagent("sacid"))
- message_admins("[key_name_admin(user)] fired sulphuric acid from a chem sprayer.")
- log_game("[key_name(user)] fired sulphuric acid from a chem sprayer.")
- if(reagents.has_reagent("pacid"))
- message_admins("[key_name_admin(user)] fired Polyacid from a chem sprayer.")
- log_game("[key_name(user)] fired Polyacid from a chem sprayer.")
- if(reagents.has_reagent("lube"))
- message_admins("[key_name_admin(user)] fired Space lube from a chem sprayer.")
- log_game("[key_name(user)] fired Space lube from a chem sprayer.")
- return
-
-//looking for plant-b-gone? it's in code/game/objects/items/weapons/hydroponics.dm
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm
index 2dba563c2c..6d199b3c2b 100644
--- a/code/game/objects/items/weapons/surgery_tools.dm
+++ b/code/game/objects/items/weapons/surgery_tools.dm
@@ -1,17 +1,16 @@
+/* Surgery Tools
+ * Contains:
+ * Retractor
+ * Hemostat
+ * Cautery
+ * Surgical Drill - MIA!
+ * Scalpel
+ * Circular Saw
+ */
+
/*
-CONTAINS:
-RETRACTOR
-HEMOSTAT
-CAUTERY
-SURGICAL DRILL
-SCALPEL
-CIRCULAR SAW
-
-*/
-
-/////////////
-//RETRACTOR//
-/////////////
+ * Retractor
+ */
/obj/item/weapon/retractor/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!istype(M))
return
@@ -82,10 +81,9 @@ CIRCULAR SAW
return
-////////////
-//Hemostat//
-////////////
-
+/*
+ * Hemostat
+ */
/obj/item/weapon/hemostat/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!istype(M))
return
@@ -168,10 +166,9 @@ CIRCULAR SAW
return
-///////////
-//Cautery//
-///////////
-
+/*
+ * Cautery
+ */
/obj/item/weapon/cautery/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!istype(M))
return
@@ -246,13 +243,15 @@ CIRCULAR SAW
return
-
+/*
+ * Surgical Drill
+ */
//obj/item/weapon/surgicaldrill
-///////////
-//SCALPEL//
-///////////
+/*
+ * Scalpel
+ */
/obj/item/weapon/scalpel/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!istype(M))
return ..()
@@ -452,9 +451,9 @@ CIRCULAR SAW
return
-////////////////
-//CIRCULAR SAW//
-////////////////
+/*
+ * Circular Saw
+ */
/obj/item/weapon/circular_saw/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!istype(M))
return ..()
diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm
index 27663d4309..b040c79de8 100644
--- a/code/game/objects/items/weapons/swords_axes_etc.dm
+++ b/code/game/objects/items/weapons/swords_axes_etc.dm
@@ -1,19 +1,23 @@
-/*
-CONTAINS:
-BANHAMMER
-SWORD
-BLADE
-AXE
-CLASSIC BATON
-ENERGY SHIELD (where else should i even put this)
-*/
+/* Weapons
+ * Contains:
+ * Banhammer
+ * Sword
+ * Classic Baton
+ * Energy Blade
+ * Energy Axe
+ * Energy Shield
+ */
-//BANHAMMER
+/*
+ * Banhammer
+ */
/obj/item/weapon/banhammer/attack(mob/M as mob, mob/user as mob)
M << " You have been banned FOR NO REISIN by [user]"
user << " You have BANNED [M]"
-// SWORD
+/*
+ * Sword
+ */
/obj/item/weapon/melee/energy/sword/IsShield()
if(active)
return 1
@@ -51,52 +55,9 @@ ENERGY SHIELD (where else should i even put this)
add_fingerprint(user)
return
-/obj/item/weapon/melee/energy/sword/green
- New()
- color = "green"
-
-/obj/item/weapon/melee/energy/sword/red
- New()
- color = "red"
-
-
-// BLADE
-//Most of the other special functions are handled in their own files.
-
-/obj/item/weapon/melee/energy/blade/New()
- spark_system = new /datum/effect/effect/system/spark_spread()
- spark_system.set_up(5, 0, src)
- spark_system.attach(src)
- return
-
-/obj/item/weapon/melee/energy/blade/dropped()
- del(src)
- return
-
-/obj/item/weapon/melee/energy/blade/proc/throw()
- del(src)
- return
-
-// AXE
-/obj/item/weapon/melee/energy/axe/attack(target as mob, mob/user as mob)
- ..()
-
-/obj/item/weapon/melee/energy/axe/attack_self(mob/user as mob)
- src.active = !( src.active )
- if (src.active)
- user << "\blue The axe is now energised."
- src.force = 150
- src.icon_state = "axe1"
- src.w_class = 5
- else
- user << "\blue The axe can now be concealed."
- src.force = 40
- src.icon_state = "axe0"
- src.w_class = 5
- src.add_fingerprint(user)
- return
-
-// CLASSIC BATON
+/*
+ * Classic Baton
+ */
/obj/item/weapon/melee/classic_baton
name = "police baton"
desc = "A wooden truncheon for beating criminal scum."
@@ -141,7 +102,58 @@ ENERGY SHIELD (where else should i even put this)
for(var/mob/O in viewers(M))
if (O.client) O.show_message("\red [M] has been stunned with the police baton by [user]!", 1, "\red You hear someone fall", 2)
-//ENERGY SHIELD
+/*
+ *Energy Blade
+ */
+//Most of the other special functions are handled in their own files.
+
+/obj/item/weapon/melee/energy/sword/green
+ New()
+ color = "green"
+
+/obj/item/weapon/melee/energy/sword/red
+ New()
+ color = "red"
+
+/obj/item/weapon/melee/energy/blade/New()
+ spark_system = new /datum/effect/effect/system/spark_spread()
+ spark_system.set_up(5, 0, src)
+ spark_system.attach(src)
+ return
+
+/obj/item/weapon/melee/energy/blade/dropped()
+ del(src)
+ return
+
+/obj/item/weapon/melee/energy/blade/proc/throw()
+ del(src)
+ return
+
+/*
+ * Energy Axe
+ */
+/obj/item/weapon/melee/energy/axe/attack(target as mob, mob/user as mob)
+ ..()
+
+/obj/item/weapon/melee/energy/axe/attack_self(mob/user as mob)
+ src.active = !( src.active )
+ if (src.active)
+ user << "\blue The axe is now energised."
+ src.force = 150
+ src.icon_state = "axe1"
+ src.w_class = 5
+ else
+ user << "\blue The axe can now be concealed."
+ src.force = 40
+ src.icon_state = "axe0"
+ src.w_class = 5
+ src.add_fingerprint(user)
+ return
+
+
+/*
+ * Energy Shield
+ */
/obj/item/weapon/shield/energy/IsShield()
if(active)
return 1
diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm
index 74200b9d88..f811db2f78 100644
--- a/code/game/objects/items/weapons/table_rack_parts.dm
+++ b/code/game/objects/items/weapons/table_rack_parts.dm
@@ -1,15 +1,16 @@
+/* Table parts and rack parts
+ * Contains:
+ * Table Parts
+ * Reinforced Table Parts
+ * Wooden Table Parts
+ * Rack Parts
+ */
+
+
+
/*
-CONTAINS:
-TABLE PARTS
-REINFORCED TABLE PARTS
-WOODEN TABLE PARTS
-RACK PARTS
-*/
-
-
-
-// TABLE PARTS
-
+ * Table Parts
+ */
/obj/item/weapon/table_parts/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/weapon/wrench))
@@ -31,20 +32,10 @@ RACK PARTS
del(src)
return
-// 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( src.loc )
- del(src)
-/obj/item/weapon/table_parts/wood/attack_self(mob/user as mob)
- new /obj/structure/table/woodentable( user.loc )
- user.drop_item()
- del(src)
- return
-
-
-// REINFORCED TABLE PARTS
+/*
+ * Reinforced Table Parts
+ */
/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( src.loc )
@@ -57,11 +48,23 @@ RACK PARTS
del(src)
return
+/*
+ * 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( src.loc )
+ del(src)
+/obj/item/weapon/table_parts/wood/attack_self(mob/user as mob)
+ new /obj/structure/table/woodentable( user.loc )
+ user.drop_item()
+ del(src)
+ return
-
-
-// RACK PARTS
+/*
+ * 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))
diff --git a/code/game/objects/items/weapons/tanks/emergency.dm b/code/game/objects/items/weapons/tanks/emergency.dm
deleted file mode 100644
index 6640d3eeda..0000000000
--- a/code/game/objects/items/weapons/tanks/emergency.dm
+++ /dev/null
@@ -1,35 +0,0 @@
-/obj/item/weapon/tank/emergency_oxygen
- name = "emergency oxygen tank"
- desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it."
- icon_state = "emergency"
- flags = FPRINT | TABLEPASS | CONDUCT
- slot_flags = SLOT_BELT
- w_class = 2.0
- force = 4.0
- distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
- volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011)
-
-
- New()
- ..()
- src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
- return
-
-
- examine()
- set src in usr
- ..()
- if(air_contents.oxygen < 0.2 && loc==usr)
- usr << text("\red The meter on the [src.name] indicates you are almost out of air!")
- usr << sound('sound/effects/alert.ogg')
-
-/obj/item/weapon/tank/emergency_oxygen/engi
- icon_state = "emergency_engi"
- name = "extended-capacity emergency oxygen tank"
- volume = 6
-
-
-/obj/item/weapon/tank/emergency_oxygen/double
- icon_state = "emergency_double"
- name = "Double Emergency Oxygen Tank"
- volume = 10
diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm
index 3cfb89a306..00301e7a70 100644
--- a/code/game/objects/items/weapons/tanks/tank_types.dm
+++ b/code/game/objects/items/weapons/tanks/tank_types.dm
@@ -4,6 +4,7 @@
* Anesthetic
* Air
* Plasma
+ * Emergency Oxygen
*/
/*
@@ -149,3 +150,41 @@
user.before_take_item(src)
src.loc = F
return
+
+/*
+ * Emergency Oxygen
+ */
+/obj/item/weapon/tank/emergency_oxygen
+ name = "emergency oxygen tank"
+ desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it."
+ icon_state = "emergency"
+ flags = FPRINT | TABLEPASS | CONDUCT
+ slot_flags = SLOT_BELT
+ w_class = 2.0
+ force = 4.0
+ distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
+ volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011)
+
+
+ New()
+ ..()
+ src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
+ return
+
+
+ examine()
+ set src in usr
+ ..()
+ if(air_contents.oxygen < 0.2 && loc==usr)
+ usr << text("\red The meter on the [src.name] indicates you are almost out of air!")
+ usr << sound('sound/effects/alert.ogg')
+
+/obj/item/weapon/tank/emergency_oxygen/engi
+ icon_state = "emergency_engi"
+ name = "extended-capacity emergency oxygen tank"
+ volume = 6
+
+/obj/item/weapon/tank/emergency_oxygen/double
+ icon_state = "emergency_double"
+ name = "Double Emergency Oxygen Tank"
+ volume = 10
diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm
index 95e566ee0b..c4342b8c1e 100644
--- a/code/game/objects/items/weapons/teleportation.dm
+++ b/code/game/objects/items/weapons/teleportation.dm
@@ -1,10 +1,12 @@
+/* Teleportation devices.
+ * Contains:
+ * Locator
+ * Hand-tele
+ */
+
/*
-CONTAINS:
-LOCATOR
-HAND_TELE
-
-*/
-
+ * Locator
+ */
/obj/item/weapon/locator/attack_self(mob/user as mob)
user.machine = src
var/dat
@@ -99,8 +101,10 @@ Frequency:
src.attack_self(M)
return
-/// HAND TELE
+/*
+ * Hand-tele
+ */
/obj/item/weapon/hand_tele/attack_self(mob/user as mob)
var/turf/current_location = get_turf(user)//What turf is the user on?
if(!current_location||current_location.z==2||current_location.z>=7)//If turf was not found or they're on z level 2 or >7 which does not currently exist.
diff --git a/code/game/objects/items/weapons/toilets.dm b/code/game/objects/items/weapons/toilets.dm
deleted file mode 100644
index f943a1cc54..0000000000
--- a/code/game/objects/items/weapons/toilets.dm
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-CONTAINS:
-TOILET
-
-/obj/item/weapon/storage/toilet
- name = "toilet"
- w_class = 4.0
- anchored = 1.0
- density = 0.0
- var/status = 0.0
- var/clogged = 0.0
- anchored = 1.0
- icon = 'icons/obj/stationobjs.dmi'
- icon_state = "toilet"
- item_state = "syringe_kit"
-
-/obj/item/weapon/storage/toilet/attackby(obj/item/weapon/W as obj, mob/user as mob)
- ..()
- if (src.contents.len >= 7)
- user << "The toilet is clogged!"
- return
- if (istype(W, /obj/item/weapon/disk/nuclear))
- user << "This is far too important to flush!"
- return
- if (istype(W, /obj/item/weapon/storage/))
- return
- if (istype(W, /obj/item/weapon/grab))
- playsound(src.loc, 'sound/effects/slosh.ogg', 50, 1)
- for(var/mob/O in viewers(user, null))
- O << text("\blue [] gives [] a swirlie!", user, W)
- return
- var/t
- for(var/obj/item/weapon/O in src)
- t += O.w_class
- t += W.w_class
- if (t > 30)
- user << "You cannot fit the item inside."
- return
- user.u_equip(W)
- W.loc = src
- if ((user.client && user.s_active != src))
- user.client.screen -= W
- src.orient2hud(user)
- W.dropped(user)
- add_fingerprint(user)
- for(var/mob/O in viewers(user, null))
- O.show_message(text("\blue [] has put [] in []!", user, W, src), 1)
- return
-
-/obj/item/weapon/storage/toilet/MouseDrop_T(mob/M as mob, mob/user as mob)
- if (!ticker)
- user << "You can't help relieve anyone before the game starts."
- return
- if ((!( istype(M, /mob) ) || get_dist(src, user) > 1 || M.loc != src.loc || user.restrained() || usr.stat))
- return
- if (M == usr)
- for(var/mob/O in viewers(user, null))
- if ((O.client && !( O.blinded )))
- O << text("\blue [] sits on the toilet.", user)
- else
- for(var/mob/O in viewers(user, null))
- if ((O.client && !( O.blinded )))
- O << text("\blue [] is seated on the toilet by []!", M, user)
- M.anchored = 1
- M.buckled = src
- M.loc = src.loc
- src.add_fingerprint(user)
- return
-
-/obj/item/weapon/storage/toilet/attack_hand(mob/user as mob)
- for(var/mob/M in src.loc)
- if (M.buckled)
- if (M != user)
- for(var/mob/O in viewers(user, null))
- if ((O.client && !( O.blinded )))
- O << text("\blue [] is zipped up by [].", M, user)
- else
- for(var/mob/O in viewers(user, null))
- if ((O.client && !( O.blinded )))
- O << text("\blue [] zips up.", M)
-// world << "[M] is no longer buckled to [src]"
- M.anchored = 0
- M.buckled = null
- src.add_fingerprint(user)
- if((src.clogged < 1) || (src.contents.len < 7) || (user.loc != src.loc))
- for(var/mob/O in viewers(user, null))
- O << text("\blue [] flushes the toilet.", user)
- src.clogged = 0
- src.contents.len = 0
- else if((src.clogged >= 1) || (src.contents.len >= 7) || (user.buckled != src.loc))
- for(var/mob/O in viewers(user, null))
- O << text("\blue The toilet is clogged!")
- return
-
-
-*/
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 07218fd593..867ba31053 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -1,16 +1,18 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
+/* Tools!
+ * Note: Multitools are /obj/item/device
+ *
+ * Contains:
+ * Wrench
+ * Screwdriver
+ * Wirecutters
+ * Welding Tool
+ */
+
/*
-CONTAINS:
-
-WRENCH
-SCREWDRIVER
-WELDINGTOOOL
-WIRECUTTERS
-*/
-
-
-// WRENCH
+ * Wrench
+ */
/obj/item/weapon/wrench
name = "wrench"
desc = "A wrench with common uses. Can be found in your hand."
@@ -26,7 +28,9 @@ WIRECUTTERS
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
-// SCREWDRIVER
+/*
+ * Screwdriver
+ */
/obj/item/weapon/screwdriver/New()
switch(pick("red","blue","purple","brown","green","cyan","yellow"))
if ("red")
@@ -63,9 +67,43 @@ WIRECUTTERS
M = user
return eyestab(M,user)
+/*
+ * Wirecutters
+ */
+/obj/item/weapon/wirecutters
+ name = "wirecutters"
+ desc = "This cuts wires."
+ icon = 'icons/obj/items.dmi'
+ icon_state = "cutters"
+ flags = FPRINT | TABLEPASS| CONDUCT
+ slot_flags = SLOT_BELT
+ force = 6.0
+ throw_speed = 2
+ throw_range = 9
+ w_class = 2.0
+ m_amt = 80
+ origin_tech = "materials=1;engineering=1"
+ attack_verb = list("pinched", "nipped")
+/obj/item/weapon/wirecutters/New()
+ if(prob(50))
+ icon_state = "cutters-y"
+ item_state = "cutters_yellow"
-// WELDING TOOL
+/obj/item/weapon/wirecutters/attack(mob/M as mob, mob/user as mob)
+ if((M.handcuffed) && (istype(M:handcuffed, /obj/item/weapon/handcuffs/cable)))
+ usr.visible_message("\The [usr] cuts \the [M]'s restraints with \the [src]!",\
+ "You cut \the [M]'s restraints with \the [src]!",\
+ "You hear cable being cut.")
+ M.handcuffed = null
+ M.update_inv_handcuffed()
+ return
+ else
+ ..()
+
+/*
+ * Welding Tool
+ */
/obj/item/weapon/weldingtool
name = "welding tool"
icon = 'icons/obj/items.dmi'
@@ -355,38 +393,4 @@ WIRECUTTERS
var/gen_amount = ((world.time-last_gen)/25)
reagents += (gen_amount)
if(reagents > max_fuel)
- reagents = max_fuel
-
-
-
-//WIRECUTTERS
-/obj/item/weapon/wirecutters
- name = "wirecutters"
- desc = "This cuts wires."
- icon = 'icons/obj/items.dmi'
- icon_state = "cutters"
- flags = FPRINT | TABLEPASS| CONDUCT
- slot_flags = SLOT_BELT
- force = 6.0
- throw_speed = 2
- throw_range = 9
- w_class = 2.0
- m_amt = 80
- origin_tech = "materials=1;engineering=1"
- attack_verb = list("pinched", "nipped")
-
-/obj/item/weapon/wirecutters/New()
- if(prob(50))
- icon_state = "cutters-y"
- item_state = "cutters_yellow"
-
-/obj/item/weapon/wirecutters/attack(mob/M as mob, mob/user as mob)
- if((M.handcuffed) && (istype(M:handcuffed, /obj/item/weapon/handcuffs/cable)))
- usr.visible_message("\The [usr] cuts \the [M]'s restraints with \the [src]!",\
- "You cut \the [M]'s restraints with \the [src]!",\
- "You hear cable being cut.")
- M.handcuffed = null
- M.update_inv_handcuffed()
- return
- else
- ..()
\ No newline at end of file
+ reagents = max_fuel
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index 6bb4addcce..4e3d77bedb 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -1,3 +1,10 @@
+/* Two-handed Weapons
+ * Contains:
+ * Twohanded
+ * Fireaxe
+ * Double-Bladed Energy Swords
+ */
+
/*##################################################################
##################### TWO HANDED WEAPONS BE HERE~ -Agouri :3 ########
####################################################################*/
@@ -6,6 +13,9 @@
//This rewrite means we don't have two variables for EVERY item which are used only by a few weapons.
//It also tidies stuff up elsewhere.
+/*
+ * Twohanded
+ */
/obj/item/weapon/twohanded
var/wielded = 0
var/force_unwielded = 0
@@ -91,7 +101,9 @@
wield()
del(src)
-////////////FIREAXE!//////////////
+/*
+ * Fireaxe
+ */
/obj/item/weapon/twohanded/fireaxe // DEM AXES MAN, marker -Agouri
icon_state = "fireaxe0"
name = "fire axe"
@@ -122,7 +134,9 @@
del(A)
-////////////Doublebladed E-sword!//////////////
+/*
+ * Double-Bladed Energy Swords - Cheridan
+ */
/obj/item/weapon/twohanded/dualsaber
icon_state = "dualsaber0"
name = "double-bladed energy sword"
diff --git a/code/game/objects/items/weapons/tiles_wires.dm b/code/game/objects/items/weapons/wires.dm
similarity index 90%
rename from code/game/objects/items/weapons/tiles_wires.dm
rename to code/game/objects/items/weapons/wires.dm
index 59e96b89ef..92a76310ab 100644
--- a/code/game/objects/items/weapons/tiles_wires.dm
+++ b/code/game/objects/items/weapons/wires.dm
@@ -1,11 +1,3 @@
-/*
-CONTAINS:
-WIRE
-TILES
-
-*/
-
-
// WIRES
/obj/item/weapon/wire/proc/update()
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
new file mode 100644
index 0000000000..ba1fe00fe6
--- /dev/null
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -0,0 +1,30 @@
+// BEDSHEET BIN
+
+/obj/structure/bedsheetbin/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if (istype(W, /obj/item/weapon/bedsheet))
+ del(W)
+ src.amount++
+ return
+
+/obj/structure/bedsheetbin/attack_paw(mob/user as mob)
+ return src.attack_hand(user)
+
+/obj/structure/bedsheetbin/attack_hand(mob/user as mob)
+ if (src.amount >= 1)
+ src.amount--
+ new /obj/item/weapon/bedsheet( src.loc )
+ add_fingerprint(user)
+
+/obj/structure/bedsheetbin/examine()
+ set src in oview(1)
+
+ src.amount = round(src.amount)
+ if (src.amount <= 0)
+ src.amount = 0
+ usr << "There are no bed sheets in the bin."
+ else
+ if (src.amount == 1)
+ usr << "There is one bed sheet in the bin."
+ else
+ usr << text("There are [] bed sheets in the bin.", src.amount)
+ return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/stungloves.dm b/code/modules/clothing/gloves/stungloves.dm
similarity index 100%
rename from code/game/objects/items/weapons/stungloves.dm
rename to code/modules/clothing/gloves/stungloves.dm
diff --git a/tgstation.dme b/tgstation.dme
index 2b8298fc56..1488c99999 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -548,6 +548,7 @@
#include "code\game\machinery\kitchen\juicer.dm"
#include "code\game\machinery\kitchen\microwave.dm"
#include "code\game\machinery\kitchen\processor.dm"
+#include "code\game\machinery\kitchen\smartfridge.dm"
#include "code\game\machinery\pipe\construction.dm"
#include "code\game\machinery\pipe\pipe_dispenser.dm"
#include "code\game\machinery\telecomms\broadcaster.dm"
@@ -637,13 +638,13 @@
#include "code\game\objects\items\robot\robot_parts.dm"
#include "code\game\objects\items\robot\robot_upgrades.dm"
#include "code\game\objects\items\stacks\glass.dm"
+#include "code\game\objects\items\stacks\medical.dm"
#include "code\game\objects\items\stacks\metal.dm"
#include "code\game\objects\items\stacks\minerals.dm"
#include "code\game\objects\items\stacks\stack.dm"
#include "code\game\objects\items\stacks\wood.dm"
#include "code\game\objects\items\weapons\AI_modules.dm"
-#include "code\game\objects\items\weapons\Bedsheets.dm"
-#include "code\game\objects\items\weapons\cameras.dm"
+#include "code\game\objects\items\weapons\bedsheets.dm"
#include "code\game\objects\items\weapons\cards_ids.dm"
#include "code\game\objects\items\weapons\cigs_lighters.dm"
#include "code\game\objects\items\weapons\clown_items.dm"
@@ -652,32 +653,28 @@
#include "code\game\objects\items\weapons\explosives.dm"
#include "code\game\objects\items\weapons\extinguisher.dm"
#include "code\game\objects\items\weapons\flamethrower.dm"
+#include "code\game\objects\items\weapons\gift_wrappaper.dm"
#include "code\game\objects\items\weapons\handcuffs.dm"
#include "code\game\objects\items\weapons\hydroponics.dm"
#include "code\game\objects\items\weapons\kitchen.dm"
#include "code\game\objects\items\weapons\manuals.dm"
-#include "code\game\objects\items\weapons\medical.dm"
#include "code\game\objects\items\weapons\mop.dm"
#include "code\game\objects\items\weapons\mousetraps.dm"
#include "code\game\objects\items\weapons\paint.dm"
#include "code\game\objects\items\weapons\paiwire.dm"
-#include "code\game\objects\items\weapons\plant_bag.dm"
+#include "code\game\objects\items\weapons\photography.dm"
#include "code\game\objects\items\weapons\RCD.dm"
#include "code\game\objects\items\weapons\RSF.dm"
#include "code\game\objects\items\weapons\scrolls.dm"
-#include "code\game\objects\items\weapons\spray.dm"
#include "code\game\objects\items\weapons\stunbaton.dm"
-#include "code\game\objects\items\weapons\stungloves.dm"
#include "code\game\objects\items\weapons\surgery_tools.dm"
#include "code\game\objects\items\weapons\swords_axes_etc.dm"
#include "code\game\objects\items\weapons\table_rack_parts.dm"
#include "code\game\objects\items\weapons\teleportation.dm"
-#include "code\game\objects\items\weapons\tiles_wires.dm"
-#include "code\game\objects\items\weapons\toilets.dm"
#include "code\game\objects\items\weapons\tools.dm"
#include "code\game\objects\items\weapons\trashbag.dm"
#include "code\game\objects\items\weapons\twohanded.dm"
-#include "code\game\objects\items\weapons\wrappingpaper.dm"
+#include "code\game\objects\items\weapons\wires.dm"
#include "code\game\objects\items\weapons\grenades\chem_grenade.dm"
#include "code\game\objects\items\weapons\grenades\emgrenade.dm"
#include "code\game\objects\items\weapons\grenades\flashbang.dm"
@@ -707,11 +704,11 @@
#include "code\game\objects\items\weapons\storage\storage.dm"
#include "code\game\objects\items\weapons\storage\toolbox.dm"
#include "code\game\objects\items\weapons\storage\uplink_kits.dm"
-#include "code\game\objects\items\weapons\tanks\emergency.dm"
#include "code\game\objects\items\weapons\tanks\jetpack.dm"
#include "code\game\objects\items\weapons\tanks\tank_types.dm"
#include "code\game\objects\items\weapons\tanks\tanks.dm"
#include "code\game\objects\structures\aliennests.dm"
+#include "code\game\objects\structures\bedsheet_bin.dm"
#include "code\game\objects\structures\displaycase.dm"
#include "code\game\objects\structures\door_assembly.dm"
#include "code\game\objects\structures\electricchair.dm"
@@ -826,6 +823,7 @@
#include "code\modules\clothing\gloves\boxing.dm"
#include "code\modules\clothing\gloves\color.dm"
#include "code\modules\clothing\gloves\miscellaneous.dm"
+#include "code\modules\clothing\gloves\stungloves.dm"
#include "code\modules\clothing\head\collectable.dm"
#include "code\modules\clothing\head\hardhat.dm"
#include "code\modules\clothing\head\helmet.dm"