include "TriggerLibs/NativeLib"
include "TriggerLibs/HeroesLib"
include "TriggerLibs/GameLib"
include "TriggerLibs/MapMechanicsLib"
include "TriggerLibs/UILib"
include "Lib7EB401DE_h"
//--------------------------------------------------------------------------------------------------
// Library: Warcraft
//--------------------------------------------------------------------------------------------------
// External Library Initialization
void lib7EB401DE_InitLibraries () {
libNtve_InitVariables();
libCore_InitVariables();
libGame_InitVariables();
libMapM_InitVariables();
libUIUI_InitVariables();
}
// Variable Initialization
bool lib7EB401DE_InitVariables_completed = false;
void lib7EB401DE_InitVariables () {
if (lib7EB401DE_InitVariables_completed) {
return;
}
lib7EB401DE_InitVariables_completed = true;
}
// Presets
// Functions
void lib7EB401DE_gf_WarcraftSetPlayerFaction (int lp_player, int lp_faction) {
// Automatic Variable Declarations
// Implementation
if ((lp_faction == lib7EB401DE_ge_WarcraftFaction_Horde)) {
TechTreeUpgradeAddLevel(lp_player, "IsHorde", 1);
}
else {
TechTreeUpgradeAddLevel(lp_player, "IsAlliance", 1);
}
}
void lib7EB401DE_gf_InitializeSpiritHealerForTeam (unit lp_spiritHealer, int lp_team) {
// Automatic Variable Declarations
// Implementation
lib7EB401DE_gv_spiritHealer[lp_team] = lp_spiritHealer;
}
void lib7EB401DE_gf_InitializeHellbatMercType (int lp_campType, fixed lp_initialSpawnDelay, fixed lp_respawnTime) {
// Variable Declarations
int lv_campTypeInt;
// Automatic Variable Declarations
// Variable Initialization
lv_campTypeInt = (lp_campType);
// Implementation
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campIsSoloable = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defendersCoweronDeath = true;
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 = 3;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campTypeMinimapLabel = StringExternal("Param/Value/lib_7EB401DE_595DF576");
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[1] = "TerranHellbatDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defenderCoweringUnit[1] = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[2] = "TerranHellbatDefender";
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_defenderCoweringUnit[2] = true;
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_creepUnitTypes[3] = "TerranHellbatDefender";
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] = "TerranHellbat";
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[2] = "TerranHellbat";
libMapM_gv_dataJungleCampMercData[lv_campTypeInt].lv_spawnedMinionUnitTypes[3] = "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_7EB401DE_BCB4AAF1"), StringExternal("Param/Value/lib_7EB401DE_98866DCA"), StringExternal("Param/Value/lib_7EB401DE_EA08FC76"), 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, StringExternal("Param/Value/lib_7EB401DE_7C0258DF"), StringExternal("Param/Value/lib_7EB401DE_3E5367F1"), StringExternal("Param/Value/lib_7EB401DE_A4D4C28E"), 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 lib7EB401DE_gf_InitializeMountainGiant (int lp_campType) {
// Variable Declarations
int lv_campTypeInt;
// Automatic Variable Declarations
// Variable Initialization
lv_campTypeInt = (lp_campType);
// Implementation
libMapM_gv_dataJungleCampDefenderData[lv_campTypeInt].lv_campTypeMinimapLabel = StringExternal("Param/Value/lib_7EB401DE_1631AB5F");
libUIUI_gf_PingCreateNewPingTarget("JungleGraveGolemLaner", false, StringExternal("Param/Value/lib_7EB401DE_619E2F27"), StringExternal("Param/Value/lib_7EB401DE_E4620B17"), StringExternal("Param/Value/lib_7EB401DE_FFBF2E84"), 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);
}
// Triggers
//--------------------------------------------------------------------------------------------------
// Trigger: Debug - Swap Factions
//--------------------------------------------------------------------------------------------------
bool lib7EB401DE_gt_DebugSwapFactions_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((libCore_gv_dEBUGDebuggingEnabled == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerDebugOutput(1, StringExternal("Param/Value/lib_7EB401DE_590D7A36"), true);
if ((TechTreeUpgradeCount(libCore_gv_cOMPUTER_TeamOrder, "IsAlliance", c_techCountCompleteOnly) > 0)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_7EB401DE_839A967E"), true);
libNtve_gf_SetUpgradeLevelForPlayer(libCore_gv_cOMPUTER_TeamChaos, "IsHorde", 0);
TechTreeUpgradeAddLevel(libCore_gv_cOMPUTER_TeamChaos, "IsAlliance", 1);
libNtve_gf_SetUpgradeLevelForPlayer(libCore_gv_cOMPUTER_TeamOrder, "IsAlliance", 0);
TechTreeUpgradeAddLevel(libCore_gv_cOMPUTER_TeamOrder, "IsHorde", 1);
}
else {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_7EB401DE_A2550E68"), true);
libNtve_gf_SetUpgradeLevelForPlayer(libCore_gv_cOMPUTER_TeamOrder, "IsHorde", 0);
TechTreeUpgradeAddLevel(libCore_gv_cOMPUTER_TeamOrder, "IsAlliance", 1);
libNtve_gf_SetUpgradeLevelForPlayer(libCore_gv_cOMPUTER_TeamChaos, "IsAlliance", 0);
TechTreeUpgradeAddLevel(libCore_gv_cOMPUTER_TeamChaos, "IsHorde", 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void lib7EB401DE_gt_DebugSwapFactions_Init () {
lib7EB401DE_gt_DebugSwapFactions = TriggerCreate("lib7EB401DE_gt_DebugSwapFactions_Func");
TriggerAddEventChatMessage(lib7EB401DE_gt_DebugSwapFactions, c_playerAny, "-swapfaction", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero Killed - Show Team's Spirit Healer For Player
//--------------------------------------------------------------------------------------------------
bool lib7EB401DE_gt_HeroKilledShowTeamsSpiritHealerForPlayer_Func (bool testConds, bool runActions) {
// Variable Declarations
string lv_heroKilledUnit_c;
int lv_heroKilledPlayer_c;
// Automatic Variable Declarations
// Variable Initialization
lv_heroKilledUnit_c = UnitGetType(libGame_gf_HeroKilledUnit());
lv_heroKilledPlayer_c = libGame_gf_HeroKilledPlayer();
// Conditions
if (testConds) {
if (!((lv_heroKilledUnit_c != "HeroBaleog"))) {
return false;
}
if (!((lv_heroKilledUnit_c != "HeroOlaf"))) {
return false;
}
if (!((lv_heroKilledUnit_c != "HeroErik"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libNtve_gf_SendActorMessageToUnit(lib7EB401DE_gv_spiritHealer[libGame_gf_TeamNumberOfPlayer(lv_heroKilledPlayer_c)], "SetFilterPlayers " + IntToString(lv_heroKilledPlayer_c) + " Clear");
return true;
}
//--------------------------------------------------------------------------------------------------
void lib7EB401DE_gt_HeroKilledShowTeamsSpiritHealerForPlayer_Init () {
lib7EB401DE_gt_HeroKilledShowTeamsSpiritHealerForPlayer = TriggerCreate("lib7EB401DE_gt_HeroKilledShowTeamsSpiritHealerForPlayer_Func");
libGame_gf_HeroKilled(lib7EB401DE_gt_HeroKilledShowTeamsSpiritHealerForPlayer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero Respawn - Hide Team's Spirit Healer For Player
//--------------------------------------------------------------------------------------------------
bool lib7EB401DE_gt_HeroRespawnHideTeamsSpiritHealerForPlayer_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_heroRespawnPlayer_c;
// Automatic Variable Declarations
// Variable Initialization
lv_heroRespawnPlayer_c = libGame_gf_HeroRespawnPlayer();
// Actions
if (!runActions) {
return true;
}
libNtve_gf_SendActorMessageToUnit(lib7EB401DE_gv_spiritHealer[libGame_gf_TeamNumberOfPlayer(lv_heroRespawnPlayer_c)], "SetFilterPlayers " + IntToString(lv_heroRespawnPlayer_c));
return true;
}
//--------------------------------------------------------------------------------------------------
void lib7EB401DE_gt_HeroRespawnHideTeamsSpiritHealerForPlayer_Init () {
lib7EB401DE_gt_HeroRespawnHideTeamsSpiritHealerForPlayer = TriggerCreate("lib7EB401DE_gt_HeroRespawnHideTeamsSpiritHealerForPlayer_Func");
libGame_gf_HeroRespawn(lib7EB401DE_gt_HeroRespawnHideTeamsSpiritHealerForPlayer);
}
void lib7EB401DE_InitTriggers () {
lib7EB401DE_gt_DebugSwapFactions_Init();
lib7EB401DE_gt_HeroKilledShowTeamsSpiritHealerForPlayer_Init();
lib7EB401DE_gt_HeroRespawnHideTeamsSpiritHealerForPlayer_Init();
}
//--------------------------------------------------------------------------------------------------
// Library Initialization
//--------------------------------------------------------------------------------------------------
bool lib7EB401DE_InitLib_completed = false;
void lib7EB401DE_InitLib () {
if (lib7EB401DE_InitLib_completed) {
return;
}
lib7EB401DE_InitLib_completed = true;
lib7EB401DE_InitLibraries();
lib7EB401DE_InitVariables();
lib7EB401DE_InitTriggers();
}