#include "scripts/common.txt"

bool g_bDanceTrigger = false;

kActor @g_pDieCampaigner = null;
kActor @g_pHuman1 = null;
kActor @g_pHuman2 = null;
kActor @g_pHuman3 = null;
kActor @g_pHuman4 = null;
kActor @g_pHuman5 = null;
kActor @g_pHuman6 = null;
kActor @g_pHuman7 = null;

kActor @g_pHunter = null;

kActor @g_pAlien1 = null;
kActor @g_pAlien2 = null;

kActor @g_pMech1 = null;
kActor @g_pMech2 = null;

kActor @g_pPurlin1 = null;
kActor @g_pPurlin2 = null;

kActor @g_pRider = null;

kActor @g_pDino = null;

kActor @g_pTRex = null;

kActor @g_pRaptor1 = null;
kActor @g_pRaptor2 = null;

kActor @g_pMantis = null;

// Initial dance trigger
$script 32001
{
    if(g_bDanceTrigger)
    {
        return;
    }

	@g_pDieCampaigner = World.GetActorByTID(402);
	
	@g_pHuman1 = World.GetActorByTID(403);
	@g_pHuman2 = World.GetActorByTID(404);
	@g_pHuman3 = World.GetActorByTID(405);
	@g_pHuman4 = World.GetActorByTID(406);
	@g_pHuman5 = World.GetActorByTID(407);
	@g_pHuman6 = World.GetActorByTID(408);
	@g_pHuman7 = World.GetActorByTID(409);
	@g_pHunter = World.GetActorByTID(410);
	@g_pAlien1 = World.GetActorByTID(411);
	@g_pAlien2 = World.GetActorByTID(412);
	@g_pMech1 = World.GetActorByTID(413);
	@g_pMech2 = World.GetActorByTID(414);
	@g_pPurlin1 = World.GetActorByTID(415);
	@g_pPurlin2 = World.GetActorByTID(416);
	@g_pRider = World.GetActorByTID(417);
	@g_pDino = World.GetActorByTID(418);
	@g_pTRex = World.GetActorByTID(419);
	@g_pRaptor1 = World.GetActorByTID(420);
	@g_pRaptor2 = World.GetActorByTID(421);
	
	@g_pMantis = World.GetActorByTID(422);
	
	//Game.PrintHelp("Hello, world!");
		
	Game.CallDelayedMapScript(32002, instigator, 0);
	
	Game.CallDelayedMapScript(32003, instigator, 0);
	Game.CallDelayedMapScript(32004, instigator, 0);
	Game.CallDelayedMapScript(32005, instigator, 0);
	Game.CallDelayedMapScript(32006, instigator, 0);
	Game.CallDelayedMapScript(32007, instigator, 0);
	Game.CallDelayedMapScript(32008, instigator, 0);
	Game.CallDelayedMapScript(32009, instigator, 0);
	Game.CallDelayedMapScript(32010, instigator, 0);
	Game.CallDelayedMapScript(32011, instigator, 0);
	Game.CallDelayedMapScript(32012, instigator, 0);
	Game.CallDelayedMapScript(32013, instigator, 0);
	Game.CallDelayedMapScript(32014, instigator, 0);
	Game.CallDelayedMapScript(32015, instigator, 0);
	Game.CallDelayedMapScript(32016, instigator, 0);
	Game.CallDelayedMapScript(32017, instigator, 0);
	Game.CallDelayedMapScript(32018, instigator, 0);
	Game.CallDelayedMapScript(32019, instigator, 0);
	Game.CallDelayedMapScript(32020, instigator, 0);
	Game.CallDelayedMapScript(32021, instigator, 0);
	
	Game.CallDelayedMapScript(32022, instigator, 0);
	
    g_bDanceTrigger = true;
}

// Dancing Campaigner
$script 32002
{
	g_pDieCampaigner.AnimState().Set(anim_aiDeathStand, 4.0f, ANF_LOOP);
    g_pDieCampaigner.RunFxEvent("Campaigner_Death");
    g_pDieCampaigner.SetHeadTrackTarget(null);
	g_pDieCampaigner.AnimState().ChangeSpeed(3);
    Game.CallDelayedMapScript(32002, instigator, 10);
}

// Dancing Human 1 (Exploding Flips)
$script 32003
{
	g_pHuman1.AnimState().Set(anim_aiDeathKnockback1, 4.0f, ANF_LOOP);
    g_pHuman1.SetHeadTrackTarget(null);
    delay(1.3f);
	g_pHuman1.AnimState().Set(anim_aiDeathKnockback2, 4.0f, ANF_LOOP);
    g_pHuman1.SetHeadTrackTarget(null);
    delay(1.3f);
	g_pHuman1.AnimState().Set(anim_aiDeathKnockback3, 4.0f, ANF_LOOP);
    g_pHuman1.SetHeadTrackTarget(null);
    delay(1.3f);
	g_pHuman1.AnimState().Set(anim_aiDeathKnockback4, 4.0f, ANF_LOOP);
    g_pHuman1.SetHeadTrackTarget(null);
    Game.CallDelayedMapScript(32003, instigator, 1.3);
}

// Dancing Human 2 (Range Attack 9)
$script 32004
{
	g_pHuman2.AnimState().Set(anim_aiRangeAttack9, 4.0f, ANF_LOOP);
    g_pHuman2.SetHeadTrackTarget(null);
	g_pHuman2.AnimState().ChangeSpeed(3);
}

// Dancing Human 3 (Range Attack 4)
$script 32005
{
	g_pHuman3.AnimState().Set(anim_aiRangeAttack4, 4.0f, ANF_LOOP);
    g_pHuman3.SetHeadTrackTarget(null);
	//g_pHuman3.AnimState().ChangeSpeed(3);
}

// Dancing Human 4 (Range Attack 5)
$script 32006
{
	g_pHuman4.AnimState().Set(anim_aiRangeAttack5, 4.0f, ANF_LOOP);
    g_pHuman4.SetHeadTrackTarget(null);
	g_pHuman4.AnimState().ChangeSpeed(2);
}

// Dancing Human 5 (Range Attack 6)
$script 32007
{
	g_pHuman5.AnimState().Set(anim_aiRangeAttack6, 4.0f, ANF_LOOP);
    g_pHuman5.SetHeadTrackTarget(null);
	g_pHuman5.AnimState().ChangeSpeed(3);
}

// Dancing Human 4 (Melee 5)
$script 32008
{
	g_pHuman6.AnimState().Set(anim_aiMelee5, 4.0f, ANF_LOOP);
    g_pHuman6.SetHeadTrackTarget(null);
	g_pHuman6.AnimState().ChangeSpeed(3);
}

// Dancing Human 5 (Range Attack 1)
$script 32009
{
	g_pHuman7.AnimState().Set(anim_aiRangeAttack1, 4.0f, ANF_LOOP);
    g_pHuman7.SetHeadTrackTarget(null);
    Game.CallDelayedMapScript(32009, instigator, 2);
}

// Dancing Hunter
$script 32010
{
	g_pHunter.AnimState().Set(anim_aiMelee1, 4.0f, ANF_LOOP);
    g_pHunter.SetHeadTrackTarget(null);
    Game.CallDelayedMapScript(32010, instigator, 1.2);
}

// Dancing Alien 1
$script 32011
{
	g_pAlien1.AnimState().Set(anim_aiDeathViolent, 4.0f, ANF_LOOP);
    g_pAlien1.SetHeadTrackTarget(null);
    Game.CallDelayedMapScript(32011, instigator, 3.3);
}

// Dancing Alien 2
$script 32012
{
	g_pAlien2.AnimState().Set(anim_aiRangeAttack1, 4.0f, ANF_LOOP);
    g_pAlien2.SetHeadTrackTarget(null);
}

// Dancing Mech 1
$script 32013
{
	g_pMech1.AnimState().Set(anim_aiTurn_L_Stand, 4.0f, ANF_LOOP);
    g_pMech1.SetHeadTrackTarget(null);
	g_pMech1.AnimState().ChangeSpeed(3);
}

// Dancing Mech 2
$script 32014
{
	g_pMech2.AnimState().Set(anim_aiDeathStand, 4.0f, ANF_LOOP);
    g_pMech2.SetHeadTrackTarget(null);
    Game.CallDelayedMapScript(32014, instigator, 1.2);
}

// Dancing Purlin 1
$script 32015
{
	g_pPurlin1.AnimState().Set(anim_aiTurn_B_Stand, 4.0f, ANF_LOOP);
    g_pPurlin1.SetHeadTrackTarget(null);
	g_pPurlin1.AnimState().ChangeSpeed(3);
}

// Dancing Purlin 2
$script 32016
{
	g_pPurlin2.AnimState().Set(anim_aiTurn_B_Walk, 4.0f, ANF_LOOP);
    g_pPurlin2.SetHeadTrackTarget(null);
    g_pPurlin2.AnimState().ChangeSpeed(2);
}

// Dancing Rider
$script 32017
{
	g_pRider.AnimState().Set(anim_aiRangeAttack1, 4.0f, ANF_LOOP);
    g_pRider.SetHeadTrackTarget(null);
    g_pRider.AnimState().ChangeSpeed(2);
}

// Dancing Dino
$script 32018
{
	g_pDino.AnimState().Set(anim_aiTurn_L_Stand, 4.0f, ANF_LOOP);
    g_pDino.SetHeadTrackTarget(null);
    delay(0.7f);
	g_pDino.AnimState().Set(anim_aiTurn_R_Stand, 4.0f, ANF_LOOP);
    g_pDino.SetHeadTrackTarget(null);
    Game.CallDelayedMapScript(32018, instigator, 0.7);
}

// Dancing T-Rex
$script 32019
{
	g_pTRex.AnimState().Set(anim_aiTurn_L_Stand, 4.0f, ANF_LOOP);
    g_pTRex.SetHeadTrackTarget(null);
	g_pTRex.AnimState().ChangeSpeed(2);
    delay(1.0f);
	g_pTRex.AnimState().Set(anim_aiTurn_R_Stand, 4.0f, ANF_LOOP);
    g_pTRex.SetHeadTrackTarget(null);
	g_pTRex.AnimState().ChangeSpeed(2);
    delay(1.0f);
	g_pTRex.AnimState().Set(anim_aiTurn_B_Stand, 4.0f, ANF_LOOP);
    g_pTRex.SetHeadTrackTarget(null);
	g_pTRex.AnimState().ChangeSpeed(2);
    Game.CallDelayedMapScript(32019, instigator, 1.0);
}

// Dancing Raptor 1
$script 32020
{
	g_pRaptor1.AnimState().Set(anim_aiTurn_L_Stand, 4.0f, ANF_LOOP);
    g_pRaptor1.SetHeadTrackTarget(null);
	//g_pRaptor1.AnimState().ChangeSpeed(2);
    delay(1.0f);
	g_pRaptor1.AnimState().Set(anim_aiTurn_R_Stand, 4.0f, ANF_LOOP);
    g_pRaptor1.SetHeadTrackTarget(null);
	//g_pRaptor1.AnimState().ChangeSpeed(2);
    delay(1.0f);
	g_pRaptor1.AnimState().Set(anim_aiTurn_B_Stand, 4.0f, ANF_LOOP);
    g_pRaptor1.SetHeadTrackTarget(null);
	//g_pRaptor1.AnimState().ChangeSpeed(2);
    Game.CallDelayedMapScript(32020, instigator, 1.0);
}

// Dancing Raptor 2
$script 32021
{
	g_pRaptor2.AnimState().Set(anim_aiTurn_B_Stand, 4.0f, ANF_LOOP);
    g_pRaptor2.SetHeadTrackTarget(null);
	//g_pRaptor2.AnimState().ChangeSpeed(2);
    delay(1.0f);
	g_pRaptor2.AnimState().Set(anim_aiTurn_L_Stand, 4.0f, ANF_LOOP);
    g_pRaptor2.SetHeadTrackTarget(null);
	//g_pRaptor2.AnimState().ChangeSpeed(2);
    delay(1.0f);
	g_pRaptor2.AnimState().Set(anim_aiTurn_R_Stand, 4.0f, ANF_LOOP);
    g_pRaptor2.SetHeadTrackTarget(null);
	//g_pRaptor2.AnimState().ChangeSpeed(2);
    Game.CallDelayedMapScript(32021, instigator, 1.0);
}

// Dancing Mantis
$script 32022
{
	g_pMantis.AnimState().Set(anim_mantisDamageRight, 4.0f, ANF_LOOP);
    g_pMantis.SetHeadTrackTarget(null);
	g_pRaptor2.AnimState().ChangeSpeed(2);
    delay(0.75f);
	g_pMantis.AnimState().Set(anim_mantisDamageLeft, 4.0f, ANF_LOOP);
    g_pMantis.SetHeadTrackTarget(null);
	g_pRaptor2.AnimState().ChangeSpeed(2);
	Game.CallDelayedMapScript(32022, instigator, 0.75f);
}