include "TriggerLibs/NativeLib"
include "TriggerLibs/HeroesLib_h"
include "TriggerLibs/GameLib_h"
include "TriggerLibs/AILib_h"
include "TriggerLibs/UILib_h"
include "TriggerLibs/StartingExperienceLib_h"
include "TriggerLibs/SoundLib_h"
include "TriggerLibs/SupportLib_h"
include "TriggerLibs/MapMechanicsLib_h"
//--------------------------------------------------------------------------------------------------
// Library: Maps
//--------------------------------------------------------------------------------------------------
// External Library Initialization
void libMapM_InitLibraries () {
libNtve_InitVariables();
libCore_InitVariables();
libGame_InitVariables();
libAIAI_InitVariables();
libUIUI_InitVariables();
libStEx_InitVariables();
libSond_InitVariables();
libSprt_InitVariables();
}
// Variable Initialization
bool libMapM_InitVariables_completed = false;
void libMapM_InitVariables () {
int init_i;
int init_i1;
if (libMapM_InitVariables_completed) {
return;
}
libMapM_InitVariables_completed = true;
libMapM_gv_bALJungleLeashRespawnTime = 45.0;
libMapM_gv_bALJungleCampScalingTimerDuration = 60.0;
libMapM_gv_bALJungleOgreMageAuraAbilityPowerPercentage = 0.2;
libMapM_gv_genericMercCampInitialSpawnDelay_C = 30.0;
libMapM_gv_genericMercBossCampInitialSpawnDelay_C = 300.0;
libMapM_gv_mercSapperDefaultSpawnTime_C = 30.0;
libMapM_gv_mercSapperDefaultRespawnTime_C = 150.0;
libMapM_gv_reconCampInitialSpawnDelay_C = 30.0;
for (init_i = 0; init_i <= libMapM_gv_dataJungleMaxNumberOfDefenderTypes; init_i += 1) {
libMapM_gv_dataJungleCampDefenderData[init_i].lv_aIGoalLink = "MercenaryCamp";
}
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsParentPanel = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= libMapM_gv_jungleMaxCamps; init_i1 += 1) {
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsDialog[init_i1] = c_invalidDialogId;
}
for (init_i1 = 0; init_i1 <= libMapM_gv_jungleMaxCamps; init_i1 += 1) {
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCamp_PositionControl[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libMapM_gv_jungleMaxCamps; init_i1 += 1) {
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libMapM_gv_jungleMaxCamps; init_i1 += 1) {
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Timer[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libMapM_gv_jungleMaxCamps; init_i1 += 1) {
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Title[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libMapM_gv_jungleMaxCamps; init_i1 += 1) {
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_PlayerName[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libMapM_gv_jungleMaxCamps; init_i1 += 1) {
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Description[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libMapM_gv_jungleMaxCamps; init_i1 += 1) {
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Debug[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libMapM_gv_jungleMaxCamps; init_i1 += 1) {
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel2[init_i1] = c_invalidDialogControlId;
}
for (init_i = 0; init_i <= libMapM_gv_jungleMaxCamps; init_i += 1) {
libMapM_gv_jungleCreepCamps[init_i].lv_mapDataCampType = libMapM_ge_JungleCampTypes_MercCamp;
libMapM_gv_jungleCreepCamps[init_i].lv_mapDataCampDefenderType = libMapM_ge_JungleCampDefenderTypes_Custom;
libMapM_gv_jungleCreepCamps[init_i].lv_mapDataMinimapIconScale = 0.7;
libMapM_gv_jungleCreepCamps[init_i].lv_mapDataMercSpawnType = libMapM_ge_JungleCampMercTypes_Custom;
libMapM_gv_jungleCreepCamps[init_i].lv_mapDataBattleshipSpawnType = libMapM_ge_JungleCampMercTypes_Custom;
libMapM_gv_jungleCreepCamps[init_i].lv_defenderCoweringLivingUnitGroup = UnitGroupEmpty();
libMapM_gv_jungleCreepCamps[init_i].lv_defenderCoweringDeadUnitGroup = UnitGroupEmpty();
libMapM_gv_jungleCreepCamps[init_i].lv_defenderUnitGroup = UnitGroupEmpty();
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMapM_gv_jungleCreepCamps[init_i].lv_mercMercCampHasSingleWaypoint[init_i1] = true;
}
libMapM_gv_jungleCreepCamps[init_i].lv_campHelperTextTagOrder = c_textTagNone;
libMapM_gv_jungleCreepCamps[init_i].lv_campHelperTextTagChaos = c_textTagNone;
libMapM_gv_jungleCreepCamps[init_i].lv_capturingPlayer = libCore_gv_cOMPUTER_Neutral;
libMapM_gv_jungleCreepCamps[init_i].lv_campAwardsRegenGlobe = true;
libMapM_gv_jungleCreepCamps[init_i].lv_stateIsEnabled = true;
libMapM_gv_jungleCreepCamps[init_i].lv_stateCreepBirthTimer = TimerCreate();
libMapM_gv_jungleCreepCamps[init_i].lv_stateCreepRespawnTimer = TimerCreate();
libMapM_gv_jungleCreepCamps[init_i].lv_stateCreepActiveTimer = TimerCreate();
libMapM_gv_jungleCreepCamps[init_i].lv_aIState = libMapM_ge_JungleCampStates_Dead;
libMapM_gv_jungleCreepCamps[init_i].lv_aICampGoalLink = "MercenaryCamp";
}
for (init_i = 0; init_i <= libMapM_gv_jungleMaxMercGroups; init_i += 1) {
libMapM_gv_jungleMiniMapIconGroup[init_i] = UnitGroupEmpty();
}
for (init_i = 0; init_i <= libMapM_gv_jungleMaxMercGroups; init_i += 1) {
libMapM_gv_jungleMiniMapPathCurrentIndex[init_i] = 1;
}
for (init_i = 0; init_i <= libMapM_gv_jungleMaxMercGroups; init_i += 1) {
libMapM_gv_jungleMiniMapPathIndexMaximum[init_i] = 1;
}
for (init_i = 0; init_i <= libMapM_gv_mapMechanicsMaxCount_C; init_i += 1) {
libMapM_gv_mapMechanics[init_i] = "";
}
for (init_i = 0; init_i <= libCore_gv_bALMaxEnginePlayerCount; init_i += 1) {
libMapM_gv_mMIntroCutscene[init_i] = c_cutsceneNone;
}
for (init_i = 0; init_i <= libCore_gv_bALMaxEnginePlayerCount; init_i += 1) {
libMapM_gv_mMIntroCutsceneFinished[init_i] = true;
}
libMapM_gv_mMAnnouncementDialog = c_invalidDialogId;
for (init_i = 0; init_i <= libCore_gv_bALMaxEnginePlayerCount; init_i += 1) {
libMapM_gv_mMAnnouncementDialogsMultiple[init_i] = c_invalidDialogId;
}
libMapM_gv_mMRepulseRegionPunchedGroup = UnitGroupEmpty();
libMapM_gv_mMRavenTributes = UnitGroupEmpty();
libMapM_gv_mMRavenTributeWarnings = UnitGroupEmpty();
libMapM_gv_mMRavenStartTime = 150.0;
libMapM_gv_mMRavenTributeSpawnTimeVariance = 20;
libMapM_gv_mMRavenTributePostCurseWaitTime = 70.0;
libMapM_gv_mMRavenStartTimer = TimerCreate();
libMapM_gv_mMRavenWarningTimer = TimerCreate();
libMapM_gv_mMRavenTributeSpawnTimer = TimerCreate();
libMapM_gv_mMRavenUseTributePreviews = true;
libMapM_gv_mMRavenTributeSpawnCount = 1;
libMapM_gv_mMRavenObjectivePreviewTimer = TimerCreate();
libMapM_gv_mMRavenObjectivePreviewLongDelay = 30.0;
libMapM_gv_mMRavenObjectivePreviewShortDelay = 15.0;
libMapM_gv_mMRavenCurseTimer = TimerCreate();
for (init_i = 0; init_i <= 5; init_i += 1) {
libMapM_gv_mMRavenTimers[init_i] = TimerCreate();
}
libMapM_gv_mMRavenEventFirstTime = true;
libMapM_gv_mMGardensDragonDragonballKnightNameC = StringExternal("Param/Value/lib_MapM_C1C93EA8");
libMapM_gv_mMGardensDragonDragonballShrineNameC = StringExternal("Param/Value/lib_MapM_779CD885");
libMapM_gv_mMGardensDragonStatueTextTag = c_textTagNone;
libMapM_gv_mMGardensDragonStatueTextTagAllyOwned = c_textTagNone;
libMapM_gv_mMGardensDragonStatueTextTagEnemyOwned = c_textTagNone;
libMapM_gv_mMGardensDragonDragonKnightLifeTimer = TimerCreate();
libMapM_gv_mMGardensDragonCurrentState = libMapM_ge_MMGardensDragonState_Idle;
libMapM_gv_mMGardensDragonSpawnFirstTime = true;
libMapM_gv_mMGardensDragonDragonTowerStartTimer = TimerCreate();
libMapM_gv_mMGardensDragonDragonTowerRespawnTimer = TimerCreate();
libMapM_gv_mMGardensDragonDragonTowerWarningTimer = TimerCreate();
libMapM_gv_mMGardensDragonDragonTowerGoalActivationTimer = TimerCreate();
libMapM_gv_mMGardensDragonDragonStatueActiveReminderTimer = TimerCreate();
for (init_i = 0; init_i <= libMapM_gv_mMGardensDragonDragonTowerMaxCount; init_i += 1) {
libMapM_gv_mMGardensDragonDragonTowers[init_i].lv_enabled = true;
libMapM_gv_mMGardensDragonDragonTowers[init_i].lv_helperText = c_textTagNone;
}
libMapM_gv_mMDragonballsTransmissionShrinesRechargeFirstTime = true;
}
// Presets
string libMapM_ge_JungleCampStates_Ident (int lp_val) {
if (lp_val == libMapM_ge_JungleCampStates_Idle) { return "Idle"; }
else if (lp_val == libMapM_ge_JungleCampStates_Busy) { return "Busy"; }
else if (lp_val == libMapM_ge_JungleCampStates_Dead) { return "Dead"; }
else if (lp_val == libMapM_ge_JungleCampStates_Paused) { return "Paused"; }
else if (lp_val == libMapM_ge_JungleCampStates_Hibernating) { return "Hibernating"; }
else if (lp_val == libMapM_ge_JungleCampStates_HibernatingReadyToRespawn) { return "HibernatingReadyToRespawn"; }
return null;
}
// Functions
void libMapM_gf_InitializeSiegeTrooperMercType (int lp_campType, text lp_mercName) {
// Variable Declarations
int lv_campTypeInt;
// Automatic Variable Declarations
// Variable Initialization
lv_campTypeInt = (lp_campType);
// Implementation
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_aIGoalLink = "MercenaryCampShockTrooper";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campIsSoloable = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defendersCoweronDeath = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_initialSpawnDelay = libMapM_gv_genericMercCampInitialSpawnDelay_C;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_respawnTime = 180.0;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_numberOfCreeps = 3;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campTypeMinimapLabel = lp_mercName;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[1] = "MercSiegeTrooperDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defenderCoweringUnit[1] = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[2] = "MercSiegeTrooperDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defenderCoweringUnit[2] = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[3] = "MercSiegeTrooperDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defenderCoweringUnit[3] = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_xPAwardForCapture = libCore_gv_data_XP_SiegeGiantCapture_C;
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_numberOfMinionsSpawned = 3;
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[1] = "MercSiegeTrooperLaner";
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[2] = "MercSiegeTrooperLaner";
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[3] = "MercSiegeTrooperLaner";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, "MercSiegeTrooperDefenderScaling", "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, "MercSiegeTrooperLanerScaling", "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
libUIUI_gf_PingCreateNewPingTarget("MercSiegeTrooperDefender", false, StringExternal("Param/Value/lib_MapM_7D17941C"), StringExternal("Param/Value/lib_MapM_6D78AC8F"), StringExternal("Param/Value/lib_MapM_BE0737A7"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingSetHumanAISourceHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackMercCamp, libCore_ge_HeroVOEvents_AIMercCapture);
libUIUI_gf_PingCreateNewPingTarget("MercSiegeTrooperLaner", false, lp_mercName, StringExternal("Param/Value/lib_MapM_8A5F6392"), StringExternal("Param/Value/lib_MapM_7FC7680C"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingSetAllyEnemyTargetHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackHere, libCore_ge_HeroVOEvents_PingAttackHere);
}
void libMapM_gf_InitializeSummonerMercType (int lp_campType, text lp_summonerName, text lp_summonedUnitName) {
// Variable Declarations
int lv_campTypeInt;
// Automatic Variable Declarations
// Variable Initialization
lv_campTypeInt = (lp_campType);
// Implementation
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_aIGoalLink = "MercenaryCampSummoner";
TriggerEnable(libMapM_gt_SummonerMinionLanerScaling, true);
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campIsSoloable = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_initialSpawnDelay = libMapM_gv_genericMercCampInitialSpawnDelay_C;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_respawnTime = 240.0;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_numberOfCreeps = 3;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campTypeMinimapLabel = lp_summonerName;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defendersCoweronDeath = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[1] = "MercSummonerDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defenderCoweringUnit[1] = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[2] = "MercSummonerDefenderMinion";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[3] = "MercSummonerDefenderMinion";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_xPAwardForCapture = libCore_gv_data_XP_OgreCapture_C;
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_numberOfMinionsSpawned = 1;
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[1] = "MercSummonerLaner";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, "MercSummonerDefenderScaling", "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, "MercSummonerDefenderMinionScaling", "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, "MercSummonerLanerScaling", "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
libUIUI_gf_PingCreateNewPingTarget("MercSummonerDefender", false, StringExternal("Param/Value/lib_MapM_AD640F18"), StringExternal("Param/Value/lib_MapM_B0611E4E"), StringExternal("Param/Value/lib_MapM_9C3B9F3A"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingSetHumanAISourceHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackMercCamp, libCore_ge_HeroVOEvents_AIMercCapture);
libUIUI_gf_PingCreateNewPingTarget("MercSummonerDefenderMinion", false, StringExternal("Param/Value/lib_MapM_CC092B3A"), StringExternal("Param/Value/lib_MapM_2735E79A"), StringExternal("Param/Value/lib_MapM_DB2F75DE"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingSetHumanAISourceHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackMercCamp, libCore_ge_HeroVOEvents_AIMercCapture);
libUIUI_gf_PingCreateNewPingTarget("MercSummonerLaner", false, lp_summonerName, StringExternal("Param/Value/lib_MapM_888C180F"), StringExternal("Param/Value/lib_MapM_601E133B"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingSetAllyEnemyTargetHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackHere, libCore_ge_HeroVOEvents_PingAttackHere);
libUIUI_gf_PingCreateNewPingTarget("MercSummonerLanerMinion", false, lp_summonedUnitName, StringExternal("Param/Value/lib_MapM_8963A34E"), StringExternal("Param/Value/lib_MapM_FCAC2F14"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingSetAllyEnemyTargetHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackHere, libCore_ge_HeroVOEvents_PingAttackHere);
}
void libMapM_gf_InitializeHellbatMercType (int lp_campType, text lp_mercName, fixed lp_initialSpawnDelay, fixed lp_respawnTime, bool lp_cowerOnDeath) {
// Variable Declarations
int lv_campTypeInt;
// Automatic Variable Declarations
// Variable Initialization
lv_campTypeInt = (lp_campType);
// Implementation
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_aIGoalLink = "MercenaryCampShockTrooper";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campIsSoloable = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defendersCoweronDeath = lp_cowerOnDeath;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_initialSpawnDelay = lp_initialSpawnDelay;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_respawnTime = lp_respawnTime;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_numberOfCreeps = 2;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campTypeMinimapLabel = lp_mercName;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[1] = "TerranHellbatDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defenderCoweringUnit[1] = lp_cowerOnDeath;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[2] = "TerranHellbatDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defenderCoweringUnit[2] = lp_cowerOnDeath;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_xPAwardForCapture = libCore_gv_data_XP_SiegeGiantCapture_C;
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_numberOfMinionsSpawned = 2;
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[1] = "TerranHellbat";
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[2] = "TerranHellbat";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, "TerranHellbatDefenderScaling", "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, "TerranHellbatScaling", "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
libUIUI_gf_PingCreateNewPingTarget("TerranHellbatDefender", false, StringExternal("Param/Value/lib_MapM_24DBA175"), StringExternal("Param/Value/lib_MapM_566B7407"), StringExternal("Param/Value/lib_MapM_FA057BB0"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingSetHumanAISourceHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackMercCamp, libCore_ge_HeroVOEvents_AIMercCapture);
libUIUI_gf_PingCreateNewPingTarget("TerranHellbat", false, lp_mercName, StringExternal("Param/Value/lib_MapM_F245B529"), StringExternal("Param/Value/lib_MapM_7220AF70"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingSetAllyEnemyTargetHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackHere, libCore_ge_HeroVOEvents_PingAttackHere);
}
void libMapM_gf_InitializeSapperMercType (int lp_campType, text lp_mercName, fixed lp_initialSpawnDelay, fixed lp_respawnDelay) {
// Variable Declarations
int lv_campTypeInt;
// Automatic Variable Declarations
// Variable Initialization
lv_campTypeInt = (lp_campType);
// Implementation
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_aIGoalLink = "MercenaryCampSappers";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campTypeMinimapLabel = lp_mercName;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campIsSoloable = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_initialSpawnDelay = lp_initialSpawnDelay;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_respawnTime = lp_respawnDelay;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_numberOfCreeps = 3;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[1] = "MercGoblinSapperDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[2] = "MercGoblinSapperDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[3] = "MercGoblinSapperDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_xPAwardForCapture = libCore_gv_data_XP_SiegeGiantCapture_C;
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_numberOfMinionsSpawned = 3;
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[1] = "MercGoblinSapperLaner";
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[2] = "MercGoblinSapperLaner";
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[3] = "MercGoblinSapperLaner";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, "MercGoblinSapperDefenderScaling", "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, "MercGoblinSapperLanerScaling", "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
libUIUI_gf_PingCreateNewPingTarget("MercGoblinSapperDefender", false, StringExternal("Param/Value/lib_MapM_8D86B383"), StringExternal("Param/Value/lib_MapM_5B78A3A7"), StringExternal("Param/Value/lib_MapM_D78D61EB"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));
libUIUI_gf_PingCreateNewPingTarget("MercGoblinSapperLaner", false, lp_mercName, StringExternal("Param/Value/lib_MapM_FA01C50C"), StringExternal("Param/Value/lib_MapM_E7D0A0CE"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));
}
void libMapM_gf_DataInitializeScalingDataForDefender (int lp_defenderType, string lp_scalingBehavior) {
// Variable Declarations
int lv_itRank;
int lv_defenderTypeIndex;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_defenderTypeIndex = (lp_defenderType);
libMapM_gv_dataJungleCampDefenderData[lv_defenderTypeIndex].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, lp_scalingBehavior, "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
}
void libMapM_gf_DataInitializeScalingDataForMerc (int lp_mercType, string lp_scalingBehavior) {
// Variable Declarations
int lv_itRank;
int lv_mercTypeIndex;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_mercTypeIndex = (lp_mercType);
libMapM_gv_dataJungleCampMercData[lv_mercTypeIndex].lv_numberOfRanks = MinI((CatalogFieldValueCount(c_gameCatalogBehavior, lp_scalingBehavior, "VeterancyLevelArray", c_playerAny) - 1), libCore_gv_dataScalingMaxScalingTicks);
}
void libMapM_gf_JungleInitializeDefenderData (int lp_camp) {
// Variable Declarations
int lv_i;
int lv_campTypeIndex;
int lv_missingPoints;
// Automatic Variable Declarations
int auto6AB4C519_ae;
const int auto6AB4C519_ai = 1;
int auto7D68F867_ae;
const int auto7D68F867_ai = 1;
int auto95FF0122_ae;
const int auto95FF0122_ai = 1;
// Variable Initialization
// Implementation
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType != libMapM_ge_JungleCampDefenderTypes_Custom)) {
lv_campTypeIndex = (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType);
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCampIsSoloable = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_campIsSoloable;
libMapM_gv_jungleCreepCamps[lp_camp].lv_aICampGoalLink = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_aIGoalLink;
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderDefendersCoweronDeath = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_defendersCoweronDeath;
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderInitialSpawnDelay = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_initialSpawnDelay;
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderRespawnTime = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_respawnTime;
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderNumberofCreeps = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_numberOfCreeps;
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCampTypeMinimapLabel = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_campTypeMinimapLabel;
libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampIsElite = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_campIsElite;
auto6AB4C519_ae = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_numberOfCreeps;
lv_i = 1;
for ( ; ( (auto6AB4C519_ai >= 0 && lv_i <= auto6AB4C519_ae) || (auto6AB4C519_ai < 0 && lv_i >= auto6AB4C519_ae) ) ; lv_i += auto6AB4C519_ai ) {
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderUnitTypes[lv_i] = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_creepUnitTypes[lv_i];
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCoweringUnit[lv_i] = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_defenderCoweringUnit[lv_i];
}
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderNumberOfRanks = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_numberOfRanks;
auto7D68F867_ae = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_numberOfRanks;
lv_i = 0;
for ( ; ( (auto7D68F867_ai >= 0 && lv_i <= auto7D68F867_ae) || (auto7D68F867_ai < 0 && lv_i >= auto7D68F867_ae) ) ; lv_i += auto7D68F867_ai ) {
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCampLevel[lv_i] = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_campLevel[lv_i];
}
}
auto95FF0122_ae = libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderNumberofCreeps;
lv_i = 1;
for ( ; ( (auto95FF0122_ai >= 0 && lv_i <= auto95FF0122_ae) || (auto95FF0122_ai < 0 && lv_i >= auto95FF0122_ae) ) ; lv_i += auto95FF0122_ai ) {
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataDefenderSpawnPoints[lv_i] == null)) {
lv_missingPoints += 1;
}
}
if ((lv_missingPoints > 0)) {
TextExpressionSetToken("Param/Expression/lib_MapM_7AB5D588", "A", IntToText(lp_camp));
TextExpressionSetToken("Param/Expression/lib_MapM_7AB5D588", "B", IntToText(lv_missingPoints));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MapM_7AB5D588"), true);
}
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCaptureXPValue = libMapM_gv_dataJungleCampDefenderData[lv_campTypeIndex].lv_xPAwardForCapture;
}
void libMapM_gf_JungleInitializeMercCampData (int lp_camp) {
// Variable Declarations
int lv_i;
int lv_team;
int lv_lane;
int lv_waypoint;
int lv_campTypeIndex;
int lv_ownerPlayer;
point lv_rallyPoint;
bool lv_foundLane;
int lv_spawnLane;
int lv_spawnFirstWaypointIndex;
// Automatic Variable Declarations
int autoD92817D3_ae;
const int autoD92817D3_ai = 1;
const int auto3F7D2E74_ae = 2;
const int auto3F7D2E74_ai = 1;
int autoC6A8DA7C_ae;
const int autoC6A8DA7C_ai = 1;
int auto2503891E_ae;
const int auto2503891E_ai = 1;
// Variable Initialization
// Implementation
lv_campTypeIndex = (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMercSpawnType);
libMapM_gv_jungleCreepCamps[lp_camp].lv_mercNumberOfMinionsSpawned = libMapM_gv_dataJungleCampMercData[lv_campTypeIndex].lv_numberOfMinionsSpawned;
autoD92817D3_ae = libMapM_gv_dataJungleCampMercData[lv_campTypeIndex].lv_numberOfMinionsSpawned;
lv_i = 1;
for ( ; ( (autoD92817D3_ai >= 0 && lv_i <= autoD92817D3_ae) || (autoD92817D3_ai < 0 && lv_i >= autoD92817D3_ae) ) ; lv_i += autoD92817D3_ai ) {
libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionUnitType[lv_i] = libMapM_gv_dataJungleCampMercData[lv_campTypeIndex].lv_spawnedMinionUnitTypes[lv_i];
libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionUnitType[lv_i] = libMapM_gv_dataJungleCampMercData[lv_campTypeIndex].lv_spawnedMinionUnitTypes[lv_i];
libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionAIThreatValueforAITeamDelegateSystem[lv_i] = CatalogFieldValueGetAsFixed(c_gameCatalogUnit, libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionUnitType[lv_i], "AIBaseThreat", libCore_gv_cOMPUTER_Neutral);
}
libMapM_gv_jungleCreepCamps[lp_camp].lv_mercNumberOfRanks = libMapM_gv_dataJungleCampMercData[lv_campTypeIndex].lv_numberOfRanks;
lv_team = 1;
for ( ; ( (auto3F7D2E74_ai >= 0 && lv_team <= auto3F7D2E74_ae) || (auto3F7D2E74_ai < 0 && lv_team >= auto3F7D2E74_ae) ) ; lv_team += auto3F7D2E74_ai ) {
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_mercMercCampHasSingleWaypoint[lv_team] == true)) {
if ((lv_team == 1)) {
lv_rallyPoint = libMapM_gv_jungleCreepCamps[lp_camp].lv_mercOrderMercCampPathing[1].lv_waypoint;
lv_ownerPlayer = libCore_gv_cOMPUTER_TeamOrder;
}
else {
lv_rallyPoint = libMapM_gv_jungleCreepCamps[lp_camp].lv_mercChaosMercCampPathing[1].lv_waypoint;
lv_ownerPlayer = libCore_gv_cOMPUTER_TeamChaos;
}
}
else {
if ((lv_team == 1)) {
lv_rallyPoint = libMapM_gf_JungleDetermineMercWaypoint(lv_team, lp_camp);
lv_ownerPlayer = libCore_gv_cOMPUTER_TeamOrder;
}
else {
lv_rallyPoint = libMapM_gf_JungleDetermineMercWaypoint(lv_team, lp_camp);
lv_ownerPlayer = libCore_gv_cOMPUTER_TeamChaos;
}
}
lv_foundLane = false;
autoC6A8DA7C_ae = libGame_gv_laneCount;
lv_lane = 1;
for ( ; ( (autoC6A8DA7C_ai >= 0 && lv_lane <= autoC6A8DA7C_ae) || (autoC6A8DA7C_ai < 0 && lv_lane >= autoC6A8DA7C_ae) ) ; lv_lane += autoC6A8DA7C_ai ) {
auto2503891E_ae = libGame_gv_laneData[lv_lane].lv_waypointCount;
lv_waypoint = 1;
for ( ; ( (auto2503891E_ai >= 0 && lv_waypoint <= auto2503891E_ae) || (auto2503891E_ai < 0 && lv_waypoint >= auto2503891E_ae) ) ; lv_waypoint += auto2503891E_ai ) {
if ((libGame_gv_laneData[lv_lane].lv_waypoints[lv_waypoint] == lv_rallyPoint)) {
lv_spawnLane = lv_lane;
lv_spawnFirstWaypointIndex = lv_waypoint;
lv_foundLane = true;
break;
}
}
}
if ((lv_foundLane == false)) {
libGame_gf_CalculateSpawnedMinionGoalPoints(lv_ownerPlayer, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint);
lv_spawnLane = libGame_gv_spawnedMinionLane;
lv_spawnFirstWaypointIndex = libGame_gv_spawnedMinionFirstWaypointIndex;
}
libMapM_gv_jungleCreepCamps[lp_camp].lv_mercLaneToSpawnIn[lv_team] = lv_spawnLane;
libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnFirstWaypointIndex[lv_team] = lv_spawnFirstWaypointIndex;
}
}
void libMapM_gf_JungleUpdateMercCampData (int lp_camp) {
// Variable Declarations
int lv_team;
int lv_lane;
int lv_waypoint;
int lv_ownerPlayer;
point lv_rallyPoint;
bool lv_foundLane;
int lv_spawnLane;
int lv_spawnFirstWaypointIndex;
// Automatic Variable Declarations
const int auto14B3DEF5_ae = 2;
const int auto14B3DEF5_ai = 1;
int autoAF4748C2_ae;
const int autoAF4748C2_ai = 1;
int autoFDA6A904_ae;
const int autoFDA6A904_ai = 1;
// Variable Initialization
// Implementation
lv_team = 1;
for ( ; ( (auto14B3DEF5_ai >= 0 && lv_team <= auto14B3DEF5_ae) || (auto14B3DEF5_ai < 0 && lv_team >= auto14B3DEF5_ae) ) ; lv_team += auto14B3DEF5_ai ) {
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_mercMercCampHasSingleWaypoint[lv_team] == true)) {
continue;
}
else {
if ((lv_team == 1)) {
lv_rallyPoint = libMapM_gf_JungleDetermineMercWaypoint(lv_team, lp_camp);
lv_ownerPlayer = libCore_gv_cOMPUTER_TeamOrder;
}
else {
lv_rallyPoint = libMapM_gf_JungleDetermineMercWaypoint(lv_team, lp_camp);
lv_ownerPlayer = libCore_gv_cOMPUTER_TeamChaos;
}
}
lv_foundLane = false;
autoAF4748C2_ae = libGame_gv_laneCount;
lv_lane = 1;
for ( ; ( (autoAF4748C2_ai >= 0 && lv_lane <= autoAF4748C2_ae) || (autoAF4748C2_ai < 0 && lv_lane >= autoAF4748C2_ae) ) ; lv_lane += autoAF4748C2_ai ) {
autoFDA6A904_ae = libGame_gv_laneData[lv_lane].lv_waypointCount;
lv_waypoint = 1;
for ( ; ( (autoFDA6A904_ai >= 0 && lv_waypoint <= autoFDA6A904_ae) || (autoFDA6A904_ai < 0 && lv_waypoint >= autoFDA6A904_ae) ) ; lv_waypoint += autoFDA6A904_ai ) {
if ((libGame_gv_laneData[lv_lane].lv_waypoints[lv_waypoint] == lv_rallyPoint)) {
lv_spawnLane = lv_lane;
lv_spawnFirstWaypointIndex = lv_waypoint;
lv_foundLane = true;
break;
}
}
}
if ((lv_foundLane == false)) {
libGame_gf_CalculateSpawnedMinionGoalPoints(lv_ownerPlayer, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint);
lv_spawnLane = libGame_gv_spawnedMinionLane;
lv_spawnFirstWaypointIndex = libGame_gv_spawnedMinionFirstWaypointIndex;
}
libMapM_gv_jungleCreepCamps[lp_camp].lv_mercLaneToSpawnIn[lv_team] = lv_spawnLane;
libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnFirstWaypointIndex[lv_team] = lv_spawnFirstWaypointIndex;
}
}
point libMapM_gf_JungleDetermineMercWaypoint (int lp_owningTeam, int lp_camp) {
// Variable Declarations
point lv_waypoint;
int lv_itPath;
int lv_enemyTeamPlayer;
unitgroup lv_buildings;
// Automatic Variable Declarations
const int auto6D5E303D_ae = libMapM_gv_dataJungleMaxNumberOfPaths;
const int auto6D5E303D_ai = 1;
const int autoD8182B22_ae = libMapM_gv_dataJungleMaxNumberOfPaths;
const int autoD8182B22_ai = 1;
// Variable Initialization
lv_buildings = UnitGroupEmpty();
// Implementation
if ((lp_owningTeam == libGame_gv_teamOrderIndex_C)) {
lv_enemyTeamPlayer = libCore_gv_cOMPUTER_TeamChaos;
lv_itPath = 1;
for ( ; ( (auto6D5E303D_ai >= 0 && lv_itPath <= auto6D5E303D_ae) || (auto6D5E303D_ai < 0 && lv_itPath >= auto6D5E303D_ae) ) ; lv_itPath += auto6D5E303D_ai ) {
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_mercOrderMercCampPathing[lv_itPath].lv_townRegion == null)) {
lv_waypoint = libMapM_gv_jungleCreepCamps[lp_camp].lv_mercOrderMercCampPathing[lv_itPath].lv_waypoint;
if ((lv_waypoint == null)) {
TextExpressionSetToken("Param/Expression/lib_MapM_2E7BBFDE", "A", IntToText(lp_camp));
TextExpressionSetToken("Param/Expression/lib_MapM_2E7BBFDE", "B", IntToText(lv_itPath));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MapM_2E7BBFDE"), true);
}
return lv_waypoint;
}
else {
lv_buildings = UnitGroup(null, lv_enemyTeamPlayer, libMapM_gv_jungleCreepCamps[lp_camp].lv_mercOrderMercCampPathing[lv_itPath].lv_townRegion, UnitFilter((1 << c_targetFilterStructure), 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
if ((UnitGroupCount(lv_buildings, c_unitCountAlive) > 0)) {
lv_waypoint = libMapM_gv_jungleCreepCamps[lp_camp].lv_mercOrderMercCampPathing[lv_itPath].lv_waypoint;
return lv_waypoint;
}
}
}
}
if ((lp_owningTeam == libGame_gv_teamChaosIndex_C)) {
lv_enemyTeamPlayer = libCore_gv_cOMPUTER_TeamOrder;
lv_itPath = 1;
for ( ; ( (autoD8182B22_ai >= 0 && lv_itPath <= autoD8182B22_ae) || (autoD8182B22_ai < 0 && lv_itPath >= autoD8182B22_ae) ) ; lv_itPath += autoD8182B22_ai ) {
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_mercChaosMercCampPathing[lv_itPath].lv_townRegion == null)) {
lv_waypoint = libMapM_gv_jungleCreepCamps[lp_camp].lv_mercChaosMercCampPathing[lv_itPath].lv_waypoint;
if ((lv_waypoint == null)) {
TextExpressionSetToken("Param/Expression/lib_MapM_72120814", "A", IntToText(lp_camp));
TextExpressionSetToken("Param/Expression/lib_MapM_72120814", "B", IntToText(lv_itPath));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MapM_72120814"), true);
}
return lv_waypoint;
}
else {
lv_buildings = UnitGroup(null, lv_enemyTeamPlayer, libMapM_gv_jungleCreepCamps[lp_camp].lv_mercChaosMercCampPathing[lv_itPath].lv_townRegion, UnitFilter((1 << c_targetFilterStructure), 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
if ((UnitGroupCount(lv_buildings, c_unitCountAlive) > 0)) {
lv_waypoint = libMapM_gv_jungleCreepCamps[lp_camp].lv_mercChaosMercCampPathing[lv_itPath].lv_waypoint;
return lv_waypoint;
}
}
}
}
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_69AA4E42"), true);
return lv_waypoint;
}
void libMapM_gf_JungleInitializeDoubloonCampData (int lp_camp) {
// Variable Declarations
int lv_i;
int lv_spawnwave;
int lv_lane;
int lv_wapoint;
int lv_campTypeIndex;
point lv_rallyPoint;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_campTypeIndex = (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataBattleshipSpawnType);
libMapM_gv_jungleCreepCamps[lp_camp].lv_piratesNumberOfRanks = libMapM_gv_dataJungleCampMercData[lv_campTypeIndex].lv_numberOfRanks;
}
void libMapM_gf_JungleInitializeDoubloonSmallCampData (int lp_camp) {
// Variable Declarations
int lv_campTypeIndex;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_campTypeIndex = (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataBattleshipSpawnType);
libMapM_gv_jungleCreepCamps[lp_camp].lv_piratesNumberOfRanks = libMapM_gv_dataJungleCampMercData[lv_campTypeIndex].lv_numberOfRanks;
libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCapturePointSplatModel = "TownMercCampCaptureBeaconSmall";
}
void libMapM_gf_JungleInitializeTryMeCampData (int lp_camp) {
// Automatic Variable Declarations
}
trigger auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_Trigger = null;
unit auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_lp_unit;
fixed auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_lp_delayTime;
void libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons (unit lp_unit, fixed lp_delayTime) {
auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_lp_unit = lp_unit;
auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_lp_delayTime = lp_delayTime;
if (auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_Trigger == null) {
auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_Trigger = TriggerCreate("auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_Trigger, false, false);
}
bool auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_TriggerFunc (bool testConds, bool runActions) {
unit lp_unit = auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_lp_unit;
fixed lp_delayTime = auto_libMapM_gf_JungleInitializeCreepCampDelayMinimapIcons_lp_delayTime;
// Automatic Variable Declarations
// Implementation
Wait(lp_delayTime, c_timeGame);
libNtve_gf_SendActorMessageToUnit(lp_unit, "SetMinimapVisibility 1");
return true;
}
void libMapM_gf_JungleInitializeCreepCamp (int lp_camp) {
int init_i;
// Variable Declarations
int[libMapM_gv_jungleMaxCamps + 1] lv_infoPanel;
string lv_iconScaleString;
string lv_iconUnitType;
unit lv_iconUnit;
string lv_icon;
const int lv_textTagHeightOffset = 5;
const fixed lv_iconScale = 0.7;
string lv_timerString;
// Automatic Variable Declarations
// Variable Initialization
for (init_i = 0; init_i <= libMapM_gv_jungleMaxCamps; init_i += 1) {
lv_infoPanel[init_i] = c_invalidDialogControlId;
}
lv_iconScaleString = "";
lv_timerString = "";
// Implementation
libMapM_gv_jungleCreepCamps[lp_camp].lv_campOwnershipFlagUnit = UnitGroupUnit(UnitGroup("LootBannerSconce", c_playerAny, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataDefenderLeashRegion, UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1), 1);
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_campOwnershipFlagUnit == null)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_59C36C74"), true);
libMapM_gv_jungleCreepCamps[lp_camp].lv_stateIsEnabled = false;
return ;
}
libMapM_gv_jungleCreepCamps[lp_camp].lv_campOwnershipFlagPosition = UnitGetPosition(libMapM_gv_jungleCreepCamps[lp_camp].lv_campOwnershipFlagUnit);
libMapM_gf_JungleDropLootBannerinMercCamp(lp_camp, PlayerGroupSingle(libCore_gv_cOMPUTER_Hostile));
if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMinimapIconUseTeamColor == true) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampType == libMapM_ge_JungleCampTypes_MercCamp))) {
libNtve_gf_CreateUnitsWithDefaultFacing(1, "JungleCampIconUnitTeamColor", c_unitCreateIgnorePlacement, 0, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, null);
}
else {
libNtve_gf_CreateUnitsWithDefaultFacing(1, "JungleCampIconUnit", c_unitCreateIgnorePlacement, 0, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, null);
}
lv_iconUnit = UnitLastCreated();
DialogCreate(1, 1, c_anchorTop, 0, 0, true);
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsDialog[lp_camp] = DialogLastCreated();
DialogSetPositionRelativeToUnitWithAnchor(DialogLastCreated(), libMapM_gv_jungleCreepCamps[lp_camp].lv_campOwnershipFlagUnit, "Ref_Overhead", c_anchorCenter, 0, 0);
DialogControlCreate(DialogLastCreated(), c_triggerControlTypePanel);
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCamp_PositionControl[lp_camp] = DialogControlLastCreated();
DialogControlHookupStandard(c_triggerControlTypePanel, "UIContainer/FullscreenLowerContainer/MercCampPanel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsParentPanel = DialogControlLastCreated();
DialogControlCreateInPanelFromTemplate(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsParentPanel, c_triggerControlTypePanel, "JungleCampInfoPanel/JungleCampInfoPanelTemplate");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_camp] = DialogControlLastCreated();
lv_infoPanel[lp_camp] = DialogControlLastCreated();
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), true);
DialogControlSetPositionRelative(DialogControlLastCreated(), PlayerGroupAll(), c_anchorCenter, libMapM_gv_uIJungleCampPanel.lv_jungleCreepCamp_PositionControl[lp_camp], c_anchorBottom, 0, 0);
DialogControlHookup(lv_infoPanel[lp_camp], c_triggerControlTypeLabel, "CampTimerLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Timer[lp_camp] = DialogControlLastCreated();
DialogControlHookup(lv_infoPanel[lp_camp], c_triggerControlTypeLabel, "CampTitleLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Title[lp_camp] = DialogControlLastCreated();
DialogControlHookup(lv_infoPanel[lp_camp], c_triggerControlTypeLabel, "PlayerNameLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_PlayerName[lp_camp] = DialogControlLastCreated();
DialogControlHookup(lv_infoPanel[lp_camp], c_triggerControlTypeLabel, "CampDescriptionLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Description[lp_camp] = DialogControlLastCreated();
DialogControlHookup(lv_infoPanel[lp_camp], c_triggerControlTypeLabel, "DebugLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Debug[lp_camp] = DialogControlLastCreated();
DialogControlHookup(lv_infoPanel[lp_camp], c_triggerControlTypeLabel, "CampEliteLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel2[lp_camp] = DialogControlLastCreated();
libNtve_gf_SendActorMessageToUnit(lv_iconUnit, "SetMinimapVisibility");
lv_icon = libMapM_gf_JungleGetCurrentIconForJungleCamp(lp_camp, true);
libNtve_gf_SendActorMessageToUnit(lv_iconUnit, "MinimapIcon " + lv_icon);
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), (("MinimapIconScale " + FixedToString(libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMinimapIconScale, c_fixedPrecisionAny))));
libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit = lv_iconUnit;
}
int libMapM_gf_JungleGetJungleCampForUnit (unit lp_unit) {
// Variable Declarations
int lv_i;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
return FixedToInt(UnitGetCustomValue(lp_unit, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_JungleDefenderCreepCampIndex)));
}
int libMapM_gf_JungleGetJungleUnitIndexForUnit (unit lp_unit) {
// Variable Declarations
int lv_i;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
return FixedToInt(UnitGetCustomValue(lp_unit, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_JungleDefenderCreepUnitIndex)));
}
string libMapM_gf_JungleGetCurrentIconForJungleCamp (int lp_camp, bool lp_alive) {
// Automatic Variable Declarations
int autoC825EDFA_val;
int autoDE822826_val;
int autoC838F424_val;
// Implementation
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMinimapIcon != null)) {
return libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMinimapIcon;
}
autoC825EDFA_val = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampType;
if (autoC825EDFA_val == libMapM_ge_JungleCampTypes_MercCamp) {
autoDE822826_val = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType;
if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_SiegeGiants) {
return "Assets\\Textures\\storm_ui_minimapicon_merccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_SiegeCamp1) {
return "Assets\\Textures\\storm_ui_minimapicon_merccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_SiegeCamp2) {
return "Assets\\Textures\\storm_ui_minimapicon_merccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_SiegeCamp3) {
return "Assets\\Textures\\storm_ui_minimapicon_merccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_Knights) {
return "Assets\\Textures\\storm_ui_minimapicon_elitemerccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_BruiserCamp1) {
return "Assets\\Textures\\storm_ui_minimapicon_elitemerccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_BruiserCamp2) {
return "Assets\\Textures\\storm_ui_minimapicon_elitemerccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_BruiserCamp3) {
return "Assets\\Textures\\storm_ui_minimapicon_elitemerccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_GraveGolem) {
return "Assets\\Textures\\storm_ui_minimapicon_golemmerccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_BossCamp1) {
return "Assets\\Textures\\storm_ui_minimapicon_golemmerccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_BossCamp2) {
return "Assets\\Textures\\storm_ui_minimapicon_golemmerccamp.dds";
}
else if (autoDE822826_val == libMapM_ge_JungleCampDefenderTypes_BossCamp3) {
return "Assets\\Textures\\storm_ui_minimapicon_golemmerccamp.dds";
}
else {
return "Assets\\Textures\\storm_ui_minimapicon_merccamp.dds";
}
}
else if (autoC825EDFA_val == libMapM_ge_JungleCampTypes_DoubloonCamp) {
if ((lp_alive == true)) {
return "Assets\\Textures\\storm_ui_minimapicon_ogreking.dds";
}
else {
return "Assets\\Textures\\storm_ui_minimapicon_ogreking_dead.dds";
}
}
else if (autoC825EDFA_val == libMapM_ge_JungleCampTypes_DoubloonSmallCamp) {
if ((lp_alive == true)) {
return "Assets\\Textures\\storm_ui_minimapicon_piratecamp.dds";
}
else {
return "Assets\\Textures\\storm_ui_minimapicon_piratecampempty.dds";
}
}
else if (autoC825EDFA_val == libMapM_ge_JungleCampTypes_TryMeCamp) {
autoC838F424_val = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType;
if (autoC838F424_val == libMapM_ge_JungleCampDefenderTypes_SiegeGiants) {
return "Assets\\Textures\\storm_ui_minimapicon_merccamp.dds";
}
else if (autoC838F424_val == libMapM_ge_JungleCampDefenderTypes_Knights) {
return "Assets\\Textures\\storm_ui_minimapicon_elitemerccamp.dds";
}
else if (autoC838F424_val == libMapM_ge_JungleCampDefenderTypes_GraveGolem) {
return "Assets\\Textures\\storm_ui_minimapicon_golemmerccamp.dds";
}
else {
return "Assets\\Textures\\storm_ui_minimapicon_merccamp.dds";
}
}
else {
if ((lp_alive == true)) {
return "Assets\\Textures\\storm_ui_minimapicon_creepcamp_medium.dds";
}
else {
return "Assets\\Textures\\storm_ui_minimapicon_creepcamp_medium_dead.dds";
}
}
}
string libMapM_gf_JungleGetPortraitForJungleCamp (int lp_camp) {
// Automatic Variable Declarations
int auto253F4BAC_val;
int autoF6D62E55_val;
// Implementation
auto253F4BAC_val = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampType;
if (auto253F4BAC_val == libMapM_ge_JungleCampTypes_MercCamp) {
autoF6D62E55_val = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMercSpawnType;
if (autoF6D62E55_val == libMapM_ge_JungleCampMercTypes_SiegeGiants) {
}
else if (autoF6D62E55_val == libMapM_ge_JungleCampMercTypes_Ogres) {
}
else if (autoF6D62E55_val == libMapM_ge_JungleCampMercTypes_GraveGolem) {
}
else {
}
}
else {
}
return null;
}
string libMapM_gf_JungleGetPortraitForUnitType (string lp_unitType) {
// Automatic Variable Declarations
string autoA489BFB7_val;
// Implementation
autoA489BFB7_val = lp_unitType;
if (autoA489BFB7_val == "MercLanerSiegeGiant") {
return "Assets\\Textures\\storm_temp_war3_btnberserk.dds";
}
else if (autoA489BFB7_val == "MercLanerMeleeKnight") {
return "Assets\\Textures\\storm_temp_war3_btnrevenant.dds";
}
else if (autoA489BFB7_val == "MercLanerRangedMage") {
return "Assets\\Textures\\storm_temp_war3_btnrevenant.dds";
}
else if (autoA489BFB7_val == "JungleGraveGolemLaner") {
return "Assets\\Textures\\storm_temp_war3_btngolemthunderclap.dds";
}
else {
}
return null;
}
text libMapM_gf_JungleGetNameTextForJungleCamp (int lp_camp) {
// Automatic Variable Declarations
int auto9A00953C_val;
int auto4B152FD2_val;
int auto78B4AE16_val;
// Implementation
auto9A00953C_val = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampType;
if (auto9A00953C_val == libMapM_ge_JungleCampTypes_MercCamp) {
auto4B152FD2_val = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMercSpawnType;
if (auto4B152FD2_val == libMapM_ge_JungleCampMercTypes_SiegeGiants) {
return StringExternal("Param/Value/lib_MapM_71255AE7");
}
else if (auto4B152FD2_val == libMapM_ge_JungleCampMercTypes_Ogres) {
return StringExternal("Param/Value/lib_MapM_D0F00D8A");
}
else if (auto4B152FD2_val == libMapM_ge_JungleCampMercTypes_GraveGolem) {
return StringExternal("Param/Value/lib_MapM_B9B68899");
}
else {
return StringExternal("Param/Value/lib_MapM_B37AEAAE");
}
}
else if (auto9A00953C_val == libMapM_ge_JungleCampTypes_DoubloonCamp) {
return StringExternal("Param/Value/lib_MapM_2AE79BAD");
}
else if (auto9A00953C_val == libMapM_ge_JungleCampTypes_DoubloonSmallCamp) {
return StringExternal("Param/Value/lib_MapM_B72F24BC");
}
else if (auto9A00953C_val == libMapM_ge_JungleCampTypes_TryMeCamp) {
auto78B4AE16_val = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType;
if (auto78B4AE16_val == libMapM_ge_JungleCampDefenderTypes_SiegeGiants) {
return StringExternal("Param/Value/lib_MapM_65E8BE29");
}
else if (auto78B4AE16_val == libMapM_ge_JungleCampDefenderTypes_Knights) {
return StringExternal("Param/Value/lib_MapM_93870F82");
}
else if (auto78B4AE16_val == libMapM_ge_JungleCampDefenderTypes_GraveGolem) {
return StringExternal("Param/Value/lib_MapM_8C0F57BC");
}
else {
return StringExternal("Param/Value/lib_MapM_5063E421");
}
}
else {
}
return StringExternal("Param/Value/lib_MapM_6B5370A7");
}
unit libMapM_gf_JungleGetRandomEnemyHeroInRangeOfMinionWithMinimumRangeRequirements (unit lp_creep, point lp_position, fixed lp_minimumRange, fixed lp_maximumRange, unit lp_restrictedUnit) {
// Variable Declarations
unit lv_u;
unitgroup lv_unitGroup;
point lv_minionPosition;
// Automatic Variable Declarations
unitgroup autoBBCB82D8_g;
int autoBBCB82D8_u;
// Variable Initialization
lv_unitGroup = UnitGroupEmpty();
// Implementation
autoBBCB82D8_g = libNtve_gf_UnitsInRegionWithAllianceToPlayerMatchingCondition(null, "", "", UnitGetOwner(lp_creep), c_unitAllianceEnemy, RegionCircle(lp_position, lp_maximumRange), UnitFilter((1 << c_targetFilterHeroic) | (1 << c_targetFilterVisible), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly) | (1 << c_targetFilterStructure) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoBBCB82D8_u = UnitGroupCount(autoBBCB82D8_g, c_unitCountAll);
for (;; autoBBCB82D8_u -= 1) {
lv_u = UnitGroupUnitFromEnd(autoBBCB82D8_g, autoBBCB82D8_u);
if (lv_u == null) { break; }
if ((DistanceBetweenPoints(lp_position, UnitGetPosition(lv_u)) >= lp_minimumRange) && (lv_u != lp_restrictedUnit)) {
UnitGroupAdd(lv_unitGroup, lv_u);
}
}
return UnitGroupUnit(lv_unitGroup, RandomInt(1, UnitGroupCount(lv_unitGroup, c_unitCountAll)));
}
int libMapM_gf_JungleGetCampIndexFromDefenderIndex (int lp_defenderIndex) {
// Variable Declarations
int lv_itCamp;
// Automatic Variable Declarations
int autoFFD97303_ae;
const int autoFFD97303_ai = 1;
// Variable Initialization
// Implementation
autoFFD97303_ae = libMapM_gv_jungleNumberOfCreepCamps;
lv_itCamp = 1;
for ( ; ( (autoFFD97303_ai >= 0 && lv_itCamp <= autoFFD97303_ae) || (autoFFD97303_ai < 0 && lv_itCamp >= autoFFD97303_ae) ) ; lv_itCamp += autoFFD97303_ai ) {
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIDefenderAIIndex == lp_defenderIndex)) {
return lv_itCamp;
}
}
return 0;
}
void libMapM_gf_JungleUpdateTextTagForCamp (int lp_camp) {
// Variable Declarations
int lv_campType;
int lv_defenderType;
text lv_titleText;
text lv_subText;
text lv_descText;
text lv_subTextBlue;
text lv_subTextRed;
text lv_formattedTitleText;
text lv_formattedTitleTextBlue;
text lv_formattedTitleTextRed;
text lv_playerNameText;
text lv_playerNameTextBlue;
text lv_playerNameTextRed;
text lv_debugDamageText;
// Automatic Variable Declarations
// Variable Initialization
lv_campType = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampType;
lv_defenderType = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType;
lv_titleText = StringExternal("Param/Value/lib_MapM_72002658");
lv_subText = StringToText("");
lv_descText = StringExternal("Param/Value/lib_MapM_2B2EEB9C");
lv_subTextBlue = StringToText("");
lv_subTextRed = StringToText("");
lv_formattedTitleText = StringToText("");
lv_formattedTitleTextBlue = StringToText("");
lv_formattedTitleTextRed = StringToText("");
lv_playerNameText = StringToText("");
lv_playerNameTextBlue = StringToText("");
lv_playerNameTextRed = StringToText("");
lv_debugDamageText = StringToText("");
// Implementation
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_stateIsEnabled == false)) {
return ;
}
if ((libMapM_gv_dataJungleCampDefenderData[lv_defenderType].lv_customTextTagTitle != null)) {
lv_titleText = libMapM_gv_dataJungleCampDefenderData[lv_defenderType].lv_customTextTagTitle;
}
else if ((lv_defenderType == libMapM_ge_JungleCampDefenderTypes_Doubloons)) {
lv_titleText = StringExternal("Param/Value/lib_MapM_DD393591");
}
else if (((lv_defenderType == libMapM_ge_JungleCampDefenderTypes_SiegeGiants) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_SiegeCamp1) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_SiegeCamp2) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_SiegeCamp3))) {
lv_titleText = StringExternal("Param/Value/lib_MapM_15277F20");
}
else if (((lv_defenderType == libMapM_ge_JungleCampDefenderTypes_Knights) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_BruiserCamp1) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_BruiserCamp2) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_BruiserCamp3))) {
lv_titleText = StringExternal("Param/Value/lib_MapM_994B5E79");
}
else if (((lv_defenderType == libMapM_ge_JungleCampDefenderTypes_GraveGolem) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp1) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp2) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp3))) {
lv_titleText = StringExternal("Param/Value/lib_MapM_3BE90BC3");
}
if ((libMapM_gv_dataJungleCampDefenderData[lv_defenderType].lv_campIsElite == true)) {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel2[lp_camp], PlayerGroupAll(), "CampEliteStatus", "CampIsElite");
}
else {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel2[lp_camp], PlayerGroupAll(), "CampEliteStatus", "CampNotElite");
}
if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_capturingPlayer >= 1) && (libMapM_gv_jungleCreepCamps[lp_camp].lv_capturingPlayer <= libCore_gv_bALMaxPlayers))) {
TextExpressionSetToken("Param/Expression/lib_MapM_50C2893A", "A", PlayerName(libMapM_gv_jungleCreepCamps[lp_camp].lv_capturingPlayer));
lv_playerNameText = TextExpressionAssemble("Param/Expression/lib_MapM_50C2893A");
}
if ((TimerGetRemaining(libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCreepRespawnTimer) > 0.0)) {
TextExpressionSetToken("Param/Expression/lib_MapM_A9F1CFD7", "A", TextTimeFormat(StringToText("<mintotal/>:<sec2/>"), FixedToInt(TimerGetRemaining(libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCreepRespawnTimer))));
lv_subText = TextExpressionAssemble("Param/Expression/lib_MapM_A9F1CFD7");
TextExpressionSetToken("Param/Expression/lib_MapM_5E46FF3A", "B", lv_titleText);
TextExpressionSetToken("Param/Expression/lib_MapM_5E46FF3A", "A", TextTimeFormat(StringToText("<mintotal/>:<sec2/>"), FixedToInt(TimerGetRemaining(libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCreepRespawnTimer))));
ActorSendAsText(libNtve_gf_MainActorofUnit(libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit), TextExpressionAssemble("Param/Expression/lib_MapM_5E46FF3A"));
}
if ((libMapM_gv_dataJungleCampDefenderData[lv_defenderType].lv_customTextTagInfoText != null)) {
lv_descText = libMapM_gv_dataJungleCampDefenderData[lv_defenderType].lv_customTextTagInfoText;
}
else if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderDamagesCoreOnCapture == true)) {
lv_descText = StringExternal("Param/Value/lib_MapM_F93FF8F2");
}
else if (((lv_campType == libMapM_ge_JungleCampTypes_DoubloonCamp) || (lv_campType == libMapM_ge_JungleCampTypes_DoubloonSmallCamp))) {
lv_descText = StringExternal("Param/Value/lib_MapM_39EC2271");
}
else if (((lv_defenderType == libMapM_ge_JungleCampDefenderTypes_GraveGolem) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp1) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp2) || (lv_defenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp3))) {
lv_descText = StringExternal("Param/Value/lib_MapM_FEC29940");
}
if ((libCore_gv_dEBUGDebuggingEnabled == true) && (libSprt_gv_dEBUGMapTextEnabled == true)) {
TextExpressionSetToken("Param/Expression/lib_MapM_80E63651", "A", IntToText(FixedToInt(libMapM_gv_jungleCreepCamps[lp_camp].lv_statTrackingDamageDoneByLastCapture)));
lv_debugDamageText = TextExpressionAssemble("Param/Expression/lib_MapM_80E63651");
}
if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_capturingPlayer >= 1) && (libMapM_gv_jungleCreepCamps[lp_camp].lv_capturingPlayer <= libCore_gv_bALMaxPlayers))) {
if ((libGame_gf_TeamNumberOfPlayer(libMapM_gv_jungleCreepCamps[lp_camp].lv_capturingPlayer) == libGame_gv_teamOrderIndex_C)) {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_camp], libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false), "TeamCaptured", "BlueTeam");
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_camp], libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false), "TeamCaptured", "RedTeam");
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_camp], PlayerGroupSingle(libCore_gv_oBSERVER_ObserverUIPlayer), "TeamCaptured", "BlueTeam");
}
else {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_camp], libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false), "TeamCaptured", "RedTeam");
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_camp], libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false), "TeamCaptured", "BlueTeam");
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_camp], PlayerGroupSingle(libCore_gv_oBSERVER_ObserverUIPlayer), "TeamCaptured", "RedTeam");
}
if ((TimerGetRemaining(libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCreepRespawnTimer) > 0.0)) {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Description[lp_camp], PlayerGroupAll(), "ShowHideDescription", "HideDesc");
}
else {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Description[lp_camp], PlayerGroupAll(), "ShowHideDescription", "ShowDesc");
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_camp], PlayerGroupAll(), "TeamCaptured", "CapturedReset");
}
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Timer[lp_camp], lv_subText, PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Title[lp_camp], lv_titleText, PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_PlayerName[lp_camp], lv_playerNameText, PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Description[lp_camp], lv_descText, PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Debug[lp_camp], lv_debugDamageText, PlayerGroupAll());
}
else {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_camp], PlayerGroupAll(), "TeamCaptured", "NotCaptured");
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Timer[lp_camp], lv_subText, PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Title[lp_camp], lv_titleText, PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_PlayerName[lp_camp], lv_playerNameText, PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Description[lp_camp], lv_descText, PlayerGroupAll());
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Debug[lp_camp], lv_debugDamageText, PlayerGroupAll());
}
}
void libMapM_gf_JungleSwitchToTextTagForCamp (int lp_camp) {
// Automatic Variable Declarations
// Implementation
libMapM_gf_JungleUpdateTextTagForCamp(lp_camp);
}
void libMapM_gf_JungleUpdateMinimapTooltipForCamp (int lp_camp) {
// Variable Declarations
int lv_campDisplayLevel;
text lv_titleText;
// Automatic Variable Declarations
// Variable Initialization
lv_titleText = StringExternal("Param/Value/lib_MapM_460B0FE1");
// Implementation
lv_campDisplayLevel = libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCampLevel[libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCurrentDefenderScalingTicks];
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCampTypeMinimapTitle != null)) {
lv_titleText = libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCampTypeMinimapTitle;
}
else if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_Doubloons)) {
lv_titleText = StringExternal("Param/Value/lib_MapM_311EBDDD");
}
else if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_SiegeGiants) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_SiegeCamp1) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_SiegeCamp2) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_SiegeCamp3))) {
lv_titleText = StringExternal("Param/Value/lib_MapM_A4569F3A");
}
else if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_Knights) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BruiserCamp1) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BruiserCamp2) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BruiserCamp3))) {
lv_titleText = StringExternal("Param/Value/lib_MapM_90B4C6A7");
}
else if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_GraveGolem) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp1) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp2) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp3))) {
lv_titleText = StringExternal("Param/Value/lib_MapM_A9458433");
}
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCampTypeMinimapLabel != null)) {
TextExpressionSetToken("Param/Expression/lib_MapM_A2B826DD", "A", lv_titleText);
TextExpressionSetToken("Param/Expression/lib_MapM_A2B826DD", "B", libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCampTypeMinimapLabel);
ActorSendAsText(libNtve_gf_MainActorofUnit(libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit), TextExpressionAssemble("Param/Expression/lib_MapM_A2B826DD"));
}
else {
TextExpressionSetToken("Param/Expression/lib_MapM_BA00E7C6", "A", lv_titleText);
ActorSendAsText(libNtve_gf_MainActorofUnit(libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit), TextExpressionAssemble("Param/Expression/lib_MapM_BA00E7C6"));
}
}
trigger auto_libMapM_gf_JungleRespawnCreepsForCamp_Trigger = null;
int auto_libMapM_gf_JungleRespawnCreepsForCamp_lp_camp;
void libMapM_gf_JungleRespawnCreepsForCamp (int lp_camp) {
auto_libMapM_gf_JungleRespawnCreepsForCamp_lp_camp = lp_camp;
if (auto_libMapM_gf_JungleRespawnCreepsForCamp_Trigger == null) {
auto_libMapM_gf_JungleRespawnCreepsForCamp_Trigger = TriggerCreate("auto_libMapM_gf_JungleRespawnCreepsForCamp_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_JungleRespawnCreepsForCamp_Trigger, false, false);
}
bool auto_libMapM_gf_JungleRespawnCreepsForCamp_TriggerFunc (bool testConds, bool runActions) {
int lp_camp = auto_libMapM_gf_JungleRespawnCreepsForCamp_lp_camp;
// Variable Declarations
int lv_i;
fixed lv_StaggeredBirth;
unit lv_u;
region lv_aggroRegion;
string lv_icon;
int lv_heightOffset;
text lv_helperTextStart;
unitgroup lv_defenderGroup;
unit lv_newUnit;
// Automatic Variable Declarations
unitgroup auto10B8F53E_g;
int auto10B8F53E_u;
unitgroup autoB3DF04CC_g;
int autoB3DF04CC_u;
int auto9754AF77_ae;
const int auto9754AF77_ai = 1;
// Variable Initialization
lv_heightOffset = 4;
lv_defenderGroup = UnitGroupEmpty();
// Implementation
libNtve_gf_SendActorMessageToUnit(libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit, "SetMinimapVisibility 1");
auto10B8F53E_g = libAIAI_gf_DefenderGroup(libMapM_gv_jungleCreepCamps[lp_camp].lv_aIDefenderAIIndex);
auto10B8F53E_u = UnitGroupCount(auto10B8F53E_g, c_unitCountAll);
for (;; auto10B8F53E_u -= 1) {
lv_u = UnitGroupUnitFromEnd(auto10B8F53E_g, auto10B8F53E_u);
if (lv_u == null) { break; }
UnitRemove(lv_u);
}
autoB3DF04CC_g = libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCoweringDeadUnitGroup;
autoB3DF04CC_u = UnitGroupCount(autoB3DF04CC_g, c_unitCountAll);
for (;; autoB3DF04CC_u -= 1) {
lv_u = UnitGroupUnitFromEnd(autoB3DF04CC_g, autoB3DF04CC_u);
if (lv_u == null) { break; }
libNtve_gf_SendActorMessageToGameRegion(RegionCircle(UnitGetPosition(lv_u), 2.0), "Signal CreepCleanup");
UnitRemove(lv_u);
}
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderDefendersBribedCount = 0;
UnitGroupClear(libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderUnitGroup);
Wait(0.125, c_timeGame);
auto9754AF77_ae = libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderNumberofCreeps;
lv_i = 1;
for ( ; ( (auto9754AF77_ai >= 0 && lv_i <= auto9754AF77_ae) || (auto9754AF77_ai < 0 && lv_i >= auto9754AF77_ae) ) ; lv_i += auto9754AF77_ai ) {
libNtve_gf_CreateUnitsAtPoint2(1, libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderUnitTypes[lv_i], c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Hostile, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataDefenderSpawnPoints[lv_i], null);
lv_newUnit = UnitLastCreated();
UnitGroupAdd(lv_defenderGroup, lv_newUnit);
UnitGroupAdd(libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderUnitGroup, lv_newUnit);
UnitSetCustomValue(lv_newUnit, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_JungleDefenderCreepCampIndex), IntToFixed(lp_camp));
UnitSetCustomValue(lv_newUnit, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_JungleDefenderCreepUnitIndex), IntToFixed(lv_i));
UnitBehaviorAdd(lv_newUnit, "JungleMercDefenderBirthInvulnerability", lv_newUnit, 1);
libGame_gf_SendEventJungleCampDefenderCreated(lv_newUnit);
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCoweringUnit[lv_i] == true)) {
UnitGroupAdd(libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCoweringLivingUnitGroup, lv_newUnit);
}
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderDefendersHaveStaggeredBirth == true)) {
if ((libAIAI_gv_defenderAI[lp_camp].lv_aggoRegion == null)) {
UnitBehaviorAdd(lv_newUnit, "JungleCreepBenign", lv_newUnit, 1);
}
UnitBehaviorAdd(lv_newUnit, "JungleCreepPassive", lv_newUnit, 1);
UnitBehaviorSetDurationRemaining(lv_newUnit, "JungleMercDefenderBirthInvulnerability", (UnitBehaviorDuration(lv_newUnit, "JungleMercDefenderBirthInvulnerability") - lv_StaggeredBirth));
lv_StaggeredBirth += libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderDefendersStaggeredBirthPeriod;
Wait(libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderDefendersStaggeredBirthPeriod, c_timeGame);
}
}
libAIAI_gf_StartDefenderAI(false, lv_defenderGroup, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataDefenderLeashRegion, lv_aggroRegion, true);
libMapM_gv_jungleCreepCamps[lp_camp].lv_aIDefenderAIIndex = libAIAI_gf_LastCreatedDefenderAI();
AIAddMercenaryCamp(UnitGetPosition(libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCircleOfPowerUnit), lv_defenderGroup, libMapM_gv_jungleCreepCamps[lp_camp].lv_aICampGoalLink);
libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCurrentDefenderScalingTicks = 0;
libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCurrentMercScalingTicks = 0;
libGame_gf_JungleUpdateScalingForCamp(lp_camp, libGame_gv_scalingTicks);
libGame_gf_SendEventJungleCampSpawning(lp_camp);
Wait((libMapM_gv_bALJungleBirthDelay - lv_StaggeredBirth), c_timeGame);
if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampType == libMapM_ge_JungleCampTypes_MercCamp) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampType == libMapM_ge_JungleCampTypes_DoubloonCamp))) {
UnitSetOwner(libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit, 0, true);
libNtve_gf_SendActorMessageToGameRegion(libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataDefenderLeashRegion, "Signal OwnerNeutral");
}
libMapM_gf_JungleTransitionCampIntoState(lp_camp, libMapM_ge_JungleCampStates_Idle);
lv_icon = libMapM_gf_JungleGetCurrentIconForJungleCamp(lp_camp, true);
libNtve_gf_SendActorMessageToUnit(libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit, "MinimapIcon " + lv_icon);
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), (("MinimapIconScale " + FixedToString(libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMinimapIconScale, c_fixedPrecisionAny))));
libMapM_gf_CreateSnapshotOfUnitForBothTeams(libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit);
libMapM_gf_JungleSwitchToTextTagForCamp(lp_camp);
libMapM_gf_JungleUpdateMinimapTooltipForCamp(lp_camp);
libGame_gf_SendEventJungleCampSpawned(lp_camp);
return true;
}
void libMapM_gf_JungleDebugResetCamp (int lp_Player, int lp_Camp) {
int init_i;
// Variable Declarations
int[libMapM_gv_jungleMaxCamps + 1] lv_infoPanel;
int lv_titleText;
int lv_subTimerText;
int lv_descText;
text lv_playerNameText;
// Automatic Variable Declarations
// Variable Initialization
for (init_i = 0; init_i <= libMapM_gv_jungleMaxCamps; init_i += 1) {
lv_infoPanel[init_i] = c_invalidDialogControlId;
}
lv_titleText = c_invalidDialogControlId;
lv_subTimerText = c_invalidDialogControlId;
lv_descText = c_invalidDialogControlId;
lv_playerNameText = StringToText("");
// Implementation
libCore_gf_DataLootContentLoadBannerDataIntoIndex("NeutralMercCamp", libCore_gv_cOMPUTER_Hostile);
UnitCreate(1, "LootBannerSconce", c_unitCreateIgnorePlacement, libGame_gf_ComputerPlayerInTeam(libGame_gf_TeamNumberOfPlayer(lp_Player)), libMapM_gv_jungleCreepCamps[lp_Camp].lv_campOwnershipFlagPosition, 270.0, null);
libMapM_gv_jungleCreepCamps[lp_Camp].lv_campOwnershipFlagUnit = UnitLastCreated();
libMapM_gf_JungleDropLootBannerinMercCamp(lp_Camp, PlayerGroupSingle(lp_Player));
DialogControlDestroy(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_Camp]);
DialogCreate(1, 1, c_anchorTop, 0, 0, true);
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsDialog[lp_Camp] = DialogLastCreated();
DialogSetPositionRelativeToUnitWithAnchor(DialogLastCreated(), libMapM_gv_jungleCreepCamps[lp_Camp].lv_campOwnershipFlagUnit, "Ref_Overhead", c_anchorCenter, 0, 0);
DialogControlCreate(DialogLastCreated(), c_triggerControlTypePanel);
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCamp_PositionControl[lp_Camp] = DialogControlLastCreated();
DialogControlHookupStandard(c_triggerControlTypePanel, "UIContainer/FullscreenLowerContainer/MercCampPanel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsParentPanel = DialogControlLastCreated();
DialogControlCreateInPanelFromTemplate(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsParentPanel, c_triggerControlTypePanel, "JungleCampInfoPanel/JungleCampInfoPanelTemplate");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_Camp] = DialogControlLastCreated();
lv_infoPanel[lp_Camp] = DialogControlLastCreated();
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), true);
DialogControlSetPositionRelative(DialogControlLastCreated(), PlayerGroupAll(), c_anchorCenter, libMapM_gv_uIJungleCampPanel.lv_jungleCreepCamp_PositionControl[lp_Camp], c_anchorBottom, 0, 0);
DialogControlHookup(lv_infoPanel[lp_Camp], c_triggerControlTypeLabel, "CampTimerLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Timer[lp_Camp] = DialogControlLastCreated();
DialogControlHookup(lv_infoPanel[lp_Camp], c_triggerControlTypeLabel, "CampTitleLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Title[lp_Camp] = DialogControlLastCreated();
DialogControlHookup(lv_infoPanel[lp_Camp], c_triggerControlTypeLabel, "PlayerNameLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_PlayerName[lp_Camp] = DialogControlLastCreated();
DialogControlHookup(lv_infoPanel[lp_Camp], c_triggerControlTypeLabel, "CampDescriptionLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Description[lp_Camp] = DialogControlLastCreated();
DialogControlHookup(lv_infoPanel[lp_Camp], c_triggerControlTypeLabel, "DebugLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Debug[lp_Camp] = DialogControlLastCreated();
DialogControlHookup(lv_infoPanel[lp_Camp], c_triggerControlTypeLabel, "CampEliteLabel");
libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel2[lp_Camp] = DialogControlLastCreated();
if (((lp_Player >= 1) && (lp_Player <= libCore_gv_bALMaxPlayers))) {
TextExpressionSetToken("Param/Expression/lib_MapM_104CCD72", "A", PlayerName(lp_Player));
lv_playerNameText = TextExpressionAssemble("Param/Expression/lib_MapM_104CCD72");
}
if (((lp_Player >= 1) && (lp_Player <= libCore_gv_bALMaxPlayers))) {
if ((libGame_gf_TeamNumberOfPlayer(lp_Player) == libGame_gv_teamOrderIndex_C)) {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_Camp], libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false), "TeamCaptured", "BlueTeam");
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_Camp], libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false), "TeamCaptured", "RedTeam");
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_Camp], PlayerGroupSingle(libCore_gv_oBSERVER_ObserverUIPlayer), "TeamCaptured", "BlueTeam");
}
else {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_Camp], libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false), "TeamCaptured", "RedTeam");
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_Camp], libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false), "TeamCaptured", "BlueTeam");
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_Camp], PlayerGroupSingle(libCore_gv_oBSERVER_ObserverUIPlayer), "TeamCaptured", "RedTeam");
}
if ((TimerGetRemaining(libMapM_gv_jungleCreepCamps[lp_Camp].lv_stateCreepRespawnTimer) > 0.0)) {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Description[lp_Camp], PlayerGroupAll(), "ShowHideDescription", "HideDesc");
}
else {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_Description[lp_Camp], PlayerGroupAll(), "ShowHideDescription", "ShowDesc");
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_Camp], PlayerGroupAll(), "TeamCaptured", "CapturedReset");
}
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_PlayerName[lp_Camp], lv_playerNameText, PlayerGroupAll());
}
else {
DialogControlSetAnimationState(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfoPanel[lp_Camp], PlayerGroupAll(), "TeamCaptured", "NotCaptured");
libNtve_gf_SetDialogItemText(libMapM_gv_uIJungleCampPanel.lv_jungleCreepCampsInfo_Label_PlayerName[lp_Camp], lv_playerNameText, PlayerGroupAll());
}
}
void libMapM_gf_JungleTransitionCampIntoState (int lp_camp, int lp_state) {
// Variable Declarations
unit lv_itUnit;
string lv_icon;
// Automatic Variable Declarations
int auto438F5FF1_val;
unitgroup auto11B9D48C_g;
int auto11B9D48C_u;
unitgroup auto0136C2BD_g;
int auto0136C2BD_u;
// Variable Initialization
// Implementation
libMapM_gv_jungleCreepCamps[lp_camp].lv_aIState = lp_state;
libMapM_gf_JungleSwitchToTextTagForCamp(lp_camp);
auto438F5FF1_val = lp_state;
if (auto438F5FF1_val == libMapM_ge_JungleCampStates_Idle) {
AIEnableMercenaryCamp(UnitGetPosition(libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCircleOfPowerUnit), true);
libGame_gf_JungleUpdateScalingForCamp(lp_camp, libGame_gv_scalingTicks);
}
else if (auto438F5FF1_val == libMapM_ge_JungleCampStates_Busy) {
libMapM_gv_jungleCreepCamps[lp_camp].lv_statTrackingDamageDoneByLastCapture = 0.0;
TimerPause(libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCreepRespawnTimer, true);
TimerPause(libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCreepBirthTimer, true);
}
else if (auto438F5FF1_val == libMapM_ge_JungleCampStates_Dead) {
AIRemoveMercenaryCamp(UnitGetPosition(libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCircleOfPowerUnit));
libMapM_gf_JungleSwitchToTextTagForCamp(lp_camp);
lv_icon = libMapM_gf_JungleGetCurrentIconForJungleCamp(lp_camp, false);
libNtve_gf_SendActorMessageToUnit(libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit, "MinimapIcon " + lv_icon);
libNtve_gf_SendActorMessageToUnit(UnitLastCreated(), (("MinimapIconScale " + FixedToString(libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMinimapIconScale, c_fixedPrecisionAny))));
if (((libMapM_gv_jungleAllCampsShouldBeHibernating == true) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_statePersonalHiberationisEnabled == true))) {
libMapM_gf_JungleTransitionCampIntoState(lp_camp, libMapM_ge_JungleCampStates_Hibernating);
}
}
else if (auto438F5FF1_val == libMapM_ge_JungleCampStates_Paused) {
auto11B9D48C_g = libAIAI_gf_DefenderGroup(libMapM_gv_jungleCreepCamps[lp_camp].lv_aIDefenderAIIndex);
auto11B9D48C_u = UnitGroupCount(auto11B9D48C_g, c_unitCountAll);
for (;; auto11B9D48C_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto11B9D48C_g, auto11B9D48C_u);
if (lv_itUnit == null) { break; }
UnitIssueOrder(lv_itUnit, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
}
}
else if (auto438F5FF1_val == libMapM_ge_JungleCampStates_Hibernating) {
AIEnableMercenaryCamp(UnitGetPosition(libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCircleOfPowerUnit), false);
auto0136C2BD_g = libAIAI_gf_DefenderGroup(libMapM_gv_jungleCreepCamps[lp_camp].lv_aIDefenderAIIndex);
auto0136C2BD_u = UnitGroupCount(auto0136C2BD_g, c_unitCountAll);
for (;; auto0136C2BD_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto0136C2BD_g, auto0136C2BD_u);
if (lv_itUnit == null) { break; }
libMapM_gf_JungleHibernateCampDefender(lv_itUnit);
}
ActorSend(libNtve_gf_MainActorofUnit(libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit), "SetMinimapVisibility");
libMapM_gf_JungleSwitchToTextTagForCamp(lp_camp);
}
else if (auto438F5FF1_val == libMapM_ge_JungleCampStates_HibernatingReadyToRespawn) {
libMapM_gf_JungleSwitchToTextTagForCamp(lp_camp);
}
else {
}
}
trigger auto_libMapM_gf_JungleHibernateCampDefender_Trigger = null;
unit auto_libMapM_gf_JungleHibernateCampDefender_lp_defender;
void libMapM_gf_JungleHibernateCampDefender (unit lp_defender) {
auto_libMapM_gf_JungleHibernateCampDefender_lp_defender = lp_defender;
if (auto_libMapM_gf_JungleHibernateCampDefender_Trigger == null) {
auto_libMapM_gf_JungleHibernateCampDefender_Trigger = TriggerCreate("auto_libMapM_gf_JungleHibernateCampDefender_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_JungleHibernateCampDefender_Trigger, false, false);
}
bool auto_libMapM_gf_JungleHibernateCampDefender_TriggerFunc (bool testConds, bool runActions) {
unit lp_defender = auto_libMapM_gf_JungleHibernateCampDefender_lp_defender;
// Automatic Variable Declarations
// Implementation
UnitIssueOrder(lp_defender, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
libNtve_gf_MakeUnitInvulnerable(lp_defender, true);
UnitSetState(lp_defender, c_unitStateTargetable, false);
UnitSetState(lp_defender, c_unitStateStatusBar, false);
UnitSetState(lp_defender, c_unitStateFidget, false);
UnitBehaviorRemoveCategory(lp_defender, c_behaviorCategoryReveal);
UnitBehaviorRemoveCategory(lp_defender, c_behaviorCategorySlow);
UnitBehaviorRemoveCategory(lp_defender, c_behaviorCategoryStun);
UnitBehaviorRemoveCategory(lp_defender, c_behaviorCategoryDamageOverTime);
UnitBehaviorAddPlayer(lp_defender, "GardensMercCampPreHibernator", UnitGetOwner(lp_defender), 1);
libNtve_gf_SendActorMessageToUnit(lp_defender, "SetOpacity 0.000000 2.500000");
Wait(0.125, c_timeGame);
libNtve_gf_SendActorMessageToUnit(lp_defender, "AnimSetPausedAll");
libNtve_gf_PauseUnit(lp_defender, true);
Wait(3.0, c_timeGame);
if ((libMapM_gv_jungleAllCampsShouldBeHibernating == true)) {
UnitBehaviorAddPlayer(lp_defender, "GardensMercCampHibernator", UnitGetOwner(lp_defender), 1);
}
return true;
}
trigger auto_libMapM_gf_JungleStopHibernatingCampDefender_Trigger = null;
unit auto_libMapM_gf_JungleStopHibernatingCampDefender_lp_defender;
point auto_libMapM_gf_JungleStopHibernatingCampDefender_lp_location;
void libMapM_gf_JungleStopHibernatingCampDefender (unit lp_defender, point lp_location) {
auto_libMapM_gf_JungleStopHibernatingCampDefender_lp_defender = lp_defender;
auto_libMapM_gf_JungleStopHibernatingCampDefender_lp_location = lp_location;
if (auto_libMapM_gf_JungleStopHibernatingCampDefender_Trigger == null) {
auto_libMapM_gf_JungleStopHibernatingCampDefender_Trigger = TriggerCreate("auto_libMapM_gf_JungleStopHibernatingCampDefender_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_JungleStopHibernatingCampDefender_Trigger, false, false);
}
bool auto_libMapM_gf_JungleStopHibernatingCampDefender_TriggerFunc (bool testConds, bool runActions) {
unit lp_defender = auto_libMapM_gf_JungleStopHibernatingCampDefender_lp_defender;
point lp_location = auto_libMapM_gf_JungleStopHibernatingCampDefender_lp_location;
// Variable Declarations
int lv_campDefenderType;
// Automatic Variable Declarations
// Variable Initialization
lv_campDefenderType = libMapM_gv_jungleCreepCamps[libMapM_gf_JungleGetJungleCampForUnit(lp_defender)].lv_mapDataCampDefenderType;
// Implementation
libNtve_gf_PauseUnit(lp_defender, false);
if ((UnitIsAlive(lp_defender) == true)) {
UnitSetPosition(lp_defender, lp_location, false);
UnitSetFacing(lp_defender, PointGetFacing(lp_location), 0.0);
}
UnitBehaviorRemove(lp_defender, "GardensMercCampHibernator", 1);
UnitBehaviorRemove(lp_defender, "GardensMercCampPreHibernator", 1);
libNtve_gf_SendActorMessageToUnit(lp_defender, "AnimSetPausedAll 0");
libNtve_gf_SendActorMessageToUnit(lp_defender, "SetOpacity 1.000000 2.000000");
Wait(2.0, c_timeGame);
libNtve_gf_MakeUnitInvulnerable(lp_defender, false);
UnitSetState(lp_defender, c_unitStateTargetable, true);
UnitSetState(lp_defender, c_unitStateStatusBar, true);
UnitSetState(lp_defender, c_unitStateFidget, true);
return true;
}
void libMapM_gf_JungleStartHibernateCamps () {
// Variable Declarations
int lv_itCamp;
// Automatic Variable Declarations
int autoF0D500E2_ae;
const int autoF0D500E2_ai = 1;
// Variable Initialization
// Implementation
libMapM_gv_jungleAllCampsShouldBeHibernating = true;
autoF0D500E2_ae = libMapM_gv_jungleNumberOfCreepCamps;
lv_itCamp = 1;
for ( ; ( (autoF0D500E2_ai >= 0 && lv_itCamp <= autoF0D500E2_ae) || (autoF0D500E2_ai < 0 && lv_itCamp >= autoF0D500E2_ae) ) ; lv_itCamp += autoF0D500E2_ai ) {
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIState != libMapM_ge_JungleCampStates_Busy) && (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIState != libMapM_ge_JungleCampStates_Paused)) {
libMapM_gf_JungleTransitionCampIntoState(lv_itCamp, libMapM_ge_JungleCampStates_Hibernating);
}
}
}
void libMapM_gf_JungleHibernateMatchingCamps (string lp_leaderUnitType) {
// Variable Declarations
int lv_itCamp;
// Automatic Variable Declarations
int auto98AE68D1_ae;
const int auto98AE68D1_ai = 1;
// Variable Initialization
// Implementation
auto98AE68D1_ae = libMapM_gv_jungleNumberOfCreepCamps;
lv_itCamp = 1;
for ( ; ( (auto98AE68D1_ai >= 0 && lv_itCamp <= auto98AE68D1_ae) || (auto98AE68D1_ai < 0 && lv_itCamp >= auto98AE68D1_ae) ) ; lv_itCamp += auto98AE68D1_ai ) {
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mercSpawnedMinionUnitType[1] == lp_leaderUnitType) && (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mercCampHibernateswhenmatchingcampsareactive == true)) {
libMapM_gv_jungleCreepCamps[lv_itCamp].lv_statePersonalHiberationisEnabled = true;
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIState != libMapM_ge_JungleCampStates_Busy) && (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIState != libMapM_ge_JungleCampStates_Paused)) {
libMapM_gf_JungleTransitionCampIntoState(lv_itCamp, libMapM_ge_JungleCampStates_Hibernating);
}
}
}
}
void libMapM_gf_JungleStopHibernateCamps () {
// Variable Declarations
int lv_itCamp;
int lv_itDefenderIndex;
unit lv_defenderUnit;
// Automatic Variable Declarations
int autoE0EA0DBF_ae;
const int autoE0EA0DBF_ai = 1;
int autoB7B3B98F_ae;
const int autoB7B3B98F_ai = 1;
// Variable Initialization
// Implementation
libMapM_gv_jungleAllCampsShouldBeHibernating = false;
TriggerEnable(libMapM_gt_JungleRespawnTimerTextTagCountdown, true);
autoE0EA0DBF_ae = libMapM_gv_jungleNumberOfCreepCamps;
lv_itCamp = 1;
for ( ; ( (autoE0EA0DBF_ai >= 0 && lv_itCamp <= autoE0EA0DBF_ae) || (autoE0EA0DBF_ai < 0 && lv_itCamp >= autoE0EA0DBF_ae) ) ; lv_itCamp += autoE0EA0DBF_ai ) {
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIState == libMapM_ge_JungleCampStates_Hibernating) && (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_statePersonalHiberationisEnabled == false)) {
autoB7B3B98F_ae = libMapM_gv_jungleCreepCamps[lv_itCamp].lv_defenderNumberofCreeps;
lv_itDefenderIndex = 1;
for ( ; ( (autoB7B3B98F_ai >= 0 && lv_itDefenderIndex <= autoB7B3B98F_ae) || (autoB7B3B98F_ai < 0 && lv_itDefenderIndex >= autoB7B3B98F_ae) ) ; lv_itDefenderIndex += autoB7B3B98F_ai ) {
lv_defenderUnit = libAIAI_gf_DefenderUnit(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIDefenderAIIndex, lv_itDefenderIndex);
libMapM_gf_JungleStopHibernatingCampDefender(lv_defenderUnit, libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mapDataDefenderSpawnPoints[lv_itDefenderIndex]);
}
if ((UnitGroupCount(libAIAI_gf_DefenderGroup(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIDefenderAIIndex), c_unitCountAlive) > 0)) {
ActorSend(libNtve_gf_MainActorofUnit(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campIconUnit), "SetMinimapVisibility 1");
libMapM_gf_JungleTransitionCampIntoState(lv_itCamp, libMapM_ge_JungleCampStates_Idle);
}
else {
if (((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mercLaneLastSpawnedIn[0] != 0) || (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mercLaneLastSpawnedIn[1] != 0) || (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mercLaneLastSpawnedIn[2] != 0))) {
ActorSend(libNtve_gf_MainActorofUnit(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campIconUnit), "SetMinimapVisibility 1");
}
libMapM_gf_JungleTransitionCampIntoState(lv_itCamp, libMapM_ge_JungleCampStates_Dead);
}
if ((UnitGroupCount(libAIAI_gf_DefenderGroup(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIDefenderAIIndex), c_unitCountAlive) > 0) && (UnitGroupCount(libAIAI_gf_DefenderGroup(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIDefenderAIIndex), c_unitCountAlive) < libMapM_gv_jungleCreepCamps[lv_itCamp].lv_defenderNumberofCreeps)) {
}
}
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIState == libMapM_ge_JungleCampStates_HibernatingReadyToRespawn)) {
ActorSend(libNtve_gf_MainActorofUnit(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campIconUnit), "SetMinimapVisibility 1");
libMapM_gf_JungleRespawnCreepsForCamp(lv_itCamp);
}
libMapM_gf_JungleSwitchToTextTagForCamp(lv_itCamp);
}
}
void libMapM_gf_JungleStopHibernateCampsByLeaderUnit (string lp_laningUnitType) {
// Variable Declarations
int lv_itCamp;
int lv_itDefenderIndex;
unit lv_defenderUnit;
// Automatic Variable Declarations
int auto2FB8170E_ae;
const int auto2FB8170E_ai = 1;
int auto0E6FFA74_ae;
const int auto0E6FFA74_ai = 1;
// Variable Initialization
// Implementation
auto2FB8170E_ae = libMapM_gv_jungleNumberOfCreepCamps;
lv_itCamp = 1;
for ( ; ( (auto2FB8170E_ai >= 0 && lv_itCamp <= auto2FB8170E_ae) || (auto2FB8170E_ai < 0 && lv_itCamp >= auto2FB8170E_ae) ) ; lv_itCamp += auto2FB8170E_ai ) {
if (((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mercSpawnedMinionUnitType[1] == lp_laningUnitType) || (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mercCampHibernateswhenmatchingcampsareactive == true))) {
libMapM_gv_jungleCreepCamps[lv_itCamp].lv_statePersonalHiberationisEnabled = false;
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIState == libMapM_ge_JungleCampStates_Hibernating) && (libMapM_gv_jungleAllCampsShouldBeHibernating == false)) {
auto0E6FFA74_ae = libMapM_gv_jungleCreepCamps[lv_itCamp].lv_defenderNumberofCreeps;
lv_itDefenderIndex = 1;
for ( ; ( (auto0E6FFA74_ai >= 0 && lv_itDefenderIndex <= auto0E6FFA74_ae) || (auto0E6FFA74_ai < 0 && lv_itDefenderIndex >= auto0E6FFA74_ae) ) ; lv_itDefenderIndex += auto0E6FFA74_ai ) {
lv_defenderUnit = libAIAI_gf_DefenderUnit(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIDefenderAIIndex, lv_itDefenderIndex);
libMapM_gf_JungleStopHibernatingCampDefender(lv_defenderUnit, libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mapDataDefenderSpawnPoints[lv_itDefenderIndex]);
}
ActorSend(libNtve_gf_MainActorofUnit(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campIconUnit), "SetMinimapVisibility 1");
if ((UnitGroupCount(libAIAI_gf_DefenderGroup(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIDefenderAIIndex), c_unitCountAlive) > 0)) {
libMapM_gf_JungleTransitionCampIntoState(lv_itCamp, libMapM_ge_JungleCampStates_Idle);
}
else {
libMapM_gf_JungleTransitionCampIntoState(lv_itCamp, libMapM_ge_JungleCampStates_Dead);
}
if ((UnitGroupCount(libAIAI_gf_DefenderGroup(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIDefenderAIIndex), c_unitCountAlive) > 0) && (UnitGroupCount(libAIAI_gf_DefenderGroup(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIDefenderAIIndex), c_unitCountAlive) < libMapM_gv_jungleCreepCamps[lv_itCamp].lv_defenderNumberofCreeps)) {
}
}
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIState == libMapM_ge_JungleCampStates_HibernatingReadyToRespawn)) {
ActorSend(libNtve_gf_MainActorofUnit(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campIconUnit), "SetMinimapVisibility 1");
libMapM_gf_JungleRespawnCreepsForCamp(lv_itCamp);
}
libMapM_gf_JungleSwitchToTextTagForCamp(lv_itCamp);
}
}
}
void libMapM_gf_JungleTurnOnCampCaptureBeacon (int lp_camp) {
// Automatic Variable Declarations
// Implementation
libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCaptureEnabled = true;
UnitSetOwner(libMapM_gv_jungleCreepCamps[lp_camp].lv_campIconUnit, 0, true);
UnitSetOwner(libMapM_gv_jungleCreepCamps[lp_camp].lv_campOwnershipFlagUnit, libCore_gv_cOMPUTER_Hostile, true);
libGame_gf_CapturePointEnable(libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCapturePointIndex);
libMapM_gf_JungleTransitionCampIntoState(lp_camp, libMapM_ge_JungleCampStates_Paused);
}
void libMapM_gf_JungleTurnOffCampCaptureBeacon (int lp_camp, int lp_owner) {
// Automatic Variable Declarations
// Implementation
libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCaptureEnabled = false;
UnitSetOwner(libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCircleOfPowerUnit, lp_owner, true);
libMapM_gf_JungleTransitionCampCaptureBeacontoHidden(lp_camp);
}
void libMapM_gf_JungleTransitionCampCaptureBeacontoHidden (int lp_camp) {
// Automatic Variable Declarations
// Implementation
libGame_gf_CapturePointDisable(libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCapturePointIndex);
}
void libMapM_gf_JungleGrantCaptureRewards (int lp_camp, int lp_owner, bool lp_hasMercLordTalent) {
// Variable Declarations
int lv_itPlayer;
unit lv_itUnit;
int lv_killingFaction;
string lv_campPortrait;
playergroup lv_creditGroup;
fixed lv_grantedXP;
fixed lv_captureRadiusScoreCredit;
// Automatic Variable Declarations
unitgroup auto65C1FEA2_g;
int auto65C1FEA2_u;
unitgroup auto6F574477_g;
int auto6F574477_u;
playergroup auto6FC0000D_g;
playergroup auto92E53E49_g;
playergroup auto7D3C6A92_g;
int auto9C82785C_val;
const int auto55464B3F_n = 3;
int auto55464B3F_i;
const int autoEFA847D9_n = 2;
int autoEFA847D9_i;
// Variable Initialization
lv_creditGroup = PlayerGroupEmpty();
lv_captureRadiusScoreCredit = (libMapM_gv_bALJungleCampCaptureRadius + 5.0);
// Implementation
if ((lp_owner == libCore_gv_cOMPUTER_TeamOrder)) {
libMapM_gv_jungleCreepCamps[lp_camp].lv_statTrackingOrderCaptures += 1;
lv_killingFaction = libGame_ge_Faction_Order;
}
else {
libMapM_gv_jungleCreepCamps[lp_camp].lv_statTrackingChaosCaptures += 1;
lv_killingFaction = libGame_ge_Faction_Chaos;
}
StatEventCreate("JungleCampCapture");
StatEventAddDataInt(StatEventLastCreated(), "CampID", lp_camp);
StatEventAddDataFixed(StatEventLastCreated(), "TeamID", libGame_gf_TeamNumberOfPlayer(lp_owner));
if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_GraveGolem) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp1) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp2) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp3))) {
StatEventAddDataString(StatEventLastCreated(), "CampType", "Boss Camp");
}
else if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_Knights) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BruiserCamp1) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BruiserCamp2) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BruiserCamp3))) {
StatEventAddDataString(StatEventLastCreated(), "CampType", "Bruiser Camp");
}
else if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_SiegeGiants) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_SiegeCamp1) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_SiegeCamp2) || (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_SiegeCamp3))) {
StatEventAddDataString(StatEventLastCreated(), "CampType", "Siege Camp");
}
else if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_Doubloons))) {
StatEventAddDataString(StatEventLastCreated(), "CampType", "Doubloons Camp");
}
else if (((libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_Custom))) {
StatEventAddDataString(StatEventLastCreated(), "CampType", "Custom");
}
else if (true) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_6D547B1E"), true);
StatEventAddDataString(StatEventLastCreated(), "CampType", "Other");
}
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventSend(StatEventLastCreated());
auto65C1FEA2_g = UnitGroupSearch(null, lp_owner, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, lv_captureRadiusScoreCredit, libCore_gv_filtersHeroicAllyorPlayerandnotHallucinationorBenign, 0);
auto65C1FEA2_u = UnitGroupCount(auto65C1FEA2_g, c_unitCountAll);
for (;; auto65C1FEA2_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto65C1FEA2_g, auto65C1FEA2_u);
if (lv_itUnit == null) { break; }
PlayerGroupAdd(lv_creditGroup, UnitGetOwner(lv_itUnit));
}
auto6F574477_g = UnitGroupSearch("HeroGall", lp_owner, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, lv_captureRadiusScoreCredit, libCore_gv_filtersHeroicjustexcludingMissile, 0);
auto6F574477_u = UnitGroupCount(auto6F574477_g, c_unitCountAll);
for (;; auto6F574477_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto6F574477_g, auto6F574477_u);
if (lv_itUnit == null) { break; }
PlayerGroupAdd(lv_creditGroup, UnitGetOwner(lv_itUnit));
}
lv_grantedXP = UnitXPGetCurrentXP(libMapM_gv_jungleCreepCamps[lp_camp].lv_campOwnershipFlagUnit, null);
lv_grantedXP += libMapM_gv_dataJungleCampDefenderData[(libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampDefenderType)].lv_xPAwardForCapture;
auto6FC0000D_g = lv_creditGroup;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto6FC0000D_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
libGame_gf_AddtoAwardValue(lv_itPlayer, 1.0, libGame_ge_SecondaryAwards_Headhunter);
libGame_gv_scoreValues[lv_itPlayer].lv_creepCampsCaptured += 1;
UnitCreateEffectUnit(libGame_gv_players[lv_itPlayer].lv_heroUnit, "JungleCampCaptureParticipationSet", libGame_gv_players[lv_itPlayer].lv_heroUnit);
libSond_gf_HeroVOStartCelebrateVOTimerForPlayer(lv_itPlayer, lv_creditGroup);
libGame_gf_ScoreValuesRecordXPContributionForPlayer(lv_itPlayer, (lv_grantedXP / PlayerGroupCount(lv_creditGroup)), false);
}
if ((libCore_gv_dEBUGSoloXPOn == true)) {
auto7D3C6A92_g = lv_creditGroup;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto7D3C6A92_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
libGame_gf_GrantXPToPlayer(lv_grantedXP, lv_itPlayer, libGame_ge_XPSources_Creep);
libUIUI_gf_UIFloatingCombatTextH16MidXP(lv_itPlayer, libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCircleOfPowerUnit, libCore_ge_FloatingTextType_XPMedium, FixedToInt(lv_grantedXP));
}
}
else {
auto92E53E49_g = libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lp_owner), false);
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto92E53E49_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
libGame_gf_GrantXPToPlayer(lv_grantedXP, lv_itPlayer, libGame_ge_XPSources_Creep);
libUIUI_gf_UIFloatingCombatTextH16MidXP(lv_itPlayer, libMapM_gv_jungleCreepCamps[lp_camp].lv_captureCircleOfPowerUnit, libCore_ge_FloatingTextType_XPMedium, FixedToInt(lv_grantedXP));
}
}
UnitXPSetCurrentXP(libMapM_gv_jungleCreepCamps[lp_camp].lv_campOwnershipFlagUnit, null, 0.0);
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_campAwardsRegenGlobe == true)) {
if ((lp_owner == libCore_gv_cOMPUTER_TeamOrder)) {
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RegenGlobe", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_TeamOrder, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, null);
}
else {
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RegenGlobe", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_TeamChaos, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, null);
}
}
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderDefendersBribedCount == libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderNumberofCreeps)) {
TimerStart(libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCreepRespawnTimer, (libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderRespawnTime / 2.0), false, c_timeGame);
TimerStart(libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCreepBirthTimer, ((libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderRespawnTime / 2) - libMapM_gv_bALJungleBirthDelay), false, c_timeGame);
}
else {
TimerStart(libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCreepRespawnTimer, libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderRespawnTime, false, c_timeGame);
TimerStart(libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCreepBirthTimer, (libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderRespawnTime - libMapM_gv_bALJungleBirthDelay), false, c_timeGame);
}
libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderDefendersBribedCount = 0;
libMapM_gf_JungleTransitionCampIntoState(lp_camp, libMapM_ge_JungleCampStates_Dead);
libMapM_gf_JungleDropLootBannerinMercCamp(lp_camp, lv_creditGroup);
libGame_gf_SendEventMercCampRewardGranted(lp_owner, lp_camp);
auto9C82785C_val = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampType;
if (auto9C82785C_val == libMapM_ge_JungleCampTypes_MercCamp) {
libGame_gv_teams[libGame_gf_TeamNumberOfPlayer(lp_owner)].lv_map_MercCampCaptures += 1;
libMapM_gf_JungleMercCampCapturedAnnouncement(lp_camp, lp_owner);
libMapM_gf_JungleSpawnMercMinions(lp_camp, lp_owner, lp_hasMercLordTalent);
}
else if (auto9C82785C_val == libMapM_ge_JungleCampTypes_DoubloonCamp) {
libMapM_gf_JungleMercCampCapturedAnnouncement(lp_camp, lp_owner);
for (auto55464B3F_i = 1; auto55464B3F_i <= auto55464B3F_n; auto55464B3F_i += 1) {
PlayerCreateEffectPoint(libCore_gv_cOMPUTER_Neutral, "DropCannonballsPersistent", libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint);
}
}
else if (auto9C82785C_val == libMapM_ge_JungleCampTypes_DoubloonSmallCamp) {
for (autoEFA847D9_i = 1; autoEFA847D9_i <= autoEFA847D9_n; autoEFA847D9_i += 1) {
PlayerCreateEffectPoint(libCore_gv_cOMPUTER_Neutral, "DropCannonballsPersistent", libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint);
}
}
else if (auto9C82785C_val == libMapM_ge_JungleCampTypes_TryMeCamp) {
}
else {
}
}
void libMapM_gf_JungleMercCampCapturedAnnouncement (int lp_camp, int lp_owner) {
// Variable Declarations
int lv_mercType;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_mercType = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMercSpawnType;
if ((lp_owner == libCore_gv_cOMPUTER_TeamOrder)) {
MinimapPing(libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroup, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, 5.0, Color(0.00, 33.33, 100.00));
MinimapPing(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroup, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, 5.0, Color(100.00, 0.00, 0.00));
MinimapPing(libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, 5.0, Color(0.00, 33.33, 100.00));
SoundtrackPlay(libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroup, c_soundtrackCategoryMusic, "MX_Stinger_MercCampTaken_Ally", c_soundtrackCueAny, c_soundtrackIndexAny, false);
SoundtrackPlay(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroup, c_soundtrackCategoryMusic, "MX_Stinger_MercCampTaken_Enemy", c_soundtrackCueAny, c_soundtrackIndexAny, false);
SoundPlayForPlayer(SoundLink("UI_Game_Ping_MercCampCaptured_Ally", -1), lp_owner, libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroup, 100.0, 0.0);
SoundPlayForPlayer(SoundLink("UI_Game_Ping_MercCampCaptured_Enemy", -1), lp_owner, libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroup, 100.0, 0.0);
}
else {
MinimapPing(libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroup, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, 5.0, Color(100.00, 0.00, 0.00));
MinimapPing(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroup, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, 5.0, Color(0.00, 33.33, 100.00));
MinimapPing(libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint, 5.0, Color(100.00, 0.00, 0.00));
SoundtrackPlay(libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroup, c_soundtrackCategoryMusic, "MX_Stinger_MercCampTaken_Enemy", c_soundtrackCueAny, c_soundtrackIndexAny, false);
SoundtrackPlay(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroup, c_soundtrackCategoryMusic, "MX_Stinger_MercCampTaken_Ally", c_soundtrackCueAny, c_soundtrackIndexAny, false);
SoundPlayForPlayer(SoundLink("UI_Game_Ping_MercCampCaptured_Enemy", -1), lp_owner, libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroup, 100.0, 0.0);
SoundPlayForPlayer(SoundLink("UI_Game_Ping_MercCampCaptured_Ally", -1), lp_owner, libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroup, 100.0, 0.0);
}
}
void libMapM_gf_JungleSpawnMercMinions (int lp_camp, int lp_owner, bool lp_hasMercLordTalent) {
// Variable Declarations
int lv_team;
point lv_spawnPoint;
int lv_mercTypeIndex;
int lv_scalingTicks;
int lv_i;
unit lv_minion;
int lv_waveIndex;
int lv_lane;
int lv_waypoint;
unit lv_spawnHelperUnit;
bool lv_knightHasAlreadyBeenCreated;
fixed lv_staggeredBirthi;
// Automatic Variable Declarations
int autoB70C7584_ae;
const int autoB70C7584_ai = 1;
string auto0937F60E_val;
// Variable Initialization
lv_team = libGame_gf_TeamNumberOfPlayer(lp_owner);
lv_spawnPoint = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataCampCaptainSpawnPoint;
lv_mercTypeIndex = (libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMercSpawnType);
lv_scalingTicks = libMapM_gv_jungleCreepCamps[lp_camp].lv_stateCurrentMercScalingTicks;
// Implementation
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderSuppressActiveLanerCounter == false)) {
libMapM_gv_jungleNumberOfActiveMercGroups += 1;
}
autoB70C7584_ae = libMapM_gv_jungleCreepCamps[lp_camp].lv_mercNumberOfMinionsSpawned;
lv_i = 1;
for ( ; ( (autoB70C7584_ai >= 0 && lv_i <= autoB70C7584_ae) || (autoB70C7584_ai < 0 && lv_i >= autoB70C7584_ae) ) ; lv_i += autoB70C7584_ai ) {
if ((libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderDefendersCoweronDeath == true)) {
lv_spawnHelperUnit = UnitGroupRandomUnit(libMapM_gv_jungleCreepCamps[lp_camp].lv_defenderCoweringDeadUnitGroup, c_unitCountAlive);
if ((UnitIsValid(lv_spawnHelperUnit) == true)) {
libNtve_gf_SendActorMessageToGameRegion(RegionCircle(UnitGetPosition(lv_spawnHelperUnit), 2.0), "Signal CreepCleanup");
UnitCreate(1, libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionUnitType[lv_i], c_unitCreateIgnorePlacement, lp_owner, UnitGetPosition(lv_spawnHelperUnit), UnitGetFacing(lv_spawnHelperUnit), null);
UnitRemove(lv_spawnHelperUnit);
}
else {
UnitCreate(1, libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionUnitType[lv_i], c_unitCreateIgnorePlacement, lp_owner, lv_spawnPoint, PointGetFacing(lv_spawnPoint), null);
}
}
else {
UnitCreate(1, libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionUnitType[lv_i], c_unitCreateIgnorePlacement, lp_owner, libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataDefenderSpawnPoints[lv_i], PointGetFacing(libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataDefenderSpawnPoints[lv_i]), null);
}
lv_minion = UnitLastCreated();
libGame_gf_SendEventJungleCampLanerCreated(lv_minion);
libGame_gf_UpdateScalingForUnit(lv_minion, lv_scalingTicks, 0);
if ((lp_hasMercLordTalent == true)) {
auto0937F60E_val = UnitGetType(lv_minion);
if (auto0937F60E_val == "MercLanerSiegeGiant") {
UnitBehaviorAdd(lv_minion, "TalentMercenaryLordGiantBuff", lv_minion, 1);
}
else if (auto0937F60E_val == "MercLanerMeleeKnight") {
UnitBehaviorAdd(lv_minion, "TalentMercenaryLordKnightBuff", lv_minion, 1);
}
else if (auto0937F60E_val == "MercLanerRangedMage") {
UnitBehaviorAdd(lv_minion, "TalentMercenaryLordKnightBuff", lv_minion, 1);
}
else {
}
}
if ((UnitGetType(lv_minion) == "MercLanerRangedMage")) {
libNtve_gf_SendActorMessageToUnit(lv_minion, "Signal Captured");
}
if ((UnitGetType(lv_minion) == libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionUnitType[1])) {
libMapM_gf_JungleHibernateMatchingCamps(libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionUnitType[1]);
}
if ((UnitGetType(lv_minion) == "MercLanerMeleeKnight") && (lv_knightHasAlreadyBeenCreated == false)) {
libNtve_gf_SendActorMessageToUnit(lv_minion, "Signal Captured");
lv_knightHasAlreadyBeenCreated = true;
}
UnitSetCustomValue(lv_minion, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_JungleLanerCreepCampIndex), IntToFixed(lp_camp));
UnitSetCustomValue(lv_minion, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_MercLanerGroupIndex), IntToFixed(libMapM_gv_jungleNumberOfActiveMercGroups));
UnitSetCustomValue(lv_minion, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_AIThreatBase), libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionAIThreatValueforAITeamDelegateSystem[lv_i]);
UnitGroupAdd(libMapM_gv_jungleMiniMapIconGroup[libMapM_gv_jungleNumberOfActiveMercGroups], lv_minion);
lv_lane = libMapM_gv_jungleCreepCamps[lp_camp].lv_mercLaneToSpawnIn[lv_team];
libMapM_gv_jungleCreepCamps[lp_camp].lv_mercLaneLastSpawnedIn[lv_team] = libMapM_gv_jungleCreepCamps[lp_camp].lv_mercLaneToSpawnIn[lv_team];
lv_waypoint = libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnFirstWaypointIndex[lv_team];
libAIAI_gf_MinionAIStartMinionAI(-1, lv_minion, lv_lane, lv_waypoint, true, false, false, 0, false);
libAIAI_gf_AITeamDelegateAddRemoveMercLanertoLane(lv_team, lv_lane, libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionUnitType[lv_i], libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Add, libMapM_gv_jungleCreepCamps[lp_camp].lv_mercSpawnedMinionAIThreatValueforAITeamDelegateSystem[lv_i]);
}
libMapM_gf_JungleSetMiniMapIconForMercMinions(lp_camp, libMapM_gv_jungleNumberOfActiveMercGroups, libMapM_gf_JungleGetPortraitForJungleCamp(lp_camp), libMapM_gv_jungleMiniMapIconGroup[libMapM_gv_jungleNumberOfActiveMercGroups]);
libMapM_gf_JungleCreateMercPath(libMapM_gv_jungleMiniMapLeader[libMapM_gv_jungleNumberOfActiveMercGroups], true);
}
int libMapM_gf_JungleGetMercCampForUnit (unit lp_unit) {
// Automatic Variable Declarations
// Implementation
return FixedToInt(UnitGetCustomValue(lp_unit, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_JungleLanerCreepCampIndex)));
}
int libMapM_gf_JungleGetMercLanerGroupForUnit (unit lp_unit) {
// Variable Declarations
int lv_i;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
return FixedToInt(UnitGetCustomValue(lp_unit, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_MercLanerGroupIndex)));
}
trigger auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_Trigger = null;
int auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_camp;
int auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_mercGroupIndex;
string auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_mercUnitMiniMapModel;
unitgroup auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_mercUnitGroup;
void libMapM_gf_JungleSetMiniMapIconForMercMinions (int lp_camp, int lp_mercGroupIndex, string lp_mercUnitMiniMapModel, unitgroup lp_mercUnitGroup) {
auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_camp = lp_camp;
auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_mercGroupIndex = lp_mercGroupIndex;
auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_mercUnitMiniMapModel = lp_mercUnitMiniMapModel;
auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_mercUnitGroup = lp_mercUnitGroup;
if (auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_Trigger == null) {
auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_Trigger = TriggerCreate("auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_Trigger, false, false);
}
bool auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_TriggerFunc (bool testConds, bool runActions) {
int lp_camp = auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_camp;
int lp_mercGroupIndex = auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_mercGroupIndex;
string lp_mercUnitMiniMapModel = auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_mercUnitMiniMapModel;
unitgroup lp_mercUnitGroup = auto_libMapM_gf_JungleSetMiniMapIconForMercMinions_lp_mercUnitGroup;
// Variable Declarations
string lv_image;
bool lv_newLeaderFound;
unit lv_minimapUnit;
// Automatic Variable Declarations
unitgroup auto26E1C0A8_g;
int auto26E1C0A8_u;
unit auto26E1C0A8_var;
int auto34E8BF10_val;
// Variable Initialization
// Implementation
auto26E1C0A8_g = lp_mercUnitGroup;
auto26E1C0A8_u = UnitGroupCount(auto26E1C0A8_g, c_unitCountAll);
for (;; auto26E1C0A8_u -= 1) {
auto26E1C0A8_var = UnitGroupUnitFromEnd(auto26E1C0A8_g, auto26E1C0A8_u);
if (auto26E1C0A8_var == null) { break; }
lv_minimapUnit = auto26E1C0A8_var;
if ((lv_newLeaderFound == false)) {
lv_newLeaderFound = true;
libMapM_gv_jungleMiniMapLeader[lp_mercGroupIndex] = auto26E1C0A8_var;
UnitBehaviorAdd(auto26E1C0A8_var, "MinionDeathMonitor", auto26E1C0A8_var, 1);
auto34E8BF10_val = libMapM_gv_jungleCreepCamps[lp_camp].lv_mapDataMercSpawnType;
if (auto34E8BF10_val == libMapM_ge_JungleCampMercTypes_SiegeGiants) {
libNtve_gf_SendActorMessageToUnit(lv_minimapUnit, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_mercenary.dds");
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_8E3779D5"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampMercTypes_SiegeCamp1) {
libNtve_gf_SendActorMessageToUnit(lv_minimapUnit, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_mercenary.dds");
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_7FB3A831"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampMercTypes_SiegeCamp2) {
libNtve_gf_SendActorMessageToUnit(lv_minimapUnit, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_mercenary.dds");
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_F4E1C8D1"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampDefenderTypes_SiegeCamp3) {
libNtve_gf_SendActorMessageToUnit(lv_minimapUnit, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_mercenary.dds");
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_CB9A9D3E"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampDefenderTypes_Knights) {
libNtve_gf_SendActorMessageToUnit(lv_minimapUnit, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_elitemercenary.dds");
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_49D61AB4"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampDefenderTypes_BruiserCamp1) {
libNtve_gf_SendActorMessageToUnit(lv_minimapUnit, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_elitemercenary.dds");
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_B9FDC66D"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampDefenderTypes_BruiserCamp2) {
libNtve_gf_SendActorMessageToUnit(lv_minimapUnit, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_elitemercenary.dds");
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_5B2FAFC8"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampDefenderTypes_BruiserCamp3) {
libNtve_gf_SendActorMessageToUnit(lv_minimapUnit, "MinimapIcon Assets\\Textures\\storm_ui_minimapicon_elitemercenary.dds");
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_CD9E7E1E"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampDefenderTypes_GraveGolem) {
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_D62042C6"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampDefenderTypes_BossCamp1) {
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_D029BC7F"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampDefenderTypes_BossCamp2) {
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_8D474A01"));
}
else if (auto34E8BF10_val == libMapM_ge_JungleCampDefenderTypes_BossCamp3) {
ActorSendAsText(libNtve_gf_MainActorofUnit(lv_minimapUnit), TextExpressionAssemble("Param/Expression/lib_MapM_35E9B245"));
}
else {
}
}
else {
libNtve_gf_SendActorMessageToUnit(lv_minimapUnit, "MinimapIcon Assets\\Textures\\blank.dds");
libNtve_gf_SendActorMessageToUnit(lv_minimapUnit, "MinimapIconBackground Assets\\Textures\\blank.dds");
}
}
return true;
}
void libMapM_gf_JungleCreateMercPath (unit lp_mercLeader, bool lp_newPath) {
// Variable Declarations
int lv_mercLanerGroup;
int lv_waveIndex;
int lv_currentLane;
int lv_itWaypoint;
const fixed lv_pingDuration = 0.75;
// Automatic Variable Declarations
int autoB97B7772_val;
// Variable Initialization
lv_mercLanerGroup = libMapM_gf_JungleGetMercLanerGroupForUnit(lp_mercLeader);
// Implementation
if ((UnitIsAlive(lp_mercLeader) == false)) {
return ;
}
lv_waveIndex = FixedToInt(UnitGetCustomValue(lp_mercLeader, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_MinionIndex)));
lv_currentLane = libAIAI_gf_MinionAIGetLaneForMinion(lp_mercLeader);
lv_itWaypoint = libAIAI_gf_MinionAIGetNextWaypointIndexForMinion(lp_mercLeader);
if ((lp_newPath == false)) {
if ((libMapM_gv_jungleMiniMapPathCurrentIndex[lv_mercLanerGroup] < libMapM_gv_jungleMiniMapPathIndexMaximum[lv_mercLanerGroup])) {
PathSetWayPointIndexStart(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], libMapM_gv_jungleMiniMapPathCurrentIndex[lv_mercLanerGroup]);
}
else if ((libMapM_gv_jungleMiniMapPathCurrentIndex[lv_mercLanerGroup] >= libMapM_gv_jungleMiniMapPathIndexMaximum[lv_mercLanerGroup])) {
PathDestroy(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup]);
PathCreateForUnit(PlayerGroupAll(), lp_mercLeader);
libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup] = PathLastCreated();
PathSetVisible(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], c_pathLocationWorld, false);
PathSetOwnerPlayerId(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], UnitGetOwner(lp_mercLeader));
PathSetDestinationUnit(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], libGame_gv_teams[libAIAI_gf_MinionAIGetTeamToAttackForMinion(lp_mercLeader)].lv_core);
}
return ;
}
else {
if ((libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup] != 0)) {
PathClearWayPoints(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup]);
PathDestroy(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup]);
}
libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup] = 0;
libMapM_gv_jungleMiniMapPathCurrentIndex[lv_mercLanerGroup] = 1;
libMapM_gv_jungleMiniMapPathIndexMaximum[lv_mercLanerGroup] = 1;
}
PathCreateForUnit(PlayerGroupAll(), lp_mercLeader);
PathSetLineTexture(PathLastCreated(), c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup] = PathLastCreated();
PathSetVisible(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], c_pathLocationWorld, false);
autoB97B7772_val = libAIAI_gf_MinionAIGetTeamToAttackForMinion(lp_mercLeader);
if (autoB97B7772_val == libGame_gv_teamChaosIndex_C) {
PathSetOwnerPlayerId(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], libCore_gv_cOMPUTER_TeamOrder);
PathSetDestinationUnit(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_core);
while ((lv_itWaypoint < (libGame_gv_laneData[lv_currentLane].lv_waypointCount - 1))) {
PathAddWayPoint(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint]);
libMapM_gv_jungleMiniMapPathIndexMaximum[lv_mercLanerGroup] += 1;
if ((lp_newPath == true)) {
libNtve_gf_CreatePingFacingAngleWithType(libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroup, "StormPingArrow", libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], ColorWithAlpha(0.00, 0.00, 100.00, 0.00), lv_pingDuration, AngleBetweenPoints(libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], libGame_gv_laneData[lv_currentLane].lv_waypoints[(lv_itWaypoint + 1)]), -1, -1);
PingSetScale(PingLastCreated(), 0.3);
libNtve_gf_CreatePingFacingAngleWithType(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroup, "StormPingArrow", libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], ColorWithAlpha(100.00, 0.00, 0.00, 0.00), lv_pingDuration, AngleBetweenPoints(libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], libGame_gv_laneData[lv_currentLane].lv_waypoints[(lv_itWaypoint + 1)]), -1, -1);
PingSetScale(PingLastCreated(), 0.3);
libNtve_gf_CreatePingFacingAngleWithType(libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], "StormPingArrow", libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], ColorWithAlpha(0.00, 0.00, 100.00, 0.00), lv_pingDuration, AngleBetweenPoints(libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], libGame_gv_laneData[lv_currentLane].lv_waypoints[(lv_itWaypoint + 1)]), -1, -1);
PingSetScale(PingLastCreated(), 0.3);
}
lv_itWaypoint += 1;
}
}
else if (autoB97B7772_val == libGame_gv_teamOrderIndex_C) {
PathSetOwnerPlayerId(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], libCore_gv_cOMPUTER_TeamChaos);
PathSetDestinationUnit(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_core);
while ((lv_itWaypoint > 1)) {
PathAddWayPoint(libMapM_gv_jungleMiniMapPath[lv_mercLanerGroup], libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint]);
libMapM_gv_jungleMiniMapPathIndexMaximum[lv_mercLanerGroup] += 1;
if ((lp_newPath == true)) {
libNtve_gf_CreatePingFacingAngleWithType(libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroup, "StormPingArrow", libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], ColorWithAlpha(100.00, 0.00, 0.00, 0.00), lv_pingDuration, AngleBetweenPoints(libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], libGame_gv_laneData[lv_currentLane].lv_waypoints[(lv_itWaypoint - 1)]), -1, -1);
PingSetScale(PingLastCreated(), 0.3);
libNtve_gf_CreatePingFacingAngleWithType(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroup, "StormPingArrow", libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], ColorWithAlpha(0.00, 0.00, 100.00, 0.00), lv_pingDuration, AngleBetweenPoints(libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], libGame_gv_laneData[lv_currentLane].lv_waypoints[(lv_itWaypoint - 1)]), -1, -1);
PingSetScale(PingLastCreated(), 0.3);
libNtve_gf_CreatePingFacingAngleWithType(libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], "StormPingArrow", libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], ColorWithAlpha(100.00, 0.00, 0.00, 0.00), lv_pingDuration, AngleBetweenPoints(libGame_gv_laneData[lv_currentLane].lv_waypoints[lv_itWaypoint], libGame_gv_laneData[lv_currentLane].lv_waypoints[(lv_itWaypoint - 1)]), -1, -1);
PingSetScale(PingLastCreated(), 0.3);
}
lv_itWaypoint -= 1;
}
}
else {
}
}
void libMapM_gf_JungleDropLootBannerinMercCamp (int lp_campIndex, playergroup lp_creditPlayerGroup) {
// Variable Declarations
unit lv_sconceUnit;
int lv_randomPlayerInCreditGroup;
// Automatic Variable Declarations
// Variable Initialization
lv_sconceUnit = libMapM_gv_jungleCreepCamps[lp_campIndex].lv_campOwnershipFlagUnit;
// Implementation
if ((PlayerGroupCount(lp_creditPlayerGroup) > 0)) {
lv_randomPlayerInCreditGroup = PlayerGroupPlayer(lp_creditPlayerGroup, RandomInt(1, PlayerGroupCount(lp_creditPlayerGroup)));
libMapM_gv_jungleCreepCamps[lp_campIndex].lv_capturingPlayer = lv_randomPlayerInCreditGroup;
libGame_gf_DropLootBannerinSconce(lv_sconceUnit, libGame_gv_players[lv_randomPlayerInCreditGroup].lv_lootContent.lv_loot_Banner.lv_bannerID, lv_randomPlayerInCreditGroup, false);
}
}
void libMapM_gf_JungleUpdateMercDamageTracker (int lp_camp, fixed lp_damageDealt) {
// Automatic Variable Declarations
// Implementation
libMapM_gv_jungleCreepCamps[lp_camp].lv_statTrackingDamageDoneByLastCapture += lp_damageDealt;
}
void libMapM_gf_MapMechanicAdd (string lp_mechanic, trigger lp_initializeCallback) {
// Automatic Variable Declarations
// Implementation
if ((GameTestConfigType() == 1)) {
return ;
}
if ((libMapM_gv_mapMechanicControllerActor == null)) {
libNtve_gf_CreateActorAtPoint("MMController", RegionGetCenter(RegionEntireMap()));
libMapM_gv_mapMechanicControllerActor = libNtve_gf_ActorLastCreated();
}
if ((libMapM_gf_MapMechanicExistsOnMap(lp_mechanic) == true)) {
return ;
}
libMapM_gv_mapMechanicsCount += 1;
libMapM_gv_mapMechanics[libMapM_gv_mapMechanicsCount] = lp_mechanic;
libMapM_gv_mapMechanicsInitCallbacks[libMapM_gv_mapMechanicsCount] = lp_initializeCallback;
libGame_gf_SendEventMapMechanicInitialization(lp_mechanic);
}
int libMapM_gf_MapMechanicIndex (string lp_mechanic) {
// Variable Declarations
int lv_itMechanic;
// Automatic Variable Declarations
int auto332ED446_ae;
const int auto332ED446_ai = 1;
// Variable Initialization
// Implementation
auto332ED446_ae = libMapM_gv_mapMechanicsCount;
lv_itMechanic = 1;
for ( ; ( (auto332ED446_ai >= 0 && lv_itMechanic <= auto332ED446_ae) || (auto332ED446_ai < 0 && lv_itMechanic >= auto332ED446_ae) ) ; lv_itMechanic += auto332ED446_ai ) {
if ((libMapM_gv_mapMechanics[lv_itMechanic] == lp_mechanic)) {
return lv_itMechanic;
}
}
return 0;
}
bool libMapM_gf_MapMechanicExistsOnMap (string lp_mechanic) {
// Automatic Variable Declarations
// Implementation
return (libMapM_gf_MapMechanicIndex(lp_mechanic) > 0);
}
string libMapM_gf_PrimaryMapMechanic () {
// Automatic Variable Declarations
// Implementation
return libMapM_gv_mapMechanics[1];
}
trigger auto_libMapM_gf_PlayMapMechanicIntroForPlayer_Trigger = null;
int auto_libMapM_gf_PlayMapMechanicIntroForPlayer_lp_player;
string auto_libMapM_gf_PlayMapMechanicIntroForPlayer_lp_cutscene;
string auto_libMapM_gf_PlayMapMechanicIntroForPlayer_lp_filter;
void libMapM_gf_PlayMapMechanicIntroForPlayer (int lp_player, string lp_cutscene, string lp_filter) {
auto_libMapM_gf_PlayMapMechanicIntroForPlayer_lp_player = lp_player;
auto_libMapM_gf_PlayMapMechanicIntroForPlayer_lp_cutscene = lp_cutscene;
auto_libMapM_gf_PlayMapMechanicIntroForPlayer_lp_filter = lp_filter;
if (auto_libMapM_gf_PlayMapMechanicIntroForPlayer_Trigger == null) {
auto_libMapM_gf_PlayMapMechanicIntroForPlayer_Trigger = TriggerCreate("auto_libMapM_gf_PlayMapMechanicIntroForPlayer_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_PlayMapMechanicIntroForPlayer_Trigger, false, false);
}
bool auto_libMapM_gf_PlayMapMechanicIntroForPlayer_TriggerFunc (bool testConds, bool runActions) {
int lp_player = auto_libMapM_gf_PlayMapMechanicIntroForPlayer_lp_player;
string lp_cutscene = auto_libMapM_gf_PlayMapMechanicIntroForPlayer_lp_cutscene;
string lp_filter = auto_libMapM_gf_PlayMapMechanicIntroForPlayer_lp_filter;
// Variable Declarations
fixed lv_fadeDuration;
int lv_itPlayer;
// Automatic Variable Declarations
playergroup autoA1C853BF_g;
playergroup auto341C65FA_g;
// Variable Initialization
// Implementation
TriggerEnable(libMapM_gt_MMIntroCutsceneStart, true);
TriggerEnable(libMapM_gt_MMIntroCutsceneEnd, true);
libGame_gv_players[lp_player].lv_heroSpawnReady = true;
libMapM_gv_mMIntroCutsceneFinished[lp_player] = false;
libNtve_gf_CinematicMode(true, libCore_gv_playerGroupFromPlayer[lp_player], c_transitionDurationImmediate);
SoundChannelMute(libCore_gv_playerGroupFromPlayer[lp_player], c_soundCategoryReady, true);
SoundChannelMute(libCore_gv_playerGroupFromPlayer[lp_player], c_soundCategoryBuild, true);
SoundChannelMute(libCore_gv_playerGroupFromPlayer[lp_player], c_soundCategoryVoice, true);
SoundChannelMute(libCore_gv_playerGroupFromPlayer[lp_player], c_soundCategoryAlert, true);
CutsceneFade(false, 0.0, Color(0,0,0), 0.0, libCore_gv_playerGroupFromPlayer[lp_player], true);
libStEx_gf_TurnCinematicCameraOnOff(lp_player, true);
autoA1C853BF_g = PlayerGroupAll();
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(autoA1C853BF_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
if ((lv_itPlayer != lp_player) && (libNtve_gf_PlayerIsEnemy(lp_player, lv_itPlayer, libNtve_ge_PlayerRelation_Ally) == true)) {
PlayerSetAlliance(lp_player, c_allianceIdVision, lv_itPlayer, false);
}
}
VisRevealerCreate(lp_player, RegionEntireMap());
CutsceneCreateNoPosition(lp_cutscene, libCore_gv_playerGroupFromPlayer[lp_player], false);
libMapM_gv_mMIntroCutscene[lp_player] = CutsceneLastCreated();
if ((StringLength(lp_filter) > 0)) {
CutsceneAddFilter(CutsceneLastCreated(), lp_filter);
}
CutscenePlay(libMapM_gv_mMIntroCutscene[lp_player]);
libMapM_gv_mMIntroCutscenePlayer = lp_player;
TriggerExecute(libMapM_gt_MMIntroSkippable, true, true);
if ((libMapM_gv_mMIntroCutsceneCompleted[lp_player] == false)) {
lv_fadeDuration = 0.75;
CutsceneFade(false, lv_fadeDuration, Color(0,0,0), 0.0, libCore_gv_playerGroupFromPlayer[lp_player], false);
libStEx_gf_CinematicFade(false, lv_fadeDuration, Color(0.00, 0.00, 0.00), lp_player);
Wait(lv_fadeDuration, c_timeGame);
}
CutsceneStop(libMapM_gv_mMIntroCutscene[lp_player]);
VisRevealerEnable(VisRevealerLastCreated(), false);
VisRevealerDestroy(VisRevealerLastCreated());
libMapM_gv_mMIntroCutsceneFinished[lp_player] = true;
libGame_gf_AnnouncementClearQueueForPlayer(lp_player);
SoundChannelMute(libCore_gv_playerGroupFromPlayer[lp_player], c_soundCategoryReady, false);
SoundChannelMute(libCore_gv_playerGroupFromPlayer[lp_player], c_soundCategoryBuild, false);
SoundChannelMute(libCore_gv_playerGroupFromPlayer[lp_player], c_soundCategoryVoice, false);
SoundChannelMute(libCore_gv_playerGroupFromPlayer[lp_player], c_soundCategoryAlert, false);
auto341C65FA_g = PlayerGroupAll();
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto341C65FA_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
if ((lv_itPlayer != lp_player) && (libNtve_gf_PlayerIsEnemy(lp_player, lv_itPlayer, libNtve_ge_PlayerRelation_Ally) == true)) {
PlayerSetAlliance(lp_player, c_allianceIdVision, lv_itPlayer, true);
}
}
libStEx_gf_CinematicModeTutorial(false, libCore_gv_playerGroupFromPlayer[lp_player], 1.0);
libStEx_gf_TurnCinematicCameraOnOff(lp_player, false);
libUIUI_gf_UIGameUIShowHideConsolePanelForPlayer(false, lp_player);
lv_fadeDuration = 1.5;
if ((libNtve_gf_UnitGroupIsDead(libGame_gv_players[lp_player].lv_heroUnitGroup) == true)) {
CutsceneFade(true, lv_fadeDuration, Color(0,0,0), 0.0, libCore_gv_playerGroupFromPlayer[lp_player], false);
libStEx_gf_CinematicFade(true, lv_fadeDuration, Color(0.00, 0.00, 0.00), lp_player);
Wait(lv_fadeDuration, c_timeGame);
}
else {
UISetMode(libCore_gv_playerGroupFromPlayer[lp_player], c_uiModeConsole, lv_fadeDuration);
CutsceneFade(true, lv_fadeDuration, Color(0,0,0), 0.0, libCore_gv_playerGroupFromPlayer[lp_player], false);
libStEx_gf_CinematicFade(true, lv_fadeDuration, Color(0.00, 0.00, 0.00), lp_player);
Wait(0.5, c_timeGame);
UnitGroupSelect(libGame_gv_players[lp_player].lv_heroUnitGroup, lp_player, true);
UISetMode(libCore_gv_playerGroupFromPlayer[lp_player], c_uiModeConsole, c_transitionDurationImmediate);
libUIUI_gf_UIPartyFrameShowHidePartyFramePanelForPlayer(true, lp_player);
libUIUI_gf_UIGameUIShowHideConsolePanelForPlayer(true, lp_player);
Wait((lv_fadeDuration - 0.5), c_timeGame);
}
libGame_gv_players[lp_player].lv_heroSpawnReady = true;
return true;
}
bool libMapM_gf_MapMechanicIntroFinished (int lp_player) {
// Automatic Variable Declarations
// Implementation
return libMapM_gv_mMIntroCutsceneFinished[lp_player];
}
trigger auto_libMapM_gf_MapMechanicDisplayAnnouncement_Trigger = null;
text auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_announcement;
bool auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_writeOut;
fixed auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_writeOutDuration;
fixed auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_duration;
int auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_allyOption;
playergroup auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_players;
void libMapM_gf_MapMechanicDisplayAnnouncement (text lp_announcement, bool lp_writeOut, fixed lp_writeOutDuration, fixed lp_duration, int lp_allyOption, playergroup lp_players) {
auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_announcement = lp_announcement;
auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_writeOut = lp_writeOut;
auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_writeOutDuration = lp_writeOutDuration;
auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_duration = lp_duration;
auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_allyOption = lp_allyOption;
auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_players = lp_players;
if (auto_libMapM_gf_MapMechanicDisplayAnnouncement_Trigger == null) {
auto_libMapM_gf_MapMechanicDisplayAnnouncement_Trigger = TriggerCreate("auto_libMapM_gf_MapMechanicDisplayAnnouncement_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MapMechanicDisplayAnnouncement_Trigger, false, false);
}
bool auto_libMapM_gf_MapMechanicDisplayAnnouncement_TriggerFunc (bool testConds, bool runActions) {
text lp_announcement = auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_announcement;
bool lp_writeOut = auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_writeOut;
fixed lp_writeOutDuration = auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_writeOutDuration;
fixed lp_duration = auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_duration;
int lp_allyOption = auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_allyOption;
playergroup lp_players = auto_libMapM_gf_MapMechanicDisplayAnnouncement_lp_players;
// Variable Declarations
text lv_msg;
int lv_dlg;
// Automatic Variable Declarations
int auto2C408549_val;
// Variable Initialization
lv_dlg = c_invalidDialogId;
// Implementation
if ((libMapM_gv_mMAnnouncementDialog != c_invalidDialogId)) {
DialogDestroy(libMapM_gv_mMAnnouncementDialog);
}
DialogCreate(1000, 200, c_anchorTop, 0, 175, false);
libMapM_gv_mMAnnouncementDialog = DialogLastCreated();
lv_dlg = DialogLastCreated();
DialogSetImageVisible(DialogLastCreated(), false);
DialogSetVisible(DialogLastCreated(), lp_players, true);
auto2C408549_val = lp_allyOption;
if (auto2C408549_val == libMapM_ge_MapMechanicAnnouncementAllyOptions_Neutral) {
lv_msg = (StringExternal("Param/Value/lib_MapM_4015ADE0") + lp_announcement + StringExternal("Param/Value/lib_MapM_56C0DA48"));
}
else if (auto2C408549_val == libMapM_ge_MapMechanicAnnouncementAllyOptions_Ally) {
lv_msg = (StringExternal("Param/Value/lib_MapM_66ADAE20") + lp_announcement + StringExternal("Param/Value/lib_MapM_41E4D92B"));
}
else if (auto2C408549_val == libMapM_ge_MapMechanicAnnouncementAllyOptions_Enemy) {
lv_msg = (StringExternal("Param/Value/lib_MapM_C0DA83FE") + lp_announcement + StringExternal("Param/Value/lib_MapM_FE1E01CF"));
}
else {
}
SoundPlay(SoundLink("UI_CampaignHintNotify", -1), lp_players, 100.0, 0.0);
libNtve_gf_CreateDialogItemLabel(DialogLastCreated(), 200, 50, c_anchorCenter, 0, 0, lv_msg, ColorWithAlpha(0,0,0,0), lp_writeOut, lp_writeOutDuration);
DialogControlSetFullDialog(DialogControlLastCreated(), lp_players, true);
libNtve_gf_SetDialogItemStyle(DialogControlLastCreated(), "Storm_Map_Announcement", lp_players);
Wait(lp_duration, c_timeGame);
if ((libMapM_gv_mMAnnouncementDialog != lv_dlg)) {
return true;
}
DialogControlFadeTransparency(DialogControlLastCreated(), lp_players, 2.0, 100.0);
Wait(2.0, c_timeGame);
if ((libMapM_gv_mMAnnouncementDialog != lv_dlg)) {
return true;
}
DialogDestroy(DialogLastCreated());
libMapM_gv_mMAnnouncementDialog = c_invalidDialogId;
return true;
}
void libMapM_gf_MapMechanicDisplayAnnouncementWait (text lp_announcement, bool lp_writeOut, fixed lp_writeOutDuration, fixed lp_duration, int lp_allyOption, playergroup lp_players, bool lp_waitOption) {
// Variable Declarations
text lv_msg;
int lv_dlg;
// Automatic Variable Declarations
int auto96FC6928_val;
// Variable Initialization
lv_dlg = c_invalidDialogId;
// Implementation
DialogCreate(1000, 200, c_anchorTop, 0, 175, false);
lv_dlg = DialogLastCreated();
DialogSetImageVisible(DialogLastCreated(), false);
DialogSetVisible(DialogLastCreated(), lp_players, true);
auto96FC6928_val = lp_allyOption;
if (auto96FC6928_val == libMapM_ge_MapMechanicAnnouncementAllyOptions_Neutral) {
TextExpressionSetToken("Param/Expression/lib_MapM_3C60D2C9", "A", lp_announcement);
lv_msg = TextExpressionAssemble("Param/Expression/lib_MapM_3C60D2C9");
}
else if (auto96FC6928_val == libMapM_ge_MapMechanicAnnouncementAllyOptions_Ally) {
TextExpressionSetToken("Param/Expression/lib_MapM_34434C06", "A", lp_announcement);
lv_msg = TextExpressionAssemble("Param/Expression/lib_MapM_34434C06");
}
else if (auto96FC6928_val == libMapM_ge_MapMechanicAnnouncementAllyOptions_Enemy) {
TextExpressionSetToken("Param/Expression/lib_MapM_BEB89D60", "A", lp_announcement);
lv_msg = TextExpressionAssemble("Param/Expression/lib_MapM_BEB89D60");
}
else {
}
SoundPlay(SoundLink("UI_CampaignHintNotify", -1), lp_players, 100.0, 0.0);
TextExpressionSetToken("Param/Expression/lib_MapM_3319AAA3", "A", lp_announcement);
libNtve_gf_CreateDialogItemLabel(DialogLastCreated(), 200, 50, c_anchorCenter, 0, 0, TextExpressionAssemble("Param/Expression/lib_MapM_3319AAA3"), ColorWithAlpha(0,0,0,0), lp_writeOut, lp_writeOutDuration);
DialogControlSetFullDialog(DialogControlLastCreated(), lp_players, true);
libNtve_gf_SetDialogItemStyle(DialogControlLastCreated(), "Storm_Map_Announcement", lp_players);
libMapM_gf_MMAnnouncementClearnup(lv_dlg, DialogControlLastCreated(), lp_duration, lp_players);
}
trigger auto_libMapM_gf_MMAnnouncementClearnup_Trigger = null;
int auto_libMapM_gf_MMAnnouncementClearnup_lp_dlg;
int auto_libMapM_gf_MMAnnouncementClearnup_lp_label;
fixed auto_libMapM_gf_MMAnnouncementClearnup_lp_duration;
playergroup auto_libMapM_gf_MMAnnouncementClearnup_lp_players;
void libMapM_gf_MMAnnouncementClearnup (int lp_dlg, int lp_label, fixed lp_duration, playergroup lp_players) {
auto_libMapM_gf_MMAnnouncementClearnup_lp_dlg = lp_dlg;
auto_libMapM_gf_MMAnnouncementClearnup_lp_label = lp_label;
auto_libMapM_gf_MMAnnouncementClearnup_lp_duration = lp_duration;
auto_libMapM_gf_MMAnnouncementClearnup_lp_players = lp_players;
if (auto_libMapM_gf_MMAnnouncementClearnup_Trigger == null) {
auto_libMapM_gf_MMAnnouncementClearnup_Trigger = TriggerCreate("auto_libMapM_gf_MMAnnouncementClearnup_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMAnnouncementClearnup_Trigger, false, false);
}
bool auto_libMapM_gf_MMAnnouncementClearnup_TriggerFunc (bool testConds, bool runActions) {
int lp_dlg = auto_libMapM_gf_MMAnnouncementClearnup_lp_dlg;
int lp_label = auto_libMapM_gf_MMAnnouncementClearnup_lp_label;
fixed lp_duration = auto_libMapM_gf_MMAnnouncementClearnup_lp_duration;
playergroup lp_players = auto_libMapM_gf_MMAnnouncementClearnup_lp_players;
// Automatic Variable Declarations
// Implementation
Wait(lp_duration, c_timeGame);
DialogControlFadeTransparency(lp_label, lp_players, 2.0, 100.0);
Wait(2.0, c_timeGame);
DialogDestroy(lp_dlg);
return true;
}
trigger auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_Trigger = null;
text auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_announcement;
bool auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_writeOut;
fixed auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_writeOutDuration;
fixed auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_duration;
int auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_allyOption;
playergroup auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_players;
void libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed (text lp_announcement, bool lp_writeOut, fixed lp_writeOutDuration, fixed lp_duration, int lp_allyOption, playergroup lp_players) {
auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_announcement = lp_announcement;
auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_writeOut = lp_writeOut;
auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_writeOutDuration = lp_writeOutDuration;
auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_duration = lp_duration;
auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_allyOption = lp_allyOption;
auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_players = lp_players;
if (auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_Trigger == null) {
auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_Trigger = TriggerCreate("auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_Trigger, false, false);
}
bool auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_TriggerFunc (bool testConds, bool runActions) {
text lp_announcement = auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_announcement;
bool lp_writeOut = auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_writeOut;
fixed lp_writeOutDuration = auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_writeOutDuration;
fixed lp_duration = auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_duration;
int lp_allyOption = auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_allyOption;
playergroup lp_players = auto_libMapM_gf_MapMechanicDisplayAnnouncementMultipleAllowed_lp_players;
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
playergroup autoD023F6D3_g;
// Variable Initialization
// Implementation
autoD023F6D3_g = lp_players;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(autoD023F6D3_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
libMapM_gf_MMAnnouncementMultiplePerPlayer(lv_itPlayer, lp_announcement, lp_writeOut, lp_writeOutDuration, lp_duration, lp_allyOption);
}
return true;
}
trigger auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_Trigger = null;
int auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_player;
text auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_announcement;
bool auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_writeOut;
fixed auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_writeOutDuration;
fixed auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_duration;
int auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_allyOption;
void libMapM_gf_MMAnnouncementMultiplePerPlayer (int lp_player, text lp_announcement, bool lp_writeOut, fixed lp_writeOutDuration, fixed lp_duration, int lp_allyOption) {
auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_player = lp_player;
auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_announcement = lp_announcement;
auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_writeOut = lp_writeOut;
auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_writeOutDuration = lp_writeOutDuration;
auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_duration = lp_duration;
auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_allyOption = lp_allyOption;
if (auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_Trigger == null) {
auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_Trigger = TriggerCreate("auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_Trigger, false, false);
}
bool auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_TriggerFunc (bool testConds, bool runActions) {
int lp_player = auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_player;
text lp_announcement = auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_announcement;
bool lp_writeOut = auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_writeOut;
fixed lp_writeOutDuration = auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_writeOutDuration;
fixed lp_duration = auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_duration;
int lp_allyOption = auto_libMapM_gf_MMAnnouncementMultiplePerPlayer_lp_allyOption;
// Variable Declarations
string lv_style;
// Automatic Variable Declarations
int auto02A880C7_val;
// Variable Initialization
// Implementation
SoundPlay(SoundLink("UI_CampaignHintNotify", -1), libCore_gv_playerGroupFromPlayer[lp_player], 100.0, 0.0);
if ((libMapM_gv_mMAnnouncementDialogsMultiple[lp_player] != c_invalidDialogId)) {
DialogDestroy(libMapM_gv_mMAnnouncementDialogsMultiple[lp_player]);
}
DialogCreate(1000, 200, c_anchorTop, 0, 175, false);
libMapM_gv_mMAnnouncementDialogsMultiple[lp_player] = DialogLastCreated();
DialogSetImageVisible(DialogLastCreated(), false);
DialogSetVisible(DialogLastCreated(), libCore_gv_playerGroupFromPlayer[lp_player], true);
auto02A880C7_val = lp_allyOption;
if (auto02A880C7_val == libMapM_ge_MapMechanicAnnouncementAllyOptions_Neutral) {
lv_style = "Storm_Map_Announcement";
}
else if (auto02A880C7_val == libMapM_ge_MapMechanicAnnouncementAllyOptions_Ally) {
lv_style = "Storm_Map_AnnouncementAlly";
}
else if (auto02A880C7_val == libMapM_ge_MapMechanicAnnouncementAllyOptions_Enemy) {
lv_style = "Storm_Map_AnnouncementEnemy";
}
else if (auto02A880C7_val == libMapM_ge_MapMechanicAnnouncementAllyOptions_AllySmall) {
lv_style = "Storm_Map_AnnouncementAlly_Small";
}
else {
lv_style = "Storm_Map_Announcement";
}
libNtve_gf_CreateDialogItemLabel(DialogLastCreated(), 200, 50, c_anchorCenter, 0, 0, lp_announcement, ColorWithAlpha(0,0,0,0), lp_writeOut, lp_writeOutDuration);
DialogControlSetFullDialog(DialogControlLastCreated(), libCore_gv_playerGroupFromPlayer[lp_player], true);
libNtve_gf_SetDialogItemStyle(DialogControlLastCreated(), lv_style, libCore_gv_playerGroupFromPlayer[lp_player]);
libMapM_gf_MMAnnouncementClearnup(DialogLastCreated(), DialogControlLastCreated(), lp_duration, libCore_gv_playerGroupFromPlayer[lp_player]);
return true;
}
void libMapM_gf_MapMechanicRunConversation (string lp_convoOrder, string lp_convoChaos, string lp_convoObserver) {
// Variable Declarations
int lv_itIndex;
// Automatic Variable Declarations
int autoC1B27D67_ae;
const int autoC1B27D67_ai = 1;
// Variable Initialization
// Implementation
while (!((libMapM_gv_mMRunConversationDoneCount == 0))) {
Wait(0.0625, c_timeGame);
}
libMapM_gf_MMRunConversationIndividual(lp_convoOrder, libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false));
libMapM_gf_MMRunConversationIndividual(lp_convoChaos, libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false));
libMapM_gf_MMRunConversationIndividual(lp_convoObserver, libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer]);
while (true) {
Wait(0.125, c_timeGame);
autoC1B27D67_ae = libMapM_gv_mMRunConversationDoneCount;
lv_itIndex = 1;
for ( ; ( (autoC1B27D67_ai >= 0 && lv_itIndex <= autoC1B27D67_ae) || (autoC1B27D67_ai < 0 && lv_itIndex >= autoC1B27D67_ae) ) ; lv_itIndex += autoC1B27D67_ai ) {
if ((libMapM_gv_mMRunConversationDone[lv_itIndex] == false)) {
continue;
}
}
libMapM_gv_mMRunConversationDoneCount = 0;
return ;
}
}
trigger auto_libMapM_gf_MMRunConversationIndividual_Trigger = null;
string auto_libMapM_gf_MMRunConversationIndividual_lp_convo;
playergroup auto_libMapM_gf_MMRunConversationIndividual_lp_players;
void libMapM_gf_MMRunConversationIndividual (string lp_convo, playergroup lp_players) {
auto_libMapM_gf_MMRunConversationIndividual_lp_convo = lp_convo;
auto_libMapM_gf_MMRunConversationIndividual_lp_players = lp_players;
if (auto_libMapM_gf_MMRunConversationIndividual_Trigger == null) {
auto_libMapM_gf_MMRunConversationIndividual_Trigger = TriggerCreate("auto_libMapM_gf_MMRunConversationIndividual_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMRunConversationIndividual_Trigger, false, false);
}
bool auto_libMapM_gf_MMRunConversationIndividual_TriggerFunc (bool testConds, bool runActions) {
string lp_convo = auto_libMapM_gf_MMRunConversationIndividual_lp_convo;
playergroup lp_players = auto_libMapM_gf_MMRunConversationIndividual_lp_players;
// Automatic Variable Declarations
// Implementation
libMapM_gv_mMRunConversationDoneCount += 1;
libMapM_gv_mMRunConversationDone[libMapM_gv_mMRunConversationDoneCount] = false;
ConversationDataRun(lp_convo, lp_players, c_conversationSkipNone, true);
libMapM_gv_mMRunConversationDone[libMapM_gv_mMRunConversationDoneCount] = true;
return true;
}
trigger auto_libMapM_gf_MapSetRepulseRegion_Trigger = null;
int auto_libMapM_gf_MapSetRepulseRegion_lp_team;
region auto_libMapM_gf_MapSetRepulseRegion_lp_pulseRegion;
point auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation1;
point auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation2;
point auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation3;
point auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation4;
void libMapM_gf_MapSetRepulseRegion (int lp_team, region lp_pulseRegion, point lp_punchTargetLocation1, point lp_punchTargetLocation2, point lp_punchTargetLocation3, point lp_punchTargetLocation4) {
auto_libMapM_gf_MapSetRepulseRegion_lp_team = lp_team;
auto_libMapM_gf_MapSetRepulseRegion_lp_pulseRegion = lp_pulseRegion;
auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation1 = lp_punchTargetLocation1;
auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation2 = lp_punchTargetLocation2;
auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation3 = lp_punchTargetLocation3;
auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation4 = lp_punchTargetLocation4;
if (auto_libMapM_gf_MapSetRepulseRegion_Trigger == null) {
auto_libMapM_gf_MapSetRepulseRegion_Trigger = TriggerCreate("auto_libMapM_gf_MapSetRepulseRegion_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MapSetRepulseRegion_Trigger, false, false);
}
bool auto_libMapM_gf_MapSetRepulseRegion_TriggerFunc (bool testConds, bool runActions) {
int lp_team = auto_libMapM_gf_MapSetRepulseRegion_lp_team;
region lp_pulseRegion = auto_libMapM_gf_MapSetRepulseRegion_lp_pulseRegion;
point lp_punchTargetLocation1 = auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation1;
point lp_punchTargetLocation2 = auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation2;
point lp_punchTargetLocation3 = auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation3;
point lp_punchTargetLocation4 = auto_libMapM_gf_MapSetRepulseRegion_lp_punchTargetLocation4;
// Automatic Variable Declarations
// Implementation
TriggerEnable(libGame_gt_HallOfStormsKnockbackLaunchMissile, false);
TriggerEnable(libGame_gt_HallOfStormsKnockbackUnitEntersRegion, true);
libMapM_gv_mMRepulseRegions[lp_team] = lp_pulseRegion;
libMapM_gv_mMRepulseRegionPunchTarget[lp_team][1] = lp_punchTargetLocation1;
libMapM_gv_mMRepulseRegionPunchTarget[lp_team][2] = lp_punchTargetLocation2;
libMapM_gv_mMRepulseRegionPunchTarget[lp_team][3] = lp_punchTargetLocation3;
libMapM_gv_mMRepulseRegionPunchTarget[lp_team][4] = lp_punchTargetLocation4;
Wait(2.0, c_timeGame);
TriggerExecute(libMapM_gt_MMRepulseRegionPunchBehavior, true, false);
return true;
}
trigger auto_libMapM_gf_MMRepulseRegionAddToPunchedGroup_Trigger = null;
unit auto_libMapM_gf_MMRepulseRegionAddToPunchedGroup_lp_punchedUnit;
void libMapM_gf_MMRepulseRegionAddToPunchedGroup (unit lp_punchedUnit) {
auto_libMapM_gf_MMRepulseRegionAddToPunchedGroup_lp_punchedUnit = lp_punchedUnit;
if (auto_libMapM_gf_MMRepulseRegionAddToPunchedGroup_Trigger == null) {
auto_libMapM_gf_MMRepulseRegionAddToPunchedGroup_Trigger = TriggerCreate("auto_libMapM_gf_MMRepulseRegionAddToPunchedGroup_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMRepulseRegionAddToPunchedGroup_Trigger, false, false);
}
bool auto_libMapM_gf_MMRepulseRegionAddToPunchedGroup_TriggerFunc (bool testConds, bool runActions) {
unit lp_punchedUnit = auto_libMapM_gf_MMRepulseRegionAddToPunchedGroup_lp_punchedUnit;
// Automatic Variable Declarations
// Implementation
UnitGroupAdd(libMapM_gv_mMRepulseRegionPunchedGroup, lp_punchedUnit);
Wait(1.0, c_timeGame);
UnitGroupRemove(libMapM_gv_mMRepulseRegionPunchedGroup, lp_punchedUnit);
return true;
}
void libMapM_gf_MapSetSafeRegion (int lp_team, region lp_safeRegion) {
// Automatic Variable Declarations
// Implementation
TriggerEnable(libGame_gt_HallOfStormsUnitEntersRegion, true);
TriggerEnable(libGame_gt_HallOfStormsUnitExitsRegion, true);
libMapM_gv_mMSafeRegions[lp_team] = lp_safeRegion;
TriggerExecute(libMapM_gt_MMSafeRegionBehavior, true, false);
}
void libMapM_gf_RestrictAbilitiesToRegionForUnit (unit lp_unit, region lp_region) {
// Variable Declarations
int lv_itAbility;
string lv_ability;
// Automatic Variable Declarations
int autoED27FBF2_ae;
// Variable Initialization
// Implementation
if (((libMapM_gf_MapMechanicExistsOnMap("HauntedMinesRework") == true) && ((UnitGetType(lp_unit) == "HeroDeathwing") || (UnitGetType(lp_unit) == "DeathwingDragonflightUnit")))) {
}
else {
autoED27FBF2_ae = (CatalogFieldValueCount(c_gameCatalogUnit, UnitGetType(lp_unit), "AbilArray", UnitGetOwner(lp_unit)) - 1);
lv_itAbility = 0;
for ( ; lv_itAbility <= autoED27FBF2_ae ; lv_itAbility += 1 ) {
lv_ability = (CatalogFieldValueGet(c_gameCatalogUnit, UnitGetType(lp_unit), "AbilArray[" + IntToString(lv_itAbility) + "].Link", UnitGetOwner(lp_unit)));
if ((CatalogEntryIsValid(c_gameCatalogAbil, lv_ability) == true)) {
if ((libCore_gv_sYSGameMode == libCore_ge_GameModes_ArenaMode)) {
UnitAbilitySetRequiredRegion(lp_unit, lv_ability, lp_region, "");
}
else {
if (((CatalogFieldValueGet(c_gameCatalogAbil, lv_ability, "AbilityCategories[TargetAcrossMapPlane]", c_playerAny) == "1") || ((lv_ability == "AbathurToxicNest") && (PlayerHasTalent(UnitGetOwner(lp_unit), "AbathurMasteryBallistospores") == true)))) {
}
else {
UnitAbilitySetRequiredRegion(lp_unit, lv_ability, lp_region, "");
}
}
}
}
}
}
int libMapM_gf_RegisterMapMechanicAIUnitCustomValue () {
// Automatic Variable Declarations
// Implementation
libMapM_gv_countOfMMAIUnits += 1;
return (libMapM_gv_dataJungleMaxNumberOfMercsSpawned + libMapM_gv_countOfMMAIUnits);
}
trigger auto_libMapM_gf_ShareVisionofUnitForBothTeams_Trigger = null;
unit auto_libMapM_gf_ShareVisionofUnitForBothTeams_lp_tributeWarningUnit;
void libMapM_gf_ShareVisionofUnitForBothTeams (unit lp_tributeWarningUnit) {
auto_libMapM_gf_ShareVisionofUnitForBothTeams_lp_tributeWarningUnit = lp_tributeWarningUnit;
if (auto_libMapM_gf_ShareVisionofUnitForBothTeams_Trigger == null) {
auto_libMapM_gf_ShareVisionofUnitForBothTeams_Trigger = TriggerCreate("auto_libMapM_gf_ShareVisionofUnitForBothTeams_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_ShareVisionofUnitForBothTeams_Trigger, false, false);
}
bool auto_libMapM_gf_ShareVisionofUnitForBothTeams_TriggerFunc (bool testConds, bool runActions) {
unit lp_tributeWarningUnit = auto_libMapM_gf_ShareVisionofUnitForBothTeams_lp_tributeWarningUnit;
// Variable Declarations
int lv_team;
// Automatic Variable Declarations
int auto3348E454_ae;
// Variable Initialization
// Implementation
auto3348E454_ae = libCore_gv_bALMaxTeams;
lv_team = 1;
for ( ; lv_team <= auto3348E454_ae ; lv_team += 1 ) {
libNtve_gf_ShareVisionofUnit(lp_tributeWarningUnit, true, libGame_gf_ComputerPlayerInTeam(lv_team));
}
return true;
}
trigger auto_libMapM_gf_CreateSnapshotOfUnitForBothTeams_Trigger = null;
unit auto_libMapM_gf_CreateSnapshotOfUnitForBothTeams_lp_unit;
void libMapM_gf_CreateSnapshotOfUnitForBothTeams (unit lp_unit) {
auto_libMapM_gf_CreateSnapshotOfUnitForBothTeams_lp_unit = lp_unit;
if (auto_libMapM_gf_CreateSnapshotOfUnitForBothTeams_Trigger == null) {
auto_libMapM_gf_CreateSnapshotOfUnitForBothTeams_Trigger = TriggerCreate("auto_libMapM_gf_CreateSnapshotOfUnitForBothTeams_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_CreateSnapshotOfUnitForBothTeams_Trigger, false, false);
}
bool auto_libMapM_gf_CreateSnapshotOfUnitForBothTeams_TriggerFunc (bool testConds, bool runActions) {
unit lp_unit = auto_libMapM_gf_CreateSnapshotOfUnitForBothTeams_lp_unit;
// Variable Declarations
int lv_i;
// Automatic Variable Declarations
const int auto9F88AE3B_ae = libCore_gv_bALMaxTeams;
const int auto9F88AE3B_ai = 1;
const int auto05932E8B_ae = libCore_gv_bALMaxTeams;
const int auto05932E8B_ai = 1;
// Variable Initialization
// Implementation
lv_i = 1;
for ( ; ( (auto9F88AE3B_ai >= 0 && lv_i <= auto9F88AE3B_ae) || (auto9F88AE3B_ai < 0 && lv_i >= auto9F88AE3B_ae) ) ; lv_i += auto9F88AE3B_ai ) {
libNtve_gf_ShareVisionofUnit(lp_unit, true, libGame_gf_ComputerPlayerInTeam(lv_i));
}
Wait(0.0625, c_timeGame);
lv_i = 1;
for ( ; ( (auto05932E8B_ai >= 0 && lv_i <= auto05932E8B_ae) || (auto05932E8B_ai < 0 && lv_i >= auto05932E8B_ae) ) ; lv_i += auto05932E8B_ai ) {
libNtve_gf_ShareVisionofUnit(lp_unit, false, libGame_gf_ComputerPlayerInTeam(lv_i));
}
return true;
}
void libMapM_gf_RegisterMapEventEnableDisableTriggers (trigger lp_disableMapEventTrigger, trigger lp_enableMapEventTrigger) {
// Automatic Variable Declarations
// Implementation
libMapM_gv_mMDisableMapEventTrigger = lp_disableMapEventTrigger;
libMapM_gv_mMEnableMapEventTrigger = lp_enableMapEventTrigger;
}
void libMapM_gf_EnableDisableMapEvent (bool lp_enableOrDisable) {
// Automatic Variable Declarations
// Implementation
if ((libMapM_gv_mMMapEventHasOccured == false) && (libMapM_gv_mMMapMechanicDisabled == false) && (lp_enableOrDisable == false)) {
libMapM_gv_mMMapMechanicDisabled = true;
if ((libMapM_gv_mMDisableMapEventTrigger != null)) {
TriggerExecute(libMapM_gv_mMDisableMapEventTrigger, true, true);
}
}
if ((libMapM_gv_mMMapEventHasOccured == false) && (libMapM_gv_mMMapMechanicDisabled == true) && (lp_enableOrDisable == true)) {
libMapM_gv_mMMapMechanicDisabled = false;
if ((libMapM_gv_mMEnableMapEventTrigger != null)) {
TriggerExecute(libMapM_gv_mMEnableMapEventTrigger, true, true);
}
}
}
void libMapM_gf_MMRavenCurseAddTributeSpawnLocation (point lp_spawnLocation) {
// Automatic Variable Declarations
// Implementation
if ((libMapM_gv_mMRavenTributeSpawnPointsCount >= libMapM_gv_mMRavenTributeSpawnPointsCountMax_C)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_55A9F5EA"), true);
return ;
}
libMapM_gv_mMRavenTributeSpawnPointsCount += 1;
libMapM_gv_mMRavenTributeSpawnPoints[libMapM_gv_mMRavenTributeSpawnPointsCount] = lp_spawnLocation;
}
bool libMapM_gf_MMRavenCurseStarted () {
// Automatic Variable Declarations
// Implementation
return (libMapM_gv_mMRavenTeamStats[1].lv_cursed || libMapM_gv_mMRavenTeamStats[2].lv_cursed);
}
fixed libMapM_gf_MMRavenStartTime () {
// Automatic Variable Declarations
// Implementation
return libMapM_gv_mMRavenStartTime;
}
fixed libMapM_gf_MMRavenTributeSpawnTime () {
// Automatic Variable Declarations
// Implementation
return libMapM_gv_mMRavenTributeSpawnTime_C;
}
int libMapM_gf_MMRavenTributeThresholdAmount () {
// Automatic Variable Declarations
// Implementation
return libMapM_gv_mMRavenTributeThreshold_C;
}
string libMapM_gf_MMRavenTributeUnitType () {
// Automatic Variable Declarations
// Implementation
return "RavenLordTribute";
}
point libMapM_gf_MMRavenRandomSpawnPoint () {
// Variable Declarations
int lv_spawnIndex;
int[libMapM_gv_mMRavenTributeSpawnPointsCountMax_C + 1] lv_availableSpawnPointIndex;
int lv_availableSpawnPointsCount;
int lv_index;
int lv_sideIndex1;
int lv_sideIndex2;
int lv_sideIndex;
bool lv_pointGood;
int lv_firstPointIndex;
// Automatic Variable Declarations
int auto3F8AF97C_ae;
const int auto3F8AF97C_ai = 1;
// Variable Initialization
// Implementation
if ((libMapM_gv_mMRavenTributeSpawnPointsCount < 1)) {
return null;
}
lv_sideIndex1 = libMapM_gf_MMRavenSpawnPointSide(libMapM_gv_mMRavenLastTributeSpawnIndex1);
lv_sideIndex2 = libMapM_gf_MMRavenSpawnPointSide(libMapM_gv_mMRavenLastTributeSpawnIndex2);
auto3F8AF97C_ae = libMapM_gv_mMRavenTributeSpawnPointsCount;
lv_index = 1;
for ( ; ( (auto3F8AF97C_ai >= 0 && lv_index <= auto3F8AF97C_ae) || (auto3F8AF97C_ai < 0 && lv_index >= auto3F8AF97C_ae) ) ; lv_index += auto3F8AF97C_ai ) {
if ((lv_index != libMapM_gv_mMRavenLastTributeSpawnIndex1) && (!(((libMapM_gv_mMRavenLastTributeSpawnIndex1 > 0) && (libMapM_gv_mMRavenLastTributeSpawnIndex2 > 0) && (ModI(libMapM_gv_mMRavenLastTributeSpawnIndex1, 2) == ModI(libMapM_gv_mMRavenLastTributeSpawnIndex2, 2)) && (ModI(lv_index, 2) == ModI(libMapM_gv_mMRavenLastTributeSpawnIndex1, 2)))))) {
lv_pointGood = false;
lv_sideIndex = libMapM_gf_MMRavenSpawnPointSide(lv_index);
if ((libMapM_gv_mMRavenLastTributeSpawnIndex1 == 0)) {
if (((lv_index == 1) || (lv_index == 2))) {
lv_pointGood = true;
}
}
else if ((libMapM_gv_mMRavenLastTributeSpawnIndex2 == 0)) {
if ((lv_sideIndex != lv_sideIndex1)) {
lv_pointGood = true;
}
}
else if ((libMapM_gv_mMRavenTributeSpawnGroupIndex == 0)) {
lv_pointGood = true;
}
else if ((libMapM_gv_mMRavenTributeSpawnGroupIndex == 1)) {
if ((lv_sideIndex != lv_sideIndex1)) {
lv_pointGood = true;
}
}
else if ((libMapM_gv_mMRavenTributeSpawnGroupIndex == 2)) {
if ((lv_sideIndex != lv_sideIndex1) && (lv_sideIndex != lv_sideIndex2)) {
lv_pointGood = true;
}
}
if ((lv_pointGood == true)) {
lv_availableSpawnPointsCount += 1;
lv_availableSpawnPointIndex[lv_availableSpawnPointsCount] = lv_index;
}
}
}
libMapM_gv_mMRavenLastTributeSpawnIndex2 = libMapM_gv_mMRavenLastTributeSpawnIndex1;
libMapM_gv_mMRavenLastTributeSpawnIndex1 = lv_availableSpawnPointIndex[RandomInt(1, lv_availableSpawnPointsCount)];
libMapM_gv_mMRavenTributeSpawnGroupIndex += 1;
if ((libMapM_gv_mMRavenTributeSpawnGroupIndex == 3)) {
libMapM_gv_mMRavenTributeSpawnGroupIndex = 0;
}
return libMapM_gv_mMRavenTributeSpawnPoints[libMapM_gv_mMRavenLastTributeSpawnIndex1];
}
int libMapM_gf_MMRavenSpawnPointSide (int lp_index) {
// Automatic Variable Declarations
// Implementation
if (((lp_index == 1) || (lp_index == 2))) {
return 0;
}
else if (((lp_index == 4) || (lp_index == 5))) {
return 1;
}
else if (((lp_index == 3) || (lp_index == 6))) {
return 2;
}
return 0;
}
void libMapM_gf_MMRavenStartSpawnTimer5090 () {
// Variable Declarations
fixed lv_spawnTime;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
if ((libMapM_gv_mMRavenUseManualTributeSpawns == false)) {
lv_spawnTime = (libMapM_gv_mMRavenTributeSpawnTime_C + RandomFixed((libMapM_gv_mMRavenTributeSpawnTimeVariance * -1), libMapM_gv_mMRavenTributeSpawnTimeVariance));
TimerStart(libMapM_gv_mMRavenWarningTimer, (lv_spawnTime - libMapM_gv_mMRavenSpawnWarningTimerTime_C), false, c_timeGame);
}
}
void libMapM_gf_MMRavenCreatePreviewTribute (point lp_previewLocation) {
// Automatic Variable Declarations
// Implementation
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RavenLordTributePreview", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Neutral, lp_previewLocation, null);
libMapM_gv_mMRavenTributePreview = UnitLastCreated();
}
void libMapM_gf_MMRavenTributeCollectionThresholdReached (int lp_winningTeam) {
// Automatic Variable Declarations
// Implementation
if ((lp_winningTeam == libGame_gf_TeamNumberOfPlayer(libCore_gv_cOMPUTER_TeamOrder))) {
libMapM_gf_MMRavenCurseStart(libCore_gv_cOMPUTER_TeamChaos);
}
else {
libMapM_gf_MMRavenCurseStart(libCore_gv_cOMPUTER_TeamOrder);
}
}
void libMapM_gf_MMRavenCurseStart (int lp_cursedPlayerID) {
// Variable Declarations
int lv_itPlayer;
int lv_index;
int lv_cursedTeam;
int lv_enemyTeamWinningTeam;
int lv_townIndex;
int lv_structureIndex;
unit lv_structureUnit;
// Automatic Variable Declarations
int auto1E839FCC_ae;
const int auto1E839FCC_ai = 1;
int autoCEB3961F_ae;
const int autoCEB3961F_ai = 1;
unitgroup auto4E0D066B_g;
int auto4E0D066B_u;
unit auto4E0D066B_var;
// Variable Initialization
// Implementation
lv_cursedTeam = libGame_gf_TeamNumberOfPlayer(lp_cursedPlayerID);
lv_enemyTeamWinningTeam = libGame_gf_EnemyTeam(lv_cursedTeam);
libMapM_gf_MMRavenPlayCurseSound(lv_cursedTeam);
SoundChannelMute(PlayerGroupAll(), c_soundCategoryAmbient, true);
SoundtrackStop(PlayerGroupAll(), c_soundtrackCategoryMusic, true);
libSond_gf_SoundtrackApplyNewDefaultSoundtrackForPlayerGroup("Storm_Music_RavenKing_Cursed", PlayerGroupAll());
libGame_gf_SendEventMapCursedHollowCurseStarts(lv_enemyTeamWinningTeam);
ActorSend(libMapM_gv_mapMechanicControllerActor, "Signal MM1On");
ActorSend(libMapM_gv_mapMechanicControllerActor, "Signal RainOn");
libGame_gv_teams[lv_enemyTeamWinningTeam].lv_map_CursesPlacedOnEnemyTeam += 1;
StatEventCreate("RavenCurseActivated");
StatEventAddDataInt(StatEventLastCreated(), "Event", (libGame_gv_teams[1].lv_map_CursesPlacedOnEnemyTeam + libGame_gv_teams[2].lv_map_CursesPlacedOnEnemyTeam));
StatEventAddDataFixed(StatEventLastCreated(), "TeamID", lv_enemyTeamWinningTeam);
StatEventAddDataInt(StatEventLastCreated(), "TeamScore", libMapM_gv_mMRavenTeamStats[lv_enemyTeamWinningTeam].lv_triburteCollected);
StatEventAddDataInt(StatEventLastCreated(), "OpponentScore", libMapM_gv_mMRavenTeamStats[lv_cursedTeam].lv_triburteCollected);
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventSend(StatEventLastCreated());
libMapM_gf_PreCurseSiegeDamageCache(lv_enemyTeamWinningTeam);
libMapM_gv_mMRavenTeamStats[libGame_gf_TeamNumberOfPlayer(lp_cursedPlayerID)].lv_cursed = true;
libAIAI_gf_AITeamDelegateActivateDeactivateMapReward(libAIAI_ge_AITeamDelegateActivateDeactivateMapToken_Activate);
libAIAI_gf_AITeamDelegateResetMapEventProgressforTeam(lv_enemyTeamWinningTeam);
auto1E839FCC_ae = libGame_gv_townTownCount;
lv_townIndex = 1;
for ( ; ( (auto1E839FCC_ai >= 0 && lv_townIndex <= auto1E839FCC_ae) || (auto1E839FCC_ai < 0 && lv_townIndex >= auto1E839FCC_ae) ) ; lv_townIndex += auto1E839FCC_ai ) {
if ((libGame_gv_townTownData[lv_townIndex].lv_owner == lp_cursedPlayerID)) {
autoCEB3961F_ae = libGame_gv_townTownData[lv_townIndex].lv_structureCount;
lv_structureIndex = 1;
for ( ; ( (autoCEB3961F_ai >= 0 && lv_structureIndex <= autoCEB3961F_ae) || (autoCEB3961F_ai < 0 && lv_structureIndex >= autoCEB3961F_ae) ) ; lv_structureIndex += autoCEB3961F_ai ) {
lv_structureUnit = libGame_gv_townTownData[lv_townIndex].lv_structureUnits[lv_structureIndex];
if ((UnitIsAlive(libGame_gv_townTownData[lv_townIndex].lv_structureUnits[lv_structureIndex]) == true) && ((libGame_gf_TownGetTownStructurePresetFromUnit(libGame_gv_townTownData[lv_townIndex].lv_structureUnits[lv_structureIndex]) == libGame_ge_TownStructureTypes_TownHall) || (libGame_gf_TownGetTownStructurePresetFromUnit(libGame_gv_townTownData[lv_townIndex].lv_structureUnits[lv_structureIndex]) == libGame_ge_TownStructureTypes_CannonTower))) {
UnitBehaviorAdd(lv_structureUnit, "RavenLordsCurseStructures", lv_structureUnit, 1);
UnitBehaviorSetDuration(lv_structureUnit, "RavenLordsCurseStructures", libMapM_gv_mMRavenCurseDuration_C);
UnitBehaviorAdd(lv_structureUnit, "RavenLordsCurseStructuresWarning", lv_structureUnit, 1);
UnitBehaviorSetDuration(lv_structureUnit, "RavenLordsCurseStructuresWarning", (libMapM_gv_mMRavenCurseDuration_C - 5.0));
}
}
}
}
auto4E0D066B_g = UnitGroup(null, lp_cursedPlayerID, RegionEntireMap(), libCore_gv_filtersMinionsTownMinions, 0);
auto4E0D066B_u = UnitGroupCount(auto4E0D066B_g, c_unitCountAll);
for (;; auto4E0D066B_u -= 1) {
auto4E0D066B_var = UnitGroupUnitFromEnd(auto4E0D066B_g, auto4E0D066B_u);
if (auto4E0D066B_var == null) { break; }
libMapM_gf_MMRavenApplyCurseEffectOnMinion(auto4E0D066B_var);
}
TriggerExecute(libMapM_gt_MMRavenCurseStartLightTransition, true, false);
TimerStart(libMapM_gv_mMRavenCurseTimer, libMapM_gv_mMRavenCurseDuration_C, false, c_timeGame);
libMapM_gf_MMRavenWaitForandPlayCurseEndWarning();
}
void libMapM_gf_MMRavenApplyCurseEffectOnMinion (unit lp_unit) {
// Automatic Variable Declarations
// Implementation
UnitBehaviorAdd(lp_unit, "RavenLordsCurseUnits", lp_unit, 1);
UnitSetPropertyFixed(lp_unit, c_unitPropLife, 1.0);
libNtve_gf_SendActorMessageToUnit(lp_unit, "SetTintColor 207,159,255");
}
void libMapM_gf_MMRavenRemoveCurseEffectOnMinion (unit lp_minion) {
// Automatic Variable Declarations
// Implementation
if ((UnitIsAlive(lp_minion) == false)) {
return ;
}
UnitSetPropertyFixed(lp_minion, c_unitPropLifePercent, 100.0);
UnitBehaviorRemove(lp_minion, "RavenLordsCurseUnits", 1);
libNtve_gf_SendActorMessageToUnit(lp_minion, "SetTintColor 255,255,255");
}
trigger auto_libMapM_gf_MMRavenPlayCurseSound_Trigger = null;
int auto_libMapM_gf_MMRavenPlayCurseSound_lp_cursedTeam;
void libMapM_gf_MMRavenPlayCurseSound (int lp_cursedTeam) {
auto_libMapM_gf_MMRavenPlayCurseSound_lp_cursedTeam = lp_cursedTeam;
if (auto_libMapM_gf_MMRavenPlayCurseSound_Trigger == null) {
auto_libMapM_gf_MMRavenPlayCurseSound_Trigger = TriggerCreate("auto_libMapM_gf_MMRavenPlayCurseSound_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMRavenPlayCurseSound_Trigger, false, false);
}
bool auto_libMapM_gf_MMRavenPlayCurseSound_TriggerFunc (bool testConds, bool runActions) {
int lp_cursedTeam = auto_libMapM_gf_MMRavenPlayCurseSound_lp_cursedTeam;
// Variable Declarations
int lv_enemyTeam;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
SoundPlayForPlayer(SoundLink("Event_RavenCurse_CurseStart", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
SoundPlayForPlayer(SoundLink("Event_RavenCurse_CurseMid", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
libMapM_gv_mMRavenCurseSound = SoundLastPlayed();
Wait(2.0, c_timeReal);
lv_enemyTeam = libGame_gf_EnemyTeam(lp_cursedTeam);
libMapM_gf_MMRavenTransmissionCurseActiveQ(lp_cursedTeam);
return true;
}
trigger auto_libMapM_gf_MMRavenWaitForandPlayCurseEndWarning_Trigger = null;
void libMapM_gf_MMRavenWaitForandPlayCurseEndWarning () {
if (auto_libMapM_gf_MMRavenWaitForandPlayCurseEndWarning_Trigger == null) {
auto_libMapM_gf_MMRavenWaitForandPlayCurseEndWarning_Trigger = TriggerCreate("auto_libMapM_gf_MMRavenWaitForandPlayCurseEndWarning_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMRavenWaitForandPlayCurseEndWarning_Trigger, false, false);
}
bool auto_libMapM_gf_MMRavenWaitForandPlayCurseEndWarning_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
libNtve_gf_WaitForTimer(libMapM_gv_mMRavenCurseTimer, 9.0, false);
SoundPlayForPlayer(SoundLink("Event_RavenCurse_CurseEnd_Timer", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
return true;
}
void libMapM_gf_MMRavenObjectiveUIUpdateText () {
// Variable Declarations
int lv_indexTeam;
int lv_indexTeamEnemy;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
libUIUI_gf_MapMechanicsRavenCourtSetTributeCountForTeam(libMapM_gv_mMRavenTeamStats[libGame_gv_teamOrderIndex_C].lv_triburteCollected, libGame_gv_teamOrderIndex_C);
libUIUI_gf_MapMechanicsRavenCourtSetTributeCountForTeam(libMapM_gv_mMRavenTeamStats[libGame_gv_teamChaosIndex_C].lv_triburteCollected, libGame_gv_teamChaosIndex_C);
}
void libMapM_gf_PreCurseSiegeDamageCache (int lp_cursingTeam) {
// Variable Declarations
int lv_iterator;
// Automatic Variable Declarations
int autoEDD9318E_ae;
// Variable Initialization
// Implementation
autoEDD9318E_ae = libCore_gv_bALMaxPlayers;
lv_iterator = 1;
for ( ; lv_iterator <= autoEDD9318E_ae ; lv_iterator += 1 ) {
if ((libGame_gf_TeamNumberOfPlayer(lv_iterator) == lp_cursingTeam)) {
libMapM_gv_siegeDamagePreCurse[lv_iterator] = PlayerScoreValueGetAsFixed(lv_iterator, "SiegeDamage");
}
}
}
void libMapM_gf_CalculateCurseSiegeDamageDone (int lp_cursingTeam) {
// Variable Declarations
int lv_iterator;
// Automatic Variable Declarations
int autoC675CD57_ae;
// Variable Initialization
// Implementation
autoC675CD57_ae = libCore_gv_bALMaxPlayers;
lv_iterator = 1;
for ( ; lv_iterator <= autoC675CD57_ae ; lv_iterator += 1 ) {
if ((libGame_gf_TeamNumberOfPlayer(lv_iterator) == lp_cursingTeam)) {
libMapM_gv_totalCurseSiegeDamage[lv_iterator] = (libMapM_gv_totalCurseSiegeDamage[lv_iterator] + (PlayerScoreValueGetAsFixed(lv_iterator, "SiegeDamage") - libMapM_gv_siegeDamagePreCurse[lv_iterator]));
libGame_gf_ScoreValuesReportRealValueAndLog(lv_iterator, "CurseDamageDone", libMapM_gv_totalCurseSiegeDamage[lv_iterator]);
libGame_gf_SendMapSpecificAwardEvent(lv_iterator, libMapM_gv_totalCurseSiegeDamage[lv_iterator], false);
}
}
}
void libMapM_gf_PauseUnpauseCurseHollowTimers (bool lp_pauseUnpause) {
// Variable Declarations
int lv_itIndex;
// Automatic Variable Declarations
int auto23602211_ae;
const int auto23602211_ai = 1;
int auto62E41E9B_ae;
const int auto62E41E9B_ai = 1;
// Variable Initialization
// Implementation
if ((lp_pauseUnpause == libMapM_gv_mMRavenTimers2)) {
return ;
}
libMapM_gv_mMRavenTimers2 = lp_pauseUnpause;
libMapM_gv_mMRavenTimers[1] = libMapM_gv_mMRavenStartTimer;
libMapM_gv_mMRavenTimers[2] = libMapM_gv_mMRavenTributeSpawnTimer;
libMapM_gv_mMRavenTimers[3] = libMapM_gv_mMRavenWarningTimer;
libMapM_gv_mMRavenTimers[4] = libMapM_gv_mMRavenCurseTimer;
libMapM_gv_mMRavenTimerCount = 4;
if ((lp_pauseUnpause == true)) {
auto62E41E9B_ae = libMapM_gv_mMRavenTimerCount;
lv_itIndex = 1;
for ( ; ( (auto62E41E9B_ai >= 0 && lv_itIndex <= auto62E41E9B_ae) || (auto62E41E9B_ai < 0 && lv_itIndex >= auto62E41E9B_ae) ) ; lv_itIndex += auto62E41E9B_ai ) {
if ((TimerIsPaused(libMapM_gv_mMRavenTimers[lv_itIndex]) == false) && (TimerGetRemaining(libMapM_gv_mMRavenTimers[lv_itIndex]) > 0.0)) {
libMapM_gv_mMRavenTimers3[lv_itIndex] = true;
TimerPause(libMapM_gv_mMRavenTimers[lv_itIndex], true);
}
else {
libMapM_gv_mMRavenTimers3[lv_itIndex] = false;
}
}
}
else {
auto23602211_ae = libMapM_gv_mMRavenTimerCount;
lv_itIndex = 1;
for ( ; ( (auto23602211_ai >= 0 && lv_itIndex <= auto23602211_ae) || (auto23602211_ai < 0 && lv_itIndex >= auto23602211_ae) ) ; lv_itIndex += auto23602211_ai ) {
if ((libMapM_gv_mMRavenTimers3[lv_itIndex] == true)) {
TimerPause(libMapM_gv_mMRavenTimers[lv_itIndex], false);
libMapM_gv_mMRavenTimers3[lv_itIndex] = false;
}
}
}
}
trigger auto_libMapM_gf_MMRavenTransmissionFirstEventStartQ_Trigger = null;
void libMapM_gf_MMRavenTransmissionFirstEventStartQ () {
if (auto_libMapM_gf_MMRavenTransmissionFirstEventStartQ_Trigger == null) {
auto_libMapM_gf_MMRavenTransmissionFirstEventStartQ_Trigger = TriggerCreate("auto_libMapM_gf_MMRavenTransmissionFirstEventStartQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMRavenTransmissionFirstEventStartQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMRavenTransmissionFirstEventStartQ_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "Raven - Event First", "Value", 1, 1);
ConversationDataRun("CursedHollow", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMapM_gf_MMRavenTransmissionRepeatEventStartQ_Trigger = null;
void libMapM_gf_MMRavenTransmissionRepeatEventStartQ () {
if (auto_libMapM_gf_MMRavenTransmissionRepeatEventStartQ_Trigger == null) {
auto_libMapM_gf_MMRavenTransmissionRepeatEventStartQ_Trigger = TriggerCreate("auto_libMapM_gf_MMRavenTransmissionRepeatEventStartQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMRavenTransmissionRepeatEventStartQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMRavenTransmissionRepeatEventStartQ_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "Raven - Event Repeat", "Value", 1, 1);
ConversationDataRun("CursedHollow", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMapM_gf_MMRavenTransmissionCurseActiveQ_Trigger = null;
int auto_libMapM_gf_MMRavenTransmissionCurseActiveQ_lp_cursedTeam;
void libMapM_gf_MMRavenTransmissionCurseActiveQ (int lp_cursedTeam) {
auto_libMapM_gf_MMRavenTransmissionCurseActiveQ_lp_cursedTeam = lp_cursedTeam;
if (auto_libMapM_gf_MMRavenTransmissionCurseActiveQ_Trigger == null) {
auto_libMapM_gf_MMRavenTransmissionCurseActiveQ_Trigger = TriggerCreate("auto_libMapM_gf_MMRavenTransmissionCurseActiveQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMRavenTransmissionCurseActiveQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMRavenTransmissionCurseActiveQ_TriggerFunc (bool testConds, bool runActions) {
int lp_cursedTeam = auto_libMapM_gf_MMRavenTransmissionCurseActiveQ_lp_cursedTeam;
// Variable Declarations
playergroup lv_orderPlayerGroup;
playergroup lv_chaosPlayerGroup;
playergroup lv_observerPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_orderPlayerGroup = PlayerGroupEmpty();
lv_chaosPlayerGroup = PlayerGroupEmpty();
lv_observerPlayer = PlayerGroupEmpty();
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
ConversationDataLineResetPlayers("CursedHollow", ("Left"));
ConversationDataLineResetPlayers("CursedHollow", ("Right"));
ConversationDataLineResetPlayers("CursedHollow", ("Observer"));
if ((lp_cursedTeam == libGame_gv_teamOrderIndex_C)) {
UserDataSetInt("MapVOEvent", "Raven - Left Team Cursed", "Value", 1, 1);
}
else {
UserDataSetInt("MapVOEvent", "Raven - Right Team Cursed", "Value", 1, 1);
}
lv_orderPlayerGroup = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false);
lv_chaosPlayerGroup = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false);
lv_observerPlayer = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
ConversationDataLineSetPlayers("CursedHollow", ("Left"), lv_orderPlayerGroup);
ConversationDataLineSetPlayers("CursedHollow", ("Right"), lv_chaosPlayerGroup);
ConversationDataLineSetPlayers("CursedHollow", ("Observer"), lv_observerPlayer);
ConversationDataRun("CursedHollow", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMapM_gf_MMRavenTransmissionCurseEndsQ_Trigger = null;
void libMapM_gf_MMRavenTransmissionCurseEndsQ () {
if (auto_libMapM_gf_MMRavenTransmissionCurseEndsQ_Trigger == null) {
auto_libMapM_gf_MMRavenTransmissionCurseEndsQ_Trigger = TriggerCreate("auto_libMapM_gf_MMRavenTransmissionCurseEndsQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMRavenTransmissionCurseEndsQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMRavenTransmissionCurseEndsQ_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "Raven - Curse Ends", "Value", 1, 1);
ConversationDataRun("CursedHollow", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMapM_gf_MMGardensDragonInitTowers_Trigger = null;
unit auto_libMapM_gf_MMGardensDragonInitTowers_lp_towerMoon;
unit auto_libMapM_gf_MMGardensDragonInitTowers_lp_towerStar;
void libMapM_gf_MMGardensDragonInitTowers (unit lp_towerMoon, unit lp_towerStar) {
auto_libMapM_gf_MMGardensDragonInitTowers_lp_towerMoon = lp_towerMoon;
auto_libMapM_gf_MMGardensDragonInitTowers_lp_towerStar = lp_towerStar;
if (auto_libMapM_gf_MMGardensDragonInitTowers_Trigger == null) {
auto_libMapM_gf_MMGardensDragonInitTowers_Trigger = TriggerCreate("auto_libMapM_gf_MMGardensDragonInitTowers_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMGardensDragonInitTowers_Trigger, false, false);
}
bool auto_libMapM_gf_MMGardensDragonInitTowers_TriggerFunc (bool testConds, bool runActions) {
unit lp_towerMoon = auto_libMapM_gf_MMGardensDragonInitTowers_lp_towerMoon;
unit lp_towerStar = auto_libMapM_gf_MMGardensDragonInitTowers_lp_towerStar;
// Variable Declarations
unit lv_u;
unit lv_utargetZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ;
int lv_player;
fixed lv_beam_fulldistance;
fixed lv_beam_count;
int lv_itPlayer;
// Automatic Variable Declarations
unitgroup autoE15D888F_g;
int autoE15D888F_u;
unit autoE15D888F_var;
unitgroup auto8A56646F_g;
int auto8A56646F_u;
playergroup autoAFCA884A_g;
unitgroup auto254889A9_g;
int auto254889A9_u;
unitgroup auto4ED31F5E_g;
int auto4ED31F5E_u;
playergroup auto3D9EC4D4_g;
unitgroup autoC3C6CAFA_g;
int autoC3C6CAFA_u;
playergroup autoAB2D3B75_g;
playergroup auto2BE87695_g;
// Variable Initialization
// Implementation
libMapM_gv_mMGardensDragonTowerMoon = lp_towerMoon;
libMapM_gv_mMGardensDragonTowerStar = lp_towerStar;
autoE15D888F_g = UnitGroup("VehicleDragon", c_playerAny, null, UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1);
autoE15D888F_u = UnitGroupCount(autoE15D888F_g, c_unitCountAll);
for (;; autoE15D888F_u -= 1) {
autoE15D888F_var = UnitGroupUnitFromEnd(autoE15D888F_g, autoE15D888F_u);
if (autoE15D888F_var == null) { break; }
libMapM_gv_mMGardensDragonDragonKnightRespawnPoint = UnitGetPosition(autoE15D888F_var);
libMapM_gv_mMGardensDragonStatue = autoE15D888F_var;
UnitSetState(libMapM_gv_mMGardensDragonStatue, c_unitStateStatusBar, false);
libMapM_gf_AddVehicle(libMapM_gv_mMGardensDragonStatue);
}
auto8A56646F_g = UnitGroup("DragonShireShrineSun", c_playerAny, null, UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1);
auto8A56646F_u = UnitGroupCount(auto8A56646F_g, c_unitCountAll);
for (;; auto8A56646F_u -= 1) {
lv_u = UnitGroupUnitFromEnd(auto8A56646F_g, auto8A56646F_u);
if (lv_u == null) { break; }
libMapM_gv_mMGardensDragonDragonTowerCount += 1;
libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_shrineUnit = lv_u;
UnitCreate(1, "DragonballCaptureBeacon", c_unitCreateIgnorePlacement, UnitGetOwner(lv_u), UnitGetPosition(lv_u), 300.0, lv_u);
libGame_gf_CapturePointCreate(UnitLastCreated(), libMapM_gv_mMGardensDragonDragonballTowerCaptureRadius_C, libMapM_gv_mMGardensDragonDragonTowerCaptureTime_C, libMapM_gv_mMGardensDragonDragonTowerOverCaptureTime_C, libGame_ge_CapturePointDecay_DoNotDecay, libGame_ge_CapturePointDecay_Owner, true);
libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_captureBeaconIndex = libGame_gf_LastCreatedCapturePoint();
libGame_gf_CapturePointDisable(libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_captureBeaconIndex);
autoAFCA884A_g = PlayerGroupAll();
lv_player = -1;
while (true) {
lv_player = PlayerGroupNextPlayer(autoAFCA884A_g, lv_player);
if (lv_player<0) { break; }
VisRevealArea(lv_player, RegionCircle(UnitGetPosition(lv_u), 0.75), 0.125, false);
}
auto254889A9_g = UnitGroup("GardensDragonShrineTargetSun", c_playerAny, null, UnitFilter(0, 0, 0, 0), 1);
auto254889A9_u = UnitGroupCount(auto254889A9_g, c_unitCountAll);
for (;; auto254889A9_u -= 1) {
lv_utargetZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ = UnitGroupUnitFromEnd(auto254889A9_g, auto254889A9_u);
if (lv_utargetZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ == null) { break; }
libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_shrineBeamTargetUnit = lv_utargetZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ;
}
libMapM_gv_mMGardensDragonSoundRegion = RegionCircle(UnitGetPosition(lv_u), 1.0);
lv_beam_count = 0.0;
lv_beam_fulldistance = DistanceBetweenPoints(UnitGetPosition(lv_u), UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_shrineBeamTargetUnit));
while ((lv_beam_count < lv_beam_fulldistance)) {
lv_beam_count += 1.0;
RegionAddCircle(libMapM_gv_mMGardensDragonSoundRegion, true, libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_u), lv_beam_count, UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_shrineBeamTargetUnit)), 1.0);
}
}
auto4ED31F5E_g = UnitGroup("DragonShireShrineMoon", c_playerAny, null, UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1);
auto4ED31F5E_u = UnitGroupCount(auto4ED31F5E_g, c_unitCountAll);
for (;; auto4ED31F5E_u -= 1) {
lv_u = UnitGroupUnitFromEnd(auto4ED31F5E_g, auto4ED31F5E_u);
if (lv_u == null) { break; }
libMapM_gv_mMGardensDragonDragonTowerCount += 1;
libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_shrineUnit = lv_u;
UnitCreate(1, "DragonballCaptureBeacon", c_unitCreateIgnorePlacement, UnitGetOwner(lv_u), UnitGetPosition(lv_u), 300.0, lv_u);
libGame_gf_CapturePointCreate(UnitLastCreated(), libMapM_gv_mMGardensDragonDragonballTowerCaptureRadius_C, libMapM_gv_mMGardensDragonDragonTowerCaptureTime_C, libMapM_gv_mMGardensDragonDragonTowerOverCaptureTime_C, libGame_ge_CapturePointDecay_DoNotDecay, libGame_ge_CapturePointDecay_Owner, true);
libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_captureBeaconIndex = libGame_gf_LastCreatedCapturePoint();
libGame_gf_CapturePointDisable(libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_captureBeaconIndex);
auto3D9EC4D4_g = PlayerGroupAll();
lv_player = -1;
while (true) {
lv_player = PlayerGroupNextPlayer(auto3D9EC4D4_g, lv_player);
if (lv_player<0) { break; }
VisRevealArea(lv_player, RegionCircle(UnitGetPosition(lv_u), 0.75), 0.125, false);
}
autoC3C6CAFA_g = UnitGroup("GardensDragonShrineTargetMoon", c_playerAny, null, UnitFilter(0, 0, 0, 0), 1);
autoC3C6CAFA_u = UnitGroupCount(autoC3C6CAFA_g, c_unitCountAll);
for (;; autoC3C6CAFA_u -= 1) {
lv_utargetZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ = UnitGroupUnitFromEnd(autoC3C6CAFA_g, autoC3C6CAFA_u);
if (lv_utargetZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ == null) { break; }
libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_shrineBeamTargetUnit = lv_utargetZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ;
}
lv_beam_count = 0.0;
lv_beam_fulldistance = DistanceBetweenPoints(UnitGetPosition(lv_u), UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_shrineBeamTargetUnit));
while ((lv_beam_count < lv_beam_fulldistance)) {
lv_beam_count += 1.0;
RegionAddCircle(libMapM_gv_mMGardensDragonSoundRegion, true, libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_u), lv_beam_count, UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[libMapM_gv_mMGardensDragonDragonTowerCount].lv_shrineBeamTargetUnit)), 1.0);
}
}
if ((CatalogFieldValueGetAsFixed(c_gameCatalogEffect, "UseVehiclePersistent", "PeriodicPeriodArray[" + IntToString(0) + "]", 0) == 0.0)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_8D3E1C40"), true);
auto2BE87695_g = PlayerGroupAll();
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto2BE87695_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
CatalogFieldValueSetInt(c_gameCatalogEffect, "UseVehiclePersistent", "PeriodCount", lv_itPlayer, FixedToInt((libMapM_gv_mMGardensDragonDragonStatueChannelTime_C / 0.125)));
}
}
else {
autoAB2D3B75_g = PlayerGroupAll();
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(autoAB2D3B75_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
CatalogFieldValueSetInt(c_gameCatalogEffect, "UseVehiclePersistent", "PeriodCount", lv_itPlayer, FixedToInt((libMapM_gv_mMGardensDragonDragonStatueChannelTime_C / CatalogFieldValueGetAsFixed(c_gameCatalogEffect, "UseVehiclePersistent", "PeriodicPeriodArray[" + IntToString(0) + "]", 0))));
}
}
return true;
}
trigger auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_Trigger = null;
int auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_lp_dragonballTowerIndex;
int auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_lp_newOwner;
playergroup auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_lp_capturingPlayers;
void libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership (int lp_dragonballTowerIndex, int lp_newOwner, playergroup lp_capturingPlayers) {
auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_lp_dragonballTowerIndex = lp_dragonballTowerIndex;
auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_lp_newOwner = lp_newOwner;
auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_lp_capturingPlayers = lp_capturingPlayers;
if (auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_Trigger == null) {
auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_Trigger = TriggerCreate("auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_Trigger, false, false);
}
bool auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_TriggerFunc (bool testConds, bool runActions) {
int lp_dragonballTowerIndex = auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_lp_dragonballTowerIndex;
int lp_newOwner = auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_lp_newOwner;
playergroup lp_capturingPlayers = auto_libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership_lp_capturingPlayers;
// Variable Declarations
int lv_player;
unitgroup lv_pillarUnits;
int lv_iterPlayer;
// Automatic Variable Declarations
playergroup autoAAB21751_g;
// Variable Initialization
lv_pillarUnits = UnitGroupEmpty();
// Implementation
if ((lp_newOwner == libCore_gv_cOMPUTER_Neutral)) {
libNtve_gf_SendActorMessageToUnit(libMapM_gv_mMGardensDragonDragonTowers[lp_dragonballTowerIndex].lv_shrineUnit, "AnimBracketStop Capture");
}
else {
libNtve_gf_SendActorMessageToUnit(libMapM_gv_mMGardensDragonDragonTowers[lp_dragonballTowerIndex].lv_shrineUnit, "AnimBracketStart Capture Stand,Work,Start Stand,Work Stand,Work,End");
}
UnitSetOwner(libMapM_gv_mMGardensDragonDragonTowers[lp_dragonballTowerIndex].lv_shrineUnit, lp_newOwner, true);
libGame_gf_SendEventMapDragonShireObeliskOwnershipChange(lp_newOwner, libMapM_gv_mMGardensDragonDragonTowers[lp_dragonballTowerIndex].lv_shrineUnit, lp_capturingPlayers);
ActorSend(libNtve_gf_MainActorofUnit(libMapM_gv_mMGardensDragonDragonTowers[lp_dragonballTowerIndex].lv_shrineUnit), "Signal ActiveSoundTog");
TriggerExecute(libMapM_gt_MMGardensDragonDragonTowerCheckObeliskStatus, true, false);
Wait(0.125, c_timeGame);
autoAAB21751_g = PlayerGroupAll();
lv_player = -1;
while (true) {
lv_player = PlayerGroupNextPlayer(autoAAB21751_g, lv_player);
if (lv_player<0) { break; }
VisRevealArea(lv_player, RegionCircle(UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[lp_dragonballTowerIndex].lv_shrineUnit), 0.75), 0.125, false);
}
return true;
}
trigger auto_libMapM_gf_MMGardensDragonDeactivateStatue_Trigger = null;
int auto_libMapM_gf_MMGardensDragonDeactivateStatue_lp_computerPlayer;
void libMapM_gf_MMGardensDragonDeactivateStatue (int lp_computerPlayer) {
auto_libMapM_gf_MMGardensDragonDeactivateStatue_lp_computerPlayer = lp_computerPlayer;
if (auto_libMapM_gf_MMGardensDragonDeactivateStatue_Trigger == null) {
auto_libMapM_gf_MMGardensDragonDeactivateStatue_Trigger = TriggerCreate("auto_libMapM_gf_MMGardensDragonDeactivateStatue_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMGardensDragonDeactivateStatue_Trigger, false, false);
}
bool auto_libMapM_gf_MMGardensDragonDeactivateStatue_TriggerFunc (bool testConds, bool runActions) {
int lp_computerPlayer = auto_libMapM_gf_MMGardensDragonDeactivateStatue_lp_computerPlayer;
// Variable Declarations
int lv_player;
int lv_towerIndex;
// Automatic Variable Declarations
const int autoCF060AB7_ae = libMapM_gv_mMGardensDragonDragonTowerObeliskCount_C;
const int autoCF060AB7_ai = 1;
playergroup autoA4D903F6_g;
// Variable Initialization
// Implementation
UnitSetOwner(libMapM_gv_mMGardensDragonStatue, 0, true);
lv_towerIndex = 1;
for ( ; ( (autoCF060AB7_ai >= 0 && lv_towerIndex <= autoCF060AB7_ae) || (autoCF060AB7_ai < 0 && lv_towerIndex >= autoCF060AB7_ae) ) ; lv_towerIndex += autoCF060AB7_ai ) {
UnitIssueOrder(libMapM_gv_mMGardensDragonDragonTowers[lv_towerIndex].lv_shrineUnit, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
}
ActorScopeSend(ActorScopeFromActor(libMapM_gv_mMGardensDragonSoundRegionActor), "Signal StopSound");
ActorRegionCreate(null, "DragonBeamEndRegion", libMapM_gv_mMGardensDragonSoundRegion);
UnitBehaviorRemove(libMapM_gv_mMGardensDragonStatue, "GenericVehicleBehaviorEmpty", 1);
UnitBehaviorAdd(libMapM_gv_mMGardensDragonStatue, "DragonShrineDeactivated", libMapM_gv_mMGardensDragonStatue, 1);
UnitSetState(libMapM_gv_mMGardensDragonStatue, c_unitStateHighlightable, false);
UnitSetState(libMapM_gv_mMGardensDragonStatue, c_unitStateTargetable, false);
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormWarning", UnitGetPosition(libMapM_gv_mMGardensDragonStatue), ColorWithAlpha(100.00, 0.00, 0.00, 0.00), 3.0);
if ((lp_computerPlayer == libCore_gv_cOMPUTER_TeamOrder)) {
RemoveUnitOfInterest(libMapM_gv_mMGardensDragonStatue, "ActivateDragonKnight", libNtve_ge_GoalTeam_Order);
RemoveUnitOfInterest(libMapM_gv_mMGardensDragonStatue, "DefendDragonStatue", libNtve_ge_GoalTeam_Chaos);
}
else {
RemoveUnitOfInterest(libMapM_gv_mMGardensDragonStatue, "ActivateDragonKnight", libNtve_ge_GoalTeam_Chaos);
RemoveUnitOfInterest(libMapM_gv_mMGardensDragonStatue, "DefendDragonStatue", libNtve_ge_GoalTeam_Order);
}
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTag, PlayerGroupAll(), true);
autoA4D903F6_g = libCore_gv_activeHumanPlayers;
lv_player = -1;
while (true) {
lv_player = PlayerGroupNextPlayer(autoA4D903F6_g, lv_player);
if (lv_player<0) { break; }
if ((libMapM_gv_mapMechanicUsedTracker[lv_player].lv_dragonStatue == true)) {
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTag, libCore_gv_playerGroupFromPlayer[lv_player], false);
}
}
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTagAllyOwned, PlayerGroupAll(), false);
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTagEnemyOwned, PlayerGroupAll(), false);
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTag, libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], false);
TimerPause(libMapM_gv_mMGardensDragonDragonStatueActiveReminderTimer, true);
return true;
}
trigger auto_libMapM_gf_MMGardensDragonActivateStatueForTeam_Trigger = null;
int auto_libMapM_gf_MMGardensDragonActivateStatueForTeam_lp_computerPlayer;
void libMapM_gf_MMGardensDragonActivateStatueForTeam (int lp_computerPlayer) {
auto_libMapM_gf_MMGardensDragonActivateStatueForTeam_lp_computerPlayer = lp_computerPlayer;
if (auto_libMapM_gf_MMGardensDragonActivateStatueForTeam_Trigger == null) {
auto_libMapM_gf_MMGardensDragonActivateStatueForTeam_Trigger = TriggerCreate("auto_libMapM_gf_MMGardensDragonActivateStatueForTeam_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMGardensDragonActivateStatueForTeam_Trigger, false, false);
}
bool auto_libMapM_gf_MMGardensDragonActivateStatueForTeam_TriggerFunc (bool testConds, bool runActions) {
int lp_computerPlayer = auto_libMapM_gf_MMGardensDragonActivateStatueForTeam_lp_computerPlayer;
// Variable Declarations
int lv_camp;
int lv_scalingcamp;
int lv_defender;
int lv_i;
int lv_p;
// Automatic Variable Declarations
int autoE85C092C_ae;
const int autoE85C092C_ai = 1;
playergroup auto57396F19_g;
playergroup auto3B8E9622_g;
playergroup autoA43C1C70_g;
playergroup auto6728DB37_g;
// Variable Initialization
// Implementation
UnitSetOwner(libMapM_gv_mMGardensDragonStatue, lp_computerPlayer, true);
autoE85C092C_ae = libMapM_gv_mMGardensDragonDragonTowerCount;
lv_i = 1;
for ( ; ( (autoE85C092C_ai >= 0 && lv_i <= autoE85C092C_ae) || (autoE85C092C_ai < 0 && lv_i >= autoE85C092C_ae) ) ; lv_i += autoE85C092C_ai ) {
UnitIssueOrder(libMapM_gv_mMGardensDragonDragonTowers[lv_i].lv_shrineUnit, OrderTargetingUnit(AbilityCommand("GardensObeliskActivate", 0), libMapM_gv_mMGardensDragonDragonTowers[lv_i].lv_shrineBeamTargetUnit), c_orderQueueReplace);
}
ActorRegionCreate(null, "DragonBeamStartRegion", libMapM_gv_mMGardensDragonSoundRegion);
ActorRegionCreate(null, "DragonBeamLoopRegion", libMapM_gv_mMGardensDragonSoundRegion);
libMapM_gv_mMGardensDragonSoundRegionActor = libNtve_gf_ActorLastCreated();
UnitBehaviorAdd(libMapM_gv_mMGardensDragonStatue, "GenericVehicleBehaviorEmpty", libMapM_gv_mMGardensDragonStatue, 1);
UnitBehaviorRemove(libMapM_gv_mMGardensDragonStatue, "DragonShrineDeactivated", 1);
if ((lp_computerPlayer == libCore_gv_cOMPUTER_TeamOrder)) {
AddUnitOfInterest(libMapM_gv_mMGardensDragonStatue, 2.0, 0.0, "ActivateDragonKnight", libNtve_ge_GoalTeam_Order, 0);
AddUnitOfInterest(libMapM_gv_mMGardensDragonStatue, 6.0, 0.0, "DefendDragonStatue", libNtve_ge_GoalTeam_Chaos, 0);
}
else {
AddUnitOfInterest(libMapM_gv_mMGardensDragonStatue, 2.0, 0.0, "ActivateDragonKnight", libNtve_ge_GoalTeam_Chaos, 0);
AddUnitOfInterest(libMapM_gv_mMGardensDragonStatue, 6.0, 0.0, "DefendDragonStatue", libNtve_ge_GoalTeam_Order, 0);
}
UnitSetState(libMapM_gv_mMGardensDragonStatue, c_unitStateHighlightable, true);
auto57396F19_g = PlayerGroupAlliance(c_playerGroupAlly, lp_computerPlayer);
lv_p = -1;
while (true) {
lv_p = PlayerGroupNextPlayer(auto57396F19_g, lv_p);
if (lv_p<0) { break; }
UnitSetStateForPlayer(libMapM_gv_mMGardensDragonStatue, c_unitStateTargetable, lv_p, true);
}
auto3B8E9622_g = PlayerGroupAlliance(c_playerGroupEnemy, lp_computerPlayer);
lv_p = -1;
while (true) {
lv_p = PlayerGroupNextPlayer(auto3B8E9622_g, lv_p);
if (lv_p<0) { break; }
UnitSetStateForPlayer(libMapM_gv_mMGardensDragonStatue, c_unitStateTargetable, lv_p, false);
}
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTag, PlayerGroupAll(), false);
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTagAllyOwned, PlayerGroupAlliance(c_playerGroupAlly, lp_computerPlayer), true);
autoA43C1C70_g = PlayerGroupAlliance(c_playerGroupAlly, lp_computerPlayer);
lv_p = -1;
while (true) {
lv_p = PlayerGroupNextPlayer(autoA43C1C70_g, lv_p);
if (lv_p<0) { break; }
if ((PlayerGroupHasPlayer(libCore_gv_activeHumanPlayers, lv_p) == true)) {
if ((libMapM_gv_mapMechanicUsedTracker[lv_p].lv_dragonStatue == true)) {
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTagAllyOwned, libCore_gv_playerGroupFromPlayer[lv_p], false);
}
}
}
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTagEnemyOwned, PlayerGroupAlliance(c_playerGroupEnemy, lp_computerPlayer), true);
auto6728DB37_g = PlayerGroupAlliance(c_playerGroupEnemy, lp_computerPlayer);
lv_p = -1;
while (true) {
lv_p = PlayerGroupNextPlayer(auto6728DB37_g, lv_p);
if (lv_p<0) { break; }
if ((PlayerGroupHasPlayer(libCore_gv_activeHumanPlayers, lv_p) == true)) {
if ((libMapM_gv_mapMechanicUsedTracker[lv_p].lv_dragonStatue == true)) {
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTagEnemyOwned, libCore_gv_playerGroupFromPlayer[lv_p], false);
}
}
}
TextTagShow(libMapM_gv_mMGardensDragonStatueTextTag, libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], false);
TimerStart(libMapM_gv_mMGardensDragonDragonStatueActiveReminderTimer, 1.0, false, c_timeGame);
return true;
}
fixed libMapM_gf_MMGardensDragonDragonDuration () {
// Automatic Variable Declarations
// Implementation
return IntToFixed((FixedToInt(libMapM_gv_mMGardensDragonDragonKnightStartingTime_C)+2*FixedToInt(TimerGetElapsed(libGame_gv_gameTimer))/60));
}
bool libMapM_gf_MMGardensDragonObeliskFullyCaptured (unit lp_obeliskUnit) {
// Variable Declarations
int lv_obeliskIndex;
// Automatic Variable Declarations
int auto7B50E203_ae;
// Variable Initialization
// Implementation
auto7B50E203_ae = libMapM_gv_mMGardensDragonDragonTowerObeliskCount_C;
lv_obeliskIndex = 1;
for ( ; lv_obeliskIndex <= auto7B50E203_ae ; lv_obeliskIndex += 1 ) {
if ((libMapM_gv_mMGardensDragonDragonTowers[lv_obeliskIndex].lv_shrineUnit == lp_obeliskUnit)) {
return libGame_gf_CapturePointFullyCaptured(libMapM_gv_mMGardensDragonDragonTowers[lv_obeliskIndex].lv_captureBeaconIndex);
}
}
return false;
}
void libMapM_gf_MMGardensDragonDragonHasEnteredArtHooks () {
// Automatic Variable Declarations
// Implementation
libGame_gf_SpecialLightingEventStart("StormDragonFire", PlayerGroupAll(), 3.0);
ActorSend(libMapM_gv_mapMechanicControllerActor, "Signal MM1On");
SoundPlayForPlayer(SoundLink("Event_Gardens_Dragon_Ambient_Start", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
SoundPlayForPlayer(SoundLink("Event_Gardens_Dragon_Ambient_Loop", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
libMapM_gv_mMGardensDragonAmbientSound = SoundLastPlayed();
}
void libMapM_gf_MMGardensDragonDragonHasLeftArtHooks () {
// Automatic Variable Declarations
// Implementation
libGame_gf_SpecialLightingEventEnd("StormDragonFire", PlayerGroupAll(), 3.0);
ActorSend(libMapM_gv_mapMechanicControllerActor, "Signal MM1Off");
ActorSend(libMapM_gv_mapMechanicControllerActor, "Signal MM2On");
SoundStop(libMapM_gv_mMGardensDragonAmbientSound, true);
SoundPlayForPlayer(SoundLink("Event_Gardens_Dragon_Ambient_End", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
}
trigger auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingFirstQ_Trigger = null;
void libMapM_gf_MMDragonballsTransmissionObelisksChargingFirstQ () {
if (auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingFirstQ_Trigger == null) {
auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingFirstQ_Trigger = TriggerCreate("auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingFirstQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingFirstQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingFirstQ_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "DS - Shrines Charge First", "Value", 1, 1);
ConversationDataRun("DragonShire", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingRepeatQ_Trigger = null;
void libMapM_gf_MMDragonballsTransmissionObelisksChargingRepeatQ () {
if (auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingRepeatQ_Trigger == null) {
auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingRepeatQ_Trigger = TriggerCreate("auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingRepeatQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingRepeatQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMDragonballsTransmissionObelisksChargingRepeatQ_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "DS - Shrines Charge Repeat", "Value", 1, 1);
ConversationDataRun("DragonShire", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnFirstQ_Trigger = null;
void libMapM_gf_MMDragonballsTransmissionObelisksSpawnFirstQ () {
if (auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnFirstQ_Trigger == null) {
auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnFirstQ_Trigger = TriggerCreate("auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnFirstQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnFirstQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnFirstQ_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "DS - Shrines Spawn First", "Value", 1, 1);
ConversationDataRun("DragonShire", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnRepeatQ_Trigger = null;
void libMapM_gf_MMDragonballsTransmissionObelisksSpawnRepeatQ () {
if (auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnRepeatQ_Trigger == null) {
auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnRepeatQ_Trigger = TriggerCreate("auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnRepeatQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnRepeatQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMDragonballsTransmissionObelisksSpawnRepeatQ_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "DS - Shrines Spawn Repeat", "Value", 1, 1);
ConversationDataRun("DragonShire", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMapM_gf_MMDragonballsTransmissionDragonCapturableQ_Trigger = null;
int auto_libMapM_gf_MMDragonballsTransmissionDragonCapturableQ_lp_activeTeam;
void libMapM_gf_MMDragonballsTransmissionDragonCapturableQ (int lp_activeTeam) {
auto_libMapM_gf_MMDragonballsTransmissionDragonCapturableQ_lp_activeTeam = lp_activeTeam;
if (auto_libMapM_gf_MMDragonballsTransmissionDragonCapturableQ_Trigger == null) {
auto_libMapM_gf_MMDragonballsTransmissionDragonCapturableQ_Trigger = TriggerCreate("auto_libMapM_gf_MMDragonballsTransmissionDragonCapturableQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMDragonballsTransmissionDragonCapturableQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMDragonballsTransmissionDragonCapturableQ_TriggerFunc (bool testConds, bool runActions) {
int lp_activeTeam = auto_libMapM_gf_MMDragonballsTransmissionDragonCapturableQ_lp_activeTeam;
// Variable Declarations
playergroup lv_orderPlayerGroup;
playergroup lv_chaosPlayerGroup;
playergroup lv_observerPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_orderPlayerGroup = PlayerGroupEmpty();
lv_chaosPlayerGroup = PlayerGroupEmpty();
lv_observerPlayer = PlayerGroupEmpty();
// Implementation
return true;
}
trigger auto_libMapM_gf_MMDragonballsTransmissionDragonActiveQ_Trigger = null;
int auto_libMapM_gf_MMDragonballsTransmissionDragonActiveQ_lp_activeTeam;
void libMapM_gf_MMDragonballsTransmissionDragonActiveQ (int lp_activeTeam) {
auto_libMapM_gf_MMDragonballsTransmissionDragonActiveQ_lp_activeTeam = lp_activeTeam;
if (auto_libMapM_gf_MMDragonballsTransmissionDragonActiveQ_Trigger == null) {
auto_libMapM_gf_MMDragonballsTransmissionDragonActiveQ_Trigger = TriggerCreate("auto_libMapM_gf_MMDragonballsTransmissionDragonActiveQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMDragonballsTransmissionDragonActiveQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMDragonballsTransmissionDragonActiveQ_TriggerFunc (bool testConds, bool runActions) {
int lp_activeTeam = auto_libMapM_gf_MMDragonballsTransmissionDragonActiveQ_lp_activeTeam;
// Variable Declarations
playergroup lv_orderPlayerGroup;
playergroup lv_chaosPlayerGroup;
playergroup lv_observerPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_orderPlayerGroup = PlayerGroupEmpty();
lv_chaosPlayerGroup = PlayerGroupEmpty();
lv_observerPlayer = PlayerGroupEmpty();
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
ConversationDataLineResetPlayers("DragonShire", ("Left"));
ConversationDataLineResetPlayers("DragonShire", ("Right"));
ConversationDataLineResetPlayers("DragonShire", ("Observer"));
if ((lp_activeTeam == libGame_gv_teamOrderIndex_C)) {
UserDataSetInt("MapVOEvent", "DS - Dragon - Left", "Value", 1, 1);
}
else {
UserDataSetInt("MapVOEvent", "DS - Dragon - Right", "Value", 1, 1);
}
lv_orderPlayerGroup = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false);
lv_chaosPlayerGroup = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false);
lv_observerPlayer = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
ConversationDataLineSetPlayers("DragonShire", ("Left"), lv_orderPlayerGroup);
ConversationDataLineSetPlayers("DragonShire", ("Right"), lv_chaosPlayerGroup);
ConversationDataLineSetPlayers("DragonShire", ("Observer"), lv_observerPlayer);
ConversationDataRun("DragonShire", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
trigger auto_libMapM_gf_MMDragonballsTransmissionDragonExpireQ_Trigger = null;
void libMapM_gf_MMDragonballsTransmissionDragonExpireQ () {
if (auto_libMapM_gf_MMDragonballsTransmissionDragonExpireQ_Trigger == null) {
auto_libMapM_gf_MMDragonballsTransmissionDragonExpireQ_Trigger = TriggerCreate("auto_libMapM_gf_MMDragonballsTransmissionDragonExpireQ_TriggerFunc");
}
TriggerExecute(auto_libMapM_gf_MMDragonballsTransmissionDragonExpireQ_Trigger, false, false);
}
bool auto_libMapM_gf_MMDragonballsTransmissionDragonExpireQ_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "DS - Dragon Death", "Value", 1, 1);
ConversationDataRun("DragonShire", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
TriggerQueueExit();
return true;
}
void libMapM_gf_AddVehicle (unit lp_vehicleUnit) {
// Variable Declarations
int lv_i;
// Automatic Variable Declarations
int autoB6D310BA_ae;
const int autoB6D310BA_ai = 1;
// Variable Initialization
// Implementation
if ((libMapM_gv_vehicle_VehicleCount >= libMapM_gv_vehicle_MaxNumberOfVehicles_C)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_8251E6F5"), true);
return ;
}
autoB6D310BA_ae = libMapM_gv_vehicle_VehicleCount;
lv_i = 1;
for ( ; ( (autoB6D310BA_ai >= 0 && lv_i <= autoB6D310BA_ae) || (autoB6D310BA_ai < 0 && lv_i >= autoB6D310BA_ae) ) ; lv_i += autoB6D310BA_ai ) {
if ((lp_vehicleUnit == libMapM_gv_vehicle[lv_i].lv_unit_Vehicle)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_34348242"), true);
return ;
}
}
libMapM_gv_vehicle_VehicleCount += 1;
libMapM_gv_vehicle[libMapM_gv_vehicle_VehicleCount].lv_unit_Vehicle = lp_vehicleUnit;
}
void libMapM_gf_RemoveVehicle (unit lp_vehicleUnit) {
// Variable Declarations
int lv_vehicleIndex;
int lv_i;
// Automatic Variable Declarations
int auto16D03FA9_ae;
// Variable Initialization
lv_vehicleIndex = libMapM_gf_GetVehicleIndexOfUnit(lp_vehicleUnit);
// Implementation
if ((lv_vehicleIndex == 0)) {
TextExpressionSetToken("Param/Expression/lib_MapM_BC366086", "A", UnitTypeGetName(UnitGetType(lp_vehicleUnit)));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MapM_BC366086"), true);
return ;
}
if ((libMapM_gv_vehicle_VehicleCount == 1)) {
libMapM_gv_vehicle[lv_vehicleIndex].lv_unit_Vehicle = null;
libMapM_gv_vehicle[lv_vehicleIndex].lv_unit_UnitInsideVehicle = null;
libMapM_gv_vehicle[lv_vehicleIndex].lv_unit_LinkedVehicle = null;
libMapM_gv_vehicle[lv_vehicleIndex].lv_player_PlayerControllingVehicle = 0;
libMapM_gv_vehicle_VehicleCount -= 1;
}
else {
auto16D03FA9_ae = libMapM_gv_vehicle_VehicleCount;
lv_i = (lv_vehicleIndex + 1);
for ( ; lv_i <= auto16D03FA9_ae ; lv_i += 1 ) {
libMapM_gv_vehicle[(lv_i - 1)].lv_unit_Vehicle = libMapM_gv_vehicle[lv_i].lv_unit_Vehicle;
libMapM_gv_vehicle[(lv_i - 1)].lv_unit_UnitInsideVehicle = libMapM_gv_vehicle[lv_i].lv_unit_UnitInsideVehicle;
libMapM_gv_vehicle[(lv_i - 1)].lv_unit_LinkedVehicle = libMapM_gv_vehicle[lv_i].lv_unit_LinkedVehicle;
libMapM_gv_vehicle[(lv_i - 1)].lv_player_PlayerControllingVehicle = libMapM_gv_vehicle[lv_i].lv_player_PlayerControllingVehicle;
}
libMapM_gv_vehicle[libMapM_gv_vehicle_VehicleCount].lv_unit_Vehicle = null;
libMapM_gv_vehicle[libMapM_gv_vehicle_VehicleCount].lv_unit_UnitInsideVehicle = null;
libMapM_gv_vehicle[libMapM_gv_vehicle_VehicleCount].lv_unit_LinkedVehicle = null;
libMapM_gv_vehicle[libMapM_gv_vehicle_VehicleCount].lv_player_PlayerControllingVehicle = 0;
libMapM_gv_vehicle_VehicleCount -= 1;
}
}
void libMapM_gf_SwapVehicleForPlayer (unit lp_originalVehicle, unit lp_newVehicle) {
// Variable Declarations
int lv_originalVehicle_Index;
int lv_newVehicle_Index;
// Automatic Variable Declarations
// Variable Initialization
lv_originalVehicle_Index = libMapM_gf_GetVehicleIndexOfUnit(lp_originalVehicle);
lv_newVehicle_Index = libMapM_gf_GetVehicleIndexOfUnit(lp_newVehicle);
// Implementation
libMapM_gf_PlayerEntersVehicle(libMapM_gv_vehicle[lv_originalVehicle_Index].lv_unit_UnitInsideVehicle, libMapM_gv_vehicle[lv_newVehicle_Index].lv_unit_Vehicle);
libMapM_gf_PlayerLeavesVehicle(lv_originalVehicle_Index);
}
void libMapM_gf_LinkVehicleToVehicle (unit lp_vehicleUnit_1, unit lp_vehicleUnit_2) {
// Variable Declarations
int lv_vehicle1_Index;
int lv_vehicle2_Index;
// Automatic Variable Declarations
// Variable Initialization
lv_vehicle1_Index = libMapM_gf_GetVehicleIndexOfUnit(lp_vehicleUnit_1);
lv_vehicle2_Index = libMapM_gf_GetVehicleIndexOfUnit(lp_vehicleUnit_2);
// Implementation
if (((lv_vehicle1_Index == 0) || (lv_vehicle2_Index == 0))) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_1A843F28"), true);
return ;
}
libMapM_gv_vehicle[lv_vehicle1_Index].lv_unit_LinkedVehicle = lp_vehicleUnit_2;
libMapM_gv_vehicle[lv_vehicle2_Index].lv_unit_LinkedVehicle = lp_vehicleUnit_1;
}
void libMapM_gf_PlayerEntersVehicle (unit lp_unitEnteringVehicle, unit lp_vehicleUnit) {
// Variable Declarations
int lv_index;
// Automatic Variable Declarations
// Variable Initialization
lv_index = libMapM_gf_GetVehicleIndexOfUnit(lp_vehicleUnit);
// Implementation
libMapM_gv_vehicle[lv_index].lv_unit_UnitInsideVehicle = lp_unitEnteringVehicle;
libMapM_gv_vehicle[lv_index].lv_player_PlayerControllingVehicle = UnitGetOwner(lp_unitEnteringVehicle);
}
void libMapM_gf_PlayerLeavesVehicle (int lp_vehicleIndex) {
// Automatic Variable Declarations
// Implementation
libMapM_gv_vehicle[lp_vehicleIndex].lv_unit_UnitInsideVehicle = null;
libMapM_gv_vehicle[lp_vehicleIndex].lv_player_PlayerControllingVehicle = 0;
}
int libMapM_gf_GetVehicleIndexOfUnit (unit lp_vehicleUnit) {
// Variable Declarations
int lv_i;
// Automatic Variable Declarations
int autoA7F701F9_ae;
const int autoA7F701F9_ai = 1;
// Variable Initialization
// Implementation
autoA7F701F9_ae = libMapM_gv_vehicle_VehicleCount;
lv_i = 1;
for ( ; ( (autoA7F701F9_ai >= 0 && lv_i <= autoA7F701F9_ae) || (autoA7F701F9_ai < 0 && lv_i >= autoA7F701F9_ae) ) ; lv_i += autoA7F701F9_ai ) {
if ((lp_vehicleUnit == libMapM_gv_vehicle[lv_i].lv_unit_Vehicle)) {
return lv_i;
}
}
return 0;
}
// Triggers
//--------------------------------------------------------------------------------------------------
// Trigger: #Include Map Mechanics
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_IncludeMapMechanics_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_IncludeMapMechanics_Init () {
libMapM_gt_IncludeMapMechanics = TriggerCreate("libMapM_gt_IncludeMapMechanics_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Summoner Minion Laner Scaling
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_SummonerMinionLanerScaling_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_summoner;
int lv_team;
int lv_campIndex;
int lv_lane;
int lv_summonIndex;
int lv_waypoint;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnitCreatedUnit()) == "MercSummonerLanerMinion"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitXPAddXP(EventUnitCreatedUnit(), null, libGame_gv_scalingTicks);
lv_summoner = UnitGroupUnit(UnitGroup("MercSummonerLaner", UnitGetOwner(EventUnitCreatedUnit()), RegionCircle(UnitGetPosition(EventUnitCreatedUnit()), 6.0), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0), 1);
if ((lv_summoner != null)) {
lv_summonIndex = FixedToInt(UnitGetCustomValue(lv_summoner, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_SummonerSummonIndex)));
if ((lv_summonIndex < 2)) {
UnitSetCustomValue(lv_summoner, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_SummonerSummonIndex), IntToFixed((lv_summonIndex + 1)));
lv_campIndex = FixedToInt(UnitGetCustomValue(lv_summoner, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_JungleLanerCreepCampIndex)));
lv_team = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_summoner));
lv_lane = libMapM_gv_jungleCreepCamps[lv_campIndex].lv_mercLaneLastSpawnedIn[lv_team];
lv_waypoint = libMapM_gv_jungleCreepCamps[lv_campIndex].lv_mercSpawnFirstWaypointIndex[lv_team];
libAIAI_gf_MinionAIStartMinionAI(-1, EventUnitCreatedUnit(), lv_lane, lv_waypoint, true, false, false, 0, false);
return true;
}
}
libGame_gf_CalculateSpawnedMinionGoalPoints(UnitGetOwner(EventUnitCreatedUnit()), UnitGetPosition(EventUnitCreatedUnit()));
libAIAI_gf_MinionAIStartMinionAI(-1, EventUnitCreatedUnit(), libGame_gv_spawnedMinionLane, libGame_gv_spawnedMinionFirstWaypointIndex, false, true, false, libGame_gf_EnemyTeam(libGame_gf_TeamNumberOfPlayer(UnitGetOwner(EventUnitCreatedUnit()))), false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_SummonerMinionLanerScaling_Init () {
libMapM_gt_SummonerMinionLanerScaling = TriggerCreate("libMapM_gt_SummonerMinionLanerScaling_Func");
TriggerEnable(libMapM_gt_SummonerMinionLanerScaling, false);
TriggerAddEventUnitCreated(libMapM_gt_SummonerMinionLanerScaling, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Data - Jungle Camp Defender Doubloons
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DataJungleCampDefenderDoubloons_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_campType;
int lv_rank;
int lv_rankToStartScaling;
// Automatic Variable Declarations
int auto4811CEB5_ae;
const int auto4811CEB5_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_campType = (libMapM_ge_JungleCampDefenderTypes_Doubloons);
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campIsSoloable = true;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defendersCoweronDeath = false;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_aIGoalLink = "MercenaryCampDoubloon";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_initialSpawnDelay = libMapM_gv_genericMercCampInitialSpawnDelay_C;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_respawnTime = 150.0;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_numberOfCreeps = 2;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[1] = "SkeletalPirate";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[2] = "SkeletalPirate";
libMapM_gf_DataInitializeScalingDataForDefender(libMapM_ge_JungleCampDefenderTypes_Doubloons, "DoubloonDefenderScaling");
lv_rankToStartScaling = 2;
auto4811CEB5_ae = (lv_rankToStartScaling - 1);
lv_rank = 0;
for ( ; ( (auto4811CEB5_ai >= 0 && lv_rank <= auto4811CEB5_ae) || (auto4811CEB5_ai < 0 && lv_rank >= auto4811CEB5_ae) ) ; lv_rank += auto4811CEB5_ai ) {
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 5;
}
lv_rank = lv_rankToStartScaling;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 6;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 7;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 7;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 8;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 8;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 9;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 9;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 10;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 10;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 10;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 11;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 11;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 11;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 12;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 12;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 12;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 13;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 13;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 13;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 14;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 14;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 14;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 15;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 15;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 15;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 17;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 17;
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DataJungleCampDefenderDoubloons_Init () {
libMapM_gt_DataJungleCampDefenderDoubloons = TriggerCreate("libMapM_gt_DataJungleCampDefenderDoubloons_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Data - Jungle Camp Defender Siege Giants
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DataJungleCampDefenderSiegeGiants_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_campType;
int lv_rank;
int lv_rankToStartScaling;
// Automatic Variable Declarations
int autoAADE6A3C_ae;
const int autoAADE6A3C_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_campType = (libMapM_ge_JungleCampDefenderTypes_SiegeGiants);
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campIsSoloable = true;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_aIGoalLink = "MercenaryCampSiegeGiants";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defendersCoweronDeath = true;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_initialSpawnDelay = libMapM_gv_genericMercCampInitialSpawnDelay_C;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_respawnTime = 180.0;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_numberOfCreeps = 2;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[1] = "MercDefenderSiegeGiant";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defenderCoweringUnit[1] = true;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[2] = "MercDefenderSiegeGiant";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defenderCoweringUnit[2] = true;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_xPAwardForCapture = libCore_gv_data_XP_SiegeGiantCapture_C;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campTypeMinimapLabel = StringExternal("Param/Value/lib_MapM_CD592AD9");
libMapM_gf_DataInitializeScalingDataForDefender(libMapM_ge_JungleCampDefenderTypes_SiegeGiants, "SiegeGiantDefenderScaling");
lv_rankToStartScaling = 2;
autoAADE6A3C_ae = (lv_rankToStartScaling - 1);
lv_rank = 0;
for ( ; ( (autoAADE6A3C_ai >= 0 && lv_rank <= autoAADE6A3C_ae) || (autoAADE6A3C_ai < 0 && lv_rank >= autoAADE6A3C_ae) ) ; lv_rank += autoAADE6A3C_ai ) {
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 6;
}
lv_rank = lv_rankToStartScaling;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 7;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 8;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 8;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 9;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 9;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 10;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 10;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 11;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 11;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 11;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 12;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 12;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 12;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 13;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 13;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 13;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 14;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 14;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 14;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 15;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 15;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 15;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 17;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 17;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 17;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 18;
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DataJungleCampDefenderSiegeGiants_Init () {
libMapM_gt_DataJungleCampDefenderSiegeGiants = TriggerCreate("libMapM_gt_DataJungleCampDefenderSiegeGiants_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Data - Jungle Camp Defender Knights
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DataJungleCampDefenderKnights_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_campType;
int lv_rank;
int lv_rankToStartScaling;
// Automatic Variable Declarations
int auto2880C3C4_ae;
const int auto2880C3C4_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_campType = (libMapM_ge_JungleCampDefenderTypes_Knights);
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campIsSoloable = true;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_aIGoalLink = "MercenaryCampKnights";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defendersCoweronDeath = false;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_initialSpawnDelay = libMapM_gv_genericMercCampInitialSpawnDelay_C;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_respawnTime = 240.0;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_numberOfCreeps = 4;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[1] = "MercDefenderMeleeKnight";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[2] = "MercDefenderMeleeKnight";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[3] = "MercDefenderMeleeKnight";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[4] = "MercDefenderRangedMage";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_xPAwardForCapture = libCore_gv_data_XP_OgreCapture_C;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campTypeMinimapLabel = StringExternal("Param/Value/lib_MapM_EC6BA293");
libMapM_gf_DataInitializeScalingDataForDefender(libMapM_ge_JungleCampDefenderTypes_Knights, "OgreDefenderScaling");
lv_rankToStartScaling = 2;
auto2880C3C4_ae = (lv_rankToStartScaling - 1);
lv_rank = 0;
for ( ; ( (auto2880C3C4_ai >= 0 && lv_rank <= auto2880C3C4_ae) || (auto2880C3C4_ai < 0 && lv_rank >= auto2880C3C4_ae) ) ; lv_rank += auto2880C3C4_ai ) {
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 11;
}
lv_rank = lv_rankToStartScaling;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 12;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 13;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 13;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 14;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 14;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 15;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 15;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 17;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 17;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 17;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 18;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 18;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 18;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 19;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 19;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 19;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 20;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 20;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 20;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 21;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 21;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 21;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 22;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 22;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 22;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 23;
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DataJungleCampDefenderKnights_Init () {
libMapM_gt_DataJungleCampDefenderKnights = TriggerCreate("libMapM_gt_DataJungleCampDefenderKnights_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Data - Jungle Camp Defender Grave Golem
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DataJungleCampDefenderGraveGolem_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_campType;
int lv_rank;
int lv_rankToStartScaling;
// Automatic Variable Declarations
int autoB335DA30_ae;
const int autoB335DA30_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_campType = (libMapM_ge_JungleCampDefenderTypes_GraveGolem);
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campIsSoloable = true;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defendersCoweronDeath = false;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_aIGoalLink = "MercenaryCampGraveGolem";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_initialSpawnDelay = libMapM_gv_genericMercBossCampInitialSpawnDelay_C;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_respawnTime = 300.0;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_numberOfCreeps = 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[1] = "JungleGraveGolemDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_xPAwardForCapture = libCore_gv_data_XP_GraveGolemCapture_C;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campIsElite = true;
if ((libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campTypeMinimapLabel == null)) {
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campTypeMinimapLabel = StringExternal("Param/Value/lib_MapM_E13C6C4C");
}
libMapM_gf_DataInitializeScalingDataForDefender(libMapM_ge_JungleCampDefenderTypes_GraveGolem, "GraveGolemDefenderScaling");
lv_rankToStartScaling = 2;
autoB335DA30_ae = (lv_rankToStartScaling - 1);
lv_rank = 0;
for ( ; ( (autoB335DA30_ai >= 0 && lv_rank <= autoB335DA30_ae) || (autoB335DA30_ai < 0 && lv_rank >= autoB335DA30_ae) ) ; lv_rank += autoB335DA30_ai ) {
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 14;
}
lv_rank = lv_rankToStartScaling;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 15;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 16;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 17;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 17;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 18;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 18;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 19;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 19;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 19;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 20;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 20;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 20;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 21;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 21;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 21;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 22;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 22;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 22;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 23;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 23;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 23;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 24;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 24;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 24;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 25;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 25;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 25;
lv_rank += 1;
libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campLevel[lv_rank] = 26;
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DataJungleCampDefenderGraveGolem_Init () {
libMapM_gt_DataJungleCampDefenderGraveGolem = TriggerCreate("libMapM_gt_DataJungleCampDefenderGraveGolem_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Data - Jungle Camp Merc Siege Giants
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DataJungleCampMercSiegeGiants_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_campType;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_campType = (libMapM_ge_JungleCampMercTypes_SiegeGiants);
libMapM_gv_dataJungleCampMercData[lv_campType].lv_numberOfMinionsSpawned = 2;
libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[1] = "MercLanerSiegeGiant";
libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[2] = "MercLanerSiegeGiant";
libMapM_gf_DataInitializeScalingDataForMerc(libMapM_ge_JungleCampMercTypes_SiegeGiants, "SiegeGiantMercScaling");
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DataJungleCampMercSiegeGiants_Init () {
libMapM_gt_DataJungleCampMercSiegeGiants = TriggerCreate("libMapM_gt_DataJungleCampMercSiegeGiants_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Data - Jungle Camp Merc Ogres
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DataJungleCampMercOgres_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_campType;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_campType = (libMapM_ge_JungleCampMercTypes_Ogres);
libMapM_gv_dataJungleCampMercData[lv_campType].lv_numberOfMinionsSpawned = 4;
libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[1] = "MercLanerMeleeKnight";
libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[2] = "MercLanerMeleeKnight";
libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[3] = "MercLanerMeleeKnight";
libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[4] = "MercLanerRangedMage";
libMapM_gf_DataInitializeScalingDataForMerc(libMapM_ge_JungleCampMercTypes_Ogres, "OgreMercScaling");
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DataJungleCampMercOgres_Init () {
libMapM_gt_DataJungleCampMercOgres = TriggerCreate("libMapM_gt_DataJungleCampMercOgres_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Data - Jungle Camp Merc Grave Golem
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DataJungleCampMercGraveGolem_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_campType;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_campType = (libMapM_ge_JungleCampMercTypes_GraveGolem);
libMapM_gv_dataJungleCampMercData[lv_campType].lv_numberOfMinionsSpawned = 1;
libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[1] = "JungleGraveGolemLaner";
libMapM_gf_DataInitializeScalingDataForMerc(libMapM_ge_JungleCampMercTypes_GraveGolem, "GraveGolemLanerScaling");
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DataJungleCampMercGraveGolem_Init () {
libMapM_gt_DataJungleCampMercGraveGolem = TriggerCreate("libMapM_gt_DataJungleCampMercGraveGolem_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Data - Jungle Camp Defender Data
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DataJungleCampDefenderData_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
TriggerExecute(libMapM_gt_DataJungleCampDefenderKnights, true, true);
TriggerExecute(libMapM_gt_DataJungleCampDefenderGraveGolem, true, true);
TriggerExecute(libMapM_gt_DataJungleCampDefenderDoubloons, true, true);
TriggerExecute(libMapM_gt_DataJungleCampDefenderSiegeGiants, true, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DataJungleCampDefenderData_Init () {
libMapM_gt_DataJungleCampDefenderData = TriggerCreate("libMapM_gt_DataJungleCampDefenderData_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Data - Jungle Camp Merc Data
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DataJungleCampMercData_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
TriggerExecute(libMapM_gt_DataJungleCampMercSiegeGiants, true, true);
TriggerExecute(libMapM_gt_DataJungleCampMercOgres, true, true);
TriggerExecute(libMapM_gt_DataJungleCampMercGraveGolem, true, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DataJungleCampMercData_Init () {
libMapM_gt_DataJungleCampMercData = TriggerCreate("libMapM_gt_DataJungleCampMercData_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Initialize Jungle Camps
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_InitializeJungleCamps_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_i;
int lv_camp;
string lv_actorMessageString;
fixed lv_capturePointRadius;
// Automatic Variable Declarations
int auto7E730838_ae;
const int auto7E730838_ai = 1;
playergroup autoFBAAD7A0_g;
// Variable Initialization
lv_actorMessageString = "";
lv_capturePointRadius = libMapM_gv_bALJungleCampCaptureRadius;
// Conditions
if (testConds) {
if (!((libCore_gv_sYSJungleCreepCamps == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libCore_gf_DataLootContentLoadBannerDataIntoIndex("NeutralMercCamp", libCore_gv_cOMPUTER_Hostile);
auto7E730838_ae = libMapM_gv_jungleNumberOfCreepCamps;
lv_camp = 1;
for ( ; ( (auto7E730838_ai >= 0 && lv_camp <= auto7E730838_ae) || (auto7E730838_ai < 0 && lv_camp >= auto7E730838_ae) ) ; lv_camp += auto7E730838_ai ) {
if ((libMapM_gv_jungleCreepCamps[lv_camp].lv_stateIsEnabled == false)) {
break;
}
libMapM_gf_JungleInitializeDefenderData(lv_camp);
if ((libMapM_gv_jungleCreepCamps[lv_camp].lv_mapDataCampType == libMapM_ge_JungleCampTypes_MercCamp)) {
libMapM_gf_JungleInitializeMercCampData(lv_camp);
}
if ((libMapM_gv_jungleCreepCamps[lv_camp].lv_mapDataCampType == libMapM_ge_JungleCampTypes_DoubloonCamp)) {
libMapM_gf_JungleInitializeDoubloonCampData(lv_camp);
}
if ((libMapM_gv_jungleCreepCamps[lv_camp].lv_mapDataCampType == libMapM_ge_JungleCampTypes_DoubloonSmallCamp)) {
libMapM_gf_JungleInitializeDoubloonSmallCampData(lv_camp);
lv_capturePointRadius = 1.7;
}
if ((libMapM_gv_jungleCreepCamps[lv_camp].lv_mapDataCampType == libMapM_ge_JungleCampTypes_TryMeCamp)) {
libMapM_gf_JungleInitializeTryMeCampData(lv_camp);
}
TriggerAddEventTimer(libMapM_gt_JungleCreepCampRespawnTimerExpires, libMapM_gv_jungleCreepCamps[lv_camp].lv_stateCreepBirthTimer);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "TownMercCampCaptureBeacon", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Neutral, libMapM_gv_jungleCreepCamps[lv_camp].lv_mapDataCampCaptainSpawnPoint, null);
if ((libMapM_gv_jungleCreepCamps[lv_camp].lv_mapDataCapturePointSplatModel != null)) {
UnitSetFacing(UnitLastCreated(), PointGetFacing(libMapM_gv_jungleCreepCamps[lv_camp].lv_mapDataCampCaptainSpawnPoint), 0.0);
lv_actorMessageString = ("ModelSwap " + (libMapM_gv_jungleCreepCamps[lv_camp].lv_mapDataCapturePointSplatModel));
ActorSendAsText(libNtve_gf_MainActorofUnit(UnitLastCreated()), StringToText(lv_actorMessageString));
}
libMapM_gv_jungleCreepCamps[lv_camp].lv_captureCircleOfPowerUnit = UnitLastCreated();
libGame_gf_CapturePointCreate(UnitLastCreated(), lv_capturePointRadius, libMapM_gv_bALJungleCampCaptureTime, 0.0, libGame_ge_CapturePointDecay_DoNotDecay, libGame_ge_CapturePointDecay_Owner, false);
libMapM_gv_jungleCreepCamps[lv_camp].lv_captureCapturePointIndex = libGame_gf_LastCreatedCapturePoint();
libGame_gf_CapturePointDisable(libMapM_gv_jungleCreepCamps[lv_camp].lv_captureCapturePointIndex);
libMapM_gf_JungleInitializeCreepCamp(lv_camp);
autoFBAAD7A0_g = PlayerGroupAll();
lv_i = -1;
while (true) {
lv_i = PlayerGroupNextPlayer(autoFBAAD7A0_g, lv_i);
if (lv_i<0) { break; }
VisRevealArea(lv_i, RegionCircle(UnitGetPosition(libMapM_gv_jungleCreepCamps[lv_camp].lv_captureCircleOfPowerUnit), 0.75), 0.125, false);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_InitializeJungleCamps_Init () {
libMapM_gt_InitializeJungleCamps = TriggerCreate("libMapM_gt_InitializeJungleCamps_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Start Jungle Camp Timers
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_StartJungleCampTimers_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itCamp;
// Automatic Variable Declarations
int auto0E6C078D_ae;
const int auto0E6C078D_ai = 1;
// Variable Initialization
// Conditions
if (testConds) {
if (!((libCore_gv_sYSJungleCreepCamps == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto0E6C078D_ae = libMapM_gv_jungleNumberOfCreepCamps;
lv_itCamp = 1;
for ( ; ( (auto0E6C078D_ai >= 0 && lv_itCamp <= auto0E6C078D_ae) || (auto0E6C078D_ai < 0 && lv_itCamp >= auto0E6C078D_ae) ) ; lv_itCamp += auto0E6C078D_ai ) {
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_stateIsEnabled == true)) {
TimerStart(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_stateCreepBirthTimer, (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_defenderInitialSpawnDelay - libMapM_gv_bALJungleBirthDelay), false, c_timeGame);
TimerStart(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_stateCreepRespawnTimer, libMapM_gv_jungleCreepCamps[lv_itCamp].lv_defenderInitialSpawnDelay, false, c_timeGame);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_StartJungleCampTimers_Init () {
libMapM_gt_StartJungleCampTimers = TriggerCreate("libMapM_gt_StartJungleCampTimers_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Creep Camp Respawn Timer Expires
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleCreepCampRespawnTimerExpires_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itCamp;
// Automatic Variable Declarations
int autoAD45B80E_ae;
const int autoAD45B80E_ai = 1;
// Variable Initialization
// Conditions
if (testConds) {
if (!((libCore_gv_sYSJungleCreepCamps == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((libMapM_gv_jungleCreepCampsInitialized == false)) {
libMapM_gv_jungleCreepCampsInitialized = true;
TriggerEnable(libAIAI_gt_DefenderAICreepsAttacked, true);
TriggerEnable(libAIAI_gt_DefenderAIDefenderAILogic, true);
TriggerEnable(libMapM_gt_JungleDefendersBeginFighting, true);
TriggerEnable(libMapM_gt_JungleDefendersEndFighting, true);
TriggerEnable(libMapM_gt_JungleAllDefendersKilled, true);
if ((TriggerIsEnabled(libStEx_gt_SE_TrainingModeTipMercCamps) == true)) {
TriggerExecute(libStEx_gt_SE_TrainingModeTipMercCamps, true, false);
}
}
autoAD45B80E_ae = libMapM_gv_jungleNumberOfCreepCamps;
lv_itCamp = 1;
for ( ; ( (autoAD45B80E_ai >= 0 && lv_itCamp <= autoAD45B80E_ae) || (autoAD45B80E_ai < 0 && lv_itCamp >= autoAD45B80E_ae) ) ; lv_itCamp += autoAD45B80E_ai ) {
if ((EventTimer() == libMapM_gv_jungleCreepCamps[lv_itCamp].lv_stateCreepBirthTimer)) {
break;
}
}
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campIconUnit == null) && ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_GraveGolem) || (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp1) || (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp2) || (libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mapDataCampDefenderType == libMapM_ge_JungleCampDefenderTypes_BossCamp3))) {
DialogControlSetEnabled(libUIUI_gv_uIDebugPanel.lv_spawnCreepCampsButton, PlayerGroupAll(), false);
}
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campIconUnit == null)) {
libMapM_gf_JungleRespawnCreepsForCamp(lv_itCamp);
return true;
}
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_aIState == libMapM_ge_JungleCampStates_Hibernating)) {
libMapM_gf_JungleTransitionCampIntoState(lv_itCamp, libMapM_ge_JungleCampStates_HibernatingReadyToRespawn);
}
else {
libMapM_gf_JungleRespawnCreepsForCamp(lv_itCamp);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleCreepCampRespawnTimerExpires_Init () {
libMapM_gt_JungleCreepCampRespawnTimerExpires = TriggerCreate("libMapM_gt_JungleCreepCampRespawnTimerExpires_Func");
TriggerEnable(libMapM_gt_JungleCreepCampRespawnTimerExpires, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Respawn Timer Text Tag Countdown
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleRespawnTimerTextTagCountdown_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_camp;
// Automatic Variable Declarations
int autoF4FFF937_ae;
const int autoF4FFF937_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
autoF4FFF937_ae = libMapM_gv_jungleNumberOfCreepCamps;
lv_camp = 1;
for ( ; ( (autoF4FFF937_ai >= 0 && lv_camp <= autoF4FFF937_ae) || (autoF4FFF937_ai < 0 && lv_camp >= autoF4FFF937_ae) ) ; lv_camp += autoF4FFF937_ai ) {
libMapM_gf_JungleUpdateTextTagForCamp(lv_camp);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleRespawnTimerTextTagCountdown_Init () {
libMapM_gt_JungleRespawnTimerTextTagCountdown = TriggerCreate("libMapM_gt_JungleRespawnTimerTextTagCountdown_Func");
TriggerEnable(libMapM_gt_JungleRespawnTimerTextTagCountdown, false);
TriggerAddEventTimePeriodic(libMapM_gt_JungleRespawnTimerTextTagCountdown, 1.0, c_timeGame);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Defenders Begin Fighting
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleDefendersBeginFighting_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_defenderAIIndex;
int lv_testIndex;
int lv_camp;
// Automatic Variable Declarations
const int auto8BE37AE4_ae = libMapM_gv_jungleMaxCamps;
const int auto8BE37AE4_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_defenderAIIndex = libGame_gf_JungleDefenderAIDefendersBeginFightingIndex();
lv_testIndex = 1;
for ( ; ( (auto8BE37AE4_ai >= 0 && lv_testIndex <= auto8BE37AE4_ae) || (auto8BE37AE4_ai < 0 && lv_testIndex >= auto8BE37AE4_ae) ) ; lv_testIndex += auto8BE37AE4_ai ) {
if ((libMapM_gv_jungleCreepCamps[lv_testIndex].lv_aIDefenderAIIndex == lv_defenderAIIndex)) {
lv_camp = lv_testIndex;
break;
}
}
if ((lv_camp > 0) && (libMapM_gv_jungleCreepCamps[lv_camp].lv_aIState != libMapM_ge_JungleCampStates_Hibernating) && (libMapM_gv_jungleCreepCamps[lv_camp].lv_aIState != libMapM_ge_JungleCampStates_HibernatingReadyToRespawn)) {
libMapM_gf_JungleTransitionCampIntoState(lv_camp, libMapM_ge_JungleCampStates_Busy);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleDefendersBeginFighting_Init () {
libMapM_gt_JungleDefendersBeginFighting = TriggerCreate("libMapM_gt_JungleDefendersBeginFighting_Func");
TriggerEnable(libMapM_gt_JungleDefendersBeginFighting, false);
libGame_gf_JungleDefenderAIDefendersBeginFighting(libMapM_gt_JungleDefendersBeginFighting);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Defenders End Fighting
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleDefendersEndFighting_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_defenderAIIndex;
int lv_testIndex;
int lv_camp;
// Automatic Variable Declarations
const int autoCE3EC7FE_ae = libMapM_gv_jungleMaxCamps;
const int autoCE3EC7FE_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_defenderAIIndex = libGame_gf_JungleDefenderAIDefendersEndFightingIndex();
lv_testIndex = 1;
for ( ; ( (autoCE3EC7FE_ai >= 0 && lv_testIndex <= autoCE3EC7FE_ae) || (autoCE3EC7FE_ai < 0 && lv_testIndex >= autoCE3EC7FE_ae) ) ; lv_testIndex += autoCE3EC7FE_ai ) {
if ((libMapM_gv_jungleCreepCamps[lv_testIndex].lv_aIDefenderAIIndex == lv_defenderAIIndex)) {
lv_camp = lv_testIndex;
break;
}
}
if ((lv_camp > 0) && (libMapM_gv_jungleCreepCamps[lv_camp].lv_aIState != libMapM_ge_JungleCampStates_Hibernating) && (libMapM_gv_jungleCreepCamps[lv_camp].lv_aIState != libMapM_ge_JungleCampStates_HibernatingReadyToRespawn)) {
libMapM_gf_JungleTransitionCampIntoState(lv_camp, libMapM_ge_JungleCampStates_Idle);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleDefendersEndFighting_Init () {
libMapM_gt_JungleDefendersEndFighting = TriggerCreate("libMapM_gt_JungleDefendersEndFighting_Func");
TriggerEnable(libMapM_gt_JungleDefendersEndFighting, false);
libGame_gf_JungleDefenderAIDefendersEndFighting(libMapM_gt_JungleDefendersEndFighting);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - All Defenders Killed
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleAllDefendersKilled_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_defenderAIIndex;
int lv_testIndex;
int lv_camp;
int lv_owner;
int lv_killingUnitTeam;
int lv_capturingPlayerIfNoCapturePoint;
// Automatic Variable Declarations
const int auto1D994751_ae = libMapM_gv_jungleMaxCamps;
const int auto1D994751_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_defenderAIIndex = libGame_gf_JungleDefenderAIAllDefendersKilledIndex();
lv_testIndex = 1;
for ( ; ( (auto1D994751_ai >= 0 && lv_testIndex <= auto1D994751_ae) || (auto1D994751_ai < 0 && lv_testIndex >= auto1D994751_ae) ) ; lv_testIndex += auto1D994751_ai ) {
if ((libMapM_gv_jungleCreepCamps[lv_testIndex].lv_aIDefenderAIIndex == lv_defenderAIIndex)) {
lv_camp = lv_testIndex;
break;
}
}
if ((lv_camp > 0)) {
if (((libMapM_gv_jungleCreepCamps[lv_camp].lv_mapDataCampType == libMapM_ge_JungleCampTypes_MercCamp) || (libMapM_gv_jungleCreepCamps[lv_camp].lv_mapDataCampType == libMapM_ge_JungleCampTypes_DoubloonSmallCamp))) {
if ((libMapM_gv_jungleCreepCamps[lv_camp].lv_defenderCampInstantlyGrantsReward == false)) {
libMapM_gf_JungleTurnOnCampCaptureBeacon(lv_camp);
}
else {
lv_killingUnitTeam = libGame_gf_TeamNumberOfPlayer(libGame_gf_JungleDefenderAIAllDefendersKilledKillingPlayer());
if ((lv_killingUnitTeam == libGame_gv_teamOrderIndex_C)) {
lv_capturingPlayerIfNoCapturePoint = libCore_gv_cOMPUTER_TeamOrder;
}
else {
if ((lv_killingUnitTeam == libGame_gv_teamChaosIndex_C)) {
lv_capturingPlayerIfNoCapturePoint = libCore_gv_cOMPUTER_TeamChaos;
}
}
libMapM_gf_JungleGrantCaptureRewards(lv_camp, lv_capturingPlayerIfNoCapturePoint, false);
UnitSetOwner(libMapM_gv_jungleCreepCamps[lv_camp].lv_campIconUnit, lv_capturingPlayerIfNoCapturePoint, true);
}
}
else {
lv_killingUnitTeam = libGame_gf_TeamNumberOfPlayer(libGame_gf_JungleDefenderAIAllDefendersKilledKillingPlayer());
if (((lv_killingUnitTeam == libGame_gv_teamOrderIndex_C) || (lv_killingUnitTeam == libGame_gv_teamChaosIndex_C))) {
libMapM_gf_JungleGrantCaptureRewards(lv_camp, libGame_gv_teams[lv_killingUnitTeam].lv_nPCPlayer, false);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleAllDefendersKilled_Init () {
libMapM_gt_JungleAllDefendersKilled = TriggerCreate("libMapM_gt_JungleAllDefendersKilled_Func");
TriggerEnable(libMapM_gt_JungleAllDefendersKilled, false);
libGame_gf_JungleDefenderAIAllDefendersKilled(libMapM_gt_JungleAllDefendersKilled);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Hibernate Camps Start
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleHibernateCampsStart_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMapM_gf_JungleStartHibernateCamps();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleHibernateCampsStart_Init () {
libMapM_gt_JungleHibernateCampsStart = TriggerCreate("libMapM_gt_JungleHibernateCampsStart_Func");
libGame_gf_MapDragonShireDragonActivated(libMapM_gt_JungleHibernateCampsStart);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Hibernate Camps End
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleHibernateCampsEnd_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMapM_gf_JungleStopHibernateCamps();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleHibernateCampsEnd_Init () {
libMapM_gt_JungleHibernateCampsEnd = TriggerCreate("libMapM_gt_JungleHibernateCampsEnd_Func");
libGame_gf_MapDragonShireDragonEnds(libMapM_gt_JungleHibernateCampsEnd);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Hibernate Defenders That Leash
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleHibernateDefendersThatLeash_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_camp;
// Automatic Variable Declarations
// Variable Initialization
lv_camp = libMapM_gf_JungleGetCampIndexFromDefenderIndex(libGame_gf_JungleDefenderAIDefendersEndFightingIndex());
// Conditions
if (testConds) {
if (!(((libMapM_gv_jungleAllCampsShouldBeHibernating == true) || (libMapM_gv_jungleCreepCamps[lv_camp].lv_statePersonalHiberationisEnabled == true)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((lv_camp > 0)) {
libMapM_gf_JungleTransitionCampIntoState(lv_camp, libMapM_ge_JungleCampStates_Hibernating);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleHibernateDefendersThatLeash_Init () {
libMapM_gt_JungleHibernateDefendersThatLeash = TriggerCreate("libMapM_gt_JungleHibernateDefendersThatLeash_Func");
libGame_gf_JungleDefenderAIDefendersEndFighting(libMapM_gt_JungleHibernateDefendersThatLeash);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Hibernate Defenders That Just Spawned
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleHibernateDefendersThatJustSpawned_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!(((libMapM_gv_jungleAllCampsShouldBeHibernating == true) || (libMapM_gv_jungleCreepCamps[libGame_gf_JungleCampSpawnedIndex()].lv_statePersonalHiberationisEnabled == true)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMapM_gf_JungleTransitionCampIntoState(libGame_gf_JungleCampSpawnedIndex(), libMapM_ge_JungleCampStates_Hibernating);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleHibernateDefendersThatJustSpawned_Init () {
libMapM_gt_JungleHibernateDefendersThatJustSpawned = TriggerCreate("libMapM_gt_JungleHibernateDefendersThatJustSpawned_Func");
libGame_gf_JungleCampSpawned(libMapM_gt_JungleHibernateDefendersThatJustSpawned);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Camp Ownership Change
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleCampOwnershipChange_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itCamp;
int lv_index;
int lv_owner;
bool lv_hasMercLordTalent;
int lv_team;
// Automatic Variable Declarations
int auto1EEBCBD3_ae;
// Variable Initialization
lv_index = libGame_gf_CapturePointChangesOwnerCapturePointIndex();
lv_owner = libGame_gf_CapturePointChangesOwnerOwner();
lv_hasMercLordTalent = libGame_gf_CapturePointChangesOwnerHasMercLordTalent();
// Actions
if (!runActions) {
return true;
}
auto1EEBCBD3_ae = libMapM_gv_jungleNumberOfCreepCamps;
lv_itCamp = 1;
for ( ; lv_itCamp <= auto1EEBCBD3_ae ; lv_itCamp += 1 ) {
if ((libMapM_gv_jungleCreepCamps[lv_itCamp].lv_captureCapturePointIndex == lv_index)) {
libGame_gf_SendEventMercCampCaptured(lv_itCamp, lv_owner, libGame_gf_CapturePointChangesOwnerCapturingPlayers());
if ((lv_owner == libCore_gv_cOMPUTER_TeamOrder)) {
libNtve_gf_SendActorMessageToGameRegion(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mapDataDefenderLeashRegion, "Signal OwnerOrder");
UnitSetOwner(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campIconUnit, libCore_gv_cOMPUTER_TeamOrder, true);
UnitSetOwner(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campOwnershipFlagUnit, libCore_gv_cOMPUTER_TeamOrder, true);
libMapM_gf_JungleTurnOffCampCaptureBeacon(lv_itCamp, libCore_gv_cOMPUTER_TeamOrder);
libMapM_gf_JungleGrantCaptureRewards(lv_itCamp, libCore_gv_cOMPUTER_TeamOrder, lv_hasMercLordTalent);
}
else if ((lv_owner == libCore_gv_cOMPUTER_TeamChaos)) {
libNtve_gf_SendActorMessageToGameRegion(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_mapDataDefenderLeashRegion, "Signal OwnerChaos");
UnitSetOwner(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campIconUnit, libCore_gv_cOMPUTER_TeamChaos, true);
UnitSetOwner(libMapM_gv_jungleCreepCamps[lv_itCamp].lv_campOwnershipFlagUnit, libCore_gv_cOMPUTER_TeamChaos, true);
libMapM_gf_JungleTurnOffCampCaptureBeacon(lv_itCamp, libCore_gv_cOMPUTER_TeamChaos);
libMapM_gf_JungleGrantCaptureRewards(lv_itCamp, libCore_gv_cOMPUTER_TeamChaos, lv_hasMercLordTalent);
}
if (((lv_owner == libCore_gv_cOMPUTER_TeamOrder) || (lv_owner == libCore_gv_cOMPUTER_TeamChaos))) {
lv_team = libGame_gf_TeamNumberOfPlayer(lv_owner);
SoundPlayForPlayer(SoundLink("Doodad_Merc_Camp_Capture_Ally", -1), libCore_gv_cOMPUTER_TeamOrder, libGame_gf_PlayersOnTeamHeroes(lv_team, false), 100.0, 0.0);
SoundPlayForPlayer(SoundLink("Doodad_Merc_Camp_Capture_Enemy", -1), libCore_gv_cOMPUTER_TeamChaos, libGame_gf_PlayersOnTeamHeroes((3 - lv_team), false), 100.0, 0.0);
SoundPlayForPlayer(SoundLink("Doodad_Merc_Camp_Capture_Ally", -1), libCore_gv_oBSERVER_ObserverUIPlayer, libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], 100.0, 0.0);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleCampOwnershipChange_Init () {
libMapM_gt_JungleCampOwnershipChange = TriggerCreate("libMapM_gt_JungleCampOwnershipChange_Func");
libGame_gf_CapturePointChangesOwner(libMapM_gt_JungleCampOwnershipChange);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Merc Leader Dies
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleMercLeaderDies_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itMercGroup;
unit lv_itUnit;
bool lv_groupIsDead;
// Automatic Variable Declarations
int auto9AC7B9FC_ae;
const int auto9AC7B9FC_ai = 1;
const int auto473D11F7_ae = 1;
const int auto473D11F7_ai = -1;
unitgroup autoF266B5E0_g;
int autoF266B5E0_u;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
auto9AC7B9FC_ae = libMapM_gv_jungleNumberOfActiveMercGroups;
lv_itMercGroup = 1;
for ( ; ( (auto9AC7B9FC_ai >= 0 && lv_itMercGroup <= auto9AC7B9FC_ae) || (auto9AC7B9FC_ai < 0 && lv_itMercGroup >= auto9AC7B9FC_ae) ) ; lv_itMercGroup += auto9AC7B9FC_ai ) {
if ((UnitIsAlive(libMapM_gv_jungleMiniMapLeader[lv_itMercGroup]) == false)) {
UnitGroupRemove(libMapM_gv_jungleMiniMapIconGroup[lv_itMercGroup], libMapM_gv_jungleMiniMapLeader[lv_itMercGroup]);
if ((UnitGroupCount(libMapM_gv_jungleMiniMapIconGroup[lv_itMercGroup], c_unitCountAlive) > 0)) {
libMapM_gf_JungleSetMiniMapIconForMercMinions(libMapM_gf_JungleGetMercCampForUnit(UnitGroupUnit(libMapM_gv_jungleMiniMapIconGroup[lv_itMercGroup], 1)), lv_itMercGroup, "Assets\\Textures\\blank.dds", libMapM_gv_jungleMiniMapIconGroup[lv_itMercGroup]);
libMapM_gf_JungleCreateMercPath(libMapM_gv_jungleMiniMapLeader[lv_itMercGroup], true);
}
else {
lv_groupIsDead = true;
}
break;
}
}
if ((lv_groupIsDead == true)) {
lv_itMercGroup = libMapM_gv_jungleNumberOfActiveMercGroups;
for ( ; ( (auto473D11F7_ai >= 0 && lv_itMercGroup <= auto473D11F7_ae) || (auto473D11F7_ai < 0 && lv_itMercGroup >= auto473D11F7_ae) ) ; lv_itMercGroup += auto473D11F7_ai ) {
if ((libNtve_gf_UnitGroupIsDead(libMapM_gv_jungleMiniMapIconGroup[lv_itMercGroup]) == true)) {
if ((libMapM_gv_jungleMiniMapPath[lv_itMercGroup] != 0)) {
PathDestroy(libMapM_gv_jungleMiniMapPath[lv_itMercGroup]);
libMapM_gv_jungleMiniMapPath[lv_itMercGroup] = 0;
}
if ((lv_itMercGroup == libMapM_gv_jungleNumberOfActiveMercGroups)) {
libMapM_gv_jungleMiniMapLeader[libMapM_gv_jungleNumberOfActiveMercGroups] = null;
libMapM_gv_jungleMiniMapIconGroup[libMapM_gv_jungleNumberOfActiveMercGroups] = UnitGroupEmpty();
libMapM_gv_jungleNumberOfActiveMercGroups -= 1;
}
else {
libMapM_gv_jungleMiniMapLeader[lv_itMercGroup] = libMapM_gv_jungleMiniMapLeader[libMapM_gv_jungleNumberOfActiveMercGroups];
libMapM_gv_jungleMiniMapIconGroup[lv_itMercGroup] = libMapM_gv_jungleMiniMapIconGroup[libMapM_gv_jungleNumberOfActiveMercGroups];
libMapM_gv_jungleMiniMapPath[lv_itMercGroup] = libMapM_gv_jungleMiniMapPath[libMapM_gv_jungleNumberOfActiveMercGroups];
libMapM_gv_jungleMiniMapPathCurrentIndex[lv_itMercGroup] = libMapM_gv_jungleMiniMapPathCurrentIndex[libMapM_gv_jungleNumberOfActiveMercGroups];
libMapM_gv_jungleMiniMapPathIndexMaximum[lv_itMercGroup] = libMapM_gv_jungleMiniMapPathIndexMaximum[libMapM_gv_jungleNumberOfActiveMercGroups];
autoF266B5E0_g = libMapM_gv_jungleMiniMapIconGroup[lv_itMercGroup];
autoF266B5E0_u = UnitGroupCount(autoF266B5E0_g, c_unitCountAll);
for (;; autoF266B5E0_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(autoF266B5E0_g, autoF266B5E0_u);
if (lv_itUnit == null) { break; }
UnitSetCustomValue(lv_itUnit, libCore_gf_CustomValueIndex(libCore_ge_CustomValueIndexes_MercLanerGroupIndex), IntToFixed(lv_itMercGroup));
}
libMapM_gv_jungleMiniMapLeader[libMapM_gv_jungleNumberOfActiveMercGroups] = null;
libMapM_gv_jungleMiniMapIconGroup[libMapM_gv_jungleNumberOfActiveMercGroups] = UnitGroupEmpty();
libMapM_gv_jungleMiniMapPath[libMapM_gv_jungleNumberOfActiveMercGroups] = 0;
libMapM_gv_jungleNumberOfActiveMercGroups -= 1;
}
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleMercLeaderDies_Init () {
libMapM_gt_JungleMercLeaderDies = TriggerCreate("libMapM_gt_JungleMercLeaderDies_Func");
TriggerAddEventUnitBehaviorChange(libMapM_gt_JungleMercLeaderDies, null, "MinionDeathMonitor", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Merc - Ogre Shield Used (Ogre)
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleMercOgreShieldUsedOgre_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_stackCount;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_stackCount = (FixedToInt(UnitGetPropertyFixed(EventUnitTargetUnit(), c_unitPropLifeMax, c_unitPropCurrent)) / CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "MercLanerOgreBuff", "DamageResponse.ModifyLimit", c_playerAny));
UnitBehaviorAdd(EventUnitTargetUnit(), "MercLanerOgreBuff", EventUnit(), lv_stackCount);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleMercOgreShieldUsedOgre_Init () {
libMapM_gt_JungleMercOgreShieldUsedOgre = TriggerCreate("libMapM_gt_JungleMercOgreShieldUsedOgre_Func");
TriggerAddEventUnitAbility(libMapM_gt_JungleMercOgreShieldUsedOgre, null, AbilityCommand("MercLanerOgreBuffAbilityOgreOnly", 0), c_abilEffectStageFinish, false);
TriggerAddEventUnitAbility(libMapM_gt_JungleMercOgreShieldUsedOgre, null, AbilityCommand("MercDefenderOgreBuffAbility", 0), c_abilEffectStageFinish, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Merc - Ogre Shield Used (Hero)
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleMercOgreShieldUsedHero_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_stackCount;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_stackCount = (FixedToInt(UnitGetPropertyFixed(EventUnitTargetUnit(), c_unitPropLifeMax, c_unitPropCurrent)) / CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "MercLanerOgreBuff", "DamageResponse.ModifyLimit", c_playerAny));
lv_stackCount = (lv_stackCount / 4);
UnitBehaviorAdd(EventUnitTargetUnit(), "MercLanerOgreBuff", EventUnit(), lv_stackCount);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleMercOgreShieldUsedHero_Init () {
libMapM_gt_JungleMercOgreShieldUsedHero = TriggerCreate("libMapM_gt_JungleMercOgreShieldUsedHero_Func");
TriggerAddEventUnitAbility(libMapM_gt_JungleMercOgreShieldUsedHero, null, AbilityCommand("MercLanerOgreBuffAbilityHeroOnly", 0), c_abilEffectStageFinish, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: DEBUG - Jungle - Merc Damage Detection
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DEBUGJungleMercDamageDetection_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_MercCamp;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((libCore_gv_dEBUGDebuggingEnabled == true))) {
return false;
}
if (!((libGame_gv_gameOver == false))) {
return false;
}
if (!((libSprt_gv_dEBUGMapTextEnabled == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_MercCamp = libMapM_gf_JungleGetMercCampForUnit(EventUnitDamageSourceUnit());
libMapM_gf_JungleUpdateMercDamageTracker(lv_MercCamp, EventUnitDamageAmount());
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DEBUGJungleMercDamageDetection_Init () {
libMapM_gt_DEBUGJungleMercDamageDetection = TriggerCreate("libMapM_gt_DEBUGJungleMercDamageDetection_Func");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "MercLanerMeleeKnightDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "MercLanerRangedMageWeaponDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "MercLanerSiegeGiantConfusionDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "MercLanerSiegeGiantDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "OgreKingLanerWeaponDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "MercLanerGoblinSapperNonStructureSuicideDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "MercLanerGoblinSapperStructureSuicideDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "MercLanerGoblinSapperDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "MercSiegeTrooperLanerWeaponDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "MercSummonerLanerMinionWeaponDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "MercSummonerLanerWeaponDamage");
TriggerAddEventUnitDamaged(libMapM_gt_DEBUGJungleMercDamageDetection, null, c_unitDamageTypeAny, c_unitDamageEither, "TerranHellbatWeaponDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Jungle - Siege Giant Taunt
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_JungleSiegeGiantTaunt_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_siegeGiant;
unit lv_target;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_siegeGiant = EventPlayerEffectUsedUnit(c_effectUnitSource);
lv_target = EventPlayerEffectUsedUnit(c_effectUnitTarget);
ActorLookAtTypeStart(libNtve_gf_MainActorofUnit(lv_siegeGiant), "MedHeadOnly", libNtve_gf_MainActorofUnit(lv_target));
while (!(((UnitHasBehavior2(lv_siegeGiant, "MercDefenderSiegeGiantTauntProcLookAt") == false) || (UnitHasBehavior2(lv_siegeGiant, "JungleCreepPassive") == false)))) {
Wait(1.0, c_timeGame);
}
libNtve_gf_SimpleLookAtStop(lv_siegeGiant, "MedHeadOnly");
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_JungleSiegeGiantTaunt_Init () {
libMapM_gt_JungleSiegeGiantTaunt = TriggerCreate("libMapM_gt_JungleSiegeGiantTaunt_Func");
TriggerAddEventPlayerEffectUsed(libMapM_gt_JungleSiegeGiantTaunt, c_playerAny, "MercDefenderSiegeGiantTauntDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Initialize Map Mechanics
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_InitializeMapMechanics_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itIndex;
// Automatic Variable Declarations
int auto7C9A6F5C_ae;
const int auto7C9A6F5C_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
auto7C9A6F5C_ae = libMapM_gv_mapMechanicsCount;
lv_itIndex = 1;
for ( ; ( (auto7C9A6F5C_ai >= 0 && lv_itIndex <= auto7C9A6F5C_ae) || (auto7C9A6F5C_ai < 0 && lv_itIndex >= auto7C9A6F5C_ae) ) ; lv_itIndex += auto7C9A6F5C_ai ) {
if ((libMapM_gv_mapMechanicsInitCallbacks[lv_itIndex] != null)) {
TriggerExecute(libMapM_gv_mapMechanicsInitCallbacks[lv_itIndex], true, false);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_InitializeMapMechanics_Init () {
libMapM_gt_InitializeMapMechanics = TriggerCreate("libMapM_gt_InitializeMapMechanics_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Helpbutton Clicked
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMHelpbuttonClicked_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMHelpbuttonClicked_Init () {
libMapM_gt_MMHelpbuttonClicked = TriggerCreate("libMapM_gt_MMHelpbuttonClicked_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Intro Cutscene Start
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMIntroCutsceneStart_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
const int autoCD1759B6_ae = libCore_gv_bALMaxPlayers;
const int autoCD1759B6_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_itPlayer = 1;
for ( ; ( (autoCD1759B6_ai >= 0 && lv_itPlayer <= autoCD1759B6_ae) || (autoCD1759B6_ai < 0 && lv_itPlayer >= autoCD1759B6_ae) ) ; lv_itPlayer += autoCD1759B6_ai ) {
if ((EventCutsceneId() == libMapM_gv_mMIntroCutscene[lv_itPlayer])) {
libStEx_gf_CinematicFade(true, 1.5, Color(0.00, 0.00, 0.00), lv_itPlayer);
return true;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMIntroCutsceneStart_Init () {
libMapM_gt_MMIntroCutsceneStart = TriggerCreate("libMapM_gt_MMIntroCutsceneStart_Func");
TriggerEnable(libMapM_gt_MMIntroCutsceneStart, false);
TriggerAddEventCutsceneBookmarkFired(libMapM_gt_MMIntroCutsceneStart, c_cutsceneNone, "SceneStart");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Intro Cutscene End
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMIntroCutsceneEnd_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
const int auto41494892_ae = libCore_gv_bALMaxPlayers;
const int auto41494892_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_itPlayer = 1;
for ( ; ( (auto41494892_ai >= 0 && lv_itPlayer <= auto41494892_ae) || (auto41494892_ai < 0 && lv_itPlayer >= auto41494892_ae) ) ; lv_itPlayer += auto41494892_ai ) {
if ((EventCutsceneId() == libMapM_gv_mMIntroCutscene[lv_itPlayer])) {
libStEx_gf_CinematicFade(false, 0.0, Color(0.00, 0.00, 0.00), lv_itPlayer);
return true;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMIntroCutsceneEnd_Init () {
libMapM_gt_MMIntroCutsceneEnd = TriggerCreate("libMapM_gt_MMIntroCutsceneEnd_Func");
TriggerEnable(libMapM_gt_MMIntroCutsceneEnd, false);
TriggerAddEventCutsceneBookmarkFired(libMapM_gt_MMIntroCutsceneEnd, c_cutsceneNone, "SceneEnd");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Intro Skippable
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMIntroSkippable_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_cutscene;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_cutscene = c_cutsceneNone;
// Actions
if (!runActions) {
return true;
}
lv_player = libMapM_gv_mMIntroCutscenePlayer;
lv_cutscene = libMapM_gv_mMIntroCutscene[lv_player];
TriggerSkippableBegin(libCore_gv_playerGroupFromPlayer[lv_player], 0, null, true, false);
libMapM_gv_mMIntroCutsceneCompleted[lv_player] = false;
WaitForCutsceneToEnd(lv_cutscene);
libMapM_gv_mMIntroCutsceneCompleted[lv_player] = true;
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMIntroSkippable_Init () {
libMapM_gt_MMIntroSkippable = TriggerCreate("libMapM_gt_MMIntroSkippable_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Repulse Region Punch Behavior
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRepulseRegionPunchBehavior_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itTeam;
unit lv_itUnit;
int lv_itPunchTargetIndex;
point lv_pos;
fixed lv_distance;
fixed lv_distanceMin;
int lv_punchTargetIndexMin;
// Automatic Variable Declarations
const int auto6774B061_ae = 2;
const int auto6774B061_ai = 1;
unitgroup autoC80E67AA_g;
int autoC80E67AA_u;
const int autoFEAFF3C0_ae = libMapM_gv_mMRepulseRegionPunchTargetMax_C;
const int autoFEAFF3C0_ai = 1;
// Variable Initialization
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
while (true) {
if ((libGame_gv_gameOver == true)) {
return true;
}
lv_itTeam = 1;
for ( ; ( (auto6774B061_ai >= 0 && lv_itTeam <= auto6774B061_ae) || (auto6774B061_ai < 0 && lv_itTeam >= auto6774B061_ae) ) ; lv_itTeam += auto6774B061_ai ) {
autoC80E67AA_g = UnitGroup(null, c_playerAny, libMapM_gv_mMRepulseRegions[lv_itTeam], UnitFilter(0, 0, (1 << c_targetFilterStructure) | (1 << c_targetFilterWorker) | (1 << c_targetFilterMissile) | (1 << c_targetFilterDestructible), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoC80E67AA_u = UnitGroupCount(autoC80E67AA_g, c_unitCountAll);
for (;; autoC80E67AA_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(autoC80E67AA_g, autoC80E67AA_u);
if (lv_itUnit == null) { break; }
if ((libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_itUnit)) == libGame_gf_EnemyTeam(lv_itTeam)) && (UnitGroupHasUnit(libMapM_gv_mMRepulseRegionPunchedGroup, lv_itUnit) == false) && (UnitHasBehavior2(lv_itUnit, "HallOfStormsKnockbackImmunity") == false) && ((UnitGetMoverLink(lv_itUnit) == "Ground") || (UnitTypeTestAttribute(UnitGetType(lv_itUnit), c_unitAttributeSummoned) == true))) {
lv_pos = UnitGetPosition(lv_itUnit);
lv_punchTargetIndexMin = 0;
lv_itPunchTargetIndex = 1;
for ( ; ( (autoFEAFF3C0_ai >= 0 && lv_itPunchTargetIndex <= autoFEAFF3C0_ae) || (autoFEAFF3C0_ai < 0 && lv_itPunchTargetIndex >= autoFEAFF3C0_ae) ) ; lv_itPunchTargetIndex += autoFEAFF3C0_ai ) {
if ((libMapM_gv_mMRepulseRegionPunchTarget[lv_itTeam][lv_itPunchTargetIndex] == null)) {
continue;
}
lv_distance = DistanceBetweenPoints(lv_pos, libMapM_gv_mMRepulseRegionPunchTarget[lv_itTeam][lv_itPunchTargetIndex]);
if (((lv_punchTargetIndexMin == 0) || (lv_distance < lv_distanceMin))) {
lv_punchTargetIndexMin = lv_itPunchTargetIndex;
lv_distanceMin = lv_distance;
}
}
if ((lv_punchTargetIndexMin > 0)) {
libGame_gf_SendEventUnitEntersSafeZonePuntRegion(lv_itUnit, libMapM_gv_mMRepulseRegionPunchTarget[lv_itTeam][lv_punchTargetIndexMin]);
libMapM_gf_MMRepulseRegionAddToPunchedGroup(lv_itUnit);
}
}
}
}
Wait(0.125, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRepulseRegionPunchBehavior_Init () {
libMapM_gt_MMRepulseRegionPunchBehavior = TriggerCreate("libMapM_gt_MMRepulseRegionPunchBehavior_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Safe Region Behavior
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMSafeRegionBehavior_Func (bool testConds, bool runActions) {
// Variable Declarations
unitgroup lv_safeRegionUnitGroup;
int lv_itTeam;
unit lv_itUnit;
// Automatic Variable Declarations
int autoBA78DA76_ae;
unitgroup auto9BBE802A_g;
int auto9BBE802A_u;
unitgroup autoDB56AFAB_g;
int autoDB56AFAB_u;
unit autoDB56AFAB_var;
// Variable Initialization
lv_safeRegionUnitGroup = UnitGroupEmpty();
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
while (true) {
if ((libGame_gv_gameOver == true)) {
return true;
}
autoBA78DA76_ae = 2;
lv_itTeam = 1;
for ( ; lv_itTeam <= autoBA78DA76_ae ; lv_itTeam += 1 ) {
if ((libMapM_gv_mMSafeRegions[lv_itTeam] == null)) {
continue;
}
auto9BBE802A_g = UnitGroup(null, c_playerAny, libMapM_gv_mMSafeRegions[lv_itTeam], UnitFilter(0, 0, (1 << c_targetFilterStructure) | (1 << c_targetFilterWorker) | (1 << c_targetFilterMissile) | (1 << c_targetFilterDestructible), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto9BBE802A_u = UnitGroupCount(auto9BBE802A_g, c_unitCountAll);
for (;; auto9BBE802A_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto9BBE802A_g, auto9BBE802A_u);
if (lv_itUnit == null) { break; }
if ((libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_itUnit)) == lv_itTeam)) {
UnitGroupAdd(lv_safeRegionUnitGroup, lv_itUnit);
libGame_gf_SendEventUnitEntersSafeZoneRegion(lv_itUnit);
}
}
autoDB56AFAB_g = libGame_gv_players_Heroes_AllTrackedHeroesForTeam[lv_itTeam];
autoDB56AFAB_u = UnitGroupCount(autoDB56AFAB_g, c_unitCountAll);
for (;; autoDB56AFAB_u -= 1) {
autoDB56AFAB_var = UnitGroupUnitFromEnd(autoDB56AFAB_g, autoDB56AFAB_u);
if (autoDB56AFAB_var == null) { break; }
if ((UnitGroupHasUnit(lv_safeRegionUnitGroup, autoDB56AFAB_var) == true) && (libNtve_gf_UnitInRegion(autoDB56AFAB_var, libMapM_gv_mMSafeRegions[lv_itTeam]) == false)) {
UnitGroupRemove(lv_safeRegionUnitGroup, autoDB56AFAB_var);
libGame_gf_SendEventUnitExitsSafeZoneRegion(autoDB56AFAB_var);
}
}
}
Wait(0.0625, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMSafeRegionBehavior_Init () {
libMapM_gt_MMSafeRegionBehavior = TriggerCreate("libMapM_gt_MMSafeRegionBehavior_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Remove Stacking Core Shield Mechanic
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRemoveStackingCoreShieldMechanic_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_teamIndex;
// Automatic Variable Declarations
const int auto7AE22EB6_ae = libCore_gv_bALMaxTeams;
const int auto7AE22EB6_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_teamIndex = 1;
for ( ; ( (auto7AE22EB6_ai >= 0 && lv_teamIndex <= auto7AE22EB6_ae) || (auto7AE22EB6_ai < 0 && lv_teamIndex >= auto7AE22EB6_ae) ) ; lv_teamIndex += auto7AE22EB6_ai ) {
UnitBehaviorRemove(libGame_gv_teams[lv_teamIndex].lv_core, "CoreShieldsLevel1", 1);
UnitBehaviorRemove(libGame_gv_teams[lv_teamIndex].lv_core, "CoreShieldsLevel2", 1);
UnitBehaviorRemove(libGame_gv_teams[lv_teamIndex].lv_core, "CoreShieldsLevel3", 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRemoveStackingCoreShieldMechanic_Init () {
libMapM_gt_MMRemoveStackingCoreShieldMechanic = TriggerCreate("libMapM_gt_MMRemoveStackingCoreShieldMechanic_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Enable/Disable Map Event
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_EnableDisableMapEvent_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((EventChatMessage(false) == "EnableEvent")) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_62CC6D3C"), true);
libMapM_gf_EnableDisableMapEvent(true);
}
else {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_937EB900"), true);
libMapM_gf_EnableDisableMapEvent(false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_EnableDisableMapEvent_Init () {
libMapM_gt_EnableDisableMapEvent = TriggerCreate("libMapM_gt_EnableDisableMapEvent_Func");
TriggerAddEventChatMessage(libMapM_gt_EnableDisableMapEvent, c_playerAny, "EnableEvent", true);
TriggerAddEventChatMessage(libMapM_gt_EnableDisableMapEvent, c_playerAny, "DisableEvent", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Curse Init
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenCurseInit_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
playergroup autoFAEFD69E_g;
// Variable Initialization
// Conditions
if (testConds) {
if (!((libGame_gf_MapMechanicInitializationMechanicType() == libMapM_gv_mMRavenMechanicName_C))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMapM_gv_mapMechanicsObserverCountLabelText = StringToText("");
TriggerEnable(libMapM_gt_MMRavenCurseGateOpen, true);
TriggerEnable(libMapM_gt_MMRavenTributeCollectStarted, true);
TriggerEnable(libMapM_gt_MMRavenTributeCollectCanceled, true);
TriggerEnable(libMapM_gt_MMRavenDebugStartWarning, true);
TriggerEnable(libMapM_gt_MMRavenDebugStartElunees, true);
TriggerEnable(libMapM_gt_MMRavenDebugStartNexten, true);
TriggerEnable(libMapM_gt_MMRavenDebugStartCurseec, true);
TriggerEnable(libMapM_gt_MMRavenDisableEvent, true);
libMapM_gf_RegisterMapEventEnableDisableTriggers(libMapM_gt_MMRavenDisableEvent, libMapM_gt_MMRavenEnableEvent);
ActorSend(libMapM_gv_mapMechanicControllerActor, "Signal MM1Off");
libGame_gf_SendMapSpecificAwardInitializeEventwithUserData(null, "Master of the Curse");
autoFAEFD69E_g = PlayerGroupAll();
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(autoFAEFD69E_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
CatalogFieldValueSet(c_gameCatalogAbil, "CaptureMacGuffin", "Activity", lv_itPlayer, "DOCSTR_MMRavenCurse_CapturingTribute");
CatalogFieldValueSet(c_gameCatalogEffect, "CaptureMacGuffin", "PeriodCount", lv_itPlayer, "48");
}
libMapM_gv_mMRavenFirstEventTiming = libMapM_gv_mMRavenStartTime;
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenCurseInit_Init () {
libMapM_gt_MMRavenCurseInit = TriggerCreate("libMapM_gt_MMRavenCurseInit_Func");
libGame_gf_MapMechanicInitialization(libMapM_gt_MMRavenCurseInit);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Curse Gate Open
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenCurseGateOpen_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
TriggerEnable(libMapM_gt_MMRavenSpawnTribute, true);
TriggerEnable(libMapM_gt_MMRavenTributeObtained, true);
TimerStart(libMapM_gv_mMRavenStartTimer, libMapM_gv_mMRavenFirstEventTiming, false, c_timeGame);
if ((libMapM_gv_mMMapMechanicDisabled == true)) {
TimerPause(libMapM_gv_mMRavenStartTimer, true);
}
libMapM_gv_mMRavenTributeNextSpawnPoint = libMapM_gf_MMRavenRandomSpawnPoint();
if ((libMapM_gv_mMRavenUseTributePreviews == true)) {
TimerStart(libMapM_gv_mMRavenObjectivePreviewTimer, libMapM_gv_mMRavenObjectivePreviewLongDelay, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenCurseGateOpen_Init () {
libMapM_gt_MMRavenCurseGateOpen = TriggerCreate("libMapM_gt_MMRavenCurseGateOpen_Func");
TriggerEnable(libMapM_gt_MMRavenCurseGateOpen, false);
TriggerAddEventTimer(libMapM_gt_MMRavenCurseGateOpen, libGame_gv_openTheGatesTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Start Spawning
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenStartSpawning_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
if ((libMapM_gv_mMMapMechanicDisabled == true)) {
TriggerEnable(libMapM_gt_MMRavenSpawnTribute, false);
TriggerEnable(libMapM_gt_MMRavenTributeObtained, false);
return true;
}
if ((libMapM_gv_mMRavenEventFirstTime == true)) {
TimerStart(libMapM_gv_mMRavenWarningTimer, 0.125, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenStartSpawning_Init () {
libMapM_gt_MMRavenStartSpawning = TriggerCreate("libMapM_gt_MMRavenStartSpawning_Func");
TriggerAddEventTimer(libMapM_gt_MMRavenStartSpawning, libMapM_gv_mMRavenStartTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Spawn Tribute
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenSpawnTribute_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_spawnPoint;
int lv_itPlayer;
// Automatic Variable Declarations
int autoA0826D15_val;
playergroup autoF1C7D990_g;
playergroup auto4CE6CAAB_g;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
libMapM_gv_mMRavenCurseLifted = false;
libMapM_gv_mMMapEventHasOccured = true;
if ((libCore_gv_sYSGameMode == libCore_ge_GameModes_TutorialMapMechanics)) {
autoA0826D15_val = libMapM_gv_mMRavenTributeSpawnCount;
if (autoA0826D15_val == 1) {
libMapM_gv_mMRavenTributeSpawnCount += 1;
libMapM_gv_mMRavenLastTributeSpawnIndex1 = 2;
lv_spawnPoint = libMapM_gv_mMRavenTributeSpawnPoints[libMapM_gv_mMRavenLastTributeSpawnIndex1];
}
else if (autoA0826D15_val == 2) {
libMapM_gv_mMRavenTributeSpawnCount += 1;
libMapM_gv_mMRavenLastTributeSpawnIndex1 = 4;
libMapM_gv_mMRavenLastTributeSpawnIndex2 = 2;
lv_spawnPoint = libMapM_gv_mMRavenTributeSpawnPoints[libMapM_gv_mMRavenLastTributeSpawnIndex1];
}
else if (autoA0826D15_val == 3) {
libMapM_gv_mMRavenTributeSpawnCount += 1;
libMapM_gv_mMRavenLastTributeSpawnIndex1 = 3;
libMapM_gv_mMRavenLastTributeSpawnIndex2 = 4;
lv_spawnPoint = libMapM_gv_mMRavenTributeSpawnPoints[libMapM_gv_mMRavenLastTributeSpawnIndex1];
}
else {
lv_spawnPoint = libMapM_gf_MMRavenRandomSpawnPoint();
}
}
else {
lv_spawnPoint = libMapM_gv_mMRavenTributeNextSpawnPoint;
}
if ((libMapM_gv_mMRavenEventFirstTime == false)) {
libMapM_gf_MMRavenTransmissionRepeatEventStartQ();
}
else {
libMapM_gf_MMRavenTransmissionFirstEventStartQ();
TriggerExecute(libMapM_gt_MMRavenObjectiveUIHandler, true, false);
}
Wait(2.0, c_timeGame);
SoundPlayAtPointForPlayer(SoundLink("Event_RavenCurse_TributeSpawn", -1), c_maxPlayers, PlayerGroupAll(), lv_spawnPoint, 2.0, 100.0, 0.0);
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlert", lv_spawnPoint, ColorWithAlpha(100.00, 100.00, 0.00, 0.00), 6.0);
libGame_gf_SendEventMapCursedHollowTributeWarning(lv_spawnPoint);
UnitRemove(libMapM_gv_mMRavenTributePreview);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RavenLordTributeWarning", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Neutral, lv_spawnPoint, null);
libMapM_gv_mMRavenTributeWarning = UnitLastCreated();
UnitGroupAdd(libMapM_gv_mMRavenTributeWarnings, UnitLastCreated());
libAIAI_gf_AITeamDelegateSetPeriodicMapValueAction(libAIAI_ge_AITeamDelegateMapNonEventMapValueOperations_Decrease);
libMapM_gf_ShareVisionofUnitForBothTeams(UnitLastCreated());
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RavenLordTribute", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Neutral, lv_spawnPoint, null);
UnitBehaviorAdd(UnitLastCreated(), "MapMechanicCoolUp", UnitLastCreated(), 1);
UnitBehaviorSetDuration(UnitLastCreated(), "MapMechanicCoolUp", (libMapM_gv_mMRavenSpawnWarningTimerTime_C+.5));
UnitBehaviorSetDurationRemaining(UnitLastCreated(), "MapMechanicCoolUp", (libMapM_gv_mMRavenSpawnWarningTimerTime_C+.5));
AddUnitOfInterest(UnitLastCreated(), 500.0, 0.0, "Tribute", libNtve_ge_GoalTeam_Both, 0);
TimerStart(libMapM_gv_mMRavenTributeSpawnTimer, libMapM_gv_mMRavenSpawnWarningTimerTime_C, false, c_timeGame);
libNtve_gf_WaitForTimer(libMapM_gv_mMRavenTributeSpawnTimer, 0.0, false);
UnitKill(libMapM_gv_mMRavenTributeWarning);
libNtve_gf_CreateModelAtPoint("RavenLordTributeSpawn", lv_spawnPoint);
Wait(0.5, c_timeReal);
ActorSend(libNtve_gf_ActorLastCreated(), "AnimBracketStop BSD");
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlert", lv_spawnPoint, ColorWithAlpha(100.00, 100.00, 0.00, 0.00), 3.0);
libMapM_gf_ShareVisionofUnitForBothTeams(UnitLastCreated());
ActorCreate(ActorScopeFromUnit(UnitLastCreated()), "UI_Game_Ping_Tribute_Ready", null, null, null);
UnitGroupAddUnitGroup(libMapM_gv_mMRavenTributes, UnitLastCreatedGroup());
libAIAI_gf_AITeamDelegateActivateDeactivateMapEvent(libAIAI_ge_AITeamDelegateActivateDeactivateMapToken_Activate);
TriggerEnable(libMapM_gt_MMRavenTributeObtained, true);
libGame_gf_SendEventMapCursedHollowTributeSpawned(UnitLastCreated());
libMapM_gv_mMRavenEventFirstTime = false;
Wait(1.0, c_timeGame);
libUIUI_gf_AttachHelpButtonToUnit(UnitLastCreated(), libMapM_gt_MMHelpbuttonClicked, StringExternal("Param/Value/lib_MapM_E2F763F8"), 110, 135);
autoF1C7D990_g = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(autoF1C7D990_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
libUIUI_gf_ShowHideHelpButtonOnUnitForPlayer(lv_itPlayer, false, UnitLastCreated());
}
Wait(0.5, c_timeGame);
auto4CE6CAAB_g = libCore_gv_activeHumanPlayers;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto4CE6CAAB_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
if ((libMapM_gv_mapMechanicUsedTracker[lv_itPlayer].lv_ravenTribute == true) && (libCore_gv_sYSGameMode != libCore_ge_GameModes_TutorialMapMechanics)) {
libUIUI_gf_ShowHideHelpButtonOnUnitForPlayer(lv_itPlayer, false, UnitLastCreated());
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenSpawnTribute_Init () {
libMapM_gt_MMRavenSpawnTribute = TriggerCreate("libMapM_gt_MMRavenSpawnTribute_Func");
TriggerEnable(libMapM_gt_MMRavenSpawnTribute, false);
TriggerAddEventTimer(libMapM_gt_MMRavenSpawnTribute, libMapM_gv_mMRavenWarningTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Objective Preview Timer Expires
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenObjectivePreviewTimerExpires_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMapM_gf_MMRavenCreatePreviewTribute(libMapM_gv_mMRavenTributeNextSpawnPoint);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenObjectivePreviewTimerExpires_Init () {
libMapM_gt_MMRavenObjectivePreviewTimerExpires = TriggerCreate("libMapM_gt_MMRavenObjectivePreviewTimerExpires_Func");
TriggerAddEventTimer(libMapM_gt_MMRavenObjectivePreviewTimerExpires, libMapM_gv_mMRavenObjectivePreviewTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Tribute Collect Started
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenTributeCollectStarted_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_count;
// Automatic Variable Declarations
int autoB2ADE185_val;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnitTargetUnit()) == "RavenLordTribute"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_count = (libCore_gf_IntegerStoredForUnit(EventUnitTargetUnit(), 1) + 1);
libCore_gf_StoreIntegerForUnit(EventUnitTargetUnit(), 1, lv_count);
libNtve_gf_TurnAnimationPropertiesOn(libNtve_gf_MainActorofUnit(EventUnitTargetUnit()), "Work");
autoB2ADE185_val = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(EventUnit()));
if (autoB2ADE185_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SendActorMessageToUnit(EventUnitTargetUnit(), "StatusIncrement TributeCaptureOrder");
}
else if (autoB2ADE185_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SendActorMessageToUnit(EventUnitTargetUnit(), "StatusIncrement TributeCaptureChaos");
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenTributeCollectStarted_Init () {
libMapM_gt_MMRavenTributeCollectStarted = TriggerCreate("libMapM_gt_MMRavenTributeCollectStarted_Func");
TriggerEnable(libMapM_gt_MMRavenTributeCollectStarted, false);
TriggerAddEventUnitAbility(libMapM_gt_MMRavenTributeCollectStarted, null, AbilityCommand("CaptureMacGuffin", 0), c_abilEffectStageChannel, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Tribute Collect Canceled
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenTributeCollectCanceled_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_count;
// Automatic Variable Declarations
int autoC5D651B5_val;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnitTargetUnit()) == "RavenLordTribute"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_count = MaxI((libCore_gf_IntegerStoredForUnit(EventUnitTargetUnit(), 1) - 1), 0);
libCore_gf_StoreIntegerForUnit(EventUnitTargetUnit(), 1, lv_count);
if ((lv_count == 0)) {
libNtve_gf_TurnAnimationPropertiesOff(libNtve_gf_MainActorofUnit(EventUnitTargetUnit()), "Work");
}
autoC5D651B5_val = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(EventUnit()));
if (autoC5D651B5_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SendActorMessageToUnit(EventUnitTargetUnit(), "StatusDecrement TributeCaptureOrder");
}
else if (autoC5D651B5_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SendActorMessageToUnit(EventUnitTargetUnit(), "StatusDecrement TributeCaptureChaos");
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenTributeCollectCanceled_Init () {
libMapM_gt_MMRavenTributeCollectCanceled = TriggerCreate("libMapM_gt_MMRavenTributeCollectCanceled_Func");
TriggerEnable(libMapM_gt_MMRavenTributeCollectCanceled, false);
TriggerAddEventUnitAbility(libMapM_gt_MMRavenTributeCollectCanceled, null, AbilityCommand("CaptureMacGuffin", 0), c_unitAbilStageCancel, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Tribute Collect Interrupted
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenTributeCollectInterrupted_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
int auto6A2ED71E_val;
// Conditions
if (testConds) {
if (!((libMapM_gf_MapMechanicExistsOnMap(libMapM_gv_mMRavenMechanicName_C) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto6A2ED71E_val = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)));
if (auto6A2ED71E_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SendActorMessageToUnit(UnitGroupUnit(libMapM_gv_mMRavenTributes, 1), "StatusDecrement TributeCaptureOrder");
}
else if (auto6A2ED71E_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SendActorMessageToUnit(UnitGroupUnit(libMapM_gv_mMRavenTributes, 1), "StatusDecrement TributeCaptureChaos");
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenTributeCollectInterrupted_Init () {
libMapM_gt_MMRavenTributeCollectInterrupted = TriggerCreate("libMapM_gt_MMRavenTributeCollectInterrupted_Func");
TriggerAddEventPlayerEffectUsed(libMapM_gt_MMRavenTributeCollectInterrupted, c_playerAny, "CaptureMacguffinDummyDamageResponse");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Tribute Obtained
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenTributeObtained_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_collectedPlayer;
int lv_collectedTeam;
int lv_collectedTeamEnemy;
unit lv_macGuffinUnit;
int lv_teamIterator;
string lv_macGuffinCount;
int lv_regenGlobeOwner;
point lv_regenGlobePoint;
// Automatic Variable Declarations
// Variable Initialization
lv_collectedPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_collectedTeam = libGame_gf_TeamNumberOfPlayer(lv_collectedPlayer);
lv_collectedTeamEnemy = libGame_gf_EnemyTeam(lv_collectedTeam);
lv_macGuffinUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_macGuffinCount = "";
lv_regenGlobePoint = UnitGetPosition(lv_macGuffinUnit);
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitGroupHasUnit(libMapM_gv_mMRavenTributes, lv_macGuffinUnit) == false)) {
libNtve_gf_SendActorMessageToUnit(lv_macGuffinUnit, "Signal TributeOwnerNeutral");
libNtve_gf_SendActorMessageToUnit(lv_macGuffinUnit, "StatusSet TributeOwnerChaos 0");
libNtve_gf_SendActorMessageToUnit(lv_macGuffinUnit, "StatusSet TributeOwnerOrder 0");
UnitKill(lv_macGuffinUnit);
return true;
}
UnitGroupRemove(libMapM_gv_mMRavenTributes, lv_macGuffinUnit);
libMapM_gv_mMRavenTributesCollected += 1;
libGame_gf_SendEventMapCursedHollowTributePickedUp(lv_collectedPlayer, UnitGetPosition(lv_macGuffinUnit));
libGame_gf_SendEventMapObjectiveCapturedByUnit(EventPlayerEffectUsedUnit(c_effectUnitCaster));
libNtve_gf_SendActorMessageToUnit(lv_macGuffinUnit, "Signal TributeOwnerNeutral");
libNtve_gf_SendActorMessageToUnit(lv_macGuffinUnit, "StatusSet TributeOwnerChaos 0");
libNtve_gf_SendActorMessageToUnit(lv_macGuffinUnit, "StatusSet TributeOwnerOrder 0");
UnitKill(lv_macGuffinUnit);
libMapM_gv_mMRavenTeamStats[lv_collectedTeam].lv_triburteCollected += 1;
libMapM_gv_mapMechanicUsedTracker[lv_collectedPlayer].lv_ravenTribute = true;
libAIAI_gf_AITeamDelegateActivateDeactivateMapEvent(libAIAI_ge_AITeamDelegateActivateDeactivateMapToken_Deactivate);
libAIAI_gf_AITeamDelegateAdjustMapEventProgressforTeam(1, lv_collectedTeam);
StatEventCreate("TributeCollected");
StatEventAddDataInt(StatEventLastCreated(), "Event", libMapM_gv_mMRavenTributesCollected);
StatEventAddDataFixed(StatEventLastCreated(), "TeamID", lv_collectedTeam);
StatEventSend(StatEventLastCreated());
if ((lv_collectedTeam == 1)) {
lv_regenGlobeOwner = libCore_gv_cOMPUTER_TeamOrder;
}
else {
lv_regenGlobeOwner = libCore_gv_cOMPUTER_TeamChaos;
}
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RegenGlobe", c_unitCreateIgnorePlacement, lv_regenGlobeOwner, lv_regenGlobePoint, null);
lv_macGuffinCount = IntToString(libMapM_gv_mMRavenTeamStats[lv_teamIterator].lv_triburteCollected);
if ((libMapM_gv_mMRavenTeamStats[lv_collectedTeam].lv_triburteCollected == libMapM_gf_MMRavenTributeThresholdAmount())) {
libMapM_gf_MMRavenTributeCollectionThresholdReached(lv_collectedTeam);
}
else {
libMapM_gf_MMRavenStartSpawnTimer5090();
libMapM_gv_mMRavenTributeNextSpawnPoint = libMapM_gf_MMRavenRandomSpawnPoint();
if ((libMapM_gv_mMRavenUseTributePreviews == true)) {
TimerStart(libMapM_gv_mMRavenObjectivePreviewTimer, libMapM_gv_mMRavenObjectivePreviewShortDelay, false, c_timeGame);
}
}
libGame_gf_DropLootBannerinSconce(UnitGroupUnit(UnitGroup("LootBannerSconce", c_playerAny, RegionCircle(UnitGetPosition(lv_macGuffinUnit), 8.0), UnitFilter(0, 0, 0, 0), 1), 1), libGame_gv_players[lv_collectedPlayer].lv_lootContent.lv_loot_Banner.lv_bannerID, lv_collectedPlayer, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenTributeObtained_Init () {
libMapM_gt_MMRavenTributeObtained = TriggerCreate("libMapM_gt_MMRavenTributeObtained_Func");
TriggerEnable(libMapM_gt_MMRavenTributeObtained, false);
TriggerAddEventPlayerEffectUsed(libMapM_gt_MMRavenTributeObtained, c_playerAny, "CaptureMacGuffinCastComplete");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Curse Reapplication
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenCurseReapplication_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_structure;
// Automatic Variable Declarations
// Variable Initialization
lv_structure = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
if ((TimerGetRemaining(libMapM_gv_mMRavenCurseTimer) > 0.0)) {
UnitBehaviorAdd(lv_structure, "RavenLordsCurseStructures", lv_structure, 1);
UnitBehaviorSetDuration(lv_structure, "RavenLordsCurseStructures", TimerGetRemaining(libMapM_gv_mMRavenCurseTimer));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenCurseReapplication_Init () {
libMapM_gt_MMRavenCurseReapplication = TriggerCreate("libMapM_gt_MMRavenCurseReapplication_Func");
TriggerAddEventPlayerEffectUsed(libMapM_gt_MMRavenCurseReapplication, c_playerAny, "RavenCurseReapplicationCheckDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Curse Start Light Transition
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenCurseStartLightTransition_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
libGame_gf_SpecialLightingEventStart("StormRavenCourtCurseTransition", PlayerGroupAll(), 1.0);
Wait(1.0, c_timeGame);
libGame_gf_SpecialLightingEventStart("StormRavenCourtCurseFinal", PlayerGroupAll(), 2.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenCurseStartLightTransition_Init () {
libMapM_gt_MMRavenCurseStartLightTransition = TriggerCreate("libMapM_gt_MMRavenCurseStartLightTransition_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Curse Finished
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenCurseFinished_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
int lv_cursedTeam;
int lv_enemyTeam;
int lv_cursedPlayer;
// Automatic Variable Declarations
unitgroup auto8A3C49B5_g;
int auto8A3C49B5_u;
unit auto8A3C49B5_var;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
SoundChannelMute(PlayerGroupAll(), c_soundCategoryAmbient, false);
SoundStop(libMapM_gv_mMRavenCurseSound, true);
SoundPlayForPlayer(SoundLink("Event_RavenCurse_CurseEnd", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
ActorSend(libMapM_gv_mapMechanicControllerActor, "Signal MM1Off");
ActorSend(libMapM_gv_mapMechanicControllerActor, "Signal RainOff");
if ((libMapM_gv_mMRavenTeamStats[1].lv_cursed == true)) {
lv_cursedTeam = 1;
lv_cursedPlayer = libCore_gv_cOMPUTER_TeamOrder;
libMapM_gv_mMRavenTeamStats[libGame_gv_teamChaosIndex_C].lv_triburteCollected -= libMapM_gv_mMRavenTributeThreshold_C;
}
else if ((libMapM_gv_mMRavenTeamStats[2].lv_cursed == true)) {
lv_cursedTeam = 2;
lv_cursedPlayer = libCore_gv_cOMPUTER_TeamChaos;
libMapM_gv_mMRavenTeamStats[libGame_gv_teamOrderIndex_C].lv_triburteCollected -= libMapM_gv_mMRavenTributeThreshold_C;
}
else if (true) {
return true;
}
libMapM_gf_MMRavenObjectiveUIUpdateText();
lv_enemyTeam = libGame_gf_EnemyTeam(lv_cursedTeam);
if ((libGame_gv_gameOver == false)) {
libMapM_gf_CalculateCurseSiegeDamageDone(lv_enemyTeam);
libGame_gf_SendEventMapCursedHollowCurseEnds();
}
libMapM_gf_MMRavenTransmissionCurseEndsQ();
SoundtrackStop(PlayerGroupAll(), c_soundtrackCategoryMusic, true);
libSond_gf_SoundtrackPlayMapSoundtrackAsDefaultSoundtrackForAllPlayers();
auto8A3C49B5_g = UnitGroup(null, lv_cursedPlayer, RegionEntireMap(), libCore_gv_filtersMinionsTownMinions, 0);
auto8A3C49B5_u = UnitGroupCount(auto8A3C49B5_g, c_unitCountAll);
for (;; auto8A3C49B5_u -= 1) {
auto8A3C49B5_var = UnitGroupUnitFromEnd(auto8A3C49B5_g, auto8A3C49B5_u);
if (auto8A3C49B5_var == null) { break; }
libMapM_gf_MMRavenRemoveCurseEffectOnMinion(auto8A3C49B5_var);
}
libMapM_gv_mMRavenTeamStats[1].lv_cursed = false;
libMapM_gv_mMRavenTeamStats[2].lv_cursed = false;
libMapM_gv_mMRavenCurseLifted = true;
libAIAI_gf_AITeamDelegateActivateDeactivateMapReward(libAIAI_ge_AITeamDelegateActivateDeactivateMapToken_Deactivate);
libGame_gf_SpecialLightingEventEnd("StormRavenCourtCurseFinal", PlayerGroupAll(), 2.0);
libMapM_gv_mMRavenTributeNextSpawnPoint = libMapM_gf_MMRavenRandomSpawnPoint();
if ((libMapM_gv_mMRavenUseTributePreviews == true)) {
TimerStart(libMapM_gv_mMRavenObjectivePreviewTimer, libMapM_gv_mMRavenObjectivePreviewLongDelay, false, c_timeGame);
}
Wait(libMapM_gv_mMRavenTributePostCurseWaitTime, c_timeGame);
libMapM_gf_MMRavenStartSpawnTimer5090();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenCurseFinished_Init () {
libMapM_gt_MMRavenCurseFinished = TriggerCreate("libMapM_gt_MMRavenCurseFinished_Func");
TriggerAddEventTimer(libMapM_gt_MMRavenCurseFinished, libMapM_gv_mMRavenCurseTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Objective UI Handler
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenObjectiveUIHandler_Func (bool testConds, bool runActions) {
// Variable Declarations
text lv_tipEffect;
text lv_tip;
text lv_tipCursed;
int lv_indexTeam;
int lv_indexTeamEnemy;
int lv_state;
int lv_lastState;
// Automatic Variable Declarations
// Variable Initialization
lv_state = libMapM_ge_MMRavenCurseState_Starting;
lv_lastState = libMapM_ge_MMRavenCurseState_Starting;
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
lv_tipEffect = StringExternal("Param/Value/lib_MapM_E2282CCF");
TextExpressionSetToken("Param/Expression/lib_MapM_A249BD62", "A", IntToText(libMapM_gv_mMRavenTributeThreshold_C));
TextExpressionSetToken("Param/Expression/lib_MapM_A249BD62", "B", lv_tipEffect);
lv_tip = TextExpressionAssemble("Param/Expression/lib_MapM_A249BD62");
lv_tipCursed = lv_tipEffect;
while (true) {
if ((libMapM_gv_mMRavenCurseLifted == true)) {
lv_state = libMapM_ge_MMRavenCurseState_Lifted;
libUIUI_gf_MapMechanicsRavenCourtSetModeForTeam(libUIUI_ge_MapMechanicsRavenCourtModes_NoActivity, 0);
Wait(8.0, c_timeGame);
while (!((libMapM_gv_mMRavenCurseLifted == false))) {
Wait(0.25, c_timeGame);
}
lv_lastState = lv_state;
}
else if ((libMapM_gf_MMRavenCurseStarted() == true)) {
lv_state = libMapM_ge_MMRavenCurseState_Cursed;
if ((libMapM_gv_mMRavenTeamStats[1].lv_cursed == true)) {
lv_indexTeam = 1;
lv_indexTeamEnemy = 2;
}
else {
lv_indexTeam = 2;
lv_indexTeamEnemy = 1;
}
if ((lv_state != lv_lastState)) {
libUIUI_gf_MapMechanicsRavenCourtSetModeForTeam(libUIUI_ge_MapMechanicsRavenCourtModes_Curse, lv_indexTeamEnemy);
libUIUI_gf_MapMechanicsRavenCourtSetTributeCountForTeam(0, lv_indexTeamEnemy);
}
libUIUI_gf_MapMechanicsRavenCourtSetRemainingCurseTimeForTeam(FixedToInt(TimerGetRemaining(libMapM_gv_mMRavenCurseTimer)), lv_indexTeamEnemy);
lv_lastState = lv_state;
}
else if ((TimerGetRemaining(libMapM_gv_mMRavenTributeSpawnTimer) > 0.0)) {
lv_state = libMapM_ge_MMRavenCurseState_TributeSpawning;
if ((lv_state != lv_lastState)) {
libUIUI_gf_MapMechanicsRavenCourtSetModeForTeam(libUIUI_ge_MapMechanicsRavenCourtModes_TributeSpawning, 0);
}
libUIUI_gf_MapMechanicsRavenCourtSetRemainingTributeSpawnTime(FixedToInt(TimerGetRemaining(libMapM_gv_mMRavenTributeSpawnTimer)));
lv_lastState = lv_state;
}
else if ((UnitGroupCount(libMapM_gv_mMRavenTributes, c_unitCountAlive) > 0)) {
lv_state = libMapM_ge_MMRavenCurseState_TributeSpawned;
if ((lv_state != lv_lastState)) {
libUIUI_gf_MapMechanicsRavenCourtSetModeForTeam(libUIUI_ge_MapMechanicsRavenCourtModes_TributeSpawned, 0);
}
lv_lastState = lv_state;
}
else if (true) {
lv_state = libMapM_ge_MMRavenCurseState_NoActivity;
if ((lv_state != lv_lastState)) {
libUIUI_gf_MapMechanicsRavenCourtSetModeForTeam(libUIUI_ge_MapMechanicsRavenCourtModes_NoActivity, 0);
libUIUI_gf_MapMechanicsRavenCourtShowHidePanel(true);
}
lv_lastState = lv_state;
}
libMapM_gf_MMRavenObjectiveUIUpdateText();
Wait(0.25, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenObjectiveUIHandler_Init () {
libMapM_gt_MMRavenObjectiveUIHandler = TriggerCreate("libMapM_gt_MMRavenObjectiveUIHandler_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Disable Event
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenDisableEvent_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
TimerPause(libMapM_gv_mMRavenStartTimer, true);
TimerPause(libMapM_gv_mMRavenWarningTimer, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenDisableEvent_Init () {
libMapM_gt_MMRavenDisableEvent = TriggerCreate("libMapM_gt_MMRavenDisableEvent_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Enable Event
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenEnableEvent_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((TimerGetRemaining(libMapM_gv_mMRavenStartTimer) > 0.0)) {
TimerPause(libMapM_gv_mMRavenStartTimer, false);
}
if ((TimerGetRemaining(libMapM_gv_mMRavenWarningTimer) > 0.0)) {
TimerPause(libMapM_gv_mMRavenWarningTimer, false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenEnableEvent_Init () {
libMapM_gt_MMRavenEnableEvent = TriggerCreate("libMapM_gt_MMRavenEnableEvent_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Debug (Start Warning)
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenDebugStartWarning_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
if (!(((TimerGetRemaining(libMapM_gv_mMRavenStartTimer) > 0.0) || (TimerGetRemaining(libMapM_gv_mMRavenWarningTimer) > 0.0)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((TimerGetRemaining(libMapM_gv_mMRavenStartTimer) > 0.0)) {
TimerStart(libMapM_gv_mMRavenStartTimer, 1.0, false, c_timeGame);
}
else {
TimerStart(libMapM_gv_mMRavenWarningTimer, 1.0, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenDebugStartWarning_Init () {
libMapM_gt_MMRavenDebugStartWarning = TriggerCreate("libMapM_gt_MMRavenDebugStartWarning_Func");
TriggerEnable(libMapM_gt_MMRavenDebugStartWarning, false);
TriggerAddEventChatMessage(libMapM_gt_MMRavenDebugStartWarning, c_playerAny, "WARNINGSTART", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Debug (Start Elune -es)
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenDebugStartElunees_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TimerStart(libMapM_gv_mMRavenStartTimer, 1.0, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenDebugStartElunees_Init () {
libMapM_gt_MMRavenDebugStartElunees = TriggerCreate("libMapM_gt_MMRavenDebugStartElunees_Func");
TriggerEnable(libMapM_gt_MMRavenDebugStartElunees, false);
TriggerAddEventChatMessage(libMapM_gt_MMRavenDebugStartElunees, c_playerAny, "-es", true);
TriggerAddEventChatMessage(libMapM_gt_MMRavenDebugStartElunees, c_playerAny, "EVENTSTART", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Debug (Start Next -en)
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenDebugStartNexten_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((TriggerIsEnabled(libMapM_gt_MMRavenStartSpawning) == true)) {
TimerStart(libMapM_gv_mMRavenStartTimer, 1.0, false, c_timeGame);
while (!((TriggerIsEnabled(libMapM_gt_MMRavenStartSpawning) == false))) {
Wait(0.25, c_timeGame);
}
}
TimerStart(libMapM_gv_mMRavenWarningTimer, 1.0, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenDebugStartNexten_Init () {
libMapM_gt_MMRavenDebugStartNexten = TriggerCreate("libMapM_gt_MMRavenDebugStartNexten_Func");
TriggerEnable(libMapM_gt_MMRavenDebugStartNexten, false);
TriggerAddEventChatMessage(libMapM_gt_MMRavenDebugStartNexten, c_playerAny, "-en", true);
TriggerAddEventChatMessage(libMapM_gt_MMRavenDebugStartNexten, c_playerAny, "TRIBUTENEXT", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Raven Debug (Start Curse -ec)
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMRavenDebugStartCurseec_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((TriggerIsEnabled(libMapM_gt_MMRavenStartSpawning) == true)) {
TimerStart(libMapM_gv_mMRavenStartTimer, 1.0, false, c_timeGame);
while (!((TriggerIsEnabled(libMapM_gt_MMRavenStartSpawning) == false))) {
Wait(0.25, c_timeGame);
}
}
libMapM_gv_mMRavenTeamStats[1].lv_triburteCollected = (libMapM_gv_mMRavenTributeThreshold_C - 1);
TimerStart(libMapM_gv_mMRavenWarningTimer, 1.0, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMRavenDebugStartCurseec_Init () {
libMapM_gt_MMRavenDebugStartCurseec = TriggerCreate("libMapM_gt_MMRavenDebugStartCurseec_Func");
TriggerEnable(libMapM_gt_MMRavenDebugStartCurseec, false);
TriggerAddEventChatMessage(libMapM_gt_MMRavenDebugStartCurseec, c_playerAny, "-ec", true);
TriggerAddEventChatMessage(libMapM_gt_MMRavenDebugStartCurseec, c_playerAny, "TRIBUTELAST", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Calculate Curse Siege Damage Done
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_CalculateCurseSiegeDamageDone_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((libMapM_gv_mMRavenTeamStats[libGame_gv_teamOrderIndex_C].lv_cursed == true)) {
libMapM_gf_CalculateCurseSiegeDamageDone(libGame_gv_teamOrderIndex_C);
}
else if ((libMapM_gv_mMRavenTeamStats[libGame_gv_teamChaosIndex_C].lv_cursed == true)) {
libMapM_gf_CalculateCurseSiegeDamageDone(libGame_gv_teamChaosIndex_C);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_CalculateCurseSiegeDamageDone_Init () {
libMapM_gt_CalculateCurseSiegeDamageDone = TriggerCreate("libMapM_gt_CalculateCurseSiegeDamageDone_Func");
libGame_gf_GameOverEvent(libMapM_gt_CalculateCurseSiegeDamageDone);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Init
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonInit_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((libGame_gf_MapMechanicInitializationMechanicType() == libMapM_gv_mMGardensDragonMechanicName_C))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMapM_gv_mapMechanicsObserverCountLabelText = StringToText("");
TriggerEnable(libMapM_gt_MMGardensDragonDebugCheatStartObelisksso, true);
TriggerEnable(libMapM_gt_MMGardensDragonGateOpen, true);
TriggerEnable(libMapM_gt_MMGardensDragonWarningTimerExpires, true);
TriggerEnable(libMapM_gt_MMGardensDragonTowerGoalActivationTimerExpires, true);
TriggerEnable(libMapM_gt_MMGardensDragonWarningTimerStart, true);
TriggerEnable(libMapM_gt_MMGardensDragonDragonEventStarts, true);
TriggerEnable(libMapM_gt_MMGardensDragonDragonEventEnds, true);
TriggerEnable(libMapM_gt_MMGardensDragonTransformChannelFinish, true);
TriggerEnable(libMapM_gt_MMGardensDragonDisableEvent, true);
libGame_gf_SendMapSpecificAwardInitializeEventwithUserData(null, "Shriner");
UnitSetState(libMapM_gv_mMGardensDragonStatue, c_unitStateHighlightable, false);
UnitSetState(libMapM_gv_mMGardensDragonStatue, c_unitStateTargetable, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonInit_Init () {
libMapM_gt_MMGardensDragonInit = TriggerCreate("libMapM_gt_MMGardensDragonInit_Func");
libGame_gf_MapMechanicInitialization(libMapM_gt_MMGardensDragonInit);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Gate Open
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonGateOpen_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((libMapM_gv_mMMapMechanicDisabled == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TimerStart(libMapM_gv_mMGardensDragonDragonTowerStartTimer, libMapM_gv_mMGardensDragonDragonTowerStartTime_C, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonGateOpen_Init () {
libMapM_gt_MMGardensDragonGateOpen = TriggerCreate("libMapM_gt_MMGardensDragonGateOpen_Func");
TriggerEnable(libMapM_gt_MMGardensDragonGateOpen, false);
TriggerAddEventTimer(libMapM_gt_MMGardensDragonGateOpen, libGame_gv_openTheGatesTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Warning Timer Start
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonWarningTimerStart_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
TriggerExecute(libMapM_gt_MMGardensDragonObjectiveUIHandler, true, false);
libMapM_gv_mMGardensDragonCurrentState = libMapM_ge_MMGardensDragonState_ObelisksWarning;
TimerStart(libMapM_gv_mMGardensDragonDragonTowerWarningTimer, libMapM_gv_mMGardensDragonWarningTime_C, false, c_timeGame);
TimerStart(libMapM_gv_mMGardensDragonDragonTowerGoalActivationTimer, (libMapM_gv_mMGardensDragonWarningTime_C - 5.0), false, c_timeGame);
if ((libMapM_gv_mMDragonballsTransmissionShrinesRechargeFirstTime == true)) {
libMapM_gv_mMDragonballsTransmissionShrinesRechargeFirstTime = false;
libMapM_gf_MMDragonballsTransmissionObelisksChargingFirstQ();
}
else {
libMapM_gf_MMDragonballsTransmissionObelisksChargingRepeatQ();
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonWarningTimerStart_Init () {
libMapM_gt_MMGardensDragonWarningTimerStart = TriggerCreate("libMapM_gt_MMGardensDragonWarningTimerStart_Func");
TriggerEnable(libMapM_gt_MMGardensDragonWarningTimerStart, false);
TriggerAddEventTimer(libMapM_gt_MMGardensDragonWarningTimerStart, libMapM_gv_mMGardensDragonDragonTowerStartTimer);
TriggerAddEventTimer(libMapM_gt_MMGardensDragonWarningTimerStart, libMapM_gv_mMGardensDragonDragonTowerRespawnTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Tower Goal Activation Timer Expires
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonTowerGoalActivationTimerExpires_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_obelisk;
// Automatic Variable Declarations
int auto52ED3A72_ae;
const int auto52ED3A72_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
auto52ED3A72_ae = libMapM_gv_mMGardensDragonDragonTowerCount;
lv_obelisk = 1;
for ( ; ( (auto52ED3A72_ai >= 0 && lv_obelisk <= auto52ED3A72_ae) || (auto52ED3A72_ai < 0 && lv_obelisk >= auto52ED3A72_ae) ) ; lv_obelisk += auto52ED3A72_ai ) {
AddUnitOfInterest(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit, 3.5, 5.0, "DefendDragonShrine", libNtve_ge_GoalTeam_Both, libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_captureBeaconIndex);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonTowerGoalActivationTimerExpires_Init () {
libMapM_gt_MMGardensDragonTowerGoalActivationTimerExpires = TriggerCreate("libMapM_gt_MMGardensDragonTowerGoalActivationTimerExpires_Func");
TriggerEnable(libMapM_gt_MMGardensDragonTowerGoalActivationTimerExpires, false);
TriggerAddEventTimer(libMapM_gt_MMGardensDragonTowerGoalActivationTimerExpires, libMapM_gv_mMGardensDragonDragonTowerGoalActivationTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Warning Timer Expires
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonWarningTimerExpires_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
int lv_obelisk;
int lv_p;
const int lv_fontSize = 15;
// Automatic Variable Declarations
int autoE4D52634_ae;
playergroup autoA3E49DEF_g;
playergroup auto94A62BD7_g;
playergroup auto1E05FCEC_g;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
libMapM_gv_mMGardensDragonCurrentState = libMapM_ge_MMGardensDragonState_ObelisksAvailable;
if ((libMapM_gv_mMGardensDragonSpawnFirstTime == true)) {
libMapM_gv_mMGardensDragonSpawnFirstTime = false;
autoE4D52634_ae = libMapM_gv_mMGardensDragonDragonTowerObeliskCount_C;
lv_obelisk = 1;
for ( ; lv_obelisk <= autoE4D52634_ae ; lv_obelisk += 1 ) {
libUIUI_gf_AttachHelpButtonToUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit, libMapM_gt_MMHelpbuttonClicked, StringExternal("Param/Value/lib_MapM_C773195E"), 100, 110);
autoA3E49DEF_g = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(autoA3E49DEF_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
libUIUI_gf_ShowHideHelpButtonOnUnitForPlayer(lv_itPlayer, false, libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit);
}
auto94A62BD7_g = libCore_gv_activeHumanPlayers;
lv_p = -1;
while (true) {
lv_p = PlayerGroupNextPlayer(auto94A62BD7_g, lv_p);
if (lv_p<0) { break; }
if ((libMapM_gv_mapMechanicUsedTracker[lv_p].lv_dragonShrine == true)) {
libUIUI_gf_ShowHideHelpButtonOnUnitForPlayer(lv_p, false, libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit);
}
}
}
TriggerExecute(libMapM_gt_MMGardensDragonTurnOnDragonTowersFirstTime, true, false);
}
else {
TriggerExecute(libMapM_gt_MMGardensDragonTurnOnDragonTowersAgain, true, false);
}
TextTagCreate(StringExternal("Param/Value/lib_MapM_60EE21E2"), lv_fontSize, UnitGetPosition(libMapM_gv_mMGardensDragonStatue), 0.0, true, false, PlayerGroupAll());
libMapM_gv_mMGardensDragonStatueTextTag = TextTagLastCreated();
TextTagAttachToUnit(TextTagLastCreated(), libMapM_gv_mMGardensDragonStatue, libMapM_gv_mMGardensDragonDragonStatueHelperTextTagHeightOffset_C);
TextTagShow(TextTagLastCreated(), PlayerGroupAll(), true);
TextTagShow(TextTagLastCreated(), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], false);
auto1E05FCEC_g = libCore_gv_activeHumanPlayers;
lv_p = -1;
while (true) {
lv_p = PlayerGroupNextPlayer(auto1E05FCEC_g, lv_p);
if (lv_p<0) { break; }
if ((libMapM_gv_mapMechanicUsedTracker[lv_p].lv_dragonStatue == true)) {
TextTagShow(TextTagLastCreated(), libCore_gv_playerGroupFromPlayer[lv_p], false);
}
}
TextTagCreate(StringExternal("Param/Value/lib_MapM_A60971D2"), lv_fontSize, UnitGetPosition(libMapM_gv_mMGardensDragonStatue), 0.0, true, false, PlayerGroupAll());
libMapM_gv_mMGardensDragonStatueTextTagAllyOwned = TextTagLastCreated();
TextTagAttachToUnit(TextTagLastCreated(), libMapM_gv_mMGardensDragonStatue, libMapM_gv_mMGardensDragonDragonStatueHelperTextTagHeightOffset_C);
TextTagShow(TextTagLastCreated(), PlayerGroupAll(), false);
TextTagCreate(StringExternal("Param/Value/lib_MapM_EEE97929"), lv_fontSize, UnitGetPosition(libMapM_gv_mMGardensDragonStatue), 0.0, true, false, PlayerGroupAll());
libMapM_gv_mMGardensDragonStatueTextTagEnemyOwned = TextTagLastCreated();
TextTagAttachToUnit(TextTagLastCreated(), libMapM_gv_mMGardensDragonStatue, libMapM_gv_mMGardensDragonDragonStatueHelperTextTagHeightOffset_C);
TextTagShow(TextTagLastCreated(), PlayerGroupAll(), false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonWarningTimerExpires_Init () {
libMapM_gt_MMGardensDragonWarningTimerExpires = TriggerCreate("libMapM_gt_MMGardensDragonWarningTimerExpires_Func");
TriggerEnable(libMapM_gt_MMGardensDragonWarningTimerExpires, false);
TriggerAddEventTimer(libMapM_gt_MMGardensDragonWarningTimerExpires, libMapM_gv_mMGardensDragonDragonTowerWarningTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Dragon Event Starts
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonDragonEventStarts_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMapM_gv_mMGardensDragonCurrentState = libMapM_ge_MMGardensDragonState_DragonRampaging;
SoundChannelMute(PlayerGroupAll(), c_soundCategoryAmbient, true);
SoundtrackStop(PlayerGroupAll(), c_soundtrackCategoryMusic, true);
libSond_gf_SoundtrackApplyNewDefaultSoundtrackForPlayerGroup("Storm_Music_Dragonknight", PlayerGroupAll());
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonDragonEventStarts_Init () {
libMapM_gt_MMGardensDragonDragonEventStarts = TriggerCreate("libMapM_gt_MMGardensDragonDragonEventStarts_Func");
TriggerEnable(libMapM_gt_MMGardensDragonDragonEventStarts, false);
libGame_gf_MapDragonShireDragonActivated(libMapM_gt_MMGardensDragonDragonEventStarts);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Dragon Event Ends
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonDragonEventEnds_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMapM_gv_mMGardensDragonCurrentState = libMapM_ge_MMGardensDragonState_Idle;
SoundChannelMute(PlayerGroupAll(), c_soundCategoryAmbient, false);
SoundtrackStop(PlayerGroupAll(), c_soundtrackCategoryMusic, true);
libSond_gf_SoundtrackPlayMapSoundtrackAsDefaultSoundtrackForAllPlayers();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonDragonEventEnds_Init () {
libMapM_gt_MMGardensDragonDragonEventEnds = TriggerCreate("libMapM_gt_MMGardensDragonDragonEventEnds_Func");
TriggerEnable(libMapM_gt_MMGardensDragonDragonEventEnds, false);
libGame_gf_MapDragonShireDragonEnds(libMapM_gt_MMGardensDragonDragonEventEnds);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Turn On Dragon Towers First Time
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonTurnOnDragonTowersFirstTime_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_indexTeam;
int lv_obelisk;
int lv_player;
// Automatic Variable Declarations
int auto27701136_ae;
const int auto27701136_ai = 1;
int autoFF5452D1_ae;
const int autoFF5452D1_ai = 1;
// Variable Initialization
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
auto27701136_ae = libMapM_gv_mMGardensDragonDragonTowerCount;
lv_obelisk = 1;
for ( ; ( (auto27701136_ai >= 0 && lv_obelisk <= auto27701136_ae) || (auto27701136_ai < 0 && lv_obelisk >= auto27701136_ae) ) ; lv_obelisk += auto27701136_ai ) {
ActorSend(libNtve_gf_MainActorofUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit), "SetMinimapVisibility 1");
libGame_gf_SendEventMapDragonShireSpawned(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit);
libGame_gf_CapturePointEnable(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_captureBeaconIndex);
libNtve_gf_SendActorMessageToUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit, "Signal OwnerNeutral");
}
TriggerEnable(libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires, true);
libMapM_gf_MMDragonballsTransmissionObelisksSpawnFirstQ();
autoFF5452D1_ae = libMapM_gv_mMGardensDragonDragonTowerCount;
lv_obelisk = 1;
for ( ; ( (autoFF5452D1_ai >= 0 && lv_obelisk <= autoFF5452D1_ae) || (autoFF5452D1_ai < 0 && lv_obelisk >= autoFF5452D1_ae) ) ; lv_obelisk += autoFF5452D1_ai ) {
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlert", UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit), ColorWithAlpha(100.00, 100.00, 0.00, 0.00), 6.0);
ActorCreate(ActorScopeFromUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit), "UI_Game_Ping_Shrine_Ready", null, null, null);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonTurnOnDragonTowersFirstTime_Init () {
libMapM_gt_MMGardensDragonTurnOnDragonTowersFirstTime = TriggerCreate("libMapM_gt_MMGardensDragonTurnOnDragonTowersFirstTime_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Turn On Dragon Towers Again
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonTurnOnDragonTowersAgain_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_p;
int lv_dragontower;
// Automatic Variable Declarations
int autoC4CF07E2_ae;
const int autoC4CF07E2_ai = 1;
playergroup auto82B36A20_g;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
TriggerEnable(libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires, true);
UnitCreate(1, "VehicleDragon", c_unitCreateIgnorePlacement, 0, libMapM_gv_mMGardensDragonDragonKnightRespawnPoint, 270.0, null);
libMapM_gv_mMGardensDragonStatue = UnitLastCreated();
libMapM_gf_AddVehicle(libMapM_gv_mMGardensDragonStatue);
UnitSetState(libMapM_gv_mMGardensDragonStatue, c_unitStateStatusBar, false);
TimerPause(libMapM_gv_mMGardensDragonDragonKnightLifeTimer, true);
libMapM_gf_MMDragonballsTransmissionObelisksSpawnRepeatQ();
autoC4CF07E2_ae = libMapM_gv_mMGardensDragonDragonTowerCount;
lv_dragontower = 1;
for ( ; ( (autoC4CF07E2_ai >= 0 && lv_dragontower <= autoC4CF07E2_ae) || (autoC4CF07E2_ai < 0 && lv_dragontower >= autoC4CF07E2_ae) ) ; lv_dragontower += autoC4CF07E2_ai ) {
UnitSetOwner(libMapM_gv_mMGardensDragonDragonTowers[lv_dragontower].lv_shrineUnit, libCore_gv_cOMPUTER_Neutral, true);
ActorSend(libNtve_gf_MainActorofUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_dragontower].lv_shrineUnit), "SetMinimapVisibility 1");
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormWarning", UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[lv_dragontower].lv_shrineUnit), ColorWithAlpha(100.00, 0.00, 0.00, 0.00), 3.0);
ActorCreate(ActorScopeFromUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_dragontower].lv_shrineUnit), "UI_Game_Ping_Shrine_Ready", null, null, null);
libGame_gf_CapturePointEnable(libMapM_gv_mMGardensDragonDragonTowers[lv_dragontower].lv_captureBeaconIndex);
AddUnitOfInterest(libMapM_gv_mMGardensDragonDragonTowers[lv_dragontower].lv_shrineUnit, 3.5, 0.0, "DefendDragonShrine", libNtve_ge_GoalTeam_Both, libMapM_gv_mMGardensDragonDragonTowers[lv_dragontower].lv_captureBeaconIndex);
libNtve_gf_SendActorMessageToUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_dragontower].lv_shrineUnit, "Signal OwnerNeutral");
auto82B36A20_g = PlayerGroupAll();
lv_p = -1;
while (true) {
lv_p = PlayerGroupNextPlayer(auto82B36A20_g, lv_p);
if (lv_p<0) { break; }
VisRevealArea(lv_p, RegionCircle(UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[lv_dragontower].lv_shrineUnit), 0.75), 0.125, false);
}
libGame_gf_SendEventMapDragonShireSpawned(libMapM_gv_mMGardensDragonDragonTowers[lv_dragontower].lv_shrineUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonTurnOnDragonTowersAgain_Init () {
libMapM_gt_MMGardensDragonTurnOnDragonTowersAgain = TriggerCreate("libMapM_gt_MMGardensDragonTurnOnDragonTowersAgain_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Dragon Tower - Change Ownership Event Fires
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_index;
int lv_owner;
int lv_obelisk;
int lv_p;
// Automatic Variable Declarations
int auto8EAED812_ae;
int auto16B91710_val;
playergroup autoDA72EB8E_g;
// Variable Initialization
lv_index = libGame_gf_CapturePointChangesOwnerCapturePointIndex();
lv_owner = libGame_gf_CapturePointChangesOwnerOwner();
// Actions
if (!runActions) {
return true;
}
auto8EAED812_ae = libMapM_gv_mMGardensDragonDragonTowerObeliskCount_C;
lv_obelisk = 1;
for ( ; lv_obelisk <= auto8EAED812_ae ; lv_obelisk += 1 ) {
if ((libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_captureBeaconIndex == lv_index)) {
auto16B91710_val = lv_owner;
if (auto16B91710_val == libCore_gv_cOMPUTER_TeamOrder) {
libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership(lv_obelisk, libCore_gv_cOMPUTER_TeamOrder, libGame_gf_CapturePointChangesOwnerCapturingPlayers());
libNtve_gf_SendActorMessageToUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit, "Signal OwnerOrder");
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlert", UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit), ColorWithAlpha(100.00, 100.00, 0.00, 0.00), 5.0);
}
else if (auto16B91710_val == libCore_gv_cOMPUTER_TeamChaos) {
libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership(lv_obelisk, libCore_gv_cOMPUTER_TeamChaos, libGame_gf_CapturePointChangesOwnerCapturingPlayers());
libNtve_gf_SendActorMessageToUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit, "Signal OwnerChaos");
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlert", UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit), ColorWithAlpha(100.00, 100.00, 0.00, 0.00), 5.0);
}
else if (auto16B91710_val == libCore_gv_cOMPUTER_Neutral) {
libMapM_gf_MMGardensDragonChangeDragonballTowerOwnership(lv_obelisk, libCore_gv_cOMPUTER_Neutral, libGame_gf_CapturePointChangesOwnerCapturingPlayers());
libNtve_gf_SendActorMessageToUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit, "Signal OwnerNeutral");
}
else {
}
if ((lv_owner != libCore_gv_cOMPUTER_Neutral)) {
autoDA72EB8E_g = PlayerGroupAlliance(c_playerGroupAlly, lv_owner);
lv_p = -1;
while (true) {
lv_p = PlayerGroupNextPlayer(autoDA72EB8E_g, lv_p);
if (lv_p<0) { break; }
if ((libNtve_gf_UnitInRegion(libGame_gv_players[lv_p].lv_heroUnit, RegionCircle(UnitGetPosition(libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit), libMapM_gv_mMGardensDragonDragonballTowerCaptureRadius_C)) == true)) {
libMapM_gv_mapMechanicUsedTracker[lv_p].lv_dragonShrine = true;
libUIUI_gf_ShowHideHelpButtonOnUnitForPlayer(lv_p, false, libMapM_gv_mMGardensDragonDragonTowers[lv_obelisk].lv_shrineUnit);
}
}
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires_Init () {
libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires = TriggerCreate("libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires_Func");
TriggerEnable(libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires, false);
libGame_gf_CapturePointChangesOwner(libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Dragon Tower - Check Obelisk Status
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonDragonTowerCheckObeliskStatus_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_orderTowersOwned;
int lv_chaosTowersOwned;
int lv_towerIndex;
// Automatic Variable Declarations
const int autoC86FE021_ae = libMapM_gv_mMGardensDragonDragonTowerObeliskCount_C;
const int autoC86FE021_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_towerIndex = 1;
for ( ; ( (autoC86FE021_ai >= 0 && lv_towerIndex <= autoC86FE021_ae) || (autoC86FE021_ai < 0 && lv_towerIndex >= autoC86FE021_ae) ) ; lv_towerIndex += autoC86FE021_ai ) {
if ((UnitGetOwner(libMapM_gv_mMGardensDragonDragonTowers[lv_towerIndex].lv_shrineUnit) == libCore_gv_cOMPUTER_TeamOrder)) {
lv_orderTowersOwned += 1;
}
if ((UnitGetOwner(libMapM_gv_mMGardensDragonDragonTowers[lv_towerIndex].lv_shrineUnit) == libCore_gv_cOMPUTER_TeamChaos)) {
lv_chaosTowersOwned += 1;
}
}
if (((lv_chaosTowersOwned == libMapM_gv_mMGardensDragonDragonTowerObeliskCount_C) || (lv_orderTowersOwned == libMapM_gv_mMGardensDragonDragonTowerObeliskCount_C))) {
if ((lv_chaosTowersOwned == libMapM_gv_mMGardensDragonDragonTowerObeliskCount_C)) {
libMapM_gf_MMGardensDragonActivateStatueForTeam(libCore_gv_cOMPUTER_TeamChaos);
libMapM_gf_MMDragonballsTransmissionDragonCapturableQ(libGame_gv_teamChaosIndex_C);
}
else {
libMapM_gf_MMGardensDragonActivateStatueForTeam(libCore_gv_cOMPUTER_TeamOrder);
libMapM_gf_MMDragonballsTransmissionDragonCapturableQ(libGame_gv_teamOrderIndex_C);
}
}
else {
if ((UnitGetOwner(libMapM_gv_mMGardensDragonStatue) != 0)) {
libMapM_gf_MMGardensDragonDeactivateStatue(UnitGetOwner(libMapM_gv_mMGardensDragonStatue));
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonDragonTowerCheckObeliskStatus_Init () {
libMapM_gt_MMGardensDragonDragonTowerCheckObeliskStatus = TriggerCreate("libMapM_gt_MMGardensDragonDragonTowerCheckObeliskStatus_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Transform Channel Start
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonTransformChannelStart_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
UnitAbilitySpendExplicit(libMapM_gv_mMGardensDragonStatue, AbilityCommand("LeaveVehicle", 0), c_spendLocationAbility, 1.0, 1.0, 1.0, 1.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonTransformChannelStart_Init () {
libMapM_gt_MMGardensDragonTransformChannelStart = TriggerCreate("libMapM_gt_MMGardensDragonTransformChannelStart_Func");
TriggerEnable(libMapM_gt_MMGardensDragonTransformChannelStart, false);
TriggerAddEventUnitAbility(libMapM_gt_MMGardensDragonTransformChannelStart, null, AbilityCommand("UseVehicle", 0), c_abilEffectStageChannel, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Transform Channel Finish
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonTransformChannelFinish_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itObelisk;
fixed lv_duration;
int lv_dragonPilotTeam;
// Automatic Variable Declarations
const int auto91990493_ae = libCore_gv_bALMaxPlayers;
int auto91990493_var;
int auto632F3216_ae;
const int auto632F3216_ai = 1;
// Variable Initialization
lv_dragonPilotTeam = libGame_gf_TeamNumberOfPlayer(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster));
// Actions
if (!runActions) {
return true;
}
TriggerEnable(libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires, false);
lv_duration = libMapM_gf_MMGardensDragonDragonDuration();
libMapM_gv_mMGardensDragonDragonCaptures += 1;
UnitBehaviorAdd(libMapM_gv_mMGardensDragonStatue, "VehicleDragonTimedLife", EventPlayerEffectUsedUnit(c_effectUnitCaster), 1);
UnitBehaviorSetDuration(libMapM_gv_mMGardensDragonStatue, "VehicleDragonTimedLife", lv_duration);
UnitBehaviorSetDurationRemaining(libMapM_gv_mMGardensDragonStatue, "VehicleDragonTimedLife", lv_duration);
auto91990493_var = 1;
for ( ; auto91990493_var <= auto91990493_ae; auto91990493_var += 1 ) {
UnitSetStateForPlayer(libMapM_gv_mMGardensDragonStatue, c_unitStateTargetable, auto91990493_var, true);
}
libGame_gf_SendEventMapObjectiveCapturedByUnit(EventPlayerEffectUsedUnit(c_effectUnitCaster));
libNtve_gf_UnitAbilityRemoveCooldown(libMapM_gv_mMGardensDragonStatue, "LeaveVehicle", "Abil/LeaveVehicle");
UnitAbilityAddCooldown(libMapM_gv_mMGardensDragonStatue, "LeaveVehicle", "Abil/LeaveVehicle", 5.0);
TimerPause(libMapM_gv_mMGardensDragonDragonStatueActiveReminderTimer, true);
TimerStart(libMapM_gv_mMGardensDragonDragonKnightLifeTimer, lv_duration, false, c_timeGame);
TriggerEnable(libMapM_gt_MMGardensDragonDragonKnightDiesorExpires, true);
libMapM_gv_mMGardensDragonUnit = libGame_gv_players[EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)].lv_activeVehicle;
if ((libNtve_gf_UnitInRegion(libMapM_gv_mMGardensDragonUnit, RegionCircle(libMapM_gv_mMGardensDragonDragonKnightRespawnPoint, 1.0)) == true)) {
UnitSetPosition(libMapM_gv_mMGardensDragonUnit, libMapM_gv_mMGardensDragonSpawnPoint, false);
}
UnitSetState(libMapM_gv_mMGardensDragonUnit, c_unitStateStatusBar, true);
libMapM_gv_mMGardensDragonPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
StatEventCreate("DragonKnightActivated");
StatEventAddDataInt(StatEventLastCreated(), "Event", libMapM_gv_mMGardensDragonDragonCaptures);
StatEventAddDataFixed(StatEventLastCreated(), "TeamID", libGame_gf_TeamNumberOfPlayer(libMapM_gv_mMGardensDragonPlayer));
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventSend(StatEventLastCreated());
RemoveUnitOfInterest(libMapM_gv_mMGardensDragonDragonTowers[1].lv_shrineUnit, "DefendDragonShrine", libNtve_ge_GoalTeam_Both);
RemoveUnitOfInterest(libMapM_gv_mMGardensDragonDragonTowers[2].lv_shrineUnit, "DefendDragonShrine", libNtve_ge_GoalTeam_Both);
RemoveUnitOfInterest(libMapM_gv_mMGardensDragonStatue, "ActivateDragonKnight", libAIAI_gf_ConvertIntegertoGoalTeam(lv_dragonPilotTeam));
RemoveUnitOfInterest(libMapM_gv_mMGardensDragonStatue, "DefendDragonStatue", libAIAI_gf_ConvertIntegertoGoalTeam(libGame_gf_EnemyTeam(lv_dragonPilotTeam)));
if ((libCore_gf_ActorStoredForUnit(libMapM_gv_mMGardensDragonUnit, 1) == null)) {
libNtve_gf_AttachModelToUnit(libMapM_gv_mMGardensDragonUnit, "GardensDragonLight", "Ref_Center");
libCore_gf_StoreActorForUnit(libMapM_gv_mMGardensDragonUnit, 1, libNtve_gf_ActorLastCreated());
}
auto632F3216_ae = libMapM_gv_mMGardensDragonDragonTowerCount;
lv_itObelisk = 1;
for ( ; ( (auto632F3216_ai >= 0 && lv_itObelisk <= auto632F3216_ae) || (auto632F3216_ai < 0 && lv_itObelisk >= auto632F3216_ae) ) ; lv_itObelisk += auto632F3216_ai ) {
UnitSetOwner(libMapM_gv_mMGardensDragonDragonTowers[lv_itObelisk].lv_shrineUnit, libCore_gv_cOMPUTER_Neutral, true);
UnitIssueOrder(libMapM_gv_mMGardensDragonDragonTowers[lv_itObelisk].lv_shrineUnit, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
libGame_gf_CapturePointDisable(libMapM_gv_mMGardensDragonDragonTowers[lv_itObelisk].lv_captureBeaconIndex);
ActorSend(libNtve_gf_MainActorofUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_itObelisk].lv_shrineUnit), "SetMinimapVisibility");
libNtve_gf_SendActorMessageToUnit(libMapM_gv_mMGardensDragonDragonTowers[lv_itObelisk].lv_shrineUnit, "AnimBracketStop Capture");
UnitStatusBarOverride(libMapM_gv_mMGardensDragonDragonTowers[lv_itObelisk].lv_shrineUnit, -1);
TextTagDestroy(libMapM_gv_mMGardensDragonDragonTowers[lv_itObelisk].lv_helperText);
}
ActorScopeSend(ActorScopeFromActor(libMapM_gv_mMGardensDragonSoundRegionActor), "Signal StopSound");
ActorRegionCreate(null, "DragonBeamEndRegion", libMapM_gv_mMGardensDragonSoundRegion);
libGame_gf_SendEventMapDragonShireDragonActivated(libMapM_gv_mMGardensDragonStatue, libMapM_gv_mMGardensDragonPlayer);
TextTagDestroy(libMapM_gv_mMGardensDragonStatueTextTag);
TextTagDestroy(libMapM_gv_mMGardensDragonStatueTextTagAllyOwned);
TextTagDestroy(libMapM_gv_mMGardensDragonStatueTextTagEnemyOwned);
libMapM_gv_mapMechanicUsedTracker[EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)].lv_dragonStatue = true;
libGame_gf_DropLootBannerinSconce(UnitGroupUnit(UnitGroup("LootBannerSconce", c_playerAny, RegionCircle(UnitGetPosition(libMapM_gv_mMGardensDragonUnit), 8.0), UnitFilter(0, 0, 0, 0), 1), 1), libGame_gv_players[libMapM_gv_mMGardensDragonPlayer].lv_lootContent.lv_loot_Banner.lv_bannerID, libMapM_gv_mMGardensDragonPlayer, true);
libMapM_gf_MMGardensDragonDragonHasEnteredArtHooks();
libMapM_gf_MMDragonballsTransmissionDragonActiveQ(libGame_gf_TeamNumberOfPlayer(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)));
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonTransformChannelFinish_Init () {
libMapM_gt_MMGardensDragonTransformChannelFinish = TriggerCreate("libMapM_gt_MMGardensDragonTransformChannelFinish_Func");
TriggerEnable(libMapM_gt_MMGardensDragonTransformChannelFinish, false);
TriggerAddEventPlayerEffectUsed(libMapM_gt_MMGardensDragonTransformChannelFinish, c_playerAny, "UseVehicleCastCompleteSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Take Dragon Reminder Timer Expires
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonTakeDragonReminderTimerExpires_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_obelisk;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
if ((UnitGetOwner(libMapM_gv_mMGardensDragonStatue) == libCore_gv_cOMPUTER_TeamOrder)) {
libCore_gf_CreateMinimapPingStormWithPlayerId(PlayerGroupAll(), "StormWarning", UnitGetPosition(libMapM_gv_mMGardensDragonStatue), ColorWithAlpha(0,0,0,0), 5.0, libCore_gv_cOMPUTER_TeamOrder);
}
else {
libCore_gf_CreateMinimapPingStormWithPlayerId(PlayerGroupAll(), "StormWarning", UnitGetPosition(libMapM_gv_mMGardensDragonStatue), ColorWithAlpha(0,0,0,0), 5.0, libCore_gv_cOMPUTER_TeamChaos);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonTakeDragonReminderTimerExpires_Init () {
libMapM_gt_MMGardensDragonTakeDragonReminderTimerExpires = TriggerCreate("libMapM_gt_MMGardensDragonTakeDragonReminderTimerExpires_Func");
TriggerAddEventTimer(libMapM_gt_MMGardensDragonTakeDragonReminderTimerExpires, libMapM_gv_mMGardensDragonDragonStatueActiveReminderTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Dragon Knight Dies or Expires
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonDragonKnightDiesorExpires_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_u;
int lv_camp;
int lv_i;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
// Actions
if (!runActions) {
return true;
}
if ((lv_player > libCore_gv_bALMaxPlayers)) {
lv_player = libMapM_gv_mMGardensDragonPlayer;
}
TimerStart(libMapM_gv_mMGardensDragonDragonTowerRespawnTimer, libMapM_gv_mMGardensDragonDragonTowerRespawnTime_C, false, c_timeGame);
TimerStart(libMapM_gv_mMGardensDragonDragonKnightLifeTimer, 0.0, false, c_timeGame);
libGame_gf_SendEventMapDragonShireDragonEnds();
ActorSend(libCore_gf_ActorStoredForUnit(libMapM_gv_mMGardensDragonUnit, 1), "Destroy");
libMapM_gf_MMGardensDragonDragonHasLeftArtHooks();
Wait(0.5, c_timeGame);
libMapM_gf_MMDragonballsTransmissionDragonExpireQ();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonDragonKnightDiesorExpires_Init () {
libMapM_gt_MMGardensDragonDragonKnightDiesorExpires = TriggerCreate("libMapM_gt_MMGardensDragonDragonKnightDiesorExpires_Func");
TriggerEnable(libMapM_gt_MMGardensDragonDragonKnightDiesorExpires, false);
TriggerAddEventUnitDied(libMapM_gt_MMGardensDragonDragonKnightDiesorExpires, UnitRefFromVariable("libMapM_gv_mMGardensDragonUnit"));
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Objective UI Handler
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonObjectiveUIHandler_Func (bool testConds, bool runActions) {
// Variable Declarations
text lv_tip;
int lv_indexTeam;
int lv_indexTeamEnemy;
int lv_state;
int lv_lastState;
// Automatic Variable Declarations
int auto3C7A2C06_val;
int auto01D05E00_val;
// Variable Initialization
lv_state = libMapM_ge_MMGardensDragonState_Idle;
lv_lastState = libMapM_ge_MMGardensDragonState_Idle;
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
lv_tip = TextExpressionAssemble("Param/Expression/lib_MapM_EE88F2AF");
while (true) {
if ((libMapM_gv_mMGardensDragonCurrentState == libMapM_ge_MMGardensDragonState_DragonRampaging)) {
lv_state = libMapM_ge_MMGardensDragonState_DragonRampaging;
if ((libGame_gf_TeamNumberOfPlayer(UnitGetOwner(libMapM_gv_mMGardensDragonStatue)) == 1)) {
lv_indexTeam = 1;
lv_indexTeamEnemy = 2;
}
else {
lv_indexTeam = 2;
lv_indexTeamEnemy = 1;
}
if ((lv_state != lv_lastState)) {
libUIUI_gf_MapMechanicsDragonShireSetUpDragonForTeam(libMapM_gv_mMGardensDragonUnit, lv_indexTeam);
libUIUI_gf_MapMechanicsDragonShireSetMode(libUIUI_ge_MapMechanicsDragonShireModes_Dragon);
}
libUIUI_gf_MapMechanicsDragonShireSetRemainingDragonTime((FixedToInt(UnitBehaviorDuration(libMapM_gv_mMGardensDragonUnit, "VehicleDragonTimedLife")) + 1));
lv_lastState = lv_state;
}
else if ((libMapM_gv_mMGardensDragonCurrentState == libMapM_ge_MMGardensDragonState_ObelisksWarning)) {
lv_state = libMapM_ge_MMGardensDragonState_ObelisksWarning;
if ((lv_state != lv_lastState)) {
libUIUI_gf_MapMechanicsDragonShireSetMode(libUIUI_ge_MapMechanicsDragonShireModes_ShrineTimer);
libUIUI_gf_MapMechanicsDragonShireShowHidePanel(true);
}
libUIUI_gf_MapMechanicsDragonShireSetRemainingShrineWarningTime(FixedToInt(TimerGetRemaining(libMapM_gv_mMGardensDragonDragonTowerWarningTimer)));
lv_lastState = lv_state;
}
else if ((libMapM_gv_mMGardensDragonCurrentState == libMapM_ge_MMGardensDragonState_ObelisksAvailable)) {
lv_state = libMapM_ge_MMGardensDragonState_ObelisksAvailable;
if ((lv_state != lv_lastState)) {
libUIUI_gf_MapMechanicsDragonShireSetMode(libUIUI_ge_MapMechanicsDragonShireModes_Shrines);
}
libUIUI_gf_MapMechanicsDragonShireSetMoonShrineOwner(0);
libUIUI_gf_MapMechanicsDragonShireSetStarShrineOwner(0);
auto3C7A2C06_val = UnitGetOwner(libMapM_gv_mMGardensDragonTowerMoon);
if (auto3C7A2C06_val == libCore_gv_cOMPUTER_TeamOrder) {
libUIUI_gf_MapMechanicsDragonShireSetMoonShrineOwner(libGame_gv_teamOrderIndex_C);
}
else if (auto3C7A2C06_val == libCore_gv_cOMPUTER_TeamChaos) {
libUIUI_gf_MapMechanicsDragonShireSetMoonShrineOwner(libGame_gv_teamChaosIndex_C);
}
else {
}
auto01D05E00_val = UnitGetOwner(libMapM_gv_mMGardensDragonTowerStar);
if (auto01D05E00_val == libCore_gv_cOMPUTER_TeamOrder) {
libUIUI_gf_MapMechanicsDragonShireSetStarShrineOwner(libGame_gv_teamOrderIndex_C);
}
else if (auto01D05E00_val == libCore_gv_cOMPUTER_TeamChaos) {
libUIUI_gf_MapMechanicsDragonShireSetStarShrineOwner(libGame_gv_teamChaosIndex_C);
}
else {
}
lv_lastState = lv_state;
}
else if ((libMapM_gv_mMGardensDragonCurrentState == libMapM_ge_MMGardensDragonState_Idle)) {
lv_state = libMapM_ge_MMGardensDragonState_Idle;
if ((lv_state != lv_lastState)) {
libUIUI_gf_MapMechanicsDragonShireShowHidePanel(false);
}
lv_lastState = lv_state;
}
Wait(0.25, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonObjectiveUIHandler_Init () {
libMapM_gt_MMGardensDragonObjectiveUIHandler = TriggerCreate("libMapM_gt_MMGardensDragonObjectiveUIHandler_Func");
TriggerAddEventChatMessage(libMapM_gt_MMGardensDragonObjectiveUIHandler, c_playerAny, "-eu", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon DisableEvent
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonDisableEvent_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(libMapM_gv_mMGardensDragonDragonTowerStartTimer) > 0.0) || (TimerGetRemaining(libMapM_gv_mMGardensDragonDragonTowerRespawnTimer) > 0.0))) {
TimerPause(libMapM_gv_mMGardensDragonDragonTowerStartTimer, true);
TimerPause(libMapM_gv_mMGardensDragonDragonTowerRespawnTimer, true);
TriggerEnable(TriggerGetCurrent(), false);
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MapM_B8BF3BE0"), true);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonDisableEvent_Init () {
libMapM_gt_MMGardensDragonDisableEvent = TriggerCreate("libMapM_gt_MMGardensDragonDisableEvent_Func");
TriggerEnable(libMapM_gt_MMGardensDragonDisableEvent, false);
TriggerAddEventChatMessage(libMapM_gt_MMGardensDragonDisableEvent, c_playerAny, "DisableEvent", false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Debug Cheat (Start Obelisks -so)
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonDebugCheatStartObelisksso_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerExecute(libMapM_gt_MMGardensDragonObjectiveUIHandler, true, false);
libMapM_gv_mMGardensDragonCurrentState = libMapM_ge_MMGardensDragonState_ObelisksWarning;
TimerStart(libMapM_gv_mMGardensDragonDragonTowerWarningTimer, libMapM_gv_mMGardensDragonWarningTime_C, false, c_timeGame);
TimerPause(libMapM_gv_mMGardensDragonDragonTowerStartTimer, true);
TimerPause(libMapM_gv_mMGardensDragonDragonTowerGoalActivationTimer, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonDebugCheatStartObelisksso_Init () {
libMapM_gt_MMGardensDragonDebugCheatStartObelisksso = TriggerCreate("libMapM_gt_MMGardensDragonDebugCheatStartObelisksso_Func");
TriggerEnable(libMapM_gt_MMGardensDragonDebugCheatStartObelisksso, false);
TriggerAddEventChatMessage(libMapM_gt_MMGardensDragonDebugCheatStartObelisksso, c_playerAny, "-so", true);
TriggerAddEventChatMessage(libMapM_gt_MMGardensDragonDebugCheatStartObelisksso, c_playerAny, "EVENTSTART", true);
TriggerAddEventChatMessage(libMapM_gt_MMGardensDragonDebugCheatStartObelisksso, c_playerAny, "eventstart", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Create Dragon
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonCreateDragon_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires, true);
UnitCreate(1, "VehicleDragon", c_unitCreateIgnorePlacement, 0, UnitGetPosition(UnitGroupUnit(libGame_gv_players[EventPlayer()].lv_heroUnitGroup, 1)), 270.0, null);
libMapM_gv_mMGardensDragonStatue = UnitLastCreated();
UnitBehaviorAdd(UnitLastCreated(), "DragonKnightDontDie", UnitLastCreated(), 1);
libMapM_gf_AddVehicle(libMapM_gv_mMGardensDragonStatue);
UnitSetState(libMapM_gv_mMGardensDragonStatue, c_unitStateStatusBar, false);
TimerPause(libMapM_gv_mMGardensDragonDragonKnightLifeTimer, true);
libMapM_gf_MMGardensDragonActivateStatueForTeam(libGame_gf_ComputerPlayerInTeam(libGame_gf_TeamNumberOfPlayer(EventPlayer())));
UIDisplayMessage(PlayerGroupAll(), c_messageAreaSubtitle, StringExternal("Param/Value/lib_MapM_2F72E606"));
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonCreateDragon_Init () {
libMapM_gt_MMGardensDragonCreateDragon = TriggerCreate("libMapM_gt_MMGardensDragonCreateDragon_Func");
TriggerAddEventChatMessage(libMapM_gt_MMGardensDragonCreateDragon, c_playerAny, "-dragonknight", false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MM Gardens Dragon Extend Life
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_MMGardensDragonExtendLife_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorSetDuration(libMapM_gv_mMGardensDragonStatue, "VehicleDragonTimedLife", -1.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_MMGardensDragonExtendLife_Init () {
libMapM_gt_MMGardensDragonExtendLife = TriggerCreate("libMapM_gt_MMGardensDragonExtendLife_Func");
TriggerAddEventChatMessage(libMapM_gt_MMGardensDragonExtendLife, c_playerAny, "-extendtimedlife", false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: DEBUG - Add Vehicle
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DEBUGAddVehicle_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((libCore_gv_dEBUGDebuggingEnabled == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMapM_gf_AddVehicle(UnitGroupClosestToPoint(UnitGroupSelected(1), CameraGetTarget(1)));
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DEBUGAddVehicle_Init () {
libMapM_gt_DEBUGAddVehicle = TriggerCreate("libMapM_gt_DEBUGAddVehicle_Func");
TriggerAddEventChatMessage(libMapM_gt_DEBUGAddVehicle, c_playerAny, "-addvehicle", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: DEBUG - Remove Vehicle
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DEBUGRemoveVehicle_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((libCore_gv_dEBUGDebuggingEnabled == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMapM_gf_RemoveVehicle(UnitGroupClosestToPoint(UnitGroupSelected(1), CameraGetTarget(1)));
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DEBUGRemoveVehicle_Init () {
libMapM_gt_DEBUGRemoveVehicle = TriggerCreate("libMapM_gt_DEBUGRemoveVehicle_Func");
TriggerAddEventChatMessage(libMapM_gt_DEBUGRemoveVehicle, c_playerAny, "-removevehicle", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: DEBUG - Link Vehicle
//--------------------------------------------------------------------------------------------------
bool libMapM_gt_DEBUGLinkVehicle_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((libCore_gv_dEBUGDebuggingEnabled == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMapM_gf_LinkVehicleToVehicle(libMapM_gv_vehicle[StringToInt(StringWord(EventChatMessage(false), 2))].lv_unit_Vehicle, libMapM_gv_vehicle[StringToInt(StringWord(EventChatMessage(false), 3))].lv_unit_Vehicle);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMapM_gt_DEBUGLinkVehicle_Init () {
libMapM_gt_DEBUGLinkVehicle = TriggerCreate("libMapM_gt_DEBUGLinkVehicle_Func");
TriggerAddEventChatMessage(libMapM_gt_DEBUGLinkVehicle, c_playerAny, "-linkvehicle", false);
}
void libMapM_InitTriggers () {
libMapM_gt_IncludeMapMechanics_Init();
libMapM_gt_SummonerMinionLanerScaling_Init();
libMapM_gt_DataJungleCampDefenderDoubloons_Init();
libMapM_gt_DataJungleCampDefenderSiegeGiants_Init();
libMapM_gt_DataJungleCampDefenderKnights_Init();
libMapM_gt_DataJungleCampDefenderGraveGolem_Init();
libMapM_gt_DataJungleCampMercSiegeGiants_Init();
libMapM_gt_DataJungleCampMercOgres_Init();
libMapM_gt_DataJungleCampMercGraveGolem_Init();
libMapM_gt_DataJungleCampDefenderData_Init();
libMapM_gt_DataJungleCampMercData_Init();
libMapM_gt_InitializeJungleCamps_Init();
libMapM_gt_StartJungleCampTimers_Init();
libMapM_gt_JungleCreepCampRespawnTimerExpires_Init();
libMapM_gt_JungleRespawnTimerTextTagCountdown_Init();
libMapM_gt_JungleDefendersBeginFighting_Init();
libMapM_gt_JungleDefendersEndFighting_Init();
libMapM_gt_JungleAllDefendersKilled_Init();
libMapM_gt_JungleHibernateCampsStart_Init();
libMapM_gt_JungleHibernateCampsEnd_Init();
libMapM_gt_JungleHibernateDefendersThatLeash_Init();
libMapM_gt_JungleHibernateDefendersThatJustSpawned_Init();
libMapM_gt_JungleCampOwnershipChange_Init();
libMapM_gt_JungleMercLeaderDies_Init();
libMapM_gt_JungleMercOgreShieldUsedOgre_Init();
libMapM_gt_JungleMercOgreShieldUsedHero_Init();
libMapM_gt_DEBUGJungleMercDamageDetection_Init();
libMapM_gt_JungleSiegeGiantTaunt_Init();
libMapM_gt_InitializeMapMechanics_Init();
libMapM_gt_MMHelpbuttonClicked_Init();
libMapM_gt_MMIntroCutsceneStart_Init();
libMapM_gt_MMIntroCutsceneEnd_Init();
libMapM_gt_MMIntroSkippable_Init();
libMapM_gt_MMRepulseRegionPunchBehavior_Init();
libMapM_gt_MMSafeRegionBehavior_Init();
libMapM_gt_MMRemoveStackingCoreShieldMechanic_Init();
libMapM_gt_EnableDisableMapEvent_Init();
libMapM_gt_MMRavenCurseInit_Init();
libMapM_gt_MMRavenCurseGateOpen_Init();
libMapM_gt_MMRavenStartSpawning_Init();
libMapM_gt_MMRavenSpawnTribute_Init();
libMapM_gt_MMRavenObjectivePreviewTimerExpires_Init();
libMapM_gt_MMRavenTributeCollectStarted_Init();
libMapM_gt_MMRavenTributeCollectCanceled_Init();
libMapM_gt_MMRavenTributeCollectInterrupted_Init();
libMapM_gt_MMRavenTributeObtained_Init();
libMapM_gt_MMRavenCurseReapplication_Init();
libMapM_gt_MMRavenCurseStartLightTransition_Init();
libMapM_gt_MMRavenCurseFinished_Init();
libMapM_gt_MMRavenObjectiveUIHandler_Init();
libMapM_gt_MMRavenDisableEvent_Init();
libMapM_gt_MMRavenEnableEvent_Init();
libMapM_gt_MMRavenDebugStartWarning_Init();
libMapM_gt_MMRavenDebugStartElunees_Init();
libMapM_gt_MMRavenDebugStartNexten_Init();
libMapM_gt_MMRavenDebugStartCurseec_Init();
libMapM_gt_CalculateCurseSiegeDamageDone_Init();
libMapM_gt_MMGardensDragonInit_Init();
libMapM_gt_MMGardensDragonGateOpen_Init();
libMapM_gt_MMGardensDragonWarningTimerStart_Init();
libMapM_gt_MMGardensDragonTowerGoalActivationTimerExpires_Init();
libMapM_gt_MMGardensDragonWarningTimerExpires_Init();
libMapM_gt_MMGardensDragonDragonEventStarts_Init();
libMapM_gt_MMGardensDragonDragonEventEnds_Init();
libMapM_gt_MMGardensDragonTurnOnDragonTowersFirstTime_Init();
libMapM_gt_MMGardensDragonTurnOnDragonTowersAgain_Init();
libMapM_gt_MMGardensDragonDragonTowerChangeOwnershipEventFires_Init();
libMapM_gt_MMGardensDragonDragonTowerCheckObeliskStatus_Init();
libMapM_gt_MMGardensDragonTransformChannelStart_Init();
libMapM_gt_MMGardensDragonTransformChannelFinish_Init();
libMapM_gt_MMGardensDragonTakeDragonReminderTimerExpires_Init();
libMapM_gt_MMGardensDragonDragonKnightDiesorExpires_Init();
libMapM_gt_MMGardensDragonObjectiveUIHandler_Init();
libMapM_gt_MMGardensDragonDisableEvent_Init();
libMapM_gt_MMGardensDragonDebugCheatStartObelisksso_Init();
libMapM_gt_MMGardensDragonCreateDragon_Init();
libMapM_gt_MMGardensDragonExtendLife_Init();
libMapM_gt_DEBUGAddVehicle_Init();
libMapM_gt_DEBUGRemoveVehicle_Init();
libMapM_gt_DEBUGLinkVehicle_Init();
}
//--------------------------------------------------------------------------------------------------
// Library Initialization
//--------------------------------------------------------------------------------------------------
bool libMapM_InitLib_completed = false;
void libMapM_InitLib () {
if (libMapM_InitLib_completed) {
return;
}
libMapM_InitLib_completed = true;
libMapM_InitLibraries();
libMapM_InitVariables();
libMapM_InitTriggers();
}
include "TriggerLibs/HeroesLib"
include "TriggerLibs/GameLib"
include "TriggerLibs/AILib"
include "TriggerLibs/UILib"
include "TriggerLibs/StartingExperienceLib"
include "TriggerLibs/SoundLib"
include "TriggerLibs/SupportLib"