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

//------------------------------------------------------------------------------------------------------------------------
// Start
//------------------------------------------------------------------------------------------------------------------------
$script 0 {
	World.TriggerActorsByTID(instigator, 1012); //3 guys
	World.TriggerActorsByTID(instigator, 1039); //2 guys after save point
	
	MapSpawnBeamTrapHorzX(kVec3(-10739, -376, 188), kVec3(-10739, -1032, 7), 1.0f, 0);

	kActor @fenceSpike = ActorFactory.Spawn("BP_SpikeFence", -10523, 283, 184, 0, 0);
	fenceSpike.Yaw() = Math::Deg2Rad(90);
	kActor @fenceSpike2 = ActorFactory.Spawn("BP_SpikeFence", -10220, 602, 184, 0, 0);
	fenceSpike2.Yaw() = Math::Deg2Rad(90);
	kActor @fenceSpike3 = ActorFactory.Spawn("BP_SpikeFence", -4907, 2169, 102, 0, 0);
	fenceSpike3.Yaw() = Math::Deg2Rad(90);
	
	ActorFactory.Spawn("BP_FallingRocks", -8745, -1923, 430, 0, 0);
	ActorFactory.Spawn("BP_FallingRocks", -8431, -865, 205, 0, 0);

	ActorFactory.Spawn("Emitter_Misc2", -6596, 521, 103, 0, 0);
	ActorFactory.Spawn("Emitter_Misc2", -6673, 943, 103, 0, 0);
	
	World.ChangeAreaFlag(168, AAF_WATER, true);
	World.ChangeAreaWaterHeight(168, 400.0f);
	
	MapSpawnBeamTrapHorzY(kVec3(-3513, 9908, -50), kVec3(-3513, 9908, 60), 1.25f, 0);
	
	ActorFactory.Spawn("BP_FallingRocks", -2372, 9945, 10, 0, 0);
	
	kActor @fenceSpike4 = ActorFactory.Spawn("BP_SpikeFence", -304, 8580, 104, 0, 0);
	fenceSpike4.Yaw() = Math::Deg2Rad(90);

	ActorFactory.Spawn("BP_FallingRocks", 752, 8032, 179, 0, 0);
	// ActorFactory.Spawn("BP_FallingRocks", 1262, 8032, 179, 0, 0);

	kActor @fenceSpike5 = ActorFactory.Spawn("BP_SpikeFence", 1309, 5884, 104, 0, 0);
	fenceSpike5.Yaw() = Math::Deg2Rad(-90);

	ActorFactory.Spawn("BP_FallingRocks", 2303, 5786, 104, 0, 0);
	
	World.ChangeAreaArg(16, 4, 5);
	World.ChangeAreaArg(16, 5, 256);
	World.ChangeAreaFlag(16, AAF_DAMAGE, true);
	
	ActorFactory.Spawn("Emitter_Misc2", 6350, 8680, -609, 0, 0);
	
	ActorFactory.Spawn("BP_FireTrap", 7963, 8182, 163, 0, 0);
	
	ActorFactory.Spawn("ShopPoint", -6281, 5171, 102, Math::Deg2Rad(0), 0); //Spawn Shop Portal

	//Pistol Challenge Totem
	if (!HasChallengeKey(3)) {
		SpawnSolidActor("BPChallengeKeyPistol", -9713, -408, 547, 5580);
	}
	SpawnSolidActor("BPChallengeTotemPistol", -312, 9558, -102, 641, Math::Deg2Rad(0));

	SpawnMonkey(0, -11488, -1204, -24, -106);
	SpawnMonkey(1, -11163, -2519, -24, 180);
	SpawnMonkey(2, -9843, -3686, 307, 0);
	SpawnMonkey(3, -10093, -2901, -20, -43);
	SpawnMonkey(4, -2228, 2660, 102, -143);
	SpawnMonkey(5, -6900, 3741, 102, -90);
	SpawnMonkey(6, -5701, 6692, 102, -180);
	SpawnMonkey(7, -2633, 10385, -51, 90);
	SpawnMonkey(8, -1320, 8842, -102, -135);
	SpawnMonkey(9, 3526, 8556, 104, -117);
	SpawnMonkey(10, 3892, 10778, 1843, -148);
	SpawnMonkey(11, 595, 6896, 460, 57);
	SpawnMonkey(12, 2304, 5773, 104, 116);
	SpawnMonkey(13, 4116, 8861, 409, 93);

	SpawnActor("Emitter_BP_Fire_Tall2", -10175, 309, 184);
	SpawnActor("Emitter_BP_Fire_Tall2", -10467, 31, 184);
	SpawnActor("Emitter_BP_Fire_Tall2", -9903, 603, 184);
	
	//opening to village
	
	
	// SpawnActor("Testing", -11743, -2050, -122, 6013, 0);
	
	SpawnActor("BPHead", -11879.617188f, -2611.719238f, 72.435776f, 6009, -0.000000f);
	SpawnActor("BPHead", -11711.739258f, -2562.975098f, 99.056938f, 6010, 0.000000f);
	SpawnActor("BPHead", -11233.293945f, -2247.414307f, 72.880333f, 6152, -1.178097f);
	SpawnActor("BPDetail-Tree4", -11986.918945f, -2420.421631f, -122.871193f, 6014, -2.748894f);
	SpawnActor("Plant13", -11942.778320f, -2582.936035f, -122.871201f, 6009, -2.356194f);
	SpawnSolidActor("BPDestruct-PalmTree", -12035.314453f, -2803.588623f, -122.871208f, 6010, -2.356194f);
	SpawnSolidActor("BPDestruct-PalmTree", -11981.234375f, -2218.329834f, -122.871185f, 6013, -2.748894f);
	SpawnActor("Plant1", -11762.315430f, -2995.578613f, -122.871216f, 5988, 2.748894f);
	SpawnActor("Plant6", -11617.110352f, -2761.475098f, -122.871208f, 6009, 2.356195f);
	SpawnActor("Plant7", -11962.797852f, -2224.206787f, -122.871193f, 6013, -3.141593f);
	SpawnActor("Plant7", -11640.849609f, -3697.593994f, -33.652950f, 6166, 2.748894f);
	SpawnActor("Plant8", -11746.603516f, -3201.433594f, -60.507626f, 6168, 1.570796f);
	SpawnSolidActor("BPDetail-Tree5", -12087.759766f, -3610.941650f, -122.789223f, 6194, 2.356195f);
	SpawnActor("BPDetail-Tree4", -12180.253906f, -3435.889648f, -122.871239f, 6194, 2.748894f);
	SpawnActor("BPDetail-Tree2", -11208.974609f, -3794.917725f, -20.478682f, 6156, 1.963495f);
	SpawnSolidActor("BPDestruct-PalmTree", -10751.051758f, -3788.854248f, -20.478680f, 5973, 1.570796f);
	SpawnActor("Plant2", -10056.884766f, -3768.077393f, -20.478678f, 5946, 2.748893f);
	SpawnSolidActor("BPDetail-Tree3", -10277.489258f, -3346.341797f, -20.478662f, 5926, 3.141593f);
	SpawnSolidActor("BPDetail-Tree3", -10126.447266f, -3837.956787f, -20.478682f, 5907, 0.785398f);
	SpawnActor("BPDetail_Weeds01", -10058.467773f, -4024.528320f, 307.236145f, 6163, -1.963496f);
	SpawnActor("BPDetail_Weeds02", -9989.691406f, -3866.192871f, 307.236145f, 5889, -2.356195f);
	SpawnActor("BPDetail_Weeds02", -10159.702148f, -3824.060547f, 307.236145f, 6158, -0.392699f);
	SpawnActor("BPDetail_Weeds01", -10457.763672f, -3968.689209f, 307.236145f, 5921, -1.178097f);
	SpawnActor("Plant7", -9734.488281f, -3693.947021f, 307.236176f, 5873, 2.748894f);
	SpawnSolidActor("Animal_Deer", -11362.654297f, -3643.325684f, -20.881693f, 6180, 0.785398f);
	SpawnSolidActor("BPDetail_CaveRock06", -10155.612305f, -3957.425049f, 307.236145f, 6142, 2.356194f);
	SpawnActor("BPGruntGuardGrenade", -10518.916016f, -3972.627930f, 307.236145f, 6158, -1.178097f);
	SpawnActor("BPGruntGuardRange-Poacher", -9598.944336f, -3676.646729f, -20.478672f, 5848, -0.392699f);
	SpawnActor("BPHead", -10513.648438f, -2225.608154f, 303.260651f, 5852, 1.963495f);
	SpawnActor("BPHead", -10418.583984f, -2748.797363f, 285.567383f, 5923, 1.570796f);
	SpawnActor("BPRaptor_Common", -9855.032227f, -2642.586182f, -20.478630f, 5852, 1.963496f);
	SpawnSolidActor("BPDetail_CaveRock08", -9011.566406f, -2597.401367f, -20.478634f, 5859, 0.392699f);
	SpawnSolidActor("BPDestruct-PalmTree", -9110.629883f, -2588.850586f, -20.478634f, 5859, -1.178097f);
	SpawnActor("Plant1", -9104.399414f, -2644.308594f, -20.478636f, 5860, 0.000000f);
	SpawnActor("BP_SpikeFence", -9179.011719f, -3233.564453f, -20.478655f, 5851, 2.356195f);
	SpawnActor("BPDetail_Bones02", -9659.797852f, -2230.453369f, -20.478617f, 5857, 2.748894f);
	SpawnActor("Plant6", -9826.202148f, -2888.927002f, -20.478638f, 5854, -2.748893f);
	SpawnActor("BPDetail-Tree6", -10786.854492f, -976.945801f, -20.175100f, 5769, 0.000000f);
	SpawnActor("BP_FallingRocks", -10185.605469f, -1068.258057f, 51.210892f, 5393, -0.785398f);
	SpawnActor("BP_SpikeFence", -9708.088867f, -1112.065552f, 51.210888f, 5395, 3.141593f);
	SpawnActor("BPGruntGuardRange-Poacher", -9960.312500f, -171.068420f, 563.203125f, 5424, -1.178097f);
	SpawnActor("BPPurlin_MeleeCommon", -9044.732422f, -15.170166f, 184.335938f, 5413, -0.392699f);
	SpawnActor("Plant6", -8954.680664f, 561.922974f, 184.335953f, 4925, 0.785398f);
	SpawnActor("Plant8", -8785.137695f, 565.026123f, 184.335968f, 4929, 0.392699f);
	SpawnSolidActor("BPDetail-Tree5", -8812.076172f, 306.097107f, 184.335953f, 4928, -2.748894f);
	SpawnActor("Plant15", -8829.004883f, 323.961151f, 184.335953f, 4925, 1.570796f);
	SpawnSolidActor("BPDestruct-PalmTree", -9218.544922f, -388.892578f, 184.335922f, 5405, -3.141593f);
	SpawnSolidActor("BPDetail_CaveRock07", -8906.522461f, -402.006775f, 184.335922f, 5373, -1.178097f);
	SpawnSolidActor("BPDestruct-PalmTree", -8655.685547f, -1082.553589f, 696.832214f, 5431, -1.963495f);
	SpawnSolidActor("BPDestruct-PalmTree", -8371.714844f, -1260.323486f, 696.696655f, 5431, 1.178097f);
	SpawnSolidActor("Animal_Boar", -8841.456055f, 483.266815f, 184.335968f, 4925, 0.392699f);
	SpawnSolidActor("Animal_Deer", -7191.970703f, -732.462585f, 102.392548f, 5163, 1.178097f);
	SpawnSolidActor("BPDetail-Tree3", -7547.160645f, -1362.023071f, 102.392525f, 5153, -0.000000f);
	SpawnActor("BPDetail_VillageFence01", -6796.064941f, 318.994537f, 102.392586f, 5145, 0.000000f);
	SpawnActor("BPDetail_VillageFence01", -6563.230957f, 322.597046f, 102.392586f, 5140, 3.141593f);
	SpawnActor("BPDetail_VillageFence01", -6534.710938f, 1219.443848f, 102.392624f, 4715, 0.000000f);
	SpawnActor("BPDetail_VillageFence01", -6530.398926f, 1272.163330f, 102.392639f, 4692, 0.000000f);
	SpawnActor("Plant8", -5940.329102f, 2020.968262f, 102.392670f, 4676, 1.178097f);
	SpawnSolidActor("BPDestruct-PalmTree", -6205.986816f, 1833.199219f, 102.392654f, 4691, 0.392699f);
	SpawnActor("BPRaptor_Common", -7008.336914f, 1052.469971f, 102.392624f, 4730, 2.356194f);
	SpawnActor("BPRaptor_Common", -6688.074707f, 1552.788940f, 102.392647f, 4692, -2.748893f);
	SpawnActor("BPHead", -6062.505859f, 528.096313f, 458.040009f, 4847, -2.356194f);
	SpawnActor("BPGruntGuardRange-Poacher", -6320.148926f, 357.609558f, 191.630875f, 4846, -2.356194f);
	SpawnActor("BPGruntGuardRange-Poacher", -6268.553223f, 729.324219f, 427.592499f, 4753, -2.356194f);

	//village to first warp
	SpawnActor("BPGruntRange_Poacher", -3861.587158f, 1455.444824f, 102.392639f, 4459, -0.392699f);
	SpawnActor("BPGruntRange_Poacher", -3938.674316f, 2359.004639f, 102.392677f, 4452, 3.141593f);
	SpawnActor("BPRaptor_Common", -4688.169434f, 1747.123047f, 102.392654f, 4472, -0.000000f);
	SpawnActor("BPFish", -4246.354004f, 2913.869141f, 168.030853f, 3951, -0.748956f);
	SpawnActor("BPFish", -3956.280518f, 2805.076172f, 250.840149f, 3956, 2.757062f);
	SpawnActor("BPFish", -4010.105957f, 3277.288574f, 101.131866f, 3955, 2.370018f);
	SpawnActor("BPFish", -4016.148926f, 3668.513428f, 184.782928f, 3953, -2.202257f);
	SpawnActor("BPFish", -4367.129883f, 3547.189453f, 149.994080f, 3985, -1.310673f);
	SpawnActor("BPFish", -4200.116211f, 3206.459961f, 115.274658f, 3983, 2.677265f);
	SpawnActor("BPFish", -4861.615723f, 3611.332520f, 177.242493f, 3922, -1.143540f);
	SpawnActor("BPFish", -5076.765625f, 3823.454346f, 320.930695f, 3930, -0.032673f);
	SpawnActor("BPFish", -5333.357422f, 3660.594971f, 141.745361f, 3973, -2.640823f);
	SpawnActor("BPFish", -5548.413086f, 4093.081055f, 163.711578f, 3968, 1.204487f);
	SpawnActor("BPFish", -5570.675293f, 4674.106445f, 183.963776f, 3926, -0.935566f);
	SpawnActor("BPFish", -6078.472168f, 4323.044922f, 139.286133f, 4170, 2.454841f);
	SpawnActor("BPFish", -6453.796387f, 4020.316406f, 257.434143f, 4158, -2.302788f);
	SpawnActor("BPFish", -5815.841309f, 3869.883789f, 192.989471f, 4153, 0.659106f);
	SpawnActor("BPFish", -5715.028809f, 3270.634277f, 93.099678f, 4149, -1.284283f);
	SpawnActor("BPFish", -4845.880371f, 3901.302979f, 185.945007f, 3975, -0.502655f);
	SpawnSolidActor("Animal_Deer", -7241.703613f, 4585.962402f, 102.304886f, 4010, -0.392699f);
	SpawnActor("BPRaptor_Common", -6978.228027f, 3581.459229f, 102.304848f, 4017, 2.356195f);
	SpawnActor("BPRaptor_Common", -7218.011230f, 4296.916504f, 102.304878f, 4010, 1.963495f);
	SpawnActor("BPRaptor_Common", -6957.674805f, 4931.165039f, 102.304909f, 3567, 1.963495f);
	SpawnActor("BPGruntGuardRange-Poacher", -5413.041992f, 7991.726074f, -102.362930f, 2250, 1.178097f);
	SpawnActor("BPGruntGuardRange-Poacher", -5075.821289f, 7621.765625f, 164.590179f, 2496, 1.570796f);
	SpawnActor("BPGruntGuardRange-Poacher", -4850.920898f, 6321.120605f, 242.431915f, 3383, 0.392699f);
	SpawnActor("BPGruntMelee_PoacherKnife", -2340.184326f, 9523.191406f, -51.301060f, 778, -1.570796f);
	SpawnActor("BPGruntMelee_PoacherKnife", -2625.004883f, 9046.879883f, -102.366112f, 772, -0.785398f);
	SpawnActor("BPGruntGuardRange-Poacher", -516.300415f, 7889.952148f, 104.678078f, 1954, -1.963495f);
	SpawnActor("BPGruntGuardGrenade", -545.765503f, 7754.384766f, 93.121384f, 1954, -1.570796f);
	SpawnActor("BPGruntGuardGrenade", -837.392700f, 8191.548828f, 104.678101f, 1947, -1.963495f);
	SpawnActor("BPGruntGuardGrenade", -1158.501465f, 8043.416016f, 103.154648f, 2006, 2.748894f);
	SpawnActor("BPBeetle", -1529.524658f, 9835.680664f, -307.206604f, 676, -3.141593f);
	SpawnActor("BPBeetle", -1218.672607f, 10178.017578f, -307.206604f, 535, -1.570796f);
	SpawnActor("BPBeetle", -644.106812f, 10204.975586f, -307.206573f, 541, -1.963495f);
	SpawnActor("BPBeetle", -543.528687f, 10475.156250f, -307.206573f, 560, 3.141593f);
	SpawnActor("BPBeetle", -1474.921021f, 10860.501953f, -102.392105f, 688, 1.570796f);
	SpawnActor("BPBeetle", -1548.746948f, 10441.858398f, -102.392128f, 700, 0.000000f);
	SpawnActor("BPBeetle", -861.343079f, 10482.365234f, -102.392120f, 587, -1.570796f);
	SpawnActor("BPBeetle", -353.293762f, 9756.162109f, -102.392159f, 640, 0.000000f);
	SpawnActor("BPBeetle", -271.823517f, 9821.206055f, -102.392159f, 639, 0.000000f);
	SpawnActor("BPBeetle", -341.618225f, 9949.875977f, -102.392151f, 638, 0.000000f);
	SpawnActor("BPPurlin_MeleeCommon", 2251.342773f, 6472.785645f, 104.678017f, 2860, 0.392699f);
	SpawnActor("BPPurlin_MeleeCommon", 2167.628906f, 6871.879883f, 104.678032f, 2840, 1.178097f);
	SpawnActor("BPRaptor_Common", 1615.950439f, 6671.110352f, 104.678024f, 2856, 1.570796f);
	SpawnActor("BPGruntGuardRange-Poacher", 1887.105347f, 8897.560547f, 1843.213257f, 1645, 2.356194f);
	SpawnActor("BPGruntGuardRange-Poacher", 2045.430664f, 10111.304688f, 1843.213379f, 426, 2.748893f);
	SpawnActor("BPGruntMelee_PoacherKnife", 2342.254883f, 9698.166992f, 1843.213257f, 421, -1.178097f);
	SpawnActor("BPPurlin_MeleeCommon", 3170.883301f, 9345.986328f, 1843.213257f, 231, 0.000000f);
	SpawnSolidActor("Animal_Deer", 3746.126709f, 5919.340332f, 103.616570f, 2727, 1.178097f);
	SpawnActor("BPRaptor_Common", 5602.624023f, 7418.051758f, 104.678062f, 1228, -2.356194f);
	SpawnActor("BPGruntRange_Poacher", 5071.997070f, 8182.077637f, 270.122772f, 1348, -0.000000f);
	SpawnActor("BPGruntRange_Poacher", 4082.058594f, 8593.517578f, 409.599976f, 1479, 1.570796f);
	SpawnActor("BPGruntRange_Poacher", 4391.104492f, 6907.449219f, 409.599915f, 1500, -2.748894f);
	SpawnActor("BPGruntRange_Poacher", 4538.268555f, 7432.269043f, 409.599945f, 1498, 1.963495f);
	SpawnActor("BPGruntGuardRange-Poacher", 1690.307739f, 4878.203125f, -242.712692f, 2909, 1.570796f);
	SpawnActor("BPStalker", 660.328857f, 5337.619141f, 204.814697f, 3015, 3.141593f);
	SpawnActor("BPStalker", 513.768982f, 5269.954102f, 205.227692f, 3002, 2.748894f);
	SpawnActor("BPStalker", -167.956802f, 5325.936523f, 428.578491f, 3014, 1.570797f);
	SpawnActor("BPStalker", -157.462387f, 5250.014648f, 426.568604f, 3014, 1.570796f);
	SpawnActor("BPPurlin_MeleeCommon", -1051.054199f, 5258.679199f, 257.522888f, 3065, 2.356194f);
	SpawnActor("BPGruntGuardRange-Poacher", -672.178589f, 5120.452637f, 124.482643f, 3145, 0.785398f);
	SpawnActor("BPHead", 3497.499756f, 5779.663574f, 434.943481f, 2726, -1.570796f);
	SpawnActor("BPHead", 3901.250732f, 6294.219238f, 359.116974f, 2681, -1.963495f);

	
	Game.CallDelayedMapScript(1, instigator, 0);
}
//------------------------------------------------------------------------------------------------------------------------
// Update Game
//------------------------------------------------------------------------------------------------------------------------
$script 1 {

	
	BlockAreaMinMax(kVec3(-6638, 1213, 100), kVec3(-6424, 1269, 1000), kVec3(0, -1, 0));
	if (Player.Actor().AreaID() == 207 and Player.Actor().OnGround() and InAreaMinMax(kVec3(-7329, 241, 100), kVec3(-5603, 1214, 1000)) and PlayLoop.Ticks() % 10 == 0) {
		Player.Actor().InflictGenericDamage(Player.Actor().CastToActor(), 5);
	}
	
	//black portal just before chrono area
	if (InAreaMinMax(kVec3(283, 7780, 50), kVec3(467, 8321, 2000))) {
		CheckStartArenaCinematic(1, 3, kVec3(222, 8033, 104), kVec3(422, 8033, 104));
	}
	
	UpdateGeneralGame();
	//ActorInWorldTestUpdate();
	$restart;
}
//------------------------------------------------------------------------------------------------------------------------
