From d6b2f4c3dd4544e45135d4fd8a3fe1d1c145d334 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Fri, 10 Nov 2023 20:10:52 +0100 Subject: [PATCH] Added a module to allow medihounds and securityhounds to ingest items upon installation. Does not interfer with the maximum 1 person limit. Allows a maximum of 4 items to be ingested with both modules (capability and capacity) insalled. --- .../objects/items/robot/robot_upgrades_vr.dm | 39 ++++++++++++++++++- .../mob/living/silicon/robot/robot_items.dm | 2 +- code/modules/research/prosfab_designs_vr.dm | 6 +++ 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/robot/robot_upgrades_vr.dm b/code/game/objects/items/robot/robot_upgrades_vr.dm index f034fbba59..4b80bdc03e 100644 --- a/code/game/objects/items/robot/robot_upgrades_vr.dm +++ b/code/game/objects/items/robot/robot_upgrades_vr.dm @@ -90,6 +90,43 @@ T.upgraded_capacity = TRUE return 1 +//adds the capability to ingest items to the sleeper modules as optional upgrade +/obj/item/borg/upgrade/bellycapupgrade + name = "robohound capability expansion module" + desc = "Used to enable a robohound's sleeper to ingest items. This only affects sleepers, and has no effect on compactor bellies. Can only be applied once." + icon_state = "cyborg_upgrade2" + item_state = "cyborg_upgrade" + require_module = 1 + +/obj/item/borg/upgrade/bellycapupgrade/action(var/mob/living/silicon/robot/R) + if(..()) return 0 + + if(!R.module)//can work + to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") + to_chat(usr, "There's no mounting point for the module!") + return 0 + + var/obj/item/device/dogborg/sleeper/T = locate() in R.module + if(!T) + T = locate() in R.module.contents + if(!T) + T = locate() in R.module.modules + if(!T) + to_chat(usr, "This robot has had its processor removed!") + return 0 + + if(T.compactor)// == TRUE, the belly unit is a compactor and no sleeper unit already + to_chat(R, "Maximum capability achieved for this hardpoint!") + to_chat(usr, "There's no room for another capability upgrade!") + return 0 + else + var/X = T.max_item_count*2 //double the capacity from 1 to 2 to allow sleepers to store some items, at most 4 with both upgrades + T.max_item_count = X //I couldn't do T = maxitem*2 for some reason. + to_chat(R, "Internal capability upgraded.") + to_chat(usr, "Internal capability upgraded.") + T.compactor = TRUE + return 1 + //Advanced RPED /obj/item/borg/upgrade/advrped name = "Advanced Rapid Part Exchange Device" @@ -202,4 +239,4 @@ if(T) to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") to_chat(usr, "There's no mounting point for the module!") - return 0 \ No newline at end of file + return 0 diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm index 17be8a5ee8..2b5ccc2366 100644 --- a/code/modules/mob/living/silicon/robot/robot_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_items.dm @@ -520,7 +520,7 @@ content = @{"[grid][row][cell][row][cell][b]Roboticist:[/b] [cell][field][br][row][cell][b]Assistant:[/b] [cell][field][/grid][br][small]Leave blank if none[/small][hr][br][grid][row][cell][row][cell][b]Cyborg / Robot:[/b] [cell][field][br][row][cell][b]Module:[/b] [cell][field][/grid][br][hr][br]The following form documents the full inspection of [[field]] as performed by [u][field][/u] in the Robotics Labratory aboard the [station] on [u][date][/u].[br][br][table][row][cell][b]General [/b][cell][center]Status[/center][cell]Comment[br][row][cell][b]- Laws [/b][cell][center][field][/center][cell][field][br][row][cell]-[cell][center]-[/center][cell]-[br][row][cell][b]Component external [/b][cell][center]-[/center][cell]-[br][row][cell][b]- Robot Endoskeleton [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Left Arm [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Right Arm [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Left Leg [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Right Leg [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Torso [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Head [/b][cell][center][field][/center][cell][field][br][row][cell]-[cell][center]-[/center][cell]-[br][row][cell][b]Component internal [/b][cell][center]-[/center][cell]-[br][row][cell][b]- Wiring [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Actuator [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Radio [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Power Cell [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Self-Diagnosis Unit [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Camera [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Binary Communication Device [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Armour Plating [/b][cell][center][field][/center][cell][field][/table][br][hr][grid][row][cell][list][b]Scientist signature:[/b][/list][cell][br][row][cell][list] - [large][field][/large][/list][cell][/grid]"} revision = "Revision: 1.1" if("SCI-3004") - content = @{"[grid][row][cell][row][cell][b]Roboticist:[/b] [cell][field][br][row][cell][b]Assistant:[/b] [cell][field][/grid][br][small]Leave blank if none[/small][hr][br][grid][row][cell][row][cell][b]Cyborg / Robot:[/b] [cell][field][br][row][cell][b]Module:[/b] [cell][field][/grid][br][hr][br]The following form documents the installed upgrades into [[field]] as performed by [u][field][/u] in the Robotics Labratory aboard the [station] on [u][date][/u].[br][br][table][row][cell][b]Lawset[/b][cell][center]Status[/center][cell]Comment[br][row][cell][b]- [field][/b][cell][center][field][/center][cell][field][br][row][cell]-[cell][center]-[/center][cell]-[br][row][cell][b]General [/b][cell][center]-[/center][cell]-[br][row][cell][b]- Rename Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Reset Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Emergency Resttart Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- VTEC Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Advanced Health Analyzer Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Robohound Capacity Expansion Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Size Alteration Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Size Gun Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Scrambled Equipment Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Language Module [/b][cell][center][field][/center][cell][field][br][row][cell]-[cell][center]-[/center][cell]-[br][row][cell][b]Security [/b][cell][center]-[/center][cell]-[br][row][cell][b]- Rapid Taser Cooling Module [/b][cell][center][field][/center][cell][field][br][row][cell]-[cell][center]-[/center][cell]-[br][row][cell][b]Mining [/b][cell][center]-[/center][cell]-[br][row][cell][b]- Proto-Kinetic Accelerator [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Diamond Drill [/b][cell][center][field][/center][cell][field][br][row][cell]-[cell][center]-[/center][cell]-[br][row][cell][b]Science [/b][cell][center]-[/center][cell]-[br][row][cell][b]- Advanced Rapid Part Exchange Device [/b][cell][center][field][/center][cell][field][/table][br][hr][grid][row][cell][list][b]Scientist signature:[/b][/list][cell][list][list][list][list][list][b]Research Director signature [small](In case of Law Change)[/small]:[/b][/list][/list][/list][/list][/list][cell][br][row][cell][list] - [large][field][/large][/list][cell][list][list][list][list][list]- [large][field][/large][/list][/list][/list][/list][/list][cell][br][row][cell][cell][cell][br][row][cell][list][/list][cell][list][list][list][list][list][b]Second Command signature [small](In case of Law Change)[/small]:[/b][/list][/list][/list][/list][/list][cell][br][row][cell][list][/list][cell][list][list][list][list][list]- [large][field][/large][/list][/list][/list][/list][/list][cell][/grid]"} + content = @{"[grid][row][cell][row][cell][b]Roboticist:[/b] [cell][field][br][row][cell][b]Assistant:[/b] [cell][field][/grid][br][small]Leave blank if none[/small][hr][br][grid][row][cell][row][cell][b]Cyborg / Robot:[/b] [cell][field][br][row][cell][b]Module:[/b] [cell][field][/grid][br][hr][br]The following form documents the installed upgrades into [[field]] as performed by [u][field][/u] in the Robotics Labratory aboard the [station] on [u][date][/u].[br][br][table][row][cell][b]Lawset[/b][cell][center]Status[/center][cell]Comment[br][row][cell][b]- [field][/b][cell][center][field][/center][cell][field][br][row][cell]-[cell][center]-[/center][cell]-[br][row][cell][b]General [/b][cell][center]-[/center][cell]-[br][row][cell][b]- Rename Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Reset Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Emergency Resttart Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- VTEC Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Advanced Health Analyzer Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Robohound Capacity Expansion Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Robohound Capability Expansion Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Size Alteration Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Size Gun Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Scrambled Equipment Module [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Language Module [/b][cell][center][field][/center][cell][field][br][row][cell]-[cell][center]-[/center][cell]-[br][row][cell][b]Security [/b][cell][center]-[/center][cell]-[br][row][cell][b]- Rapid Taser Cooling Module [/b][cell][center][field][/center][cell][field][br][row][cell]-[cell][center]-[/center][cell]-[br][row][cell][b]Mining [/b][cell][center]-[/center][cell]-[br][row][cell][b]- Proto-Kinetic Accelerator [/b][cell][center][field][/center][cell][field][br][row][cell][b]- Diamond Drill [/b][cell][center][field][/center][cell][field][br][row][cell]-[cell][center]-[/center][cell]-[br][row][cell][b]Science [/b][cell][center]-[/center][cell]-[br][row][cell][b]- Advanced Rapid Part Exchange Device [/b][cell][center][field][/center][cell][field][/table][br][hr][grid][row][cell][list][b]Scientist signature:[/b][/list][cell][list][list][list][list][list][b]Research Director signature [small](In case of Law Change)[/small]:[/b][/list][/list][/list][/list][/list][cell][br][row][cell][list] - [large][field][/large][/list][cell][list][list][list][list][list]- [large][field][/large][/list][/list][/list][/list][/list][cell][br][row][cell][cell][cell][br][row][cell][list][/list][cell][list][list][list][list][list][b]Second Command signature [small](In case of Law Change)[/small]:[/b][/list][/list][/list][/list][/list][cell][br][row][cell][list][/list][cell][list][list][list][list][list]- [large][field][/large][/list][/list][/list][/list][/list][cell][/grid]"} revision = "Revision: 1.4" if("SCI-3009") content = @{"[grid][row][cell][row][cell][b]Scientist:[/b] [cell][field][br][row][cell][b]Assistant:[/b] [cell][field] [/grid][br][small]Leave blank if none[/small][br][hr][br]The following table contains the Genetic Identifier and purpose of the Xenofloral genes as identified by [u][field][/u] in the Xenobotanical Labratory aboard the [station] on [u][date][/u].[br][br][table][cell][b]Genetic Identifier[/b][cell]Genetic Sequence[row][br][cell][b]-[field] [/b][cell][small][b]Hardiness:[/b] Endurance. Tolerance to toxins, pests, and/or weeds[/small][br][row][cell]-[b][field] [/b][cell][small][b]Vigour:[/b] How long the plant takes to mature and produce fruit. How much fruit it produces. Whether it can spread out of its tray(vine).[/small][br][row][cell]-[b][field] [/b][cell][small][b]Biochemistry:[/b] Which reagents the fruit contains; which gases the plant generates.[/small][br][row][cell][b]-[field] [/b][cell][small][b]Fruit:[/b] Whether the fruit is juicy and will splatter when thrown; whether the plant has stinging spines and will inject its reagents into anyone coming in contact with it.[/small][br][row][cell]-[b][field] [/b][cell][small][b]Diet:[/b] Whether the plant consumes gases in its environment; whether the plant is carnivorous (eats pests) or eats tray weeds; how much water and fertilizer it consumes.[/small][br][row][cell]-[b][field] [/b][cell][small][b]Metabolism:[/b] Whether the plant requires water or fertilizer. Whether it alters the ambient temperature.[/small][br][row][cell]-[b][field] [/b][cell][small][b]Environment:[/b] Plant's preferred temperature and light levels, and how much tolerance it has for changes in light level.[/small][row][cell]-[b][field] [/b][cell][small][b]Atmosphere:[/b] The plant's tolerance for changes in temperature and pressure away from its preferred levels.[/small][br][row][cell]-[b][field] [/b][cell][small][b]Output:[/b] Whether the plant produces electrical power or bioluminescent light.[/small][br][row][cell]-[b][field] [/b][cell][small][b]Appearance:[/b] The "shape" of the plant. Also affects whether it can be harvested only once or multiple times.[/small][br][row][cell]-[b][field] [/b][cell][small][b]Pigment:[/b] The color of the plant and its fruit; the color of any bioluminescence.[/small][br][row][cell][b]-[field] [/b][cell][small][b]Special:[/b] The ability to teleport the thrower or target when thrown.[/small][/table][br][hr][grid][row][cell][list][b]Scientist signature:[/b][/list][cell][br][row][cell][list] - [large][field][/large][/list][cell][/grid]"} diff --git a/code/modules/research/prosfab_designs_vr.dm b/code/modules/research/prosfab_designs_vr.dm index 7cc81d794a..d5195b28ad 100644 --- a/code/modules/research/prosfab_designs_vr.dm +++ b/code/modules/research/prosfab_designs_vr.dm @@ -21,6 +21,12 @@ materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000) build_path = /obj/item/borg/upgrade/bellysizeupgrade +/datum/design/item/prosfab/robot_upgrade/bellycapupgrade + name = "Robohound Capability Expansion Module" + id = "borg_hound_capability_module" + req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4) + materials = list(MAT_STEEL = 8000, MAT_GLASS = 6000) + build_path = /obj/item/borg/upgrade/bellycapupgrade /* Some job related borg upgrade modules, adding useful items for puppers.