From 0c8fedb0811ec52e1224cee3323f2ac62a73a931 Mon Sep 17 00:00:00 2001 From: Frenjo <2939692+Frenjo@users.noreply.github.com> Date: Tue, 8 Aug 2023 21:44:38 +0100 Subject: [PATCH] Cleans up robot_upgrades.dm, nerfs VTEC module Cleans up the formatting and style of robot_upgrades.dm. Reduces the VTEC module's movement delay reduction from 1 to 0.5 as it's currently way too fast. This value is made a simple define so it can easily be changed in future. Converts a lot of magic booleans to TRUE/FALSE. Inverts the boolean logic of the /obj/item/borg/upgrade/proc/action base so it's consistent with all derived types. --- .../objects/items/robot/robot_upgrades.dm | 213 ++++++++++-------- 1 file changed, 122 insertions(+), 91 deletions(-) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 75ef6516be..1bd89644b0 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -1,67 +1,81 @@ -// robot_upgrades.dm -// Contains various borg upgrades. - +/* + * Cyborg/Robot Upgrades + * + * Contains various robot upgrade modules. + */ /obj/item/borg/upgrade name = "borg upgrade module." desc = "Protected by FRM." icon = 'icons/obj/module.dmi' icon_state = "cyborg_upgrade" - var/locked = 0 - var/require_module = 0 - var/installed = 0 -/obj/item/borg/upgrade/proc/action(var/mob/living/silicon/robot/R) + var/locked = FALSE + var/require_module = FALSE + var/installed = FALSE + +/obj/item/borg/upgrade/proc/action(mob/living/silicon/robot/R) if(R.stat == DEAD) - to_chat(usr, "The [src] will not function on a deceased robot.") - return 1 - return 0 + to_chat(usr, SPAN_WARNING("The [src] will not function on a deceased robot.")) + return FALSE + return TRUE +/* + * Reset Module + */ /obj/item/borg/upgrade/reset name = "robotic module reset board" desc = "Used to reset a cyborg's module. Destroys any other upgrades applied to the robot." icon_state = "cyborg_upgrade1" item_state = "cyborg_upgrade" - require_module = 1 + require_module = TRUE + +/obj/item/borg/upgrade/reset/action(mob/living/silicon/robot/R) + if(!..()) + return FALSE -/obj/item/borg/upgrade/reset/action(var/mob/living/silicon/robot/R) - if(..()) - return 0 R.module_reset() - return 1 + return TRUE +/* + * Rename Module + */ /obj/item/borg/upgrade/rename name = "robot reclassification board" desc = "Used to rename a cyborg." icon_state = "cyborg_upgrade1" item_state = "cyborg_upgrade" + var/heldname = "default name" /obj/item/borg/upgrade/rename/attack_self(mob/user as mob) heldname = sanitizeSafe(input(user, "Enter new robot name", "Robot Reclassification", heldname), MAX_NAME_LEN) -/obj/item/borg/upgrade/rename/action(var/mob/living/silicon/robot/R) - if(..()) return 0 +/obj/item/borg/upgrade/rename/action(mob/living/silicon/robot/R) + if(!..()) + return FALSE + R.notify_ai(ROBOT_NOTIFICATION_NEW_NAME, R.name, heldname) R.name = heldname R.custom_name = heldname R.real_name = heldname + return TRUE - return 1 - +/* + * Restart Module + */ /obj/item/borg/upgrade/restart name = "robot emergency restart module" desc = "Used to force a restart of a disabled-but-repaired robot, bringing it back online." icon_state = "cyborg_upgrade1" item_state = "cyborg_upgrade" - -/obj/item/borg/upgrade/restart/action(var/mob/living/silicon/robot/R) +/obj/item/borg/upgrade/restart/action(mob/living/silicon/robot/R) if(R.health < 0) to_chat(usr, "You have to repair the robot before using this module!") - return 0 + return FALSE - if(!R.key) + if(isnull(R.key)) for(var/mob/observer/dead/ghost in player_list) if(ghost.mind && ghost.mind.current == R) R.key = ghost.key @@ -70,72 +84,79 @@ dead_mob_list -= R living_mob_list |= R R.notify_ai(ROBOT_NOTIFICATION_NEW_UNIT) - return 1 - + return TRUE +/* + * VTEC Module + */ +#define VTEC_MOVE_DELAY_REDUCTION 0.5 /obj/item/borg/upgrade/vtec name = "robotic VTEC Module" desc = "Used to kick in a robot's VTEC systems, increasing their speed." icon_state = "cyborg_upgrade2" item_state = "cyborg_upgrade" - require_module = 1 + require_module = TRUE -/obj/item/borg/upgrade/vtec/action(var/mob/living/silicon/robot/R) - if(..()) return 0 - - if(R.speed == -1) - return 0 - - R.speed-- - return 1 +/obj/item/borg/upgrade/vtec/action(mob/living/silicon/robot/R) + if(!..()) + return FALSE + if(R.speed == (initial(R.speed) - VTEC_MOVE_DELAY_REDUCTION)) + return FALSE + R.speed -= VTEC_MOVE_DELAY_REDUCTION + return TRUE +#undef VTEC_MOVE_DELAY_REDUCTION +/* + * Taser Cooling Module + * + * This actually reduces the recharge time, not the fire delay. + */ /obj/item/borg/upgrade/tasercooler name = "robotic Rapid Taser Cooling Module" desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate." icon_state = "cyborg_upgrade3" item_state = "cyborg_upgrade" - require_module = 1 - - -/obj/item/borg/upgrade/tasercooler/action(var/mob/living/silicon/robot/R) - if(..()) return 0 + require_module = TRUE +/obj/item/borg/upgrade/tasercooler/action(mob/living/silicon/robot/R) + if(!..()) + return FALSE if(!R.module || !(type in R.module.supported_upgrades)) - to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") + to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") to_chat(usr, "There's no mounting point for the module!") - return 0 + return FALSE var/obj/item/gun/energy/taser/mounted/cyborg/T = locate() in R.module - if(!T) + if(isnull(T)) T = locate() in R.module.contents - if(!T) + if(isnull(T)) T = locate() in R.module.modules - if(!T) - to_chat(usr, "This robot has had its taser removed!") - return 0 + if(isnull(T)) + to_chat(usr, SPAN_WARNING("This robot has had its taser removed!")) + return FALSE if(T.recharge_time <= 2) to_chat(R, "Maximum cooling achieved for this hardpoint!") to_chat(usr, "There's no room for another cooling unit!") - return 0 - + return FALSE else T.recharge_time = max(2 , T.recharge_time - 4) + return TRUE - return 1 - +/* + * Jetpack Module + */ /obj/item/borg/upgrade/jetpack name = "robot jetpack" desc = "A carbon dioxide jetpack suitable for low-gravity operations." icon_state = "cyborg_upgrade3" item_state = "cyborg_upgrade" - require_module = 1 + require_module = TRUE -/obj/item/borg/upgrade/jetpack/action(var/mob/living/silicon/robot/R) - if(..()) +/obj/item/borg/upgrade/jetpack/action(mob/living/silicon/robot/R) + if(!..()) return FALSE - if(R.module.jetpack) to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") to_chat(usr, "There's no mounting point for the module!") @@ -145,66 +166,76 @@ R.internals = R.module.jetpack return TRUE +/* + * Advanced Health Scanner Module + */ /obj/item/borg/upgrade/advhealth name = "advanced health analyzer module" desc = "A carbon dioxide jetpack suitable for low-gravity operations." icon_state = "cyborg_upgrade3" item_state = "cyborg_upgrade" - require_module = 1 + require_module = TRUE -/obj/item/borg/upgrade/advhealth/action(var/mob/living/silicon/robot/R) - if(..()) return 0 +/obj/item/borg/upgrade/advhealth/action(mob/living/silicon/robot/R) + if(!..()) + return FALSE var/obj/item/healthanalyzer/advanced/T = locate() in R.module - if(!T) + if(isnull(T)) T = locate() in R.module.contents - if(!T) + if(isnull(T)) T = locate() in R.module.modules - if(!T) - R.module.modules += new/obj/item/healthanalyzer/advanced(R.module) - return 1 - if(T) - to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") + if(isnull(T)) + R.module.modules.Add(new /obj/item/healthanalyzer/advanced(R.module)) + return TRUE + if(!isnull(T)) + to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") to_chat(usr, "There's no mounting point for the module!") - return 0 + return FALSE -/obj/item/borg/upgrade/syndicate/ +/* + * Scrambled Equipment Module + */ +/obj/item/borg/upgrade/syndicate name = "scrambled equipment module" desc = "Unlocks new and often deadly module specific items of a robot" icon_state = "cyborg_upgrade3" item_state = "cyborg_upgrade" - require_module = 1 + require_module = TRUE -/obj/item/borg/upgrade/syndicate/action(var/mob/living/silicon/robot/R) - if(..()) return 0 +/obj/item/borg/upgrade/syndicate/action(mob/living/silicon/robot/R) + if(!..()) + return FALSE + if(R.emag_items) + return FALSE - if(R.emag_items == 1) - return 0 - - R.emag_items = 1 - return 1 + R.emag_items = TRUE + return TRUE +/* + * Language Module + */ /obj/item/borg/upgrade/language name = "language module" desc = "Used to let cyborgs other than clerical or service speak a variety of languages." icon_state = "cyborg_upgrade3" item_state = "cyborg_upgrade" -/obj/item/borg/upgrade/language/action(var/mob/living/silicon/robot/R) - if(..()) return 0 +/obj/item/borg/upgrade/language/action(mob/living/silicon/robot/R) + if(!..()) + return FALSE - R.add_language(LANGUAGE_SOL_COMMON, 1) - R.add_language(LANGUAGE_TRADEBAND, 1) - R.add_language(LANGUAGE_SIVIAN, 1) - R.add_language(LANGUAGE_UNATHI, 1) - R.add_language(LANGUAGE_SIIK, 1) - R.add_language(LANGUAGE_AKHANI, 1) - R.add_language(LANGUAGE_SKRELLIAN, 1) - R.add_language(LANGUAGE_SKRELLIANFAR, 0) - R.add_language(LANGUAGE_GUTTER, 1) - R.add_language(LANGUAGE_SCHECHI, 1) - R.add_language(LANGUAGE_ROOTLOCAL, 1) - R.add_language(LANGUAGE_TERMINUS, 1) - R.add_language(LANGUAGE_ZADDAT, 1) - - return 1 + R.add_language(LANGUAGE_SOL_COMMON, TRUE) + R.add_language(LANGUAGE_TRADEBAND, TRUE) + R.add_language(LANGUAGE_SIVIAN, TRUE) + R.add_language(LANGUAGE_UNATHI, TRUE) + R.add_language(LANGUAGE_SIIK, TRUE) + R.add_language(LANGUAGE_AKHANI, TRUE) + R.add_language(LANGUAGE_SKRELLIAN, TRUE) + R.add_language(LANGUAGE_SKRELLIANFAR, FALSE) + R.add_language(LANGUAGE_GUTTER, TRUE) + R.add_language(LANGUAGE_SCHECHI, TRUE) + R.add_language(LANGUAGE_ROOTLOCAL, TRUE) + R.add_language(LANGUAGE_TERMINUS, TRUE) + R.add_language(LANGUAGE_ZADDAT, TRUE) + return TRUE