From 4e8ee11c6edef84761f21865019c2620c6b9abef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AF=D1=80=D0=BE=D1=81=D0=BB=D0=B0=D0=B2?= Date: Sat, 15 Jul 2017 18:25:44 +0500 Subject: [PATCH] Robotics module packs overhaul (#2880) (#2949) Reposting from PR #2880 because of branches conflict Finally did find a way to add blueprints to construction cyborg. Engineering cyborg modules are now more related to construct things inside of an area, while construction cyborg is now have all tools which might be needed to create new areas (+APC's, air alarms and such). A bucket and a matter decomplier to a janiborg. Maint.drones did receive their wires limit being lowered from 30 to 15, wood and plastic dispensers capacity is multiplied by 2, and a standart engi module pack is now contains 45 wire length instead of 30 --- code/game/objects/items/blueprints.dm | 7 +- .../objects/items/stacks/tiles/tile_types.dm | 60 +++++++++++++---- .../mob/living/silicon/robot/robot_modules.dm | 64 +++++++++++++++++-- html/changelogs/HetNeSS-PR-2949.yml | 12 ++++ 4 files changed, 122 insertions(+), 21 deletions(-) create mode 100644 html/changelogs/HetNeSS-PR-2949.yml diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 419dd7817a0..15d4f64735b 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -19,10 +19,11 @@ var/const/ROOM_ERR_SPACE = -1 var/const/ROOM_ERR_TOOLARGE = -2 -/obj/item/blueprints/attack_self(mob/M as mob) - if (!istype(M,/mob/living/carbon/human)) - M << "This stack of blue paper means nothing to you." //monkeys cannot into projecting +/obj/item/blueprints/attack_self(mob/user as mob) + if (use_check(user)) + user << "This stack of blue paper means nothing to you." return + add_fingerprint(user) interact() return diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 4f4b53c7c0a..5555425c778 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -47,14 +47,6 @@ throw_range = 20 flags = 0 -/obj/item/stack/tile/wood/cyborg - name = "wood floor tile synthesizer" - desc = "A device that makes wood floor tiles." - uses_charge = 1 - charge_costs = list(250) - stacktype = /obj/item/stack/tile/wood - build_type = /obj/item/stack/tile/wood - /* * Carpets */ @@ -117,12 +109,58 @@ icon_state = "tile_freezer" matter = list("plastic" = 937.5) +/* + * Cyborg modules + */ + +/obj/item/stack/tile/wood/cyborg + name = "wood floor tile synthesizer" + desc = "A device that makes wood floor tiles." + uses_charge = 1 + charge_costs = list(250) + stacktype = /obj/item/stack/tile/wood + build_type = /obj/item/stack/tile/wood + /obj/item/stack/tile/floor/cyborg name = "floor tile synthesizer" - desc = "A device that makes floor tiles." - gender = NEUTER - matter = null + desc = "A device that makes steel floor tiles." uses_charge = 1 charge_costs = list(250) stacktype = /obj/item/stack/tile/floor build_type = /obj/item/stack/tile/floor + +/obj/item/stack/tile/floor_white/cyborg + name = "white floor tile synthesizer" + desc = "A device that makes plastic white floor tiles." + matter = null + uses_charge = 1 + charge_costs = list(250) + stacktype = /obj/item/stack/tile/floor_white + build_type = /obj/item/stack/tile/floor_white + +/obj/item/stack/tile/floor_freezer/cyborg + name = "freezer floor tile synthesizer" + desc = "A device that makes plastic tiles which are mainly used to build freezer rooms." + matter = null + uses_charge = 1 + charge_costs = list(250) + stacktype = /obj/item/stack/tile/floor_freezer + build_type = /obj/item/stack/tile/floor_freezer + +/obj/item/stack/tile/floor_dark/cyborg + name = "dark floor tile synthesizer" + desc = "A device that makes plasteel dark floor tiles." + matter = null + uses_charge = 1 + charge_costs = list(250) + stacktype = /obj/item/stack/tile/floor_dark + build_type = /obj/item/stack/tile/floor_dark + +/obj/item/stack/tile/carpet/cyborg + name = "carpet tile synthesizer" + desc = "A device that makes carpet tiles." + matter = null + uses_charge = 1 + charge_costs = list(250) + stacktype = /obj/item/stack/tile/carpet + build_type = /obj/item/stack/tile/carpet diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index dd3968fb426..f5ad9598d28 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -241,6 +241,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/reagent_containers/dropper/industrial(src) src.modules += new /obj/item/weapon/reagent_containers/syringe(src) src.modules += new /obj/item/device/reagent_scanner/adv(src) + src.modules += new /obj/item/weapon/autopsy_scanner(src) // an autopsy scanner src.emag = new /obj/item/weapon/reagent_containers/spray(src) src.emag.reagents.add_reagent("pacid", 250) src.emag.name = "Polyacid spray" @@ -379,14 +380,21 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/device/pipe_painter(src) src.modules += new /obj/item/weapon/gripper/no_use/loader(src) src.modules += new /obj/item/weapon/gripper(src) + src.modules += new /obj/item/device/t_scanner(src) // to check underfloor wiring + src.modules += new /obj/item/device/analyzer(src) // to check air pressure in the area + src.modules += new /obj/item/device/lightreplacer(src) // to install lightning in the area + src.modules += new /obj/item/device/floor_painter(src)// to make america great again (c) + src.modules += new /obj/item/weapon/inflatable_dispenser(src) // to stop those pesky humans being entering the zone src.malfAImodule += new /obj/item/weapon/rtf(src) - var/datum/matter_synth/metal = new /datum/matter_synth/metal() - var/datum/matter_synth/plasteel = new /datum/matter_synth/plasteel() - var/datum/matter_synth/glass = new /datum/matter_synth/glass() + var/datum/matter_synth/metal = new /datum/matter_synth/metal(80000) + var/datum/matter_synth/plasteel = new /datum/matter_synth/plasteel(40000) + var/datum/matter_synth/glass = new /datum/matter_synth/glass(60000) + var/datum/matter_synth/wire = new /datum/matter_synth/wire(60) synths += metal synths += plasteel synths += glass + synths += wire var/obj/item/stack/material/cyborg/steel/M = new (src) M.synths = list(metal) @@ -404,6 +412,14 @@ var/global/list/robot_modules = list( RG.synths = list(metal, glass) src.modules += RG + var/obj/item/stack/tile/floor/cyborg/FT = new /obj/item/stack/tile/floor/cyborg(src) // to add floor over the metal rods lattice + FT.synths = list(metal) + src.modules += FT + + var/obj/item/stack/cable_coil/cyborg/C = new /obj/item/stack/cable_coil/cyborg(src) // Let there be light electric said and after that did cut the wire + C.synths = list(wire) + src.modules += C + /obj/item/weapon/robot_module/engineering/general/New() ..() src.modules += new /obj/item/device/flash(src) @@ -429,11 +445,15 @@ var/global/list/robot_modules = list( var/datum/matter_synth/metal = new /datum/matter_synth/metal(60000) var/datum/matter_synth/glass = new /datum/matter_synth/glass(40000) var/datum/matter_synth/plasteel = new /datum/matter_synth/plasteel(20000) - var/datum/matter_synth/wire = new /datum/matter_synth/wire() + var/datum/matter_synth/wire = new /datum/matter_synth/wire(45) + var/datum/matter_synth/wood = new /datum/matter_synth/wood(20000) + var/datum/matter_synth/plastic = new /datum/matter_synth/plastic(15000) synths += metal synths += glass synths += plasteel synths += wire + synths += wood + synths += plastic var/obj/item/weapon/matter_decompiler/MD = new /obj/item/weapon/matter_decompiler(src) MD.metal = metal @@ -468,6 +488,30 @@ var/global/list/robot_modules = list( PL.synths = list(plasteel) src.modules += PL + var/obj/item/stack/material/cyborg/wood/W = new (src) + W.synths = list(wood) + src.modules += W + + var/obj/item/stack/material/cyborg/plastic/PS = new (src) + PS.synths = list(plastic) + src.modules += PS + + var/obj/item/stack/tile/wood/cyborg/FWT = new (src) + FWT.synths = list(wood) + src.modules += FWT + + var/obj/item/stack/tile/floor_white/cyborg/FTW = new (src) + FTW.synths = list(plastic) + src.modules += FTW + + var/obj/item/stack/tile/floor_freezer/cyborg/FTF = new (src) + FTF.synths = list(plastic) + src.modules += FTF + + var/obj/item/stack/tile/floor_dark/cyborg/FTD = new (src) + FTD.synths = list(plasteel) + src.modules += FTD + /obj/item/weapon/robot_module/security name = "security robot module" channels = list("Security" = 1) @@ -502,6 +546,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/gun/energy/taser/mounted/cyborg(src) src.modules += new /obj/item/taperoll/police(src) src.modules += new /obj/item/device/holowarrant(src) + src.modules += new /obj/item/weapon/book/manual/security_space_law(src) // book of security space law src.emag = new /obj/item/weapon/gun/energy/laser/mounted(src) /obj/item/weapon/robot_module/security/respawn_consumable(var/mob/living/silicon/robot/R, var/amount) @@ -537,6 +582,8 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/storage/bag/trash(src) src.modules += new /obj/item/weapon/mop(src) src.modules += new /obj/item/device/lightreplacer/advanced(src) + src.modules += new /obj/item/weapon/reagent_containers/glass/bucket(src) // a hydroponist's bucket + src.modules += new /obj/item/weapon/matter_decompiler(src) // free drone remains for all src.emag = new /obj/item/weapon/reagent_containers/spray(src) src.emag.reagents.add_reagent("lube", 250) src.emag.name = "Lube spray" @@ -591,6 +638,8 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/robot_harvester(src) src.modules += new /obj/item/weapon/material/kitchen/rollingpin(src) src.modules += new /obj/item/weapon/material/knife(src) + src.modules += new /obj/item/weapon/soap(src) // a cheap bar of soap + src.modules += new /obj/item/weapon/reagent_containers/glass/rag(src) // a rag for.. yeah.. the primary tool of bartender var/obj/item/weapon/rsf/M = new /obj/item/weapon/rsf(src) M.stored_matter = 30 @@ -661,6 +710,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) src.modules += new /obj/item/weapon/gripper/miner(src) src.modules += new /obj/item/weapon/mining_scanner(src) + src.modules += new /obj/item/device/gps/mining(src) // for locating itself in the deep space src.emag = new /obj/item/weapon/gun/energy/plasmacutter/mounted(src) ..() @@ -791,9 +841,9 @@ var/global/list/robot_modules = list( var/datum/matter_synth/metal = new /datum/matter_synth/metal(25000) var/datum/matter_synth/glass = new /datum/matter_synth/glass(25000) - var/datum/matter_synth/wood = new /datum/matter_synth/wood(2000) - var/datum/matter_synth/plastic = new /datum/matter_synth/plastic(1000) - var/datum/matter_synth/wire = new /datum/matter_synth/wire(30) + var/datum/matter_synth/wood = new /datum/matter_synth/wood(4000) + var/datum/matter_synth/plastic = new /datum/matter_synth/plastic(2000) + var/datum/matter_synth/wire = new /datum/matter_synth/wire(15) synths += metal synths += glass synths += wood diff --git a/html/changelogs/HetNeSS-PR-2949.yml b/html/changelogs/HetNeSS-PR-2949.yml new file mode 100644 index 00000000000..6a378190c1d --- /dev/null +++ b/html/changelogs/HetNeSS-PR-2949.yml @@ -0,0 +1,12 @@ +# Your name. +author: HetNeSS +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added an autopsy scanner to mediborg; a t-ray scanner, an air analyzer, a lightreplacer, a floor painter, and an inflatable dispenser to a construction borg; Added a wood and a plastic synthesizers to an engineering borg. Engineering borgs can now produce a wooden, white, dark and a freezer floor tiles. Security borgs are now equipped with a book of space laws. Janiborgs did receive a bucket and a matter decomplier. Service borgs did receive a bar of soap and a rag. Mining-related cyborgs now are equipped with a GPS tool." + - balance: "Re-counted a value of an internal metal, plasteel, glass and wire storage of construction, engineering borgs and a maintenance drone."