From 5509d3b47c89cfa4ce8152ce9b26c22eb55d4ad9 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sun, 28 Nov 2021 02:55:51 +0100 Subject: [PATCH] [MIRROR] Bot code improvement (2/??) [MDB IGNORE] (#9717) * Bot code improvement (2/??) * Feex * More feex * Now we're good... Right? Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> Co-authored-by: GoldenAlpharex --- _maps/RandomZLevels/research.dmm | 31 +- _maps/map_files/Blueshift/BlueShift.dmm | 24 +- .../map_files/Deltastation/DeltaStation2.dmm | 5 +- .../Deltastation/DeltaStation2_skyrat.dmm | 5 +- .../map_files/IceBoxStation/IceBoxStation.dmm | 4 +- .../IceBoxStation/IceBoxStation_skyrat.dmm | 7 +- _maps/map_files/KiloStation/KiloStation.dmm | 19 +- .../KiloStation/KiloStation_skyrat.dmm | 19 +- _maps/map_files/MetaStation/MetaStation.dmm | 19 +- .../MetaStation/MetaStation_skyrat.dmm | 19 +- _maps/map_files/NSSJourney/NSSJourney.dmm | 4 +- .../WaterKiloStation/WaterKiloStation.dmm | 19 +- _maps/map_files/tramstation/tramstation.dmm | 11 +- .../tramstation/tramstation_skyrat.dmm | 11 +- code/__DEFINES/robots.dm | 67 ++- code/datums/brain_damage/special.dm | 2 +- code/datums/wires/mulebot.dm | 2 +- code/game/data_huds.dm | 2 +- code/game/machinery/computer/medical.dm | 2 +- code/game/objects/items/devices/PDA/PDA.dm | 2 +- code/game/objects/items/devices/PDA/cart.dm | 94 +++- .../revenant/revenant_abilities.dm | 6 +- .../mob/living/silicon/ai/robot_control.dm | 10 +- .../living/simple_animal/bot/SuperBeepsky.dm | 33 +- .../mob/living/simple_animal/bot/bot.dm | 438 ++++++++++-------- .../mob/living/simple_animal/bot/cleanbot.dm | 67 ++- .../living/simple_animal/bot/construction.dm | 10 +- .../mob/living/simple_animal/bot/ed209bot.dm | 22 +- .../mob/living/simple_animal/bot/firebot.dm | 65 ++- .../mob/living/simple_animal/bot/floorbot.dm | 34 +- .../mob/living/simple_animal/bot/honkbot.dm | 36 +- .../living/simple_animal/bot/hygienebot.dm | 31 +- .../mob/living/simple_animal/bot/medbot.dm | 50 +- .../mob/living/simple_animal/bot/mulebot.dm | 64 ++- .../mob/living/simple_animal/bot/secbot.dm | 65 +-- .../mob/living/simple_animal/bot/vibebot.dm | 40 +- .../file_system/programs/robocontrol.dm | 4 +- 37 files changed, 621 insertions(+), 722 deletions(-) diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 64f54fe8898..949781b4174 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -1811,20 +1811,6 @@ dir = 8 }, /area/awaymission/research/interior) -"eo" = ( -/obj/structure/chair/stool/directional/north, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/iron, -/area/awaymission/research/interior/security) "ep" = ( /obj/structure/rack, /obj/item/gun/ballistic/automatic/pistol/m1911, @@ -3652,14 +3638,7 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "A beefy variant of the standard securitron model."; - emagged = 1; - faction = list("nanotrasenprivate"); - health = 50; - maxHealth = 50; - name = "Officer Genesky" - }, +/mob/living/simple_animal/bot/secbot/genesky, /turf/open/floor/iron/white, /area/awaymission/research/interior/security) "ik" = ( @@ -4710,10 +4689,6 @@ /obj/item/pen/fourcolor, /turf/open/floor/iron, /area/awaymission/research/interior/dorm) -"kU" = ( -/obj/structure/chair/stool/directional/north, -/turf/open/floor/iron, -/area/awaymission/research/interior/dorm) "kV" = ( /obj/structure/closet/wardrobe/grey, /obj/machinery/light/directional/east, @@ -5620,10 +5595,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/awaymission/research/interior/maint) -"qo" = ( -/obj/structure/chair/stool/directional/east, -/turf/open/floor/iron, -/area/awaymission/research/interior/dorm) "qS" = ( /obj/structure/cable, /turf/open/floor/iron/dark, diff --git a/_maps/map_files/Blueshift/BlueShift.dmm b/_maps/map_files/Blueshift/BlueShift.dmm index 68876829858..5cd02fb6f27 100644 --- a/_maps/map_files/Blueshift/BlueShift.dmm +++ b/_maps/map_files/Blueshift/BlueShift.dmm @@ -11466,11 +11466,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold/supply/hidden/layer4{ dir = 4 }, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - desc = "A little medical robot, officially part of the Nanotrasen medical inspectorate. He looks somewhat underwhelmed."; - name = "Inspector Johnson" - }, +/mob/living/simple_animal/bot/medbot/autopatrol, /turf/open/floor/iron, /area/hallway/primary/upper) "bKh" = ( @@ -34849,11 +34845,7 @@ /area/medical/medbay/central) "faF" = ( /obj/structure/cable, -/mob/living/simple_animal/bot/cleanbot{ - auto_patrol = 1; - icon_state = "cleanbot1"; - name = "Mopficcer Sweepsky" - }, +/mob/living/simple_animal/bot/cleanbot/autopatrol, /turf/open/floor/iron/goonplaque, /area/hallway/primary/central/aft) "faV" = ( @@ -88978,10 +88970,7 @@ "naS" = ( /obj/machinery/light/directional/south, /obj/effect/turf_decal/vg_decals/numbers/one, -/mob/living/simple_animal/bot/secbot{ - auto_patrol = 1; - name = "Officer Tunnel Rat" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/iron, /area/maintenance/port) "naT" = ( @@ -134492,12 +134481,7 @@ /obj/machinery/atmospherics/pipe/smart/simple/supply/hidden/layer4{ dir = 4 }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too."; - health = 45; - maxHealth = 45; - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/catwalk_floor/plated/dark, /area/hallway/primary/central/fore) "tST" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index e6cc7bc55a4..bd340bcabc5 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -69356,10 +69356,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey."; - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/iron, /area/hallway/primary/starboard) "oEo" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm b/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm index cbf1f4e6d81..6a2c570a9a0 100644 --- a/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm @@ -13028,10 +13028,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey."; - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/iron, /area/hallway/primary/starboard) "bXA" = ( diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 90ca67d14d8..df0f670e17a 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -12561,9 +12561,7 @@ /area/construction) "cCh" = ( /obj/item/bedsheet/red, -/mob/living/simple_animal/bot/secbot/beepsky{ - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky, /turf/open/floor/plating, /area/security/processing) "cCj" = ( diff --git a/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm b/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm index dfeab9a4cad..8d7fc8d788c 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm @@ -51656,12 +51656,7 @@ /turf/open/openspace/icemoon, /area/science/mixing/chamber) "xPk" = ( -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too."; - health = 45; - maxHealth = 45; - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 92347678000..7dbb80c044c 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -19878,11 +19878,7 @@ dir = 1 }, /obj/effect/landmark/event_spawn, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - desc = "A little medical robot, officially part of the Nanotrasen medical inspectorate. He looks somewhat underwhelmed."; - name = "Inspector Johnson" - }, +/mob/living/simple_animal/bot/medbot/autopatrol, /turf/open/floor/iron/showroomfloor, /area/medical/medbay/lobby) "cgO" = ( @@ -27359,11 +27355,7 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/mob/living/simple_animal/bot/cleanbot{ - auto_patrol = 1; - icon_state = "cleanbot1"; - name = "Mopficcer Sweepsky" - }, +/mob/living/simple_animal/bot/cleanbot/autopatrol, /turf/open/floor/iron, /area/hallway/primary/starboard) "dAD" = ( @@ -50403,12 +50395,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too."; - health = 45; - maxHealth = 45; - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/iron/dark, /area/security/office) "lXd" = ( diff --git a/_maps/map_files/KiloStation/KiloStation_skyrat.dmm b/_maps/map_files/KiloStation/KiloStation_skyrat.dmm index 4fa17ab1580..0f24c5999f4 100644 --- a/_maps/map_files/KiloStation/KiloStation_skyrat.dmm +++ b/_maps/map_files/KiloStation/KiloStation_skyrat.dmm @@ -28689,11 +28689,7 @@ dir = 1 }, /obj/effect/landmark/event_spawn, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - desc = "A little medical robot, officially part of the Nanotrasen medical inspectorate. He looks somewhat underwhelmed."; - name = "Inspector Johnson" - }, +/mob/living/simple_animal/bot/medbot/autopatrol, /turf/open/floor/iron/showroomfloor, /area/medical/medbay/lobby) "cgO" = ( @@ -45605,11 +45601,7 @@ /obj/effect/turf_decal/tile/blue, /obj/machinery/light/directional/south, /obj/effect/turf_decal/stripes/corner, -/mob/living/simple_animal/bot/cleanbot{ - auto_patrol = 1; - icon_state = "cleanbot1"; - name = "Mopficcer Sweepsky" - }, +/mob/living/simple_animal/bot/cleanbot/autopatrol, /obj/machinery/button/door/directional/south{ id = "custodialwagon"; name = "Custodial Bay Toggle"; @@ -56362,12 +56354,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too."; - health = 45; - maxHealth = 45; - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/iron/dark, /area/security/office) "lXd" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 142cf1aba54..be16b8fc3b4 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2630,12 +2630,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too."; - health = 45; - maxHealth = 45; - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/iron, /area/security/brig) "awj" = ( @@ -22155,11 +22150,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - desc = "A little medical robot, officially part of the Nanotrasen medical inspectorate. He looks somewhat underwhelmed."; - name = "Inspector Johnson" - }, +/mob/living/simple_animal/bot/medbot/autopatrol, /turf/open/floor/iron/white/corner{ dir = 8 }, @@ -27923,11 +27914,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/mob/living/simple_animal/bot/cleanbot{ - auto_patrol = 1; - icon_state = "cleanbot1"; - name = "Mopficcer Sweepsky" - }, +/mob/living/simple_animal/bot/cleanbot/autopatrol, /turf/open/floor/iron, /area/hallway/primary/central) "hPP" = ( diff --git a/_maps/map_files/MetaStation/MetaStation_skyrat.dmm b/_maps/map_files/MetaStation/MetaStation_skyrat.dmm index 18314162474..c8da511af4c 100644 --- a/_maps/map_files/MetaStation/MetaStation_skyrat.dmm +++ b/_maps/map_files/MetaStation/MetaStation_skyrat.dmm @@ -640,11 +640,7 @@ /area/security/prison) "afW" = ( /obj/effect/turf_decal/tile/neutral, -/mob/living/simple_animal/bot/cleanbot{ - auto_patrol = 1; - icon_state = "cleanbot1"; - name = "Mopficcer Sweepsky" - }, +/mob/living/simple_animal/bot/cleanbot/autopatrol, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -2685,12 +2681,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too."; - health = 45; - maxHealth = 45; - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/iron, /area/security/brig) "awj" = ( @@ -22751,11 +22742,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - desc = "A little medical robot, officially part of the Nanotrasen medical inspectorate. He looks somewhat underwhelmed."; - name = "Inspector Johnson" - }, +/mob/living/simple_animal/bot/medbot/autopatrol, /turf/open/floor/iron/white/corner{ dir = 8 }, diff --git a/_maps/map_files/NSSJourney/NSSJourney.dmm b/_maps/map_files/NSSJourney/NSSJourney.dmm index 5cb767edd0f..5315608a4a9 100644 --- a/_maps/map_files/NSSJourney/NSSJourney.dmm +++ b/_maps/map_files/NSSJourney/NSSJourney.dmm @@ -34384,9 +34384,7 @@ /area/construction) "cCh" = ( /obj/item/bedsheet/red, -/mob/living/simple_animal/bot/secbot/beepsky{ - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/plating, /area/security/processing) "cCi" = ( diff --git a/_maps/map_files/WaterKiloStation/WaterKiloStation.dmm b/_maps/map_files/WaterKiloStation/WaterKiloStation.dmm index 534f591f213..20b6a8bec39 100644 --- a/_maps/map_files/WaterKiloStation/WaterKiloStation.dmm +++ b/_maps/map_files/WaterKiloStation/WaterKiloStation.dmm @@ -37997,11 +37997,7 @@ dir = 4 }, /obj/effect/turf_decal/stripes/corner, -/mob/living/simple_animal/bot/cleanbot{ - auto_patrol = 1; - icon_state = "cleanbot1"; - name = "Mopficcer Sweepsky" - }, +/mob/living/simple_animal/bot/cleanbot/autopatrol, /turf/open/floor/iron, /area/hallway/primary/starboard) "bZf" = ( @@ -41281,11 +41277,7 @@ dir = 1 }, /obj/effect/landmark/event_spawn, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - desc = "A little medical robot, officially part of the Nanotrasen medical inspectorate. He looks somewhat underwhelmed."; - name = "Inspector Johnson" - }, +/mob/living/simple_animal/bot/medbot/autopatrol, /turf/open/floor/iron/showroomfloor, /area/medical/medbay/central) "cgO" = ( @@ -69347,12 +69339,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too."; - health = 45; - maxHealth = 45; - name = "Officer Beepsky" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/iron/dark, /area/security/office) "lXd" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 10012306799..7dafa7be745 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -37417,10 +37417,7 @@ /obj/machinery/camera/directional/south{ c_tag = "Maintenance - East Tram Tunnel 4" }, -/mob/living/simple_animal/bot/secbot{ - auto_patrol = 1; - name = "Officer Tunnel Rat" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/iron, /area/maintenance/tram/right) "mna" = ( @@ -62109,11 +62106,7 @@ /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 1 }, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - desc = "A little medical robot. He looks somewhat overwhelmed."; - name = "Emergency T.R.A.M Unit" - }, +/mob/living/simple_animal/bot/medbot/autopatrol, /turf/open/floor/iron, /area/maintenance/tram/left) "vMm" = ( diff --git a/_maps/map_files/tramstation/tramstation_skyrat.dmm b/_maps/map_files/tramstation/tramstation_skyrat.dmm index 05d16865866..fcb47f5f04f 100644 --- a/_maps/map_files/tramstation/tramstation_skyrat.dmm +++ b/_maps/map_files/tramstation/tramstation_skyrat.dmm @@ -10206,11 +10206,7 @@ }, /obj/effect/turf_decal/trimline/yellow/warning, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - desc = "A little medical robot. He looks somewhat overwhelmed."; - name = "Emergency T.R.A.M Unit" - }, +/mob/living/simple_animal/bot/medbot/autopatrol, /turf/open/floor/iron, /area/maintenance/tram/left) "aMf" = ( @@ -39279,10 +39275,7 @@ /obj/machinery/camera/directional/south{ c_tag = "Maintenance - East Tram Tunnel 4" }, -/mob/living/simple_animal/bot/secbot{ - auto_patrol = 1; - name = "Officer Tunnel Rat" - }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, /turf/open/floor/iron, /area/maintenance/tram/right) "mna" = ( diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index 983aa2d91ae..af82e038a16 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -50,38 +50,72 @@ /** Simple Animal BOT defines */ +//Assembly defines +#define ASSEMBLY_FIRST_STEP 1 +#define ASSEMBLY_SECOND_STEP 2 +#define ASSEMBLY_THIRD_STEP 3 +#define ASSEMBLY_FOURTH_STEP 4 +#define ASSEMBLY_FIFTH_STEP 5 +#define ASSEMBLY_SIXTH_STEP 6 +#define ASSEMBLY_SEVENTH_STEP 7 +#define ASSEMBLY_EIGHTH_STEP 8 +#define ASSEMBLY_NINTH_STEP 9 + //Bot defines, placed here so they can be read by other things! /// Delay between movemements #define BOT_STEP_DELAY 4 /// Maximum times a bot will retry to step from its position #define BOT_STEP_MAX_RETRIES 5 - /// Default view range for finding targets. #define DEFAULT_SCAN_RANGE 7 +//Amount of time that must pass after a Commissioned bot gets saluted to get another. +#define BOT_COMMISSIONED_SALUTE_DELAY (60 SECONDS) + +//Bot mode defines displaying how Bots act +///The Bot is currently active, and will do whatever it is programmed to do. +#define BOT_MODE_ON (1<<0) +///The Bot is currently set to automatically patrol the station. +#define BOT_MODE_AUTOPATROL (1<<1) +///The Bot is currently allowed to be remote controlled by Silicon. +#define BOT_MODE_REMOTE_ENABLED (1<<2) +///The Bot is allowed to have a pAI placed in control of it. +#define BOT_MODE_PAI_CONTROLLABLE (1<<3) + +//Bot cover defines indicating the Bot's status +///The Bot's cover is open and can be modified/emagged by anyone. +#define BOT_COVER_OPEN (1<<0) +///The Bot's cover is locked, and cannot be opened without unlocking it. +#define BOT_COVER_LOCKED (1<<1) +///The Bot is emagged. +#define BOT_COVER_EMAGGED (1<<2) +///The Bot has been hacked by a Silicon, emagging them, but revertable. +#define BOT_COVER_HACKED (1<<3) //Bot types /// Secutritrons (Beepsky) -#define SEC_BOT (1<<0) +#define SEC_BOT "Securitron" /// ED-209s -#define ADVANCED_SEC_BOT (1<<1) +#define ADVANCED_SEC_BOT "ED-209" /// MULEbots -#define MULE_BOT (1<<2) +#define MULE_BOT "MULEbot" /// Floorbots -#define FLOOR_BOT (1<<3) +#define FLOOR_BOT "Floorbot" /// Cleanbots -#define CLEAN_BOT (1<<4) +#define CLEAN_BOT "Cleanbot" /// Medibots -#define MED_BOT (1<<5) +#define MED_BOT "Medibot" /// Honkbots & ED-Honks -#define HONK_BOT (1<<6) +#define HONK_BOT "Honkbot" /// Firebots -#define FIRE_BOT (1<<7) +#define FIRE_BOT "Firebot" /// Hygienebots -#define HYGIENE_BOT (1<<8) +#define HYGIENE_BOT "Hygienebot" /// Vibe bots -#define VIBE_BOT (1<<9) +#define VIBE_BOT "Vibebot" //Mode defines. If you add a new one make sure you update mode_name in /mob/living/simple_animal/bot + +// General Bot modes // /// Idle #define BOT_IDLE 0 /// Found target, hunting @@ -96,6 +130,8 @@ #define BOT_SUMMON 5 /// Currently moving #define BOT_MOVING 6 + +// Unique modes // /// Secbot - At target, preparing to arrest #define BOT_PREP_ARREST 7 /// Secbot - Arresting target @@ -134,12 +170,3 @@ #define SECBOT_CHECK_RECORDS (1<<3) ///Whether we will stun & cuff or endlessly stun #define SECBOT_HANDCUFF_TARGET (1<<4) - -/** Misc Robot defines */ - -//Assembly defines -#define ASSEMBLY_FIRST_STEP 0 -#define ASSEMBLY_SECOND_STEP 1 -#define ASSEMBLY_THIRD_STEP 2 -#define ASSEMBLY_FOURTH_STEP 3 -#define ASSEMBLY_FIFTH_STEP 4 diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 267bad5c265..857a6870190 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -395,7 +395,7 @@ /obj/effect/hallucination/simple/securitron/Initialize(mapload) . = ..() - name = pick("officer Beepsky", "officer Johnson", "officer Pingsky") + name = pick("Officer Beepsky", "Officer Johnson", "Officer Pingsky") START_PROCESSING(SSfastprocess, src) /obj/effect/hallucination/simple/securitron/process() diff --git a/code/datums/wires/mulebot.dm b/code/datums/wires/mulebot.dm index f2296641388..8351da231b0 100644 --- a/code/datums/wires/mulebot.dm +++ b/code/datums/wires/mulebot.dm @@ -20,7 +20,7 @@ if(!..()) return FALSE var/mob/living/simple_animal/bot/mulebot/mule = holder - if(mule.open) + if(mule.bot_cover_flags & BOT_COVER_OPEN) return TRUE /datum/wires/mulebot/on_cut(wire, mend) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 7a9a865c282..4aca3f140a9 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -430,7 +430,7 @@ Diagnostic HUDs! var/image/holder = hud_list[DIAG_STAT_HUD] var/icon/I = icon(icon, icon_state, dir) holder.pixel_y = I.Height() - world.icon_size - if(on) + if(bot_mode_flags & BOT_MODE_ON) holder.icon_state = "hudstat" else if(stat) //Generally EMP causes this holder.icon_state = "hudoffline" diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 33843d21df1..28a02db88e6 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -165,7 +165,7 @@ continue //only find medibots on the same z-level as the computer var/turf/bl = get_turf(M) if(bl) //if it can't find a turf for the medibot, then it probably shouldn't be showing up - bdat += "[M.name] - \[[bl.x],[bl.y]\] - [M.on ? "Online" : "Offline"]
" + bdat += "[M.name] - \[[bl.x],[bl.y]\] - [M.bot_mode_flags & BOT_MODE_ON ? "Online" : "Offline"]
" if(!bdat) dat += "
None detected
" else diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 20a3e469090..df286d56b2a 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -324,7 +324,7 @@ GLOBAL_LIST_EMPTY(PDAs) dat += "

Utilities

" dat += "