#include "scripts/bp_common.txt"
#include "scripts/map/common_level_script.txt"

kActor @rocket;
kActor @rocket2;
//------------------------------------------------------------------------------------------------------------------------
// Start
//------------------------------------------------------------------------------------------------------------------------
$script 0 {
	ActorFactory.Spawn("BP_FallingRocks", 6889, 7192, 358, 0, 0);
	
	ActorFactory.Spawn("Emitter_BP_Fire_Tall2", 8038, 7201, 411, 0, 0);
	
	MapSpawnBeamTrapHorzX(kVec3(7646, 6907, 971), kVec3(7646, 6907, 971), 1.0f, 0);

	//18,17,20
	World.ChangeAreaFlag(17, AAF_WATER, true);
	World.ChangeAreaWaterHeight(17, 1300.0f);
	World.ChangeAreaFlag(18, AAF_WATER, true);
	World.ChangeAreaWaterHeight(18, 1300.0f);
	World.ChangeAreaFlag(20, AAF_WATER, true);
	World.ChangeAreaWaterHeight(20, 1300.0f);
	World.ChangeAreaFlag(21, AAF_WATER, true);
	World.ChangeAreaWaterHeight(21, 1300.0f);
	World.ChangeAreaFlag(22, AAF_WATER, true);
	World.ChangeAreaWaterHeight(22, 1300.0f);
	World.ChangeAreaFlag(23, AAF_WATER, true);
	World.ChangeAreaWaterHeight(23, 1300.0f);
	
	ActorFactory.Spawn("BP_FireTrap", 3675, 7959, 972, 0, 0);
	ActorFactory.Spawn("BP_FireTrap", 3575, 7959, 940, 0, 0);
	ActorFactory.Spawn("BP_FireTrap", 3475, 7959, 910, 0, 0);
	ActorFactory.Spawn("BP_FireTrap", 3375, 7959, 895, 0, 0);
	ActorFactory.Spawn("BP_FireTrap", 3245, 7959, 895, 0, 0);

	MapSpawnBeamTrapHorzY(kVec3(2452, 7811, 990), kVec3(3072, 7811, 900), 1.0f, 534);
	
	ActorFactory.Spawn("BP_FallingRocks", 2185, 7941, 952, 0, 0);
	
	// ActorFactory.Spawn("BP_FireTrap", -1657, 1857, 924, 0, 0);
	
	@rocket = ActorFactory.Spawn("DummyActor", -439, 4644, 699, 0, 0);
	@rocket2 = ActorFactory.Spawn("DummyActor", -1579, 4463, 945, 0, 0);
	
	ActorFactory.Spawn("BP_FallingRocks", -1789, 8056, 563, 0, 0);
	
	ActorFactory.Spawn("ShopPoint", 6011, 8102, 972, Math::Deg2Rad(90), 0); //Spawn Shop Portal
	
	SpawnMonkey(14, 3363, 5979, 358, -139);
	SpawnMonkey(15, 6184, 9010, 972, 90);
	SpawnMonkey(16, -1092, 4896, 256, 162);
	SpawnMonkey(17, -2027, 8253, 563, 175);
	
	//warp to end of level
	SpawnActor("BP_SpikeFence", 4749.836426f, 6710.336914f, 358.388977f, 1487, -2.356195f);
	SpawnActor("BP_FallingRocks", 5216.240723f, 6617.497559f, 358.388977f, 1035, 0.392699f);
	SpawnActor("BPGruntRange_Poacher", 7768.500977f, 8382.847656f, 972.744507f, 170, -2.748893f);
	SpawnActor("BPRaptor_Common", 6834.319824f, 7704.201660f, 972.744507f, 1134, 2.356194f);
	SpawnActor("BPHead", 5393.804688f, 7698.472168f, 1193.494629f, 1159, 1.570796f);
	SpawnActor("BPHead", 5337.679199f, 8549.675781f, 1216.176147f, 232, 1.570796f);
	SpawnActor("BPHead", 1981.179932f, 7761.772949f, 1025.430664f, 659, 0.785398f);
	SpawnActor("BPStalker", 3012.631348f, 3845.366699f, 767.988464f, 1925, 0.000000f);
	SpawnActor("BPStalker", 3094.449951f, 3846.418213f, 767.988464f, 1925, 0.000000f);
	SpawnActor("BPStalker", 3199.949219f, 3835.522705f, 767.988464f, 1928, 0.000000f);
	SpawnActor("BPStalker", 3301.397217f, 3854.193115f, 764.872986f, 1929, -0.392699f);
	SpawnActor("BPStalker", 3272.388428f, 4444.671387f, 768.181763f, 1940, -0.392699f);
	SpawnActor("BPStalker", 3787.347412f, 3964.523193f, 757.243896f, 1929, 0.000000f);
	SpawnActor("BPStalker", 3527.050049f, 4721.020020f, 768.167786f, 1948, -1.178097f);
	SpawnActor("BPStalker", 3110.854248f, 4643.074219f, 822.240112f, 1953, -0.392699f);
	SpawnActor("BPPurlin_MeleeCommon", -317.084015f, 1644.403320f, 972.744202f, 2456, 2.748894f);
	SpawnSolidActor("BPDestruct-PalmTree", 6497.229492f, 7919.644531f, 972.744507f, 217, 1.570796f);
	SpawnSolidActor("BPDestruct-PalmTree", 6467.802734f, 8315.762695f, 972.744507f, 217, -1.178097f);
	SpawnSolidActor("BPDestruct-PalmTree", 6289.963379f, 8310.995117f, 972.744507f, 201, -1.178097f);
	SpawnSolidActor("BPDestruct-PalmTree", 6113.478027f, 8314.346680f, 972.744507f, 201, -1.963496f);
	SpawnSolidActor("BPDestruct-PalmTree", 6276.749512f, 7915.785645f, 972.744507f, 202, 1.570796f);
	SpawnSolidActor("BPDestruct-PalmTree", 6098.873535f, 7925.762695f, 972.744507f, 202, 1.570796f);
	SpawnSolidActor("BPDestruct-PalmTree", 5889.246582f, 7925.791992f, 972.744507f, 1206, 1.570796f);
	SpawnSolidActor("BPDestruct-PalmTree", 5709.501953f, 7923.277344f, 972.744507f, 202, 1.570796f);
	SpawnSolidActor("BPDestruct-PalmTree", 5704.898438f, 8300.658203f, 972.744507f, 203, -1.570797f);
	SpawnSolidActor("BPDestruct-PalmTree", 5879.795410f, 8302.427734f, 972.744507f, 201, -1.570796f);
	SpawnSolidActor("BPDestruct-PalmTree", 7335.192871f, 7080.899902f, 972.744446f, 969, 3.141593f);
	SpawnSolidActor("BPDestruct-PalmTree", 3761.261963f, 7753.955566f, 972.744446f, 1452, 0.000000f);
	SpawnActor("BPHead", -874.511780f, 4377.728516f, 468.043579f, 2132, 2.356194f);
	SpawnActor("BPHead", -464.710968f, 4605.843750f, 490.606537f, 2140, 3.141593f);
	SpawnActor("BPHead", 152.112030f, 4926.000000f, 324.527924f, 1714, -2.748894f);
	SpawnActor("BPHead", -2141.309570f, 4651.929199f, 674.652161f, 2238, 1.963496f);
	
	Game.CallDelayedMapScript(1, instigator, 0);
}
//------------------------------------------------------------------------------------------------------------------------
// Update
//------------------------------------------------------------------------------------------------------------------------
$script 1 {
	// if (InAreaMinMax(kVec3(-2435, 3762, 100), kVec3(313, 5936, 1291)) and PlayLoop.Ticks() % 20 == 0) {
		// rocket.SpawnProjectile("fx/robot_rocket.kfx", kVec3(0, 0, 0), Player.Actor().Origin(), 0);
		// rocket2.SpawnProjectile("fx/robot_rocket.kfx", kVec3(0, 0, 0), Player.Actor().Origin(), 0);
	// }

	//black portal just before end of level portal
	if (InAreaMinMax(kVec3(-1201, 6717, 750), kVec3(-940, 6955, 1750))) {
		CheckStartArenaCinematic(1, 4, kVec3(-1066, 6974, 767), kVec3(-1066, 6774, 767));
	}
	
	UpdateGeneralGame();
	//ActorInWorldTestUpdate();
	$restart;
}
//------------------------------------------------------------------------------------------------------------------------
