From a2b4b6420ad2878464f91595910d367e128ee813 Mon Sep 17 00:00:00 2001 From: adrian Date: Wed, 22 Apr 2020 15:33:01 -0300 Subject: [PATCH] Fixes turret controllers (#26280) * Fixes turrets controllers. With unit testing! * oops * yeah no --- code/game/machinery/turrets.dm | 15 ++++++++++----- code/modules/unit_tests/__unit_test_includes.dm | 1 + code/modules/unit_tests/turretid.dm | 11 +++++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 code/modules/unit_tests/turretid.dm diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index c364949099a..cd745e97df0 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -360,14 +360,19 @@ ..() if(!control_area) control_area = get_area(src) - else if(istext(control_area)) - for(var/area/A in areas) - if(A.name && A.name == control_area) - control_area = A - break else if(ispath(control_area)) control_area = locate(control_area) + else if(istext(control_area)) + var/path = text2path(control_area) + if(path) + control_area = locate(path) + else + for(var/area/A in areas) + if(cmptext(A.name, control_area)) + control_area = A + break + ASSERT(isarea(control_area)) updateTurrets() //Updates the turrets and the icon if an instance is made that is not set to stun by default /obj/machinery/turretid/emag(mob/user) diff --git a/code/modules/unit_tests/__unit_test_includes.dm b/code/modules/unit_tests/__unit_test_includes.dm index 1b88152dced..efba09a88d4 100644 --- a/code/modules/unit_tests/__unit_test_includes.dm +++ b/code/modules/unit_tests/__unit_test_includes.dm @@ -6,4 +6,5 @@ #include "reagent_recipe_collisions.dm" #include "slipping.dm" #include "names.dm" +#include "turretid.dm" #endif diff --git a/code/modules/unit_tests/turretid.dm b/code/modules/unit_tests/turretid.dm new file mode 100644 index 00000000000..b0b55867906 --- /dev/null +++ b/code/modules/unit_tests/turretid.dm @@ -0,0 +1,11 @@ +/datum/unit_test/turretid +/datum/unit_test/turretid/start() + var/turf/centre = locate(/area/shuttle/arrival/station)// the arrival shuttle area should exist on every station + var/obj/machinery/turretid/turret_controller = new(centre) + ASSERT(isarea(turret_controller.control_area)) + turret_controller.control_area = "Arrival Shuttle" + turret_controller.New() + ASSERT(isarea(turret_controller.control_area)) + turret_controller.control_area = "/area/shuttle/arrival/station" + turret_controller.New() + ASSERT(isarea(turret_controller.control_area))