#include "scripts/common.txt"
#include "scripts/BP_common.txt"
#include "scripts/BP_MapCommon.txt"

//Tag IDs
//1000: Start Warp
//1001: Projectile Trap 1 Target
//1002: Save Point
//1003: Pillar 1 + button
//1004: Arena Button 1
//1005: Arena Button 2
//1006: Arena Button 3
//1007: Arena Button 4
//1008: Arena Pillar
//1009: Arena Warp
//1010: Warp To Next Map
//1011: 
//1012: Projectile Trap 2 Target
//1013: Projectile Trap 3 Target
//1014: Warp near rocket launcher
//1015: Arena Enemies Drop
//1016: 

array<kActor@> arenaButtons(4);
kActor@ leap;
//------------------------------------------------------------------------------------------------------------------------
// Start Map
//------------------------------------------------------------------------------------------------------------------------
$script 0
{
	StartMap();
	
	@leap = World.GetActorByTID(1011);
	for (int i = 0; i < int(arenaButtons.length()); i++)
	{
		@arenaButtons[i] = World.GetActorByTID(1004 + i);
	}
	Game.CallDelayedMapScript(1, instigator, 0); //Update Map	
}
//------------------------------------------------------------------------------------------------------------------------
// Update Map
//------------------------------------------------------------------------------------------------------------------------
$script 1
{
	TickMap();
	$restart;
}
//------------------------------------------------------------------------------------------------------------------------
bool IsAllArenaButtonsPressed()
{
	for (int i = 0; i < int(arenaButtons.length()); i++)
	{
		if (!arenaButtons[i].IsPersistentMarked())
		{
			return false;
		}
	}
	return true;
}
//------------------------------------------------------------------------------------------------------------------------
void PressArenaButton(kActor@ instigator, int index)
{
	if (!arenaButtons[index].IsPersistentMarked())
	{
		World.TriggerActorsByTID(instigator, 1004 + index);
		if (IsAllArenaButtonsPressed())
		{
			World.TriggerActorsByTID(instigator, 1008); //Arena Pillar
		}
	}
}
//------------------------------------------------------------------------------------------------------------------------
// On Arena Button 1
//------------------------------------------------------------------------------------------------------------------------
$script 10000
{
	PressArenaButton(instigator, 0);
}
//------------------------------------------------------------------------------------------------------------------------
// On Arena Button 2
//------------------------------------------------------------------------------------------------------------------------
$script 10001
{
	PressArenaButton(instigator, 1);
}
//------------------------------------------------------------------------------------------------------------------------
// On Arena Button 3
//------------------------------------------------------------------------------------------------------------------------
$script 10002
{
	PressArenaButton(instigator, 2);
}
//------------------------------------------------------------------------------------------------------------------------
// On Arena Button 4
//------------------------------------------------------------------------------------------------------------------------
$script 10003
{
	PressArenaButton(instigator, 3);
}
//------------------------------------------------------------------------------------------------------------------------
