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

const float TUNNEL_RAMP_RADIUS = 150.0f * 150.0f;
const kVec3 TUNNEL_RAMP_OFFSET = kVec3(150.0f, 0.0f, 0.0f);

class BP_Tunnel_Ramp : ScriptObject
{
    kActor@ self;
	kActor@ hummer;
	kActor@ tank;
	bool collidedHummer;
	bool collidedTank;

	//------------------------------------------------------------------------------------------------------------------------
    BP_Tunnel_Ramp(kActor @actor)
    {
        @self = actor;
		collidedHummer = false;
		collidedTank = false;
    }
	//------------------------------------------------------------------------------------------------------------------------
	void OnPostBeginLevel()
	{
		@hummer = World.GetActorByTID(1001);
		@tank = World.GetActorByTID(1002);
	}
	//------------------------------------------------------------------------------------------------------------------------
    void OnSpawn()
	{
	}
	//------------------------------------------------------------------------------------------------------------------------
    void OnTick(void)
    {
		//check for collision with hummer and tank
		kVec3 pos = self.Origin() + TUNNEL_RAMP_OFFSET;
		if (hummer !is null && !collidedHummer && IsActorOnRamp(hummer))
		{
			collidedHummer = true;
			OnCustomCollide(hummer);
		}
		if (tank !is null && !collidedTank && IsActorOnRamp(tank))
		{
			collidedTank = true;
			OnCustomCollide(tank);
		}
    }
	//------------------------------------------------------------------------------------------------------------------------
	bool IsActorOnRamp(kActor@ actor)
	{
		kVec3 pos = actor.Origin();
		kVec3 p = self.Origin();
		return (pos.x >= p.x - 0.0f && pos.x <= p.x + 307.0f) && (pos.y >= p.y - 0.0f && pos.y <= p.y + 307.0f);
	}
	//------------------------------------------------------------------------------------------------------------------------
	void OnCustomCollide(kActor@ actor)
	{
		if (Game.GetCurrentMapID() == 128) // in tunnel chase map
		{
			Game.CallDelayedMapScript(8, actor, 0.0f);
		}
	}
	//------------------------------------------------------------------------------------------------------------------------
};
