From fa416ce7771bba80c613acf5362673f036abb96b Mon Sep 17 00:00:00 2001 From: "tronaldnwn@hotmail.com" Date: Mon, 4 Apr 2011 20:10:34 +0000 Subject: [PATCH] Broborg and Service borg are fused into one robust little critter. Broborgs commented out. Service borgs lose paper and spacecash wad. Service borg gets an RSF. Rapid service fabricator, with three setting that work on simulated (normal) floors and tables: 1. Creates a wad of 10 Credits (because humans like dosh). Drains 200 each use. 2. Creates a drinking glass (to fill beer into). Drains 50 energy each use. 3. Creates a Piece of paper (for writing). Drains 10 energy each use. The malfunction lockers use new, robust (read as slightly nerfed), 2001 a Spess Odyssey spess suits. (Due to voting results) No 2001 jetpacks though, as they don't have item states. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1369 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/obj/weapon.dm | 17 ++++ code/game/objects/closets/malfunction.dm | 4 +- code/game/objects/items/weapons/RSF.dm | 83 +++++++++++++++++++ .../modules/mob/living/silicon/robot/robot.dm | 10 ++- .../mob/living/silicon/robot/robot_modules.dm | 24 ++++-- tgstation.dme | 1 + 6 files changed, 127 insertions(+), 12 deletions(-) create mode 100644 code/game/objects/items/weapons/RSF.dm diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index f9eaec9729d..de8c322c1f0 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -63,6 +63,18 @@ origin_tech = "materials=4" var/datum/effects/system/spark_spread/spark_system +/obj/item/weapon/rsf + name = "Rapid-Service-Fabricator (RSF)" + desc = "A device used to rapidly deploy service items." + icon = 'items.dmi' + icon_state = "rcd" + opacity = 0 + density = 0 + anchored = 0.0 + var/matter = 0 + var/mode = 1 + flags = TABLEPASS + w_class = 3.0 /obj/item/weapon/rcd_ammo name = "Compressed matter cartridge" @@ -1278,6 +1290,11 @@ Total SMES charging rate should not exceed total power generation rate, or an ov distribute_pressure = ONE_ATMOSPHERE*O2STANDARD //volume = 140 //jetpack sould be larger, but then it will never deplete -rastaf0 +/obj/item/weapon/tank/jetpack/voidjetpack + name = "Void Jetpack (oxygen)" + icon_state = "voidjetpack0" +// item_state = //I want my item state very soon Agouri. + /obj/item/weapon/tank/oxygen name = "Gas Tank (Oxygen)" icon_state = "oxygen" diff --git a/code/game/objects/closets/malfunction.dm b/code/game/objects/closets/malfunction.dm index 6057c853656..7781de41017 100644 --- a/code/game/objects/closets/malfunction.dm +++ b/code/game/objects/closets/malfunction.dm @@ -3,8 +3,8 @@ sleep(2) new /obj/item/weapon/tank/jetpack(src) new /obj/item/clothing/mask/breath(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) - new /obj/item/clothing/suit/space/syndicate(src) + new /obj/item/clothing/head/helmet/space/nasavoid(src) + new /obj/item/clothing/suit/space/nasavoid(src) new /obj/item/weapon/crowbar(src) new /obj/item/weapon/cell(src) new /obj/item/device/multitool(src) diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm new file mode 100644 index 00000000000..bbde1a252c3 --- /dev/null +++ b/code/game/objects/items/weapons/RSF.dm @@ -0,0 +1,83 @@ +/* +CONTAINS: +RSF + +*/ +/obj/item/weapon/rsf/New() + desc = "A RSF. It currently holds [matter]/30 fabrication-units." + return + +/obj/item/weapon/rsf/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if (istype(W, /obj/item/weapon/rcd_ammo)) + if ((matter + 10) > 30) + user << "The RSF cant hold any more matter." + return + del(W) + matter += 10 + playsound(src.loc, 'click.ogg', 10, 1) + user << "The RSF now holds [matter]/30 fabrication-units." + desc = "A RSF. It currently holds [matter]/30 fabrication-units." + return + +/obj/item/weapon/rsf/attack_self(mob/user as mob) + playsound(src.loc, 'pop.ogg', 50, 0) + if (mode == 1) + mode = 2 + user << "Changed dispensing mode to 'Drinking Glass'" + return + if (mode == 2) + mode = 3 + user << "Changed dispensing mode to 'Paper'" + return + if (mode == 3) + mode = 1 + user << "Changed dispensing mode to 'Dosh'" + return + // Change mode + +/obj/item/weapon/rsf/afterattack(atom/A, mob/user as mob) + if (!(istype(A, /obj/table) || istype(A, /turf/simulated/floor))) + return + + if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && mode == 1) + if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && matter >= 1) + user << "Dispensing Dosh..." + playsound(src.loc, 'click.ogg', 10, 1) + new /obj/item/weapon/spacecash/c10( A.loc ) + if (isrobot(user)) + var/mob/living/silicon/robot/engy = user + engy.cell.charge -= 200 //once money becomes useful, I guess changing this to a high ammount, like 500 units a kick, till then, enjoy dosh! + else + matter-- + user << "The RSF now holds [matter]/30 fabrication-units." + desc = "A RSF. It currently holds [matter]/30 fabrication-units." + return + + else if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && mode == 2) + if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && matter >= 1) + user << "Dispensing Drinking Glass..." + playsound(src.loc, 'click.ogg', 10, 1) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass( A.loc ) + if (isrobot(user)) + var/mob/living/silicon/robot/engy = user + engy.cell.charge -= 50 + else + matter-- + user << "The RSF now holds [matter]/30 fabrication-units." + desc = "A RSF. It currently holds [matter]/30 fabrication-units." + return + + else if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && mode == 3) + if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && matter >= 1) + user << "Dispensing Paper Sheet..." + playsound(src.loc, 'click.ogg', 10, 1) + new /obj/item/weapon/paper( A.loc ) + if (isrobot(user)) + var/mob/living/silicon/robot/engy = user + engy.cell.charge -= 10 + else + matter-- + user << "The RSF now holds [matter]/30 fabrication-units." + desc = "A RSF. It currently holds [matter]/30 fabrication-units." + return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 318149df9a6..1f31978a8a7 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -46,7 +46,7 @@ if(src.module) return //var/mod = input("Please, select a module!", "Robot", null, null) in list("Standard", "Engineering", "Medical", "Janitor", "Service", "Brobot") - var/mod = input("Please, select a module!", "Robot", null, null) in list("Standard", "Engineering", "Miner", "Janitor", "Brobot", "Service", "Security") + var/mod = input("Please, select a module!", "Robot", null, null) in list("Standard", "Engineering", "Miner", "Janitor","Service", "Security") if(src.module) return switch(mod) @@ -59,9 +59,11 @@ if("Service") src.module = new /obj/item/weapon/robot_module/butler(src) src.hands.icon_state = "service" - var/icontype = input("Select an icon!", "Robot", null, null) in list("Waitress", "Butler") + var/icontype = input("Select an icon!", "Robot", null, null) in list("Waitress", "Bro", "Butler") if(icontype== "Waitress") src.icon_state = "Service" + else if(icontype == "Bro") + src.icon_state = "Brobot" else src.icon_state = "Service2" src.modtype = "Butler" @@ -116,7 +118,7 @@ src.icon_state = "Janbot" src.modtype = "Jan" - if("Brobot") +/* if("Brobot") src.module = new /obj/item/weapon/robot_module/brobot(src) src.hands.icon_state = "brobot" var/icontype = input("Select an icon!", "Robot", null, null) in list("Standard", "Bro",) @@ -124,7 +126,7 @@ src.icon_state = "Brobot" else src.icon_state = "robot" - src.modtype = "Bro" + src.modtype = "Bro"*/ src.overlays -= "eyes" //Takes off the eyes that it started with updateicon() diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 36ca0cf58ff..68b95bb54a6 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -105,14 +105,24 @@ obj/item/weapon/robot_module/syndicate /obj/item/weapon/robot_module/butler/New() ..() - src.modules += new /obj/item/weapon/spacecash(src) + src.modules += new /obj/item/weapon/reagent_containers/food/drinks/beer(src) src.modules += new /obj/item/weapon/pen(src) - src.modules += new /obj/item/weapon/paper(src) + + var/obj/item/weapon/rsf/M = new /obj/item/weapon/rsf(src) + M.matter = 30 + src.modules += M + src.modules += new /obj/item/weapon/reagent_containers/robodropper(src) src.modules += new /obj/item/weapon/tray(src) src.modules += new /obj/item/weapon/reagent_containers/food/drinks/shaker(src) - src.emag = new /obj/item/weapon/reagent_containers/food/snacks/roburgerbig(src) - src.emag.name = "Last Meal" +// src.emag = new /obj/item/weapon/reagent_containers/food/snacks/roburgerbig(src) +// src.emag.name = "Last Meal" + src.emag = new /obj/item/weapon/reagent_containers/food/drinks/beer(src) + var/datum/reagents/R = new/datum/reagents(50) + src.emag.reagents = R + R.my_atom = src.emag + R.add_reagent("beer2", 50) + src.emag.name = "Mickey Finn's Special Brew" /obj/item/weapon/robot_module/security/New() @@ -135,6 +145,7 @@ obj/item/weapon/robot_module/syndicate R.add_reagent("lube", 1000) src.emag.name = "Lube spray" + /obj/item/weapon/robot_module/miner/New() ..() src.modules += new /obj/item/weapon/pickaxe/radius/jackhammer(src) @@ -143,7 +154,7 @@ obj/item/weapon/robot_module/syndicate src.modules += new /obj/item/weapon/borg/sight/meson(src) src.emag = new /obj/item/weapon/borg/stun(src) -/obj/item/weapon/robot_module/brobot/New() +/* /obj/item/weapon/robot_module/brobot/New() ..() src.modules += new /obj/item/weapon/reagent_containers/food/drinks/beer(src) src.modules += new /obj/item/weapon/reagent_containers/food/drinks/beer(src) @@ -153,12 +164,13 @@ obj/item/weapon/robot_module/syndicate src.emag.reagents = R R.my_atom = src.emag R.add_reagent("beer2", 50) - src.emag.name = "Mickey Finn's Special Brew" + src.emag.name = "Mickey Finn's Special Brew" */ //Merged with Service borg, not a death, just a transformation obj/item/weapon/robot_module/syndicate/New() src.modules += new /obj/item/weapon/gun/energy/crossbow(src) src.modules += new /obj/item/weapon/card/emag(src) + /obj/item/weapon/borg/stun name = "Electrified Arm" icon = 'decals.dmi' diff --git a/tgstation.dme b/tgstation.dme index d1f7e5779c9..18d20e1a1d2 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -543,6 +543,7 @@ #include "code\game\objects\items\weapons\mops_cleaners.dm" #include "code\game\objects\items\weapons\papers_bins.dm" #include "code\game\objects\items\weapons\RCD.dm" +#include "code\game\objects\items\weapons\RSF.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"