mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 12:29:46 +01:00
Landmark Shuttles (#8512)
The lifeless live again. Or in this case, what never actually lived here. Ports Baystation12/Baystation12#17460 probably for real this time. What this allows us to do is create shuttles on runtime and make shuttles easier by just making landmarks and a shuttle instead of areas and shuttles. Also allows runtime landmark creation via flares or whatever AND allows shuttles to use different landmarks at will. I removed most of the overmap stuff, I think. It shouldn't be hard to slam it in whenever we need to. Changes: "Shuttle code has been completely reworked." "Shuttles can now be modified to have more than one destination." "Shuttles now have a takeoff sound." "You can now throw mobs against walls to damage them. A lot." "You now need a neckgrab to throw mobs." "BEING UNBUCKLED DURING SHUTTLE LAUNCH IS DANGEROUS! Don't do it." "Adminghosts can now interact with all shuttles."
This commit is contained in:
@@ -148,36 +148,45 @@ datum/unit_test/zas_area_test/
|
||||
|
||||
// Here we move a shuttle then test it's area once the shuttle has arrived.
|
||||
|
||||
datum/unit_test/zas_supply_shuttle_moved
|
||||
/datum/unit_test/zas_supply_shuttle_moved
|
||||
name = "ZAS: Supply Shuttle (When Moved)"
|
||||
async = TRUE // We're moving the shuttle using built in procs.
|
||||
|
||||
var/datum/shuttle/ferry/supply/Shuttle = null
|
||||
var/datum/shuttle/autodock/ferry/supply/shuttle = null
|
||||
|
||||
var/testtime = 0 //Used as a timer.
|
||||
|
||||
datum/unit_test/zas_supply_shuttle_moved/start_test()
|
||||
/datum/unit_test/zas_supply_shuttle_moved/start_test()
|
||||
if(!SSshuttle)
|
||||
fail("The shuttle controller is not setup at time of test.")
|
||||
return 1
|
||||
if(!SSshuttle.shuttles.len)
|
||||
if(length(current_map.map_shuttles))
|
||||
fail("This map should have shuttles, but it doesn't!")
|
||||
return 1
|
||||
else
|
||||
pass("This map is not supposed to have any shuttles.")
|
||||
return 1
|
||||
|
||||
if(!shuttle_controller || !shuttle_controller.shuttles.len)
|
||||
fail("Shuttle Controller not setup at time of test.")
|
||||
|
||||
Shuttle = shuttle_controller.shuttles["Supply"]
|
||||
SScargo.movetime = 5 // Speed up the shuttle movement.
|
||||
|
||||
if(isnull(Shuttle))
|
||||
fail("Unable to locate the supply shuttle")
|
||||
shuttle = SScargo.shuttle
|
||||
if(isnull(shuttle))
|
||||
return 1
|
||||
|
||||
// Initiate the Move.
|
||||
Shuttle.short_jump(Shuttle.area_offsite, Shuttle.area_station)
|
||||
SScargo.movetime = 5 // Speed up the shuttle movement.
|
||||
shuttle.short_jump(shuttle.get_location_waypoint(!shuttle.location))
|
||||
|
||||
return 1
|
||||
|
||||
datum/unit_test/zas_supply_shuttle_moved/check_result()
|
||||
if(Shuttle.moving_status == SHUTTLE_IDLE && !Shuttle.at_station())
|
||||
/datum/unit_test/zas_supply_shuttle_moved/check_result()
|
||||
if(!shuttle)
|
||||
pass("This map has no supply shuttle.")
|
||||
return 1
|
||||
if(shuttle.moving_status == SHUTTLE_IDLE && !shuttle.at_station())
|
||||
fail("Shuttle Did not Move")
|
||||
return 1
|
||||
|
||||
if(!Shuttle.at_station())
|
||||
if(!shuttle.at_station())
|
||||
return 0
|
||||
|
||||
if(!testtime)
|
||||
@@ -187,15 +196,15 @@ datum/unit_test/zas_supply_shuttle_moved/check_result()
|
||||
return 0
|
||||
|
||||
|
||||
var/list/test = test_air_in_area(/area/supply/station)
|
||||
if(isnull(test))
|
||||
fail("Check Runtimed")
|
||||
return 1
|
||||
for(var/area/A in shuttle.shuttle_area)
|
||||
var/list/test = test_air_in_area(A.type)
|
||||
if(isnull(test))
|
||||
fail("Check Runtimed")
|
||||
return 1
|
||||
|
||||
if(test["result"] == SUCCESS)
|
||||
pass(test["msg"])
|
||||
else
|
||||
fail(test["msg"])
|
||||
switch(test["result"])
|
||||
if(SUCCESS) pass(test["msg"])
|
||||
else fail(test["msg"])
|
||||
return 1
|
||||
|
||||
#undef UT_NORMAL
|
||||
|
||||
Reference in New Issue
Block a user