From 2e7b008d27757f4c6b6d7de88ab9e24254103bcc Mon Sep 17 00:00:00 2001 From: "johnsonmt88@gmail.com" Date: Sun, 26 Aug 2012 05:20:27 +0000 Subject: [PATCH] File structure again. This cleans up all of the files in code/game/objects/items/weapons. Meaning that the re-organizing part of this endeavour is complete. All that is left is to start dragging down all of the object definitions from code/defines/ into their proper places. While I'm certain this is all good, I'll apologize now if files or paths end up broken. Again: Make sure your .dme is up to date! Delete it if necessary to SVN Upload it to the current revision. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4550 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/machinery/hydroponics.dm | 12 ++ .../kitchen/smartfridge.dm} | 45 ---- .../items/{weapons => stacks}/medical.dm | 7 - code/game/objects/items/weapons/cards_ids.dm | 63 ++---- .../game/objects/items/weapons/clown_items.dm | 23 +- .../objects/items/weapons/flamethrower.dm | 23 +- .../{wrappingpaper.dm => gift_wrappaper.dm} | 186 ++++++----------- .../game/objects/items/weapons/hydroponics.dm | 58 +++++- code/game/objects/items/weapons/kitchen.dm | 52 +++-- .../weapons/{cameras.dm => photography.dm} | 98 ++++++--- code/game/objects/items/weapons/spray.dm | 197 ------------------ .../objects/items/weapons/surgery_tools.dm | 55 +++-- .../objects/items/weapons/swords_axes_etc.dm | 128 ++++++------ .../objects/items/weapons/table_rack_parts.dm | 57 ++--- .../objects/items/weapons/tanks/emergency.dm | 35 ---- .../objects/items/weapons/tanks/tank_types.dm | 39 ++++ .../objects/items/weapons/teleportation.dm | 18 +- code/game/objects/items/weapons/toilets.dm | 96 --------- code/game/objects/items/weapons/tools.dm | 98 ++++----- code/game/objects/items/weapons/twohanded.dm | 18 +- .../weapons/{tiles_wires.dm => wires.dm} | 8 - code/game/objects/structures/bedsheet_bin.dm | 30 +++ .../clothing/gloves}/stungloves.dm | 0 tgstation.dme | 18 +- 24 files changed, 546 insertions(+), 818 deletions(-) rename code/game/{objects/items/weapons/plant_bag.dm => machinery/kitchen/smartfridge.dm} (69%) rename code/game/objects/items/{weapons => stacks}/medical.dm (94%) rename code/game/objects/items/weapons/{wrappingpaper.dm => gift_wrappaper.dm} (72%) rename code/game/objects/items/weapons/{cameras.dm => photography.dm} (85%) delete mode 100644 code/game/objects/items/weapons/spray.dm delete mode 100644 code/game/objects/items/weapons/tanks/emergency.dm delete mode 100644 code/game/objects/items/weapons/toilets.dm rename code/game/objects/items/weapons/{tiles_wires.dm => wires.dm} (90%) create mode 100644 code/game/objects/structures/bedsheet_bin.dm rename code/{game/objects/items/weapons => modules/clothing/gloves}/stungloves.dm (100%) 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"