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"