include "TriggerLibs/NativeLib"
include "TriggerLibs/HeroesLib"
include "TriggerLibs/GameLib"
include "TriggerLibs/MapMechanicsLib"
include "TriggerLibs/AILib"
include "TriggerLibs/UILib"
include "TriggerLibs/SupportLib"
include "LibMLCP_h"
//--------------------------------------------------------------------------------------------------
// Library: Sky Temple
//--------------------------------------------------------------------------------------------------
// External Library Initialization
void libMLCP_InitLibraries () {
libNtve_InitVariables();
libCore_InitVariables();
libGame_InitVariables();
libMapM_InitVariables();
libAIAI_InitVariables();
libUIUI_InitVariables();
libSprt_InitVariables();
}
// Variable Initialization
bool libMLCP_InitVariables_completed = false;
void libMLCP_InitVariables () {
int init_i;
int init_i1;
int init_j1;
if (libMLCP_InitVariables_completed) {
return;
}
libMLCP_InitVariables_completed = true;
for (init_i = 0; init_i <= libMLCP_gv_mMSkyTempleMaxCount_C; init_i += 1) {
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMLCP_gv_mMSkyTemples[init_i].lv_targetPing[init_i1] = c_invalidPingId;
}
libMLCP_gv_mMSkyTemples[init_i].lv_helperText = c_textTagNone;
libMLCP_gv_mMSkyTemples[init_i].lv_defendersActivated = UnitGroupEmpty();
}
libMLCP_gv_mMSkyTempleTempleBlessWarningTime = 30.0;
libMLCP_gv_mMSkyTempleBlessingFirstTime = true;
libMLCP_gv_mMSkyTempleBlessingWarningTimer = TimerCreate();
libMLCP_gv_mMSkyTempleBlessWarningLongWaitTimer = TimerCreate();
libMLCP_gv_mMSkyTempleObjectivePreviewTimer = TimerCreate();
libMLCP_gv_mMSkyTempleObjectivePreviewDelay_C = 30.0;
libMLCP_gv_mMSkyTempleDefenderWithGlobes = UnitGroupEmpty();
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsPanel = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTimerModeFrame = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTimerModeNameLabel = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTimerModeTimeLabel = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleModeFrame = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= 3; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleBGImageBlue[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 3; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleBGImageRed[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 3; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleDisabledImage[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 3; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleEnabledImage[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 3; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleProgress2[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 3; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleProgress1[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 3; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleFinalShotsPanel[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 3; init_i1 += 1) {
for (init_j1 = 0; init_j1 <= 5; init_j1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleFinalShots[init_i1][init_j1] = c_invalidDialogControlId;
}
}
for (init_i1 = 0; init_i1 <= 3; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleTimerLabel[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 3; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleFireEffect[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 30; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleFireEffect2[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 2; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleFireEffect3[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 2; init_i1 += 1) {
for (init_j1 = 0; init_j1 <= 5; init_j1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleFireEffect4[init_i1][init_j1] = c_invalidDialogControlId;
}
}
for (init_i1 = 0; init_i1 <= 2; init_i1 += 1) {
for (init_j1 = 0; init_j1 <= 5; init_j1 += 1) {
libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleFireEffect5[init_i1][init_j1] = c_invalidDialogControlId;
}
}
libMLCP_gv_mMSkyTemplePanel.lv_mainContainerPanel = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeFrame = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeNameLabel = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeTimeLabel = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTempleModeFrame = c_invalidDialogControlId;
for (init_i = 0; init_i <= 3; init_i += 1) {
libMLCP_gv_mMSkyTemplePanelIcons[init_i].lv_containerPanel = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanelIcons[init_i].lv_fireEffect = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanelIcons[init_i].lv_shrineIcon = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanelIcons[init_i].lv_shrineProgress = c_invalidDialogControlId;
libMLCP_gv_mMSkyTemplePanelIcons[init_i].lv_shrineCaptureProgressMask = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= 5; init_i1 += 1) {
libMLCP_gv_mMSkyTemplePanelIcons[init_i].lv_bullets[init_i1] = c_invalidDialogControlId;
}
libMLCP_gv_mMSkyTemplePanelIcons[init_i].lv_cooldownLabel = c_invalidDialogControlId;
}
}
// Presets
// Functions
void libMLCP_gf_MMSkyTempleAddTemple (unit lp_temple, point lp_blockerLoc, int lp_team1AttackingTown1_1, int lp_team1AttackingTown1_2, int lp_team1AttackingTown1_3, int lp_team1AttackingTown1_4, int lp_team1AttackingTown1_5, int lp_team1AttackingTown1_6, int lp_team1AttackingTown2_1, int lp_team1AttackingTown2_2, int lp_team1AttackingTown2_3, int lp_team1AttackingTown2_4, int lp_team1AttackingTown2_5, int lp_team1AttackingTown2_6) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
int auto3BC44FB9_val;
// Variable Initialization
// Implementation
libMLCP_gv_mMSkyTempleCount += 1;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_temple = lp_temple;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_blockerLoc = lp_blockerLoc;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamOrderIndex_C][1] = lp_team1AttackingTown1_1;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamOrderIndex_C][2] = lp_team1AttackingTown1_2;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamOrderIndex_C][3] = lp_team1AttackingTown1_3;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamOrderIndex_C][4] = lp_team1AttackingTown1_4;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamOrderIndex_C][5] = lp_team1AttackingTown1_5;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamOrderIndex_C][6] = lp_team1AttackingTown1_6;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamChaosIndex_C][1] = lp_team1AttackingTown2_1;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamChaosIndex_C][2] = lp_team1AttackingTown2_2;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamChaosIndex_C][3] = lp_team1AttackingTown2_3;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamChaosIndex_C][4] = lp_team1AttackingTown2_4;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamChaosIndex_C][5] = lp_team1AttackingTown2_5;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_attackTownTargetingOrder[libGame_gv_teamChaosIndex_C][6] = lp_team1AttackingTown2_6;
UnitCreate(1, "JungleCampIconUnit", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Neutral, UnitGetPosition(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_temple), UnitGetFacing(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_temple), null);
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_minimapIcon = UnitLastCreated();
auto3BC44FB9_val = libMLCP_gv_mMSkyTempleCount;
if (auto3BC44FB9_val == libMLCP_ge_MMSkyTempleTempleIndex_Top) {
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_temple, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_skytempletop.dds");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_minimapIcon, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_skytempletop.dds");
}
else if (auto3BC44FB9_val == libMLCP_ge_MMSkyTempleTempleIndex_Middle) {
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_temple, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_skytemplemid.dds");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_minimapIcon, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_skytemplemid.dds");
}
else if (auto3BC44FB9_val == libMLCP_ge_MMSkyTempleTempleIndex_Bottom) {
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_temple, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_skytemplebot.dds");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_minimapIcon, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_skytemplebot.dds");
}
else {
}
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_temple, "MinimapIconTintColor 255,217,186,123");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_minimapIcon, "MinimapIconTintColor 255,145,113,218");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_temple, "MinimapIconScale 0.800000");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_minimapIcon, "MinimapIconScale 0.800000");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_temple, "SetMinimapVisibility");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_temple, "SetMinimapVisibilityAlways");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_minimapIcon, "SetMinimapVisibility");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_minimapIcon, "SetMinimapVisibilityAlways");
}
void libMLCP_gf_MMSkyTempleAddTempleDefenderSpawnLocations (point lp_location1, point lp_location2, point lp_location3, point lp_location4, point lp_location5) {
// Automatic Variable Declarations
// Implementation
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_defenderSpawnPoints[1] = lp_location1;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_defenderSpawnPoints[2] = lp_location2;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_defenderSpawnPoints[3] = lp_location3;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_defenderSpawnPoints[4] = lp_location4;
libMLCP_gv_mMSkyTemples[libMLCP_gv_mMSkyTempleCount].lv_defenderSpawnPoints[5] = lp_location5;
}
point libMLCP_gf_MMSkyTempleLocation (int lp_templeIndex) {
// Automatic Variable Declarations
// Implementation
return UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple);
}
void libMLCP_gf_MMSkyTempleRandomNextTemples (int lp_blessCount, bool lp_removeDisabled) {
// Variable Declarations
int lv_itTempleIndex;
int[libMLCP_gv_mMSkyTempleMaxCount_C + 1] lv_nextPotentialTempleFalses;
int lv_nextPotentialCountFalse;
int[libMLCP_gv_mMSkyTempleMaxCount_C + 1] lv_nextPotentialTempleTrue;
int lv_nextPotentialCountTrue;
// Automatic Variable Declarations
int auto1CD157AC_ae;
const int auto1CD157AC_ai = 1;
int auto9B22148A_val;
int auto7310A2F8_ae;
const int auto7310A2F8_ai = 1;
int auto7F1718AC_ae;
const int auto7F1718AC_ai = 1;
int autoB2D9BC69_ae;
const int autoB2D9BC69_ai = 1;
int auto1431C042_val;
int auto07350521_ae;
const int auto07350521_ai = 1;
int autoEDC4FCF5_ae;
const int autoEDC4FCF5_ai = 1;
int autoB56E7122_val;
int auto0529CBF6_ae;
const int auto0529CBF6_ai = 1;
int auto81386968_ae;
const int auto81386968_ai = 1;
int auto45F7DC11_ae;
const int auto45F7DC11_ai = 1;
// Variable Initialization
// Implementation
if ((lp_removeDisabled == true)) {
auto1CD157AC_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto1CD157AC_ai >= 0 && lv_itTempleIndex <= auto1CD157AC_ae) || (auto1CD157AC_ai < 0 && lv_itTempleIndex >= auto1CD157AC_ae) ) ; lv_itTempleIndex += auto1CD157AC_ai ) {
if ((libMLCP_gv_mMSkyTempleBlessTemplesDisabledForNext[lv_itTempleIndex] == false)) {
lv_nextPotentialCountTrue += 1;
lv_nextPotentialTempleTrue[lv_nextPotentialCountTrue] = lv_itTempleIndex;
}
else {
lv_nextPotentialCountFalse += 1;
lv_nextPotentialTempleFalses[lv_nextPotentialCountFalse] = lv_itTempleIndex;
}
}
auto9B22148A_val = lp_blessCount;
if (auto9B22148A_val == 1) {
auto7310A2F8_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto7310A2F8_ai >= 0 && lv_itTempleIndex <= auto7310A2F8_ae) || (auto7310A2F8_ai < 0 && lv_itTempleIndex >= auto7310A2F8_ae) ) ; lv_itTempleIndex += auto7310A2F8_ai ) {
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] = false;
}
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_nextPotentialTempleTrue[RandomInt(1, lv_nextPotentialCountTrue)]] = true;
return ;
}
else if (auto9B22148A_val == 2) {
if ((lv_nextPotentialCountTrue == 2)) {
auto7F1718AC_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto7F1718AC_ai >= 0 && lv_itTempleIndex <= auto7F1718AC_ae) || (auto7F1718AC_ai < 0 && lv_itTempleIndex >= auto7F1718AC_ae) ) ; lv_itTempleIndex += auto7F1718AC_ai ) {
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] = !(libMLCP_gv_mMSkyTempleBlessTemplesDisabledForNext[lv_itTempleIndex]);
}
return ;
}
}
else {
}
}
autoB2D9BC69_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (autoB2D9BC69_ai >= 0 && lv_itTempleIndex <= autoB2D9BC69_ae) || (autoB2D9BC69_ai < 0 && lv_itTempleIndex >= autoB2D9BC69_ae) ) ; lv_itTempleIndex += autoB2D9BC69_ai ) {
if ((libMLCP_gv_mMSkyTempleBlessLastTemples[lv_itTempleIndex] == true)) {
lv_nextPotentialCountTrue += 1;
lv_nextPotentialTempleTrue[lv_nextPotentialCountTrue] = lv_itTempleIndex;
}
else {
lv_nextPotentialCountFalse += 1;
lv_nextPotentialTempleFalses[lv_nextPotentialCountFalse] = lv_itTempleIndex;
}
}
if ((lp_blessCount == lv_nextPotentialCountTrue) && (lp_blessCount != 3)) {
auto1431C042_val = lp_blessCount;
if (auto1431C042_val == 1) {
auto07350521_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto07350521_ai >= 0 && lv_itTempleIndex <= auto07350521_ae) || (auto07350521_ai < 0 && lv_itTempleIndex >= auto07350521_ae) ) ; lv_itTempleIndex += auto07350521_ai ) {
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] = false;
}
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_nextPotentialTempleFalses[RandomInt(1, lv_nextPotentialCountFalse)]] = true;
}
else if (auto1431C042_val == 2) {
autoEDC4FCF5_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (autoEDC4FCF5_ai >= 0 && lv_itTempleIndex <= autoEDC4FCF5_ae) || (autoEDC4FCF5_ai < 0 && lv_itTempleIndex >= autoEDC4FCF5_ae) ) ; lv_itTempleIndex += autoEDC4FCF5_ai ) {
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] = false;
}
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_nextPotentialTempleFalses[1]] = true;
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_nextPotentialTempleTrue[RandomInt(1, lv_nextPotentialCountTrue)]] = true;
}
else {
}
return ;
}
autoB56E7122_val = lp_blessCount;
if (autoB56E7122_val == 1) {
auto0529CBF6_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto0529CBF6_ai >= 0 && lv_itTempleIndex <= auto0529CBF6_ae) || (auto0529CBF6_ai < 0 && lv_itTempleIndex >= auto0529CBF6_ae) ) ; lv_itTempleIndex += auto0529CBF6_ai ) {
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] = false;
}
libMLCP_gv_mMSkyTempleBlessNextTemples[RandomInt(1, libMLCP_gv_mMSkyTempleCount)] = true;
}
else if (autoB56E7122_val == 2) {
auto81386968_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto81386968_ai >= 0 && lv_itTempleIndex <= auto81386968_ae) || (auto81386968_ai < 0 && lv_itTempleIndex >= auto81386968_ae) ) ; lv_itTempleIndex += auto81386968_ai ) {
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] = true;
}
libMLCP_gv_mMSkyTempleBlessNextTemples[RandomInt(1, libMLCP_gv_mMSkyTempleCount)] = false;
}
else if (autoB56E7122_val == 3) {
auto45F7DC11_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto45F7DC11_ai >= 0 && lv_itTempleIndex <= auto45F7DC11_ae) || (auto45F7DC11_ai < 0 && lv_itTempleIndex >= auto45F7DC11_ae) ) ; lv_itTempleIndex += auto45F7DC11_ai ) {
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] = true;
}
}
else {
}
}
void libMLCP_gf_MMSkyTempleNextTemplesLogic () {
// Variable Declarations
int lv_nextIndex;
int lv_itTempleIndex;
int lv_blessCount;
int lv_thirdStageIndex;
int lv_availableCount;
// Automatic Variable Declarations
int auto0E14EC3A_ae;
const int auto0E14EC3A_ai = 1;
int autoA367FA1B_val;
int auto7B0ED323_ae;
const int auto7B0ED323_ai = 1;
int autoA13233C6_ae;
const int autoA13233C6_ai = 1;
int auto03317064_ae;
const int auto03317064_ai = 1;
// Variable Initialization
// Implementation
lv_nextIndex = (libMLCP_gv_mMSkyTempleBlessIndex + 1);
auto0E14EC3A_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto0E14EC3A_ai >= 0 && lv_itTempleIndex <= auto0E14EC3A_ae) || (auto0E14EC3A_ai < 0 && lv_itTempleIndex >= auto0E14EC3A_ae) ) ; lv_itTempleIndex += auto0E14EC3A_ai ) {
libMLCP_gv_mMSkyTempleBlessLastTemples[lv_itTempleIndex] = libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex];
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] = false;
}
autoA367FA1B_val = lv_nextIndex;
if (autoA367FA1B_val == 1) {
libMLCP_gv_mMSkyTempleBlessNextTemples[libMLCP_ge_MMSkyTempleTempleIndex_Top] = true;
libMLCP_gv_mMSkyTempleBlessNextTemples[libMLCP_ge_MMSkyTempleTempleIndex_Middle] = true;
}
else if (autoA367FA1B_val == 2) {
libMLCP_gv_mMSkyTempleBlessNextTemples[libMLCP_ge_MMSkyTempleTempleIndex_Bottom] = true;
}
else if (autoA367FA1B_val == 3) {
if ((RandomInt(1, 2) == 1)) {
libMLCP_gv_mMSkyTempleBlessNextTemples[libMLCP_ge_MMSkyTempleTempleIndex_Top] = true;
libMLCP_gv_mMSkyTempleBlessNextTemples[libMLCP_ge_MMSkyTempleTempleIndex_Bottom] = true;
}
else {
libMLCP_gv_mMSkyTempleBlessNextTemples[libMLCP_ge_MMSkyTempleTempleIndex_Middle] = true;
libMLCP_gv_mMSkyTempleBlessNextTemples[libMLCP_ge_MMSkyTempleTempleIndex_Bottom] = true;
}
}
else if (autoA367FA1B_val == 4) {
lv_blessCount = RandomInt(1, 2);
libMLCP_gv_mMSkyTempleBlessNextTemplesPreviousCount = lv_blessCount;
libMLCP_gf_MMSkyTempleRandomNextTemples(lv_blessCount, false);
}
else if (autoA367FA1B_val == 5) {
lv_blessCount = (3 - libMLCP_gv_mMSkyTempleBlessNextTemplesPreviousCount);
auto7B0ED323_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto7B0ED323_ai >= 0 && lv_itTempleIndex <= auto7B0ED323_ae) || (auto7B0ED323_ai < 0 && lv_itTempleIndex >= auto7B0ED323_ae) ) ; lv_itTempleIndex += auto7B0ED323_ai ) {
if ((libMLCP_gv_mMSkyTempleBlessTemplesActivation[lv_itTempleIndex] >= libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[lv_itTempleIndex])) {
libMLCP_gv_mMSkyTempleBlessTemplesDisabledForNext[lv_itTempleIndex] = true;
}
else {
libMLCP_gv_mMSkyTempleBlessTemplesDisabledForNext[lv_itTempleIndex] = false;
}
}
libMLCP_gf_MMSkyTempleRandomNextTemples(lv_blessCount, true);
}
else if (autoA367FA1B_val == 6) {
if ((libMLCP_gv_mMSkyTempleBlessTemplesActivation[1] > libMLCP_gv_mMSkyTempleBlessTemplesActivation[2])) {
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[1] = 3;
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[2] = 2;
}
else if ((libMLCP_gv_mMSkyTempleBlessTemplesActivation[1] < libMLCP_gv_mMSkyTempleBlessTemplesActivation[2])) {
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[1] = 2;
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[2] = 3;
}
else if (true) {
if ((RandomInt(1, 2) == 1)) {
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[1] = 3;
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[2] = 2;
}
else {
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[1] = 2;
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[2] = 3;
}
}
autoA13233C6_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (autoA13233C6_ai >= 0 && lv_itTempleIndex <= autoA13233C6_ae) || (autoA13233C6_ai < 0 && lv_itTempleIndex >= autoA13233C6_ae) ) ; lv_itTempleIndex += autoA13233C6_ai ) {
if ((libMLCP_gv_mMSkyTempleBlessTemplesActivation[lv_itTempleIndex] < libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[lv_itTempleIndex])) {
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] = true;
}
else {
libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] = false;
}
}
}
else {
if ((libMLCP_gv_mMSkyTempleBless1TempleRepeatCount >= 2)) {
lv_blessCount = 2;
libMLCP_gv_mMSkyTempleBless1TempleRepeatCount = 0;
libMLCP_gv_mMSkyTempleBless2TemplesRepeatCount = 1;
libMLCP_gf_MMSkyTempleRandomNextTemples(lv_blessCount, false);
}
else if ((libMLCP_gv_mMSkyTempleBless2TemplesRepeatCount >= 2)) {
lv_blessCount = 1;
libMLCP_gv_mMSkyTempleBless1TempleRepeatCount = 1;
libMLCP_gv_mMSkyTempleBless2TemplesRepeatCount = 0;
libMLCP_gf_MMSkyTempleRandomNextTemples(lv_blessCount, false);
}
else if (true) {
lv_blessCount = RandomInt(1, 3);
if ((lv_blessCount > 1)) {
lv_blessCount = 2;
libMLCP_gv_mMSkyTempleBless1TempleRepeatCount = 0;
libMLCP_gv_mMSkyTempleBless2TemplesRepeatCount += 1;
libMLCP_gf_MMSkyTempleRandomNextTemples(lv_blessCount, false);
}
if ((lv_blessCount == 1)) {
libMLCP_gv_mMSkyTempleBless2TemplesRepeatCount = 0;
libMLCP_gv_mMSkyTempleBless1TempleRepeatCount += 1;
libMLCP_gf_MMSkyTempleRandomNextTemples(lv_blessCount, false);
}
}
}
if ((lv_nextIndex >= 3)) {
auto03317064_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto03317064_ai >= 0 && lv_itTempleIndex <= auto03317064_ae) || (auto03317064_ai < 0 && lv_itTempleIndex >= auto03317064_ae) ) ; lv_itTempleIndex += auto03317064_ai ) {
if ((libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] == true)) {
libMLCP_gv_mMSkyTempleBlessTemplesActivation[lv_itTempleIndex] += 1;
}
}
}
}
void libMLCP_gf_MMSkyTemplePrepareTemples () {
// Variable Declarations
int lv_itTempleIndex;
// Automatic Variable Declarations
int autoBC435CD0_ae;
const int autoBC435CD0_ai = 1;
int autoBF6DBD13_val;
// Variable Initialization
// Implementation
TriggerExecute(libMLCP_gt_MMSkyTempleBeaconColor, true, false);
libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ(PlayerGroupAll());
autoBC435CD0_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (autoBC435CD0_ai >= 0 && lv_itTempleIndex <= autoBC435CD0_ae) || (autoBC435CD0_ai < 0 && lv_itTempleIndex >= autoBC435CD0_ae) ) ; lv_itTempleIndex += autoBC435CD0_ai ) {
if ((libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] == true)) {
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlert", libMLCP_gf_MMSkyTempleLocation(lv_itTempleIndex), Color(100.00, 100.00, 0.00), 4.0);
SoundPlayAtPointForPlayer(SoundLink("UI_Game_Ping_LuxoriaTemple_Spawned", -1), c_maxPlayers, PlayerGroupAll(), libMLCP_gf_MMSkyTempleLocation(lv_itTempleIndex), 0.0, 100.0, 0.0);
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, "SetMinimapVisibility");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, "SetMinimapVisibilityAlways");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "MinimapIconTintColor 255,217,186,123");
autoBF6DBD13_val = lv_itTempleIndex;
if (autoBF6DBD13_val == libMLCP_ge_MMSkyTempleTempleIndex_Top) {
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, "MinimapTooltip DOCSTR_TempleCroc");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "MinimapTooltip DOCSTR_TempleCroc");
}
else if (autoBF6DBD13_val == libMLCP_ge_MMSkyTempleTempleIndex_Middle) {
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, "MinimapTooltip DOCSTR_TempleSnake");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "MinimapTooltip DOCSTR_TempleSnake");
}
else if (autoBF6DBD13_val == libMLCP_ge_MMSkyTempleTempleIndex_Bottom) {
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, "MinimapTooltip DOCSTR_TempleJackal");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "MinimapTooltip DOCSTR_TempleJackal");
}
else {
}
libMLCP_gf_MMSkyTemplePrepareTempleDefenders(lv_itTempleIndex);
AddUnitOfInterest(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon, libMLCP_gv_mMSkyTempleTempleCaptureRadius_C, 0.0, "TempleBeacon", libNtve_ge_GoalTeam_Both, libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beaconIndex);
}
}
TimerStart(libMLCP_gv_mMSkyTempleBlessingWarningTimer, libMLCP_gv_mMSkyTempleTempleBlessWarningTime, false, c_timeGame);
}
void libMLCP_gf_MMSkyTempleSetupPreview () {
// Variable Declarations
int lv_itTempleIndex;
// Automatic Variable Declarations
int auto4C700B01_ae;
const int auto4C700B01_ai = 1;
// Variable Initialization
// Implementation
libMLCP_gf_MMSkyTempleNextTemplesLogic();
auto4C700B01_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto4C700B01_ai >= 0 && lv_itTempleIndex <= auto4C700B01_ae) || (auto4C700B01_ai < 0 && lv_itTempleIndex >= auto4C700B01_ae) ) ; lv_itTempleIndex += auto4C700B01_ai ) {
if ((libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] == true)) {
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "SetMinimapVisibility 1");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "SetMinimapVisibilityAlways 1");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "MinimapIconTintColor 255,145,113,218");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, "MinimapTooltip DOCSTR_TemplePreview");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "MinimapTooltip DOCSTR_TemplePreview");
}
else {
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "SetMinimapVisibility");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "SetMinimapVisibilityAlways");
}
}
}
trigger auto_libMLCP_gf_MMSkyTempleBlessTemple_Trigger = null;
int auto_libMLCP_gf_MMSkyTempleBlessTemple_lp_templeIndex;
void libMLCP_gf_MMSkyTempleBlessTemple (int lp_templeIndex) {
auto_libMLCP_gf_MMSkyTempleBlessTemple_lp_templeIndex = lp_templeIndex;
if (auto_libMLCP_gf_MMSkyTempleBlessTemple_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleBlessTemple_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleBlessTemple_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleBlessTemple_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleBlessTemple_TriggerFunc (bool testConds, bool runActions) {
int lp_templeIndex = auto_libMLCP_gf_MMSkyTempleBlessTemple_lp_templeIndex;
// Automatic Variable Declarations
// Implementation
if ((libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_blessed == true)) {
return true;
}
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_blessed = true;
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_finalStage = false;
StatEventCreate("SkyTempleActivated");
StatEventAddDataInt(StatEventLastCreated(), "Event", libMLCP_gv_mMSkyTempleBlessIndex);
StatEventAddDataInt(StatEventLastCreated(), "TempleID", lp_templeIndex);
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventSend(StatEventLastCreated());
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlert", libMLCP_gf_MMSkyTempleLocation(lp_templeIndex), Color(100.00, 100.00, 0.00), 6.0);
SoundPlayAtPointForPlayer(SoundLink("UI_Game_Ping_LuxoriaTemple_Ready", -1), c_maxPlayers, PlayerGroupAll(), libMLCP_gf_MMSkyTempleLocation(lp_templeIndex), 0.0, 100.0, 0.0);
libGame_gf_CapturePointEnable(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beaconIndex);
libCore_gf_SendActorMessageToDoodadsInRegion("Signal ActivateCapturePoint", RegionCircle(UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), 12.0), null);
UnitSetPropertyFixed(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, c_unitPropEnergyMax, libMLCP_gv_mMSkyTempleTempleTotalShots);
UnitSetPropertyFixed(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, c_unitPropEnergyPercent, 100.0);
libGame_gf_UpdateScalingForUnit(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, libGame_gv_scalingTicks, UnitBehaviorCount(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleScaling"));
libMLCP_gf_MMSkyTempleBlessingProgress(lp_templeIndex);
return true;
}
trigger auto_libMLCP_gf_MMSkyTempleBlessTempleDone_Trigger = null;
int auto_libMLCP_gf_MMSkyTempleBlessTempleDone_lp_templeIndex;
void libMLCP_gf_MMSkyTempleBlessTempleDone (int lp_templeIndex) {
auto_libMLCP_gf_MMSkyTempleBlessTempleDone_lp_templeIndex = lp_templeIndex;
if (auto_libMLCP_gf_MMSkyTempleBlessTempleDone_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleBlessTempleDone_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleBlessTempleDone_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleBlessTempleDone_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleBlessTempleDone_TriggerFunc (bool testConds, bool runActions) {
int lp_templeIndex = auto_libMLCP_gf_MMSkyTempleBlessTempleDone_lp_templeIndex;
// Variable Declarations
unit lv_itDefender;
unit lv_target;
unit lv_itTornado;
// Automatic Variable Declarations
unitgroup autoCA0226CA_g;
int autoCA0226CA_u;
// Variable Initialization
// Implementation
if ((libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_blessed == false)) {
return true;
}
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_progress = 0.0;
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_spawnStage = 0;
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetUnit = null;
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex = 0;
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_finalStage = true;
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_finalShots = libMLCP_gv_mMSkyTempleTempleFinalShotCount_C;
libMLCP_gf_MMSkyTempleBlessTempleFinalBlast(lp_templeIndex);
libMLCP_gf_MMSkyTempleClearTargetRevealers(lp_templeIndex, 6.0);
libNtve_gf_PlayAnimation(libNtve_gf_MainActorofUnit(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beacon), c_animNameDefault, "Spell", c_animFlagNonLooping, c_animTimeDefault);
libGame_gv_capturePoints[libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beaconIndex].lv_enabled = false;
Wait(1.0, c_timeGame);
ActorSend(libNtve_gf_MainActorofUnit(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beacon), "Signal Hide");
autoCA0226CA_g = libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defendersActivated;
autoCA0226CA_u = UnitGroupCount(autoCA0226CA_g, c_unitCountAll);
for (;; autoCA0226CA_u -= 1) {
lv_itDefender = UnitGroupUnitFromEnd(autoCA0226CA_g, autoCA0226CA_u);
if (lv_itDefender == null) { break; }
libMLCP_gf_MMSkyTempleDeactivateTempleDefender(lv_itDefender);
}
Wait(3.5, c_timeGame);
if ((UnitHasBehavior2(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleStage1") == true)) {
UnitBehaviorRemovePlayer(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleStage1", libCore_gv_cOMPUTER_Neutral, 1);
}
Wait(1.0, c_timeGame);
libGame_gv_capturePoints[libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beaconIndex].lv_enabled = true;
libGame_gf_CapturePointDisable(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beaconIndex);
libCore_gf_SendActorMessageToDoodadsInRegion("Signal DeactivateCapturePoint", RegionCircle(UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), 12.0), null);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_blessed = false;
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "SetMinimapVisibility");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "SetMinimapVisibilityAlways");
RemoveUnitOfInterest(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beacon, "TempleBeacon", libNtve_ge_GoalTeam_Both);
return true;
}
int libMLCP_gf_MMSkyTempleActivateTempleCount (bool lp_next) {
// Variable Declarations
int lv_count;
int lv_itTemple;
// Automatic Variable Declarations
int autoD87CA2A2_ae;
const int autoD87CA2A2_ai = 1;
int auto642F9B19_ae;
const int auto642F9B19_ai = 1;
// Variable Initialization
// Implementation
if ((lp_next == true)) {
auto642F9B19_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTemple = 1;
for ( ; ( (auto642F9B19_ai >= 0 && lv_itTemple <= auto642F9B19_ae) || (auto642F9B19_ai < 0 && lv_itTemple >= auto642F9B19_ae) ) ; lv_itTemple += auto642F9B19_ai ) {
if ((libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTemple] == true)) {
lv_count += 1;
}
}
}
else {
autoD87CA2A2_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTemple = 1;
for ( ; ( (autoD87CA2A2_ai >= 0 && lv_itTemple <= autoD87CA2A2_ae) || (autoD87CA2A2_ai < 0 && lv_itTemple >= autoD87CA2A2_ae) ) ; lv_itTemple += autoD87CA2A2_ai ) {
if ((libMLCP_gv_mMSkyTemples[lv_itTemple].lv_blessed == true)) {
lv_count += 1;
}
}
}
return lv_count;
}
bool libMLCP_gf_MMSkyTempleAnyTempleActive () {
// Variable Declarations
int lv_itTempleIndex;
// Automatic Variable Declarations
int autoB5B817F5_ae;
// Variable Initialization
// Implementation
autoB5B817F5_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; lv_itTempleIndex <= autoB5B817F5_ae ; lv_itTempleIndex += 1 ) {
if ((libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_blessed == true) && (UnitIsValid(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon) == true)) {
return true;
}
}
return false;
}
void libMLCP_gf_MMSkyTemplePrepareTempleDefenders (int lp_templeIndex) {
// Variable Declarations
int lv_bossPosIndex;
int lv_itMinion;
unit lv_itHero;
// Automatic Variable Declarations
int auto2F3AA251_val;
unitgroup auto18908D08_g;
int auto18908D08_u;
const int autoC862D788_ae = 5;
const int autoC862D788_ai = 1;
int autoF532BFE8_val;
// Variable Initialization
// Implementation
libNtve_gf_CreateUnitsAtPoint2(1, "TempleGuardianBoss", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Hostile, libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderSpawnPoints[1], null);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderArray[1] = UnitLastCreated();
libNtve_gf_ShowHideUnit(UnitLastCreated(), false);
libNtve_gf_PauseUnit(UnitLastCreated(), true);
libNtve_gf_MakeUnitInvulnerable(UnitLastCreated(), true);
UnitSetState(UnitLastCreated(), c_unitStateTargetable, false);
UnitSetState(UnitLastCreated(), c_unitStateStatusBar, false);
libNtve_gf_PlayAnimation(libNtve_gf_MainActorofUnit(UnitLastCreated()), c_animNameDefault, "Stand", 0, 0.0);
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "AnimSetPausedAll");
Wait(0.0625, c_timeGame);
ActorSend(libNtve_gf_ActorLastCreated(), "AnimSetPausedAll");
auto2F3AA251_val = lp_templeIndex;
if (auto2F3AA251_val == 1) {
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "ModelSwap TempleDefenderMeleeBossCroc");
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "SetGroupIcon 0 Assets\\Textures\\Storm_UI_InGame_TargetInfoPanel_Unit_SkyTemple_Merc_Temple_Croc_Melee.dds");
}
else if (auto2F3AA251_val == 2) {
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "ModelSwap TempleDefenderMeleeBossSnake");
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "SetGroupIcon 0 Assets\\Textures\\Storm_UI_InGame_TargetInfoPanel_Unit_SkyTemple_Merc_Temple_Snake_Melee.dds");
}
else if (auto2F3AA251_val == 3) {
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "ModelSwap TempleDefenderMeleeBossJackal");
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "SetGroupIcon 0 Assets\\Textures\\Storm_UI_InGame_TargetInfoPanel_Unit_SkyTemple_Merc_Temple_Jackal_Melee.dds");
}
else {
}
libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue(lp_templeIndex, 1, UnitLastCreated());
auto18908D08_g = UnitGroup(null, c_playerAny, RegionCircle(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_blockerLoc, 2.0), libCore_gv_filtersHeroic, 0);
auto18908D08_u = UnitGroupCount(auto18908D08_g, c_unitCountAll);
for (;; auto18908D08_u -= 1) {
lv_itHero = UnitGroupUnitFromEnd(auto18908D08_g, auto18908D08_u);
if (lv_itHero == null) { break; }
UnitSetPosition(lv_itHero, PointWithOffset(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_blockerLoc, 0.0, -2.0), true);
}
libNtve_gf_CreateUnitsWithDefaultFacing(1, "TempleDefenderPathingBlocker", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Neutral, libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_blockerLoc, null);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderBossPathingBlocker = UnitLastCreated();
lv_itMinion = 2;
for ( ; ( (autoC862D788_ai >= 0 && lv_itMinion <= autoC862D788_ae) || (autoC862D788_ai < 0 && lv_itMinion >= autoC862D788_ae) ) ; lv_itMinion += autoC862D788_ai ) {
libNtve_gf_CreateUnitsAtPoint2(1, "TempleDefenderRanged", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Hostile, libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderSpawnPoints[lv_itMinion], null);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderArray[lv_itMinion] = UnitLastCreated();
libNtve_gf_ShowHideUnit(UnitLastCreated(), false);
libNtve_gf_PauseUnit(UnitLastCreated(), true);
libNtve_gf_MakeUnitInvulnerable(UnitLastCreated(), true);
UnitSetState(UnitLastCreated(), c_unitStateTargetable, false);
UnitSetState(UnitLastCreated(), c_unitStateStatusBar, false);
autoF532BFE8_val = lp_templeIndex;
if (autoF532BFE8_val == 1) {
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "ModelSwap TempleDefenderRangedCroc");
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "SetGroupIcon 0 Assets\\Textures\\Storm_UI_InGame_TargetInfoPanel_Unit_SkyTemple_Merc_Temple_Croc_Ranged.dds");
}
else if (autoF532BFE8_val == 2) {
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "ModelSwap TempleDefenderRangedSnake");
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "SetGroupIcon 0 Assets\\Textures\\Storm_UI_InGame_TargetInfoPanel_Unit_SkyTemple_Merc_Temple_Snake_Ranged.dds");
}
else if (autoF532BFE8_val == 3) {
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "ModelSwap TempleDefenderRangedJackal");
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "SetGroupIcon 0 Assets\\Textures\\Storm_UI_InGame_TargetInfoPanel_Unit_SkyTemple_Merc_Temple_Jackal_Ranged.dds");
}
else {
}
libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue(lp_templeIndex, lv_itMinion, UnitLastCreated());
}
}
trigger auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_Trigger = null;
int auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_lp_templeIndex;
int auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_lp_defenderIndex;
unit auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_lp_defender;
void libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue (int lp_templeIndex, int lp_defenderIndex, unit lp_defender) {
auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_lp_templeIndex = lp_templeIndex;
auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_lp_defenderIndex = lp_defenderIndex;
auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_lp_defender = lp_defender;
if (auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_Trigger == null) {
auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_TriggerFunc (bool testConds, bool runActions) {
int lp_templeIndex = auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_lp_templeIndex;
int lp_defenderIndex = auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_lp_defenderIndex;
unit lp_defender = auto_libMLCP_gf_MMSkyTemplePrepareTempleDefenderStatue_lp_defender;
// Automatic Variable Declarations
int autoA010BAA8_val;
int auto311C110C_val;
// Implementation
libNtve_gf_CreateActorAtPoint("TempleDefenderBirthActor", UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderArray[lp_defenderIndex]));
if ((lp_defenderIndex == 1)) {
auto311C110C_val = lp_templeIndex;
if (auto311C110C_val == 1) {
ActorSend(libNtve_gf_ActorLastCreated(), "Signal MeleeCroc");
}
else if (auto311C110C_val == 2) {
ActorSend(libNtve_gf_ActorLastCreated(), "Signal MeleeSnake");
}
else if (auto311C110C_val == 3) {
ActorSend(libNtve_gf_ActorLastCreated(), "Signal MeleeJackal");
}
else {
return true;
}
}
else {
autoA010BAA8_val = lp_templeIndex;
if (autoA010BAA8_val == 1) {
ActorSend(libNtve_gf_ActorLastCreated(), "Signal RangedCroc");
}
else if (autoA010BAA8_val == 2) {
ActorSend(libNtve_gf_ActorLastCreated(), "Signal RangedSnake");
}
else if (autoA010BAA8_val == 3) {
ActorSend(libNtve_gf_ActorLastCreated(), "Signal RangedJackal");
}
else {
return true;
}
}
libNtve_gf_MakeModelFaceAngle(libNtve_gf_ActorLastCreated(), UnitGetFacing(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderArray[lp_defenderIndex]));
libCore_gf_StoreActorForUnit(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderArray[lp_defenderIndex], 1, libNtve_gf_ActorLastCreated());
ActorSend(libNtve_gf_ActorLastCreated(), "AnimBracketStart Statue Stand,Work,Start Stand,Work Stand,Work,End 0 0.000000");
ActorSend(libNtve_gf_ActorLastCreated(), "SetPlayerId");
ActorSend(libNtve_gf_ActorLastCreated(), "SetVisibility");
Wait(0.0625, c_timeGame);
ActorSend(libNtve_gf_ActorLastCreated(), "SetVisibility 1");
return true;
}
void libMLCP_gf_MMSkyTempleActivateTempleDefenderWaves (int lp_templeIndex, int lp_stage) {
// Variable Declarations
const int lv_leashRadius = 10;
unitgroup lv_newUnits;
int[3] lv_stageMinionIndexes;
int lv_itStageMinionIndex;
int lv_itDefender;
// Automatic Variable Declarations
int autoE8BE65EB_val;
const int autoFDD761F5_ae = 2;
const int autoFDD761F5_ai = 1;
int autoA45CF8EE_ae;
const int autoA45CF8EE_ai = 1;
int autoCF44A03E_ae;
const int autoCF44A03E_ai = 1;
// Variable Initialization
lv_newUnits = UnitGroupEmpty();
// Implementation
autoE8BE65EB_val = lp_stage;
if (autoE8BE65EB_val == 1) {
lv_stageMinionIndexes[1] = 1;
lv_stageMinionIndexes[2] = 0;
}
else if (autoE8BE65EB_val == 2) {
lv_stageMinionIndexes[1] = 2;
lv_stageMinionIndexes[2] = 3;
}
else if (autoE8BE65EB_val == 3) {
lv_stageMinionIndexes[1] = 4;
lv_stageMinionIndexes[2] = 5;
}
else {
}
lv_itStageMinionIndex = 1;
for ( ; ( (autoFDD761F5_ai >= 0 && lv_itStageMinionIndex <= autoFDD761F5_ae) || (autoFDD761F5_ai < 0 && lv_itStageMinionIndex >= autoFDD761F5_ae) ) ; lv_itStageMinionIndex += autoFDD761F5_ai ) {
if ((lv_stageMinionIndexes[lv_itStageMinionIndex] > 0)) {
libMLCP_gf_MMSkyTempleActivateTempleDefender(lp_templeIndex, libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderArray[lv_stageMinionIndexes[lv_itStageMinionIndex]]);
UnitGroupAdd(lv_newUnits, libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderArray[lv_stageMinionIndexes[lv_itStageMinionIndex]]);
}
}
if ((UnitGroupCount(lv_newUnits, c_unitCountAll) >= 1)) {
if ((libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex == 0)) {
libAIAI_gf_StartDefenderAI(false, lv_newUnits, RegionCircle(UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beacon), lv_leashRadius), RegionCircle(UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beacon), 5.0), false);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex = libAIAI_gf_LastCreatedDefenderAI();
autoCF44A03E_ae = libAIAI_gf_DefenderUnitCount(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex);
lv_itDefender = 1;
for ( ; ( (autoCF44A03E_ai >= 0 && lv_itDefender <= autoCF44A03E_ae) || (autoCF44A03E_ai < 0 && lv_itDefender >= autoCF44A03E_ae) ) ; lv_itDefender += autoCF44A03E_ai ) {
libAIAI_gf_SetDefenderLeashLocation(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex, lv_itDefender, UnitGetPosition(libAIAI_gf_DefenderUnit(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex, lv_itDefender)));
}
}
else {
libAIAI_gf_AddUnitsToDefenderAI(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex, lv_newUnits);
autoA45CF8EE_ae = libAIAI_gf_DefenderUnitCount(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex);
lv_itDefender = 1;
for ( ; ( (autoA45CF8EE_ai >= 0 && lv_itDefender <= autoA45CF8EE_ae) || (autoA45CF8EE_ai < 0 && lv_itDefender >= autoA45CF8EE_ae) ) ; lv_itDefender += autoA45CF8EE_ai ) {
if ((UnitGroupHasUnit(lv_newUnits, libAIAI_gf_DefenderUnit(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex, lv_itDefender)) == true)) {
libAIAI_gf_SetDefenderLeashLocation(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex, lv_itDefender, PointWithOffsetPolar(UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beacon), 4.6, AngleBetweenPoints(UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beacon), UnitGetPosition(libAIAI_gf_DefenderUnit(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderAIIndex, lv_itDefender)))));
}
}
}
UnitGroupAddUnitGroup(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defendersActivated, lv_newUnits);
}
}
trigger auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_Trigger = null;
int auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_lp_templeIndex;
unit auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_lp_defender;
void libMLCP_gf_MMSkyTempleActivateTempleDefender (int lp_templeIndex, unit lp_defender) {
auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_lp_templeIndex = lp_templeIndex;
auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_lp_defender = lp_defender;
if (auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_TriggerFunc (bool testConds, bool runActions) {
int lp_templeIndex = auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_lp_templeIndex;
unit lp_defender = auto_libMLCP_gf_MMSkyTempleActivateTempleDefender_lp_defender;
// Variable Declarations
actor lv_effectActor;
// Automatic Variable Declarations
string auto68FB8DFF_val;
// Variable Initialization
// Implementation
lv_effectActor = libCore_gf_ActorStoredForUnit(lp_defender, 1);
ActorSend(lv_effectActor, "AnimBracketStop Statue");
auto68FB8DFF_val = UnitGetType(lp_defender);
if (auto68FB8DFF_val == "TempleGuardianBoss") {
libGame_gf_UpdateScalingForUnit(lp_defender, libGame_gv_scalingTicks, 0);
Wait(3.0, c_timeGame);
UnitRemove(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderBossPathingBlocker);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_defenderBossPathingBlocker = null;
Wait(2.2, c_timeGame);
UnitSetState(lp_defender, c_unitStateStatusBar, true);
}
else if (auto68FB8DFF_val == "TempleDefenderRanged") {
libGame_gf_UpdateScalingForUnit(lp_defender, libGame_gv_scalingTicks, 0);
Wait(4.5, c_timeGame);
UnitBehaviorAdd(lp_defender, "TempleRangedDefenderBirthDelay", lp_defender, 1);
}
else {
}
libNtve_gf_ShowHideUnit(lp_defender, true);
ActorSend(lv_effectActor, "Destroy Immediate");
libNtve_gf_SendActorMessageToUnit(lp_defender, "AnimSetPausedAll 0");
libNtve_gf_SendActorMessageToUnit(lp_defender, "AnimPlay Birth Birth 0 0.000000 -1.000000 1.000000 AsTimeScale");
libNtve_gf_PauseUnit(lp_defender, false);
libNtve_gf_MakeUnitInvulnerable(lp_defender, false);
UnitSetState(lp_defender, c_unitStateTargetable, true);
libNtve_gf_SendActorMessageToUnit(lp_defender, "Signal ActivationSound");
UnitGroupAdd(libMLCP_gv_mMSkyTempleDefenderWithGlobes, lp_defender);
return true;
}
trigger auto_libMLCP_gf_MMSkyTempleDeactivateTempleDefender_Trigger = null;
unit auto_libMLCP_gf_MMSkyTempleDeactivateTempleDefender_lp_defender;
void libMLCP_gf_MMSkyTempleDeactivateTempleDefender (unit lp_defender) {
auto_libMLCP_gf_MMSkyTempleDeactivateTempleDefender_lp_defender = lp_defender;
if (auto_libMLCP_gf_MMSkyTempleDeactivateTempleDefender_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleDeactivateTempleDefender_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleDeactivateTempleDefender_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleDeactivateTempleDefender_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleDeactivateTempleDefender_TriggerFunc (bool testConds, bool runActions) {
unit lp_defender = auto_libMLCP_gf_MMSkyTempleDeactivateTempleDefender_lp_defender;
// Automatic Variable Declarations
// Implementation
UnitGroupRemove(libMLCP_gv_mMSkyTempleDefenderWithGlobes, lp_defender);
UnitCreateEffectUnit(lp_defender, "KillSquish", lp_defender);
return true;
}
int libMLCP_gf_MMSkyTempleTempleIndexForDefenders (int lp_defenderAIIndex) {
// Variable Declarations
int lv_itTempleIndex;
// Automatic Variable Declarations
int auto6E3B4F58_ae;
const int auto6E3B4F58_ai = 1;
// Variable Initialization
// Implementation
auto6E3B4F58_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto6E3B4F58_ai >= 0 && lv_itTempleIndex <= auto6E3B4F58_ae) || (auto6E3B4F58_ai < 0 && lv_itTempleIndex >= auto6E3B4F58_ae) ) ; lv_itTempleIndex += auto6E3B4F58_ai ) {
if ((libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_defenderAIIndex == lp_defenderAIIndex)) {
return lv_itTempleIndex;
}
}
return 0;
}
unit libMLCP_gf_MMSkyTempleNextTarget (int lp_templeIndex) {
// Variable Declarations
int lv_team;
int lv_nextTownIndex;
int lv_nextTown;
int lv_enemyPlayer;
int lv_enemyTeam;
unitgroup lv_townOuterLoop;
unitgroup lv_townInnerLoop;
unit lv_townHall;
unit lv_enemyCore;
int lv_town;
unitgroup lv_buildings;
unit lv_itBuilding;
// Automatic Variable Declarations
const int auto49769E3F_ae = 6;
const int auto49769E3F_ai = 1;
playergroup autoD7A1CC5D_g;
int autoD7A1CC5D_var;
unitgroup auto1493EB6F_g;
int auto1493EB6F_u;
// Variable Initialization
lv_townOuterLoop = UnitGroupEmpty();
lv_townInnerLoop = UnitGroupEmpty();
lv_buildings = UnitGroupEmpty();
// Implementation
if ((UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple) == libCore_gv_cOMPUTER_TeamChaos)) {
lv_enemyPlayer = libCore_gv_cOMPUTER_TeamOrder;
lv_enemyCore = libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_core;
}
else {
lv_enemyPlayer = libCore_gv_cOMPUTER_TeamChaos;
lv_enemyCore = libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_core;
}
lv_enemyTeam = libGame_gf_TeamNumberOfPlayer(lv_enemyPlayer);
lv_team = libGame_gf_EnemyTeam(lv_enemyTeam);
lv_nextTown = 0;
lv_nextTownIndex = libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_attackTownTargetingIndex[lv_team];
if ((lv_nextTownIndex <= 0)) {
lv_nextTownIndex = 1;
}
lv_nextTownIndex = lv_nextTownIndex;
for ( ; ( (auto49769E3F_ai >= 0 && lv_nextTownIndex <= auto49769E3F_ae) || (auto49769E3F_ai < 0 && lv_nextTownIndex >= auto49769E3F_ae) ) ; lv_nextTownIndex += auto49769E3F_ai ) {
lv_town = libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_attackTownTargetingOrder[lv_team][lv_nextTownIndex];
if ((libMLCP_gf_MMSkyTempleTownAlive(lv_town, lv_enemyPlayer) == true)) {
lv_nextTown = lv_town;
break;
}
}
if ((lv_nextTown <= 0)) {
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_attackTownTargetingIndex[lv_team] = 7;
if ((UnitIsAlive(lv_enemyCore) == true) && (libNtve_gf_UnitIsInvulnerable(lv_enemyCore) == false)) {
return lv_enemyCore;
}
else {
return null;
}
}
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_attackTownTargetingIndex[lv_team] = lv_nextTownIndex;
autoD7A1CC5D_g = libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lv_enemyPlayer), true);
autoD7A1CC5D_var = -1;
while (true) {
autoD7A1CC5D_var = PlayerGroupNextPlayer(autoD7A1CC5D_g, autoD7A1CC5D_var);
if (autoD7A1CC5D_var<0) { break; }
UnitGroupAddUnitGroup(lv_buildings, UnitGroup(null, autoD7A1CC5D_var, libGame_gv_townTownData[lv_town].lv_townRegion, UnitFilter(0, (1 << (c_targetFilterAITargetableStructure - 32)), (1 << c_targetFilterNoMinionAggro) | (1 << c_targetFilterMissile), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterInvulnerable - 32))), 0));
}
lv_townHall = libGame_gv_townTownData[lv_town].lv_structureUnits[libGame_gv_townTownData[lv_town].lv_townHallIndex];
if ((UnitIsAlive(lv_townHall) == false)) {
UnitGroupRemove(lv_buildings, UnitGroupUnit(libNtve_gf_UnitsInRegionWithAllianceToPlayerMatchingCondition(UnitTypeFromString("RagnarosBigRag"), "", "", c_playerAny, c_unitAllianceAny, libGame_gv_townTownData[lv_town].lv_townRegion, UnitFilter(0, (1 << (c_targetFilterAITargetableStructure - 32)), (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0), 1));
return UnitGroupClosestToPoint(lv_buildings, UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple));
}
auto1493EB6F_g = lv_buildings;
auto1493EB6F_u = UnitGroupCount(auto1493EB6F_g, c_unitCountAll);
for (;; auto1493EB6F_u -= 1) {
lv_itBuilding = UnitGroupUnitFromEnd(auto1493EB6F_g, auto1493EB6F_u);
if (lv_itBuilding == null) { break; }
if ((DistanceBetweenPoints(UnitGetPosition(lv_itBuilding), UnitGetPosition(lv_townHall)) > 10.0)) {
UnitGroupAdd(lv_townOuterLoop, lv_itBuilding);
}
else {
UnitGroupAdd(lv_townInnerLoop, lv_itBuilding);
}
}
if ((libNtve_gf_UnitGroupIsDead(lv_townOuterLoop) == false)) {
return UnitGroupClosestToPoint(lv_townOuterLoop, UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple));
}
if ((libNtve_gf_UnitGroupIsDead(lv_townInnerLoop) == false)) {
return UnitGroupClosestToPoint(lv_townInnerLoop, UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple));
}
return null;
}
unitgroup libMLCP_gf_MMSkyTempleFinalShotNextTarget (int lp_templeIndex) {
// Variable Declarations
int lv_team;
int lv_nextTownIndex;
int lv_nextTown;
int lv_enemyPlayer;
int lv_enemyTeam;
unitgroup lv_townOuterLoop;
unitgroup lv_townInnerLoop;
unit lv_townHall;
unit lv_enemyCore;
int lv_town;
unitgroup lv_buildings;
unit lv_itBuilding;
unitgroup lv_result;
// Automatic Variable Declarations
const int autoED281AC5_ae = 6;
const int autoED281AC5_ai = 1;
playergroup auto4BA4BE3B_g;
int auto4BA4BE3B_var;
unitgroup autoF1FAB08C_g;
int autoF1FAB08C_u;
// Variable Initialization
lv_townOuterLoop = UnitGroupEmpty();
lv_townInnerLoop = UnitGroupEmpty();
lv_buildings = UnitGroupEmpty();
lv_result = UnitGroupEmpty();
// Implementation
if ((UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple) == libCore_gv_cOMPUTER_TeamChaos)) {
lv_enemyPlayer = libCore_gv_cOMPUTER_TeamOrder;
lv_enemyCore = libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_core;
}
else {
lv_enemyPlayer = libCore_gv_cOMPUTER_TeamChaos;
lv_enemyCore = libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_core;
}
lv_enemyTeam = libGame_gf_TeamNumberOfPlayer(lv_enemyPlayer);
lv_team = libGame_gf_EnemyTeam(lv_enemyTeam);
lv_nextTown = 0;
lv_nextTownIndex = libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_attackTownTargetingIndex[lv_team];
if ((lv_nextTownIndex <= 0)) {
lv_nextTownIndex = 1;
}
lv_nextTownIndex = lv_nextTownIndex;
for ( ; ( (autoED281AC5_ai >= 0 && lv_nextTownIndex <= autoED281AC5_ae) || (autoED281AC5_ai < 0 && lv_nextTownIndex >= autoED281AC5_ae) ) ; lv_nextTownIndex += autoED281AC5_ai ) {
lv_town = libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_attackTownTargetingOrder[lv_team][lv_nextTownIndex];
if ((libMLCP_gf_MMSkyTempleTownAlive(lv_town, lv_enemyPlayer) == true)) {
lv_nextTown = lv_town;
break;
}
}
if ((lv_nextTown <= 0)) {
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_attackTownTargetingIndex[lv_team] = 7;
if ((UnitIsAlive(lv_enemyCore) == true)) {
UnitGroupAdd(lv_result, lv_enemyCore);
return lv_result;
}
else {
return lv_result;
}
}
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_attackTownTargetingIndex[lv_team] = lv_nextTownIndex;
auto4BA4BE3B_g = libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lv_enemyPlayer), true);
auto4BA4BE3B_var = -1;
while (true) {
auto4BA4BE3B_var = PlayerGroupNextPlayer(auto4BA4BE3B_g, auto4BA4BE3B_var);
if (auto4BA4BE3B_var<0) { break; }
UnitGroupAddUnitGroup(lv_buildings, UnitGroup(null, auto4BA4BE3B_var, libGame_gv_townTownData[lv_town].lv_townRegion, UnitFilter(0, (1 << (c_targetFilterAITargetableStructure - 32)), (1 << c_targetFilterNoMinionAggro) | (1 << c_targetFilterMissile), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterInvulnerable - 32))), 0));
}
lv_townHall = libGame_gv_townTownData[lv_town].lv_structureUnits[libGame_gv_townTownData[lv_town].lv_townHallIndex];
if ((UnitIsAlive(lv_townHall) == false)) {
UnitGroupRemove(lv_buildings, UnitGroupUnit(libNtve_gf_UnitsInRegionWithAllianceToPlayerMatchingCondition(UnitTypeFromString("RagnarosBigRag"), "", "", c_playerAny, c_unitAllianceAny, libGame_gv_townTownData[lv_town].lv_townRegion, UnitFilter(0, (1 << (c_targetFilterAITargetableStructure - 32)), (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0), 1));
return libMLCP_gf_MMSkyTempleClosestUnits(lv_buildings, 3, UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple));
}
autoF1FAB08C_g = lv_buildings;
autoF1FAB08C_u = UnitGroupCount(autoF1FAB08C_g, c_unitCountAll);
for (;; autoF1FAB08C_u -= 1) {
lv_itBuilding = UnitGroupUnitFromEnd(autoF1FAB08C_g, autoF1FAB08C_u);
if (lv_itBuilding == null) { break; }
if ((DistanceBetweenPoints(UnitGetPosition(lv_itBuilding), UnitGetPosition(lv_townHall)) > 10.0)) {
UnitGroupAdd(lv_townOuterLoop, lv_itBuilding);
}
else {
UnitGroupAdd(lv_townInnerLoop, lv_itBuilding);
}
}
if ((libNtve_gf_UnitGroupIsDead(lv_townOuterLoop) == false)) {
if ((UnitGroupCount(lv_townOuterLoop, c_unitCountAlive) <= 2)) {
UnitGroupAddUnitGroup(lv_townOuterLoop, libMLCP_gf_MMSkyTempleClosestUnits(lv_townInnerLoop, (3 - UnitGroupCount(lv_townOuterLoop, c_unitCountAlive)), UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple)));
}
return lv_townOuterLoop;
}
if ((libNtve_gf_UnitGroupIsDead(lv_townInnerLoop) == false)) {
return lv_townInnerLoop;
}
return null;
}
unitgroup libMLCP_gf_MMSkyTempleClosestUnits (unitgroup lp_group, int lp_count, point lp_sourceLocation) {
// Variable Declarations
unit lv_itUnitClosest;
unitgroup lv_sourceGroup;
int lv_resultCount;
unitgroup lv_resultGroup;
// Automatic Variable Declarations
// Variable Initialization
lv_sourceGroup = UnitGroupEmpty();
lv_resultGroup = UnitGroupEmpty();
// Implementation
lv_resultCount = lp_count;
if ((lv_resultCount > UnitGroupCount(lp_group, c_unitCountAlive))) {
return UnitGroupCopy(lp_group);
}
lv_sourceGroup = UnitGroupCopy(lp_group);
while (true) {
if ((lv_resultCount <= 0)) {
break;
}
if ((libNtve_gf_UnitGroupIsDead(lv_sourceGroup) == false)) {
lv_itUnitClosest = UnitGroupClosestToPoint(lv_sourceGroup, lp_sourceLocation);
UnitGroupAdd(lv_resultGroup, lv_itUnitClosest);
UnitGroupRemove(lv_sourceGroup, lv_itUnitClosest);
lv_resultCount -= 1;
}
}
return lv_resultGroup;
}
bool libMLCP_gf_MMSkyTempleTownAlive (int lp_town, int lp_player) {
// Variable Declarations
unitgroup lv_buildings;
unit lv_townhall;
// Automatic Variable Declarations
playergroup autoAE19B409_g;
int autoAE19B409_var;
// Variable Initialization
lv_buildings = UnitGroupEmpty();
// Implementation
lv_buildings = UnitGroup(null, lp_player, libGame_gv_townTownData[lp_town].lv_townRegion, UnitFilter(0, (1 << (c_targetFilterAITargetableStructure - 32)), (1 << c_targetFilterNoMinionAggro) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
if ((UnitIsAlive(libGame_gf_TownTownHall(lp_town)) == true) && (UnitGroupHasUnit(lv_buildings, libGame_gf_TownTownHall(lp_town)) == false)) {
autoAE19B409_g = libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lp_player), false);
autoAE19B409_var = -1;
while (true) {
autoAE19B409_var = PlayerGroupNextPlayer(autoAE19B409_g, autoAE19B409_var);
if (autoAE19B409_var<0) { break; }
UnitGroupAddUnitGroup(lv_buildings, UnitGroup(null, autoAE19B409_var, libGame_gv_townTownData[lp_town].lv_townRegion, UnitFilter(0, (1 << (c_targetFilterAITargetableStructure - 32)), (1 << c_targetFilterNoMinionAggro) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0));
}
}
return !(libNtve_gf_UnitGroupIsDead(lv_buildings));
}
bool libMLCP_gf_MMSkyTempleTownAliveForFinalBlast (int lp_town, int lp_player) {
// Variable Declarations
unitgroup lv_buildings;
unit lv_itBuilding;
unitgroup lv_buildingsResult;
// Automatic Variable Declarations
playergroup auto0897F87A_g;
int auto0897F87A_var;
unitgroup autoFE4AFF9A_g;
int autoFE4AFF9A_u;
// Variable Initialization
lv_buildings = UnitGroupEmpty();
lv_buildingsResult = UnitGroupEmpty();
// Implementation
lv_buildings = UnitGroup(null, lp_player, libGame_gv_townTownData[lp_town].lv_townRegion, UnitFilter(0, (1 << (c_targetFilterAITargetableStructure - 32)), (1 << c_targetFilterNoMinionAggro) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterInvulnerable - 32))), 0);
if ((UnitIsAlive(libGame_gf_TownTownHall(lp_town)) == true) && (UnitGroupHasUnit(lv_buildings, libGame_gf_TownTownHall(lp_town)) == false)) {
auto0897F87A_g = libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lp_player), false);
auto0897F87A_var = -1;
while (true) {
auto0897F87A_var = PlayerGroupNextPlayer(auto0897F87A_g, auto0897F87A_var);
if (auto0897F87A_var<0) { break; }
UnitGroupAddUnitGroup(lv_buildings, UnitGroup(null, auto0897F87A_var, libGame_gv_townTownData[lp_town].lv_townRegion, UnitFilter(0, (1 << (c_targetFilterAITargetableStructure - 32)), (1 << c_targetFilterNoMinionAggro) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0));
}
}
autoFE4AFF9A_g = lv_buildings;
autoFE4AFF9A_u = UnitGroupCount(autoFE4AFF9A_g, c_unitCountAll);
for (;; autoFE4AFF9A_u -= 1) {
lv_itBuilding = UnitGroupUnitFromEnd(autoFE4AFF9A_g, autoFE4AFF9A_u);
if (lv_itBuilding == null) { break; }
if ((libMLCP_gf_MMSkyTempleBuildingGoodForFinalBlast(lv_itBuilding) == true)) {
return true;
}
}
return false;
}
bool libMLCP_gf_MMSkyTempleBuildingGoodForFinalBlast (unit lp_building) {
// Automatic Variable Declarations
// Implementation
if ((((UnitIsAlive(lp_building) == true) && (UnitGetPropertyFixed(lp_building, c_unitPropLife, c_unitPropCurrent) >= libMLCP_gv_mMSkyTempleTempleFinalBlastLifeThreshold_C)) || (lp_building == libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_core) || (lp_building == libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_core))) {
return true;
}
return false;
}
int libMLCP_gf_MMSkyTempleTempleStage (int lp_index) {
// Automatic Variable Declarations
// Implementation
if ((libMLCP_gv_mMSkyTemples[lp_index].lv_blessed == false)) {
return 0;
}
else {
if ((libMLCP_gv_mMSkyTemples[lp_index].lv_progress < libMLCP_gv_mMSkyTempleTempleStageDuration_C)) {
return 1;
}
else {
return 2;
}
}
}
trigger auto_libMLCP_gf_MMSkyTempleBlessingProgress_Trigger = null;
int auto_libMLCP_gf_MMSkyTempleBlessingProgress_lp_templeIndex;
void libMLCP_gf_MMSkyTempleBlessingProgress (int lp_templeIndex) {
auto_libMLCP_gf_MMSkyTempleBlessingProgress_lp_templeIndex = lp_templeIndex;
if (auto_libMLCP_gf_MMSkyTempleBlessingProgress_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleBlessingProgress_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleBlessingProgress_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleBlessingProgress_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleBlessingProgress_TriggerFunc (bool testConds, bool runActions) {
int lp_templeIndex = auto_libMLCP_gf_MMSkyTempleBlessingProgress_lp_templeIndex;
// Variable Declarations
fixed lv_timeInterval_C;
int lv_timeIndex;
unit lv_target;
// Automatic Variable Declarations
// Variable Initialization
lv_timeInterval_C = 0.25;
// Implementation
while (true) {
if ((libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_blessed == false)) {
return true;
}
if ((UnitHasBehavior2(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleBlessed") == false)) {
UnitBehaviorAddPlayer(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleBlessed", libCore_gv_cOMPUTER_Neutral, 1);
}
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_progress = (libMLCP_gv_mMSkyTempleTempleStageDuration_C-(UnitGetPropertyFixed(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, c_unitPropEnergy, c_unitPropCurrent)-libMLCP_gv_mMSkyTempleTempleFinalShotCount_C));
if ((UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple) != libCore_gv_cOMPUTER_Neutral)) {
if ((libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_progress >= 0.0) && (libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_spawnStage < 1)) {
libMLCP_gf_MMSkyTempleActivateTempleDefenderWaves(lp_templeIndex, 1);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_spawnStage = 1;
}
else if ((libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_progress >= 10.0) && (libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_spawnStage < 2)) {
libMLCP_gf_MMSkyTempleActivateTempleDefenderWaves(lp_templeIndex, 2);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_spawnStage = 2;
}
else if ((libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_progress >= 25.0) && (libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_spawnStage < 3)) {
libMLCP_gf_MMSkyTempleActivateTempleDefenderWaves(lp_templeIndex, 3);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_spawnStage = 3;
}
}
if ((libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_progress >= libMLCP_gv_mMSkyTempleTempleStageDuration_C) && (UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple) != libCore_gv_cOMPUTER_Neutral) && (UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beacon) != libCore_gv_cOMPUTER_Neutral)) {
libMLCP_gf_MMSkyTempleBlessTempleDone(lp_templeIndex);
return true;
}
if ((UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple) != libCore_gv_cOMPUTER_Neutral) && (UnitHasBehavior2(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beacon, "DisableBeaconBuff") == false)) {
if ((UnitHasBehavior2(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleStage1") == false)) {
UnitBehaviorAdd(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleStage1", libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, 1);
}
if (((UnitIsAlive(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetUnit) == false) || (libNtve_gf_UnitIsInvulnerable(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetUnit) == true) || (libNtve_gf_PlayerIsEnemy(UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetUnit), libNtve_ge_PlayerRelation_Enemy) == false))) {
libMLCP_gf_MMSkyTempleClearTargetRevealers(lp_templeIndex, 6.0);
lv_target = libMLCP_gf_MMSkyTempleNextTarget(lp_templeIndex);
if ((UnitIsAlive(lv_target) == true)) {
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetRevealerCount += 1;
VisRevealerCreate(UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), RegionCircle(UnitGetPosition(lv_target), 5.0));
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetRevealers[libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetRevealerCount] = VisRevealerLastCreated();
Wait(0.5, c_timeGame);
UnitIssueOrder(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, OrderTargetingUnit(AbilityCommand("attack", 0), lv_target), c_orderQueueReplace);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetUnit = lv_target;
}
else {
libMLCP_gf_MMSkyTempleStopShooting(lp_templeIndex);
}
}
else {
if ((UnitOrder(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, 0) == null)) {
UnitIssueOrder(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, OrderTargetingUnit(AbilityCommand("attack", 0), lv_target), c_orderQueueReplace);
}
}
}
else {
if ((UnitHasBehavior2(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleStage1") == true)) {
UnitBehaviorRemove(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleStage1", 1);
}
libMLCP_gf_MMSkyTempleStopShooting(lp_templeIndex);
}
Wait(lv_timeInterval_C, c_timeGame);
}
return true;
}
trigger auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_Trigger = null;
int auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_lp_templeIndex;
fixed auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_lp_delay;
void libMLCP_gf_MMSkyTempleClearTargetRevealers (int lp_templeIndex, fixed lp_delay) {
auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_lp_templeIndex = lp_templeIndex;
auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_lp_delay = lp_delay;
if (auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_TriggerFunc (bool testConds, bool runActions) {
int lp_templeIndex = auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_lp_templeIndex;
fixed lp_delay = auto_libMLCP_gf_MMSkyTempleClearTargetRevealers_lp_delay;
// Variable Declarations
int lv_itRevealer;
revealer[11] lv_revealers;
int lv_count;
// Automatic Variable Declarations
int auto62B1314A_ae;
const int auto62B1314A_ai = 1;
int autoA1E15699_ae;
const int autoA1E15699_ai = 1;
// Variable Initialization
// Implementation
lv_count = libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetRevealerCount;
if ((lv_count == 0)) {
return true;
}
auto62B1314A_ae = lv_count;
lv_itRevealer = 1;
for ( ; ( (auto62B1314A_ai >= 0 && lv_itRevealer <= auto62B1314A_ae) || (auto62B1314A_ai < 0 && lv_itRevealer >= auto62B1314A_ae) ) ; lv_itRevealer += auto62B1314A_ai ) {
lv_revealers[lv_itRevealer] = libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetRevealers[lv_itRevealer];
}
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetRevealerCount = 0;
Wait(lp_delay, c_timeGame);
autoA1E15699_ae = lv_count;
lv_itRevealer = 1;
for ( ; ( (autoA1E15699_ai >= 0 && lv_itRevealer <= autoA1E15699_ae) || (autoA1E15699_ai < 0 && lv_itRevealer >= autoA1E15699_ae) ) ; lv_itRevealer += autoA1E15699_ai ) {
VisRevealerDestroy(lv_revealers[lv_itRevealer]);
}
return true;
}
void libMLCP_gf_MMSkyTempleStopShooting (int lp_templeIndex) {
// Automatic Variable Declarations
// Implementation
UnitIssueOrder(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetUnit = null;
libMLCP_gf_MMSkyTempleClearTargetRevealers(lp_templeIndex, 6.0);
libMLCP_gf_TempleMasterSendAwardData();
}
string libMLCP_gf_MMSkyTempleShootingBeam (fixed lp_distance) {
// Automatic Variable Declarations
// Implementation
if ((lp_distance > 32.0) && (lp_distance < 36.0)) {
return "StormPingLightningA";
}
else if ((lp_distance > 38.0) && (lp_distance < 42.0)) {
return "StormPingLightningB";
}
else if ((lp_distance > 43.0) && (lp_distance < 47.0)) {
return "StormPingLightningC";
}
else if ((lp_distance > 60.0) && (lp_distance < 64.0)) {
return "StormPingLightningD";
}
else if ((lp_distance > 68.0) && (lp_distance < 72.0)) {
return "StormPingLightningE";
}
else if ((lp_distance > 75.0) && (lp_distance < 80.0)) {
return "StormPingLightningF";
}
else if ((lp_distance > 86.0) && (lp_distance < 88.0)) {
return "StormPingLightningG";
}
else if ((lp_distance > 88.0) && (lp_distance < 91.0)) {
return "StormPingLightningH";
}
else if ((lp_distance > 91.0) && (lp_distance < 95.0)) {
return "StormPingLightningI";
}
else if ((lp_distance > 103.0) && (lp_distance < 108.5)) {
return "StormPingLightningJ";
}
else if ((lp_distance >= 108.5) && (lp_distance <= 131.0)) {
return "StormPingLightningK";
}
else if ((lp_distance > 131.0) && (lp_distance < 133.0)) {
return "StormPingLightningL";
}
return null;
}
trigger auto_libMLCP_gf_MMSkyTempleShootingPing_Trigger = null;
int auto_libMLCP_gf_MMSkyTempleShootingPing_lp_templeIndex;
unit auto_libMLCP_gf_MMSkyTempleShootingPing_lp_target;
void libMLCP_gf_MMSkyTempleShootingPing (int lp_templeIndex, unit lp_target) {
auto_libMLCP_gf_MMSkyTempleShootingPing_lp_templeIndex = lp_templeIndex;
auto_libMLCP_gf_MMSkyTempleShootingPing_lp_target = lp_target;
if (auto_libMLCP_gf_MMSkyTempleShootingPing_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleShootingPing_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleShootingPing_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleShootingPing_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleShootingPing_TriggerFunc (bool testConds, bool runActions) {
int lp_templeIndex = auto_libMLCP_gf_MMSkyTempleShootingPing_lp_templeIndex;
unit lp_target = auto_libMLCP_gf_MMSkyTempleShootingPing_lp_target;
// Variable Declarations
int lv_team;
int lv_enemyTeam;
point lv_pointStart;
point lv_pointEnd;
point lv_pointEnd2;
fixed lv_distance;
fixed lv_angle;
int lv_townIndex;
int lv_damage;
string lv_beamModel;
fixed lv_distanceCenter;
fixed lv_scaling;
bool lv_isCore;
// Automatic Variable Declarations
unit autoFB2BC9C5_val;
int auto2BD4C46F_val;
// Variable Initialization
// Implementation
lv_team = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple));
lv_enemyTeam = libGame_gf_EnemyTeam(lv_team);
lv_pointStart = UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple);
lv_pointEnd = UnitGetPosition(lp_target);
lv_townIndex = libGame_gf_TownGetTownForUnit(lp_target);
if (((lv_townIndex <= 0) || (lv_townIndex > libGame_gv_townTownCount))) {
autoFB2BC9C5_val = lp_target;
if (autoFB2BC9C5_val == libGame_gv_teams[1].lv_core) {
lv_pointEnd2 = lv_pointEnd;
lv_isCore = true;
}
else if (autoFB2BC9C5_val == libGame_gv_teams[2].lv_core) {
lv_pointEnd2 = lv_pointEnd;
lv_isCore = true;
}
else {
return true;
}
}
else {
lv_pointEnd2 = libGame_gv_townTownData[lv_townIndex].lv_townHallPosition;
}
lv_distance = DistanceBetweenPoints(lv_pointStart, lv_pointEnd);
lv_distanceCenter = DistanceBetweenPoints(lv_pointStart, lv_pointEnd2);
lv_angle = AngleBetweenPoints(lv_pointStart, lv_pointEnd2);
lv_beamModel = libMLCP_gf_MMSkyTempleShootingBeam(lv_distanceCenter);
lv_scaling = 1.0;
if ((lv_isCore == true)) {
auto2BD4C46F_val = lp_templeIndex;
if (auto2BD4C46F_val == libMLCP_ge_MMSkyTempleTempleIndex_Top) {
lv_beamModel = "StormPingLightningK";
}
else if (auto2BD4C46F_val == libMLCP_ge_MMSkyTempleTempleIndex_Middle) {
lv_beamModel = "StormPingLightningG";
}
else if (auto2BD4C46F_val == libMLCP_ge_MMSkyTempleTempleIndex_Bottom) {
lv_beamModel = "StormPingLightningK";
lv_scaling = 1.05;
}
else {
}
}
libNtve_gf_CreatePingFacingAngleWithType(PlayerGroupAll(), lv_beamModel, lv_pointStart, ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 1.3334, lv_angle, -1, -1);
PingSetScale(PingLastCreated(), lv_scaling);
if ((libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_finalStage == false)) {
lv_damage = CatalogFieldValueGetAsInt(c_gameCatalogEffect, "LuxoriaTempleStage1WeaponDamage", "Amount", UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple));
lv_damage += (MaxI(UnitBehaviorCount(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleScaling")-1, 0)*20);
}
else {
lv_damage = CatalogFieldValueGetAsInt(c_gameCatalogEffect, "LuxoriaTempleStage2WeaponDamage", "Amount", UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple));
lv_damage += (MaxI(UnitBehaviorCount(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleScaling")-1, 0)*20);
}
return true;
}
trigger auto_libMLCP_gf_MMSkyTempleShootingPingBackup_Trigger = null;
int auto_libMLCP_gf_MMSkyTempleShootingPingBackup_lp_templeIndex;
unit auto_libMLCP_gf_MMSkyTempleShootingPingBackup_lp_target;
void libMLCP_gf_MMSkyTempleShootingPingBackup (int lp_templeIndex, unit lp_target) {
auto_libMLCP_gf_MMSkyTempleShootingPingBackup_lp_templeIndex = lp_templeIndex;
auto_libMLCP_gf_MMSkyTempleShootingPingBackup_lp_target = lp_target;
if (auto_libMLCP_gf_MMSkyTempleShootingPingBackup_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleShootingPingBackup_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleShootingPingBackup_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleShootingPingBackup_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleShootingPingBackup_TriggerFunc (bool testConds, bool runActions) {
int lp_templeIndex = auto_libMLCP_gf_MMSkyTempleShootingPingBackup_lp_templeIndex;
unit lp_target = auto_libMLCP_gf_MMSkyTempleShootingPingBackup_lp_target;
int init_i;
int init_j;
// Variable Declarations
int[3] lv_pingTarget;
int[3][31] lv_pingArrow;
int lv_team;
int lv_enemyTeam;
int lv_itTeam;
point lv_pointStart;
point lv_pointEnd;
fixed lv_distance;
fixed lv_angle;
point lv_pingLoc;
fixed lv_pingDistance;
int lv_pingArrorCount;
int lv_itPingIndex;
// Automatic Variable Declarations
const int autoEA8FAAF2_ae = 2;
const int autoEA8FAAF2_ai = 1;
const int auto9FD0F632_ae = 2;
const int auto9FD0F632_ai = 1;
const int auto0C55EEF4_ae = 2;
const int auto0C55EEF4_ai = 1;
int auto15951192_ae;
const int auto15951192_ai = 1;
// Variable Initialization
for (init_i = 0; init_i <= 2; init_i += 1) {
lv_pingTarget[init_i] = c_invalidPingId;
}
for (init_i = 0; init_i <= 2; init_i += 1) {
for (init_j = 0; init_j <= 30; init_j += 1) {
lv_pingArrow[init_i][init_j] = c_invalidPingId;
}
}
// Implementation
lv_team = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple));
lv_enemyTeam = libGame_gf_EnemyTeam(lv_team);
lv_pointStart = UnitGetPosition(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple);
lv_pointEnd = UnitGetPosition(lp_target);
lv_angle = AngleBetweenPoints(lv_pointStart, lv_pointEnd);
lv_distance = DistanceBetweenPoints(lv_pointStart, lv_pointEnd);
lv_pingDistance = 7.0;
lv_pingArrorCount = 0;
while (true) {
if ((UnitIsAlive(lp_target) == false)) {
break;
}
if (((lv_pingDistance + 5.0) > lv_distance)) {
break;
}
lv_pingArrorCount += 1;
lv_pingLoc = PointWithOffsetPolar(lv_pointStart, lv_pingDistance, lv_angle);
lv_itTeam = 1;
for ( ; ( (autoEA8FAAF2_ai >= 0 && lv_itTeam <= autoEA8FAAF2_ae) || (autoEA8FAAF2_ai < 0 && lv_itTeam >= autoEA8FAAF2_ae) ) ; lv_itTeam += autoEA8FAAF2_ai ) {
libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(lv_itTeam, false), "StormPingArrow", lv_pingLoc, ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 0.0, lv_angle, -1, -1);
PingSetScale(PingLastCreated(), 0.3);
if ((lv_itTeam == lv_team)) {
PingSetColor(PingLastCreated(), Color(0.00, 100.00, 0.00));
}
else {
PingSetColor(PingLastCreated(), Color(100.00, 0.00, 0.00));
}
lv_pingArrow[lv_itTeam][lv_pingArrorCount] = PingLastCreated();
}
lv_pingDistance += 10.0;
Wait(0.25, c_timeGame);
}
if ((UnitIsAlive(lp_target) == true)) {
lv_itTeam = 1;
for ( ; ( (auto9FD0F632_ai >= 0 && lv_itTeam <= auto9FD0F632_ae) || (auto9FD0F632_ai < 0 && lv_itTeam >= auto9FD0F632_ae) ) ; lv_itTeam += auto9FD0F632_ai ) {
libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(lv_itTeam, false), "BeaconAssaultPing", UnitGetPosition(lp_target), ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 0.0, 0.0, -1, -1);
PingSetScale(PingLastCreated(), 0.3);
if ((lv_itTeam == lv_team)) {
PingSetColor(PingLastCreated(), Color(0.00, 100.00, 0.00));
}
else {
PingSetColor(PingLastCreated(), Color(100.00, 0.00, 0.00));
}
lv_pingTarget[lv_itTeam] = PingLastCreated();
}
}
while (true) {
if (((UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple) == libCore_gv_cOMPUTER_Neutral) || (UnitIsAlive(lp_target) == false) || (libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetUnit != lp_target))) {
lv_itTeam = 1;
for ( ; ( (auto0C55EEF4_ai >= 0 && lv_itTeam <= auto0C55EEF4_ae) || (auto0C55EEF4_ai < 0 && lv_itTeam >= auto0C55EEF4_ae) ) ; lv_itTeam += auto0C55EEF4_ai ) {
auto15951192_ae = lv_pingArrorCount;
lv_itPingIndex = 1;
for ( ; ( (auto15951192_ai >= 0 && lv_itPingIndex <= auto15951192_ae) || (auto15951192_ai < 0 && lv_itPingIndex >= auto15951192_ae) ) ; lv_itPingIndex += auto15951192_ai ) {
PingDestroy(lv_pingArrow[lv_itTeam][lv_itPingIndex]);
}
PingDestroy(lv_pingTarget[lv_itTeam]);
}
return true;
}
Wait(0.25, c_timeGame);
}
return true;
}
trigger auto_libMLCP_gf_MMSkyTempleBlessTempleFinalBlast_Trigger = null;
int auto_libMLCP_gf_MMSkyTempleBlessTempleFinalBlast_lp_templeIndex;
void libMLCP_gf_MMSkyTempleBlessTempleFinalBlast (int lp_templeIndex) {
auto_libMLCP_gf_MMSkyTempleBlessTempleFinalBlast_lp_templeIndex = lp_templeIndex;
if (auto_libMLCP_gf_MMSkyTempleBlessTempleFinalBlast_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleBlessTempleFinalBlast_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleBlessTempleFinalBlast_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleBlessTempleFinalBlast_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleBlessTempleFinalBlast_TriggerFunc (bool testConds, bool runActions) {
int lp_templeIndex = auto_libMLCP_gf_MMSkyTempleBlessTempleFinalBlast_lp_templeIndex;
// Variable Declarations
unit lv_target;
point lv_targetLoc;
unitgroup lv_targetGroup;
int lv_playerWithMostCaptureTime;
// Automatic Variable Declarations
playergroup autoEC67E8F4_g;
int autoEC67E8F4_var;
int auto714C43EE_n;
int auto714C43EE_i;
const int auto6C306029_n = libMLCP_gv_mMSkyTempleTempleFinalShotCount_C;
int auto6C306029_i;
// Variable Initialization
lv_targetGroup = UnitGroupEmpty();
// Implementation
autoEC67E8F4_g = libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple)), false);
autoEC67E8F4_var = -1;
while (true) {
autoEC67E8F4_var = PlayerGroupNextPlayer(autoEC67E8F4_g, autoEC67E8F4_var);
if (autoEC67E8F4_var<0) { break; }
if ((libGame_gf_CapturePointGetCaptureTimeForCurrentEnabledPointForPlayer(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beaconIndex, autoEC67E8F4_var) > libGame_gf_CapturePointGetCaptureTimeForCurrentEnabledPointForPlayer(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_beaconIndex, lv_playerWithMostCaptureTime))) {
lv_playerWithMostCaptureTime = autoEC67E8F4_var;
}
}
libGame_gf_DropLootBannerinSconce(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_bannerSconce, libGame_gv_players[lv_playerWithMostCaptureTime].lv_lootContent.lv_loot_Banner.lv_bannerID, lv_playerWithMostCaptureTime, true);
UnitBehaviorRemove(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleStage1", 1);
UnitBehaviorRemove(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleStage2", 1);
UnitBehaviorAddPlayer(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleFinalBlastChannelBehavior", UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), 1);
Wait(0.0625, c_timeGame);
lv_target = null;
auto714C43EE_n = FixedToInt((4.0 / 0.125));
for (auto714C43EE_i = 1; auto714C43EE_i <= auto714C43EE_n; auto714C43EE_i += 1) {
if ((UnitIsAlive(lv_target) == false)) {
if ((lv_targetLoc != null)) {
UnitIssueOrder(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, OrderTargetingPoint(AbilityCommand("LuxoriaTempleTurretRelease", 0), lv_targetLoc), c_orderQueueReplace);
}
lv_target = libMLCP_gf_MMSkyTempleNextTarget(lp_templeIndex);
if ((UnitIsAlive(lv_target) == true)) {
VisRevealArea(UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), RegionCircle(UnitGetPosition(lv_target), 5.0), 7.0, false);
lv_targetLoc = UnitGetPosition(lv_target);
UnitIssueOrder(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, OrderTargetingUnit(AbilityCommand("LuxoriaTempleTurretHold", 0), lv_target), c_orderQueueReplace);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_targetUnit = lv_target;
}
}
Wait(0.125, c_timeGame);
}
UnitBehaviorRemovePlayer(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleFinalBlastChannelBehavior", UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), 1);
UnitBehaviorAddPlayer(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleFinalBlastActiveBehavior", UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), 1);
for (auto6C306029_i = 1; auto6C306029_i <= auto6C306029_n; auto6C306029_i += 1) {
lv_target = libMLCP_gf_MMSkyTempleNextTarget(lp_templeIndex);
VisRevealArea(UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), RegionCircle(UnitGetPosition(lv_target), 5.0), 5.0, false);
UnitIssueOrder(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, OrderTargetingUnit(AbilityCommand("LuxoriaTempleTurretHold", 0), lv_target), c_orderQueueReplace);
libMLCP_gf_MMSkyTempleShootingPing(lp_templeIndex, lv_target);
Wait(0.0625, c_timeGame);
if ((UnitIsAlive(lv_target) == false)) {
lv_target = libMLCP_gf_MMSkyTempleNextTarget(lp_templeIndex);
VisRevealArea(UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), RegionCircle(UnitGetPosition(lv_target), 5.0), 5.0, false);
}
UnitIssueOrder(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, OrderTargetingUnit(AbilityCommand("LuxoriaTempleFinalBlast", 0), lv_target), c_orderQueueAddToEnd);
Wait(RandomFixed(0.125, 0.25), c_timeGame);
libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_finalShots -= 1;
libMLCP_gf_MMSkyTempleUISetTempleStage(lp_templeIndex, 2, libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_finalShots);
}
Wait(1.0, c_timeGame);
UnitSetPropertyFixed(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, c_unitPropEnergyPercent, 100.0);
libMLCP_gf_TempleMasterSendAwardData();
UnitBehaviorRemovePlayer(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, "LuxoriaTempleFinalBlastActiveBehavior", UnitGetOwner(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple), 1);
if ((lv_targetLoc != null)) {
UnitIssueOrder(libMLCP_gv_mMSkyTemples[lp_templeIndex].lv_temple, OrderTargetingPoint(AbilityCommand("LuxoriaTempleTurretRelease", 0), lv_targetLoc), c_orderQueueReplace);
}
return true;
}
void libMLCP_gf_MMSkyTempleUIInit (int lp_parentPanel) {
int init_i;
// Variable Declarations
int[6] lv_panels;
int lv_currentPanelLayer;
int lv_itTemple;
int lv_itBullets;
// Automatic Variable Declarations
const int auto34909C28_ae = 3;
const int auto34909C28_ai = 1;
const int autoDAB59C4F_ae = 5;
const int autoDAB59C4F_ai = 1;
// Variable Initialization
for (init_i = 0; init_i <= 5; init_i += 1) {
lv_panels[init_i] = c_invalidDialogControlId;
}
// Implementation
DialogControlCreateInPanelFromTemplate(lp_parentPanel, c_triggerControlTypePanel, "CapturePoints/CapturePointsPanel");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMLCP_gv_mMSkyTemplePanel.lv_mainContainerPanel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "TimerModeFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "TempleActivateLabel");
libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeNameLabel = DialogControlLastCreated();
libNtve_gf_SetDialogItemText(DialogControlLastCreated(), StringExternal("Param/Value/lib_MLCP_6E780D54"), PlayerGroupAll());
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "TempleActivateTimer");
libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeTimeLabel = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "TempleModeFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), true);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTempleModeFrame = DialogControlLastCreated();
lv_itTemple = 1;
for ( ; ( (auto34909C28_ai >= 0 && lv_itTemple <= auto34909C28_ae) || (auto34909C28_ai < 0 && lv_itTemple >= auto34909C28_ae) ) ; lv_itTemple += auto34909C28_ai ) {
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "ShrineIndicators"+IntToString(lv_itTemple));
libMLCP_gv_mMSkyTemplePanelIcons[lv_itTemple].lv_containerPanel = DialogControlLastCreated();
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "FireEffect");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libMLCP_gv_mMSkyTemplePanelIcons[lv_itTemple].lv_fireEffect = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "ShrineIcon");
libMLCP_gv_mMSkyTemplePanelIcons[lv_itTemple].lv_shrineIcon = DialogControlLastCreated();
DialogControlHookup(DialogControlLastCreated(), c_triggerControlTypePanel, "ShrineCaptureProgressMask");
libMLCP_gv_mMSkyTemplePanelIcons[lv_itTemple].lv_shrineCaptureProgressMask = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeProgressBar, "ShrineProgress");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libMLCP_gv_mMSkyTemplePanelIcons[lv_itTemple].lv_shrineProgress = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "CooldownLabel");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libMLCP_gv_mMSkyTemplePanelIcons[lv_itTemple].lv_cooldownLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "BulletContainer");
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
lv_itBullets = 1;
for ( ; ( (autoDAB59C4F_ai >= 0 && lv_itBullets <= autoDAB59C4F_ae) || (autoDAB59C4F_ai < 0 && lv_itBullets >= autoDAB59C4F_ae) ) ; lv_itBullets += autoDAB59C4F_ai ) {
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "Bullet"+IntToString(lv_itBullets));
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libMLCP_gv_mMSkyTemplePanelIcons[lv_itTemple].lv_bullets[lv_itBullets] = DialogControlLastCreated();
}
lv_currentPanelLayer -= 1;
lv_currentPanelLayer -= 1;
}
lv_currentPanelLayer -= 1;
TriggerExecute(libMLCP_gt_MMSkyTempleUIHandler, true, false);
}
void libMLCP_gf_MMSkyTempleUIShowHidePanel (bool lp_showHide) {
// Automatic Variable Declarations
// Implementation
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanel.lv_mainContainerPanel, PlayerGroupAll(), lp_showHide);
}
void libMLCP_gf_MMSkyTempleUISetMode (int lp_mode) {
// Variable Declarations
int lv_templeIndex;
// Automatic Variable Declarations
int autoE58CCFFC_val;
int autoD16269B0_ae;
const int autoD16269B0_ai = 1;
int auto89EB967B_ae;
const int auto89EB967B_ai = 1;
int auto28B51728_ae;
const int auto28B51728_ai = 1;
// Variable Initialization
// Implementation
autoE58CCFFC_val = lp_mode;
if (autoE58CCFFC_val == libMLCP_ge_MMSkyTempleUIModes_Idle) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeFrame, PlayerGroupAll(), false);
autoD16269B0_ae = libMLCP_gv_mMSkyTempleCount;
lv_templeIndex = 1;
for ( ; ( (autoD16269B0_ai >= 0 && lv_templeIndex <= autoD16269B0_ae) || (autoD16269B0_ai < 0 && lv_templeIndex >= autoD16269B0_ae) ) ; lv_templeIndex += autoD16269B0_ai ) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lv_templeIndex].lv_cooldownLabel, PlayerGroupAll(), false);
}
}
else if (autoE58CCFFC_val == libMLCP_ge_MMSkyTempleUIModes_Timer) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeFrame, PlayerGroupAll(), true);
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeTimeLabel, PlayerGroupAll(), true);
if ((libMLCP_gf_MMSkyTempleActivateTempleCount(true) > 1)) {
libNtve_gf_SetDialogItemText(libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeNameLabel, StringExternal("Param/Value/lib_MLCP_4CECE348"), PlayerGroupAll());
}
else {
libNtve_gf_SetDialogItemText(libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeNameLabel, StringExternal("Param/Value/lib_MLCP_6037C0FB"), PlayerGroupAll());
}
auto89EB967B_ae = libMLCP_gv_mMSkyTempleCount;
lv_templeIndex = 1;
for ( ; ( (auto89EB967B_ai >= 0 && lv_templeIndex <= auto89EB967B_ae) || (auto89EB967B_ai < 0 && lv_templeIndex >= auto89EB967B_ae) ) ; lv_templeIndex += auto89EB967B_ai ) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lv_templeIndex].lv_cooldownLabel, PlayerGroupAll(), false);
if ((libMLCP_gv_mMSkyTempleBlessNextTemples[lv_templeIndex] == true)) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lv_templeIndex].lv_cooldownLabel, PlayerGroupAll(), true);
}
}
}
else if (autoE58CCFFC_val == libMLCP_ge_MMSkyTempleUIModes_Temple) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeFrame, PlayerGroupAll(), true);
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeTimeLabel, PlayerGroupAll(), false);
if ((libMLCP_gf_MMSkyTempleActivateTempleCount(false) > 1)) {
libNtve_gf_SetDialogItemText(libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeNameLabel, StringExternal("Param/Value/lib_MLCP_1397187F"), PlayerGroupAll());
}
else {
libNtve_gf_SetDialogItemText(libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeNameLabel, StringExternal("Param/Value/lib_MLCP_54E93A1B"), PlayerGroupAll());
}
auto28B51728_ae = libMLCP_gv_mMSkyTempleCount;
lv_templeIndex = 1;
for ( ; ( (auto28B51728_ai >= 0 && lv_templeIndex <= auto28B51728_ae) || (auto28B51728_ai < 0 && lv_templeIndex >= auto28B51728_ae) ) ; lv_templeIndex += auto28B51728_ai ) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lv_templeIndex].lv_cooldownLabel, PlayerGroupAll(), false);
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lv_templeIndex].lv_fireEffect, PlayerGroupAll(), false);
DialogControlSetAnimationState(libMLCP_gv_mMSkyTemplePanelIcons[lv_templeIndex].lv_shrineIcon, PlayerGroupAll(), "Ownership", "Order");
}
}
else {
}
}
void libMLCP_gf_MMSkyTempleUISetWarningTime (int lp_time) {
// Variable Declarations
int lv_itTemple;
text lv_timeLabel;
// Automatic Variable Declarations
int autoFF16C892_ae;
const int autoFF16C892_ai = 1;
// Variable Initialization
// Implementation
if ((lp_time == 0)) {
lv_timeLabel = StringToText("");
}
else {
lv_timeLabel = TextTimeFormat(StringToText("<mintotal/>:<sec2/>"), lp_time);
}
libNtve_gf_SetDialogItemText(libMLCP_gv_mMSkyTemplePanel.lv_capturePointsTimerModeTimeLabel, lv_timeLabel, PlayerGroupAll());
autoFF16C892_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTemple = 1;
for ( ; ( (autoFF16C892_ai >= 0 && lv_itTemple <= autoFF16C892_ae) || (autoFF16C892_ai < 0 && lv_itTemple >= autoFF16C892_ae) ) ; lv_itTemple += autoFF16C892_ai ) {
libNtve_gf_SetDialogItemText(libMLCP_gv_mMSkyTemplePanelIcons[lv_itTemple].lv_cooldownLabel, lv_timeLabel, PlayerGroupAll());
}
}
void libMLCP_gf_MMSkyTempleUIEnableDisableTemple (bool lp_enableDisable, int lp_templeIndex) {
// Automatic Variable Declarations
// Implementation
if ((lp_enableDisable == false)) {
DialogControlSetAnimationState(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineIcon, PlayerGroupAll(), "Ownership", "Disable");
}
}
void libMLCP_gf_MMSkyTempleUISetTempleCaptureProgress (int lp_templeIndex, int lp_team, int lp_progress, int lp_progerssMax) {
// Variable Declarations
int lv_enemyTeam;
const int lv_width_C = 112;
const int lv_height_C = 112;
int lv_height;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
if ((lp_team == 0)) {
DialogControlSetAnimationState(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineProgress, PlayerGroupAll(), "Ownership", "Neutral");
return ;
}
lv_enemyTeam = libGame_gf_EnemyTeam(lp_team);
DialogControlSetAnimationState(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineIcon, libGame_gf_PlayersOnTeamHeroes(lp_team, false), "Ownership", "Order");
DialogControlSetAnimationState(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineIcon, libGame_gf_PlayersOnTeamHeroes(lv_enemyTeam, false), "Ownership", "Chaos");
if ((lp_team == libGame_gv_teamOrderIndex_C)) {
DialogControlSetAnimationState(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineIcon, libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], "Ownership", "Order");
}
else {
DialogControlSetAnimationState(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineIcon, libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], "Ownership", "Chaos");
}
lv_height = FixedToInt((IntToFixed(lp_progress)*IntToFixed(lv_height_C)/lp_progerssMax));
DialogControlSetSize(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineCaptureProgressMask, PlayerGroupAll(), lv_width_C, lv_height);
}
void libMLCP_gf_MMSkyTempleUISetTempleStage (int lp_templeIndex, int lp_stage, int lp_progress) {
// Variable Declarations
int lv_itFinalShot;
int lv_itBulletsToHide;
// Automatic Variable Declarations
int autoE8763B90_val;
const int autoB7690190_ae = 5;
const int autoB7690190_ai = 1;
const int autoFAF19C53_ae = 5;
const int autoFAF19C53_ai = 1;
const int auto0FB8CE74_ae = libMLCP_gv_mMSkyTempleTempleFinalShotCount_C;
const int auto0FB8CE74_ai = 1;
// Variable Initialization
// Implementation
autoE8763B90_val = lp_stage;
if (autoE8763B90_val == 1) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineIcon, PlayerGroupAll(), true);
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineProgress, PlayerGroupAll(), true);
libNtve_gf_SetDialogItemCurrentValue(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineProgress, lp_progress, PlayerGroupAll());
lv_itBulletsToHide = 1;
for ( ; ( (autoB7690190_ai >= 0 && lv_itBulletsToHide <= autoB7690190_ae) || (autoB7690190_ai < 0 && lv_itBulletsToHide >= autoB7690190_ae) ) ; lv_itBulletsToHide += autoB7690190_ai ) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_bullets[lv_itBulletsToHide], PlayerGroupAll(), false);
}
}
else if (autoE8763B90_val == 2) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineIcon, PlayerGroupAll(), true);
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineProgress, PlayerGroupAll(), false);
lv_itBulletsToHide = 1;
for ( ; ( (autoFAF19C53_ai >= 0 && lv_itBulletsToHide <= autoFAF19C53_ae) || (autoFAF19C53_ai < 0 && lv_itBulletsToHide >= autoFAF19C53_ae) ) ; lv_itBulletsToHide += autoFAF19C53_ai ) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_bullets[lv_itBulletsToHide], PlayerGroupAll(), true);
}
lv_itFinalShot = 1;
for ( ; ( (auto0FB8CE74_ai >= 0 && lv_itFinalShot <= auto0FB8CE74_ae) || (auto0FB8CE74_ai < 0 && lv_itFinalShot >= auto0FB8CE74_ae) ) ; lv_itFinalShot += auto0FB8CE74_ai ) {
if ((lv_itFinalShot <= lp_progress)) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_bullets[lv_itFinalShot], PlayerGroupAll(), true);
}
else {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_bullets[lv_itFinalShot], PlayerGroupAll(), false);
}
}
}
else {
}
}
void libMLCP_gf_MMSkyTempleUISetTempleOwner (int lp_team, int lp_templeIndex) {
// Automatic Variable Declarations
int autoECDBD92E_val;
// Implementation
autoECDBD92E_val = lp_team;
if (autoECDBD92E_val == 0) {
DialogControlSetAnimationState(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineProgress, PlayerGroupAll(), "Ownership", "Neutral");
}
else if (autoECDBD92E_val == libGame_gv_teamOrderIndex_C) {
DialogControlSetAnimationState(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineProgress, PlayerGroupAll(), "Ownership", "Order");
}
else if (autoECDBD92E_val == libGame_gv_teamChaosIndex_C) {
DialogControlSetAnimationState(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_shrineProgress, PlayerGroupAll(), "Ownership", "Chaos");
}
else {
}
}
void libMLCP_gf_MMSkyTempleUISetTempleContested (int lp_templeIndex, bool lp_team) {
// Automatic Variable Declarations
// Implementation
if ((lp_team == true)) {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_fireEffect, PlayerGroupAll(), true);
}
else {
DialogControlSetVisible(libMLCP_gv_mMSkyTemplePanelIcons[lp_templeIndex].lv_fireEffect, PlayerGroupAll(), false);
}
}
trigger auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_Trigger = null;
int auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_lp_fromTeam;
int auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_lp_labelAnchor;
int auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_lp_damage;
void libMLCP_gf_MMSkyTempleUIShowDamageLabel (int lp_fromTeam, int lp_labelAnchor, int lp_damage) {
auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_lp_fromTeam = lp_fromTeam;
auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_lp_labelAnchor = lp_labelAnchor;
auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_lp_damage = lp_damage;
if (auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_TriggerFunc (bool testConds, bool runActions) {
int lp_fromTeam = auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_lp_fromTeam;
int lp_labelAnchor = auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_lp_labelAnchor;
int lp_damage = auto_libMLCP_gf_MMSkyTempleUIShowDamageLabel_lp_damage;
// Variable Declarations
int lv_enemyTeam;
int lv_frame;
int lv_label;
// Automatic Variable Declarations
// Variable Initialization
lv_frame = c_invalidDialogControlId;
lv_label = c_invalidDialogControlId;
// Implementation
libMLCP_gv_mMSkyTempleDamageLabelExtraIndex[lp_fromTeam] += 1;
if ((libMLCP_gv_mMSkyTempleDamageLabelExtraIndex[lp_fromTeam] > 5)) {
libMLCP_gv_mMSkyTempleDamageLabelExtraIndex[lp_fromTeam] = 1;
}
lv_frame = libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleFireEffect4[lp_fromTeam][libMLCP_gv_mMSkyTempleDamageLabelExtraIndex[lp_fromTeam]];
lv_label = libMLCP_gv_mMSkyTemplePanelDEPRECATE.lv_capturePointsTempleFireEffect5[lp_fromTeam][libMLCP_gv_mMSkyTempleDamageLabelExtraIndex[lp_fromTeam]];
DialogControlSetPositionRelative(lv_frame, PlayerGroupAll(), c_anchorCenter, lp_labelAnchor, c_anchorCenter, 0, 0);
libNtve_gf_SetDialogItemText(lv_label, IntToText(lp_damage), PlayerGroupAll());
lv_enemyTeam = libGame_gf_EnemyTeam(lp_fromTeam);
libNtve_gf_SetDialogItemStyle(lv_label, "Storm_MapMechanic_MechanicSmallCounter_Blue", GameAttributePlayersForTeam(lp_fromTeam));
libNtve_gf_SetDialogItemStyle(lv_label, "Storm_MapMechanic_MechanicSmallCounter_Red", GameAttributePlayersForTeam(lv_enemyTeam));
if ((lp_fromTeam == libGame_gv_teamOrderIndex_C)) {
libNtve_gf_SetDialogItemStyle(lv_label, "Storm_MapMechanic_MechanicSmallCounter_Blue", GameAttributePlayersForTeam(lp_fromTeam));
}
else {
libNtve_gf_SetDialogItemStyle(lv_label, "Storm_MapMechanic_MechanicSmallCounter_Red", GameAttributePlayersForTeam(lv_enemyTeam));
}
DialogControlSetEnabled(lv_label, PlayerGroupAll(), false);
DialogControlSetEnabled(lv_label, PlayerGroupAll(), true);
return true;
}
void libMLCP_gf_TempleMasterSendAwardData () {
// Variable Declarations
fixed lv_time;
int lv_playerIterator;
int lv_pointIterator;
// Automatic Variable Declarations
const int auto31BE04BE_ae = libCore_gv_bALMaxPlayers;
const int auto31BE04BE_ai = 1;
int autoDB2D1309_ae;
const int autoDB2D1309_ai = 1;
// Variable Initialization
// Implementation
lv_playerIterator = 1;
for ( ; ( (auto31BE04BE_ai >= 0 && lv_playerIterator <= auto31BE04BE_ae) || (auto31BE04BE_ai < 0 && lv_playerIterator >= auto31BE04BE_ae) ) ; lv_playerIterator += auto31BE04BE_ai ) {
lv_time = 0.0;
autoDB2D1309_ae = libMLCP_gv_mMSkyTempleCount;
lv_pointIterator = 1;
for ( ; ( (autoDB2D1309_ai >= 0 && lv_pointIterator <= autoDB2D1309_ae) || (autoDB2D1309_ai < 0 && lv_pointIterator >= autoDB2D1309_ae) ) ; lv_pointIterator += autoDB2D1309_ai ) {
lv_time += libGame_gf_CapturePointGetCaptureTimeForPlayer(libMLCP_gv_mMSkyTemples[lv_pointIterator].lv_beaconIndex, lv_playerIterator);
}
libGame_gf_SendMapSpecificAwardEvent(lv_playerIterator, lv_time, false);
}
}
void libMLCP_gf_MMSkyTempleSetLevel () {
// Variable Declarations
unitgroup lv_unitGroup;
// Automatic Variable Declarations
unitgroup auto940767C5_g;
int auto940767C5_u;
unit auto940767C5_var;
unitgroup autoF2EB85E4_g;
int autoF2EB85E4_u;
unit autoF2EB85E4_var;
unitgroup auto4833021D_g;
int auto4833021D_u;
unit auto4833021D_var;
unitgroup auto2BCE5A90_g;
int auto2BCE5A90_u;
unit auto2BCE5A90_var;
unitgroup autoCEDD9A41_g;
int autoCEDD9A41_u;
unit autoCEDD9A41_var;
unitgroup auto43AB1A21_g;
int auto43AB1A21_u;
unit auto43AB1A21_var;
// Variable Initialization
lv_unitGroup = UnitGroupEmpty();
// Implementation
auto940767C5_g = UnitGroup("LuxoriaTemple", c_playerAny, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto940767C5_u = UnitGroupCount(auto940767C5_g, c_unitCountAll);
for (;; auto940767C5_u -= 1) {
auto940767C5_var = UnitGroupUnitFromEnd(auto940767C5_g, auto940767C5_u);
if (auto940767C5_var == null) { break; }
UnitGroupAdd(lv_unitGroup, auto940767C5_var);
}
autoF2EB85E4_g = UnitGroup("TempleDefenderMelee", c_playerAny, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoF2EB85E4_u = UnitGroupCount(autoF2EB85E4_g, c_unitCountAll);
for (;; autoF2EB85E4_u -= 1) {
autoF2EB85E4_var = UnitGroupUnitFromEnd(autoF2EB85E4_g, autoF2EB85E4_u);
if (autoF2EB85E4_var == null) { break; }
UnitGroupAdd(lv_unitGroup, autoF2EB85E4_var);
}
auto4833021D_g = UnitGroup("TempleDefenderRanged", c_playerAny, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto4833021D_u = UnitGroupCount(auto4833021D_g, c_unitCountAll);
for (;; auto4833021D_u -= 1) {
auto4833021D_var = UnitGroupUnitFromEnd(auto4833021D_g, auto4833021D_u);
if (auto4833021D_var == null) { break; }
UnitGroupAdd(lv_unitGroup, auto4833021D_var);
}
auto2BCE5A90_g = UnitGroup("TempleChampionBoss", c_playerAny, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto2BCE5A90_u = UnitGroupCount(auto2BCE5A90_g, c_unitCountAll);
for (;; auto2BCE5A90_u -= 1) {
auto2BCE5A90_var = UnitGroupUnitFromEnd(auto2BCE5A90_g, auto2BCE5A90_u);
if (auto2BCE5A90_var == null) { break; }
UnitGroupAdd(lv_unitGroup, auto2BCE5A90_var);
}
autoCEDD9A41_g = UnitGroup("TempleGuardianBoss", c_playerAny, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoCEDD9A41_u = UnitGroupCount(autoCEDD9A41_g, c_unitCountAll);
for (;; autoCEDD9A41_u -= 1) {
autoCEDD9A41_var = UnitGroupUnitFromEnd(autoCEDD9A41_g, autoCEDD9A41_u);
if (autoCEDD9A41_var == null) { break; }
UnitGroupAdd(lv_unitGroup, autoCEDD9A41_var);
}
auto43AB1A21_g = lv_unitGroup;
auto43AB1A21_u = UnitGroupCount(auto43AB1A21_g, c_unitCountAll);
for (;; auto43AB1A21_u -= 1) {
auto43AB1A21_var = UnitGroupUnitFromEnd(auto43AB1A21_g, auto43AB1A21_u);
if (auto43AB1A21_var == null) { break; }
UnitSetPropertyFixed(auto43AB1A21_var, c_unitPropXP, 0.0);
Wait(0.0625, c_timeGame);
libGame_gf_UpdateScalingForUnit(auto43AB1A21_var, libGame_gv_scalingTicks, 0);
}
}
trigger auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ_Trigger = null;
playergroup auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ_lp_players;
void libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ (playergroup lp_players) {
auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ_lp_players = lp_players;
if (auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ_TriggerFunc (bool testConds, bool runActions) {
playergroup lp_players = auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivationWarningQ_lp_players;
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "TempleActivationWarning", "Value", 1, 1);
if ((libMLCP_gv_mMSkyTempleBlessingFirstTime == true)) {
UserDataSetInt("MapVOEvent", "TempleActivationWarningFirstTime", "Value", 1, 1);
}
ConversationDataRun("CapturePointsVO", PlayerGroupAll(), c_conversationSkipNone, true);
TriggerQueueExit();
return true;
}
trigger auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ_Trigger = null;
playergroup auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ_lp_players;
void libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ (playergroup lp_players) {
auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ_lp_players = lp_players;
if (auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ_TriggerFunc (bool testConds, bool runActions) {
playergroup lp_players = auto_libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ_lp_players;
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "TempleActivated", "Value", 1, 1);
if ((libMLCP_gv_mMSkyTempleBlessingFirstTime == true)) {
UserDataSetInt("MapVOEvent", "TempleActivatedFirstTime", "Value", 1, 1);
}
ConversationDataRun("CapturePointsVO", PlayerGroupAll(), c_conversationSkipNone, true);
TriggerQueueExit();
return true;
}
trigger auto_libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ_Trigger = null;
playergroup auto_libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ_lp_players;
void libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ (playergroup lp_players) {
auto_libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ_lp_players = lp_players;
if (auto_libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ_Trigger == null) {
auto_libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ_Trigger = TriggerCreate("auto_libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ_TriggerFunc");
}
TriggerExecute(auto_libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ_Trigger, false, false);
}
bool auto_libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ_TriggerFunc (bool testConds, bool runActions) {
playergroup lp_players = auto_libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ_lp_players;
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "TempleDeactivated", "Value", 1, 1);
ConversationDataRun("CapturePointsVO", PlayerGroupAll(), c_conversationSkipNone, true);
TriggerQueueExit();
return true;
}
// Triggers
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Init
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleInit_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itTempleIndex;
int lv_itPlayer;
// Automatic Variable Declarations
int auto3FC03D01_ae;
const int auto3FC03D01_ai = 1;
playergroup auto990D4B89_g;
// Variable Initialization
// Conditions
if (testConds) {
if (!((libGame_gf_MapMechanicInitializationMechanicType() == libMLCP_gv_mMSkyTempleMechanicName_C))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
ActorSend(libMapM_gv_mapMechanicControllerActor, "Signal MM1Off");
TriggerEnable(libMLCP_gt_MMSkyTempleGatesOpened, true);
TriggerEnable(libMLCP_gt_MMSkyTempleBlessWarningTimerExpires, true);
TriggerEnable(libMLCP_gt_MMSkyTempleDebugStart, true);
TriggerEnable(libMLCP_gt_MMSkyTempleDebugStart1, true);
TriggerEnable(libMLCP_gt_MMSkyTempleDebugNext, true);
TriggerEnable(libMLCP_gt_MMSkyTempleDebugScalingTime, true);
TriggerEnable(libMLCP_gt_MMSkyTempleSpawnTestTemple, true);
TriggerEnable(libMLCP_gt_MMSkyTempleAttacks, true);
TriggerEnable(libMLCP_gt_MMSkyTempleTempleDefenderDies, true);
auto3FC03D01_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (auto3FC03D01_ai >= 0 && lv_itTempleIndex <= auto3FC03D01_ae) || (auto3FC03D01_ai < 0 && lv_itTempleIndex >= auto3FC03D01_ae) ) ; lv_itTempleIndex += auto3FC03D01_ai ) {
libNtve_gf_CreateUnitsWithDefaultFacing(1, "InvisibleBeacon", c_unitCreateIgnorePlacement, UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple), PointWithOffset(UnitGetPosition(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple), 0.0, -7.5), null);
libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon = UnitLastCreated();
libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_bannerSconce = UnitGroupUnit(UnitGroup("LootBannerSconce", c_playerAny, RegionCircle(UnitGetPosition(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon), 10.0), UnitFilter(0, 0, 0, 0), 1), 1);
libGame_gf_CapturePointCreate(UnitLastCreated(), libMLCP_gv_mMSkyTempleTempleCaptureRadius_C, libMLCP_gv_mMSkyTempleTempleCaptureTime_C, libMLCP_gv_mMSkyTempleTempleCaptureOverTime_C, libGame_ge_CapturePointDecay_Neutral, libGame_ge_CapturePointDecay_Neutral, true);
libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beaconIndex = libGame_gf_LastCreatedCapturePoint();
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "SetScale 1.300000");
libGame_gf_CapturePointDisable(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beaconIndex);
auto990D4B89_g = PlayerGroupAll();
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto990D4B89_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
VisRevealArea(lv_itPlayer, RegionCircle(libMLCP_gf_MMSkyTempleLocation(lv_itTempleIndex), libMLCP_gv_mMSkyTempleTempleCaptureRadius_C), 0.125, false);
}
}
if ((RandomInt(1, 2) == 1)) {
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[1] = 3;
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[2] = 2;
}
else {
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[1] = 2;
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[2] = 3;
}
libMLCP_gv_mMSkyTempleBlessTemplesActivationGoal[3] = 2;
libGame_gf_SendMapSpecificAwardInitializeEventwithUserData(null, "Generic Instance");
libCore_gf_RegisterSegregationTrigger(libCore_ge_SegregationTriggerTypes_DefenderAIIssueOrdersToCreep, libMLCP_gt_MMSkyTempleDefenderAttackLogic);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleInit_Init () {
libMLCP_gt_MMSkyTempleInit = TriggerCreate("libMLCP_gt_MMSkyTempleInit_Func");
libGame_gf_MapMechanicInitialization(libMLCP_gt_MMSkyTempleInit);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Ping Data Init
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTemplePingDataInit_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libUIUI_gf_PingCreateNewPingTarget("LuxoriaTemple", false, null, StringExternal("Param/Value/lib_MLCP_775DA055"), StringExternal("Param/Value/lib_MLCP_0E3C3D40"), SoundLink("UI_Game_Ping_Help", -1), SoundLink("UI_Game_Ping_Attack", -1));
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTemplePingDataInit_Init () {
libMLCP_gt_MMSkyTemplePingDataInit = TriggerCreate("libMLCP_gt_MMSkyTemplePingDataInit_Func");
libCore_gf_IncludeModInitialization(libMLCP_gt_MMSkyTemplePingDataInit);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Announcer Init
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleAnnouncerInit_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libCore_gf_DataAnnouncerVOSetDefaultAnnouncerForPlayerGroup(PlayerGroupAll(), "SnakeGod");
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleAnnouncerInit_Init () {
libMLCP_gt_MMSkyTempleAnnouncerInit = TriggerCreate("libMLCP_gt_MMSkyTempleAnnouncerInit_Func");
libCore_gf_IncludeModInitialization(libMLCP_gt_MMSkyTempleAnnouncerInit);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Gates Opened
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleGatesOpened_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((libMapM_gv_mMMapMechanicDisabled == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TimerStart(libMLCP_gv_mMSkyTempleObjectivePreviewTimer, libMLCP_gv_mMSkyTempleObjectivePreviewDelay_C, false, c_timeGame);
Wait((libMLCP_gv_mMSkyTempleFirstTempleStartTime_C - libMLCP_gv_mMSkyTempleTempleBlessWarningTime), c_timeGame);
if ((TriggerIsEnabled(TriggerGetCurrent()) == false)) {
return true;
}
libMLCP_gf_MMSkyTemplePrepareTemples();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleGatesOpened_Init () {
libMLCP_gt_MMSkyTempleGatesOpened = TriggerCreate("libMLCP_gt_MMSkyTempleGatesOpened_Func");
TriggerEnable(libMLCP_gt_MMSkyTempleGatesOpened, false);
TriggerAddEventTimer(libMLCP_gt_MMSkyTempleGatesOpened, libGame_gv_openTheGatesTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Objective Preview Timer Expires
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleObjectivePreviewTimerExpires_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMLCP_gf_MMSkyTempleSetupPreview();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleObjectivePreviewTimerExpires_Init () {
libMLCP_gt_MMSkyTempleObjectivePreviewTimerExpires = TriggerCreate("libMLCP_gt_MMSkyTempleObjectivePreviewTimerExpires_Func");
TriggerAddEventTimer(libMLCP_gt_MMSkyTempleObjectivePreviewTimerExpires, libMLCP_gv_mMSkyTempleObjectivePreviewTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Bless Warning Timer Expires
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleBlessWarningTimerExpires_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itTempleIndex;
bool lv_finished;
// Automatic Variable Declarations
int autoA126A775_ae;
const int autoA126A775_ai = 1;
int autoBE35738B_ae;
const int autoBE35738B_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
libMLCP_gv_mMSkyTempleBlessIndex += 1;
libMLCP_gf_MMSkyTempleTransmissionTempleActivatedQ(PlayerGroupAll());
autoA126A775_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (autoA126A775_ai >= 0 && lv_itTempleIndex <= autoA126A775_ae) || (autoA126A775_ai < 0 && lv_itTempleIndex >= autoA126A775_ae) ) ; lv_itTempleIndex += autoA126A775_ai ) {
if ((libMLCP_gv_mMSkyTempleBlessNextTemples[lv_itTempleIndex] == true)) {
libMLCP_gf_MMSkyTempleBlessTemple(lv_itTempleIndex);
}
}
while (true) {
lv_finished = true;
autoBE35738B_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (autoBE35738B_ai >= 0 && lv_itTempleIndex <= autoBE35738B_ae) || (autoBE35738B_ai < 0 && lv_itTempleIndex >= autoBE35738B_ae) ) ; lv_itTempleIndex += autoBE35738B_ai ) {
if ((libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_blessed == true)) {
lv_finished = false;
}
}
if ((lv_finished == true)) {
break;
}
Wait(1.0, c_timeGame);
}
TimerStart(libMLCP_gv_mMSkyTempleObjectivePreviewTimer, libMLCP_gv_mMSkyTempleObjectivePreviewDelay_C, false, c_timeGame);
libMLCP_gf_MMSkyTempleTransmissionTempleDeactivatedQ(PlayerGroupAll());
Wait((libMLCP_gv_mMSkyTempleTempleCooldown_C - libMLCP_gv_mMSkyTempleTempleBlessWarningTime), c_timeGame);
libMLCP_gf_MMSkyTemplePrepareTemples();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleBlessWarningTimerExpires_Init () {
libMLCP_gt_MMSkyTempleBlessWarningTimerExpires = TriggerCreate("libMLCP_gt_MMSkyTempleBlessWarningTimerExpires_Func");
TriggerEnable(libMLCP_gt_MMSkyTempleBlessWarningTimerExpires, false);
TriggerAddEventTimer(libMLCP_gt_MMSkyTempleBlessWarningTimerExpires, libMLCP_gv_mMSkyTempleBlessingWarningTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Defender Attack Logic
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleDefenderAttackLogic_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_defenderAIIndex;
int lv_templeIndex;
unit lv_creepUnit;
unitgroup lv_validTargets;
order lv_currentOrder;
unit lv_currentOrderTarget;
unitgroup lv_testTargets;
unit lv_bestTarget;
// Automatic Variable Declarations
// Variable Initialization
lv_defenderAIIndex = libCore_gv_segTriggerIndex;
lv_creepUnit = libCore_gv_segTriggerUnit;
lv_validTargets = UnitGroupEmpty();
// Actions
if (!runActions) {
return true;
}
lv_templeIndex = libMLCP_gf_MMSkyTempleTempleIndexForDefenders(lv_defenderAIIndex);
if ((lv_templeIndex <= 0)) {
return true;
}
if ((libAIAI_gv_defenderAICreepNeedsNewOrder == false)) {
return true;
}
lv_validTargets = libAIAI_gf_DefenderValidTargets(lv_defenderAIIndex);
if ((UnitGroupCount(lv_validTargets, c_unitCountAlive) <= 0)) {
return true;
}
lv_currentOrder = UnitOrder(lv_creepUnit, 0);
if ((!(((lv_currentOrder == null) || (OrderGetAbilityCommand(lv_currentOrder) == AbilityCommand("move", 0)) || (OrderGetAbilityCommand(lv_currentOrder) == AbilityCommand("move", 4)) || (OrderGetAbilityCommand(lv_currentOrder) == AbilityCommand("attack", 0)) || (OrderGetAbilityCommand(lv_currentOrder) == AbilityCommand("AttackAlly", 0)))))) {
return true;
}
lv_currentOrderTarget = OrderGetTargetUnit(lv_currentOrder);
if ((UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_templeIndex].lv_temple) != libCore_gv_cOMPUTER_Neutral)) {
lv_testTargets = UnitGroupFilterAlliance(lv_validTargets, UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_templeIndex].lv_beacon), c_unitAllianceAlly, 0);
if ((UnitIsValid(lv_currentOrderTarget) == true) && (UnitGroupHasUnit(lv_testTargets, lv_currentOrderTarget) == true)) {
lv_bestTarget = lv_currentOrderTarget;
}
else {
lv_bestTarget = UnitGroupClosestToPoint(lv_testTargets, UnitGetPosition(lv_creepUnit));
}
}
if ((UnitIsValid(lv_bestTarget) != true)) {
lv_testTargets = UnitGroupFilterRegion(lv_validTargets, libAIAI_gf_DefenderAgroRegion(lv_defenderAIIndex), 0);
lv_bestTarget = UnitGroupClosestToPoint(lv_testTargets, UnitGetPosition(lv_creepUnit));
}
if ((UnitIsValid(lv_bestTarget) != true)) {
if ((UnitIsValid(lv_currentOrderTarget) == true) && (UnitGroupHasUnit(lv_validTargets, lv_currentOrderTarget) == true)) {
lv_bestTarget = lv_currentOrderTarget;
}
else {
lv_bestTarget = UnitGroupClosestToPoint(lv_validTargets, UnitGetPosition(lv_creepUnit));
}
}
if ((lv_bestTarget != null) && (lv_bestTarget != lv_currentOrderTarget)) {
UnitIssueOrder(lv_creepUnit, OrderTargetingUnit(AbilityCommand("attack", 0), lv_bestTarget), c_orderQueueReplace);
}
libAIAI_gv_defenderAICreepNeedsNewOrder = false;
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleDefenderAttackLogic_Init () {
libMLCP_gt_MMSkyTempleDefenderAttackLogic = TriggerCreate("libMLCP_gt_MMSkyTempleDefenderAttackLogic_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Temple Defender Dies
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleTempleDefenderDies_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "TempleGuardianBoss"))) {
return false;
}
if (!((UnitGroupHasUnit(libMLCP_gv_mMSkyTempleDefenderWithGlobes, EventUnit()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RegenGlobeNeutral", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Neutral, UnitGetPosition(EventUnit()), null);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleTempleDefenderDies_Init () {
libMLCP_gt_MMSkyTempleTempleDefenderDies = TriggerCreate("libMLCP_gt_MMSkyTempleTempleDefenderDies_Func");
TriggerEnable(libMLCP_gt_MMSkyTempleTempleDefenderDies, false);
TriggerAddEventUnitDied(libMLCP_gt_MMSkyTempleTempleDefenderDies, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Beacon Captured
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleBeaconCaptured_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_count;
playergroup lv_capturingPlayer;
int lv_itTempleIndex;
// Automatic Variable Declarations
int autoF1269D9C_ae;
const int autoF1269D9C_ai = 1;
// Variable Initialization
lv_capturingPlayer = PlayerGroupEmpty();
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "InvisibleBeacon"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoF1269D9C_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (autoF1269D9C_ai >= 0 && lv_itTempleIndex <= autoF1269D9C_ae) || (autoF1269D9C_ai < 0 && lv_itTempleIndex >= autoF1269D9C_ae) ) ; lv_itTempleIndex += autoF1269D9C_ai ) {
if ((libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon == EventUnit())) {
UnitSetOwner(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon), true);
StatEventCreate("SkyTempleCaptured");
StatEventAddDataInt(StatEventLastCreated(), "Event", libMLCP_gv_mMSkyTempleBlessIndex);
StatEventAddDataInt(StatEventLastCreated(), "TempleID", lv_itTempleIndex);
StatEventAddDataInt(StatEventLastCreated(), "TeamID", libGame_gf_TeamNumberOfPlayer(UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple)));
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventSend(StatEventLastCreated());
if ((libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_blessed == true)) {
if ((UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple) == libCore_gv_cOMPUTER_Neutral)) {
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, "SetMinimapVisibility");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, "SetMinimapVisibilityAlways");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "SetMinimapVisibility 1");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "SetMinimapVisibilityAlways 1");
}
else {
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, "SetMinimapVisibility 1");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple, "SetMinimapVisibilityAlways 1");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "SetMinimapVisibility");
libNtve_gf_SendActorMessageToUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_minimapIcon, "SetMinimapVisibilityAlways");
}
}
break;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleBeaconCaptured_Init () {
libMLCP_gt_MMSkyTempleBeaconCaptured = TriggerCreate("libMLCP_gt_MMSkyTempleBeaconCaptured_Func");
TriggerAddEventUnitChangeOwner(libMLCP_gt_MMSkyTempleBeaconCaptured, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Game Over
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleGameOver_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_playerTime;
int lv_itCapturePoint;
int lv_itPlayer;
// Automatic Variable Declarations
const int auto6611B4E3_ae = libCore_gv_bALMaxPlayers;
const int auto6611B4E3_ai = 1;
int auto307F9D31_ae;
const int auto307F9D31_ai = 1;
// Variable Initialization
lv_itPlayer = 1;
// Actions
if (!runActions) {
return true;
}
lv_itPlayer = 1;
for ( ; ( (auto6611B4E3_ai >= 0 && lv_itPlayer <= auto6611B4E3_ae) || (auto6611B4E3_ai < 0 && lv_itPlayer >= auto6611B4E3_ae) ) ; lv_itPlayer += auto6611B4E3_ai ) {
lv_playerTime = 0.0;
auto307F9D31_ae = libMLCP_gv_mMSkyTempleCount;
lv_itCapturePoint = 1;
for ( ; ( (auto307F9D31_ai >= 0 && lv_itCapturePoint <= auto307F9D31_ae) || (auto307F9D31_ai < 0 && lv_itCapturePoint >= auto307F9D31_ae) ) ; lv_itCapturePoint += auto307F9D31_ai ) {
lv_playerTime += libGame_gf_CapturePointGetCaptureTimeForPlayer(libMLCP_gv_mMSkyTemples[lv_itCapturePoint].lv_beaconIndex, lv_itPlayer);
}
libGame_gf_SendMapSpecificAwardEvent(lv_itPlayer, lv_playerTime, false);
libGame_gf_ScoreValuesReportIntegerValueAndLog(lv_itPlayer, "TimeInTemple", FixedToInt(lv_playerTime));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleGameOver_Init () {
libMLCP_gt_MMSkyTempleGameOver = TriggerCreate("libMLCP_gt_MMSkyTempleGameOver_Func");
libGame_gf_GameOverEvent(libMLCP_gt_MMSkyTempleGameOver);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Beacon Color
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleBeaconColor_Func (bool testConds, bool runActions) {
int init_i;
// Variable Declarations
int lv_itTempleIndex;
int lv_owner;
int[libMLCP_gv_mMSkyTempleMaxCount_C + 1] lv_oldOwner;
int lv_itDefenderIndex;
color lv_color;
// Automatic Variable Declarations
int autoA872980B_ae;
const int autoA872980B_ai = 1;
int auto20F335D9_val;
const int auto4C5692C5_ae = 5;
const int auto4C5692C5_ai = 1;
int auto0D103B42_val;
// Variable Initialization
for (init_i = 0; init_i <= libMLCP_gv_mMSkyTempleMaxCount_C; init_i += 1) {
lv_oldOwner[init_i] = libCore_gv_cOMPUTER_Neutral;
}
lv_color = Color(0,0,0);
// Actions
if (!runActions) {
return true;
}
while (true) {
if ((libGame_gv_gameOver == true)) {
return true;
}
autoA872980B_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (autoA872980B_ai >= 0 && lv_itTempleIndex <= autoA872980B_ae) || (autoA872980B_ai < 0 && lv_itTempleIndex >= autoA872980B_ae) ) ; lv_itTempleIndex += autoA872980B_ai ) {
if ((libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_blessed == false)) {
if ((lv_oldOwner[lv_itTempleIndex] != libCore_gv_cOMPUTER_Neutral)) {
libCore_gf_SendActorMessageToDoodadsInRegion("Signal NeutralOwner", RegionCircle(UnitGetPosition(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon), 12.0), null);
lv_oldOwner[lv_itTempleIndex] = libCore_gv_cOMPUTER_Neutral;
}
continue;
}
lv_owner = UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon);
if ((lv_owner != lv_oldOwner[lv_itTempleIndex])) {
auto20F335D9_val = lv_owner;
if (auto20F335D9_val == libCore_gv_cOMPUTER_TeamOrder) {
libCore_gf_SendActorMessageToDoodadsInRegion("Signal OrderOwner", RegionCircle(UnitGetPosition(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon), 12.0), null);
}
else if (auto20F335D9_val == libCore_gv_cOMPUTER_TeamChaos) {
libCore_gf_SendActorMessageToDoodadsInRegion("Signal ChaosOwner", RegionCircle(UnitGetPosition(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon), 12.0), null);
}
else if (auto20F335D9_val == libCore_gv_cOMPUTER_Neutral) {
libCore_gf_SendActorMessageToDoodadsInRegion("Signal NeutralOwner", RegionCircle(UnitGetPosition(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_beacon), 12.0), null);
}
else {
}
lv_itDefenderIndex = 1;
for ( ; ( (auto4C5692C5_ai >= 0 && lv_itDefenderIndex <= auto4C5692C5_ae) || (auto4C5692C5_ai < 0 && lv_itDefenderIndex >= auto4C5692C5_ae) ) ; lv_itDefenderIndex += auto4C5692C5_ai ) {
if ((libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_defenderArray[lv_itDefenderIndex] != null) && (UnitIsAlive(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_defenderArray[lv_itDefenderIndex]) == true) && (libCore_gf_ActorStoredForUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_defenderArray[lv_itDefenderIndex], 1) != null) && (UnitGroupHasUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_defendersActivated, libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_defenderArray[lv_itDefenderIndex]) == false)) {
auto0D103B42_val = lv_owner;
if (auto0D103B42_val == libCore_gv_cOMPUTER_TeamOrder) {
ActorSend(libCore_gf_ActorStoredForUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_defenderArray[lv_itDefenderIndex], 1), "SetPlayerId 11");
}
else if (auto0D103B42_val == libCore_gv_cOMPUTER_TeamChaos) {
ActorSend(libCore_gf_ActorStoredForUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_defenderArray[lv_itDefenderIndex], 1), "SetPlayerId 12");
}
else if (auto0D103B42_val == libCore_gv_cOMPUTER_Neutral) {
ActorSend(libCore_gf_ActorStoredForUnit(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_defenderArray[lv_itDefenderIndex], 1), "SetPlayerId");
}
else {
}
}
}
lv_oldOwner[lv_itTempleIndex] = lv_owner;
}
}
Wait(0.25, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleBeaconColor_Init () {
libMLCP_gt_MMSkyTempleBeaconColor = TriggerCreate("libMLCP_gt_MMSkyTempleBeaconColor_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Attacks
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleAttacks_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itTempleIndex;
// Automatic Variable Declarations
int autoD73C9856_ae;
const int autoD73C9856_ai = 1;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnitDamageSourceUnit()) == "LuxoriaTemple"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoD73C9856_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTempleIndex = 1;
for ( ; ( (autoD73C9856_ai >= 0 && lv_itTempleIndex <= autoD73C9856_ae) || (autoD73C9856_ai < 0 && lv_itTempleIndex >= autoD73C9856_ae) ) ; lv_itTempleIndex += autoD73C9856_ai ) {
if ((libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple == EventUnitDamageSourceUnit())) {
libMLCP_gf_MMSkyTempleShootingPing(lv_itTempleIndex, EventUnit());
StatEventCreate("SkyTempleShotsFired");
StatEventAddDataInt(StatEventLastCreated(), "Event", libMLCP_gv_mMSkyTempleBlessIndex);
StatEventAddDataInt(StatEventLastCreated(), "TempleID", lv_itTempleIndex);
StatEventAddDataInt(StatEventLastCreated(), "TeamID", libGame_gf_TeamNumberOfPlayer(UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_itTempleIndex].lv_temple)));
StatEventAddDataFixed(StatEventLastCreated(), "SkyTempleShotsDamage", EventUnitDamageAmount());
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventSend(StatEventLastCreated());
break;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleAttacks_Init () {
libMLCP_gt_MMSkyTempleAttacks = TriggerCreate("libMLCP_gt_MMSkyTempleAttacks_Func");
TriggerEnable(libMLCP_gt_MMSkyTempleAttacks, false);
TriggerAddEventUnitDamaged(libMLCP_gt_MMSkyTempleAttacks, null, c_unitDamageTypeAny, c_unitDamageEither, "LuxoriaTempleStage1WeaponDamage");
TriggerAddEventUnitDamaged(libMLCP_gt_MMSkyTempleAttacks, null, c_unitDamageTypeAny, c_unitDamageEither, "LuxoriaTempleStage2WeaponDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple UI Mod Initialize
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleUIModInitialize_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMLCP_gf_MMSkyTempleUIInit(libUIUI_gv_mapMechanicsPanel.lv_mainPanel);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleUIModInitialize_Init () {
libMLCP_gt_MMSkyTempleUIModInitialize = TriggerCreate("libMLCP_gt_MMSkyTempleUIModInitialize_Func");
libCore_gf_IncludeModInitialization(libMLCP_gt_MMSkyTempleUIModInitialize);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple UI Handler
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleUIHandler_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itTeam;
int lv_itTeamEnemy;
int lv_itTemplIndex;
int lv_state;
int lv_lastState;
int lv_stage;
int lv_ownerTeam;
bool lv_finalShooting;
// Automatic Variable Declarations
int auto220F810A_ae;
const int auto220F810A_ai = 1;
int auto707CDB48_ae;
const int auto707CDB48_ai = 1;
int auto00653FA5_ae;
const int auto00653FA5_ai = 1;
// Variable Initialization
lv_state = libMLCP_ge_MMSkyTempleUIState_None;
lv_lastState = libMLCP_ge_MMSkyTempleUIState_None;
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
auto220F810A_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTemplIndex = 1;
for ( ; ( (auto220F810A_ai >= 0 && lv_itTemplIndex <= auto220F810A_ae) || (auto220F810A_ai < 0 && lv_itTemplIndex >= auto220F810A_ae) ) ; lv_itTemplIndex += auto220F810A_ai ) {
libNtve_gf_SetDialogItemMinimumValue(libMLCP_gv_mMSkyTemplePanelIcons[lv_itTemplIndex].lv_shrineProgress, 0.0, PlayerGroupAll());
libNtve_gf_SetDialogItemMaximumValue(libMLCP_gv_mMSkyTemplePanelIcons[lv_itTemplIndex].lv_shrineProgress, libMLCP_gv_mMSkyTempleTempleStageDuration_C, PlayerGroupAll());
}
libMLCP_gf_MMSkyTempleUIShowHidePanel(true);
while (true) {
if ((TimerIsPaused(libMLCP_gv_mMSkyTempleBlessingWarningTimer) == false) && (TimerGetRemaining(libMLCP_gv_mMSkyTempleBlessingWarningTimer) > 0.0)) {
lv_state = libMLCP_ge_MMSkyTempleUIState_Preparing;
if ((lv_state != lv_lastState)) {
libMLCP_gf_MMSkyTempleUISetMode(libMLCP_ge_MMSkyTempleUIModes_Timer);
TriggerStop(libMLCP_gt_MMSkyTempleUIHandlerCaptureProgress);
TriggerEnable(libMLCP_gt_MMSkyTempleUIHandlerCaptureProgress, true);
}
libMLCP_gf_MMSkyTempleUISetWarningTime(FixedToInt(TimerGetRemaining(libMLCP_gv_mMSkyTempleBlessingWarningTimer)));
lv_lastState = lv_state;
}
else if (((libMLCP_gv_mMSkyTemples[(libMLCP_ge_MMSkyTempleTempleIndex_Top)].lv_blessed == true) || (libMLCP_gv_mMSkyTemples[(libMLCP_ge_MMSkyTempleTempleIndex_Middle)].lv_blessed == true) || (libMLCP_gv_mMSkyTemples[(libMLCP_ge_MMSkyTempleTempleIndex_Bottom)].lv_blessed == true))) {
lv_state = libMLCP_ge_MMSkyTempleUIState_Blessed;
if ((lv_state != lv_lastState)) {
libMLCP_gf_MMSkyTempleUISetMode(libMLCP_ge_MMSkyTempleUIModes_Temple);
TriggerExecute(libMLCP_gt_MMSkyTempleUIHandlerCaptureProgress, true, false);
}
auto707CDB48_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTemplIndex = 1;
for ( ; ( (auto707CDB48_ai >= 0 && lv_itTemplIndex <= auto707CDB48_ae) || (auto707CDB48_ai < 0 && lv_itTemplIndex >= auto707CDB48_ae) ) ; lv_itTemplIndex += auto707CDB48_ai ) {
if ((libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_blessed == true)) {
libMLCP_gf_MMSkyTempleUIEnableDisableTemple(true, lv_itTemplIndex);
if ((libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_finalStage == false)) {
libMLCP_gf_MMSkyTempleUISetTempleStage(lv_itTemplIndex, 1, FixedToInt((libMLCP_gv_mMSkyTempleTempleStageDuration_C - libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_progress)));
libMLCP_gf_MMSkyTempleUISetTempleOwner(libGame_gf_TeamNumberOfPlayer(UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_temple)), lv_itTemplIndex);
}
else {
libMLCP_gf_MMSkyTempleUISetTempleStage(lv_itTemplIndex, 2, libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_finalShots);
}
}
else {
libMLCP_gf_MMSkyTempleUIEnableDisableTemple(false, lv_itTemplIndex);
}
}
lv_lastState = lv_state;
}
else if (true) {
lv_state = libMLCP_ge_MMSkyTempleUIState_Idle;
if ((lv_state != lv_lastState)) {
libMLCP_gf_MMSkyTempleUISetMode(libMLCP_ge_MMSkyTempleUIModes_Idle);
TriggerStop(libMLCP_gt_MMSkyTempleUIHandlerCaptureProgress);
TriggerEnable(libMLCP_gt_MMSkyTempleUIHandlerCaptureProgress, true);
}
auto00653FA5_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTemplIndex = 1;
for ( ; ( (auto00653FA5_ai >= 0 && lv_itTemplIndex <= auto00653FA5_ae) || (auto00653FA5_ai < 0 && lv_itTemplIndex >= auto00653FA5_ae) ) ; lv_itTemplIndex += auto00653FA5_ai ) {
libMLCP_gf_MMSkyTempleUIEnableDisableTemple(false, lv_itTemplIndex);
libMLCP_gf_MMSkyTempleUISetTempleOwner(libCore_gv_cOMPUTER_Neutral, lv_itTemplIndex);
}
lv_lastState = lv_state;
}
Wait(0.5, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleUIHandler_Init () {
libMLCP_gt_MMSkyTempleUIHandler = TriggerCreate("libMLCP_gt_MMSkyTempleUIHandler_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple UI Handler Capture Progress
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleUIHandlerCaptureProgress_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itTemplIndex;
int lv_ownerTeam;
// Automatic Variable Declarations
int auto5DE251E7_ae;
const int auto5DE251E7_ai = 1;
int auto5B7EAAA1_val;
// Variable Initialization
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
while (true) {
auto5DE251E7_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTemplIndex = 1;
for ( ; ( (auto5DE251E7_ai >= 0 && lv_itTemplIndex <= auto5DE251E7_ae) || (auto5DE251E7_ai < 0 && lv_itTemplIndex >= auto5DE251E7_ae) ) ; lv_itTemplIndex += auto5DE251E7_ai ) {
if ((libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_blessed == true)) {
if ((libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_finalStage == false)) {
auto5B7EAAA1_val = UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_beacon);
if (auto5B7EAAA1_val == libCore_gv_cOMPUTER_TeamOrder) {
lv_ownerTeam = libGame_gv_teamOrderIndex_C;
}
else if (auto5B7EAAA1_val == libCore_gv_cOMPUTER_TeamChaos) {
lv_ownerTeam = libGame_gv_teamChaosIndex_C;
}
else if (auto5B7EAAA1_val == libCore_gv_cOMPUTER_Neutral) {
if ((libGame_gf_CapturePointCounter(libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_beaconIndex) > 0)) {
lv_ownerTeam = libGame_gv_teamOrderIndex_C;
}
else if ((libGame_gf_CapturePointCounter(libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_beaconIndex) < 0)) {
lv_ownerTeam = libGame_gv_teamChaosIndex_C;
}
else if (true) {
lv_ownerTeam = 0;
}
}
else {
}
libMLCP_gf_MMSkyTempleUISetTempleCaptureProgress(lv_itTemplIndex, lv_ownerTeam, AbsI(libGame_gf_CapturePointCounter(libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_beaconIndex)), libGame_gf_CapturePointCounterMax(libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_beaconIndex));
libMLCP_gf_MMSkyTempleUISetTempleContested(lv_itTemplIndex, libGame_gf_CapturePointContested(libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_beaconIndex));
}
else {
libMLCP_gf_MMSkyTempleUISetTempleCaptureProgress(lv_itTemplIndex, libGame_gf_TeamNumberOfPlayer(UnitGetOwner(libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_temple)), libGame_gf_CapturePointCounterMax(libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_beaconIndex), libGame_gf_CapturePointCounterMax(libMLCP_gv_mMSkyTemples[lv_itTemplIndex].lv_beaconIndex));
libMLCP_gf_MMSkyTempleUISetTempleContested(lv_itTemplIndex, false);
}
}
}
Wait(0.0625, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleUIHandlerCaptureProgress_Init () {
libMLCP_gt_MMSkyTempleUIHandlerCaptureProgress = TriggerCreate("libMLCP_gt_MMSkyTempleUIHandlerCaptureProgress_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Harrison Jones Event
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleHarrisonJonesEvent_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
TriggerEnable(libMLCP_gt_MMSkyTempleHarrisonJonesEnding, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleHarrisonJonesEvent_Init () {
libMLCP_gt_MMSkyTempleHarrisonJonesEvent = TriggerCreate("libMLCP_gt_MMSkyTempleHarrisonJonesEvent_Func");
TriggerAddEventPlayerEffectUsed(libMLCP_gt_MMSkyTempleHarrisonJonesEvent, c_playerAny, "HarrisonJonesEscapedSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Harrison Jones Ending
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleHarrisonJonesEnding_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!(((EventUnit() == libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_core) || (EventUnit() == libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_core)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libNtve_gf_CreateActorAtPoint("LuxBazaarAdventurerVictory", UnitGetPosition(EventUnit()));
Wait(0.0625, c_timeGame);
libNtve_gf_SendActorMessageToGameRegion(RegionCircle(UnitGetPosition(EventUnit()), 10.0), "Signal AdventureTime");
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleHarrisonJonesEnding_Init () {
libMLCP_gt_MMSkyTempleHarrisonJonesEnding = TriggerCreate("libMLCP_gt_MMSkyTempleHarrisonJonesEnding_Func");
TriggerEnable(libMLCP_gt_MMSkyTempleHarrisonJonesEnding, false);
TriggerAddEventUnitDied(libMLCP_gt_MMSkyTempleHarrisonJonesEnding, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Debug Start 1
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleDebugStart1_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMLCP_gf_MMSkyTempleSetupPreview();
TriggerEnable(libMLCP_gt_MMSkyTempleGatesOpened, false);
TimerPause(libMLCP_gv_mMSkyTempleBlessingWarningTimer, true);
libMLCP_gf_MMSkyTemplePrepareTemples();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleDebugStart1_Init () {
libMLCP_gt_MMSkyTempleDebugStart1 = TriggerCreate("libMLCP_gt_MMSkyTempleDebugStart1_Func");
TriggerEnable(libMLCP_gt_MMSkyTempleDebugStart1, false);
TriggerAddEventChatMessage(libMLCP_gt_MMSkyTempleDebugStart1, c_playerAny, "EVENTSTART", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Debug Start
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleDebugStart_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(libMLCP_gt_MMSkyTempleGatesOpened, false);
TimerPause(libMLCP_gv_mMSkyTempleBlessingWarningTimer, true);
libMLCP_gf_MMSkyTemplePrepareTemples();
TimerStart(libMLCP_gv_mMSkyTempleBlessingWarningTimer, 1.0, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleDebugStart_Init () {
libMLCP_gt_MMSkyTempleDebugStart = TriggerCreate("libMLCP_gt_MMSkyTempleDebugStart_Func");
TriggerEnable(libMLCP_gt_MMSkyTempleDebugStart, false);
TriggerAddEventChatMessage(libMLCP_gt_MMSkyTempleDebugStart, c_playerAny, "-tb", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Debug Next
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleDebugNext_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itTemple;
// Automatic Variable Declarations
int autoAA2EED4D_ae;
const int autoAA2EED4D_ai = 1;
// Variable Initialization
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(libMLCP_gt_MMSkyTempleGatesOpened, false);
TimerPause(libMLCP_gv_mMSkyTempleBlessingWarningTimer, true);
autoAA2EED4D_ae = libMLCP_gv_mMSkyTempleCount;
lv_itTemple = 1;
for ( ; ( (autoAA2EED4D_ai >= 0 && lv_itTemple <= autoAA2EED4D_ae) || (autoAA2EED4D_ai < 0 && lv_itTemple >= autoAA2EED4D_ae) ) ; lv_itTemple += autoAA2EED4D_ai ) {
libMLCP_gf_MMSkyTempleBlessTempleDone(lv_itTemple);
}
Wait(5.0, c_timeGame);
libMLCP_gf_MMSkyTemplePrepareTemples();
TimerStart(libMLCP_gv_mMSkyTempleBlessingWarningTimer, 1.0, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleDebugNext_Init () {
libMLCP_gt_MMSkyTempleDebugNext = TriggerCreate("libMLCP_gt_MMSkyTempleDebugNext_Func");
TriggerEnable(libMLCP_gt_MMSkyTempleDebugNext, false);
TriggerAddEventChatMessage(libMLCP_gt_MMSkyTempleDebugNext, c_playerAny, "-tn", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Debug Scaling Time
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleDebugScalingTime_Func (bool testConds, bool runActions) {
// Variable Declarations
string lv_time;
// Automatic Variable Declarations
// Variable Initialization
lv_time = "";
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_time = StringSub(EventChatMessage(false), 5, 6);
libGame_gv_scalingTicks = StringToInt(StringWord(EventChatMessage(false), 2));
UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, (StringExternal("Param/Value/lib_MLCP_2D9B987D") + StringToText(lv_time) + StringExternal("Param/Value/lib_MLCP_FCDA683F")));
libMLCP_gf_MMSkyTempleSetLevel();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleDebugScalingTime_Init () {
libMLCP_gt_MMSkyTempleDebugScalingTime = TriggerCreate("libMLCP_gt_MMSkyTempleDebugScalingTime_Func");
TriggerEnable(libMLCP_gt_MMSkyTempleDebugScalingTime, false);
TriggerAddEventChatMessage(libMLCP_gt_MMSkyTempleDebugScalingTime, c_playerAny, "-xp", false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSkyTemple Spawn Test Temple
//--------------------------------------------------------------------------------------------------
bool libMLCP_gt_MMSkyTempleSpawnTestTemple_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_spawnPoint;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libSprt_gf_DEBUGStartGame();
libSprt_gf_DEBUGSpawnCreepCamps();
libSprt_gf_DEBUGToggleSelection();
lv_spawnPoint = CameraGetTarget(1);
Wait(0.0625, c_timeGame);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "LuxoriaTemple", c_unitCreateIgnorePlacement, 1, lv_spawnPoint, null);
if ((StringSub(EventChatMessage(false), 7, 7) == "1")) {
UnitBehaviorAdd(UnitLastCreated(), "LuxoriaTempleStage1", UnitLastCreated(), 1);
}
else {
UnitBehaviorAdd(UnitLastCreated(), "LuxoriaTempleStage2", UnitLastCreated(), 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLCP_gt_MMSkyTempleSpawnTestTemple_Init () {
libMLCP_gt_MMSkyTempleSpawnTestTemple = TriggerCreate("libMLCP_gt_MMSkyTempleSpawnTestTemple_Func");
TriggerEnable(libMLCP_gt_MMSkyTempleSpawnTestTemple, false);
TriggerAddEventChatMessage(libMLCP_gt_MMSkyTempleSpawnTestTemple, c_playerAny, "-kyle", false);
}
void libMLCP_InitTriggers () {
libMLCP_gt_MMSkyTempleInit_Init();
libMLCP_gt_MMSkyTemplePingDataInit_Init();
libMLCP_gt_MMSkyTempleAnnouncerInit_Init();
libMLCP_gt_MMSkyTempleGatesOpened_Init();
libMLCP_gt_MMSkyTempleObjectivePreviewTimerExpires_Init();
libMLCP_gt_MMSkyTempleBlessWarningTimerExpires_Init();
libMLCP_gt_MMSkyTempleDefenderAttackLogic_Init();
libMLCP_gt_MMSkyTempleTempleDefenderDies_Init();
libMLCP_gt_MMSkyTempleBeaconCaptured_Init();
libMLCP_gt_MMSkyTempleGameOver_Init();
libMLCP_gt_MMSkyTempleBeaconColor_Init();
libMLCP_gt_MMSkyTempleAttacks_Init();
libMLCP_gt_MMSkyTempleUIModInitialize_Init();
libMLCP_gt_MMSkyTempleUIHandler_Init();
libMLCP_gt_MMSkyTempleUIHandlerCaptureProgress_Init();
libMLCP_gt_MMSkyTempleHarrisonJonesEvent_Init();
libMLCP_gt_MMSkyTempleHarrisonJonesEnding_Init();
libMLCP_gt_MMSkyTempleDebugStart1_Init();
libMLCP_gt_MMSkyTempleDebugStart_Init();
libMLCP_gt_MMSkyTempleDebugNext_Init();
libMLCP_gt_MMSkyTempleDebugScalingTime_Init();
libMLCP_gt_MMSkyTempleSpawnTestTemple_Init();
}
//--------------------------------------------------------------------------------------------------
// Library Initialization
//--------------------------------------------------------------------------------------------------
bool libMLCP_InitLib_completed = false;
void libMLCP_InitLib () {
if (libMLCP_InitLib_completed) {
return;
}
libMLCP_InitLib_completed = true;
libMLCP_InitLibraries();
libMLCP_InitVariables();
libMLCP_InitTriggers();
}