include "TriggerLibs/NativeLib"
include "TriggerLibs/HeroesLib"
include "TriggerLibs/GameLib"
include "TriggerLibs/MapMechanicsLib"
include "TriggerLibs/AILib"
include "TriggerLibs/UILib"
include "TriggerLibs/StartingExperienceLib"
include "TriggerLibs/SoundLib"
include "LibMLBD_h"
//--------------------------------------------------------------------------------------------------
// Library: Battlefield of Eternity (Mod)
//--------------------------------------------------------------------------------------------------
// External Library Initialization
void libMLBD_InitLibraries () {
libNtve_InitVariables();
libCore_InitVariables();
libGame_InitVariables();
libMapM_InitVariables();
libAIAI_InitVariables();
libUIUI_InitVariables();
libStEx_InitVariables();
libSond_InitVariables();
}
// Variable Initialization
bool libMLBD_InitVariables_completed = false;
void libMLBD_InitVariables () {
int init_i;
int init_i1;
int init_j1;
if (libMLBD_InitVariables_completed) {
return;
}
libMLBD_InitVariables_completed = true;
libMLBD_gv_mMBossDuelWarningDelay = 30.0;
for (init_i = 0; init_i <= libCore_gv_bALMaxTeams; init_i += 1) {
libMLBD_gv_mMBOEBossPing[init_i] = c_invalidPingId;
}
libMLBD_gv_mMBOEEventInitDelayTimer = TimerCreate();
libMLBD_gv_mMBOEEventWarningTimer = TimerCreate();
libMLBD_gv_mMBOEEventPrepLaningTimer = TimerCreate();
libMLBD_gv_mMBOEEventCooldownTimer = TimerCreate();
libMLBD_gv_mMBOEEventLongWarningTimeTimer = TimerCreate();
libMLBD_gv_mMBOEEventStage = libMLBD_ge_MMBOEEventStage_Idle;
libMLBD_gv_mMBOEDuelPreviewDelay = 30.0;
for (init_i = 0; init_i <= libCore_gv_bALMaxTeams; init_i += 1) {
libMLBD_gv_mMBOELaningBossPing[init_i] = c_invalidPingId;
}
libMLBD_gv_mMBOEOrderMiddleStructures = UnitGroupEmpty();
libMLBD_gv_mMBOEChaosMiddleStructures = UnitGroupEmpty();
libMLBD_gv_mMBOE_BossLanerPathCurrentIndex = 1;
libMLBD_gv_mMBOE_BossLanerPathIndexMax = 1;
libMLBD_gv_mMBOEPanel.lv_mainPanel = c_invalidDialogControlId;
libMLBD_gv_mMBOEPanel.lv_bossSpawnFrame = c_invalidDialogControlId;
libMLBD_gv_mMBOEPanel.lv_bossSpawnInfoLabel = c_invalidDialogControlId;
libMLBD_gv_mMBOEPanel.lv_bossSpawnTimerLabel = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= 2; init_i1 += 1) {
libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= 2; init_i1 += 1) {
for (init_j1 = 0; init_j1 <= 2; init_j1 += 1) {
libMLBD_gv_mMBOEPanel.lv_bossDuelHud[init_i1][init_j1] = c_invalidDialogControlId;
}
}
for (init_i1 = 0; init_i1 <= 2; init_i1 += 1) {
for (init_j1 = 0; init_j1 <= 2; init_j1 += 1) {
libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[init_i1][init_j1] = c_invalidDialogControlId;
}
}
for (init_i1 = 0; init_i1 <= 2; init_i1 += 1) {
for (init_j1 = 0; init_j1 <= 2; init_j1 += 1) {
libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[init_i1][init_j1] = c_invalidDialogControlId;
}
}
libMLBD_gv_mMBOEPanel.lv_bossLaningFrame = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= 2; init_i1 += 1) {
for (init_j1 = 0; init_j1 <= 2; init_j1 += 1) {
libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[init_i1][init_j1] = c_invalidDialogControlId;
}
}
libMLBD_gv_mMBOEPanel.lv_bossLaningShieldBar = c_invalidDialogControlId;
libMLBD_gv_mMBOEPanel.lv_bossLaningHPBar = c_invalidDialogControlId;
libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel = c_invalidDialogControlId;
libMLBD_gv_mMBOEPanel.lv_bossLaningTimerLabel = c_invalidDialogControlId;
}
// Presets
// Functions
void libMLBD_gf_MMBOESetLanerStartPoints (point lp_lane1, point lp_lane2) {
// Automatic Variable Declarations
// Implementation
libMLBD_gv_mMBOEBossLanerStartPoints[1] = lp_lane1;
libMLBD_gv_mMBOEBossLanerStartPoints[2] = lp_lane2;
}
void libMLBD_gf_MMBOESetEventCombatPoints (point lp_north, point lp_south, point lp_west, point lp_east, point lp_center) {
// Automatic Variable Declarations
// Implementation
libMLBD_gv_mMBOEBossSpawnLocationPairCount += 1;
libMLBD_gv_mMBOEBossSpawnLocationPair[1][1] = lp_north;
libMLBD_gv_mMBOEBossSpawnLocationPair[1][2] = lp_south;
libMLBD_gv_mMBOEBossSpawnLocationPairCount += 1;
libMLBD_gv_mMBOEBossSpawnLocationPair[2][1] = lp_east;
libMLBD_gv_mMBOEBossSpawnLocationPair[2][2] = lp_west;
libMLBD_gv_mMBOEBossSpawnLocationPairCount += 1;
libMLBD_gv_mMBOEBossSpawnLocationPair[3][1] = lp_south;
libMLBD_gv_mMBOEBossSpawnLocationPair[3][2] = lp_north;
libMLBD_gv_mMBOEBossSpawnLocationPairCount += 1;
libMLBD_gv_mMBOEBossSpawnLocationPair[4][1] = lp_west;
libMLBD_gv_mMBOEBossSpawnLocationPair[4][2] = lp_east;
libMLBD_gv_mMBOEBossSpawnLocationCenter = lp_center;
}
void libMLBD_gf_MMBOEPlayCutscene (int lp_cutscene, point lp_point) {
// Variable Declarations
point lv_point;
int lv_currentCutscene;
fixed lv_facing;
int lv_random;
// Automatic Variable Declarations
int autoF00C7CED_val;
// Variable Initialization
lv_currentCutscene = c_cutsceneNone;
// Implementation
lv_random = RandomInt(1, 2);
autoF00C7CED_val = lp_cutscene;
if (autoF00C7CED_val == libMLBD_ge_MMBOEBossCutsceneType_None) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MLBD_9AEC2E11"), true);
}
else if (autoF00C7CED_val == libMLBD_ge_MMBOEBossCutsceneType_EventStart) {
CutsceneCreateNew("Cutscenes\\Storm_HvH_CS_EventStart.StormCutscene", libMLBD_gv_mMBOEBossSpawnLocationCenter, 0.0, PlayerGroupAll(), true);
lv_currentCutscene = CutsceneLastCreated();
CutsceneShow(lv_currentCutscene, true);
CutscenePlay(lv_currentCutscene);
}
else if (autoF00C7CED_val == libMLBD_ge_MMBOEBossCutsceneType_EventMid) {
CutsceneCreateNew("Cutscenes\\Storm_HvH_CS_EventMid.StormCutscene", libMLBD_gv_mMBOEBossSpawnLocationCenter, 0.0, PlayerGroupAll(), true);
lv_currentCutscene = CutsceneLastCreated();
CutsceneShow(lv_currentCutscene, true);
CutscenePlay(lv_currentCutscene);
}
else if (autoF00C7CED_val == libMLBD_ge_MMBOEBossCutsceneType_HeavenVictory) {
CutsceneCreateNew("Cutscenes\\Storm_HvH_CS_EventEndHeaven.StormCutscene", lp_point, 45.0, PlayerGroupAll(), true);
lv_currentCutscene = CutsceneLastCreated();
CutsceneShow(lv_currentCutscene, true);
CutscenePlay(lv_currentCutscene);
}
else if (autoF00C7CED_val == libMLBD_ge_MMBOEBossCutsceneType_HellVictory) {
CutsceneCreateNew("Cutscenes\\Storm_HvH_CS_EventEndHell.StormCutscene", lp_point, 315.0, PlayerGroupAll(), true);
lv_currentCutscene = CutsceneLastCreated();
CutsceneShow(lv_currentCutscene, true);
CutscenePlay(lv_currentCutscene);
}
else {
}
}
int libMLBD_gf_MMBOEHHPlayer (int lp_team) {
// Automatic Variable Declarations
int autoE4243B0B_val;
// Implementation
autoE4243B0B_val = lp_team;
if (autoE4243B0B_val == libGame_gv_teamOrderIndex_C) {
return libMLBD_gv_mMBossDuelPlayerHeaven_C;
}
else if (autoE4243B0B_val == libGame_gv_teamChaosIndex_C) {
return libMLBD_gv_mMBossDuelPlayerHell_C;
}
else {
}
return 0;
}
trigger auto_libMLBD_gf_MMBOEDuelWarningStart_Trigger = null;
void libMLBD_gf_MMBOEDuelWarningStart () {
if (auto_libMLBD_gf_MMBOEDuelWarningStart_Trigger == null) {
auto_libMLBD_gf_MMBOEDuelWarningStart_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOEDuelWarningStart_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOEDuelWarningStart_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOEDuelWarningStart_TriggerFunc (bool testConds, bool runActions) {
// Variable Declarations
int lv_itStatue;
int lv_itTeam;
int lv_enemyTeam;
// Automatic Variable Declarations
const int auto27E0F23C_ae = 2;
const int auto27E0F23C_ai = 1;
// Variable Initialization
// Implementation
TriggerExecute(libMLBD_gt_MMBOEUIHandler, true, false);
if ((libMLBD_gv_mMBOEEventStage == libMLBD_ge_MMBOEEventStage_Warning)) {
return true;
}
StatEventCreate("Boss Duel Started");
StatEventAddDataInt(StatEventLastCreated(), "Boss Duel Number", libMLBD_gv_mMBOETimes);
StatEventSend(StatEventLastCreated());
libMLBD_gv_mMBOEEventStage = libMLBD_ge_MMBOEEventStage_Warning;
libMLBD_gf_MMBOETransmissionDuelWarningQ();
TimerStart(libMLBD_gv_mMBOEEventWarningTimer, libMLBD_gv_mMBossDuelWarningDelay, false, c_timeGame);
SoundPlayForPlayer(SoundLink("UI_Game_BoE_Immortals_Spawning", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
SoundtrackPlay(PlayerGroupAll(), c_soundtrackCategoryMusic, "MX_Event_BoE_Immortal_Spawn", c_soundtrackCueAny, c_soundtrackIndexAny, false);
libNtve_gf_WaitForTimer(libMLBD_gv_mMBOEEventWarningTimer, 1.0, false);
lv_itTeam = 1;
for ( ; ( (auto27E0F23C_ai >= 0 && lv_itTeam <= auto27E0F23C_ae) || (auto27E0F23C_ai < 0 && lv_itTeam >= auto27E0F23C_ae) ) ; lv_itTeam += auto27E0F23C_ai ) {
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlert", libMLBD_gv_mMBOEBossSpawnLocationPair[libMLBD_gv_mMBOEBossSpawnLocationIndexes[1]][lv_itTeam], Color(100.00, 100.00, 0.00), 10.0);
}
libMLBD_gf_MMBOEDuelStart();
return true;
}
int libMLBD_gf_MMBOEOppositePair (int lp_pairIndex) {
// Automatic Variable Declarations
int auto4ABFD814_val;
// Implementation
auto4ABFD814_val = lp_pairIndex;
if (auto4ABFD814_val == 1) {
return 3;
}
else if (auto4ABFD814_val == 3) {
return 1;
}
else if (auto4ABFD814_val == 4) {
return 2;
}
else if (auto4ABFD814_val == 2) {
return 4;
}
else {
}
return 0;
}
void libMLBD_gf_MMBOECalculateNewSpawnLocations (int lp_stage) {
// Variable Declarations
string lv_patternName;
// Automatic Variable Declarations
int auto7AEAFEA5_val;
// Variable Initialization
lv_patternName = "";
// Implementation
if ((lp_stage == 1)) {
libMLBD_gv_mMBOETimes += 1;
if ((libMLBD_gv_mMBOETimes == 1)) {
libMLBD_gv_mMBOEBossSpawnLocationIndexes[lp_stage] = (3);
}
else {
libMLBD_gv_mMBOEBossSpawnLocationIndexes[lp_stage] = RandomInt(1, 4);
}
}
else {
if ((libMLBD_gv_mMBOETimes == 1)) {
libMLBD_gv_mMBOEBossSpawnLocationIndexes[lp_stage] = (2);
}
else {
libMLBD_gv_mMBOEBossSpawnLocationIndexes[lp_stage] = 0;
while (((libMLBD_gv_mMBOEBossSpawnLocationIndexes[lp_stage] == 0) || (libMLBD_gv_mMBOEBossSpawnLocationIndexes[lp_stage] == libMLBD_gv_mMBOEBossSpawnLocationIndexes[1]))) {
libMLBD_gv_mMBOEBossSpawnLocationIndexes[lp_stage] = RandomInt(1, 4);
}
}
}
if ((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true) && (libMLBD_gv_mMBOEShowBossPositions == true)) {
auto7AEAFEA5_val = libMLBD_gv_mMBOEBossSpawnLocationIndexes[lp_stage];
if (auto7AEAFEA5_val == (1)) {
lv_patternName = "North vs South";
}
else if (auto7AEAFEA5_val == (3)) {
lv_patternName = "South vs North";
}
else if (auto7AEAFEA5_val == (2)) {
lv_patternName = "East vs West";
}
else if (auto7AEAFEA5_val == (4)) {
lv_patternName = "West vs East";
}
else {
}
TextExpressionSetToken("Param/Expression/lib_MLBD_3E8AF8D7", "A", IntToText(libMLBD_gv_mMBOETimes));
TextExpressionSetToken("Param/Expression/lib_MLBD_3E8AF8D7", "B", IntToText(lp_stage));
TextExpressionSetToken("Param/Expression/lib_MLBD_3E8AF8D7", "D", IntToText(libMLBD_gv_mMBOEBossSpawnLocationIndexes[lp_stage]));
TextExpressionSetToken("Param/Expression/lib_MLBD_3E8AF8D7", "C", StringToText(lv_patternName));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MLBD_3E8AF8D7"), true);
}
}
void libMLBD_gf_MMBOEDuelPreviewSetup (bool lp_showImmediately) {
// Variable Declarations
playergroup lv_shufflePlayerGroup;
int lv_itPair;
// Automatic Variable Declarations
const int autoE4FB82FE_ae = 2;
const int autoE4FB82FE_ai = 1;
// Variable Initialization
lv_shufflePlayerGroup = PlayerGroupEmpty();
// Implementation
if ((lp_showImmediately == false)) {
Wait(libMLBD_gv_mMBOEDuelPreviewDelay, c_timeGame);
}
lv_itPair = 1;
for ( ; ( (autoE4FB82FE_ai >= 0 && lv_itPair <= autoE4FB82FE_ae) || (autoE4FB82FE_ai < 0 && lv_itPair >= autoE4FB82FE_ae) ) ; lv_itPair += autoE4FB82FE_ai ) {
libNtve_gf_UnitCreateFacingPoint(1, libMLBD_gv_mMBOEDuelPreviewUnitTypes[lv_itPair], c_unitCreateIgnorePlacement, libMLBD_gf_MMBOEHHPlayer(lv_itPair), libMLBD_gv_mMBOEBossSpawnLocationPair[libMLBD_gv_mMBOEBossSpawnLocationIndexes[1]][lv_itPair], libMLBD_gv_mMBOEBossSpawnLocationCenter, null);
libMLBD_gv_mMBOEDuelPreviewUnits[lv_itPair] = UnitLastCreated();
ActorSend(libNtve_gf_MainActorofUnit(libMLBD_gv_mMBOEDuelPreviewUnits[lv_itPair]), "MinimapIconTintColor 255,145,113,218");
}
}
void libMLBD_gf_MMBOEDuelStart () {
// Variable Declarations
int lv_itTeam;
int lv_enemyTeam;
fixed lv_distance;
fixed[3] lv_angle;
point[3] lv_center;
actor[3] lv_invulnerableModel;
int lv_itIndex;
int lv_eventMidCutscene;
int lv_itUnit;
// Automatic Variable Declarations
const int autoD12E418D_ae = 2;
const int autoD12E418D_ai = 1;
const int autoA71D58B2_ae = 2;
const int autoA71D58B2_ai = 1;
const int auto401FEBBD_ae = 2;
const int auto401FEBBD_ai = 1;
const int auto04E43398_ae = 2;
const int auto04E43398_ai = 1;
const int auto201AC20F_ae = libCore_gv_bALMaxTeams;
const int auto201AC20F_ai = 1;
const int auto24425270_ae = 2;
const int auto24425270_ai = 1;
const int auto585A3BD6_ae = 2;
const int auto585A3BD6_ai = 1;
const int auto90D82851_ae = libCore_gv_bALMaxTeams;
const int auto90D82851_ai = 1;
const int auto51DC48E5_ae = 2;
const int auto51DC48E5_ai = 1;
const int auto6B716F16_ae = 2;
const int auto6B716F16_ai = 1;
const int auto3C063106_ae = 2;
const int auto3C063106_ai = 1;
// Variable Initialization
lv_eventMidCutscene = c_cutsceneNone;
// Implementation
libMLBD_gv_mMBOEEventStage = libMLBD_ge_MMBOEEventStage_Duel1;
lv_itTeam = 1;
for ( ; ( (autoD12E418D_ai >= 0 && lv_itTeam <= autoD12E418D_ae) || (autoD12E418D_ai < 0 && lv_itTeam >= autoD12E418D_ae) ) ; lv_itTeam += autoD12E418D_ai ) {
lv_itUnit = 1;
for ( ; ( (autoA71D58B2_ai >= 0 && lv_itUnit <= autoA71D58B2_ae) || (autoA71D58B2_ai < 0 && lv_itUnit >= autoA71D58B2_ae) ) ; lv_itUnit += autoA71D58B2_ai ) {
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[lv_itTeam][lv_itUnit], PlayerGroupAll(), false);
}
}
libMLBD_gf_MMBOETransmissionDuelStartQ();
lv_itTeam = 1;
for ( ; ( (auto401FEBBD_ai >= 0 && lv_itTeam <= auto401FEBBD_ae) || (auto401FEBBD_ai < 0 && lv_itTeam >= auto401FEBBD_ae) ) ; lv_itTeam += auto401FEBBD_ai ) {
libMLBD_gf_MMBOESpawnBoss(lv_itTeam, libMLBD_gv_mMBOEBossSpawnLocationPair[libMLBD_gv_mMBOEBossSpawnLocationIndexes[1]][lv_itTeam]);
UnitRemove(libMLBD_gv_mMBOEDuelPreviewUnits[lv_itTeam]);
}
Wait(1.5, c_timeGame);
UnitBehaviorRemove(libMLBD_gv_mMBOEBosses[1], "BossDuelJungleLandingBehavior", 1);
UnitBehaviorRemove(libMLBD_gv_mMBOEBosses[2], "BossDuelJungleLandingBehavior", 1);
UnitIssueOrder(libMLBD_gv_mMBOEBosses[1], OrderTargetingUnit(AbilityCommand("attack", 0), libMLBD_gv_mMBOEBosses[2]), c_orderQueueReplace);
UnitIssueOrder(libMLBD_gv_mMBOEBosses[2], OrderTargetingUnit(AbilityCommand("attack", 0), libMLBD_gv_mMBOEBosses[1]), c_orderQueueReplace);
libMLBD_gv_mMBOEEventDurationTimer = 1;
TriggerEnable(libMLBD_gt_MMBOEBossAttackedHeaven, true);
TriggerEnable(libMLBD_gt_MMBOEBossAttackedHell, true);
TriggerEnable(libMLBD_gt_MMBOEBossTakesDamage, true);
TriggerEnable(libMLBD_gt_MMBOEDuelDurationTimer, true);
TriggerExecute(libMLBD_gt_MMBOEBossFightPing, true, false);
libMLBD_gv_mMBOESuppressExplosions = false;
libMLBD_gv_mMBOEXPValue = (libMLBD_gv_mMBossDuelBaseXP + (libMLBD_gv_mMBossDuelXPScaling * libGame_gv_scalingTicks));
while (!(((UnitGetPropertyFixed(libMLBD_gv_mMBOEBosses[1], c_unitPropLifePercent, c_unitPropCurrent) <= 50.5) || (UnitGetPropertyFixed(libMLBD_gv_mMBOEBosses[2], c_unitPropLifePercent, c_unitPropCurrent) <= 50.5)))) {
Wait(0.25, c_timeGame);
}
libMLBD_gv_mMBOESuppressExplosions = true;
lv_itTeam = 1;
for ( ; ( (auto04E43398_ai >= 0 && lv_itTeam <= auto04E43398_ae) || (auto04E43398_ai < 0 && lv_itTeam >= auto04E43398_ae) ) ; lv_itTeam += auto04E43398_ai ) {
UnitIssueOrder(libMLBD_gv_mMBOEBosses[lv_itTeam], Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
}
lv_itTeam = 1;
for ( ; ( (auto201AC20F_ai >= 0 && lv_itTeam <= auto201AC20F_ae) || (auto201AC20F_ai < 0 && lv_itTeam >= auto201AC20F_ae) ) ; lv_itTeam += auto201AC20F_ai ) {
RemoveUnitOfInterest(libMLBD_gv_mMBOEBosses[lv_itTeam], "DefendImmortal", libAIAI_gf_ConvertIntegertoGoalTeam(lv_itTeam));
RemoveUnitOfInterest(libMLBD_gv_mMBOEBosses[lv_itTeam], "KillEnemyImmortal", libAIAI_gf_ConvertIntegertoGoalTeam(libGame_gf_EnemyTeam(lv_itTeam)));
}
UnitBehaviorAdd(libMLBD_gv_mMBOEBosses[1], "BossDuelTransitionBehavior", libMLBD_gv_mMBOEBosses[1], 1);
UnitBehaviorAdd(libMLBD_gv_mMBOEBosses[2], "BossDuelTransitionBehavior", libMLBD_gv_mMBOEBosses[2], 1);
libCore_gf_ClearAllNonpermanentBehaviorsonUnit(libMLBD_gv_mMBOEBosses[1]);
libCore_gf_ClearAllNonpermanentBehaviorsonUnit(libMLBD_gv_mMBOEBosses[2]);
libMLBD_gv_mMBOEEventStage = libMLBD_ge_MMBOEEventStage_Duel2;
libMLBD_gf_MMBOECalculateNewSpawnLocations(2);
SoundPlayForPlayer(SoundLink("UI_Game_BoE_Immortals_Moving", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
libMLBD_gf_MMBOETransmissionDuelFlyStartQ();
lv_itTeam = 1;
for ( ; ( (auto24425270_ai >= 0 && lv_itTeam <= auto24425270_ae) || (auto24425270_ai < 0 && lv_itTeam >= auto24425270_ae) ) ; lv_itTeam += auto24425270_ai ) {
UnitIssueOrder(libMLBD_gv_mMBOEBosses[lv_itTeam], Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
libNtve_gf_MakeUnitInvulnerable(libMLBD_gv_mMBOEBosses[lv_itTeam], true);
UnitSetState(libMLBD_gv_mMBOEBosses[lv_itTeam], c_unitStateTargetable, false);
UnitBehaviorSetDurationRemaining(libMLBD_gv_mMBOEBosses[lv_itTeam], "BossDuelCastingBehavior", 2.0);
}
while (!((UnitHasBehavior2(libMLBD_gv_mMBOEBosses[1], "BossDuelCastingBehavior") == false) && (UnitHasBehavior2(libMLBD_gv_mMBOEBosses[2], "BossDuelCastingBehavior") == false))) {
Wait(0.25, c_timeGame);
}
libMLBD_gf_MMBOEDuelMidBossPings();
lv_itTeam = 1;
for ( ; ( (auto585A3BD6_ai >= 0 && lv_itTeam <= auto585A3BD6_ae) || (auto585A3BD6_ai < 0 && lv_itTeam >= auto585A3BD6_ae) ) ; lv_itTeam += auto585A3BD6_ai ) {
libNtve_gf_SendActorMessageToUnit(libMLBD_gv_mMBOEBosses[lv_itTeam], "Signal FightStart");
}
Wait(2.7, c_timeGame);
libNtve_gf_CreateActorAtPoint("Event_BoE_Immortal_Mid_Teleport", libMLBD_gv_mMBOEBossSpawnLocationCenter);
Wait(0.5, c_timeGame);
SoundtrackPlay(PlayerGroupAll(), c_soundtrackCategoryMusic, "MX_Event_BoE_Immortal_Mid", c_soundtrackCueAny, c_soundtrackIndexAny, false);
libMLBD_gf_MMBOEPlayCutscene(libMLBD_ge_MMBOEBossCutsceneType_EventStart, libMLBD_gv_mMBOEBossSpawnLocationCenter);
lv_itTeam = 1;
for ( ; ( (auto90D82851_ai >= 0 && lv_itTeam <= auto90D82851_ae) || (auto90D82851_ai < 0 && lv_itTeam >= auto90D82851_ae) ) ; lv_itTeam += auto90D82851_ai ) {
AddUnitOfInterest(libMLBD_gv_mMBOEBosses[lv_itTeam], 10.0, 3.0, "DefendImmortal", libAIAI_gf_ConvertIntegertoGoalTeam(lv_itTeam), 0);
AddUnitOfInterest(libMLBD_gv_mMBOEBosses[lv_itTeam], 10.0, 3.0, "KillEnemyImmortal", libAIAI_gf_ConvertIntegertoGoalTeam(libGame_gf_EnemyTeam(lv_itTeam)), 0);
}
Wait(3.0, c_timeGame);
lv_itTeam = 1;
for ( ; ( (auto51DC48E5_ai >= 0 && lv_itTeam <= auto51DC48E5_ae) || (auto51DC48E5_ai < 0 && lv_itTeam >= auto51DC48E5_ae) ) ; lv_itTeam += auto51DC48E5_ai ) {
libStEx_gf_MoveUnit(libMLBD_gv_mMBOEBosses[lv_itTeam], libMLBD_gv_mMBOEBossSpawnLocationPair[libMLBD_gv_mMBOEBossSpawnLocationIndexes[2]][lv_itTeam], false);
libNtve_gf_MakeUnitFacePoint(libMLBD_gv_mMBOEBosses[lv_itTeam], libMLBD_gv_mMBOEBossSpawnLocationCenter, 0.0);
}
lv_itTeam = 1;
for ( ; ( (auto6B716F16_ai >= 0 && lv_itTeam <= auto6B716F16_ae) || (auto6B716F16_ai < 0 && lv_itTeam >= auto6B716F16_ae) ) ; lv_itTeam += auto6B716F16_ai ) {
UnitBehaviorAdd(libMLBD_gv_mMBOEBosses[lv_itTeam], "BossDuelJungleLandingBehavior", libMLBD_gv_mMBOEBosses[lv_itTeam], 1);
libNtve_gf_SendActorMessageToUnit(libMLBD_gv_mMBOEBosses[lv_itTeam], "Signal FightStop");
}
Wait(3.0, c_timeGame);
lv_itTeam = 1;
for ( ; ( (auto3C063106_ai >= 0 && lv_itTeam <= auto3C063106_ae) || (auto3C063106_ai < 0 && lv_itTeam >= auto3C063106_ae) ) ; lv_itTeam += auto3C063106_ai ) {
libNtve_gf_MakeUnitInvulnerable(libMLBD_gv_mMBOEBosses[lv_itTeam], false);
UnitSetState(libMLBD_gv_mMBOEBosses[lv_itTeam], c_unitStateTargetable, true);
UnitBehaviorRemove(libMLBD_gv_mMBOEBosses[lv_itTeam], "BossDuelTransitionBehavior", 1);
UnitBehaviorRemove(libMLBD_gv_mMBOEBosses[lv_itTeam], "BossDuelJungleLandingBehavior", 1);
lv_enemyTeam = libGame_gf_EnemyTeam(lv_itTeam);
UnitIssueOrder(libMLBD_gv_mMBOEBosses[lv_itTeam], OrderTargetingUnit(AbilityCommand("attack", 0), libMLBD_gv_mMBOEBosses[lv_enemyTeam]), c_orderQueueReplace);
}
UnitAbilityEnable(libMLBD_gv_mMBOEBosses[libGame_gv_teamOrderIndex_C], "AngelicExplosionsJungle", false);
UnitAbilityEnable(libMLBD_gv_mMBOEBosses[libGame_gv_teamChaosIndex_C], "DemonicExplosionsJungle", false);
TriggerEnable(libMLBD_gt_MMBOEBossAttackedHeaven, true);
TriggerEnable(libMLBD_gt_MMBOEBossAttackedHell, true);
TriggerExecute(libMLBD_gt_MMBOEBossFightPing, true, false);
libMLBD_gv_mMBOESuppressExplosions = false;
TriggerEnable(libMLBD_gt_MMBOEBossDied, true);
}
string libMLBD_gf_MMBOEBossPingModel (int lp_team) {
// Automatic Variable Declarations
int auto04ACA947_val;
// Implementation
auto04ACA947_val = lp_team;
if (auto04ACA947_val == 1) {
return "StormPingImmortalAngel";
}
else if (auto04ACA947_val == 2) {
return "StormPingImmortalDemon";
}
else {
}
return null;
}
void libMLBD_gf_MMBOESpawnBoss (int lp_team, point lp_location) {
// Variable Declarations
int lv_enemyTeam;
const fixed lv_scale_C = 0.5;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_enemyTeam = libGame_gf_EnemyTeam(lp_team);
libNtve_gf_UnitCreateFacingPoint(1, libMLBD_gv_mMBOEBossUnitTypes[lp_team], c_unitCreateIgnorePlacement, libMLBD_gf_MMBOEHHPlayer(lp_team), lp_location, libMLBD_gv_mMBOEBossSpawnLocationCenter, null);
libMLBD_gv_mMBOEBosses[lp_team] = UnitLastCreated();
UnitAbilityEnable(UnitLastCreated(), "AngelicExplosionsJungle", false);
UnitAbilityEnable(UnitLastCreated(), "DemonicExplosionsJungle", false);
UnitSetState(UnitLastCreated(), c_unitStateStoppable, false);
UnitSetState(UnitLastCreated(), c_unitStateTooltipable, false);
libNtve_gf_PlayAnimation(libNtve_gf_MainActorofUnit(UnitLastCreated()), "birth", "Fly End", c_animFlagNonLooping, 0.0);
libNtve_gf_AttachModelToUnitInheritVisibility(libMLBD_gv_mMBOEBosses[lp_team], "HitTestFuzzy_Cyliner", "Ref_Origin");
ActorSend(libNtve_gf_ActorLastCreated(), "SetScale 2.700000,2.700000,4.500000");
libGame_gf_UpdateScalingForUnit(UnitLastCreated(), libGame_gv_scalingTicks, 0);
AddUnitOfInterest(UnitLastCreated(), 10.0, 0.0, "DefendImmortal", libAIAI_gf_ConvertIntegertoGoalTeam(lp_team), 0);
AddUnitOfInterest(UnitLastCreated(), 10.0, 0.0, "KillEnemyImmortal", libAIAI_gf_ConvertIntegertoGoalTeam(libGame_gf_EnemyTeam(lp_team)), 0);
}
void libMLBD_gf_MMBOEDuelEnd () {
// Variable Declarations
int lv_losingTeam;
point lv_targetLoc;
int lv_itTeam;
point lv_pos;
fixed lv_hPPercent;
fixed lv_shieldMax;
fixed lv_shieldPercent;
fixed lv_angleSpawnGlobe;
point lv_losingBossLoc;
fixed lv_bossDuelLoserXPBalance;
int lv_itPingIndex;
// Automatic Variable Declarations
const int auto6142EAA1_ae = 2;
const int auto6142EAA1_ai = 1;
// Variable Initialization
lv_losingTeam = libGame_gf_EnemyTeam(libMLBD_gv_mMBOEEventWinningTeam);
// Implementation
libMLBD_gv_mMBOESuppressExplosions = true;
TriggerEnable(libMLBD_gt_MMBOEDuelDurationTimer, false);
TriggerEnable(libMLBD_gt_MMBOEBossTakesDamage, false);
SoundPlayForPlayer(SoundLink("UI_Game_BoE_Immortal_Defeated_Friendly", -1), c_maxPlayers, libGame_gf_PlayersOnTeamHeroes(lv_losingTeam, false), 100.0, 0.0);
SoundPlayForPlayer(SoundLink("UI_Game_BoE_Immortal_Defeated_Friendly", -1), c_maxPlayers, libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], 100.0, 0.0);
SoundPlayForPlayer(SoundLink("UI_Game_BoE_Immortal_Defeated_Enemy", -1), c_maxPlayers, libGame_gf_PlayersOnTeamHeroes(libMLBD_gv_mMBOEEventWinningTeam, false), 100.0, 0.0);
libMLBD_gf_MMBOEUISetBossKilled(lv_losingTeam);
lv_itTeam = 1;
for ( ; ( (auto6142EAA1_ai >= 0 && lv_itTeam <= auto6142EAA1_ae) || (auto6142EAA1_ai < 0 && lv_itTeam >= auto6142EAA1_ae) ) ; lv_itTeam += auto6142EAA1_ai ) {
UnitSetState(libMLBD_gv_mMBOEBosses[lv_itTeam], c_unitStateInvulnerable, true);
UnitSetState(libMLBD_gv_mMBOEBosses[lv_itTeam], c_unitStateStoppable, false);
UnitSetState(libMLBD_gv_mMBOEBosses[lv_itTeam], c_unitStateTargetable, false);
UnitSetState(libMLBD_gv_mMBOEBosses[lv_itTeam], c_unitStateStatusBar, false);
UnitBehaviorSetDurationRemaining(libMLBD_gv_mMBOEBosses[lv_itTeam], "BossDuelCastingBehavior", 1.5);
UnitBehaviorAdd(libMLBD_gv_mMBOEBosses[lv_itTeam], "BossDuelTransitionBehavior", libMLBD_gv_mMBOEBosses[lv_itTeam], 1);
}
while (!(((UnitHasBehavior2(libMLBD_gv_mMBOEBosses[1], "BossDuelCastingBehavior") == false) && (UnitHasBehavior2(libMLBD_gv_mMBOEBosses[2], "BossDuelCastingBehavior") == false)))) {
Wait(0.25, c_timeGame);
}
libNtve_gf_SendActorMessageToUnit(libMLBD_gv_mMBOEBosses[libMLBD_gv_mMBOEEventWinningTeam], "Signal Winner");
libNtve_gf_SendActorMessageToUnit(libMLBD_gv_mMBOEBosses[lv_losingTeam], "Signal Loser");
Wait(2.0, c_timeGame);
libMapM_gf_JungleStartHibernateCamps();
if ((lv_losingTeam == 1)) {
SoundtrackPlay(PlayerGroupAll(), c_soundtrackCategoryMusic, "MX_Event_BoE_Immortal_Hell_End", c_soundtrackCueAny, c_soundtrackIndexAny, false);
libMLBD_gf_MMBOEPlayCutscene(libMLBD_ge_MMBOEBossCutsceneType_HellVictory, libMLBD_gv_mMBOEBossSpawnLocationCenter);
}
else {
SoundtrackPlay(PlayerGroupAll(), c_soundtrackCategoryMusic, "MX_Event_BoE_Immortal_Heaven_End", c_soundtrackCueAny, c_soundtrackIndexAny, false);
libMLBD_gf_MMBOEPlayCutscene(libMLBD_ge_MMBOEBossCutsceneType_HeavenVictory, libMLBD_gv_mMBOEBossSpawnLocationCenter);
}
Wait(1.8, c_timeGame);
libMLBD_gf_MMBOEDuelEndShakingCamera(libMLBD_gv_mMBOEBossSpawnLocationCenter);
lv_pos = libMLBD_gv_mMBOEBossSpawnLocationCenter;
UnitCreate(1, libMLBD_gv_mMBOEBossLaningUnitTypes[libMLBD_gv_mMBOEEventWinningTeam], c_unitCreateIgnorePlacement, libGame_gf_ComputerPlayerInTeam(libMLBD_gv_mMBOEEventWinningTeam), lv_pos, 270.0, null);
libMLBD_gv_mMBOEBossesLaning = UnitLastCreated();
libNtve_gf_ShowHideUnit(libMLBD_gv_mMBOEBossesLaning, false);
libNtve_gf_PauseUnit(libMLBD_gv_mMBOEBossesLaning, true);
libNtve_gf_MakeUnitInvulnerable(libMLBD_gv_mMBOEBossesLaning, true);
UnitSetState(libMLBD_gv_mMBOEBossesLaning, c_unitStateTargetable, false);
UnitBehaviorAdd(libMLBD_gv_mMBOEBossesLaning, "BossLanerPreparingBehavior", libMLBD_gv_mMBOEBossesLaning, 1);
libAIAI_gf_MinionAIUnhookUnitFromMinionAI(libMLBD_gv_mMBOEBossesLaning);
libGame_gf_UpdateScalingForUnit(libMLBD_gv_mMBOEBossesLaning, libGame_gv_scalingTicks, 0);
lv_hPPercent = UnitGetPropertyFixed(libMLBD_gv_mMBOEBosses[libMLBD_gv_mMBOEEventWinningTeam], c_unitPropLifePercent, c_unitPropCurrent);
lv_shieldMax = (UnitGetPropertyFixed(libMLBD_gv_mMBOEBossesLaning, c_unitPropLifeMax, c_unitPropCurrent) * libMLBD_gv_bALBossDuelLaningShieldScale);
lv_shieldPercent = lv_hPPercent;
UnitSetPropertyFixed(libMLBD_gv_mMBOEBossesLaning, c_unitPropShieldsMax, lv_shieldMax);
UnitSetPropertyFixed(libMLBD_gv_mMBOEBossesLaning, c_unitPropShieldsPercent, lv_hPPercent);
UnitSetPropertyFixed(libMLBD_gv_mMBOEBossesLaning, c_unitPropLife, 50.0);
StatEventCreate("Immortal Defeated");
StatEventAddDataInt(StatEventLastCreated(), "Event", libMLBD_gv_mMBOETimes);
StatEventAddDataInt(StatEventLastCreated(), "Winning Team", libMLBD_gv_mMBOEEventWinningTeam);
StatEventAddDataFixed(StatEventLastCreated(), "Immortal Power Percent", lv_hPPercent);
StatEventAddDataInt(StatEventLastCreated(), "Immortal Fight Duration", libMLBD_gv_mMBOEEventDurationTimer);
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventSend(StatEventLastCreated());
libMLBD_gf_MMBOEAwardBossXP(libMLBD_gv_mMBOEBosses[lv_losingTeam], libMLBD_gv_mMBOEXPValue);
lv_bossDuelLoserXPBalance = (libMLBD_gv_mMBOEXPValue * (lv_hPPercent / 100.0));
libMLBD_gf_MMBOEAwardBossXP(libMLBD_gv_mMBOEBosses[libMLBD_gv_mMBOEEventWinningTeam], (libMLBD_gv_mMBOEXPValue - lv_bossDuelLoserXPBalance));
libMLBD_gv_mMBOEXPValue = lv_bossDuelLoserXPBalance;
lv_targetLoc = libMLBD_gv_mMBOEBossSpawnLocationCenter;
lv_losingBossLoc = libMLBD_gv_mMBOEBossSpawnLocationCenter;
UnitKill(libMLBD_gv_mMBOEBosses[lv_losingTeam]);
libMLBD_gv_mMBOEBosses[lv_losingTeam] = null;
lv_angleSpawnGlobe = AngleBetweenPoints(UnitGetPosition(libMLBD_gv_mMBOEBosses[libMLBD_gv_mMBOEEventWinningTeam]), lv_losingBossLoc);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RegenGlobe", c_unitCreateIgnorePlacement, libGame_gf_ComputerPlayerInTeam(libMLBD_gv_mMBOEEventWinningTeam), PointWithOffset(libMLBD_gv_mMBOEBossSpawnLocationCenter, -3.0, 0.0), null);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RegenGlobe", c_unitCreateIgnorePlacement, libGame_gf_ComputerPlayerInTeam(libMLBD_gv_mMBOEEventWinningTeam), PointWithOffset(libMLBD_gv_mMBOEBossSpawnLocationCenter, 3.0, 0.0), null);
libMLBD_gf_MMBOECalculateBossRallyPoint();
libStEx_gf_MoveUnit(libMLBD_gv_mMBOEBossesLaning, lv_targetLoc, false);
if ((libMLBD_gv_mMBOEEventWinningTeam == libGame_gv_teamOrderIndex_C)) {
UnitSetFacing(libMLBD_gv_mMBOEBossesLaning, 315.0, 0.0);
}
else {
UnitSetFacing(libMLBD_gv_mMBOEBossesLaning, 225.0, 0.0);
}
libMLBD_gf_MMBOECreateFlyerPathLine(true, false);
UnitRemove(libMLBD_gv_mMBOEBosses[libMLBD_gv_mMBOEEventWinningTeam]);
libMLBD_gv_mMBOEBosses[libMLBD_gv_mMBOEEventWinningTeam] = null;
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[1][1], PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[1][2], PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[2][1], PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[2][2], PlayerGroupAll(), false);
libNtve_gf_ShowHideUnit(libMLBD_gv_mMBOEBossesLaning, true);
libNtve_gf_PauseUnit(libMLBD_gv_mMBOEBossesLaning, false);
if ((libMLBD_gv_mMBOEEventWinningTeam == libGame_gv_teamOrderIndex_C)) {
libCore_gf_CreateMinimapPingStormWithPlayerId(PlayerGroupAll(), "ImmortalAngel", UnitGetPosition(libMLBD_gv_mMBOEBossesLaning), ColorWithAlpha(0,0,0,0), -1, libCore_gv_cOMPUTER_TeamOrder);
}
else {
libCore_gf_CreateMinimapPingStormWithPlayerId(PlayerGroupAll(), "ImmortalDemon", UnitGetPosition(libMLBD_gv_mMBOEBossesLaning), ColorWithAlpha(0,0,0,0), -1, libCore_gv_cOMPUTER_TeamChaos);
}
PingSetUnit(PingLastCreated(), libMLBD_gv_mMBOEBossesLaning);
PingSetTooltip(PingLastCreated(), StringExternal("Param/Value/lib_MLBD_A9B10BD8"));
PingSetScale(PingLastCreated(), 0.5);
PingSetUseUnitVisibility(PingLastCreated(), true);
libMLBD_gv_mMBOELaningBossPing[lv_itPingIndex] = PingLastCreated();
libMLBD_gv_mMBOEEventStage = libMLBD_ge_MMBOEEventStage_PushingPrep;
TimerStart(libMLBD_gv_mMBOEEventPrepLaningTimer, libMLBD_gv_mMBossDuelLaningPrepDelay_C, false, c_timeGame);
Wait(2.0, c_timeGame);
libMLBD_gf_MMBOETransmissionDuelEndQ(libMLBD_gv_mMBOEEventWinningTeam);
libNtve_gf_WaitForTimer(libMLBD_gv_mMBOEEventPrepLaningTimer, 0.0, false);
libNtve_gf_SendActorMessageToUnit(libMLBD_gv_mMBOEBossesLaning, "Signal PrepDone");
libMLBD_gv_mMBOEEventStage = libMLBD_ge_MMBOEEventStage_Pushing;
libMLBD_gf_MMBOESpawnLaningBoss(libMLBD_gv_mMBOEEventWinningTeam, libMLBD_gv_mMBOEBossSpawnLocationCenter);
}
void libMLBD_gf_MMBOEDuelEndShakingCamera (point lp_targetLocation) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
const int auto750ED470_ae = libCore_gv_bALMaxPlayers;
const int auto750ED470_ai = 1;
// Variable Initialization
// Implementation
lv_itPlayer = 1;
for ( ; ( (auto750ED470_ai >= 0 && lv_itPlayer <= auto750ED470_ae) || (auto750ED470_ai < 0 && lv_itPlayer >= auto750ED470_ae) ) ; lv_itPlayer += auto750ED470_ai ) {
if (((PlayerType(lv_itPlayer) != c_playerTypeUser) || (PlayerStatus(lv_itPlayer) != c_playerStatusActive))) {
continue;
}
libMLBD_gf_MMBOEDuelEndShakingCameraForPlayer(lv_itPlayer, lp_targetLocation);
}
libMLBD_gf_MMBOEDuelEndShakingCameraForPlayer(libCore_gv_oBSERVER_ObserverUIPlayer, lp_targetLocation);
}
void libMLBD_gf_MMBOEDuelEndShakingCameraForPlayer (int lp_player, point lp_targetLocation) {
// Automatic Variable Declarations
// Implementation
if ((DistanceBetweenPoints(CameraGetTarget(lp_player), lp_targetLocation) <= 15.0)) {
CameraShake(lp_player, "Massive", "Earthquake", 0.0, 0.5, 0.5);
}
else if ((DistanceBetweenPoints(CameraGetTarget(lp_player), lp_targetLocation) <= 30.0)) {
CameraShake(lp_player, "Light", "Earthquake", 0.0, 0.5, 0.5);
}
}
int libMLBD_gf_MMBOEBADBossSpawnLocation1stRound (int lp_team) {
// Variable Declarations
int lv_teamEnemy;
int lv_computerEnemy;
// Automatic Variable Declarations
int auto51E9AADA_val;
// Variable Initialization
// Implementation
lv_teamEnemy = libGame_gf_EnemyTeam(lp_team);
lv_computerEnemy = libGame_gf_ComputerPlayerInTeam(lv_teamEnemy);
auto51E9AADA_val = lp_team;
if (auto51E9AADA_val == libGame_gv_teamOrderIndex_C) {
if ((libGame_gf_TownTownIsAlive(6, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(8, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(6, 8, lv_computerEnemy) > 0)) {
return 3;
}
else if ((libMLBD_gf_MMBOETownComparison(6, 8, lv_computerEnemy) < 0)) {
return 1;
}
else if (true) {
return 0;
}
}
else if ((libGame_gf_TownTownIsAlive(6, lv_computerEnemy) == true)) {
return 3;
}
else if ((libGame_gf_TownTownIsAlive(8, lv_computerEnemy) == true)) {
return 1;
}
else if ((libGame_gf_TownTownIsAlive(5, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(7, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(5, 7, lv_computerEnemy) > 0)) {
return 3;
}
else if ((libMLBD_gf_MMBOETownComparison(5, 7, lv_computerEnemy) < 0)) {
return 1;
}
else if (true) {
return 0;
}
}
else if ((libGame_gf_TownTownIsAlive(5, lv_computerEnemy) == true)) {
return 3;
}
else if ((libGame_gf_TownTownIsAlive(7, lv_computerEnemy) == true)) {
return 1;
}
else if (true) {
return 0;
}
}
else if (auto51E9AADA_val == libGame_gv_teamChaosIndex_C) {
if ((libGame_gf_TownTownIsAlive(2, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(4, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(2, 4, lv_computerEnemy) > 0)) {
return 1;
}
else if ((libMLBD_gf_MMBOETownComparison(2, 4, lv_computerEnemy) < 0)) {
return 3;
}
else if (true) {
return 0;
}
}
else if ((libGame_gf_TownTownIsAlive(2, lv_computerEnemy) == true)) {
return 1;
}
else if ((libGame_gf_TownTownIsAlive(4, lv_computerEnemy) == true)) {
return 3;
}
else if ((libGame_gf_TownTownIsAlive(1, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(3, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(1, 3, lv_computerEnemy) > 0)) {
return 1;
}
else if ((libMLBD_gf_MMBOETownComparison(1, 3, lv_computerEnemy) < 0)) {
return 3;
}
else if (true) {
return 0;
}
}
else if ((libGame_gf_TownTownIsAlive(1, lv_computerEnemy) == true)) {
return 1;
}
else if ((libGame_gf_TownTownIsAlive(3, lv_computerEnemy) == true)) {
return 3;
}
else if (true) {
return 0;
}
}
else {
}
return 0;
}
int libMLBD_gf_MMBOEBADBossSpawnLocation2ndRound (int lp_team) {
// Variable Declarations
int lv_teamEnemy;
int lv_computerEnemy;
// Automatic Variable Declarations
int autoAD1CD7BA_val;
// Variable Initialization
// Implementation
lv_teamEnemy = libGame_gf_EnemyTeam(lp_team);
lv_computerEnemy = libGame_gf_ComputerPlayerInTeam(lv_teamEnemy);
autoAD1CD7BA_val = lp_team;
if (autoAD1CD7BA_val == libGame_gv_teamOrderIndex_C) {
if ((libGame_gf_TownTownIsAlive(6, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(8, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(6, 8, lv_computerEnemy) > 0)) {
return 1;
}
else if ((libMLBD_gf_MMBOETownComparison(6, 8, lv_computerEnemy) < 0)) {
return 3;
}
else if (true) {
return 0;
}
}
else if ((libGame_gf_TownTownIsAlive(6, lv_computerEnemy) == true)) {
return 1;
}
else if ((libGame_gf_TownTownIsAlive(8, lv_computerEnemy) == true)) {
return 3;
}
else if ((libGame_gf_TownTownIsAlive(5, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(7, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(5, 7, lv_computerEnemy) > 0)) {
return 1;
}
else if ((libMLBD_gf_MMBOETownComparison(5, 7, lv_computerEnemy) < 0)) {
return 3;
}
else if (true) {
return 0;
}
}
else if ((libGame_gf_TownTownIsAlive(5, lv_computerEnemy) == true)) {
return 1;
}
else if ((libGame_gf_TownTownIsAlive(7, lv_computerEnemy) == true)) {
return 3;
}
else if (true) {
return 0;
}
}
else if (autoAD1CD7BA_val == libGame_gv_teamChaosIndex_C) {
if ((libGame_gf_TownTownIsAlive(2, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(4, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(2, 4, lv_computerEnemy) > 0)) {
return 3;
}
else if ((libMLBD_gf_MMBOETownComparison(2, 4, lv_computerEnemy) < 0)) {
return 1;
}
else if (true) {
return 0;
}
}
else if ((libGame_gf_TownTownIsAlive(2, lv_computerEnemy) == true)) {
return 3;
}
else if ((libGame_gf_TownTownIsAlive(4, lv_computerEnemy) == true)) {
return 1;
}
else if ((libGame_gf_TownTownIsAlive(1, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(3, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(1, 3, lv_computerEnemy) > 0)) {
return 3;
}
else if ((libMLBD_gf_MMBOETownComparison(1, 3, lv_computerEnemy) < 0)) {
return 1;
}
else if (true) {
return 0;
}
}
else if ((libGame_gf_TownTownIsAlive(1, lv_computerEnemy) == true)) {
return 3;
}
else if ((libGame_gf_TownTownIsAlive(3, lv_computerEnemy) == true)) {
return 1;
}
else if (true) {
return 0;
}
}
else {
}
return 0;
}
void libMLBD_gf_MMBOESetMiddleStructureGroups (unitgroup lp_orderMiddleStructures, unitgroup lp_chaosMiddleStructures) {
// Automatic Variable Declarations
// Implementation
libMLBD_gv_mMBOEOrderMiddleStructures = lp_orderMiddleStructures;
libMLBD_gv_mMBOEChaosMiddleStructures = lp_chaosMiddleStructures;
}
fixed libMLBD_gf_MMBOETownHealth (int lp_town, int lp_player) {
// Variable Declarations
unitgroup lv_group;
unit lv_itStructure;
fixed lv_hPTotal;
// Automatic Variable Declarations
unitgroup auto4A319AC8_g;
int auto4A319AC8_u;
// Variable Initialization
lv_group = UnitGroupEmpty();
// Implementation
lv_group = UnitGroup(null, lp_player, libGame_gv_townTownData[lp_town].lv_townRegion, UnitFilter((1 << c_targetFilterStructure), 0, (1 << c_targetFilterNoMinionAggro) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterInvulnerable - 32))), 0);
if ((lp_player == libCore_gv_cOMPUTER_TeamOrder)) {
UnitGroupRemoveUnitGroup(lv_group, libMLBD_gv_mMBOEOrderMiddleStructures);
}
if ((lp_player == libCore_gv_cOMPUTER_TeamChaos)) {
UnitGroupRemoveUnitGroup(lv_group, libMLBD_gv_mMBOEChaosMiddleStructures);
}
auto4A319AC8_g = lv_group;
auto4A319AC8_u = UnitGroupCount(auto4A319AC8_g, c_unitCountAll);
for (;; auto4A319AC8_u -= 1) {
lv_itStructure = UnitGroupUnitFromEnd(auto4A319AC8_g, auto4A319AC8_u);
if (lv_itStructure == null) { break; }
if ((UnitGetType(lv_itStructure) != "TownMoonwell") && (UnitGetType(lv_itStructure) != "TownMoonwellL2") && (UnitGetType(lv_itStructure) != "TownMoonwellL3")) {
lv_hPTotal += UnitGetPropertyFixed(lv_itStructure, c_unitPropLife, c_unitPropCurrent);
}
}
return lv_hPTotal;
}
int libMLBD_gf_MMBOETownComparison (int lp_town1, int lp_town2, int lp_player) {
// Variable Declarations
unitgroup lv_group;
unit lv_itStructure;
fixed lv_hPTotal;
fixed lv_townHP1;
fixed lv_townHP2;
// Automatic Variable Declarations
// Variable Initialization
lv_group = UnitGroupEmpty();
// Implementation
if ((libGame_gf_TownTownIsAlive(lp_town1, lp_player) == false) && (libGame_gf_TownTownIsAlive(lp_town2, lp_player) == false)) {
return 0;
}
if ((libGame_gf_TownTownIsAlive(lp_town1, lp_player) == false)) {
return -1;
}
if ((libGame_gf_TownTownIsAlive(lp_town2, lp_player) == false)) {
return 1;
}
if ((UnitIsAlive(libGame_gf_TownTownHall(lp_town1)) == true) && (UnitIsAlive(libGame_gf_TownTownHall(lp_town2)) == false)) {
return 1;
}
if ((UnitIsAlive(libGame_gf_TownTownHall(lp_town1)) == false) && (UnitIsAlive(libGame_gf_TownTownHall(lp_town2)) == true)) {
return -1;
}
lv_townHP1 = libMLBD_gf_MMBOETownHealth(lp_town1, lp_player);
lv_townHP2 = libMLBD_gf_MMBOETownHealth(lp_town2, lp_player);
if (((lv_townHP1 - lv_townHP2) > libMLBD_gv_mMBossDuelMeaningfulTownHPDifference_C)) {
return 1;
}
if (((lv_townHP2 - lv_townHP1) > libMLBD_gv_mMBossDuelMeaningfulTownHPDifference_C)) {
return -1;
}
return 0;
}
int libMLBD_gf_MMBOEBossPushingLane (int lp_team) {
// Variable Declarations
int lv_teamEnemy;
int lv_computerEnemy;
int lv_lane;
// Automatic Variable Declarations
int auto782BE736_val;
// Variable Initialization
// Implementation
lv_teamEnemy = libGame_gf_EnemyTeam(lp_team);
lv_computerEnemy = libGame_gf_ComputerPlayerInTeam(lv_teamEnemy);
auto782BE736_val = lp_team;
if (auto782BE736_val == libGame_gv_teamOrderIndex_C) {
if ((libGame_gf_TownTownIsAlive(6, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(8, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(6, 8, lv_computerEnemy) > 0)) {
lv_lane = 1;
}
else if ((libMLBD_gf_MMBOETownComparison(6, 8, lv_computerEnemy) < 0)) {
lv_lane = 2;
}
else if (true) {
lv_lane = 0;
}
}
else if ((libGame_gf_TownTownIsAlive(6, lv_computerEnemy) == true)) {
lv_lane = 1;
}
else if ((libGame_gf_TownTownIsAlive(8, lv_computerEnemy) == true)) {
lv_lane = 2;
}
else if ((libGame_gf_TownTownIsAlive(5, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(7, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(5, 7, lv_computerEnemy) > 0)) {
lv_lane = 1;
}
else if ((libMLBD_gf_MMBOETownComparison(5, 7, lv_computerEnemy) < 0)) {
lv_lane = 2;
}
else if (true) {
lv_lane = 0;
}
}
else if ((libGame_gf_TownTownIsAlive(5, lv_computerEnemy) == true)) {
lv_lane = 1;
}
else if ((libGame_gf_TownTownIsAlive(7, lv_computerEnemy) == true)) {
lv_lane = 2;
}
else if (true) {
lv_lane = 0;
}
}
else if (auto782BE736_val == libGame_gv_teamChaosIndex_C) {
if ((libGame_gf_TownTownIsAlive(2, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(4, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(2, 4, lv_computerEnemy) > 0)) {
lv_lane = 1;
}
else if ((libMLBD_gf_MMBOETownComparison(2, 4, lv_computerEnemy) < 0)) {
lv_lane = 2;
}
else if (true) {
lv_lane = 0;
}
}
else if ((libGame_gf_TownTownIsAlive(2, lv_computerEnemy) == true)) {
lv_lane = 1;
}
else if ((libGame_gf_TownTownIsAlive(4, lv_computerEnemy) == true)) {
lv_lane = 2;
}
else if ((libGame_gf_TownTownIsAlive(1, lv_computerEnemy) == true) && (libGame_gf_TownTownIsAlive(3, lv_computerEnemy) == true)) {
if ((libMLBD_gf_MMBOETownComparison(1, 3, lv_computerEnemy) > 0)) {
lv_lane = 1;
}
else if ((libMLBD_gf_MMBOETownComparison(1, 3, lv_computerEnemy) < 0)) {
lv_lane = 2;
}
else if (true) {
lv_lane = 0;
}
}
else if ((libGame_gf_TownTownIsAlive(1, lv_computerEnemy) == true)) {
lv_lane = 1;
}
else if ((libGame_gf_TownTownIsAlive(3, lv_computerEnemy) == true)) {
lv_lane = 2;
}
else if (true) {
lv_lane = 0;
}
}
else {
}
if ((lv_lane == 0)) {
lv_lane = RandomInt(1, 2);
}
return lv_lane;
}
void libMLBD_gf_MMBOECalculateBossRallyPoint () {
// Variable Declarations
int lv_lane;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_lane = libMLBD_gf_MMBOEBossPushingLane(libMLBD_gv_mMBOEEventWinningTeam);
if ((lv_lane == 0)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MLBD_18E046D8"), true);
}
libMLBD_gv_mMBOELaningRallyPoint = libMLBD_gv_mMBOEBossLanerStartPoints[lv_lane];
}
trigger auto_libMLBD_gf_MMBOECreateFlyerPathLine_Trigger = null;
bool auto_libMLBD_gf_MMBOECreateFlyerPathLine_lp_fly;
bool auto_libMLBD_gf_MMBOECreateFlyerPathLine_lp_manage;
void libMLBD_gf_MMBOECreateFlyerPathLine (bool lp_fly, bool lp_manage) {
auto_libMLBD_gf_MMBOECreateFlyerPathLine_lp_fly = lp_fly;
auto_libMLBD_gf_MMBOECreateFlyerPathLine_lp_manage = lp_manage;
if (auto_libMLBD_gf_MMBOECreateFlyerPathLine_Trigger == null) {
auto_libMLBD_gf_MMBOECreateFlyerPathLine_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOECreateFlyerPathLine_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOECreateFlyerPathLine_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOECreateFlyerPathLine_TriggerFunc (bool testConds, bool runActions) {
bool lp_fly = auto_libMLBD_gf_MMBOECreateFlyerPathLine_lp_fly;
bool lp_manage = auto_libMLBD_gf_MMBOECreateFlyerPathLine_lp_manage;
int init_i;
// Variable Declarations
int lv_losingTeam;
const string lv_lineTextureFly_C = "Assets\\Textures\\storm_waypointline.dds";
unit lv_flyPathingLineUnit;
int[4] lv_flyPathingTargetPing;
// Automatic Variable Declarations
// Variable Initialization
lv_losingTeam = libGame_gf_EnemyTeam(libMLBD_gv_mMBOEEventWinningTeam);
for (init_i = 0; init_i <= 3; init_i += 1) {
lv_flyPathingTargetPing[init_i] = c_invalidPingId;
}
// Implementation
if ((lp_fly == true)) {
libNtve_gf_CreatePingFacingAngleWithType(PlayerGroupSingle(libCore_gv_oBSERVER_ObserverUIPlayer), "PingObjective", libMLBD_gv_mMBOELaningRallyPoint, ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 0.0, 270.0, -1, -1);
lv_flyPathingTargetPing[0] = PingLastCreated();
PingSetScale(PingLastCreated(), 0.6);
libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, true), "PingObjective", libMLBD_gv_mMBOELaningRallyPoint, ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 0.0, 270.0, -1, -1);
lv_flyPathingTargetPing[1] = PingLastCreated();
PingSetScale(PingLastCreated(), 0.6);
libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, true), "PingObjective", libMLBD_gv_mMBOELaningRallyPoint, ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 0.0, 270.0, -1, -1);
lv_flyPathingTargetPing[2] = PingLastCreated();
PingSetScale(PingLastCreated(), 0.6);
while (true) {
if ((libMLBD_gv_mMBOELaningPathLineCreated == false)) {
UnitCreate(1, "InvisibleBossPathingLine", c_unitCreateIgnorePlacement, UnitGetOwner(libMLBD_gv_mMBOEBossesLaning), UnitGetPosition(libMLBD_gv_mMBOEBossesLaning), UnitGetFacing(libMLBD_gv_mMBOEBossesLaning), null);
lv_flyPathingLineUnit = UnitLastCreated();
PathCreateForUnit(PlayerGroupAll(), lv_flyPathingLineUnit);
libMLBD_gv_mMBOELaningPathLine = PathLastCreated();
PathSetOwnerPlayerId(PathLastCreated(), libGame_gf_ComputerPlayerInTeam(libMLBD_gv_mMBOEEventWinningTeam));
libMLBD_gv_mMBOELaningPathLineCreated = true;
PathSetVisible(libMLBD_gv_mMBOELaningPathLine, c_pathLocationMinimap, true);
PathSetVisible(libMLBD_gv_mMBOELaningPathLine, c_pathLocationWorld, false);
PathSetLineTexture(libMLBD_gv_mMBOELaningPathLine, c_pathLocationMinimap, lv_lineTextureFly_C);
PathSetLineWidth(libMLBD_gv_mMBOELaningPathLine, c_pathLocationMinimap, 15.0);
PathSetLineTileLength(libMLBD_gv_mMBOELaningPathLine, c_pathLocationMinimap, 30.0);
if ((libMLBD_gv_mMBOEEventWinningTeam == libGame_gv_teamOrderIndex_C)) {
PingSetColor(lv_flyPathingTargetPing[0], libCore_gv_cOLORAllyColor);
PingSetColor(lv_flyPathingTargetPing[1], Color(0.00, 100.00, 0.00));
PingSetColor(lv_flyPathingTargetPing[2], libCore_gv_cOLOREnemyColor);
}
else {
PingSetColor(lv_flyPathingTargetPing[0], libCore_gv_cOLOREnemyColor);
PingSetColor(lv_flyPathingTargetPing[1], libCore_gv_cOLOREnemyColor);
PingSetColor(lv_flyPathingTargetPing[2], Color(0.00, 100.00, 0.00));
}
}
else {
PathClearWayPoints(libMLBD_gv_mMBOELaningPathLine);
}
PathSetSourceUnit(libMLBD_gv_mMBOELaningPathLine, lv_flyPathingLineUnit);
PathSetDestinationPoint(libMLBD_gv_mMBOELaningPathLine, libMLBD_gv_mMBOELaningRallyPoint);
if ((DistanceBetweenPoints(UnitGetPosition(libMLBD_gv_mMBOEBossesLaning), libMLBD_gv_mMBOELaningRallyPoint) <= 0.5)) {
UnitRemove(lv_flyPathingLineUnit);
PathDestroy(libMLBD_gv_mMBOELaningPathLine);
PingDestroy(lv_flyPathingTargetPing[0]);
PingDestroy(lv_flyPathingTargetPing[1]);
PingDestroy(lv_flyPathingTargetPing[2]);
libMLBD_gv_mMBOELaningPathLineCreated = false;
return true;
}
libStEx_gf_MoveUnit(lv_flyPathingLineUnit, UnitGetPosition(libMLBD_gv_mMBOEBossesLaning), false);
Wait(0.125, c_timeGame);
}
}
return true;
}
trigger auto_libMLBD_gf_MMBOECreateGroundPathLine_Trigger = null;
unit auto_libMLBD_gf_MMBOECreateGroundPathLine_lp_unit;
bool auto_libMLBD_gf_MMBOECreateGroundPathLine_lp_new_Path;
void libMLBD_gf_MMBOECreateGroundPathLine (unit lp_unit, bool lp_new_Path) {
auto_libMLBD_gf_MMBOECreateGroundPathLine_lp_unit = lp_unit;
auto_libMLBD_gf_MMBOECreateGroundPathLine_lp_new_Path = lp_new_Path;
if (auto_libMLBD_gf_MMBOECreateGroundPathLine_Trigger == null) {
auto_libMLBD_gf_MMBOECreateGroundPathLine_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOECreateGroundPathLine_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOECreateGroundPathLine_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOECreateGroundPathLine_TriggerFunc (bool testConds, bool runActions) {
unit lp_unit = auto_libMLBD_gf_MMBOECreateGroundPathLine_lp_unit;
bool lp_new_Path = auto_libMLBD_gf_MMBOECreateGroundPathLine_lp_new_Path;
// Variable Declarations
int lv_mercLanerGroup;
int lv_waveIndex;
int lv_currentLane;
int lv_itWaypoint;
// Automatic Variable Declarations
int auto7E3FC461_val;
// Variable Initialization
// Implementation
if ((UnitIsAlive(lp_unit) == false)) {
return true;
}
lv_currentLane = libAIAI_gf_MinionAIGetLaneForMinion(lp_unit);
lv_itWaypoint = libAIAI_gf_MinionAIGetNextWaypointIndexForMinion(lp_unit);
if ((lp_new_Path == false)) {
if ((libMLBD_gv_mMBOE_BossLanerPathCurrentIndex < libMLBD_gv_mMBOE_BossLanerPathIndexMax)) {
PathSetWayPointIndexStart(libMLBD_gv_mMBOELaningPathLine, libMLBD_gv_mMBOE_BossLanerPathCurrentIndex);
}
else if ((libMLBD_gv_mMBOE_BossLanerPathCurrentIndex >= libMLBD_gv_mMBOE_BossLanerPathIndexMax)) {
PathDestroy(libMLBD_gv_mMBOELaningPathLine);
PathCreateForUnit(PlayerGroupAll(), lp_unit);
libMLBD_gv_mMBOELaningPathLine = PathLastCreated();
PathSetLineTexture(libMLBD_gv_mMBOELaningPathLine, c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
PathSetVisible(libMLBD_gv_mMBOELaningPathLine, c_pathLocationWorld, false);
PathSetLineWidth(libMLBD_gv_mMBOELaningPathLine, c_pathLocationMinimap, 15.0);
PathSetLineTileLength(libMLBD_gv_mMBOELaningPathLine, c_pathLocationMinimap, 30.0);
PathSetOwnerPlayerId(libMLBD_gv_mMBOELaningPathLine, UnitGetOwner(lp_unit));
PathSetDestinationUnit(libMLBD_gv_mMBOELaningPathLine, libGame_gv_teams[libAIAI_gf_MinionAIGetTeamToAttackForMinion(lp_unit)].lv_core);
}
return true;
}
else {
libMLBD_gv_mMBOE_BossLanerPathCurrentIndex = 1;
libMLBD_gv_mMBOE_BossLanerPathIndexMax = 1;
}
PathCreateForUnit(PlayerGroupAll(), lp_unit);
libMLBD_gv_mMBOELaningPathLine = PathLastCreated();
PathSetLineTexture(libMLBD_gv_mMBOELaningPathLine, c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
PathSetVisible(libMLBD_gv_mMBOELaningPathLine, c_pathLocationWorld, false);
PathSetLineWidth(libMLBD_gv_mMBOELaningPathLine, c_pathLocationMinimap, 15.0);
PathSetLineTileLength(libMLBD_gv_mMBOELaningPathLine, c_pathLocationMinimap, 30.0);
auto7E3FC461_val = libAIAI_gf_MinionAIGetTeamToAttackForMinion(lp_unit);
if (auto7E3FC461_val == libGame_gv_teamChaosIndex_C) {
PathSetOwnerPlayerId(libMLBD_gv_mMBOELaningPathLine, libCore_gv_cOMPUTER_TeamOrder);
PathSetDestinationUnit(libMLBD_gv_mMBOELaningPathLine, libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_core);
while ((lv_itWaypoint < (libGame_gv_laneData[lv_currentLane].lv_waypointCount - 1))) {
PathAddWayPoint(libMLBD_gv_mMBOELaningPathLine, libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint]);
lv_itWaypoint += 1;
libMLBD_gv_mMBOE_BossLanerPathIndexMax += 1;
}
}
else if (auto7E3FC461_val == libGame_gv_teamOrderIndex_C) {
PathSetOwnerPlayerId(libMLBD_gv_mMBOELaningPathLine, libCore_gv_cOMPUTER_TeamChaos);
PathSetDestinationUnit(libMLBD_gv_mMBOELaningPathLine, libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_core);
while ((lv_itWaypoint > 1)) {
PathAddWayPoint(libMLBD_gv_mMBOELaningPathLine, libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint]);
lv_itWaypoint -= 1;
libMLBD_gv_mMBOE_BossLanerPathIndexMax += 1;
}
}
else {
}
return true;
}
void libMLBD_gf_MMBOESpawnLaningBoss (int lp_team, point lp_location) {
// Variable Declarations
int lv_enemyTeam;
// Automatic Variable Declarations
// Variable Initialization
lv_enemyTeam = libGame_gf_EnemyTeam(lp_team);
// Implementation
UnitCreateEffectPoint(libMLBD_gv_mMBOEBossesLaning, "BossDuelLanerImmortalLaunchUnit", libMLBD_gv_mMBOELaningRallyPoint);
if ((UnitGetType(libMLBD_gv_mMBOEBossesLaning) == "BossDuelLanerHeaven")) {
libSond_gf_SoundtrackApplyNewDefaultSoundtrackForPlayerGroup("MX_Event_BoE_Immortal_Heaven_In_Lane", PlayerGroupAll());
}
else {
libSond_gf_SoundtrackApplyNewDefaultSoundtrackForPlayerGroup("MX_Event_BoE_Immortal_Hell_In_Lane", PlayerGroupAll());
}
while (!((UnitHasBehavior2(libMLBD_gv_mMBOEBossesLaning, "BossLanerPreparingBehavior") == false))) {
Wait(0.0625, c_timeGame);
}
libNtve_gf_MakeUnitInvulnerable(libMLBD_gv_mMBOEBossesLaning, false);
UnitSetState(libMLBD_gv_mMBOEBossesLaning, c_unitStateTargetable, true);
UnitSetCustomValue(libMLBD_gv_mMBOEBossesLaning, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_MercLanerGroupIndex), IntToFixed(libMLBD_gv_mMBOE_AICustomUnitValue[lp_team]));
libNtve_gf_AttachModelToUnitInheritVisibility(libMLBD_gv_mMBOEBossesLaning, "HitTestFuzzy_Cyliner", "Ref_Origin");
ActorSend(libNtve_gf_ActorLastCreated(), "SetScale 2.700000,2.700000,4.500000");
libGame_gf_CalculateSpawnedMinionGoalPoints(UnitGetOwner(libMLBD_gv_mMBOEBossesLaning), libMLBD_gv_mMBOELaningRallyPoint);
libAIAI_gf_MinionAIStartMinionAI(-1, libMLBD_gv_mMBOEBossesLaning, libGame_gv_spawnedMinionLane, libGame_gv_spawnedMinionFirstWaypointIndex, true, true, false, 0, true);
libMLBD_gf_MMBOECreateGroundPathLine(libMLBD_gv_mMBOEBossesLaning, true);
libNtve_gf_CreatePingFacingAngleWithType(PlayerGroupAll(), "StormPingWarning", UnitGetPosition(libMLBD_gv_mMBOEBossesLaning), ColorWithAlpha(100.00, 100.00, 0.00, 0.00), 3.0, 270.0, -1, -1);
PingSetUnit(PingLastCreated(), libMLBD_gv_mMBOEBossesLaning);
SoundPlayForPlayer(SoundLink("UI_Game_BoE_Immortal_Attacking_Friendly", -1), c_maxPlayers, libGame_gf_PlayersOnTeamHeroes(libGame_gf_EnemyTeam(libMLBD_gv_mMBOEEventWinningTeam), false), 100.0, 0.0);
SoundPlayForPlayer(SoundLink("UI_Game_BoE_Immortal_Attacking_Enemy", -1), c_maxPlayers, libGame_gf_PlayersOnTeamHeroes(libMLBD_gv_mMBOEEventWinningTeam, false), 100.0, 0.0);
TriggerEnable(libMLBD_gt_MMBOEBossLaningKilled, true);
TriggerEnable(libMLBD_gt_MMBOEUpdateBossLanerPath, true);
Wait(1.0, c_timeGame);
libMLBD_gf_MMBOETransmissionBossPushingQ(libMLBD_gv_mMBOEEventWinningTeam);
}
trigger auto_libMLBD_gf_MMBOEDuelMidBossPings_Trigger = null;
void libMLBD_gf_MMBOEDuelMidBossPings () {
if (auto_libMLBD_gf_MMBOEDuelMidBossPings_Trigger == null) {
auto_libMLBD_gf_MMBOEDuelMidBossPings_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOEDuelMidBossPings_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOEDuelMidBossPings_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOEDuelMidBossPings_TriggerFunc (bool testConds, bool runActions) {
// Variable Declarations
point[3] lv_posBoss;
point[3] lv_posNext;
int lv_itTeam;
unit[3] lv_pingUnit;
point[3] lv_moveTarget;
// Automatic Variable Declarations
const int autoC84E0D5C_ae = 2;
const int autoC84E0D5C_ai = 1;
const int auto8193AFAB_ae = 2;
const int auto8193AFAB_ai = 1;
const int auto9386E85F_ae = 2;
const int auto9386E85F_ai = 1;
const int autoFDF38FF1_ae = 2;
const int autoFDF38FF1_ai = 1;
// Variable Initialization
// Implementation
lv_itTeam = 1;
for ( ; ( (autoC84E0D5C_ai >= 0 && lv_itTeam <= autoC84E0D5C_ae) || (autoC84E0D5C_ai < 0 && lv_itTeam >= autoC84E0D5C_ae) ) ; lv_itTeam += autoC84E0D5C_ai ) {
lv_posBoss[lv_itTeam] = UnitGetPosition(libMLBD_gv_mMBOEBosses[lv_itTeam]);
UnitCreate(1, "ImmortalPingUnit", c_unitCreateIgnorePlacement, UnitGetOwner(libMLBD_gv_mMBOEBosses[lv_itTeam]), lv_posBoss[lv_itTeam], UnitGetFacing(libMLBD_gv_mMBOEBosses[lv_itTeam]), null);
lv_pingUnit[lv_itTeam] = UnitLastCreated();
}
Wait(1.75, c_timeGame);
lv_itTeam = 1;
for ( ; ( (auto8193AFAB_ai >= 0 && lv_itTeam <= auto8193AFAB_ae) || (auto8193AFAB_ai < 0 && lv_itTeam >= auto8193AFAB_ae) ) ; lv_itTeam += auto8193AFAB_ai ) {
libNtve_gf_SendActorMessageToUnit(lv_pingUnit[lv_itTeam], "Create Event_BoE_Immortal_Mid_Start");
lv_moveTarget[lv_itTeam] = PointWithOffsetPolar(lv_posBoss[lv_itTeam], (DistanceBetweenPoints(lv_posBoss[lv_itTeam], libMLBD_gv_mMBOEBossSpawnLocationCenter) - 2.0), AngleBetweenPoints(lv_posBoss[lv_itTeam], libMLBD_gv_mMBOEBossSpawnLocationCenter));
UnitIssueOrder(lv_pingUnit[lv_itTeam], OrderTargetingPoint(AbilityCommand("move", 0), lv_moveTarget[lv_itTeam]), c_orderQueueReplace);
}
Wait(4.5, c_timeGame);
lv_itTeam = 1;
for ( ; ( (auto9386E85F_ai >= 0 && lv_itTeam <= auto9386E85F_ae) || (auto9386E85F_ai < 0 && lv_itTeam >= auto9386E85F_ae) ) ; lv_itTeam += auto9386E85F_ai ) {
UnitIssueOrder(lv_pingUnit[lv_itTeam], OrderTargetingPoint(AbilityCommand("move", 0), libMLBD_gv_mMBOEBossSpawnLocationPair[libMLBD_gv_mMBOEBossSpawnLocationIndexes[2]][lv_itTeam]), c_orderQueueReplace);
}
Wait(3.0, c_timeGame);
lv_itTeam = 1;
for ( ; ( (autoFDF38FF1_ai >= 0 && lv_itTeam <= autoFDF38FF1_ae) || (autoFDF38FF1_ai < 0 && lv_itTeam >= autoFDF38FF1_ae) ) ; lv_itTeam += autoFDF38FF1_ai ) {
UnitRemove(lv_pingUnit[lv_itTeam]);
}
return true;
}
void libMLBD_gf_MMBOEUpdateAmbience (int lp_player) {
// Automatic Variable Declarations
// Implementation
if ((RegionContainsPoint(libMLBD_gv_mMBOEHeavenRegion, CameraGetTarget(lp_player)) == true)) {
libMLBD_gf_MMBOEChangeAmbience("Ambience_BoE_Heaven", null, PlayerGroupSingle(lp_player));
}
else if ((RegionContainsPoint(libMLBD_gv_mMBOEHellRegion, CameraGetTarget(lp_player)) == true)) {
libMLBD_gf_MMBOEChangeAmbience("Ambience_BoE_Hell", null, PlayerGroupSingle(lp_player));
}
else if ((RegionContainsPoint(libMLBD_gv_mMBOENeutralRegion, CameraGetTarget(lp_player)) == true)) {
libMLBD_gf_MMBOEChangeAmbience("Ambience_BoE_Neutral", null, PlayerGroupSingle(lp_player));
}
}
void libMLBD_gf_MMBOEChangeAmbience (string lp_ambience, string lp_reverb, playergroup lp_players) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
playergroup auto19711C3D_g;
// Variable Initialization
// Implementation
auto19711C3D_g = lp_players;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto19711C3D_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
if ((libMLBD_gv_mMUnderworldAmbience[lv_itPlayer] == lp_ambience)) {
continue;
}
libMLBD_gv_mMUnderworldAmbience[lv_itPlayer] = lp_ambience;
SoundtrackPlay(libCore_gv_playerGroupFromPlayer[lv_itPlayer], c_soundtrackCategoryAmbience, lp_ambience, c_soundtrackCueAny, c_soundtrackIndexAny, true);
}
}
void libMLBD_gf_MMBOEInitRegions (region lp_heavenRegion, region lp_hellRegion, region lp_neutralRegion) {
// Automatic Variable Declarations
// Implementation
libMLBD_gv_mMBOEHeavenRegion = lp_heavenRegion;
libMLBD_gv_mMBOEHellRegion = lp_hellRegion;
libMLBD_gv_mMBOENeutralRegion = lp_neutralRegion;
}
void libMLBD_gf_MMBOEUIInit (int lp_parentPanel) {
int init_i;
// Variable Declarations
int[6] lv_panels;
int lv_currentPanelLayer;
int lv_itTeam;
int lv_enemyTeam;
int lv_itIndex;
// Automatic Variable Declarations
const int auto7301CB3D_ae = 2;
const int auto7301CB3D_ai = 1;
int auto2DB6D94B_val;
const int auto40B830CF_ae = 2;
const int auto40B830CF_ai = 1;
const int autoA267F581_ae = 2;
const int autoA267F581_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, "BossDuel/BossDuelPanel");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMLBD_gv_mMBOEPanel.lv_mainPanel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "BossSpawnFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMLBD_gv_mMBOEPanel.lv_bossSpawnFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "BossLaningHudAngelImage");
DialogControlSetVisible(DialogControlLastCreated(), libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false), true);
DialogControlSetVisible(DialogControlLastCreated(), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], true);
DialogControlSetVisible(DialogControlLastCreated(), libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false), false);
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "BossLaningHudDemonImage");
DialogControlSetVisible(DialogControlLastCreated(), libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false), false);
DialogControlSetVisible(DialogControlLastCreated(), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], false);
DialogControlSetVisible(DialogControlLastCreated(), libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false), true);
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "InfoLabel");
libMLBD_gv_mMBOEPanel.lv_bossSpawnInfoLabel = DialogControlLastCreated();
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossSpawnInfoLabel, StringExternal("Param/Value/lib_MLBD_3E1E4069"), PlayerGroupAll());
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "TimerLabel");
libMLBD_gv_mMBOEPanel.lv_bossSpawnTimerLabel = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
lv_itTeam = 1;
for ( ; ( (auto7301CB3D_ai >= 0 && lv_itTeam <= auto7301CB3D_ae) || (auto7301CB3D_ai < 0 && lv_itTeam >= auto7301CB3D_ae) ) ; lv_itTeam += auto7301CB3D_ai ) {
lv_enemyTeam = libGame_gf_EnemyTeam(lv_itTeam);
auto2DB6D94B_val = lv_itTeam;
if (auto2DB6D94B_val == 1) {
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "BossDuelLeftFrame");
}
else if (auto2DB6D94B_val == 2) {
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "BossDuelRightFrame");
}
else {
}
libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[lv_itTeam] = DialogControlLastCreated();
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "BossHudLeft");
libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[lv_itTeam][1] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "EnemyBossHealthBar");
libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[lv_itTeam][2] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "AllyBossHealthBar");
libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[lv_itTeam][lv_itTeam] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "EnemyBossHealthBar");
libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[lv_itTeam][lv_enemyTeam] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "LeftBossHealthLabel");
libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[lv_itTeam][1] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "RightBossHealthLabel");
libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[lv_itTeam][2] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "PhaseLabel");
libNtve_gf_SetDialogItemText(DialogControlLastCreated(), StringExternal("Param/Value/lib_MLBD_D4A013BF"), PlayerGroupAll());
lv_currentPanelLayer -= 1;
}
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "BossLaningFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMLBD_gv_mMBOEPanel.lv_bossLaningFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "AllyAngelHud");
libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[1][1] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "EnemyDemonHud");
libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[1][2] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "EnemyAngelHud");
libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[2][1] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "AllyDemonHud");
libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[2][2] = DialogControlLastCreated();
lv_itTeam = 1;
for ( ; ( (auto40B830CF_ai >= 0 && lv_itTeam <= auto40B830CF_ae) || (auto40B830CF_ai < 0 && lv_itTeam >= auto40B830CF_ae) ) ; lv_itTeam += auto40B830CF_ai ) {
lv_enemyTeam = libGame_gf_EnemyTeam(lv_itTeam);
lv_itIndex = 1;
for ( ; ( (autoA267F581_ai >= 0 && lv_itIndex <= autoA267F581_ae) || (autoA267F581_ai < 0 && lv_itIndex >= autoA267F581_ae) ) ; lv_itIndex += autoA267F581_ai ) {
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[lv_itTeam][lv_itIndex], libGame_gf_PlayersOnTeamHeroes(1, false), true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[lv_itTeam][lv_itIndex], libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[lv_itTeam][lv_itIndex], libGame_gf_PlayersOnTeamHeroes(lv_enemyTeam, false), false);
}
}
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "BossLaningShieldBar");
libMLBD_gv_mMBOEPanel.lv_bossLaningShieldBar = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "BossLaningHealthBar");
libMLBD_gv_mMBOEPanel.lv_bossLaningHPBar = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "BossLaningInfoLabel");
libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "BossLaningTimer");
libMLBD_gv_mMBOEPanel.lv_bossLaningTimerLabel = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
}
void libMLBD_gf_MMBOEUIShowHidePanel (bool lp_showHide) {
// Automatic Variable Declarations
// Implementation
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_mainPanel, PlayerGroupAll(), lp_showHide);
}
void libMLBD_gf_MMBOEUISetMode (int lp_mode) {
// Automatic Variable Declarations
int auto5F4B7481_val;
// Implementation
auto5F4B7481_val = lp_mode;
if (auto5F4B7481_val == libMLBD_ge_MMBOEUIModes_Idle) {
libMLBD_gf_MMBOEUIShowHidePanel(false);
}
else if (auto5F4B7481_val == libMLBD_ge_MMBOEUIModes_Warning) {
libMLBD_gf_MMBOEUIShowHidePanel(true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossSpawnFrame, PlayerGroupAll(), true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[2], PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossLaningFrame, PlayerGroupAll(), false);
}
else if (auto5F4B7481_val == libMLBD_ge_MMBOEUIModes_Duel) {
libMLBD_gf_MMBOEUIShowHidePanel(true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossSpawnFrame, PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], libGame_gf_PlayersOnTeamHeroes(1, false), true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[2], libGame_gf_PlayersOnTeamHeroes(2, false), true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossLaningFrame, PlayerGroupAll(), false);
}
else if (auto5F4B7481_val == libMLBD_ge_MMBOEUIModes_PushingPrep) {
libMLBD_gf_MMBOEUIShowHidePanel(true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossSpawnFrame, PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[2], PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossLaningFrame, PlayerGroupAll(), true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossLaningTimerLabel, PlayerGroupAll(), true);
}
else if (auto5F4B7481_val == libMLBD_ge_MMBOEUIModes_Pushing) {
libMLBD_gf_MMBOEUIShowHidePanel(true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossSpawnFrame, PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[2], PlayerGroupAll(), false);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossLaningFrame, PlayerGroupAll(), true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossLaningTimerLabel, PlayerGroupAll(), false);
}
else {
}
}
void libMLBD_gf_MMBOEUISetBossSpawnTime (fixed lp_mode) {
// Automatic Variable Declarations
// Implementation
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossSpawnTimerLabel, TextTimeFormat(StringToText("<mintotal/>:<sec2/>"), FixedToInt(lp_mode)), PlayerGroupAll());
}
trigger auto_libMLBD_gf_MMBOEUISetBosses_Trigger = null;
unit auto_libMLBD_gf_MMBOEUISetBosses_lp_mode;
unit auto_libMLBD_gf_MMBOEUISetBosses_lp_mode2;
void libMLBD_gf_MMBOEUISetBosses (unit lp_mode, unit lp_mode2) {
auto_libMLBD_gf_MMBOEUISetBosses_lp_mode = lp_mode;
auto_libMLBD_gf_MMBOEUISetBosses_lp_mode2 = lp_mode2;
if (auto_libMLBD_gf_MMBOEUISetBosses_Trigger == null) {
auto_libMLBD_gf_MMBOEUISetBosses_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOEUISetBosses_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOEUISetBosses_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOEUISetBosses_TriggerFunc (bool testConds, bool runActions) {
unit lp_mode = auto_libMLBD_gf_MMBOEUISetBosses_lp_mode;
unit lp_mode2 = auto_libMLBD_gf_MMBOEUISetBosses_lp_mode2;
// Automatic Variable Declarations
// Implementation
libNtve_gf_SetDialogItemUnit(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[1][1], lp_mode, PlayerGroupAll());
libNtve_gf_SetDialogItemUnit(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[1][2], lp_mode2, PlayerGroupAll());
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[1][1], PlayerGroupAll(), true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[1][2], PlayerGroupAll(), true);
libNtve_gf_SetDialogItemUnit(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[2][1], lp_mode, PlayerGroupAll());
libNtve_gf_SetDialogItemUnit(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[2][2], lp_mode2, PlayerGroupAll());
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[2][1], PlayerGroupAll(), true);
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBar[2][2], PlayerGroupAll(), true);
return true;
}
void libMLBD_gf_MMBOEUISetBossHP () {
// Variable Declarations
int lv_itTeam;
int lv_itUnit;
// Automatic Variable Declarations
const int autoAFCE0194_ae = 2;
const int autoAFCE0194_ai = 1;
const int auto62121468_ae = 2;
const int auto62121468_ai = 1;
// Variable Initialization
// Implementation
lv_itTeam = 1;
for ( ; ( (autoAFCE0194_ai >= 0 && lv_itTeam <= autoAFCE0194_ae) || (autoAFCE0194_ai < 0 && lv_itTeam >= autoAFCE0194_ae) ) ; lv_itTeam += autoAFCE0194_ai ) {
lv_itUnit = 1;
for ( ; ( (auto62121468_ai >= 0 && lv_itUnit <= auto62121468_ae) || (auto62121468_ai < 0 && lv_itUnit >= auto62121468_ae) ) ; lv_itUnit += auto62121468_ai ) {
DialogControlSetVisible(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[lv_itTeam][lv_itUnit], PlayerGroupAll(), true);
}
}
if ((libMLBD_gv_mMBOEEventWinningTeam != 2)) {
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[1][1], FixedToText(UnitGetPropertyFixed(libMLBD_gv_mMBOEBosses[1], c_unitPropLife, c_unitPropCurrent), 0), PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[2][1], FixedToText(UnitGetPropertyFixed(libMLBD_gv_mMBOEBosses[1], c_unitPropLife, c_unitPropCurrent), 0), PlayerGroupAll());
if ((libMLBD_gv_mMBOEPanel.lv_bossHudPulsed[1] == false) && (UnitGetPropertyFixed(libMLBD_gv_mMBOEBosses[1], c_unitPropLifePercent, c_unitPropCurrent) <= 10.0)) {
libMLBD_gv_mMBOEPanel.lv_bossHudPulsed[1] = true;
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], PlayerGroupAll(), "TopBarPulse");
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[2], PlayerGroupAll(), "BottomBarPulse");
}
}
else {
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[1][1], StringExternal("Param/Value/lib_MLBD_D9697E5A"), PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[2][1], StringExternal("Param/Value/lib_MLBD_8E8BC782"), PlayerGroupAll());
}
if ((libMLBD_gv_mMBOEEventWinningTeam != 1)) {
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[1][2], FixedToText(UnitGetPropertyFixed(libMLBD_gv_mMBOEBosses[2], c_unitPropLife, c_unitPropCurrent), 0), PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[2][2], FixedToText(UnitGetPropertyFixed(libMLBD_gv_mMBOEBosses[2], c_unitPropLife, c_unitPropCurrent), 0), PlayerGroupAll());
if ((libMLBD_gv_mMBOEPanel.lv_bossHudPulsed[2] == false) && (UnitGetPropertyFixed(libMLBD_gv_mMBOEBosses[2], c_unitPropLifePercent, c_unitPropCurrent) <= 10.0)) {
libMLBD_gv_mMBOEPanel.lv_bossHudPulsed[2] = true;
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], PlayerGroupAll(), "BottomBarPulse");
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[2], PlayerGroupAll(), "TopBarPulse");
}
}
else {
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[1][2], StringExternal("Param/Value/lib_MLBD_7A760DAE"), PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossDuelHPBarLabel_AfterDeath[2][2], StringExternal("Param/Value/lib_MLBD_C2D9EB88"), PlayerGroupAll());
}
if ((libMLBD_gv_mMBOEEventWinningTeam > 0)) {
libMLBD_gv_mMBOEPanel.lv_bossHudPulsed[1] = false;
libMLBD_gv_mMBOEPanel.lv_bossHudPulsed[2] = false;
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], PlayerGroupAll(), "TopBarPulseStop");
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[2], PlayerGroupAll(), "TopBarPulseStop");
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], PlayerGroupAll(), "BottomBarPulseStop");
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[2], PlayerGroupAll(), "BottomBarPulseStop");
return ;
}
}
void libMLBD_gf_MMBOEUISetBossKilled (int lp_mode) {
// Automatic Variable Declarations
int auto7D57EF36_val;
// Implementation
auto7D57EF36_val = lp_mode;
if (auto7D57EF36_val == 1) {
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], PlayerGroupAll(), "LeftBossDefeated");
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[2], PlayerGroupAll(), "LeftBossDefeated");
}
else if (auto7D57EF36_val == 2) {
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[1], PlayerGroupAll(), "RightBossDefeated");
DialogControlSendAnimationEvent(libMLBD_gv_mMBOEPanel.lv_bossDuelFrame[2], PlayerGroupAll(), "RightBossDefeated");
}
else {
}
}
void libMLBD_gf_MMBOEUISetLaningBoss (bool lp_preparing, unit lp_mode) {
// Variable Declarations
int lv_winningTeam;
int lv_losingTeam;
// Automatic Variable Declarations
int auto9FAC4D39_val;
int auto00C388EE_val;
int auto1BFFE281_val;
// Variable Initialization
// Implementation
lv_winningTeam = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lp_mode));
lv_losingTeam = libGame_gf_EnemyTeam(lv_winningTeam);
DialogControlFadeTransparency(libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[1][lv_winningTeam], PlayerGroupAll(), 0.0, 0.0);
DialogControlFadeTransparency(libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[2][lv_winningTeam], PlayerGroupAll(), 0.0, 0.0);
DialogControlFadeTransparency(libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[1][lv_losingTeam], PlayerGroupAll(), 0.0, 100.0);
DialogControlFadeTransparency(libMLBD_gv_mMBOEPanel.lv_bossLaningPortraitHud[2][lv_losingTeam], PlayerGroupAll(), 0.0, 100.0);
libNtve_gf_SetDialogItemUnit(libMLBD_gv_mMBOEPanel.lv_bossLaningHPBar, lp_mode, PlayerGroupAll());
libNtve_gf_SetDialogItemUnit(libMLBD_gv_mMBOEPanel.lv_bossLaningShieldBar, lp_mode, PlayerGroupAll());
if ((lp_preparing == true)) {
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, StringExternal("Param/Value/lib_MLBD_40EF08FC"), libGame_gf_PlayersOnTeamHeroes(lv_winningTeam, false));
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, StringExternal("Param/Value/lib_MLBD_32A3151F"), libGame_gf_PlayersOnTeamHeroes(lv_losingTeam, false));
auto00C388EE_val = lv_winningTeam;
if (auto00C388EE_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, StringExternal("Param/Value/lib_MLBD_2C3736B5"), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer]);
}
else if (auto00C388EE_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, StringExternal("Param/Value/lib_MLBD_61AF4B5B"), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer]);
}
else {
}
}
else {
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, StringExternal("Param/Value/lib_MLBD_2D44B75E"), libGame_gf_PlayersOnTeamHeroes(lv_winningTeam, false));
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, StringExternal("Param/Value/lib_MLBD_8938E3C8"), libGame_gf_PlayersOnTeamHeroes(lv_losingTeam, false));
auto9FAC4D39_val = lv_winningTeam;
if (auto9FAC4D39_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, StringExternal("Param/Value/lib_MLBD_89ACF292"), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer]);
}
else if (auto9FAC4D39_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, StringExternal("Param/Value/lib_MLBD_DA8FD50D"), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer]);
}
else {
}
}
libNtve_gf_SetDialogItemStyle(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, "Storm_MapMechanic_MechanicCounterSmallLeft_Blue", libGame_gf_PlayersOnTeamHeroes(lv_winningTeam, false));
libNtve_gf_SetDialogItemStyle(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, "Storm_MapMechanic_MechanicCounterSmallLeft_Red", libGame_gf_PlayersOnTeamHeroes(lv_losingTeam, false));
auto1BFFE281_val = lv_winningTeam;
if (auto1BFFE281_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SetDialogItemStyle(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, "Storm_MapMechanic_MechanicCounterSmallLeft_Blue", libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer]);
}
else if (auto1BFFE281_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SetDialogItemStyle(libMLBD_gv_mMBOEPanel.lv_bossLaningInfoLabel, "Storm_MapMechanic_MechanicCounterSmallLeft_Red", libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer]);
}
else {
}
}
void libMLBD_gf_MMBOEUISetLaningPrepareTime (fixed lp_time) {
// Automatic Variable Declarations
// Implementation
libNtve_gf_SetDialogItemText(libMLBD_gv_mMBOEPanel.lv_bossLaningTimerLabel, TextTimeFormat(StringToText("<min2/>:<sec2/>"), FixedToInt(lp_time)), PlayerGroupAll());
}
trigger auto_libMLBD_gf_MMBOEUIBossLaningPreparing_Trigger = null;
void libMLBD_gf_MMBOEUIBossLaningPreparing () {
if (auto_libMLBD_gf_MMBOEUIBossLaningPreparing_Trigger == null) {
auto_libMLBD_gf_MMBOEUIBossLaningPreparing_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOEUIBossLaningPreparing_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOEUIBossLaningPreparing_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOEUIBossLaningPreparing_TriggerFunc (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_maxLife;
fixed lv_currentLife;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
libMLBD_gf_MMBOEUISetLaningBoss(true, libMLBD_gv_mMBOEBossesLaning);
lv_maxLife = UnitGetPropertyFixed(libMLBD_gv_mMBOEBossesLaning, c_unitPropLifeMax, c_unitPropCurrent);
while (true) {
if ((TimerGetRemaining(libMLBD_gv_mMBOEEventPrepLaningTimer) <= 0.0)) {
UnitSetPropertyFixed(libMLBD_gv_mMBOEBossesLaning, c_unitPropLifePercent, 100.0);
return true;
}
else {
lv_currentLife = (TimerGetElapsed(libMLBD_gv_mMBOEEventPrepLaningTimer)*lv_maxLife/TimerGetDuration(libMLBD_gv_mMBOEEventPrepLaningTimer));
if ((lv_currentLife >= 100.0)) {
UnitSetPropertyFixed(libMLBD_gv_mMBOEBossesLaning, c_unitPropLife, lv_currentLife);
}
}
Wait(0.0625, c_timeGame);
}
return true;
}
trigger auto_libMLBD_gf_MMBOETransmissionDuelWarningQ_Trigger = null;
void libMLBD_gf_MMBOETransmissionDuelWarningQ () {
if (auto_libMLBD_gf_MMBOETransmissionDuelWarningQ_Trigger == null) {
auto_libMLBD_gf_MMBOETransmissionDuelWarningQ_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOETransmissionDuelWarningQ_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOETransmissionDuelWarningQ_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOETransmissionDuelWarningQ_TriggerFunc (bool testConds, bool runActions) {
// Variable Declarations
playergroup lv_groupAngel;
playergroup lv_groupDemon;
playergroup lv_groupObserver;
int lv_itLineIndex;
// Automatic Variable Declarations
// Variable Initialization
lv_groupAngel = PlayerGroupEmpty();
lv_groupDemon = PlayerGroupEmpty();
lv_groupObserver = PlayerGroupEmpty();
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
ConversationDataLineResetPlayers("BoE_Heaven", ("Heaven"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Hell"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Observer"));
if ((libMLBD_gv_mMBossDuelWarningDelay == libMLBD_gv_mMBossDuelWarningDelayLong_C)) {
UserDataSetInt("MapVOEvent", "SpawnWarning30", "Value", 1, 1);
}
else {
UserDataSetInt("MapVOEvent", "SpawnWarning15", "Value", 1, 1);
}
if ((libMLBD_gv_mMBOETimes == 1)) {
UserDataSetInt("MapVOEvent", "SpawnWarningFirst", "Value", 1, 1);
}
lv_groupAngel = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false);
lv_groupDemon = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false);
lv_groupObserver = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
libNtve_gf_AddPlayerGroupToPlayerGroup(lv_groupObserver, lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Heaven"), lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Hell"), lv_groupDemon);
ConversationDataRun("BoE_Heaven", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMLBD_gf_MMBOETransmissionDuelStartQ_Trigger = null;
void libMLBD_gf_MMBOETransmissionDuelStartQ () {
if (auto_libMLBD_gf_MMBOETransmissionDuelStartQ_Trigger == null) {
auto_libMLBD_gf_MMBOETransmissionDuelStartQ_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOETransmissionDuelStartQ_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOETransmissionDuelStartQ_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOETransmissionDuelStartQ_TriggerFunc (bool testConds, bool runActions) {
// Variable Declarations
playergroup lv_groupAngel;
playergroup lv_groupDemon;
playergroup lv_groupObserver;
int lv_itLineIndex;
// Automatic Variable Declarations
// Variable Initialization
lv_groupAngel = PlayerGroupEmpty();
lv_groupDemon = PlayerGroupEmpty();
lv_groupObserver = PlayerGroupEmpty();
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
ConversationDataLineResetPlayers("BoE_Heaven", ("Heaven"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Hell"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Observer"));
UserDataSetInt("MapVOEvent", "Spawn", "Value", 1, 1);
if ((libMLBD_gv_mMBOETimes == 1)) {
UserDataSetInt("MapVOEvent", "SpawnFirst", "Value", 1, 1);
}
lv_groupAngel = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false);
lv_groupDemon = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false);
lv_groupObserver = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
libNtve_gf_AddPlayerGroupToPlayerGroup(lv_groupObserver, lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Heaven"), lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Hell"), lv_groupDemon);
ConversationDataRun("BoE_Heaven", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMLBD_gf_MMBOETransmissionDuelFlyStartQ_Trigger = null;
void libMLBD_gf_MMBOETransmissionDuelFlyStartQ () {
if (auto_libMLBD_gf_MMBOETransmissionDuelFlyStartQ_Trigger == null) {
auto_libMLBD_gf_MMBOETransmissionDuelFlyStartQ_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOETransmissionDuelFlyStartQ_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOETransmissionDuelFlyStartQ_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOETransmissionDuelFlyStartQ_TriggerFunc (bool testConds, bool runActions) {
// Variable Declarations
playergroup lv_groupAngel;
playergroup lv_groupDemon;
playergroup lv_groupObserver;
int lv_itLineIndex;
// Automatic Variable Declarations
// Variable Initialization
lv_groupAngel = PlayerGroupEmpty();
lv_groupDemon = PlayerGroupEmpty();
lv_groupObserver = PlayerGroupEmpty();
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
ConversationDataLineResetPlayers("BoE_Heaven", ("Heaven"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Hell"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Observer"));
UserDataSetInt("MapVOEvent", "Moving", "Value", 1, 1);
lv_groupAngel = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false);
lv_groupDemon = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false);
lv_groupObserver = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
libNtve_gf_AddPlayerGroupToPlayerGroup(lv_groupObserver, lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Heaven"), lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Hell"), lv_groupDemon);
ConversationDataRun("BoE_Heaven", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMLBD_gf_MMBOETransmissionDuelEndQ_Trigger = null;
int auto_libMLBD_gf_MMBOETransmissionDuelEndQ_lp_winningTeam;
void libMLBD_gf_MMBOETransmissionDuelEndQ (int lp_winningTeam) {
auto_libMLBD_gf_MMBOETransmissionDuelEndQ_lp_winningTeam = lp_winningTeam;
if (auto_libMLBD_gf_MMBOETransmissionDuelEndQ_Trigger == null) {
auto_libMLBD_gf_MMBOETransmissionDuelEndQ_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOETransmissionDuelEndQ_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOETransmissionDuelEndQ_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOETransmissionDuelEndQ_TriggerFunc (bool testConds, bool runActions) {
int lp_winningTeam = auto_libMLBD_gf_MMBOETransmissionDuelEndQ_lp_winningTeam;
// Variable Declarations
int lv_losingTeam;
playergroup lv_groupAngel;
playergroup lv_groupDemon;
playergroup lv_groupObserver;
int lv_itLineIndex;
// Automatic Variable Declarations
// Variable Initialization
lv_groupAngel = PlayerGroupEmpty();
lv_groupDemon = PlayerGroupEmpty();
lv_groupObserver = PlayerGroupEmpty();
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
lv_losingTeam = libGame_gf_EnemyTeam(lp_winningTeam);
UserDataResetType("MapVOEvent");
ConversationDataLineResetPlayers("BoE_Heaven", ("Heaven"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Hell"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Observer"));
if ((lp_winningTeam == 1)) {
UserDataSetInt("MapVOEvent", "KillingBlowAngel", "Value", 1, 1);
}
else {
UserDataSetInt("MapVOEvent", "KillingBlowDemon", "Value", 1, 1);
}
lv_groupAngel = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false);
lv_groupDemon = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false);
lv_groupObserver = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
libNtve_gf_AddPlayerGroupToPlayerGroup(lv_groupObserver, lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Heaven"), lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Hell"), lv_groupDemon);
ConversationDataRun("BoE_Heaven", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMLBD_gf_MMBOETransmissionBossPushingQ_Trigger = null;
int auto_libMLBD_gf_MMBOETransmissionBossPushingQ_lp_winningTeam;
void libMLBD_gf_MMBOETransmissionBossPushingQ (int lp_winningTeam) {
auto_libMLBD_gf_MMBOETransmissionBossPushingQ_lp_winningTeam = lp_winningTeam;
if (auto_libMLBD_gf_MMBOETransmissionBossPushingQ_Trigger == null) {
auto_libMLBD_gf_MMBOETransmissionBossPushingQ_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOETransmissionBossPushingQ_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOETransmissionBossPushingQ_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOETransmissionBossPushingQ_TriggerFunc (bool testConds, bool runActions) {
int lp_winningTeam = auto_libMLBD_gf_MMBOETransmissionBossPushingQ_lp_winningTeam;
// Variable Declarations
int lv_losingTeam;
playergroup lv_groupAngel;
playergroup lv_groupDemon;
playergroup lv_groupObserver;
int lv_itLineIndex;
// Automatic Variable Declarations
// Variable Initialization
lv_groupAngel = PlayerGroupEmpty();
lv_groupDemon = PlayerGroupEmpty();
lv_groupObserver = PlayerGroupEmpty();
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
lv_losingTeam = libGame_gf_EnemyTeam(lp_winningTeam);
UserDataResetType("MapVOEvent");
ConversationDataLineResetPlayers("BoE_Heaven", ("Heaven"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Hell"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Observer"));
if ((lp_winningTeam == 1)) {
UserDataSetInt("MapVOEvent", "AttacksLaneAngel", "Value", 1, 1);
}
else {
UserDataSetInt("MapVOEvent", "AttacksLaneDemon", "Value", 1, 1);
}
if ((libMLBD_gv_mMBOETimes == 1)) {
UserDataSetInt("MapVOEvent", "AttacksLaneFirst", "Value", 1, 1);
}
lv_groupAngel = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false);
lv_groupDemon = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false);
lv_groupObserver = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
libNtve_gf_AddPlayerGroupToPlayerGroup(lv_groupObserver, lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Heaven"), lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Hell"), lv_groupDemon);
ConversationDataLineSetPlayers("BoE_Heaven", ("Observer"), lv_groupObserver);
ConversationDataRun("BoE_Heaven", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMLBD_gf_MMBOETransmissionBossRetreatedQ_Trigger = null;
int auto_libMLBD_gf_MMBOETransmissionBossRetreatedQ_lp_winningTeam;
void libMLBD_gf_MMBOETransmissionBossRetreatedQ (int lp_winningTeam) {
auto_libMLBD_gf_MMBOETransmissionBossRetreatedQ_lp_winningTeam = lp_winningTeam;
if (auto_libMLBD_gf_MMBOETransmissionBossRetreatedQ_Trigger == null) {
auto_libMLBD_gf_MMBOETransmissionBossRetreatedQ_Trigger = TriggerCreate("auto_libMLBD_gf_MMBOETransmissionBossRetreatedQ_TriggerFunc");
}
TriggerExecute(auto_libMLBD_gf_MMBOETransmissionBossRetreatedQ_Trigger, false, false);
}
bool auto_libMLBD_gf_MMBOETransmissionBossRetreatedQ_TriggerFunc (bool testConds, bool runActions) {
int lp_winningTeam = auto_libMLBD_gf_MMBOETransmissionBossRetreatedQ_lp_winningTeam;
// Variable Declarations
int lv_losingTeam;
playergroup lv_groupAngel;
playergroup lv_groupDemon;
playergroup lv_groupObserver;
int lv_itLineIndex;
// Automatic Variable Declarations
// Variable Initialization
lv_groupAngel = PlayerGroupEmpty();
lv_groupDemon = PlayerGroupEmpty();
lv_groupObserver = PlayerGroupEmpty();
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
lv_losingTeam = libGame_gf_EnemyTeam(lp_winningTeam);
UserDataResetType("MapVOEvent");
ConversationDataLineResetPlayers("BoE_Heaven", ("Heaven"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Hell"));
ConversationDataLineResetPlayers("BoE_Heaven", ("Observer"));
if ((lp_winningTeam == 1)) {
UserDataSetInt("MapVOEvent", "KilledAngel", "Value", 1, 1);
}
else {
UserDataSetInt("MapVOEvent", "KilledDemon", "Value", 1, 1);
}
if ((libMLBD_gv_mMBOETimes == 1)) {
UserDataSetInt("MapVOEvent", "KilledFirst", "Value", 1, 1);
}
lv_groupAngel = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false);
lv_groupDemon = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false);
lv_groupObserver = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
ConversationDataLineSetPlayers("BoE_Heaven", ("Heaven"), lv_groupAngel);
ConversationDataLineSetPlayers("BoE_Heaven", ("Hell"), lv_groupDemon);
ConversationDataLineSetPlayers("BoE_Heaven", ("Observer"), lv_groupObserver);
ConversationDataRun("BoE_Heaven", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
void libMLBD_gf_MMBOEExplosionsLogic (int lp_maxTargets, string lp_explosionEffect, unit lp_castingUnit) {
// Variable Declarations
string lv_catalogEntry;
point[libMLBD_gv_mMBOEExplosionsTargetTrackingArraySize + 1] lv_confirmedLocations;
point lv_proposedRandomPoint;
int lv_numberofFoundTargets;
unitgroup lv_potentialTargets;
unitgroup lv_enemyHeroes;
unitgroup lv_enemySummons;
unitgroup lv_enemyMinionsandMercs;
unitgroup lv_enemyStructures;
int lv_itLocation;
unit lv_itUnit;
// Automatic Variable Declarations
unitgroup auto9FB027E2_g;
int auto9FB027E2_u;
int auto82400676_ae;
const int auto82400676_ai = 1;
unitgroup auto87AEB11E_g;
int auto87AEB11E_u;
int auto9256D910_ae;
const int auto9256D910_ai = 1;
unitgroup auto4C1FE7FD_g;
int auto4C1FE7FD_u;
int auto2CADA053_ae;
const int auto2CADA053_ai = 1;
unitgroup autoFA161F85_g;
int autoFA161F85_u;
int auto8F734035_ae;
const int auto8F734035_ai = 1;
int auto56966044_ae;
const int auto56966044_ai = 1;
// Variable Initialization
lv_potentialTargets = UnitGroupEmpty();
lv_enemyHeroes = UnitGroupEmpty();
lv_enemySummons = UnitGroupEmpty();
lv_enemyMinionsandMercs = UnitGroupEmpty();
lv_enemyStructures = UnitGroupEmpty();
// Implementation
lv_potentialTargets = UnitGroupSearch(null, UnitGetOwner(lp_castingUnit), UnitGetPosition(lp_castingUnit), libMLBD_gv_mMBOEExplosionsMaxRange, UnitFilter(0, 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly) | (1 << c_targetFilterNeutral) | (1 << c_targetFilterImmuneToAOE) | (1 << c_targetFilterUser1) | (1 << c_targetFilterMissile) | (1 << c_targetFilterCloaked), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterInvulnerable - 32))), 0);
lv_enemyHeroes = UnitGroupFilter(null, c_playerAny, lv_potentialTargets, libCore_gv_filtersHeroic, 0);
lv_enemySummons = UnitGroupFilter(null, c_playerAny, lv_potentialTargets, UnitFilter(0, (1 << (c_targetFilterSummoned - 32)), (1 << c_targetFilterHeroic) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
lv_enemyMinionsandMercs = UnitGroupFilter(null, c_playerAny, lv_potentialTargets, UnitFilter(0, 0, (1 << c_targetFilterStructure) | (1 << c_targetFilterHeroic) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
lv_enemyStructures = UnitGroupFilter(null, c_playerAny, lv_potentialTargets, UnitFilter((1 << c_targetFilterStructure), 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
if ((lp_explosionEffect == "AngelicExplosionsCreatePersistent")) {
lv_catalogEntry = "AngelicExplosionsJungle";
}
else {
lv_catalogEntry = "DemonicExplosionsJungle";
}
auto9FB027E2_g = lv_enemyHeroes;
auto9FB027E2_u = UnitGroupCount(auto9FB027E2_g, c_unitCountAll);
for (;; auto9FB027E2_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto9FB027E2_g, auto9FB027E2_u);
if (lv_itUnit == null) { break; }
if ((lv_numberofFoundTargets >= lp_maxTargets)) {
return ;
}
if ((DistanceBetweenPoints(UnitGetPosition(lp_castingUnit), UnitGetPosition(lv_itUnit)) <= libMLBD_gv_mMBOEExplosionsMinRange)) {
continue;
}
auto82400676_ae = lp_maxTargets;
lv_itLocation = 1;
for ( ; ( (auto82400676_ai >= 0 && lv_itLocation <= auto82400676_ae) || (auto82400676_ai < 0 && lv_itLocation >= auto82400676_ae) ) ; lv_itLocation += auto82400676_ai ) {
if ((lv_confirmedLocations[lv_itLocation] == null)) {
UnitCreateEffectPointWithSource(lp_castingUnit, lp_explosionEffect, UnitGetPosition(lv_itUnit), c_gameCatalogAbil, lv_catalogEntry);
lv_confirmedLocations[lv_itLocation] = UnitGetPosition(lv_itUnit);
lv_numberofFoundTargets += 1;
break;
}
if ((DistanceBetweenPoints(UnitGetPosition(lv_itUnit), lv_confirmedLocations[lv_itLocation]) < libMLBD_gv_mMBOEExplosionsMinDistanceApart)) {
break;
}
}
}
auto87AEB11E_g = lv_enemySummons;
auto87AEB11E_u = UnitGroupCount(auto87AEB11E_g, c_unitCountAll);
for (;; auto87AEB11E_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto87AEB11E_g, auto87AEB11E_u);
if (lv_itUnit == null) { break; }
if ((lv_numberofFoundTargets >= lp_maxTargets)) {
return ;
}
if ((DistanceBetweenPoints(UnitGetPosition(lp_castingUnit), UnitGetPosition(lv_itUnit)) <= libMLBD_gv_mMBOEExplosionsMinRange)) {
continue;
}
auto9256D910_ae = lp_maxTargets;
lv_itLocation = 1;
for ( ; ( (auto9256D910_ai >= 0 && lv_itLocation <= auto9256D910_ae) || (auto9256D910_ai < 0 && lv_itLocation >= auto9256D910_ae) ) ; lv_itLocation += auto9256D910_ai ) {
if ((lv_confirmedLocations[lv_itLocation] == null)) {
UnitCreateEffectPointWithSource(lp_castingUnit, lp_explosionEffect, UnitGetPosition(lv_itUnit), c_gameCatalogAbil, lv_catalogEntry);
lv_confirmedLocations[lv_itLocation] = UnitGetPosition(lv_itUnit);
lv_numberofFoundTargets += 1;
break;
}
if ((DistanceBetweenPoints(UnitGetPosition(lv_itUnit), lv_confirmedLocations[lv_itLocation]) < libMLBD_gv_mMBOEExplosionsMinDistanceApart)) {
break;
}
}
}
auto4C1FE7FD_g = lv_enemyMinionsandMercs;
auto4C1FE7FD_u = UnitGroupCount(auto4C1FE7FD_g, c_unitCountAll);
for (;; auto4C1FE7FD_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto4C1FE7FD_g, auto4C1FE7FD_u);
if (lv_itUnit == null) { break; }
if ((lv_numberofFoundTargets >= lp_maxTargets)) {
return ;
}
if ((DistanceBetweenPoints(UnitGetPosition(lp_castingUnit), UnitGetPosition(lv_itUnit)) <= libMLBD_gv_mMBOEExplosionsMinRange)) {
continue;
}
auto2CADA053_ae = lp_maxTargets;
lv_itLocation = 1;
for ( ; ( (auto2CADA053_ai >= 0 && lv_itLocation <= auto2CADA053_ae) || (auto2CADA053_ai < 0 && lv_itLocation >= auto2CADA053_ae) ) ; lv_itLocation += auto2CADA053_ai ) {
if ((lv_confirmedLocations[lv_itLocation] == null)) {
UnitCreateEffectPointWithSource(lp_castingUnit, lp_explosionEffect, UnitGetPosition(lv_itUnit), c_gameCatalogAbil, lv_catalogEntry);
lv_confirmedLocations[lv_itLocation] = UnitGetPosition(lv_itUnit);
lv_numberofFoundTargets += 1;
break;
}
if ((DistanceBetweenPoints(UnitGetPosition(lv_itUnit), lv_confirmedLocations[lv_itLocation]) < libMLBD_gv_mMBOEExplosionsMinDistanceApart)) {
break;
}
}
}
autoFA161F85_g = lv_enemyStructures;
autoFA161F85_u = UnitGroupCount(autoFA161F85_g, c_unitCountAll);
for (;; autoFA161F85_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(autoFA161F85_g, autoFA161F85_u);
if (lv_itUnit == null) { break; }
if ((lv_numberofFoundTargets >= lp_maxTargets)) {
return ;
}
auto8F734035_ae = lp_maxTargets;
lv_itLocation = 1;
for ( ; ( (auto8F734035_ai >= 0 && lv_itLocation <= auto8F734035_ae) || (auto8F734035_ai < 0 && lv_itLocation >= auto8F734035_ae) ) ; lv_itLocation += auto8F734035_ai ) {
if ((lv_confirmedLocations[lv_itLocation] == null)) {
UnitCreateEffectPointWithSource(lp_castingUnit, lp_explosionEffect, UnitGetPosition(lv_itUnit), c_gameCatalogAbil, lv_catalogEntry);
lv_confirmedLocations[lv_itLocation] = UnitGetPosition(lv_itUnit);
lv_numberofFoundTargets += 1;
break;
}
if ((DistanceBetweenPoints(UnitGetPosition(lv_itUnit), lv_confirmedLocations[lv_itLocation]) < libMLBD_gv_mMBOEExplosionsMinDistanceApart)) {
break;
}
}
}
while ((lv_numberofFoundTargets < lp_maxTargets)) {
lv_proposedRandomPoint = PointWithOffsetPolar(UnitGetPosition(lp_castingUnit), RandomFixed(libMLBD_gv_mMBOEExplosionsMinRange, libMLBD_gv_mMBOEExplosionsMaxRange), libNtve_gf_RandomAngle());
auto56966044_ae = lp_maxTargets;
lv_itLocation = 1;
for ( ; ( (auto56966044_ai >= 0 && lv_itLocation <= auto56966044_ae) || (auto56966044_ai < 0 && lv_itLocation >= auto56966044_ae) ) ; lv_itLocation += auto56966044_ai ) {
if ((lv_confirmedLocations[lv_itLocation] == null)) {
UnitCreateEffectPointWithSource(lp_castingUnit, lp_explosionEffect, lv_proposedRandomPoint, c_gameCatalogAbil, lv_catalogEntry);
lv_confirmedLocations[lv_itLocation] = lv_proposedRandomPoint;
lv_numberofFoundTargets += 1;
break;
}
if ((DistanceBetweenPoints(lv_proposedRandomPoint, lv_confirmedLocations[lv_itLocation]) < libMLBD_gv_mMBOEExplosionsMinDistanceApart)) {
break;
}
}
}
}
void libMLBD_gf_MMBOEAwardBossXP (unit lp_bossUnit, fixed lp_killedUnitXPAward) {
// Variable Declarations
unit lv_itUnit;
unitgroup lv_nearbyUnits;
int lv_creditPlayer;
playergroup lv_combatCreditGroup;
int lv_itTeamPlayer;
int lv_itPlayer;
playergroup lv_xPAwardGroup;
fixed lv_xPValue;
// Automatic Variable Declarations
unitgroup auto1422F9C1_g;
int auto1422F9C1_u;
playergroup auto3B8A6302_g;
playergroup auto23BBF7DF_g;
// Variable Initialization
lv_nearbyUnits = UnitGroupEmpty();
lv_combatCreditGroup = PlayerGroupEmpty();
lv_xPAwardGroup = PlayerGroupEmpty();
// Implementation
lv_nearbyUnits = UnitGroupSearch(null, UnitGetOwner(lp_bossUnit), UnitGetPosition(lp_bossUnit), libCore_gv_bALXPRadius, UnitFilter(0, 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly) | (1 << c_targetFilterNeutral) | (1 << c_targetFilterCreep) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto1422F9C1_g = lv_nearbyUnits;
auto1422F9C1_u = UnitGroupCount(auto1422F9C1_g, c_unitCountAll);
for (;; auto1422F9C1_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto1422F9C1_g, auto1422F9C1_u);
if (lv_itUnit == null) { break; }
if (((UnitHasBehavior2(lv_itUnit, "EarnsXP") == true) || ((UnitTypeTestAttribute(UnitGetType(lv_itUnit), c_unitAttributeHeroic) == true) && (UnitHasBehavior2(lv_itUnit, "AbathurUltimateEvolutionVehicleCasterBehavior") == false) && (UnitTestState(lv_itUnit, c_unitStateHallucination) == false)))) {
lv_creditPlayer = UnitGetOwner(lv_itUnit);
if ((lv_creditPlayer <= libCore_gv_bALMaxPlayers)) {
PlayerGroupAdd(lv_combatCreditGroup, lv_creditPlayer);
}
}
}
lv_xPValue = lp_killedUnitXPAward;
if ((lv_xPValue <= 0.0)) {
return ;
}
auto3B8A6302_g = lv_combatCreditGroup;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto3B8A6302_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
libGame_gf_ScoreValuesRecordXPContributionForPlayer(lv_itPlayer, lv_xPValue, true);
}
if (((UnitGetType(lp_bossUnit) == "BossDuelBossHeaven") || (UnitGetType(lp_bossUnit) == "BossDuelLanerHeaven"))) {
lv_xPAwardGroup = PlayerGroupCopy(libGame_gv_teams[2].lv_teamPlayerGroupNoNPCPlayers);
}
else {
lv_xPAwardGroup = PlayerGroupCopy(libGame_gv_teams[1].lv_teamPlayerGroupNoNPCPlayers);
}
PlayerGroupRemove(lv_xPAwardGroup, libCore_gv_cOMPUTER_TeamOrder);
PlayerGroupRemove(lv_xPAwardGroup, libCore_gv_cOMPUTER_TeamChaos);
auto23BBF7DF_g = lv_xPAwardGroup;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto23BBF7DF_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
libGame_gf_GrantXPToPlayer(lv_xPValue, lv_itPlayer, libGame_ge_XPSources_Creep);
SoundPlayForPlayer(SoundLink("XP_Gain", -1), lv_itPlayer, libCore_gv_playerGroupFromPlayer[lv_itPlayer], 100.0, 0.0);
if ((lv_xPValue > 1.0)) {
}
}
}
// Triggers
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Init
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEInit_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_i;
// Automatic Variable Declarations
const int auto7BB84B07_ae = libGame_gv_teamChaosIndex_C;
const int auto7BB84B07_ai = 1;
// Variable Initialization
// Conditions
if (testConds) {
if (!((libGame_gf_MapMechanicInitializationMechanicType() == libMLBD_gv_mMBoEMechanicName_C))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(libMLBD_gt_MMBOEGatesOpened, true);
TriggerEnable(libMLBD_gt_MMBOELongWarningTime, true);
TriggerEnable(libMLBD_gt_MMBOEDebugStartImmediately, true);
TriggerEnable(libMLBD_gt_MMBOEDebugStartWithWarning, true);
TriggerEnable(libMLBD_gt_MMBOEDebugPlayCutscene, true);
TriggerEnable(libMLBD_gt_MMBOEDebugTransmission, true);
libMLBD_gv_mMBOEBossUnitTypes[libGame_gv_teamOrderIndex_C] = "BossDuelBossHeaven";
libMLBD_gv_mMBOEDuelPreviewUnitTypes[libGame_gv_teamOrderIndex_C] = "BossDuelBossPreviewUnitHeaven";
libMLBD_gv_mMBOEBossUnitTypes[libGame_gv_teamChaosIndex_C] = "BossDuelBossHell";
libMLBD_gv_mMBOEDuelPreviewUnitTypes[libGame_gv_teamChaosIndex_C] = "BossDuelBossPreviewUnitHell";
libMLBD_gv_mMBOEBossLaningUnitTypes[libGame_gv_teamOrderIndex_C] = "BossDuelLanerHeaven";
libMLBD_gv_mMBOEBossLaningUnitTypes[libGame_gv_teamChaosIndex_C] = "BossDuelLanerHell";
libGame_gf_SendMapSpecificAwardInitializeEventwithUserData(null, "Generic Instance");
libGame_gv_players[13].lv_portraitIcon = "Assets\\Textures\\storm_ui_ingame_hero_icon_towerking_red.dds";
libGame_gv_players[14].lv_portraitIcon = "Assets\\Textures\\storm_ui_ingame_hero_icon_towerking_red.dds";
lv_i = libGame_gv_teamOrderIndex_C;
for ( ; ( (auto7BB84B07_ai >= 0 && lv_i <= auto7BB84B07_ae) || (auto7BB84B07_ai < 0 && lv_i >= auto7BB84B07_ae) ) ; lv_i += auto7BB84B07_ai ) {
libMLBD_gv_mMBOE_AICustomUnitValue[lv_i] = libMapM_gf_RegisterMapMechanicAIUnitCustomValue();
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEInit_Init () {
libMLBD_gt_MMBOEInit = TriggerCreate("libMLBD_gt_MMBOEInit_Func");
libGame_gf_MapMechanicInitialization(libMLBD_gt_MMBOEInit);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Ping Data Init
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEPingDataInit_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libUIUI_gf_PingCreateNewPingTarget("BossDuelBossHeaven", false, null, StringExternal("Param/Value/lib_MLBD_ADE4A0FD"), StringExternal("Param/Value/lib_MLBD_9C86025E"), SoundLink("UI_Game_Ping_Help", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingCreateNewPingTarget("BossDuelBossHell", false, null, StringExternal("Param/Value/lib_MLBD_3BE2982A"), StringExternal("Param/Value/lib_MLBD_3A0088FB"), SoundLink("UI_Game_Ping_Help", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingCreateNewPingTarget("BossDuelLanerHeaven", false, null, StringExternal("Param/Value/lib_MLBD_032CE5B4"), StringExternal("Param/Value/lib_MLBD_5ECFFC14"), SoundLink("UI_Game_Ping_Help", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingCreateNewPingTarget("BossDuelLanerHell", false, null, StringExternal("Param/Value/lib_MLBD_6133D494"), StringExternal("Param/Value/lib_MLBD_5C55EB20"), SoundLink("UI_Game_Ping_Help", -1), SoundLink("UI_Game_Ping_Attack", -1));
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEPingDataInit_Init () {
libMLBD_gt_MMBOEPingDataInit = TriggerCreate("libMLBD_gt_MMBOEPingDataInit_Func");
libCore_gf_IncludeModInitialization(libMLBD_gt_MMBOEPingDataInit);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Gates Opened
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEGatesOpened_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
if ((libMapM_gv_mMMapMechanicDisabled == true)) {
return true;
}
TimerStart(libMLBD_gv_mMBOEEventInitDelayTimer, (libMLBD_gv_mMBossDuelInitialDelay_C - libMLBD_gv_mMBossDuelWarningDelay), false, c_timeGame);
libMLBD_gf_MMBOECalculateNewSpawnLocations(1);
libMLBD_gf_MMBOEDuelPreviewSetup(false);
libNtve_gf_WaitForTimer(TimerLastStarted(), 0.0, false);
if ((TriggerIsEnabled(TriggerGetCurrent()) == false)) {
return true;
}
if ((libMLBD_gv_mMBOEDebugUsed == false)) {
libMLBD_gf_MMBOEDuelWarningStart();
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEGatesOpened_Init () {
libMLBD_gt_MMBOEGatesOpened = TriggerCreate("libMLBD_gt_MMBOEGatesOpened_Func");
TriggerEnable(libMLBD_gt_MMBOEGatesOpened, false);
TriggerAddEventTimer(libMLBD_gt_MMBOEGatesOpened, libGame_gv_openTheGatesTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Long Warning Time
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOELongWarningTime_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMLBD_gv_mMBossDuelWarningDelay = libMLBD_gv_mMBossDuelWarningDelayLong_C;
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOELongWarningTime_Init () {
libMLBD_gt_MMBOELongWarningTime = TriggerCreate("libMLBD_gt_MMBOELongWarningTime_Func");
TriggerEnable(libMLBD_gt_MMBOELongWarningTime, false);
TriggerAddEventTimer(libMLBD_gt_MMBOELongWarningTime, libMLBD_gv_mMBOEEventLongWarningTimeTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Duel Duration Timer
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDuelDurationTimer_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMLBD_gv_mMBOEEventDurationTimer += 1;
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDuelDurationTimer_Init () {
libMLBD_gt_MMBOEDuelDurationTimer = TriggerCreate("libMLBD_gt_MMBOEDuelDurationTimer_Func");
TriggerEnable(libMLBD_gt_MMBOEDuelDurationTimer, false);
TriggerAddEventTimePeriodic(libMLBD_gt_MMBOEDuelDurationTimer, 1.0, c_timeGame);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Boss Attacked (Heaven)
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEBossAttackedHeaven_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
Wait(2.0, c_timeGame);
UnitAbilityEnable(EventUnit(), "AngelicExplosionsJungle", true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEBossAttackedHeaven_Init () {
libMLBD_gt_MMBOEBossAttackedHeaven = TriggerCreate("libMLBD_gt_MMBOEBossAttackedHeaven_Func");
TriggerEnable(libMLBD_gt_MMBOEBossAttackedHeaven, false);
TriggerAddEventUnitDamaged(libMLBD_gt_MMBOEBossAttackedHeaven, UnitRefFromVariable("libMLBD_gv_mMBOEBosses[1]"), c_unitDamageTypeAny, c_unitDamageEither, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Boss Attacked (Hell)
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEBossAttackedHell_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
Wait(2.0, c_timeGame);
UnitAbilityEnable(EventUnit(), "DemonicExplosionsJungle", true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEBossAttackedHell_Init () {
libMLBD_gt_MMBOEBossAttackedHell = TriggerCreate("libMLBD_gt_MMBOEBossAttackedHell_Func");
TriggerEnable(libMLBD_gt_MMBOEBossAttackedHell, false);
TriggerAddEventUnitDamaged(libMLBD_gt_MMBOEBossAttackedHell, UnitRefFromVariable("libMLBD_gv_mMBOEBosses[2]"), c_unitDamageTypeAny, c_unitDamageEither, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Boss Takes Damage
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEBossTakesDamage_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((EventUnitDamageSourcePlayer() <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMLBD_gv_mMBOEDamageDoneToBoss[EventUnitDamageSourcePlayer()] += EventUnitDamageAmount();
if ((EventUnit() == libMLBD_gv_mMBOEBosses[1])) {
libMLBD_gv_mMBOELastBossAttackers[1] = EventUnitDamageSourcePlayer();
}
else {
libMLBD_gv_mMBOELastBossAttackers[2] = EventUnitDamageSourcePlayer();
}
libGame_gf_SendMapSpecificAwardEvent(EventUnitDamageSourcePlayer(), EventUnitDamageAmount(), true);
if ((UnitHasBehavior2(EventUnit(), "BossDuelIncapacitated") == true)) {
libGame_gf_SendEventMapObjectiveCapturedByUnit(EventUnitDamageSourceUnit());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEBossTakesDamage_Init () {
libMLBD_gt_MMBOEBossTakesDamage = TriggerCreate("libMLBD_gt_MMBOEBossTakesDamage_Func");
TriggerEnable(libMLBD_gt_MMBOEBossTakesDamage, false);
TriggerAddEventUnitDamaged(libMLBD_gt_MMBOEBossTakesDamage, UnitRefFromVariable("libMLBD_gv_mMBOEBosses[1]"), c_unitDamageTypeAny, c_unitDamageEither, null);
TriggerAddEventUnitDamaged(libMLBD_gt_MMBOEBossTakesDamage, UnitRefFromVariable("libMLBD_gv_mMBOEBosses[2]"), c_unitDamageTypeAny, c_unitDamageEither, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Boss Died
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEBossDied_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_team;
unit lv_winningUnit;
// Automatic Variable Declarations
const int autoD1DA67FE_ae = libCore_gv_bALMaxTeams;
const int autoD1DA67FE_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
UnitIssueOrder(libMLBD_gv_mMBOEBosses[1], Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
UnitIssueOrder(libMLBD_gv_mMBOEBosses[2], Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
if ((EventUnit() == libMLBD_gv_mMBOEBosses[1])) {
UnitSetPropertyFixed(libMLBD_gv_mMBOEBosses[1], c_unitPropLife, 0.5);
lv_winningUnit = libMLBD_gv_mMBOEBosses[2];
libGame_gf_DropLootBannerinSconce(libMLBD_gv_mMBOEMiddleBannerSconce, libGame_gv_players[libMLBD_gv_mMBOELastBossAttackers[1]].lv_lootContent.lv_loot_Banner.lv_bannerID, libMLBD_gv_mMBOELastBossAttackers[1], true);
}
else {
UnitSetPropertyFixed(libMLBD_gv_mMBOEBosses[2], c_unitPropLife, 0.5);
lv_winningUnit = libMLBD_gv_mMBOEBosses[1];
libGame_gf_DropLootBannerinSconce(libMLBD_gv_mMBOEMiddleBannerSconce, libGame_gv_players[libMLBD_gv_mMBOELastBossAttackers[2]].lv_lootContent.lv_loot_Banner.lv_bannerID, libMLBD_gv_mMBOELastBossAttackers[2], true);
}
libMLBD_gv_mMBOEEventWinningTeam = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_winningUnit));
libNtve_gf_MakeUnitInvulnerable(lv_winningUnit, true);
libNtve_gf_ChangeUnitDamage(lv_winningUnit, libNtve_ge_UnitDamageTakenDealt_Damage_Take, libNtve_ge_UnitDamageChangeOption_No);
UnitBehaviorAdd(libMLBD_gv_mMBOEBosses[1], "BossDuelDuelCompleteBehavior", libMLBD_gv_mMBOEBosses[1], 1);
UnitBehaviorAdd(libMLBD_gv_mMBOEBosses[2], "BossDuelDuelCompleteBehavior", libMLBD_gv_mMBOEBosses[2], 1);
libMLBD_gf_MMBOEUISetBossHP();
lv_team = 1;
for ( ; ( (autoD1DA67FE_ai >= 0 && lv_team <= autoD1DA67FE_ae) || (autoD1DA67FE_ai < 0 && lv_team >= autoD1DA67FE_ae) ) ; lv_team += autoD1DA67FE_ai ) {
RemoveUnitOfInterest(libMLBD_gv_mMBOEBosses[lv_team], "DefendImmortal", libAIAI_gf_ConvertIntegertoGoalTeam(lv_team));
RemoveUnitOfInterest(libMLBD_gv_mMBOEBosses[lv_team], "KillEnemyImmortal", libAIAI_gf_ConvertIntegertoGoalTeam(libGame_gf_EnemyTeam(lv_team)));
}
libMLBD_gf_MMBOEDuelEnd();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEBossDied_Init () {
libMLBD_gt_MMBOEBossDied = TriggerCreate("libMLBD_gt_MMBOEBossDied_Func");
TriggerEnable(libMLBD_gt_MMBOEBossDied, false);
TriggerAddEventUnitBehaviorChange(libMLBD_gt_MMBOEBossDied, UnitRefFromVariable("libMLBD_gv_mMBOEBosses[1]"), "BossDuelIncapacitated", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libMLBD_gt_MMBOEBossDied, UnitRefFromVariable("libMLBD_gv_mMBOEBosses[2]"), "BossDuelIncapacitated", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Update Boss Laner Path
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEUpdateBossLanerPath_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMLBD_gv_mMBOE_BossLanerPathCurrentIndex += 1;
libMLBD_gf_MMBOECreateGroundPathLine(libMLBD_gv_mMBOEBossesLaning, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEUpdateBossLanerPath_Init () {
libMLBD_gt_MMBOEUpdateBossLanerPath = TriggerCreate("libMLBD_gt_MMBOEUpdateBossLanerPath_Func");
TriggerEnable(libMLBD_gt_MMBOEUpdateBossLanerPath, false);
TriggerAddEventUnitNextWaypointUpdated(libMLBD_gt_MMBOEUpdateBossLanerPath, UnitRefFromVariable("libMLBD_gv_mMBOEBossesLaning"));
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Boss Fight Ping
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEBossFightPing_Func (bool testConds, bool runActions) {
int init_i;
// Variable Declarations
int lv_stageLocal;
int lv_itTeam;
int lv_enemyTeam;
string lv_model;
fixed[3] lv_angle;
fixed lv_distance;
point[3] lv_positions;
unit[3] lv_pingUnit;
int[3] lv_pings;
// Automatic Variable Declarations
const int auto6FA1EFA1_ae = 2;
const int auto6FA1EFA1_ai = 1;
const int auto50FCFD8F_ae = 2;
const int auto50FCFD8F_ai = 1;
// Variable Initialization
lv_stageLocal = libMLBD_ge_MMBOEEventStage_Idle;
for (init_i = 0; init_i <= 2; init_i += 1) {
lv_pings[init_i] = c_invalidPingId;
}
// Actions
if (!runActions) {
return true;
}
lv_stageLocal = libMLBD_gv_mMBOEEventStage;
lv_angle[1] = AngleBetweenPoints(UnitGetPosition(libMLBD_gv_mMBOEBosses[1]), UnitGetPosition(libMLBD_gv_mMBOEBosses[2]));
lv_angle[2] = (lv_angle[1] + 180.0);
lv_distance = DistanceBetweenPoints(UnitGetPosition(libMLBD_gv_mMBOEBosses[1]), UnitGetPosition(libMLBD_gv_mMBOEBosses[2]));
lv_model = "StormPingArrow";
lv_itTeam = 1;
for ( ; ( (auto6FA1EFA1_ai >= 0 && lv_itTeam <= auto6FA1EFA1_ae) || (auto6FA1EFA1_ai < 0 && lv_itTeam >= auto6FA1EFA1_ae) ) ; lv_itTeam += auto6FA1EFA1_ai ) {
lv_positions[lv_itTeam] = PointWithOffsetPolar(UnitGetPosition(libMLBD_gv_mMBOEBosses[lv_itTeam]), (lv_distance / 2.75), lv_angle[lv_itTeam]);
UnitCreate(1, "JungleCampIconUnitTeamColor", c_unitCreateIgnorePlacement, libGame_gf_ComputerPlayerInTeam(lv_itTeam), lv_positions[lv_itTeam], lv_angle[lv_itTeam], null);
lv_pingUnit[lv_itTeam] = UnitLastCreated();
libNtve_gf_MakeUnitInvulnerable(UnitLastCreated(), true);
libNtve_gf_MakeUnitUncommandable(UnitLastCreated(), true);
UnitSetState(UnitLastCreated(), c_unitStateHighlightable, false);
UnitSetState(UnitLastCreated(), c_unitStateSelectable, false);
UnitSetState(UnitLastCreated(), c_unitStateStatusBar, false);
UnitSetState(UnitLastCreated(), c_unitStateStoppable, false);
UnitSetState(UnitLastCreated(), c_unitStateTargetable, false);
UnitSetState(UnitLastCreated(), c_unitStateTooltipable, false);
UnitSetState(UnitLastCreated(), c_unitStateTurnSuppressed, false);
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "SetMinimapVisibility");
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), "SetMinimapVisibilityAlways");
libNtve_gf_CreatePingFacingAngleWithType(PlayerGroupAll(), lv_model, lv_positions[lv_itTeam], ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 0.0, lv_angle[lv_itTeam], -1, -1);
lv_pings[lv_itTeam] = PingLastCreated();
PingSetUseUnitTeamColor(PingLastCreated(), true);
PingSetScale(PingLastCreated(), 0.3);
PingSetUnit(PingLastCreated(), UnitLastCreated());
}
while (!(((libMLBD_gv_mMBOEEventStage != lv_stageLocal) || (libMLBD_gv_mMBOEEventWinningTeam > 0)))) {
Wait(0.25, c_timeGame);
}
lv_itTeam = 1;
for ( ; ( (auto50FCFD8F_ai >= 0 && lv_itTeam <= auto50FCFD8F_ae) || (auto50FCFD8F_ai < 0 && lv_itTeam >= auto50FCFD8F_ae) ) ; lv_itTeam += auto50FCFD8F_ai ) {
PingDestroy(lv_pings[lv_itTeam]);
UnitRemove(lv_pingUnit[lv_itTeam]);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEBossFightPing_Init () {
libMLBD_gt_MMBOEBossFightPing = TriggerCreate("libMLBD_gt_MMBOEBossFightPing_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Boss Laning Killed
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEBossLaningKilled_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_winningTeam;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
TriggerEnable(libMLBD_gt_MMBOEUpdateBossLanerPath, false);
SoundPlayForPlayer(SoundLink("UI_Game_BoE_Immortal_Retreated_Enemy", -1), c_maxPlayers, libGame_gf_PlayersOnTeamHeroes(libGame_gf_EnemyTeam(libMLBD_gv_mMBOEEventWinningTeam), false), 100.0, 0.0);
SoundPlayForPlayer(SoundLink("UI_Game_BoE_Immortal_Retreated_Friendly", -1), c_maxPlayers, libGame_gf_PlayersOnTeamHeroes(libMLBD_gv_mMBOEEventWinningTeam, false), 100.0, 0.0);
libSond_gf_SoundtrackPlayMapSoundtrackAsDefaultSoundtrackForAllPlayers();
libMLBD_gf_MMBOEAwardBossXP(libMLBD_gv_mMBOEBossesLaning, libMLBD_gv_mMBOEXPValue);
PathDestroy(libMLBD_gv_mMBOELaningPathLine);
PingDestroy(libMLBD_gv_mMBOELaningBossPing[0]);
PingDestroy(libMLBD_gv_mMBOELaningBossPing[1]);
PingDestroy(libMLBD_gv_mMBOELaningBossPing[2]);
libMLBD_gv_mMBOELaningPathLineCreated = false;
libMLBD_gv_mMBOEBossesLaning = null;
libMapM_gf_JungleStopHibernateCamps();
Wait(1.0, c_timeGame);
libMLBD_gv_mMBOEEventStage = libMLBD_ge_MMBOEEventStage_Idle;
lv_winningTeam = libMLBD_gv_mMBOEEventWinningTeam;
libMLBD_gv_mMBOEEventWinningTeam = 0;
TimerStart(libMLBD_gv_mMBOEEventCooldownTimer, (libMLBD_gv_mMBossDuelEventCooldown_C - libMLBD_gv_mMBossDuelWarningDelay), false, c_timeGame);
Wait(1.5, c_timeGame);
libMLBD_gf_MMBOETransmissionBossRetreatedQ(lv_winningTeam);
libMLBD_gf_MMBOECalculateNewSpawnLocations(1);
libMLBD_gf_MMBOEDuelPreviewSetup(false);
libNtve_gf_WaitForTimer(TimerLastStarted(), 0.0, false);
if ((libMLBD_gv_mMBOEDebugUsed == false)) {
libMLBD_gf_MMBOEDuelWarningStart();
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEBossLaningKilled_Init () {
libMLBD_gt_MMBOEBossLaningKilled = TriggerCreate("libMLBD_gt_MMBOEBossLaningKilled_Func");
TriggerEnable(libMLBD_gt_MMBOEBossLaningKilled, false);
TriggerAddEventUnitDied(libMLBD_gt_MMBOEBossLaningKilled, UnitRefFromVariable("libMLBD_gv_mMBOEBossesLaning"));
}
//--------------------------------------------------------------------------------------------------
// Trigger: Game Over
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_GameOver_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
const int autoA06592F8_ae = libCore_gv_bALMaxPlayers;
const int autoA06592F8_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_itPlayer = 1;
for ( ; ( (autoA06592F8_ai >= 0 && lv_itPlayer <= autoA06592F8_ae) || (autoA06592F8_ai < 0 && lv_itPlayer >= autoA06592F8_ae) ) ; lv_itPlayer += autoA06592F8_ai ) {
libGame_gf_ScoreValuesReportIntegerValueAndLog(lv_itPlayer, "DamageDoneToImmortal", FixedToInt(libMLBD_gv_mMBOEDamageDoneToBoss[lv_itPlayer]));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_GameOver_Init () {
libMLBD_gt_GameOver = TriggerCreate("libMLBD_gt_GameOver_Func");
libGame_gf_GameOverEvent(libMLBD_gt_GameOver);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Player Moves Camera
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEPlayerMovesCamera_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
const int auto3A5FF286_ae = libCore_gv_bALMaxPlayers;
const int auto3A5FF286_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_itPlayer = 1;
for ( ; ( (auto3A5FF286_ai >= 0 && lv_itPlayer <= auto3A5FF286_ae) || (auto3A5FF286_ai < 0 && lv_itPlayer >= auto3A5FF286_ae) ) ; lv_itPlayer += auto3A5FF286_ai ) {
if ((PlayerStatus(lv_itPlayer) == c_playerStatusActive) && (PlayerType(lv_itPlayer) == c_playerTypeUser)) {
libMLBD_gf_MMBOEUpdateAmbience(lv_itPlayer);
}
}
libMLBD_gf_MMBOEUpdateAmbience(libCore_gv_oBSERVER_ObserverUIPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEPlayerMovesCamera_Init () {
libMLBD_gt_MMBOEPlayerMovesCamera = TriggerCreate("libMLBD_gt_MMBOEPlayerMovesCamera_Func");
TriggerAddEventTimePeriodic(libMLBD_gt_MMBOEPlayerMovesCamera, 0.5, c_timeGame);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE UI Mod Initialize
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEUIModInitialize_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMLBD_gf_MMBOEUIInit(libUIUI_gv_mapMechanicsPanel.lv_mainPanel);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEUIModInitialize_Init () {
libMLBD_gt_MMBOEUIModInitialize = TriggerCreate("libMLBD_gt_MMBOEUIModInitialize_Func");
libCore_gf_IncludeModInitialization(libMLBD_gt_MMBOEUIModInitialize);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE UI Handler
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEUIHandler_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_state;
int lv_lastState;
int lv_itTeam;
// Automatic Variable Declarations
// Variable Initialization
lv_state = libMLBD_ge_MMBOEUIModes_Idle;
lv_lastState = libMLBD_ge_MMBOEUIModes_Idle;
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
while (true) {
if ((libMLBD_gv_mMBOEEventStage == libMLBD_ge_MMBOEEventStage_Warning)) {
lv_state = libMLBD_ge_MMBOEUIModes_Warning;
if ((lv_state != lv_lastState)) {
libMLBD_gf_MMBOEUISetMode(libMLBD_ge_MMBOEUIModes_Warning);
}
libMLBD_gf_MMBOEUISetBossSpawnTime(TimerGetRemaining(libMLBD_gv_mMBOEEventWarningTimer));
lv_lastState = lv_state;
}
else if (((libMLBD_gv_mMBOEEventStage == libMLBD_ge_MMBOEEventStage_Duel1) || (libMLBD_gv_mMBOEEventStage == libMLBD_ge_MMBOEEventStage_Duel2))) {
lv_state = libMLBD_ge_MMBOEUIModes_Duel;
if ((lv_state != lv_lastState)) {
libMLBD_gf_MMBOEUISetMode(libMLBD_ge_MMBOEUIModes_Duel);
libMLBD_gf_MMBOEUISetBosses(libMLBD_gv_mMBOEBosses[1], libMLBD_gv_mMBOEBosses[2]);
}
lv_lastState = lv_state;
}
else if ((libMLBD_gv_mMBOEEventStage == libMLBD_ge_MMBOEEventStage_PushingPrep)) {
lv_state = libMLBD_ge_MMBOEUIModes_PushingPrep;
if ((lv_state != lv_lastState)) {
libMLBD_gf_MMBOEUISetMode(libMLBD_ge_MMBOEUIModes_PushingPrep);
libMLBD_gf_MMBOEUIBossLaningPreparing();
}
libMLBD_gf_MMBOEUISetLaningPrepareTime(TimerGetRemaining(libMLBD_gv_mMBOEEventPrepLaningTimer));
lv_lastState = lv_state;
}
else if ((libMLBD_gv_mMBOEEventStage == libMLBD_ge_MMBOEEventStage_Pushing)) {
lv_state = libMLBD_ge_MMBOEUIModes_Pushing;
if ((lv_state != lv_lastState)) {
libMLBD_gf_MMBOEUISetMode(libMLBD_ge_MMBOEUIModes_Pushing);
libMLBD_gf_MMBOEUISetLaningBoss(false, libMLBD_gv_mMBOEBossesLaning);
}
lv_lastState = lv_state;
}
else if (true) {
lv_state = libMLBD_ge_MMBOEUIModes_Idle;
if ((lv_state != lv_lastState)) {
libMLBD_gf_MMBOEUISetMode(libMLBD_ge_MMBOEUIModes_Idle);
}
lv_lastState = lv_state;
}
Wait(0.5, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEUIHandler_Init () {
libMLBD_gt_MMBOEUIHandler = TriggerCreate("libMLBD_gt_MMBOEUIHandler_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Debug - TownLife
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDebugTownLife_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TextExpressionSetToken("Param/Expression/lib_MLBD_01A461C5", "A", IntToText(2));
TextExpressionSetToken("Param/Expression/lib_MLBD_01A461C5", "B", FixedToText(libMLBD_gf_MMBOETownHealth(2, libCore_gv_cOMPUTER_TeamOrder), c_fixedPrecisionAny));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MLBD_01A461C5"), true);
TextExpressionSetToken("Param/Expression/lib_MLBD_CB38FEB6", "A", IntToText(4));
TextExpressionSetToken("Param/Expression/lib_MLBD_CB38FEB6", "B", FixedToText(libMLBD_gf_MMBOETownHealth(4, libCore_gv_cOMPUTER_TeamOrder), c_fixedPrecisionAny));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MLBD_CB38FEB6"), true);
TextExpressionSetToken("Param/Expression/lib_MLBD_B1B73361", "A", IntToText(1));
TextExpressionSetToken("Param/Expression/lib_MLBD_B1B73361", "B", FixedToText(libMLBD_gf_MMBOETownHealth(1, libCore_gv_cOMPUTER_TeamOrder), c_fixedPrecisionAny));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MLBD_B1B73361"), true);
TextExpressionSetToken("Param/Expression/lib_MLBD_AD6B2EF6", "A", IntToText(3));
TextExpressionSetToken("Param/Expression/lib_MLBD_AD6B2EF6", "B", FixedToText(libMLBD_gf_MMBOETownHealth(3, libCore_gv_cOMPUTER_TeamOrder), c_fixedPrecisionAny));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MLBD_AD6B2EF6"), true);
TextExpressionSetToken("Param/Expression/lib_MLBD_8B27A7DF", "A", IntToText(6));
TextExpressionSetToken("Param/Expression/lib_MLBD_8B27A7DF", "B", FixedToText(libMLBD_gf_MMBOETownHealth(6, libCore_gv_cOMPUTER_TeamChaos), c_fixedPrecisionAny));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MLBD_8B27A7DF"), true);
TextExpressionSetToken("Param/Expression/lib_MLBD_BBA0C6F7", "A", IntToText(8));
TextExpressionSetToken("Param/Expression/lib_MLBD_BBA0C6F7", "B", FixedToText(libMLBD_gf_MMBOETownHealth(8, libCore_gv_cOMPUTER_TeamChaos), c_fixedPrecisionAny));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MLBD_BBA0C6F7"), true);
TextExpressionSetToken("Param/Expression/lib_MLBD_F56367AB", "A", IntToText(5));
TextExpressionSetToken("Param/Expression/lib_MLBD_F56367AB", "B", FixedToText(libMLBD_gf_MMBOETownHealth(5, libCore_gv_cOMPUTER_TeamChaos), c_fixedPrecisionAny));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MLBD_F56367AB"), true);
TextExpressionSetToken("Param/Expression/lib_MLBD_EFB7D249", "A", IntToText(7));
TextExpressionSetToken("Param/Expression/lib_MLBD_EFB7D249", "B", FixedToText(libMLBD_gf_MMBOETownHealth(7, libCore_gv_cOMPUTER_TeamChaos), c_fixedPrecisionAny));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MLBD_EFB7D249"), true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDebugTownLife_Init () {
libMLBD_gt_MMBOEDebugTownLife = TriggerCreate("libMLBD_gt_MMBOEDebugTownLife_Func");
TriggerAddEventChatMessage(libMLBD_gt_MMBOEDebugTownLife, c_playerAny, "TOWNLIFE", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Debug - Start With Warning
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDebugStartWithWarning_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMLBD_gv_mMBOEDebugUsed = true;
libMLBD_gf_MMBOEDuelWarningStart();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDebugStartWithWarning_Init () {
libMLBD_gt_MMBOEDebugStartWithWarning = TriggerCreate("libMLBD_gt_MMBOEDebugStartWithWarning_Func");
TriggerEnable(libMLBD_gt_MMBOEDebugStartWithWarning, false);
TriggerAddEventChatMessage(libMLBD_gt_MMBOEDebugStartWithWarning, c_playerAny, "EVENTSTART", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Debug - Start Immediately
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDebugStartImmediately_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMLBD_gv_mMBOEDebugUsed = true;
libMLBD_gf_MMBOEDuelWarningStart();
TimerStart(libMLBD_gv_mMBOEEventWarningTimer, 0.5, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDebugStartImmediately_Init () {
libMLBD_gt_MMBOEDebugStartImmediately = TriggerCreate("libMLBD_gt_MMBOEDebugStartImmediately_Func");
TriggerEnable(libMLBD_gt_MMBOEDebugStartImmediately, false);
TriggerAddEventChatMessage(libMLBD_gt_MMBOEDebugStartImmediately, c_playerAny, "-bd", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Debug - Play Cutscene
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDebugPlayCutscene_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
string auto1E503F1D_val;
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto1E503F1D_val = StringSub(EventChatMessage(false), 5, StringLength(EventChatMessage(false)));
if (auto1E503F1D_val == "start") {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MLBD_C19F8B58"), true);
libMLBD_gf_MMBOEPlayCutscene(libMLBD_ge_MMBOEBossCutsceneType_EventStart, libMLBD_gv_mMBOEBossSpawnLocationCenter);
}
else if (auto1E503F1D_val == "mid") {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MLBD_5152CFB4"), true);
libMLBD_gf_MMBOEPlayCutscene(libMLBD_ge_MMBOEBossCutsceneType_EventMid, libMLBD_gv_mMBOEBossSpawnLocationCenter);
}
else if (auto1E503F1D_val == "heavenwin") {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MLBD_4E6EF306"), true);
libMLBD_gf_MMBOEPlayCutscene(libMLBD_ge_MMBOEBossCutsceneType_HeavenVictory, libMLBD_gv_mMBOEBossSpawnLocationCenter);
}
else if (auto1E503F1D_val == "hellwin") {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MLBD_803AF5BB"), true);
libMLBD_gf_MMBOEPlayCutscene(libMLBD_ge_MMBOEBossCutsceneType_HellVictory, libMLBD_gv_mMBOEBossSpawnLocationCenter);
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDebugPlayCutscene_Init () {
libMLBD_gt_MMBOEDebugPlayCutscene = TriggerCreate("libMLBD_gt_MMBOEDebugPlayCutscene_Func");
TriggerEnable(libMLBD_gt_MMBOEDebugPlayCutscene, false);
TriggerAddEventChatMessage(libMLBD_gt_MMBOEDebugPlayCutscene, c_playerAny, "-cs", false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Debug - Transmission
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDebugTransmission_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
string auto5E8D62C0_val;
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
if (!((StringCompare(StringWord(EventChatMessage(false), 1), EventChatMessage(true), c_stringNoCase) == 0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto5E8D62C0_val = StringWord(EventChatMessage(false), 2);
if (auto5E8D62C0_val == "1") {
libMLBD_gf_MMBOETransmissionDuelWarningQ();
}
else if (auto5E8D62C0_val == "2") {
libMLBD_gf_MMBOETransmissionDuelStartQ();
}
else if (auto5E8D62C0_val == "3") {
libMLBD_gf_MMBOETransmissionDuelFlyStartQ();
}
else if (auto5E8D62C0_val == "4") {
libMLBD_gf_MMBOETransmissionDuelEndQ(StringToInt(StringWord(EventChatMessage(false), 3)));
}
else if (auto5E8D62C0_val == "5") {
libMLBD_gf_MMBOETransmissionBossPushingQ(StringToInt(StringWord(EventChatMessage(false), 3)));
}
else if (auto5E8D62C0_val == "6") {
libMLBD_gf_MMBOETransmissionBossRetreatedQ(StringToInt(StringWord(EventChatMessage(false), 3)));
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDebugTransmission_Init () {
libMLBD_gt_MMBOEDebugTransmission = TriggerCreate("libMLBD_gt_MMBOEDebugTransmission_Func");
TriggerEnable(libMLBD_gt_MMBOEDebugTransmission, false);
TriggerAddEventChatMessage(libMLBD_gt_MMBOEDebugTransmission, c_playerAny, "BOETRANS", false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Debug - DisableEvent
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDebugDisableEvent_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if (((TimerGetRemaining(libMLBD_gv_mMBOEEventCooldownTimer) > 0.0) || (TimerGetRemaining(libMLBD_gv_mMBOEEventInitDelayTimer) > 0.0))) {
TriggerEnable(TriggerGetCurrent(), false);
TimerPause(libMLBD_gv_mMBOEEventCooldownTimer, true);
TimerPause(libMLBD_gv_mMBOEEventInitDelayTimer, true);
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MLBD_92F63FFA"), true);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDebugDisableEvent_Init () {
libMLBD_gt_MMBOEDebugDisableEvent = TriggerCreate("libMLBD_gt_MMBOEDebugDisableEvent_Func");
TriggerAddEventChatMessage(libMLBD_gt_MMBOEDebugDisableEvent, c_playerAny, "DisableEvent", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Debug - Show Boss Positions
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDebugShowBossPositions_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMLBD_gv_mMBOEShowBossPositions = !(libMLBD_gv_mMBOEShowBossPositions);
if ((libMLBD_gv_mMBOEShowBossPositions == true)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MLBD_DBF39AC2"), true);
}
else {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MLBD_1BFFF0B9"), true);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDebugShowBossPositions_Init () {
libMLBD_gt_MMBOEDebugShowBossPositions = TriggerCreate("libMLBD_gt_MMBOEDebugShowBossPositions_Func");
TriggerAddEventChatMessage(libMLBD_gt_MMBOEDebugShowBossPositions, c_playerAny, "showpos", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE - Duel Boss Reacquire Attack Target
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDuelBossReacquireAttackTarget_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(EventUnit(), "BossDuelTransitionBehavior") == false))) {
return false;
}
if (!((UnitHasBehavior2(EventUnit(), "BossDuelIncapacitated") == false))) {
return false;
}
if (!(((UnitGetType(EventUnit()) == "BossDuelBossHeaven") || (UnitGetType(EventUnit()) == "BossDuelBossHell")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitGetOwner(EventUnit()) == libCore_gv_cOMPUTER_NoVision_TeamOrder)) {
UnitIssueOrder(EventUnit(), OrderTargetingUnit(AbilityCommand("attack", 0), libMLBD_gv_mMBOEBosses[libGame_gv_teamChaosIndex_C]), c_orderQueueAddToEnd);
}
if ((UnitGetOwner(EventUnit()) == libCore_gv_cOMPUTER_NoVision_TeamChaos)) {
UnitIssueOrder(EventUnit(), OrderTargetingUnit(AbilityCommand("attack", 0), libMLBD_gv_mMBOEBosses[libGame_gv_teamOrderIndex_C]), c_orderQueueAddToEnd);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDuelBossReacquireAttackTarget_Init () {
libMLBD_gt_MMBOEDuelBossReacquireAttackTarget = TriggerCreate("libMLBD_gt_MMBOEDuelBossReacquireAttackTarget_Func");
TriggerAddEventUnitBehaviorChange(libMLBD_gt_MMBOEDuelBossReacquireAttackTarget, null, "BossDuelCastingBehavior", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE - Duel Boss Void Prison Reacquire Attack Target
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDuelBossVoidPrisonReacquireAttackTarget_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!(((UnitGetType(EventUnit()) == "BossDuelBossHell") || (UnitGetType(EventUnit()) == "BossDuelBossHeaven")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitGetOwner(EventUnit()) == libCore_gv_cOMPUTER_TeamOrder) && (UnitHasBehavior2(libMLBD_gv_mMBOEBosses[libGame_gv_teamChaosIndex_C], "BossDuelTransitionBehavior") == false) && (UnitHasBehavior2(libMLBD_gv_mMBOEBosses[libGame_gv_teamChaosIndex_C], "BossDuelIncapacitated") == false) && (UnitHasBehavior2(libMLBD_gv_mMBOEBosses[libGame_gv_teamChaosIndex_C], "BossDuelCastingBehavior") == false)) {
UnitIssueOrder(libMLBD_gv_mMBOEBosses[libGame_gv_teamChaosIndex_C], OrderTargetingUnit(AbilityCommand("attack", 0), EventUnit()), c_orderQueueAddToEnd);
}
if ((UnitGetOwner(EventUnit()) == libCore_gv_cOMPUTER_TeamChaos) && (UnitHasBehavior2(libMLBD_gv_mMBOEBosses[libGame_gv_teamOrderIndex_C], "BossDuelTransitionBehavior") == false) && (UnitHasBehavior2(libMLBD_gv_mMBOEBosses[libGame_gv_teamOrderIndex_C], "BossDuelIncapacitated") == false) && (UnitHasBehavior2(libMLBD_gv_mMBOEBosses[libGame_gv_teamOrderIndex_C], "BossDuelCastingBehavior") == false)) {
UnitIssueOrder(libMLBD_gv_mMBOEBosses[libGame_gv_teamOrderIndex_C], OrderTargetingUnit(AbilityCommand("attack", 0), EventUnit()), c_orderQueueAddToEnd);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDuelBossVoidPrisonReacquireAttackTarget_Init () {
libMLBD_gt_MMBOEDuelBossVoidPrisonReacquireAttackTarget = TriggerCreate("libMLBD_gt_MMBOEDuelBossVoidPrisonReacquireAttackTarget_Func");
TriggerAddEventUnitBehaviorChange(libMLBD_gt_MMBOEDuelBossVoidPrisonReacquireAttackTarget, null, "VoidPrison", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Demonic Explosions Ability Used
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEDemonicExplosionsAbilityUsed_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(EventPlayerEffectUsedUnit(c_effectUnitCaster)) == "BossDuelBossHell")) {
libMLBD_gf_MMBOEExplosionsLogic(libMLBD_gv_mMBOEExplosionsJungleTargetMax, "DemonicExplosionsCreatePersistent", EventPlayerEffectUsedUnit(c_effectUnitCaster));
Wait(4.0, c_timeGame);
if ((libMLBD_gv_mMBOESuppressExplosions == false)) {
libMLBD_gf_MMBOEExplosionsLogic(libMLBD_gv_mMBOEExplosionsJungleTargetMax, "DemonicExplosionsCreatePersistent", EventPlayerEffectUsedUnit(c_effectUnitCaster));
libNtve_gf_SendActorMessageToUnit(EventPlayerEffectUsedUnit(c_effectUnitCaster), "Signal Explosions");
}
}
else {
libMLBD_gf_MMBOEExplosionsLogic(libMLBD_gv_mMBOEExplosionsLanerTargetMax, "DemonicExplosionsCreatePersistent", EventPlayerEffectUsedUnit(c_effectUnitCaster));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEDemonicExplosionsAbilityUsed_Init () {
libMLBD_gt_MMBOEDemonicExplosionsAbilityUsed = TriggerCreate("libMLBD_gt_MMBOEDemonicExplosionsAbilityUsed_Func");
TriggerAddEventPlayerEffectUsed(libMLBD_gt_MMBOEDemonicExplosionsAbilityUsed, c_playerAny, "DemonicExplosionsDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMBOE Angelic Explosions Ability Used
//--------------------------------------------------------------------------------------------------
bool libMLBD_gt_MMBOEAngelicExplosionsAbilityUsed_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(EventPlayerEffectUsedUnit(c_effectUnitCaster)) == "BossDuelBossHeaven")) {
libMLBD_gf_MMBOEExplosionsLogic(libMLBD_gv_mMBOEExplosionsJungleTargetMax, "AngelicExplosionsCreatePersistent", EventPlayerEffectUsedUnit(c_effectUnitCaster));
Wait(4.0, c_timeGame);
if ((libMLBD_gv_mMBOESuppressExplosions == false)) {
libMLBD_gf_MMBOEExplosionsLogic(libMLBD_gv_mMBOEExplosionsJungleTargetMax, "AngelicExplosionsCreatePersistent", EventPlayerEffectUsedUnit(c_effectUnitCaster));
libNtve_gf_SendActorMessageToUnit(EventPlayerEffectUsedUnit(c_effectUnitCaster), "Signal Explosions");
}
}
else {
libMLBD_gf_MMBOEExplosionsLogic(libMLBD_gv_mMBOEExplosionsLanerTargetMax, "AngelicExplosionsCreatePersistent", EventPlayerEffectUsedUnit(c_effectUnitCaster));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMLBD_gt_MMBOEAngelicExplosionsAbilityUsed_Init () {
libMLBD_gt_MMBOEAngelicExplosionsAbilityUsed = TriggerCreate("libMLBD_gt_MMBOEAngelicExplosionsAbilityUsed_Func");
TriggerAddEventPlayerEffectUsed(libMLBD_gt_MMBOEAngelicExplosionsAbilityUsed, c_playerAny, "AngelicExplosionsDummySet");
}
void libMLBD_InitTriggers () {
libMLBD_gt_MMBOEInit_Init();
libMLBD_gt_MMBOEPingDataInit_Init();
libMLBD_gt_MMBOEGatesOpened_Init();
libMLBD_gt_MMBOELongWarningTime_Init();
libMLBD_gt_MMBOEDuelDurationTimer_Init();
libMLBD_gt_MMBOEBossAttackedHeaven_Init();
libMLBD_gt_MMBOEBossAttackedHell_Init();
libMLBD_gt_MMBOEBossTakesDamage_Init();
libMLBD_gt_MMBOEBossDied_Init();
libMLBD_gt_MMBOEUpdateBossLanerPath_Init();
libMLBD_gt_MMBOEBossFightPing_Init();
libMLBD_gt_MMBOEBossLaningKilled_Init();
libMLBD_gt_GameOver_Init();
libMLBD_gt_MMBOEPlayerMovesCamera_Init();
libMLBD_gt_MMBOEUIModInitialize_Init();
libMLBD_gt_MMBOEUIHandler_Init();
libMLBD_gt_MMBOEDebugTownLife_Init();
libMLBD_gt_MMBOEDebugStartWithWarning_Init();
libMLBD_gt_MMBOEDebugStartImmediately_Init();
libMLBD_gt_MMBOEDebugPlayCutscene_Init();
libMLBD_gt_MMBOEDebugTransmission_Init();
libMLBD_gt_MMBOEDebugDisableEvent_Init();
libMLBD_gt_MMBOEDebugShowBossPositions_Init();
libMLBD_gt_MMBOEDuelBossReacquireAttackTarget_Init();
libMLBD_gt_MMBOEDuelBossVoidPrisonReacquireAttackTarget_Init();
libMLBD_gt_MMBOEDemonicExplosionsAbilityUsed_Init();
libMLBD_gt_MMBOEAngelicExplosionsAbilityUsed_Init();
}
//--------------------------------------------------------------------------------------------------
// Library Initialization
//--------------------------------------------------------------------------------------------------
bool libMLBD_InitLib_completed = false;
void libMLBD_InitLib () {
if (libMLBD_InitLib_completed) {
return;
}
libMLBD_InitLib_completed = true;
libMLBD_InitLibraries();
libMLBD_InitVariables();
libMLBD_InitTriggers();
}