include "TriggerLibs/NativeLib"
include "TriggerLibs/HeroesLib_h"
include "TriggerLibs/GameLib_h"
include "TriggerLibs/MapMechanicsLib_h"
include "TriggerLibs/AILib_h"
include "TriggerLibs/UILib_h"
include "TriggerLibs/StartingExperienceLib_h"
include "TriggerLibs/SoundLib_h"
include "TriggerLibs/SupportLib_h"
include "TriggerLibs/GameDataHelperLib_h"
//--------------------------------------------------------------------------------------------------
// Library: Game Data Helper
//--------------------------------------------------------------------------------------------------
// External Library Initialization
void libGDHL_InitLibraries () {
libNtve_InitVariables();
libCore_InitVariables();
libGame_InitVariables();
libMapM_InitVariables();
libAIAI_InitVariables();
libUIUI_InitVariables();
libStEx_InitVariables();
libSond_InitVariables();
libSprt_InitVariables();
}
// Variable Initialization
bool libGDHL_InitVariables_completed = false;
void libGDHL_InitVariables () {
int init_i;
int init_i1;
if (libGDHL_InitVariables_completed) {
return;
}
libGDHL_InitVariables_completed = true;
libGDHL_gv_updateOnAnyVisibilityChangeUnitGroup = UnitGroupEmpty();
libGDHL_gv_gPU2020EventEnabled = true;
libGDHL_gv_gPU2020TimerDurationMod = 6.0;
libGDHL_gv_gPU2020Phase1Threshold = 0.01;
libGDHL_gv_gPU2020Phase2Threshold = 0.05;
libGDHL_gv_gPU2020Phase3Threshold = 0.1;
libGDHL_gv_gPU2020Phase4Threshold = 0.2;
libGDHL_gv_gPU2020Phase5Threshold = 0.05;
libGDHL_gv_gPU2020GateTimer = TimerCreate();
libGDHL_gv_gPU2020EventPhase = 1;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_abathurDeepTunnelPingTextLockoutTimer[init_i] = TimerCreate();
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_abathurDeepTunnelPings[init_i] = c_invalidPingId;
}
libGDHL_gv_heroAbathurSpikeBurstSplatScalar = 1.0;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_abathurMonstrosityDeepTunnelPingTextLockoutTimer[init_i] = TimerCreate();
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_abathurMonstrosityDeepTunnelPings[init_i] = c_invalidPingId;
}
libGDHL_gv_heroAbathurMonstrosityTimedLifeIncrease = 3.0;
libGDHL_gv_heroAbathurMonstrosityHealthIncreasePerLevel = 3.6;
libGDHL_gv_heroAbathurEvolutionCompleteStacksCarryover = 0.25;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_heroAzmodanDemonicInvasionUnitGroup[init_i] = UnitGroupEmpty();
}
libGDHL_gv_heroBarbarianAncientSpearReDirectDistance = 8;
libGDHL_gv_heroButcherFreshMeatMaxMeatCount = CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "ButcherFreshMeatTokenCounter", "ConditionalEvents[" + IntToString(0) + "].CompareValue", c_playerAny);
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_heroChenStormEarthFireUnits[init_i].lv_stormEarthFireUnits = UnitGroupEmpty();
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_heroChenStaggerDamageModification[init_i] = 0.75;
}
libGDHL_gv_cruasder_ShieldGlarePathOfTheCrusade_DurationIncrease = 4.0;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_heroDemonHunterManticoreIncrementer[init_i] = 1;
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_faerieDragonPhaseShiftPingTextLockoutTimer[init_i] = TimerCreate();
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_faerieDragonPhaseShiftPings[init_i] = c_invalidPingId;
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_falstadFlightPingTextLockoutTimer[init_i] = TimerCreate();
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_falstadFlightPings[init_i] = c_invalidPingId;
}
libGDHL_gv_heroJainaFrostbiteConstant = CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "JainaFrostbiteTokenCounter", "Max", 0);
libGDHL_gv_bALHeroJainaIceBarrierDamageModifier = 0.25;
libGDHL_gv_heroJainaIcyVeinsManaCostModifier = 0.5;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_verdantSpheresUnitGroup[init_i] = UnitGroupEmpty();
}
libGDHL_gv_leoricUI.lv_mainPanel = c_invalidDialogControlId;
libGDHL_gv_leoricUI.lv_traitLabel = c_invalidDialogControlId;
libGDHL_gv_leoricUI.lv_cheatDeathFrame = c_invalidDialogControlId;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_lostVikingsPlayer[init_i].lv_checkpointReachedCarinRespawnTimer = TimerCreate();
libGDHL_gv_lostVikingsPlayer[init_i].lv_checkpointReachedCarinRespawnTextTag = c_textTagNone;
libGDHL_gv_lostVikingsPlayer[init_i].lv_erikDeathTimer = TimerCreate();
libGDHL_gv_lostVikingsPlayer[init_i].lv_baleogDeathTimer = TimerCreate();
libGDHL_gv_lostVikingsPlayer[init_i].lv_olafDeathTimer = TimerCreate();
libGDHL_gv_lostVikingsPlayer[init_i].lv_longboatCrew = UnitGroupEmpty();
libGDHL_gv_lostVikingsPlayer[init_i].lv_erikSelectionIndicator = c_invalidDialogControlId;
libGDHL_gv_lostVikingsPlayer[init_i].lv_baleogSelectionIndicator = c_invalidDialogControlId;
libGDHL_gv_lostVikingsPlayer[init_i].lv_olafSelectionIndicator = c_invalidDialogControlId;
libGDHL_gv_lostVikingsPlayer[init_i].lv_erikIdentityImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsPlayer[init_i].lv_baleogIdentityImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsPlayer[init_i].lv_olafIdentityImage = c_invalidDialogControlId;
}
libGDHL_gv_lostVikingsUI.lv_heroStatsFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_erikUnitStatusFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_erikNameLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_erikHPLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_erikDownedLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_baleogUnitStatusFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_baleogNameLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_baleogHPLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_baleogDownedLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_olafUnitStatusFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_olafNameLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_olafHPLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_olafDownedLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsIconFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_erikSelectedIconImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_erikUnselectedIconImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_erikDeadImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostErikDeadImageOverlay = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_baleogSelectedIconImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_baleogUnselectedIconImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_baleogDeadImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostBaleogDeadImageOverlay = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_olafSelectedIconImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_olafUnselectedIconImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_olafDeadImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostOlafDeadImageOverlay = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsChannelFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafCastChannelBarFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogCastChannelBarFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsErikCastChannelBarFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafBehaviorChannelBarFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogBehaviorChannelBarFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogBehaviorChannelBarDurationBar = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogBehaviorChannelBarBehaviorLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsErikBehaviorChannelBarFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsErikBehaviorChannelBarDurationBar = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsErikBehaviorChannelBarBehaviorLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafBehaviorChannelBarDurationBar = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafBehaviorChannelBarBehaviorLabel = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_olafDeathStatusFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_baleogDeathStatusFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_erikDeathStatusFrame = c_invalidDialogControlId;
libGDHL_gv_lostVikingsUI.lv_allDeathStatusFrame = c_invalidDialogControlId;
libGDHL_gv_bALHeroMalfurionDruidsGiftManaCostReduction = 0.1;
libGDHL_gv_healingBeamUI.lv_healingBeamTargetDisplayName = c_invalidDialogControlId;
libGDHL_gv_healingBeamUI.lv_healingBeamTargetPortrait = c_invalidDialogControlId;
libGDHL_gv_medicUI.lv_mainPanel = c_invalidDialogControlId;
libGDHL_gv_medicUI.lv_medivacAlert = c_invalidDialogControlId;
libGDHL_gv_medicUI.lv_medivacCountdownNumber = c_invalidDialogControlId;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_medivacTransmissionPortraitOverride[init_i] = c_invalidTransmissionId;
}
libGDHL_gv_heroMuradinHaymakerLaunchDistance = -12.6;
libGDHL_gv_heroMuradinHaymakerCutoffDistance = -1.0;
libGDHL_gv_murkyUI.lv_mainPanel = c_invalidDialogControlId;
libGDHL_gv_murkyUI.lv_eggOk = c_invalidDialogControlId;
libGDHL_gv_murkyUI.lv_eggBroken = c_invalidDialogControlId;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_murkyRevealPing[init_i] = c_invalidPingId;
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_murkyEggDeathTimer[init_i] = TimerCreate();
}
libGDHL_gv_mURKY_BAL_EGG_DEATH_TALENT = 30.0;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_heroMurkyEggHuntUnitGroup[init_i] = UnitGroupEmpty();
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_heroNecromancerSkeletonMasteryUnitGroup[init_i] = UnitGroupEmpty();
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_novaTripleTapMissileGroup[init_i] = UnitGroupEmpty();
}
libGDHL_gv_rexxarUI.lv_mainPanel = c_invalidDialogControlId;
libGDHL_gv_rexxarUI.lv_rexxarMishaUnitStatus = c_invalidDialogControlId;
libGDHL_gv_rexxarUI.lv_rexxarMishaHealth = c_invalidDialogControlId;
libGDHL_gv_rexxarUI.lv_rexxarMishaIcon = c_invalidDialogControlId;
libGDHL_gv_rexxarUI.lv_rexxarMishaDarkImage = c_invalidDialogControlId;
libGDHL_gv_rexxarUI.lv_rexxarMishaSkullImage = c_invalidDialogControlId;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_mishaDeathTimer[init_i] = TimerCreate();
}
libGDHL_gv_heroSgtHammerUseEffectForBFGTargetCalculation = true;
libGDHL_gv_thrallUI.lv_mainPanel = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= libGDHL_gv_thrallTraitMaxStacks; init_i1 += 1) {
libGDHL_gv_thrallUI.lv_counterImage[init_i1] = c_invalidDialogControlId;
}
libGDHL_gv_tychus_RunAndGunRollingReload_DurationInc = 2.0;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_sanctifcationTimer[init_i] = TimerCreate();
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_heroWitchDoctorGargantuanAggroGroup[init_i] = UnitGroupEmpty();
}
libGDHL_gv_witchDoctor_Gargantuan_AggroRange_C = 7.75;
libGDHL_gv_witchDoctor_Gargantuan_LeashRange_C = 6.5;
libGDHL_gv_witchDoctor_Gargantuan_PersonalSpace_C = 4.0;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_heroZagaraMaxNydusWorms[init_i] = 4;
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libGDHL_gv_heroZagaraNydusWormUnitGroup[init_i] = UnitGroupEmpty();
}
}
// Presets
// Functions
void libGDHL_gf_GPU2020RunEvent (bool lp_rando) {
// Variable Declarations
fixed lv_rando;
int lv_phase;
int lv_i;
// Automatic Variable Declarations
int auto89ACCFF9_val;
playergroup auto73D2C7ED_g;
int auto73D2C7ED_var;
playergroup autoCA437CD7_g;
int autoCA437CD7_var;
playergroup autoFD07FAB9_g;
int autoFD07FAB9_var;
playergroup auto45D94C23_g;
int auto45D94C23_var;
playergroup auto3148C778_g;
int auto3148C778_var;
playergroup auto41C7F3B3_g;
int auto41C7F3B3_var;
// Variable Initialization
lv_phase = libGDHL_gv_gPU2020EventPhase;
// Implementation
libNtve_gf_StopTimer(libGDHL_gv_gPU2020GateTimer);
if ((lp_rando == true) && (libGDHL_gv_gPU2020Force01Rando == false)) {
lv_rando = RandomFixed(0.01, 1.0);
}
else {
lv_rando = 0.01;
}
auto89ACCFF9_val = lv_phase;
if (auto89ACCFF9_val == 1) {
if ((lv_rando <= libGDHL_gv_gPU2020Phase1Threshold)) {
auto73D2C7ED_g = PlayerGroupActive();
auto73D2C7ED_var = -1;
while (true) {
auto73D2C7ED_var = PlayerGroupNextPlayer(auto73D2C7ED_g, auto73D2C7ED_var);
if (auto73D2C7ED_var<0) { break; }
UnitCreateEffectUnit(libGame_gv_players[auto73D2C7ED_var].lv_heroUnit, "GPU2020EventPhase1Set", libGame_gv_players[auto73D2C7ED_var].lv_heroUnit);
}
}
}
else if (auto89ACCFF9_val == 2) {
if ((lv_rando <= libGDHL_gv_gPU2020Phase2Threshold)) {
autoCA437CD7_g = PlayerGroupActive();
autoCA437CD7_var = -1;
while (true) {
autoCA437CD7_var = PlayerGroupNextPlayer(autoCA437CD7_g, autoCA437CD7_var);
if (autoCA437CD7_var<0) { break; }
UnitCreateEffectUnit(libGame_gv_players[autoCA437CD7_var].lv_heroUnit, "GPU2020EventPhase2Set", libGame_gv_players[autoCA437CD7_var].lv_heroUnit);
}
}
}
else if (auto89ACCFF9_val == 3) {
if ((lv_rando <= libGDHL_gv_gPU2020Phase3Threshold)) {
autoFD07FAB9_g = PlayerGroupActive();
autoFD07FAB9_var = -1;
while (true) {
autoFD07FAB9_var = PlayerGroupNextPlayer(autoFD07FAB9_g, autoFD07FAB9_var);
if (autoFD07FAB9_var<0) { break; }
UnitCreateEffectUnit(libGame_gv_players[autoFD07FAB9_var].lv_heroUnit, "GPU2020EventPhase3Set", libGame_gv_players[autoFD07FAB9_var].lv_heroUnit);
PlayerSetLighting(autoFD07FAB9_var, "GPU2020EventLight1", 3.5);
}
}
}
else if (auto89ACCFF9_val == 4) {
if ((lv_rando <= libGDHL_gv_gPU2020Phase4Threshold)) {
auto45D94C23_g = PlayerGroupActive();
auto45D94C23_var = -1;
while (true) {
auto45D94C23_var = PlayerGroupNextPlayer(auto45D94C23_g, auto45D94C23_var);
if (auto45D94C23_var<0) { break; }
UnitCreateEffectUnit(libGame_gv_players[auto45D94C23_var].lv_heroUnit, "GPU2020EventPhase4Set", libGame_gv_players[auto45D94C23_var].lv_heroUnit);
PlayerSetLighting(auto45D94C23_var, "GPU2020EventLight2", 3.5);
}
}
}
else if (auto89ACCFF9_val == 5) {
if ((lv_rando <= libGDHL_gv_gPU2020Phase5Threshold)) {
auto3148C778_g = PlayerGroupActive();
auto3148C778_var = -1;
while (true) {
auto3148C778_var = PlayerGroupNextPlayer(auto3148C778_g, auto3148C778_var);
if (auto3148C778_var<0) { break; }
UnitCreateEffectUnit(libGame_gv_players[auto3148C778_var].lv_heroUnit, "GPU2020EventPhase5Set", libGame_gv_players[auto3148C778_var].lv_heroUnit);
PlayerSetLighting(auto3148C778_var, "GPU2020EventLight2", 2.5);
}
}
}
else {
}
Wait(5.0, c_timeGame);
auto41C7F3B3_g = PlayerGroupActive();
auto41C7F3B3_var = -1;
while (true) {
auto41C7F3B3_var = PlayerGroupNextPlayer(auto41C7F3B3_g, auto41C7F3B3_var);
if (auto41C7F3B3_var<0) { break; }
PlayerSetLighting(auto41C7F3B3_var, libCore_gv_mAPMapLight, 7.0);
}
}
void libGDHL_gf_SiegeUpdateAbilityPowerOnSummonedUnits (unit lp_unit) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_player = UnitGetOwner(lp_unit);
UnitBehaviorAdd(lp_unit, "BucketOverdriveSummonedUnit", libGame_gv_players[lv_player].lv_heroUnit, UnitBehaviorCount(libGame_gv_players[lv_player].lv_heroUnit, "BucketOverdrive"));
UnitBehaviorAdd(lp_unit, "TalentGatheringPowerCarry", libGame_gv_players[lv_player].lv_heroUnit, UnitBehaviorCount(libGame_gv_players[lv_player].lv_heroUnit, "TalentGatheringPowerCarry"));
UnitBehaviorAdd(lp_unit, "TalentGatheringPowerStackSummoned", libGame_gv_players[lv_player].lv_heroUnit, UnitBehaviorCount(libGame_gv_players[lv_player].lv_heroUnit, "TalentGatheringPowerStack"));
}
void libGDHL_gf_RestoreHeight (unit lp_unit) {
// Variable Declarations
int lv_height;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_height = CatalogFieldValueGetAsInt(c_gameCatalogUnit, UnitGetType(lp_unit), "Height", c_playerAny);
UnitSetPropertyFixed(lp_unit, c_unitPropHeight, lv_height);
}
point libGDHL_gf_TargetCalculation (point lp_targetPoint, point lp_casterPoint, region lp_bFGRegion) {
// Variable Declarations
point lv_casterPoint;
fixed lv_cosineofTargetAngle;
point lv_targetPoint;
fixed lv_targetXToEdgeOfMap;
fixed lv_targetYToEdgeOfMap;
fixed lv_targetAngle;
fixed lv_triangle1C;
fixed lv_triangle2C;
point lv_abilityTargetPoint;
// Automatic Variable Declarations
// Variable Initialization
lv_casterPoint = lp_casterPoint;
lv_targetPoint = lp_targetPoint;
// Implementation
if ((PointGetX(lv_casterPoint) <= PointGetX(lv_targetPoint)) && (PointGetY(lv_casterPoint) <= PointGetY(lv_targetPoint))) {
lv_targetXToEdgeOfMap = (PointGetX(RegionGetBoundsMax(RegionPlayableMap())) - PointGetX(lv_targetPoint));
lv_targetYToEdgeOfMap = (PointGetY(RegionGetBoundsMax(RegionPlayableMap())) - PointGetY(lv_targetPoint));
lv_targetAngle = AngleBetweenPoints(lv_casterPoint, lv_targetPoint);
lv_cosineofTargetAngle = Cos(lv_targetAngle);
if ((lv_cosineofTargetAngle > -0.001) && (lv_cosineofTargetAngle < 0.001)) {
lv_abilityTargetPoint = Point(PointGetX(lv_targetPoint), PointGetY(RegionGetBoundsMax(RegionPlayableMap())));
}
else {
lv_triangle1C = (lv_targetXToEdgeOfMap / Cos(lv_targetAngle));
lv_targetAngle = (90.0 - lv_targetAngle);
lv_cosineofTargetAngle = Cos(lv_targetAngle);
if ((lv_cosineofTargetAngle > -0.001) && (lv_cosineofTargetAngle < 0.001)) {
lv_abilityTargetPoint = Point(PointGetX(RegionGetBoundsMax(RegionPlayableMap())), PointGetY(lv_targetPoint));
}
else {
lv_triangle2C = (lv_targetYToEdgeOfMap / Cos(lv_targetAngle));
if ((lv_triangle1C < lv_triangle2C)) {
lv_abilityTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_targetPoint, (lv_triangle1C * -1.0), lv_casterPoint);
}
else {
lv_abilityTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_targetPoint, (lv_triangle2C * -1.0), lv_casterPoint);
}
}
}
}
else if ((PointGetX(lv_casterPoint) >= PointGetX(lv_targetPoint)) && (PointGetY(lv_casterPoint) <= PointGetY(lv_targetPoint))) {
lv_targetXToEdgeOfMap = PointGetX(lv_targetPoint);
lv_targetYToEdgeOfMap = (PointGetY(RegionGetBoundsMax(RegionPlayableMap())) - PointGetY(lv_targetPoint));
lv_targetAngle = (AngleBetweenPoints(lv_casterPoint, lv_targetPoint) - 90.0);
lv_cosineofTargetAngle = Cos(lv_targetAngle);
if ((lv_cosineofTargetAngle > -0.001) && (lv_cosineofTargetAngle < 0.001)) {
lv_abilityTargetPoint = Point(PointGetX(RegionGetBoundsMin(RegionPlayableMap())), PointGetY(lv_targetPoint));
}
else {
lv_triangle1C = (lv_targetYToEdgeOfMap / Cos(lv_targetAngle));
lv_targetAngle = (90.0 - lv_targetAngle);
lv_cosineofTargetAngle = Cos(lv_targetAngle);
if ((lv_cosineofTargetAngle > -0.001) && (lv_cosineofTargetAngle < 0.001)) {
lv_abilityTargetPoint = Point(PointGetX(lv_targetPoint), PointGetY(RegionGetBoundsMax(RegionPlayableMap())));
}
else {
lv_triangle2C = (lv_targetXToEdgeOfMap / Cos(lv_targetAngle));
if ((lv_triangle1C < lv_triangle2C)) {
lv_abilityTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_targetPoint, (lv_triangle1C * -1.0), lv_casterPoint);
}
else {
lv_abilityTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_targetPoint, (lv_triangle2C * -1.0), lv_casterPoint);
}
}
}
}
else if ((PointGetX(lv_casterPoint) >= PointGetX(lv_targetPoint)) && (PointGetY(lv_casterPoint) >= PointGetY(lv_targetPoint))) {
lv_targetXToEdgeOfMap = PointGetX(lv_targetPoint);
lv_targetYToEdgeOfMap = PointGetY(lv_targetPoint);
lv_targetAngle = (AngleBetweenPoints(lv_casterPoint, lv_targetPoint) - 180.0);
lv_cosineofTargetAngle = Cos(lv_targetAngle);
if ((lv_cosineofTargetAngle > -0.001) && (lv_cosineofTargetAngle < 0.001)) {
lv_abilityTargetPoint = Point(PointGetX(lv_targetPoint), PointGetY(RegionGetBoundsMin(RegionPlayableMap())));
}
else {
lv_triangle1C = (lv_targetXToEdgeOfMap / Cos(lv_targetAngle));
lv_targetAngle = (90.0 - lv_targetAngle);
lv_cosineofTargetAngle = Cos(lv_targetAngle);
if ((lv_cosineofTargetAngle > -0.001) && (lv_cosineofTargetAngle < 0.001)) {
lv_abilityTargetPoint = Point(PointGetX(RegionGetBoundsMin(RegionPlayableMap())), PointGetY(lv_targetPoint));
}
else {
lv_triangle2C = (lv_targetYToEdgeOfMap / Cos(lv_targetAngle));
if ((lv_triangle1C < lv_triangle2C)) {
lv_abilityTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_targetPoint, (lv_triangle1C * -1.0), lv_casterPoint);
}
else {
lv_abilityTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_targetPoint, (lv_triangle2C * -1.0), lv_casterPoint);
}
}
}
}
else if ((PointGetX(lv_casterPoint) <= PointGetX(lv_targetPoint)) && (PointGetY(lv_casterPoint) >= PointGetY(lv_targetPoint))) {
lv_targetXToEdgeOfMap = (PointGetX(RegionGetBoundsMax(RegionPlayableMap())) - PointGetX(lv_targetPoint));
lv_targetYToEdgeOfMap = PointGetY(lv_targetPoint);
lv_targetAngle = (AngleBetweenPoints(lv_casterPoint, lv_targetPoint) - 270.0);
lv_cosineofTargetAngle = Cos(lv_targetAngle);
if ((lv_cosineofTargetAngle > -0.001) && (lv_cosineofTargetAngle < 0.001)) {
lv_abilityTargetPoint = Point(PointGetX(RegionGetBoundsMax(RegionPlayableMap())), PointGetY(lv_targetPoint));
}
else {
lv_triangle1C = (lv_targetYToEdgeOfMap / Cos(lv_targetAngle));
lv_targetAngle = (90.0 - lv_targetAngle);
lv_cosineofTargetAngle = Cos(lv_targetAngle);
if ((lv_cosineofTargetAngle > -0.001) && (lv_cosineofTargetAngle < 0.001)) {
lv_abilityTargetPoint = Point(PointGetX(lv_targetPoint), PointGetY(RegionGetBoundsMin(RegionPlayableMap())));
}
else {
lv_triangle2C = (lv_targetXToEdgeOfMap / Cos(lv_targetAngle));
if ((lv_triangle1C < lv_triangle2C)) {
lv_abilityTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_targetPoint, (lv_triangle1C * -1.0), lv_casterPoint);
}
else {
lv_abilityTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_targetPoint, (lv_triangle2C * -1.0), lv_casterPoint);
}
}
}
}
if ((lv_abilityTargetPoint != null)) {
return lv_abilityTargetPoint;
}
else {
return null;
}
}
void libGDHL_gf_HeroicSummonsApplySummonedUnitTalentMonitor (unit lp_casterUnit, unit lp_summonedUnit) {
// Automatic Variable Declarations
// Implementation
if ((UnitHasBehavior2(lp_casterUnit, "Ultimate1Unlocked") == true)) {
UnitBehaviorAdd(lp_summonedUnit, "HeroGenericHeroicSummonedUnit1Monitor", lp_casterUnit, 1);
}
if ((UnitHasBehavior2(lp_casterUnit, "Ultimate2Unlocked") == true)) {
UnitBehaviorAdd(lp_summonedUnit, "HeroGenericHeroicSummonedUnit2Monitor", lp_casterUnit, 1);
}
}
void libGDHL_gf_HeroAbathurIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroAbathurTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroAbathurTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroAbathurAbathurExitsTransport, true);
TriggerEnable(libGDHL_gt_HeroAbathurSymbiote, true);
TriggerEnable(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, true);
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteScreenEffect, true);
TriggerEnable(libGDHL_gt_HeroAbathurStabFacer, true);
TriggerEnable(libGDHL_gt_HeroAbathurVolatileMutationUltimateEvolution, true);
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionStartControl, true);
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionStopControl, true);
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionGameEnd, true);
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionUnitDead, true);
TriggerEnable(libGDHL_gt_HeroAbathurLocustSpawned, true);
TriggerEnable(libGDHL_gt_HeroAbathurLocustNestSetFacing, true);
TriggerEnable(libGDHL_gt_HeroAbathurLocustNestCast, true);
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteHivemindSingleTarget, true);
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteHivemindStab, true);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityAddMinionKillStacks, true);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrositySymbioteendHooktoAI, true);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityDeselectedHooktoAI, true);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityUnhookAI, true);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityKillInitialTarget, true);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityAddSymbioteStacks, true);
TriggerEnable(libGDHL_gt_HeroAbathurSymbiotedMonstrositySymbioted, true);
TriggerEnable(libGDHL_gt_HeroAbathurDeepTunnelPing, true);
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteMinimapIcon, true);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityDeepTunnelPing, true);
}
}
void libGDHL_gf_HeroAbathurDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroAbathurTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroAbathurTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroAbathurTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroAbathurTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroAbathurAbathurExitsTransport, false);
TriggerEnable(libGDHL_gt_HeroAbathurSymbiote, false);
TriggerEnable(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, false);
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteScreenEffect, false);
TriggerEnable(libGDHL_gt_HeroAbathurStabFacer, false);
TriggerEnable(libGDHL_gt_HeroAbathurVolatileMutationUltimateEvolution, false);
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionStartControl, false);
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionStopControl, false);
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionGameEnd, false);
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionUnitDead, false);
TriggerEnable(libGDHL_gt_HeroAbathurLocustSpawned, false);
TriggerEnable(libGDHL_gt_HeroAbathurLocustNestSetFacing, false);
TriggerEnable(libGDHL_gt_HeroAbathurLocustNestCast, false);
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteHivemindSingleTarget, false);
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteHivemindStab, false);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityAddMinionKillStacks, false);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrositySymbioteendHooktoAI, false);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityDeselectedHooktoAI, false);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityUnhookAI, false);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityKillInitialTarget, false);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityAddSymbioteStacks, false);
TriggerEnable(libGDHL_gt_HeroAbathurSymbiotedMonstrositySymbioted, false);
TriggerEnable(libGDHL_gt_HeroAbathurDeepTunnelPing, false);
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteMinimapIcon, false);
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityDeepTunnelPing, false);
}
}
void libGDHL_gf_AbathurUltimateEvolutionEnded (trigger t) {
// Automatic Variable Declarations
// Implementation
TriggerAddEventGeneric(t, libGDHL_gv_eventID_AbathurUltimateEvolutionEnded_C);
}
void libGDHL_gf_SendEventAbathurUltimateEvolutionEnded (int lp_abathurPlayer, unit lp_clonedUnit) {
// Automatic Variable Declarations
// Implementation
DataTableSetInt(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurUltimateEvolutionEnded_C, libGDHL_gv_eventParam_AbathurUltimateEvolution_AbathurPlayer_C), lp_abathurPlayer);
DataTableSetUnit(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurUltimateEvolutionEnded_C, libGDHL_gv_eventParam_AbathurUltimateEvolution_ClonedUnit_C), lp_clonedUnit);
TriggerSendEvent(libGDHL_gv_eventID_AbathurUltimateEvolutionEnded_C);
}
int libGDHL_gf_AbathurUltimateEvolutionEndedAbathurPlayer () {
// Automatic Variable Declarations
// Implementation
return DataTableGetInt(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurUltimateEvolutionEnded_C, libGDHL_gv_eventParam_AbathurUltimateEvolution_AbathurPlayer_C));
}
unit libGDHL_gf_AbathurUltimateEvolutionEndedClonedUnit () {
// Automatic Variable Declarations
// Implementation
return DataTableGetUnit(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurUltimateEvolutionEnded_C, libGDHL_gv_eventParam_AbathurUltimateEvolution_ClonedUnit_C));
}
void libGDHL_gf_AbathurUltimateEvolutionHeroCopied (trigger t) {
// Automatic Variable Declarations
// Implementation
TriggerAddEventGeneric(t, libGDHL_gv_eventID_AbathurUltimateEvolutionHeroCopied_C);
}
void libGDHL_gf_SendEventAbathurUltimateEvolutionHeroCopied (int lp_ownerofAbathur, int lp_ownerofTarget) {
// Automatic Variable Declarations
// Implementation
DataTableSetInt(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurUltimateEvolutionHeroCopied_C, libGDHL_gv_eventParam_AbathurUltimateEvolutionHeroCopied_AbathurOwner_C), lp_ownerofAbathur);
DataTableSetInt(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurUltimateEvolutionHeroCopied_C, libGDHL_gv_eventParam_AbathurUltimateEvolutionHeroCopied_TargetOwner_C), lp_ownerofTarget);
TriggerSendEvent(libGDHL_gv_eventID_AbathurUltimateEvolutionHeroCopied_C);
}
int libGDHL_gf_AbathurUltimateEvolutionHeroCopiedAbathurOwner () {
// Automatic Variable Declarations
// Implementation
return DataTableGetInt(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurUltimateEvolutionHeroCopied_C, libGDHL_gv_eventParam_AbathurUltimateEvolutionHeroCopied_AbathurOwner_C));
}
int libGDHL_gf_AbathurUltimateEvolutionHeroCopiedTargetOwner () {
// Automatic Variable Declarations
// Implementation
return DataTableGetInt(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurUltimateEvolutionHeroCopied_C, libGDHL_gv_eventParam_AbathurUltimateEvolutionHeroCopied_TargetOwner_C));
}
void libGDHL_gf_AbathurSymbiote (trigger t) {
// Automatic Variable Declarations
// Implementation
TriggerAddEventGeneric(t, libGDHL_gv_eventID_AbathurSymbiote_C);
}
void libGDHL_gf_SendEventAbathurSymbiote (int lp_abathurPlayer, unit lp_symbioteUnit, unit lp_symbioteTarget) {
// Automatic Variable Declarations
// Implementation
DataTableSetInt(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurSymbiote_C, libGDHL_gv_eventParam_AbathurSymbiote_AbathurPlayer_C), lp_abathurPlayer);
DataTableSetUnit(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurSymbiote_C, libGDHL_gv_eventParam_AbathurSymbiote_SymbioteUnit_C), lp_symbioteUnit);
DataTableSetUnit(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurSymbiote_C, libGDHL_gv_eventParam_AbathurSymbiote_SymbioteTarget_C), lp_symbioteTarget);
TriggerSendEvent(libGDHL_gv_eventID_AbathurSymbiote_C);
}
int libGDHL_gf_AbathurSymbioteAbathurPlayer () {
// Automatic Variable Declarations
// Implementation
return DataTableGetInt(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurSymbiote_C, libGDHL_gv_eventParam_AbathurSymbiote_AbathurPlayer_C));
}
unit libGDHL_gf_AbathurSymbioteUnit () {
// Automatic Variable Declarations
// Implementation
return DataTableGetUnit(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurSymbiote_C, libGDHL_gv_eventParam_AbathurSymbiote_SymbioteUnit_C));
}
unit libGDHL_gf_AbathurSymbioteTarget () {
// Automatic Variable Declarations
// Implementation
return DataTableGetUnit(false, TriggerEventParamName(libGDHL_gv_eventID_AbathurSymbiote_C, libGDHL_gv_eventParam_AbathurSymbiote_SymbioteTarget_C));
}
void libGDHL_gf_HeroArtanisIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroArtanisTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroArtanisTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroArtanisTwinBladesZealotChargeTargeting, true);
TriggerEnable(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamSetTarget, true);
TriggerEnable(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamRedirectTarget2ElectricBoogaloo, true);
TriggerEnable(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamUnitCreated, true);
TriggerEnable(libGDHL_gt_HeroArtanisBladeDashPhasePrismCast, true);
TriggerEnable(libGDHL_gt_HeroArtanisProtectorofAiurHeroTakedownProc, true);
}
}
void libGDHL_gf_HeroArtanisDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroArtanisTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroArtanisTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroArtanisTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroArtanisTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroArtanisTwinBladesZealotChargeTargeting, false);
TriggerEnable(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamSetTarget, false);
TriggerEnable(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamRedirectTarget2ElectricBoogaloo, false);
TriggerEnable(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamUnitCreated, false);
TriggerEnable(libGDHL_gt_HeroArtanisBladeDashPhasePrismCast, false);
TriggerEnable(libGDHL_gt_HeroArtanisProtectorofAiurHeroTakedownProc, false);
}
}
trigger auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_Trigger = null;
unit auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_lp_purifierBeam;
int auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_lp_owner;
void libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI (unit lp_purifierBeam, int lp_owner) {
auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_lp_purifierBeam = lp_purifierBeam;
auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_lp_owner = lp_owner;
if (auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_Trigger == null) {
auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_Trigger = TriggerCreate("auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_TriggerFunc");
}
TriggerExecute(auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_Trigger, false, false);
}
bool auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_TriggerFunc (bool testConds, bool runActions) {
unit lp_purifierBeam = auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_lp_purifierBeam;
int lp_owner = auto_libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI_lp_owner;
// Variable Declarations
unit lv_artanis;
int lv_purifierBeamState;
// Automatic Variable Declarations
// Variable Initialization
lv_purifierBeamState = libGDHL_ge_SpearofAdunPurifierBeamState_Priming;
// Implementation
lv_purifierBeamState = libGDHL_ge_SpearofAdunPurifierBeamState_Priming;
lv_artanis = libGame_gv_players[lp_owner].lv_heroUnit;
while ((UnitIsAlive(lp_purifierBeam) == true)) {
if ((lv_purifierBeamState == libGDHL_ge_SpearofAdunPurifierBeamState_Priming)) {
if (((UnitIsAlive(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner]) == false) || (UnitHasBehavior2(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner], "Dead") == true) || (UnitHasBehaviorWithCategoryFlag(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner], c_behaviorCategorySpecialDeathState) == true)) && (UnitHasBehavior2(lv_artanis, "ArtanisSpearofAdunTargetPurifiedSupressionBehavior") == true)) {
UnitKill(lp_purifierBeam);
UnitModifyCooldown(lv_artanis, "Abil/ArtanisSpearofAdunPurifierBeam", 10.0, c_cooldownOperationSet);
break;
}
if ((UnitBehaviorCount(lp_purifierBeam, "ArtanisSpearofAdunPurifierBeamPrimed") == 0)) {
lv_purifierBeamState = libGDHL_ge_SpearofAdunPurifierBeamState_Active;
}
else {
UnitSetPosition(lp_purifierBeam, UnitGetPosition(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner]), false);
libGDHL_gv_heroArtanisSpearofAdunPurifierBeamLastKnownPoint[lp_owner] = UnitGetPosition(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner]);
}
}
else {
if ((lv_purifierBeamState == libGDHL_ge_SpearofAdunPurifierBeamState_Active)) {
if ((UnitIsAlive(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner]) == true) && (UnitHasBehavior2(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner], "Dead") == false) && (UnitHasBehaviorWithCategoryFlag(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner], c_behaviorCategorySpecialDeathState) == false)) {
if ((libGDHL_gv_heroArtanisSpearofAdunPurifierBeamPointOverride[lp_owner] == true)) {
if ((DistanceBetweenPoints(UnitGetPosition(lp_purifierBeam), libGDHL_gv_heroArtanisSpearofAdunPurifierBeamLastKnownPoint[lp_owner]) <= 6.0)) {
UnitIssueOrder(lp_purifierBeam, OrderTargetingPoint(AbilityCommand("move", 0), UnitGetPosition(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner])), c_orderQueueReplace);
libGDHL_gv_heroArtanisSpearofAdunPurifierBeamPointOverride[lp_owner] = false;
}
else {
UnitIssueOrder(lp_purifierBeam, OrderTargetingPoint(AbilityCommand("move", 0), libGDHL_gv_heroArtanisSpearofAdunPurifierBeamLastKnownPoint[lp_owner]), c_orderQueueReplace);
}
}
else {
UnitIssueOrder(lp_purifierBeam, OrderTargetingPoint(AbilityCommand("move", 0), UnitGetPosition(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner])), c_orderQueueReplace);
libGDHL_gv_heroArtanisSpearofAdunPurifierBeamLastKnownPoint[lp_owner] = UnitGetPosition(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner]);
}
}
else {
if ((PlayerHasTalent(lp_owner, "ArtanisSpearofAdunPurifierBeamTargetPurified") == false)) {
UnitIssueOrder(lp_purifierBeam, OrderTargetingPoint(AbilityCommand("move", 0), libGDHL_gv_heroArtanisSpearofAdunPurifierBeamLastKnownPoint[lp_owner]), c_orderQueueReplace);
lv_purifierBeamState = libGDHL_ge_SpearofAdunPurifierBeamState_Idle;
}
else {
UnitKill(lp_purifierBeam);
break;
}
}
}
else {
if ((lv_purifierBeamState == libGDHL_ge_SpearofAdunPurifierBeamState_Idle)) {
if ((UnitIsAlive(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner]) == true) && (UnitHasBehavior2(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lp_owner], "Dead") == false)) {
lv_purifierBeamState = libGDHL_ge_SpearofAdunPurifierBeamState_Active;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lp_purifierBeam), libGDHL_gv_heroArtanisSpearofAdunPurifierBeamLastKnownPoint[lp_owner]) >= 1.5)) {
UnitIssueOrder(lp_purifierBeam, OrderTargetingPoint(AbilityCommand("move", 0), libGDHL_gv_heroArtanisSpearofAdunPurifierBeamLastKnownPoint[lp_owner]), c_orderQueueReplace);
}
}
}
}
}
Wait(0.0625, c_timeGame);
}
return true;
}
void libGDHL_gf_HeroArthasIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroArthasTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroArthasTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroArthasAntiMagicShellHeal, true);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverDeath, true);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverTransport, true);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadPortGhouls, true);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadGhoulSpawned, true);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadNPCDeathProc, true);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadTakedownDeathProc, true);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadLegionofNorthrendTalentSpawn, true);
TriggerEnable(libGDHL_gt_HeroArthasDeathPactTalentTakedownTokenProc, true);
}
}
void libGDHL_gf_HeroArthasDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroArthasTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroArthasTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroArthasTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroArthasTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroArthasAntiMagicShellHeal, false);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverDeath, false);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverTransport, false);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadPortGhouls, false);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadGhoulSpawned, false);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadNPCDeathProc, false);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadTakedownDeathProc, false);
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadLegionofNorthrendTalentSpawn, false);
TriggerEnable(libGDHL_gt_HeroArthasDeathPactTalentTakedownTokenProc, false);
}
}
void libGDHL_gf_HeroAnubarakIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroAnubarakTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroAnubarakTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeSuppressCollision, true);
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeMaxRange, true);
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeCancel, true);
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeUnpathableCheck, true);
TriggerEnable(libGDHL_gt_HeroAnubarakBeetleJuicedMasterySpecialDeathStateProc, true);
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonSoundEffect, true);
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonOn, true);
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonOff, true);
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonSpawned, true);
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonUnitHit, true);
}
}
void libGDHL_gf_HeroAnubarakDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroAnubarakTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroAnubarakTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroAnubarakTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroAnubarakTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeSuppressCollision, false);
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeMaxRange, false);
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeCancel, false);
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeUnpathableCheck, false);
TriggerEnable(libGDHL_gt_HeroAnubarakBeetleJuicedMasterySpecialDeathStateProc, false);
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonSoundEffect, false);
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonOn, false);
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonOff, false);
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonSpawned, false);
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonUnitHit, false);
}
}
void libGDHL_gf_HeroAzmodanIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroAzmodanTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroAzmodanTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroAzmodanDemonicInvasionAddUnitstoUnitGroup, true);
TriggerEnable(libGDHL_gt_HeroAzmodanDemonicInvasionUnpathableLocation, true);
TriggerEnable(libGDHL_gt_HeroAzmodanDemonCreate, true);
TriggerEnable(libGDHL_gt_HeroAzmodanDemonGeneralBirthFacing, true);
TriggerEnable(libGDHL_gt_HeroAzmodanSpawned, true);
TriggerEnable(libGDHL_gt_HeroAzmodanDemonicInvasionRemoveExistingDemons, true);
TriggerEnable(libGDHL_gt_HeroAzmodanGlobeTalentPicked, true);
TriggerEnable(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues, true);
TriggerEnable(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValuesReset, true);
}
}
void libGDHL_gf_HeroAzmodanDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroAzmodanTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroAzmodanTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroAzmodanTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroAzmodanTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroAzmodanDemonicInvasionAddUnitstoUnitGroup, false);
TriggerEnable(libGDHL_gt_HeroAzmodanDemonicInvasionUnpathableLocation, false);
TriggerEnable(libGDHL_gt_HeroAzmodanCustomKillVO, false);
TriggerEnable(libGDHL_gt_HeroAzmodanDemonCreate, false);
TriggerEnable(libGDHL_gt_HeroAzmodanDemonGeneralBirthFacing, false);
TriggerEnable(libGDHL_gt_HeroAzmodanSpawned, false);
TriggerEnable(libGDHL_gt_HeroAzmodanDemonicInvasionRemoveExistingDemons, false);
TriggerEnable(libGDHL_gt_HeroAzmodanGlobeTalentPicked, false);
TriggerEnable(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues, false);
TriggerEnable(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValuesReset, false);
}
}
void libGDHL_gf_HeroBarbarianIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroBarbarianTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroBarbarianTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension, true);
TriggerEnable(libGDHL_gt_HeroBarbarianAncientSpearLaunchBarbarianUsed, true);
TriggerEnable(libGDHL_gt_HeroBarbarianLeap, true);
TriggerEnable(libGDHL_gt_HeroBarbarianLeapArreatCraterForcedDestruction, true);
}
}
void libGDHL_gf_HeroBarbarianDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroBarbarianTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroBarbarianTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroBarbarianTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroBarbarianTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension, false);
TriggerEnable(libGDHL_gt_HeroBarbarianAncientSpearLaunchBarbarianUsed, false);
TriggerEnable(libGDHL_gt_HeroBarbarianLeap, false);
TriggerEnable(libGDHL_gt_HeroBarbarianLeapArreatCraterForcedDestruction, false);
}
}
void libGDHL_gf_HeroButcherIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroButcherTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroButcherTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtTargetAudioTelegraph, true);
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtTravelValidation, true);
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtCast, true);
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtCancelAnimationHook, true);
TriggerEnable(libGDHL_gt_HeroButcherButcherParticipatedInTakedown, true);
TriggerEnable(libGDHL_gt_HeroButcherFreshMeatVehiclePickup, true);
TriggerEnable(libGDHL_gt_HeroButcherFreshMeatVehicleOccupy, true);
TriggerEnable(libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter, true);
}
}
void libGDHL_gf_HeroButcherDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroButcherTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroButcherTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroButcherTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroButcherTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtTargetAudioTelegraph, false);
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtTravelValidation, false);
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtCast, false);
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtCancelAnimationHook, false);
TriggerEnable(libGDHL_gt_HeroButcherButcherParticipatedInTakedown, false);
TriggerEnable(libGDHL_gt_HeroButcherFreshMeatVehiclePickup, false);
TriggerEnable(libGDHL_gt_HeroButcherFreshMeatVehicleOccupy, false);
TriggerEnable(libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter, false);
}
}
void libGDHL_gf_HeroChenIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroChenTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroChenTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroChenWanderingKegActivate, true);
TriggerEnable(libGDHL_gt_HeroChenStormEarthFireTimedLifeIncrease, true);
TriggerEnable(libGDHL_gt_HeroChenWanderingKegDeactivate, true);
TriggerEnable(libGDHL_gt_HeroChenStormEarthAndFireStasis, true);
TriggerEnable(libGDHL_gt_HeroChenStormEarthAndFireTimestop, true);
TriggerEnable(libGDHL_gt_HeroChenStormEarthAndFireStasisCleanup, true);
TriggerEnable(libGDHL_gt_HeroChenStormEarthFireActivatedNew, true);
TriggerEnable(libGDHL_gt_HeroChenElementDies, true);
TriggerEnable(libGDHL_gt_HeroChenElementFatalDamageResponse, true);
TriggerEnable(libGDHL_gt_HeroChenExpirationCleanup, true);
TriggerEnable(libGDHL_gt_HeroChenStormEarthFireEarthAbility, true);
TriggerEnable(libGDHL_gt_HeroChenSwiftReflexesTalentMissed, true);
TriggerEnable(libGDHL_gt_HeroChenFreshestIngredientsTalentProc, true);
TriggerEnable(libGDHL_gt_HeroChenStaggerDamageResponse, true);
TriggerEnable(libGDHL_gt_HeroChenStaggerDisplayUpdate, true);
}
}
void libGDHL_gf_HeroChenDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroChenTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroChenTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroChenTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroChenTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroChenWanderingKegActivate, false);
TriggerEnable(libGDHL_gt_HeroChenStormEarthFireTimedLifeIncrease, false);
TriggerEnable(libGDHL_gt_HeroChenWanderingKegDeactivate, false);
TriggerEnable(libGDHL_gt_HeroChenStormEarthAndFireStasis, false);
TriggerEnable(libGDHL_gt_HeroChenStormEarthAndFireTimestop, false);
TriggerEnable(libGDHL_gt_HeroChenStormEarthAndFireStasisCleanup, false);
TriggerEnable(libGDHL_gt_HeroChenStormEarthFireActivatedNew, false);
TriggerEnable(libGDHL_gt_HeroChenElementDies, false);
TriggerEnable(libGDHL_gt_HeroChenElementFatalDamageResponse, false);
TriggerEnable(libGDHL_gt_HeroChenExpirationCleanup, false);
TriggerEnable(libGDHL_gt_HeroChenStormEarthFireEarthAbility, false);
TriggerEnable(libGDHL_gt_HeroChenSwiftReflexesTalentMissed, false);
TriggerEnable(libGDHL_gt_HeroChenFreshestIngredientsTalentProc, false);
TriggerEnable(libGDHL_gt_HeroChenStaggerDamageResponse, false);
TriggerEnable(libGDHL_gt_HeroChenStaggerDisplayUpdate, false);
}
}
void libGDHL_gf_HeroChenStormEarthFireCleanup (int lp_chenOwner, bool lp_suicide, unit lp_suicideSource) {
// Variable Declarations
int lv_owner;
unit lv_chen;
// Automatic Variable Declarations
unitgroup auto37648C49_g;
int auto37648C49_u;
unit auto37648C49_var;
// Variable Initialization
// Implementation
lv_owner = lp_chenOwner;
if ((UnitGetType(libGame_gv_players[lv_owner].lv_heroUnit) == "HeroAbathur")) {
if ((libGame_gv_players[lv_owner].lv_activeVehicle == null)) {
auto37648C49_g = UnitGroup(null, lv_owner, RegionEntireMap(), UnitFilter(0, (1 << (c_targetFilterHallucination - 32)), (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto37648C49_u = UnitGroupCount(auto37648C49_g, c_unitCountAll);
for (;; auto37648C49_u -= 1) {
auto37648C49_var = UnitGroupUnitFromEnd(auto37648C49_g, auto37648C49_u);
if (auto37648C49_var == null) { break; }
UnitRemove(auto37648C49_var);
}
return ;
}
lv_chen = libGame_gv_players[lv_owner].lv_activeVehicle;
}
else {
lv_chen = libGame_gv_players[lv_owner].lv_heroUnit;
}
if ((libGame_gv_players[lv_owner].lv_activeVehicle != null)) {
UnitBehaviorRemove(lv_chen, "StormEarthFireCasterBehavior", 1);
return ;
}
UnitBehaviorRemove(lv_chen, "StormEarthFireCasterBehavior", 1);
UnitSelect(lv_chen, lv_owner, true);
libGame_gv_players[lv_owner].lv_cameraPlayerHasControl = false;
libGame_gv_players[lv_owner].lv_cameraPlayerUnitGroupToFocusOn = libGame_gv_players[lv_owner].lv_heroUnitGroup;
libGame_gf_CameraUpdateCameraForPlayer(lv_owner);
Wait(0.0625, c_timeGame);
libGame_gv_players[lv_owner].lv_cameraPlayerHasControl = true;
libGame_gf_CameraUpdateCameraForPlayer(lv_owner);
libGDHL_gv_heroChenStormEarthFireUnits[lv_owner].lv_controlStoreUnit = null;
if ((libGDHL_gv_heroChenStormEarthFireFatalDamageResponseCounter[lp_chenOwner] == 3)) {
UnitCreateEffectUnitWithSource(lp_suicideSource, "ChenStormEarthFireSuicideDamage", lv_chen, c_gameCatalogAbil, "ChenStormEarthFire");
libGDHL_gv_heroChenStormEarthFireFatalDamageResponseCounter[lp_chenOwner] = 0;
}
else {
libGDHL_gv_heroChenStormEarthFireFatalDamageResponseCounter[lp_chenOwner] = 0;
}
}
void libGDHL_gf_HeroCrusaderIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroCrusaderTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroCrusaderTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_CrusaderFallingSwordTeleport, true);
TriggerEnable(libGDHL_gt_CrusaderFallingSwordFinalSet, true);
TriggerEnable(libGDHL_gt_CrusaderFallingSwordSuppressCollision, true);
}
}
void libGDHL_gf_HeroCrusaderDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroCrusaderTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroCrusaderTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroCrusaderTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroCrusaderTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_CrusaderFallingSwordTeleport, false);
TriggerEnable(libGDHL_gt_CrusaderFallingSwordFinalSet, false);
TriggerEnable(libGDHL_gt_CrusaderFallingSwordSuppressCollision, false);
}
}
void libGDHL_gf_HeroDiabloIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroDiabloTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroDiabloTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroDiabloInfernoBreathCast, true);
TriggerEnable(libGDHL_gt_HeroDiabloInfernoBreathEnd, true);
TriggerEnable(libGDHL_gt_HeroDiabloBlackSoulstoneStackTalentPicked, true);
TriggerEnable(libGDHL_gt_HeroDiabloOverpowerSetFacing, true);
TriggerEnable(libGDHL_gt_HeroDiabloEternalSoulstoneRessurection, true);
TriggerEnable(libGDHL_gt_HeroDiabloResetEternalSoulstoneRessurection, true);
}
}
void libGDHL_gf_HeroDiabloDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroDiabloTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroDiabloTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroDiabloTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroDiabloTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroDiabloInfernoBreathCast, false);
TriggerEnable(libGDHL_gt_HeroDiabloInfernoBreathEnd, false);
TriggerEnable(libGDHL_gt_HeroDiabloBlackSoulstoneStackTalentPicked, false);
TriggerEnable(libGDHL_gt_HeroDiabloOverpowerSetFacing, false);
TriggerEnable(libGDHL_gt_HeroDiabloEternalSoulstoneRessurection, false);
TriggerEnable(libGDHL_gt_HeroDiabloResetEternalSoulstoneRessurection, false);
}
}
void libGDHL_gf_HeroDemonHunterIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroDemonHunterTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroDemonHunterTriggerRegistrationVariable == 1)) {
}
}
void libGDHL_gf_HeroDemonHunterDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroDemonHunterTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroDemonHunterTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroDemonHunterTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroDemonHunterTriggerRegistrationVariable == 0)) {
}
}
void libGDHL_gf_HeroDryadIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroDryadTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroDryadTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroDryadLeapingStrikeSetTargetVariable, true);
TriggerEnable(libGDHL_gt_HeroDryadLeapingStrikeFindLandingLocation, true);
TriggerEnable(libGDHL_gt_HeroDryadLeapingStrikeCreateAttackPersistent, true);
TriggerEnable(libGDHL_gt_HeroDryadNaturesToxinHandleApplication, true);
TriggerEnable(libGDHL_gt_HeroDryadWispDividingWispDuration, true);
TriggerEnable(libGDHL_gt_HeroDryadDanceCancelOrders, true);
TriggerEnable(libGDHL_gt_HeroDryadActivateCameraSettings, true);
TriggerEnable(libGDHL_gt_HeroDryadDeactivateCameraSettings, true);
TriggerEnable(libGDHL_gt_HeroDryadActivateCameraforSymbiote, true);
TriggerEnable(libGDHL_gt_HeroDryadLossofControlCamera, true);
TriggerEnable(libGDHL_gt_HeroDryadAbolishMagicBehaviorActivate, true);
TriggerEnable(libGDHL_gt_HeroDryadAbolishMagicBehaviorDeactivate, true);
}
}
void libGDHL_gf_HeroDryadDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroDryadTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroDryadTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroDryadTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroDryadTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroDryadLeapingStrikeSetTargetVariable, false);
TriggerEnable(libGDHL_gt_HeroDryadLeapingStrikeFindLandingLocation, false);
TriggerEnable(libGDHL_gt_HeroDryadLeapingStrikeCreateAttackPersistent, false);
TriggerEnable(libGDHL_gt_HeroDryadNaturesToxinHandleApplication, false);
TriggerEnable(libGDHL_gt_HeroDryadWispDividingWispDuration, false);
TriggerEnable(libGDHL_gt_HeroDryadDanceCancelOrders, false);
TriggerEnable(libGDHL_gt_HeroDryadActivateCameraSettings, false);
TriggerEnable(libGDHL_gt_HeroDryadDeactivateCameraSettings, false);
TriggerEnable(libGDHL_gt_HeroDryadActivateCameraforSymbiote, false);
TriggerEnable(libGDHL_gt_HeroDryadLossofControlCamera, false);
TriggerEnable(libGDHL_gt_HeroDryadAbolishMagicBehaviorActivate, false);
TriggerEnable(libGDHL_gt_HeroDryadAbolishMagicBehaviorDeactivate, false);
}
}
void libGDHL_gf_HeroGreymaneIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroGreymaneTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroGreymaneTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroGreymaneGofortheThroatSpecialDeathProcs, true);
TriggerEnable(libGDHL_gt_HeroGreymaneTalentWizenedDuelistDeath, true);
TriggerEnable(libGDHL_gt_HeroGreymaneActorSoundSwaps, true);
}
}
void libGDHL_gf_HeroGreymaneDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroGreymaneTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroGreymaneTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroGreymaneTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroGreymaneTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroGreymaneGofortheThroatSpecialDeathProcs, false);
TriggerEnable(libGDHL_gt_HeroGreymaneTalentWizenedDuelistDeath, false);
TriggerEnable(libGDHL_gt_HeroGreymaneActorSoundSwaps, false);
}
}
void libGDHL_gf_HeroGuldanDarkBargainDeathTimerHoldandSwap (int lp_team, int lp_frameIndex, fixed lp_waitTime) {
// Automatic Variable Declarations
// Implementation
DialogControlSendAnimationEvent(libUIUI_gv_deathTimerPanel.lv_timerBarHeroFrame[lp_team][lp_frameIndex], PlayerGroupAll(), "Pause");
DialogControlSetVisible(libUIUI_gv_deathTimerPanel.lv_timerBarDarkBargainBorder[lp_team][lp_frameIndex], PlayerGroupAll(), true);
Wait(lp_waitTime, c_timeGame);
DialogControlSetVisible(libUIUI_gv_deathTimerPanel.lv_timerBarDarkBargainBorder[lp_team][lp_frameIndex], PlayerGroupAll(), false);
if ((lp_team == libGame_gv_teamOrderIndex_C)) {
libNtve_gf_SetDialogItemStyle(libUIUI_gv_deathTimerPanel.lv_timerBarHeroFrameTimeLabel[lp_team][lp_frameIndex], "Storm_DeathTimer_TimerLabelRed", libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers);
}
else {
libNtve_gf_SetDialogItemStyle(libUIUI_gv_deathTimerPanel.lv_timerBarHeroFrameTimeLabel[lp_team][lp_frameIndex], "Storm_DeathTimer_TimerLabelRed", libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers);
}
if (((libCore_gv_sYSGameMode == libCore_ge_GameModes_ArenaMode) || (libCore_gv_sYSGameMode == libCore_ge_GameModes_AttackDefend))) {
DialogControlSendAnimationEvent(libUIUI_gv_deathTimerPanel.lv_timerBarHeroFrame[lp_team][lp_frameIndex], PlayerGroupAll(), "StartRapid");
}
else {
DialogControlSendAnimationEvent(libUIUI_gv_deathTimerPanel.lv_timerBarHeroFrame[lp_team][lp_frameIndex], PlayerGroupAll(), "Start");
}
DialogControlSendAnimationEvent(libUIUI_gv_deathTimerPanel.lv_timerBarDarkBargainBorder[lp_team][lp_frameIndex], PlayerGroupAll(), "StopFlash");
}
void libGDHL_gf_HeroFaerieDragonIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroFaerieDragonTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroFaerieDragonTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroFaerieDragonPhaseShiftCamera, true);
TriggerEnable(libGDHL_gt_HeroFaerieDragonPhaseShiftPing, true);
TriggerEnable(libGDHL_gt_HeroFaerieDragonPixieCharmChargeCountProc, true);
}
}
void libGDHL_gf_HeroFaerieDragonDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroFaerieDragonTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroFaerieDragonTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroFaerieDragonTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroFaerieDragonTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroFaerieDragonPhaseShiftCamera, false);
TriggerEnable(libGDHL_gt_HeroFaerieDragonPhaseShiftPing, false);
TriggerEnable(libGDHL_gt_HeroFaerieDragonPixieCharmChargeCountProc, false);
}
}
void libGDHL_gf_HeroFalstadIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroFalstadTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroFalstadTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroFalstadFlightCameraHeightRestore, true);
TriggerEnable(libGDHL_gt_HeroFalstadFlightPing, true);
TriggerEnable(libGDHL_gt_HeroFalstadDishonorableDischargeHeroKillRefreshCooldown, true);
}
}
void libGDHL_gf_HeroFalstadDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroFalstadTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroFalstadTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroFalstadTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroFalstadTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroFalstadFlightCameraHeightRestore, false);
TriggerEnable(libGDHL_gt_HeroFalstadFlightPing, false);
TriggerEnable(libGDHL_gt_HeroFalstadDishonorableDischargeHeroKillRefreshCooldown, false);
}
}
void libGDHL_gf_HeroIllidanIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroIllidanTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroIllidanTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse, true);
TriggerEnable(libGDHL_gt_HeroIllidanMetamorphosisAvatarApplyHealthBuff, true);
TriggerEnable(libGDHL_gt_HeroIllidanTheHuntNowhereToHideTalentActivate, true);
TriggerEnable(libGDHL_gt_HeroIllidanBladesOfAzzinothAddCharge, true);
TriggerEnable(libGDHL_gt_HeroIllidanUnendingHatredHeroTakedown, true);
TriggerEnable(libGDHL_gt_HeroIllidanUnendingHatredNPCKill, true);
TriggerEnable(libGDHL_gt_HeroIllidanMetamorphisisUnendingHatredHearthstoneUsed, true);
}
}
void libGDHL_gf_HeroIllidanDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroIllidanTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroIllidanTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroIllidanTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroIllidanTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse, false);
TriggerEnable(libGDHL_gt_HeroIllidanMetamorphosisAvatarApplyHealthBuff, false);
TriggerEnable(libGDHL_gt_HeroIllidanTheHuntNowhereToHideTalentActivate, false);
TriggerEnable(libGDHL_gt_HeroIllidanBladesOfAzzinothAddCharge, false);
TriggerEnable(libGDHL_gt_HeroIllidanUnendingHatredHeroTakedown, false);
TriggerEnable(libGDHL_gt_HeroIllidanUnendingHatredNPCKill, false);
TriggerEnable(libGDHL_gt_HeroIllidanMetamorphisisUnendingHatredHearthstoneUsed, false);
}
}
void libGDHL_gf_HeroJainaIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroJainaTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroJainaTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalCreated, true);
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalCommand, true);
TriggerEnable(libGDHL_gt_HeroJainaFrostboltWintermuteCast, true);
TriggerEnable(libGDHL_gt_HeroJainaConeofColdWintermuteCast, true);
TriggerEnable(libGDHL_gt_HeroJainaBlizzardWintermuteCast, true);
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalVehicleInitial, true);
TriggerEnable(libGDHL_gt_HeroJainaChilledDamageResponse, true);
TriggerEnable(libGDHL_gt_HeroJainaImprovedIceBlockOverlayOn, true);
TriggerEnable(libGDHL_gt_HeroJainaImprovedIceBlockOverlayOff, true);
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalSummonedUnitSpecialCaseInteraction, true);
TriggerEnable(libGDHL_gt_HeroJainaFrostbiteIceblockItem, true);
TriggerEnable(libGDHL_gt_HeroJainaFrostbittenCompletionDummy, true);
TriggerEnable(libGDHL_gt_HeroJainaFrostbiteQuestReset, true);
}
}
void libGDHL_gf_HeroJainaDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroJainaTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroJainaTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroJainaTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroJainaTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalCreated, false);
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalCommand, false);
TriggerEnable(libGDHL_gt_HeroJainaFrostboltWintermuteCast, false);
TriggerEnable(libGDHL_gt_HeroJainaConeofColdWintermuteCast, false);
TriggerEnable(libGDHL_gt_HeroJainaBlizzardWintermuteCast, false);
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalVehicleInitial, false);
TriggerEnable(libGDHL_gt_HeroJainaChilledDamageResponse, false);
TriggerEnable(libGDHL_gt_HeroJainaImprovedIceBlockOverlayOn, false);
TriggerEnable(libGDHL_gt_HeroJainaImprovedIceBlockOverlayOff, false);
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalSummonedUnitSpecialCaseInteraction, false);
TriggerEnable(libGDHL_gt_HeroJainaFrostbiteIceblockItem, false);
TriggerEnable(libGDHL_gt_HeroJainaFrostbittenCompletionDummy, false);
TriggerEnable(libGDHL_gt_HeroJainaFrostbiteQuestReset, false);
}
}
trigger auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_Trigger = null;
unit auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_lp_jaina;
int auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_lp_player;
void libGDHL_gf_HeroJainaWaterElementalVehicleControl (unit lp_jaina, int lp_player) {
auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_lp_jaina = lp_jaina;
auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_lp_player = lp_player;
if (auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_Trigger == null) {
auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_Trigger = TriggerCreate("auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_TriggerFunc");
}
TriggerExecute(auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_Trigger, false, false);
}
bool auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_TriggerFunc (bool testConds, bool runActions) {
unit lp_jaina = auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_lp_jaina;
int lp_player = auto_libGDHL_gf_HeroJainaWaterElementalVehicleControl_lp_player;
// Variable Declarations
bool lv_gaveToMinionAI;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
while ((UnitHasBehavior2(lp_jaina, "JainaWaterElementalCasterBehavior") == true) && (libGame_gv_players[lp_player].lv_activeVehicle != null)) {
UnitIssueOrder(libGDHL_gv_heroJainaWaterElemental[lp_player], OrderTargetingPoint(AbilityCommand("attack", 0), libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(libGame_gv_players[lp_player].lv_activeVehicle), 2.0, UnitGetPosition(libGDHL_gv_heroJainaWaterElemental[lp_player]))), c_orderQueueReplace);
Wait(0.5, c_timeGame);
}
return true;
}
void libGDHL_gf_HeroKaelthasIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroKaelthasTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroKaelthasTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroKaelthasPhoenixSpawnSelection, true);
TriggerEnable(libGDHL_gt_HeroKaelthasTwinSpheresTalentPickCooldownReset, true);
TriggerEnable(libGDHL_gt_HeroKaelthasPyroblastMissileCreated, true);
TriggerEnable(libGame_gt_KaelthasEntersVehicle, true);
TriggerEnable(libGame_gt_KaelthasStopsOccupyingVehicle, true);
}
}
void libGDHL_gf_HeroKaelthasDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroKaelthasTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroKaelthasTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroKaelthasTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroKaelthasTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroKaelthasPhoenixSpawnSelection, false);
TriggerEnable(libGDHL_gt_HeroKaelthasTwinSpheresTalentPickCooldownReset, false);
TriggerEnable(libGDHL_gt_HeroKaelthasPyroblastMissileCreated, false);
TriggerEnable(libGame_gt_KaelthasEntersVehicle, false);
TriggerEnable(libGame_gt_KaelthasStopsOccupyingVehicle, false);
}
}
void libGDHL_gf_HeroKerriganIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroKerriganTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroKerriganTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskSummonUltralisk, true);
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbility, true);
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilityPoint, true);
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilitySummonedUnitSpecialCaseInteraction, true);
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskDies, true);
TriggerEnable(libGDHL_gt_HeroKerriganImpalingBladesKineticFulminationTokenTransfer, true);
}
}
void libGDHL_gf_HeroKerriganDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroKerriganTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroKerriganTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroKerriganTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroKerriganTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskSummonUltralisk, false);
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbility, false);
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilityPoint, false);
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilitySummonedUnitSpecialCaseInteraction, false);
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskDies, false);
TriggerEnable(libGDHL_gt_HeroKerriganImpalingBladesKineticFulminationTokenTransfer, false);
}
}
void libGDHL_gf_HeroKerriganUltraliskLogicController (int lp_owningPlayer, unit lp_ultraliskUnit) {
// Variable Declarations
point lv_lastKnownLocation;
// Automatic Variable Declarations
// Variable Initialization
lv_lastKnownLocation = UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitTarget));
// Implementation
while ((UnitIsAlive(lp_ultraliskUnit) == true)) {
if ((UnitOrderCount(lp_ultraliskUnit) == 0)) {
UnitIssueOrder(lp_ultraliskUnit, OrderTargetingPoint(AbilityCommand("attack", 0), UnitGetPosition(lp_ultraliskUnit)), c_orderQueueReplace);
Wait(0.25, c_timeGame);
if ((UnitOrderCount(lp_ultraliskUnit) == 0)) {
if ((UnitIsAlive(lp_ultraliskUnit) == false)) {
return ;
}
UnitIssueOrder(lp_ultraliskUnit, OrderTargetingPoint(AbilityCommand("attack", 0), PointWithOffsetPolar(UnitGetPosition(lp_ultraliskUnit), 3.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
Wait(1.75, c_timeGame);
}
}
else {
if ((OrderGetTargetUnit(UnitOrder(lp_ultraliskUnit, 0)) != null)) {
if ((OrderGetTargetUnit(UnitOrder(lp_ultraliskUnit, 0)) != libGDHL_gv_heroKerriganUltraliskCurrentAttackTargetUnit[EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)])) {
libGDHL_gv_heroKerriganUltraliskCurrentAttackTargetUnit[EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)] = OrderGetTargetUnit(UnitOrder(lp_ultraliskUnit, 0));
}
if ((UnitFilterMatch(libGDHL_gv_heroKerriganUltraliskCurrentAttackTargetUnit[EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)], UnitGetOwner(lp_ultraliskUnit), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true) && (libNtve_gf_UnitIsVisibleToPlayer(libGDHL_gv_heroKerriganUltraliskCurrentAttackTargetUnit[EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)], UnitGetOwner(lp_ultraliskUnit)) == true)) {
if ((lv_lastKnownLocation != UnitGetPosition(libGDHL_gv_heroKerriganUltraliskCurrentAttackTargetUnit[EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)]))) {
lv_lastKnownLocation = UnitGetPosition(libGDHL_gv_heroKerriganUltraliskCurrentAttackTargetUnit[EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)]);
}
}
else {
UnitIssueOrder(lp_ultraliskUnit, OrderTargetingPoint(AbilityCommand("attack", 0), PointWithOffsetPolar(lv_lastKnownLocation, 2.0, UnitGetFacing(lp_ultraliskUnit))), c_orderQueueReplace);
lv_lastKnownLocation = PointWithOffsetPolar(lv_lastKnownLocation, 2.0, UnitGetFacing(lp_ultraliskUnit));
Wait(1.5, c_timeGame);
}
}
}
Wait(0.125, c_timeGame);
}
}
void libGDHL_gf_HeroETCIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroETCTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroETCTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroL90ETCPowerslideTargetCheck, true);
TriggerEnable(libGDHL_gt_HeroL90ETCStageDiveTeleportUnit, true);
TriggerEnable(libGDHL_gt_HeroL90ETCStageDiveFinalSet, true);
TriggerEnable(libGDHL_gt_HeroL90ETCMoshPitOn, true);
TriggerEnable(libGDHL_gt_HeroETCProgRockTalentRegenGlobeProc, true);
}
}
void libGDHL_gf_HeroETCDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroETCTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroETCTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroETCTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroETCTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroL90ETCPowerslideTargetCheck, false);
TriggerEnable(libGDHL_gt_HeroL90ETCStageDiveTeleportUnit, false);
TriggerEnable(libGDHL_gt_HeroL90ETCStageDiveFinalSet, false);
TriggerEnable(libGDHL_gt_HeroL90ETCMoshPitOn, false);
TriggerEnable(libGDHL_gt_HeroETCProgRockTalentRegenGlobeProc, false);
}
}
void libGDHL_gf_HeroLiLiIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroLiLiTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroLiLiTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroLiLiCloudSerpentTurretSerpentSummonandSimplifiedAI, true);
TriggerEnable(libGDHL_gt_HeroLiLiCloudSerpentSummonandSimplifiedAI, true);
TriggerEnable(libGDHL_gt_HeroLiLiCloudSerpentAttackMimic, true);
}
}
void libGDHL_gf_HeroLiLiDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroLiLiTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroLiLiTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroLiLiTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroLiLiTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroLiLiCloudSerpentTurretSerpentSummonandSimplifiedAI, false);
TriggerEnable(libGDHL_gt_HeroLiLiCloudSerpentSummonandSimplifiedAI, false);
TriggerEnable(libGDHL_gt_HeroLiLiCloudSerpentAttackMimic, false);
}
}
void libGDHL_gf_HeroLiLiCloudSerpentCloakController (unit lp_owningUnit, unit lp_serpentUnit) {
// Automatic Variable Declarations
// Implementation
if (((UnitTestState(lp_owningUnit, c_unitStateCloaked) == true) || (UnitBehaviorCount(lp_owningUnit, "ShrubStatusController") == 1)) && (UnitHasBehavior2(lp_serpentUnit, "CloudSerpentCloakingBehavior") == false) && (UnitHasBehavior2(lp_owningUnit, "AttackReveal") == false)) {
libNtve_gf_SendActorMessageToUnit(lp_serpentUnit, "Signal SerpentHide");
UnitBehaviorAdd(lp_serpentUnit, "CloudSerpentCloakingBehavior", lp_serpentUnit, 1);
}
else {
if (((UnitBehaviorCount(lp_owningUnit, "ShrubStatusController") == 0) || (UnitHasBehavior2(lp_owningUnit, "AttackReveal") == true)) && (UnitTestState(lp_owningUnit, c_unitStateCloaked) == false) && (UnitHasBehavior2(lp_serpentUnit, "CloudSerpentCloakingBehavior") == true)) {
libNtve_gf_SendActorMessageToUnit(lp_serpentUnit, "Signal SerpentShow");
UnitBehaviorRemove(lp_serpentUnit, "CloudSerpentCloakingBehavior", 1);
}
}
}
void libGDHL_gf_HeroLeoricIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroLeoricTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroLeoricTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroLeoricWraithWalkDevouringMawSpecialCase, true);
TriggerEnable(libGDHL_gt_HeroLeoricWraithWalkCast, true);
TriggerEnable(libGDHL_gt_LeoricUndyingStart, true);
TriggerEnable(libGDHL_gt_LeoricUndyingEnd, true);
TriggerEnable(libGDHL_gt_LeoricSwappedDuringUndying, true);
TriggerEnable(libGDHL_gt_LeoricUndyingHealingDeathTimerReduction, true);
TriggerEnable(libGDHL_gt_LeoricFealtyUntoDeathEnemyNPCProcListener, true);
TriggerEnable(libGDHL_gt_LeoricFealtyUntoDeathAlliedNPCProcListener, true);
TriggerEnable(libGDHL_gt_HeroLeoricOsseinRenewalTalentGlobeProc, true);
TriggerEnable(libGDHL_gt_HeroLeoricEntombForcedDestruction, true);
TriggerEnable(libGDHL_gt_HeroLeoricShroudOfTheDeadKingFloatingText, true);
}
}
void libGDHL_gf_HeroLeoricDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroLeoricTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroLeoricTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroLeoricTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroLeoricTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroLeoricWraithWalkDevouringMawSpecialCase, false);
TriggerEnable(libGDHL_gt_HeroLeoricWraithWalkCast, false);
TriggerEnable(libGDHL_gt_LeoricUndyingStart, false);
TriggerEnable(libGDHL_gt_LeoricUndyingEnd, false);
TriggerEnable(libGDHL_gt_LeoricSwappedDuringUndying, false);
TriggerEnable(libGDHL_gt_LeoricUndyingHealingDeathTimerReduction, false);
TriggerEnable(libGDHL_gt_LeoricFealtyUntoDeathEnemyNPCProcListener, false);
TriggerEnable(libGDHL_gt_LeoricFealtyUntoDeathAlliedNPCProcListener, false);
TriggerEnable(libGDHL_gt_HeroLeoricOsseinRenewalTalentGlobeProc, false);
TriggerEnable(libGDHL_gt_HeroLeoricEntombForcedDestruction, false);
TriggerEnable(libGDHL_gt_HeroLeoricShroudOfTheDeadKingFloatingText, false);
}
}
void libGDHL_gf_LeoricUIHeroSpecificStatusFrameUpdateLeoricUIValue (int lp_player) {
// Automatic Variable Declarations
// Implementation
TextExpressionSetToken("Param/Expression/lib_GDHL_31DFEAEB", "A", FixedToText(libGDHL_gv_hero_Leoric_Undying_Dead_Time_Saved[lp_player], 2));
libNtve_gf_SetDialogItemText(libGDHL_gv_leoricUI.lv_traitLabel, TextExpressionAssemble("Param/Expression/lib_GDHL_31DFEAEB"), libCore_gv_playerGroupFromPlayer[lp_player]);
}
void libGDHL_gf_LeoricUIHeroSpecificStatusFrameShowHideLeoricTraitUI (bool lp_showHide, int lp_player) {
// Automatic Variable Declarations
// Implementation
if ((lp_showHide == true)) {
DialogControlSetVisible(libGDHL_gv_leoricUI.lv_mainPanel, libCore_gv_playerGroupFromPlayer[lp_player], true);
}
else {
DialogControlSendAnimationEvent(libGDHL_gv_leoricUI.lv_mainPanel, libCore_gv_playerGroupFromPlayer[lp_player], "Hide");
}
}
void libGDHL_gf_LeoricUIClearUIForHeroSwap (int lp_player) {
// Automatic Variable Declarations
// Implementation
libGDHL_gf_LeoricUIShowHideCustomDeathOverlay(false, lp_player);
DialogControlSendAnimationEvent(libGDHL_gv_leoricUI.lv_cheatDeathFrame, libCore_gv_playerGroupFromPlayer[lp_player], "SwapHide");
}
void libGDHL_gf_LeoricUIShowHideCustomDeathOverlay (bool lp_showHide, int lp_player) {
// Automatic Variable Declarations
// Implementation
if ((lp_showHide == true)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(lp_player, libUIUI_ge_FullscreenOverlayPriorities_Death, (CatalogFieldValueGet(c_gameCatalogHero, "Leoric", "CustomDeathOverlayPath", lp_player)), "LeoricUndying");
}
else {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(lp_player, (CatalogFieldValueGet(c_gameCatalogHero, "Leoric", "CustomDeathOverlayPath", lp_player)), "LeoricUndying");
}
}
void libGDHL_gf_HeroLostVikingsIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroLostVikingsTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroLostVikingsTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyNPCProcListener, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyUsed, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyScoreReset, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyAddStacksonCooldownReset, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingHoard, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsSpinToWin, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsSpawn, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsDebugSwap, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingDies, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingRemoved, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsUnderAttackPing, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsUnderAttackUI, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsXPGain, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsBehaviorTalentGained, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsMoonwellRedistribution, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingEntersStasis, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingsLeavesStasis, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsUnitSelected, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsUnitDeselected, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsUseTransport, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsRallyCast, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsRallyFinishCancel, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsRallySounds, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsPlayAgainComplete, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsPlayAgainForceGhostFacingPlacement, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsCheckpointTimerPauseinTimeStop, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidSelection, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidEndsResetControlGroups, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidExpiration, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsHideVikingsOn, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsAbathurClone, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidSelection, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidExpiration, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsOlafTheStout, true);
}
}
void libGDHL_gf_HeroLostVikingsDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroLostVikingsTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroLostVikingsTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroLostVikingsTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroLostVikingsTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyNPCProcListener, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyUsed, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyScoreReset, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyAddStacksonCooldownReset, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingHoard, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsSpinToWin, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsSpawn, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsDebugSwap, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingDies, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingRemoved, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsUnderAttackPing, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsUnderAttackUI, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsXPGain, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsBehaviorTalentGained, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsUnitControllerUpdate, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsMoonwellRedistribution, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingEntersStasis, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingsLeavesStasis, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsUnitSelected, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsUnitDeselected, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsUseTransport, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsRallyCast, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsRallyFinishCancel, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsRallySounds, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsPlayAgainComplete, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsPlayAgainForceGhostFacingPlacement, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsCheckpointTimerPauseinTimeStop, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsCheckpointReachedTimerCountdown, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidSelection, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidEndsResetControlGroups, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidExpiration, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsHideVikingsOn, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsAbathurClone, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidSelection, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidExpiration, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsOlafTheStout, false);
}
}
void libGDHL_gf_VikingBriberyProc (int lp_killingPlayer, unit lp_minion) {
// Variable Declarations
unit lv_vikingUnit;
// Automatic Variable Declarations
unitgroup auto332CD45C_g;
int auto332CD45C_u;
unit auto332CD45C_var;
// Variable Initialization
// Implementation
if ((PlayerHasTalent(lp_killingPlayer, "LostVikingsMasteryVikingBribery") == true) && (UnitTypeTestAttribute(UnitGetType(lp_minion), c_unitAttributeSummoned) == false) && (UnitTypeTestAttribute(UnitGetType(lp_minion), c_unitAttributeStructure) == false) && (UnitTypeTestAttribute(UnitGetType(lp_minion), c_unitAttributeCreep) == false) && (UnitTypeTestAttribute(UnitGetType(lp_minion), c_unitAttributeMapBoss) == false) && (UnitTypeTestAttribute(UnitGetType(lp_minion), c_unitAttributeMapCreature) == false) && (UnitTypeTestAttribute(UnitGetType(lp_minion), c_unitAttributeUser1) == false) && (UnitTypeTestAttribute(UnitGetType(lp_minion), c_unitAttributeMinion) == true)) {
lv_vikingUnit = libGame_gv_players[lp_killingPlayer].lv_heroUnit;
UnitBehaviorAdd(lv_vikingUnit, "LostVikingsVikingBriberyStacks", lv_vikingUnit, 1);
auto332CD45C_g = libGame_gv_players[lp_killingPlayer].lv_heroUnitGroup;
auto332CD45C_u = UnitGroupCount(auto332CD45C_g, c_unitCountAll);
for (;; auto332CD45C_u -= 1) {
auto332CD45C_var = UnitGroupUnitFromEnd(auto332CD45C_g, auto332CD45C_u);
if (auto332CD45C_var == null) { break; }
UnitBehaviorAdd(auto332CD45C_var, "LostVikingsVikingBriberyVisualToken", auto332CD45C_var, 1);
UnitCreateEffectUnit(auto332CD45C_var, "LostVikingsVikingBriberyIncreaseVisualTokenCounter", auto332CD45C_var);
}
PlayerScoreValueSetFromInt(lp_killingPlayer, "LostVikingsVikingBriberyStackScore", UnitBehaviorCount(lv_vikingUnit, "LostVikingsVikingBriberyStacks"));
if ((ModI(UnitBehaviorCount(lv_vikingUnit, "LostVikingsVikingBriberyStacks"), 40) == 0)) {
PlayerAddChargeUsed(lp_killingPlayer, "Abil/LostVikingsVikingBribery", -1.0);
}
}
}
void libGDHL_gf_VikingDownGiveCarryBehaviorsToGravestone (unit lp_viking, unit lp_gravestone) {
// Automatic Variable Declarations
// Implementation
if ((UnitHasBehavior2(lp_viking, "Ultimate2Unlocked") == true)) {
UnitBehaviorAdd(lp_gravestone, "Ultimate2Unlocked", lp_gravestone, 1);
}
if ((UnitHasBehavior2(lp_viking, "Ultimate1Unlocked") == true)) {
UnitBehaviorAdd(lp_gravestone, "Ultimate1Unlocked", lp_gravestone, 1);
}
if ((UnitHasBehavior2(lp_viking, "LostVikingsSpinToWinCarry") == true)) {
UnitBehaviorAdd(lp_gravestone, "LostVikingsSpinToWinCarry", lp_gravestone, 1);
}
if ((UnitHasBehavior2(lp_viking, "LostVikingsJumpEnabled") == true)) {
UnitBehaviorAdd(lp_gravestone, "LostVikingsJumpEnabled", lp_gravestone, 1);
}
if ((UnitHasBehavior2(lp_viking, "LostVikingsNorseForceEnabled") == true)) {
UnitBehaviorAdd(lp_gravestone, "LostVikingsNorseForceEnabled", lp_gravestone, 1);
}
if ((UnitHasBehavior2(lp_viking, "LostVikingsNordicAttackSquadCarry") == true)) {
UnitBehaviorAdd(lp_gravestone, "LostVikingsNordicAttackSquadCarry", lp_gravestone, 1);
}
if ((UnitHasBehavior2(lp_viking, "LostVikingsVikingBriberyCarryBehavior") == true)) {
UnitBehaviorAdd(lp_gravestone, "LostVikingsVikingBriberyCarryBehavior", lp_gravestone, 1);
}
}
void libGDHL_gf_VikingDownStartRespawnTimer (unit lp_viking, timer lp_respawnTimer, bool lp_modify, fixed lp_modifyNumber, string lp_modifyUnitType) {
// Variable Declarations
timer lv_timer;
int lv_lVPlayer;
unit lv_heroUnit;
int lv_heroLevel;
fixed lv_respawnTime;
fixed lv_fastRespawnTime;
// Automatic Variable Declarations
string autoDFDBF234_val;
// Variable Initialization
lv_timer = TimerCreate();
// Implementation
lv_lVPlayer = UnitGetOwner(lp_viking);
lv_heroLevel = UnitLevel(lp_viking);
if ((lp_modify == false)) {
UnitSetState(lv_heroUnit, c_unitStateStatusBar, false);
if ((PlayerHasTalent(lv_lVPlayer, "LostVikingsMasteryTheSequel") == true)) {
lv_respawnTime = libCore_gf_HeroDeathTime(lv_lVPlayer, lv_heroLevel);
lv_respawnTime -= (lv_respawnTime * libGDHL_gv_data_LostVikingsTheSequelDeathTimeReduction);
}
else {
lv_respawnTime = libCore_gf_HeroDeathTime(lv_lVPlayer, lv_heroLevel);
lv_respawnTime -= (lv_respawnTime * libGDHL_gv_data_LostVikingsDeathTimeReduction);
}
TimerStart(lp_respawnTimer, lv_respawnTime, false, c_timeGame);
libGame_gv_players[lv_lVPlayer].lv_timeSpentDead += lv_respawnTime;
libGDHL_gf_LostVikingsUIStartStopRespawnTimerOverlay(lp_viking, lv_lVPlayer, false);
}
else {
if (((lp_modifyUnitType == "HeroOlaf") || (lp_modifyUnitType == "HeroErik") || (lp_modifyUnitType == "HeroBaleog"))) {
autoDFDBF234_val = lp_modifyUnitType;
if (autoDFDBF234_val == "HeroOlaf") {
lv_timer = libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafDeathTimer;
}
else if (autoDFDBF234_val == "HeroErik") {
lv_timer = libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikDeathTimer;
}
else if (autoDFDBF234_val == "HeroBaleog") {
lv_timer = libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogDeathTimer;
}
else {
}
}
libNtve_gf_StopTimer(lv_timer);
TimerStart(lv_timer, lp_modifyNumber, false, c_timeGame);
libGame_gv_players[lv_lVPlayer].lv_timeSpentDead += lp_modifyNumber;
libGDHL_gf_LostVikingsUIStartStopRespawnTimerOverlay(lp_viking, lv_lVPlayer, false);
}
}
void libGDHL_gf_VikingDownRespawnVikingforPlayer (unit lp_viking) {
// Variable Declarations
unit lv_itUnit;
unit lv_cairn;
int lv_i;
int lv_lVPlayer;
string lv_downedBehavior;
point lv_rallyPoint;
int lv_itViking;
unitgroup lv_vikingUnitGroupIgnoringController;
unit lv_itLivingViking;
// Automatic Variable Declarations
string auto33865564_val;
unitgroup autoC8749EF3_g;
int autoC8749EF3_u;
string auto55027BFA_val;
const int auto45A57E28_ae = libUIUI_gv_uI_MaxHeroGroupStatusFrames;
const int auto45A57E28_ai = 1;
// Variable Initialization
lv_vikingUnitGroupIgnoringController = UnitGroupEmpty();
// Implementation
lv_lVPlayer = UnitGetOwner(lp_viking);
if ((lv_lVPlayer > libCore_gv_bALMaxEnginePlayerCount)) {
return ;
}
libGame_gf_SendEventHeroRespawn(lv_lVPlayer, lp_viking);
libGame_gv_players[lv_lVPlayer].lv_isDead = false;
UnitSetState(libGame_gv_players[lv_lVPlayer].lv_heroUnit, c_unitStateStatusBar, false);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_respawnPolarOffset -= 120.0;
UnitBehaviorRemove(lp_viking, "Dead", 1);
UnitBehaviorRemove(lp_viking, "DeadMechanics", 1);
UnitBehaviorRemove(lp_viking, "LostVikingsVikingDowned", 1);
UnitRevive(lp_viking);
UnitSetPropertyFixed(lp_viking, c_unitPropLifePercent, 100.0);
libNtve_gf_SendActorMessageToUnit(lp_viking, "Signal Respawn");
UnitGroupAddUnitGroup(lv_vikingUnitGroupIgnoringController, libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup);
UnitGroupRemove(lv_vikingUnitGroupIgnoringController, libGame_gv_players[lv_lVPlayer].lv_heroUnit);
if ((UnitGroupCount(lv_vikingUnitGroupIgnoringController, c_unitCountAlive) > 1)) {
libGame_gv_players[lv_lVPlayer].lv_cameraPlayerUnitGroupToFocusOn = null;
libGame_gf_CameraUpdateCameraForPlayer(lv_lVPlayer);
}
else {
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Add, libGDHL_gv_aIHeroDelegateTokenValueAnyVikingAliveValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueAnyVikingAliveValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroDead);
}
if ((libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_boat != null)) {
UISetFrameVisible(libCore_gv_playerGroupFromPlayer[lv_lVPlayer], c_syncFrameTypeControlGroupPanel, true);
}
auto33865564_val = UnitGetType(lp_viking);
if (auto33865564_val == "HeroErik") {
lv_downedBehavior = "LostVikingsErikDowned";
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_erikDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], "UnitRevived");
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_allDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], "UnitRevivedPingPongStop");
if ((UnitIsSelected(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikGravestone, lv_lVPlayer) == true)) {
UnitSelect(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikGravestone, lv_lVPlayer, false);
UnitSelect(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erik, lv_lVPlayer, true);
}
UnitControlGroupClear(lv_lVPlayer, 3);
UnitControlGroupAddUnit(lv_lVPlayer, 3, lp_viking);
UnitControlGroupRemoveUnit(lv_lVPlayer, 4, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikGravestone);
if ((PlayerHasTalent(lv_lVPlayer, "LostVikingsMasterySpyGames") == true)) {
UnitBehaviorAdd(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erik, "SpyGamesCooldown", libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erik, 1);
}
UnitCreateEffectUnit(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikGravestone, "LostVikingsGravestoneCopyOrders", libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erik);
UnitRemove(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikGravestone);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikGravestone = null;
}
else if (auto33865564_val == "HeroBaleog") {
lv_downedBehavior = "LostVikingsBaleogDowned";
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_baleogDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], "UnitRevived");
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_allDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], "UnitRevivedPingPongStop");
if ((UnitIsSelected(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogGravestone, lv_lVPlayer) == true)) {
UnitSelect(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogGravestone, lv_lVPlayer, false);
UnitSelect(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleog, lv_lVPlayer, true);
}
UnitControlGroupClear(lv_lVPlayer, 2);
UnitControlGroupAddUnit(lv_lVPlayer, 2, lp_viking);
UnitControlGroupRemoveUnit(lv_lVPlayer, 4, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogGravestone);
UnitCreateEffectUnit(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogGravestone, "LostVikingsGravestoneCopyOrders", libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleog);
UnitRemove(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogGravestone);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogGravestone = null;
}
else if (auto33865564_val == "HeroOlaf") {
lv_downedBehavior = "LostVikingsOlafDowned";
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_olafDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], "UnitRevived");
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_allDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], "UnitRevivedPingPongStop");
if ((UnitIsSelected(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafGravestone, lv_lVPlayer) == true)) {
UnitSelect(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafGravestone, lv_lVPlayer, false);
UnitSelect(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olaf, lv_lVPlayer, true);
}
UnitControlGroupClear(lv_lVPlayer, 1);
UnitControlGroupAddUnit(lv_lVPlayer, 1, lp_viking);
UnitControlGroupRemoveUnit(lv_lVPlayer, 4, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafGravestone);
UnitCreateEffectUnit(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafGravestone, "LostVikingsGravestoneCopyOrders", libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olaf);
UnitRemove(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafGravestone);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafGravestone = null;
}
else {
}
autoC8749EF3_g = libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup;
autoC8749EF3_u = UnitGroupCount(autoC8749EF3_g, c_unitCountAll);
for (;; autoC8749EF3_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(autoC8749EF3_g, autoC8749EF3_u);
if (lv_itUnit == null) { break; }
UnitBehaviorRemove(lv_itUnit, lv_downedBehavior, 1);
}
if ((UnitBehaviorCount(lp_viking, "LostVikingsCheckpointReachedCarry") == 1)) {
lv_cairn = UnitGroupUnit(UnitGroup("LostVikingsPlayAgainCairn", lv_lVPlayer, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1), 1);
if ((lv_cairn != null)) {
UnitCreateEffectPoint(lp_viking, "LostVikingsPlayAgainTeleport", PointWithOffsetPolar(UnitGetPosition(lv_cairn), 2.5, 10.0));
}
}
MinimapPing(libCore_gv_playerGroupFromPlayer[lv_lVPlayer], UnitGetPosition(lp_viking), 2.0, Color(100.00, 0.00, 0.00));
auto55027BFA_val = UnitGetType(lp_viking);
if (auto55027BFA_val == "HeroOlaf") {
SoundPlayForPlayer(SoundLink("OlafBase_Revive", c_soundIndexAny), lv_lVPlayer, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], 100.0, 0.0);
TimerPause(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafDeathTimer, true);
}
else if (auto55027BFA_val == "HeroBaleog") {
SoundPlayForPlayer(SoundLink("BaleogBase_Revive", c_soundIndexAny), lv_lVPlayer, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], 100.0, 0.0);
TimerPause(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogDeathTimer, true);
}
else if (auto55027BFA_val == "HeroErik") {
SoundPlayForPlayer(SoundLink("ErikBase_Resurrected", c_soundIndexAny), lv_lVPlayer, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], 100.0, 0.0);
TimerPause(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikDeathTimer, true);
}
else {
}
libUIUI_gf_FullscreenOverlaysShowHideDeathOverlay(false, lv_lVPlayer);
libGDHL_gf_LostVikingsUIStartStopRespawnTimerOverlay(lp_viking, lv_lVPlayer, true);
lv_itViking = 1;
for ( ; ( (auto45A57E28_ai >= 0 && lv_itViking <= auto45A57E28_ae) || (auto45A57E28_ai < 0 && lv_itViking >= auto45A57E28_ae) ) ; lv_itViking += auto45A57E28_ai ) {
if ((libUIUI_gv_uIHeroTrackerArrows.lv_unit[lv_itViking] == lp_viking)) {
libNtve_gf_SetDialogItemImage(libUIUI_gv_uIHeroTrackerArrows.lv_portraitImage[lv_itViking], (CatalogFieldValueGet(c_gameCatalogActor, UnitGetType(lp_viking), "HeroIcon", lv_lVPlayer)), libCore_gv_playerGroupFromPlayer[lv_lVPlayer]);
break;
}
}
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Add, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroDead);
}
trigger auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_Trigger = null;
unit auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_lp_downedViking;
int auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_lp_killingPlayer;
void libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements (unit lp_downedViking, int lp_killingPlayer) {
auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_lp_downedViking = lp_downedViking;
auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_lp_killingPlayer = lp_killingPlayer;
if (auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_Trigger == null) {
auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_Trigger = TriggerCreate("auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_TriggerFunc");
}
TriggerExecute(auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_Trigger, false, false);
}
bool auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_TriggerFunc (bool testConds, bool runActions) {
unit lp_downedViking = auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_lp_downedViking;
int lp_killingPlayer = auto_libGDHL_gf_VikingDownUpdateStatsAwardXPMakeAnnouncements_lp_killingPlayer;
// Variable Declarations
int lv_itPlayer;
int lv_itTeamPlayer;
int lv_computerTeam;
int lv_deadPlayer;
int lv_deadPlayerTeam;
playergroup lv_killingTeamGroup;
playergroup lv_awardGroup;
playergroup lv_deadPlayerTeamGroup;
playergroup lv_deadPlayerTeamGroupMinusDeadPlayer;
playergroup lv_killingGroup;
fixed lv_xPGranted;
int lv_killingFaction;
// Automatic Variable Declarations
playergroup autoBFFA6DE7_g;
// Variable Initialization
lv_killingTeamGroup = PlayerGroupEmpty();
lv_awardGroup = PlayerGroupEmpty();
lv_deadPlayerTeamGroup = PlayerGroupEmpty();
lv_deadPlayerTeamGroupMinusDeadPlayer = PlayerGroupEmpty();
lv_killingGroup = PlayerGroupEmpty();
// Implementation
if ((libGame_gv_heroDeath_UpdateStats == false)) {
return true;
}
lv_deadPlayer = UnitGetOwner(lp_downedViking);
lv_deadPlayerTeam = libGame_gf_TeamNumberOfPlayer(lv_deadPlayer);
UIAlert("YourHeroHasDied", lv_deadPlayer, StringToText(""), null);
lv_deadPlayerTeamGroup = libGame_gf_AlliedPlayerGroupOfPlayer(lv_deadPlayer);
lv_killingTeamGroup = libGame_gf_EnemyPlayerGroupOfPlayer(lv_deadPlayer);
lv_computerTeam = libGame_gv_teams[libGame_gf_EnemyTeamNumberOfPlayer(lv_deadPlayer)].lv_nPCPlayer;
if ((lv_deadPlayerTeam == libGame_gv_teamOrderIndex_C)) {
lv_killingFaction = libGame_ge_Faction_Chaos;
}
else {
lv_killingFaction = libGame_ge_Faction_Order;
}
lv_deadPlayerTeamGroupMinusDeadPlayer = PlayerGroupCopy(lv_deadPlayerTeamGroup);
PlayerGroupRemove(lv_deadPlayerTeamGroupMinusDeadPlayer, lv_deadPlayer);
autoBFFA6DE7_g = lv_killingTeamGroup;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(autoBFFA6DE7_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
if ((lv_itPlayer != libCore_gv_cOMPUTER_TeamOrder) && (lv_itPlayer != libCore_gv_cOMPUTER_TeamChaos)) {
PlayerGroupAdd(lv_awardGroup, lv_itPlayer);
if (((lv_itPlayer == lp_killingPlayer) || ((GameGetMissionTime() - libGame_gv_players[lv_deadPlayer].lv_lastTimeHeroWasWithinXPRadius[lv_itPlayer]) <= libCore_gv_bALHeroKillCreditTimeWindow) || (libGame_gv_players[lv_deadPlayer].lv_recentPlayerDamageReceived[lv_itPlayer] > 0.0))) {
PlayerGroupAdd(lv_killingGroup, lv_itPlayer);
}
}
}
libGame_gf_HeroDeathAwardXP(lp_killingPlayer, lp_downedViking, lv_awardGroup, lv_killingGroup, true);
libGame_gf_HeroDeathUpdatePlayerStats(lp_downedViking, lp_killingPlayer, lv_killingTeamGroup, lv_killingGroup);
libGame_gf_HeroDeathDeadTeamAnnouncements(lp_downedViking, lv_deadPlayerTeamGroup, lv_killingFaction);
libGame_gv_players[lv_deadPlayer].lv_killingSpreeCount = 0;
libGame_gf_ScoreValuesReportIntegerValueAndLog(lv_deadPlayer, "KillStreak", libGame_gv_players[lv_deadPlayer].lv_killingSpreeCount);
return true;
}
void libGDHL_gf_HeroLostVikingsPlayAgainTeleportViking (unit lp_vikingToTeleport, point lp_locationToTeleportToo) {
// Automatic Variable Declarations
// Implementation
if ((UnitIsAlive(lp_vikingToTeleport) == true)) {
UnitCreateEffectPointWithSource(lp_vikingToTeleport, "LostVikingsPlayAgainTeleport", PointWithOffsetPolar(lp_locationToTeleportToo, 0.0, 0.0), c_gameCatalogAbil, "LostVikingsPlayAgain");
}
else {
Wait(0.125, c_timeGame);
UnitCreateEffectPointWithSource(lp_vikingToTeleport, "LostVikingsPlayAgainTeleport", PointWithOffsetPolar(lp_locationToTeleportToo, 0.0, 0.0), c_gameCatalogAbil, "LostVikingsPlayAgain");
}
}
void libGDHL_gf_LostVikingsHeroConsoleUnitStatusBarsSetUnitForBars (int lp_player) {
// Automatic Variable Declarations
// Implementation
libNtve_gf_SetDialogItemUnit(libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafCastChannelBarFrame, libGDHL_gv_lostVikingsPlayer[lp_player].lv_olaf, libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafCastChannelBarFrame, libCore_gv_playerGroupFromPlayer[lp_player], true);
libNtve_gf_SetDialogItemUnit(libGDHL_gv_lostVikingsUI.lv_lostVikingsErikCastChannelBarFrame, libGDHL_gv_lostVikingsPlayer[lp_player].lv_erik, libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_lostVikingsErikCastChannelBarFrame, libCore_gv_playerGroupFromPlayer[lp_player], true);
libNtve_gf_SetDialogItemUnit(libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogCastChannelBarFrame, libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleog, libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogCastChannelBarFrame, libCore_gv_playerGroupFromPlayer[lp_player], true);
}
void libGDHL_gf_LostVikingsUISetupUIForPlayer (int lp_player) {
// Automatic Variable Declarations
// Implementation
while (!((libNtve_gf_PlayerInCinematicMode(lp_player) == false))) {
Wait(0.125, c_timeGame);
}
UISetFrameVisible(libCore_gv_playerGroupFromPlayer[lp_player], c_syncFrameTypeControlGroupPanel, true);
DialogControlSetVisible(libUIUI_gv_uIHeroConsole.lv_heroStatsFrame, libCore_gv_playerGroupFromPlayer[lp_player], false);
libNtve_gf_SetDialogItemUnit(libGDHL_gv_lostVikingsUI.lv_erikUnitStatusFrame, libGDHL_gv_lostVikingsPlayer[lp_player].lv_erik, libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemUnit(libGDHL_gv_lostVikingsUI.lv_baleogUnitStatusFrame, libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleog, libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemUnit(libGDHL_gv_lostVikingsUI.lv_olafUnitStatusFrame, libGDHL_gv_lostVikingsPlayer[lp_player].lv_olaf, libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemUnit(libGDHL_gv_lostVikingsUI.lv_lostVikingsErikBehaviorChannelBarFrame, libGDHL_gv_lostVikingsPlayer[lp_player].lv_erik, libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemUnit(libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogBehaviorChannelBarFrame, libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleog, libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemUnit(libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafBehaviorChannelBarFrame, libGDHL_gv_lostVikingsPlayer[lp_player].lv_olaf, libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlHookupUnitStatus(c_triggerControlTypeImage, "HeroUnitStatusParentFrame/BackgroundSideGlowOwner/MultiBackground", libGDHL_gv_lostVikingsPlayer[lp_player].lv_erik);
libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikSelectionIndicator = DialogControlLastCreated();
DialogControlHookupUnitStatus(c_triggerControlTypeImage, "HeroUnitStatusParentFrame/BackgroundSideGlowOwner/MultiBackground", libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleog);
libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogSelectionIndicator = DialogControlLastCreated();
DialogControlHookupUnitStatus(c_triggerControlTypeImage, "HeroUnitStatusParentFrame/BackgroundSideGlowOwner/MultiBackground", libGDHL_gv_lostVikingsPlayer[lp_player].lv_olaf);
libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafSelectionIndicator = DialogControlLastCreated();
DialogControlHookupUnitStatus(c_triggerControlTypeImage, "HeroUnitStatusParentFrame/VikingIdentityFrame/SelectionStatusIcon", libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleog);
libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogIdentityImage = DialogControlLastCreated();
DialogControlHookupUnitStatus(c_triggerControlTypeImage, "HeroUnitStatusParentFrame/VikingIdentityFrame/SelectionStatusIcon", libGDHL_gv_lostVikingsPlayer[lp_player].lv_erik);
libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikIdentityImage = DialogControlLastCreated();
DialogControlHookupUnitStatus(c_triggerControlTypeImage, "HeroUnitStatusParentFrame/VikingIdentityFrame/SelectionStatusIcon", libGDHL_gv_lostVikingsPlayer[lp_player].lv_olaf);
libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafIdentityImage = DialogControlLastCreated();
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_heroStatsFrame, libCore_gv_playerGroupFromPlayer[lp_player], true);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_lostVikingsIconFrame, libCore_gv_playerGroupFromPlayer[lp_player], true);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_lostVikingsChannelFrame, libCore_gv_playerGroupFromPlayer[lp_player], true);
}
void libGDHL_gf_LostVikingsUIUnSetupUIForPlayer (int lp_player) {
// Automatic Variable Declarations
// Implementation
UISetFrameVisible(libCore_gv_playerGroupFromPlayer[lp_player], c_syncFrameTypeControlGroupPanel, false);
DialogControlSetVisible(libUIUI_gv_uIHeroConsole.lv_heroStatsFrame, libCore_gv_playerGroupFromPlayer[lp_player], true);
libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikSelectionIndicator = c_invalidDialogControlId;
libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogSelectionIndicator = c_invalidDialogControlId;
libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafSelectionIndicator = c_invalidDialogControlId;
libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikIdentityImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogIdentityImage = c_invalidDialogControlId;
libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafIdentityImage = c_invalidDialogControlId;
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_heroStatsFrame, libCore_gv_playerGroupFromPlayer[lp_player], false);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_lostVikingsIconFrame, libCore_gv_playerGroupFromPlayer[lp_player], false);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_lostVikingsChannelFrame, libCore_gv_playerGroupFromPlayer[lp_player], false);
}
void libGDHL_gf_LostVikingsUIUpdateUIStateForSingleViking (int lp_player, unit lp_viking, int lp_state) {
// Variable Declarations
string lv_vikingUnitType;
string lv_heroConsoleFontStyle;
bool lv_downedLabelVisible;
text lv_downedLabelText;
bool lv_hPLabelVisible;
bool lv_deadBoolean;
color lv_overheadSelectionStatusColor;
fixed lv_respawnTimer;
fixed lv_animationSpeed;
// Automatic Variable Declarations
int auto738A04F1_val;
string auto1B1D9AB8_val;
// Variable Initialization
lv_downedLabelVisible = true;
lv_hPLabelVisible = true;
lv_overheadSelectionStatusColor = Color(0,0,0);
// Implementation
lv_vikingUnitType = UnitGetType(lp_viking);
lv_downedLabelText = StringExternal("Param/Value/lib_GDHL_EE23203C");
auto738A04F1_val = lp_state;
if (auto738A04F1_val == libGDHL_ge_LostVikingsUIState_None) {
lv_heroConsoleFontStyle = "Storm_VitalsLabel_R_Small";
lv_downedLabelVisible = false;
lv_hPLabelVisible = true;
lv_overheadSelectionStatusColor = Color(33.33, 32.55, 78.43);
lv_deadBoolean = false;
}
else if (auto738A04F1_val == libGDHL_ge_LostVikingsUIState_Downed) {
lv_heroConsoleFontStyle = "Storm_VitalsLabel_R_Small_Downed";
lv_downedLabelVisible = true;
lv_hPLabelVisible = false;
lv_overheadSelectionStatusColor = Color(33.33, 32.55, 78.43);
lv_deadBoolean = true;
}
else if (auto738A04F1_val == libGDHL_ge_LostVikingsUIState_Selected) {
lv_heroConsoleFontStyle = "Storm_VitalsLabel_R_Small_Selected";
lv_downedLabelVisible = false;
lv_hPLabelVisible = true;
lv_overheadSelectionStatusColor = Color(100.00, 100.00, 100.00);
lv_deadBoolean = false;
}
else {
}
auto1B1D9AB8_val = lv_vikingUnitType;
if (auto1B1D9AB8_val == "HeroErik") {
libNtve_gf_SetDialogItemStyle(libGDHL_gv_lostVikingsUI.lv_erikHPLabel, lv_heroConsoleFontStyle, libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemStyle(libGDHL_gv_lostVikingsUI.lv_erikNameLabel, lv_heroConsoleFontStyle, libCore_gv_playerGroupFromPlayer[lp_player]);
TextExpressionSetToken("Param/Expression/lib_GDHL_A73772DD", "A", lv_downedLabelText);
TextExpressionSetToken("Param/Expression/lib_GDHL_A73772DD", "B", FixedToText(TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikDeathTimer), 0));
libNtve_gf_SetDialogItemText(libGDHL_gv_lostVikingsUI.lv_erikDownedLabel, TextExpressionAssemble("Param/Expression/lib_GDHL_A73772DD"), libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_erikDownedLabel, libCore_gv_playerGroupFromPlayer[lp_player], lv_downedLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_erikDeadImage, libCore_gv_playerGroupFromPlayer[lp_player], lv_downedLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_erikUnselectedIconImage, libCore_gv_playerGroupFromPlayer[lp_player], lv_hPLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_erikHPLabel, libCore_gv_playerGroupFromPlayer[lp_player], lv_hPLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_erikUnitStatusFrame, libCore_gv_playerGroupFromPlayer[lp_player], lv_hPLabelVisible);
if ((libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikSelectionIndicator != c_invalidDialogControlId)) {
libNtve_gf_SetDialogItemColor(libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikSelectionIndicator, lv_overheadSelectionStatusColor, libCore_gv_playerGroupFromPlayer[lp_player]);
}
if ((libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikIdentityImage != c_invalidDialogControlId)) {
if ((lp_state == libGDHL_ge_LostVikingsUIState_Selected)) {
libNtve_gf_SetDialogItemImage(libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikIdentityImage, "@UI/VikingsErikIconSelected", libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_erikSelectedIconImage, libCore_gv_playerGroupFromPlayer[lp_player], true);
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_erikDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lp_player], "UnitRevivedPingPongStop");
}
else {
libNtve_gf_SetDialogItemImage(libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikIdentityImage, "@UI/VikingsErikIconDeselected", libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_erikSelectedIconImage, libCore_gv_playerGroupFromPlayer[lp_player], false);
}
}
}
else if (auto1B1D9AB8_val == "HeroBaleog") {
libNtve_gf_SetDialogItemStyle(libGDHL_gv_lostVikingsUI.lv_baleogHPLabel, lv_heroConsoleFontStyle, libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemStyle(libGDHL_gv_lostVikingsUI.lv_baleogNameLabel, lv_heroConsoleFontStyle, libCore_gv_playerGroupFromPlayer[lp_player]);
TextExpressionSetToken("Param/Expression/lib_GDHL_5D760E1B", "A", lv_downedLabelText);
TextExpressionSetToken("Param/Expression/lib_GDHL_5D760E1B", "B", FixedToText(TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogDeathTimer), 0));
libNtve_gf_SetDialogItemText(libGDHL_gv_lostVikingsUI.lv_baleogDownedLabel, TextExpressionAssemble("Param/Expression/lib_GDHL_5D760E1B"), libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_baleogDownedLabel, libCore_gv_playerGroupFromPlayer[lp_player], lv_downedLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_baleogDeadImage, libCore_gv_playerGroupFromPlayer[lp_player], lv_downedLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_baleogUnselectedIconImage, libCore_gv_playerGroupFromPlayer[lp_player], lv_hPLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_baleogHPLabel, libCore_gv_playerGroupFromPlayer[lp_player], lv_hPLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_baleogUnitStatusFrame, libCore_gv_playerGroupFromPlayer[lp_player], lv_hPLabelVisible);
if ((libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogSelectionIndicator != c_invalidDialogControlId)) {
libNtve_gf_SetDialogItemColor(libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogSelectionIndicator, lv_overheadSelectionStatusColor, libCore_gv_playerGroupFromPlayer[lp_player]);
}
if ((libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogIdentityImage != c_invalidDialogControlId)) {
if ((lp_state == libGDHL_ge_LostVikingsUIState_Selected)) {
libNtve_gf_SetDialogItemImage(libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogIdentityImage, "@UI/VikingsBaleogIconSelected", libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_baleogSelectedIconImage, libCore_gv_playerGroupFromPlayer[lp_player], true);
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_baleogDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lp_player], "UnitRevivedPingPongStop");
}
else {
libNtve_gf_SetDialogItemImage(libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogIdentityImage, "@UI/VikingsBaleogIconDeselected", libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_baleogSelectedIconImage, libCore_gv_playerGroupFromPlayer[lp_player], false);
}
}
}
else if (auto1B1D9AB8_val == "HeroOlaf") {
libNtve_gf_SetDialogItemStyle(libGDHL_gv_lostVikingsUI.lv_olafHPLabel, lv_heroConsoleFontStyle, libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemStyle(libGDHL_gv_lostVikingsUI.lv_olafNameLabel, lv_heroConsoleFontStyle, libCore_gv_playerGroupFromPlayer[lp_player]);
TextExpressionSetToken("Param/Expression/lib_GDHL_823C7595", "A", lv_downedLabelText);
TextExpressionSetToken("Param/Expression/lib_GDHL_823C7595", "B", FixedToText(TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafDeathTimer), 0));
libNtve_gf_SetDialogItemText(libGDHL_gv_lostVikingsUI.lv_olafDownedLabel, TextExpressionAssemble("Param/Expression/lib_GDHL_823C7595"), libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_olafDownedLabel, libCore_gv_playerGroupFromPlayer[lp_player], lv_downedLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_olafDeadImage, libCore_gv_playerGroupFromPlayer[lp_player], lv_downedLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_olafUnselectedIconImage, libCore_gv_playerGroupFromPlayer[lp_player], lv_hPLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_olafHPLabel, libCore_gv_playerGroupFromPlayer[lp_player], lv_hPLabelVisible);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_olafUnitStatusFrame, libCore_gv_playerGroupFromPlayer[lp_player], lv_hPLabelVisible);
if ((libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafSelectionIndicator != c_invalidDialogControlId)) {
libNtve_gf_SetDialogItemColor(libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafSelectionIndicator, lv_overheadSelectionStatusColor, libCore_gv_playerGroupFromPlayer[lp_player]);
}
if ((libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafIdentityImage != c_invalidDialogControlId)) {
if ((lp_state == libGDHL_ge_LostVikingsUIState_Selected)) {
libNtve_gf_SetDialogItemImage(libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafIdentityImage, "@UI/VikingsOlafIconSelected", libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_olafSelectedIconImage, libCore_gv_playerGroupFromPlayer[lp_player], true);
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_olafDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lp_player], "UnitRevivedPingPongStop");
}
else {
libNtve_gf_SetDialogItemImage(libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafIdentityImage, "@UI/VikingsOlafIconDeselected", libCore_gv_playerGroupFromPlayer[lp_player]);
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_olafSelectedIconImage, libCore_gv_playerGroupFromPlayer[lp_player], false);
}
}
}
else {
}
}
void libGDHL_gf_LostVikingsUIUpdateAllSelectionDownedStatusForPlayer (int lp_player) {
// Variable Declarations
unit lv_itUnit;
unitgroup lv_selectedUnits;
int lv_vikingUIState;
// Automatic Variable Declarations
unitgroup autoC650A904_g;
int autoC650A904_u;
// Variable Initialization
lv_selectedUnits = UnitGroupEmpty();
// Implementation
lv_selectedUnits = UnitGroupSelected(lp_player);
autoC650A904_g = libGame_gv_players[lp_player].lv_heroUnitGroup;
autoC650A904_u = UnitGroupCount(autoC650A904_g, c_unitCountAll);
for (;; autoC650A904_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(autoC650A904_g, autoC650A904_u);
if (lv_itUnit == null) { break; }
lv_vikingUIState = libGDHL_ge_LostVikingsUIState_None;
if ((libNtve_gf_UnitGroupIsDead(libNtve_gf_ConvertUnitToUnitGroup(lv_itUnit)) == true)) {
lv_vikingUIState = libGDHL_ge_LostVikingsUIState_Downed;
}
else {
if ((UnitGroupHasUnit(lv_selectedUnits, lv_itUnit) == true)) {
lv_vikingUIState = libGDHL_ge_LostVikingsUIState_Selected;
}
}
libGDHL_gf_LostVikingsUIUpdateUIStateForSingleViking(lp_player, lv_itUnit, lv_vikingUIState);
}
}
void libGDHL_gf_LostVikingsUIStartStopRespawnTimerOverlay (unit lp_unit, int lp_player, bool lp_alive) {
// Variable Declarations
fixed lv_player;
fixed lv_respawnTimer;
fixed lv_animationSpeed;
int lv_dialogItem;
// Automatic Variable Declarations
bool auto43390044_val;
string auto76A929F1_val;
string autoE2170B31_val;
// Variable Initialization
lv_dialogItem = c_invalidDialogControlId;
// Implementation
auto43390044_val = lp_alive;
if (auto43390044_val == true) {
auto76A929F1_val = UnitGetType(lp_unit);
if (auto76A929F1_val == "HeroErik") {
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_lostErikDeadImageOverlay, libCore_gv_playerGroupFromPlayer[lp_player], false);
}
else if (auto76A929F1_val == "HeroBaleog") {
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_lostBaleogDeadImageOverlay, libCore_gv_playerGroupFromPlayer[lp_player], false);
}
else if (auto76A929F1_val == "HeroOlaf") {
DialogControlSetVisible(libGDHL_gv_lostVikingsUI.lv_lostOlafDeadImageOverlay, libCore_gv_playerGroupFromPlayer[lp_player], false);
}
else {
}
}
else if (auto43390044_val == false) {
autoE2170B31_val = UnitGetType(lp_unit);
if (autoE2170B31_val == "HeroErik") {
lv_dialogItem = libGDHL_gv_lostVikingsUI.lv_lostErikDeadImageOverlay;
lv_respawnTimer = TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_player].lv_erikDeathTimer);
}
else if (autoE2170B31_val == "HeroBaleog") {
lv_dialogItem = libGDHL_gv_lostVikingsUI.lv_lostBaleogDeadImageOverlay;
lv_respawnTimer = TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleogDeathTimer);
}
else if (autoE2170B31_val == "HeroOlaf") {
lv_dialogItem = libGDHL_gv_lostVikingsUI.lv_lostOlafDeadImageOverlay;
lv_respawnTimer = TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_player].lv_olafDeathTimer);
}
else {
}
DialogControlSetVisible(lv_dialogItem, libCore_gv_playerGroupFromPlayer[lp_player], true);
DialogControlSendAnimationEvent(lv_dialogItem, libCore_gv_playerGroupFromPlayer[lp_player], "Start");
if ((lv_respawnTimer > 0.0)) {
lv_animationSpeed = (100/lv_respawnTimer);
DialogControlSetAnimationSpeed(lv_dialogItem, libCore_gv_playerGroupFromPlayer[lp_player], "ShrinkOverlay", lv_animationSpeed);
}
}
else {
}
}
void libGDHL_gf_LostVikingsConsoleUnitStatusBarsSetChannelBehaviorForBehaviorChannelBar (int lp_player, string lp_behavior, unit lp_unit) {
// Variable Declarations
unit lv_heroUnit;
int lv_behaviorBar;
int lv_behaviorDuration;
int lv_behaviorLabel;
string lv_behavior;
// Automatic Variable Declarations
string auto18D83A0D_val;
string auto6E46D1E8_val;
// Variable Initialization
lv_behaviorBar = c_invalidDialogControlId;
lv_behaviorDuration = c_invalidDialogControlId;
lv_behaviorLabel = c_invalidDialogControlId;
// Implementation
auto18D83A0D_val = UnitGetType(lp_unit);
if (auto18D83A0D_val == "HeroOlaf") {
lv_behaviorBar = libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafBehaviorChannelBarFrame;
lv_behaviorLabel = libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafBehaviorChannelBarBehaviorLabel;
lv_behaviorDuration = libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafBehaviorChannelBarDurationBar;
lv_behavior = libGDHL_gv_lostVikingsUnitStatusBars_BehaviorChannelBarCurrentBehaviorForOlaf[lp_player];
}
else if (auto18D83A0D_val == "HeroBaleog") {
lv_behaviorBar = libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogBehaviorChannelBarFrame;
lv_behaviorLabel = libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogBehaviorChannelBarBehaviorLabel;
lv_behaviorDuration = libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogBehaviorChannelBarDurationBar;
lv_behavior = libGDHL_gv_lostVikingsUnitStatusBars_BehaviorChannelBarCurrentBehaviorForBaleog[lp_player];
}
else if (auto18D83A0D_val == "HeroErik") {
lv_behaviorBar = libGDHL_gv_lostVikingsUI.lv_lostVikingsErikBehaviorChannelBarFrame;
lv_behaviorLabel = libGDHL_gv_lostVikingsUI.lv_lostVikingsErikBehaviorChannelBarBehaviorLabel;
lv_behaviorDuration = libGDHL_gv_lostVikingsUI.lv_lostVikingsErikBehaviorChannelBarDurationBar;
lv_behavior = libGDHL_gv_lostVikingsUnitStatusBars_BehaviorChannelBarCurrentBehaviorForErik[lp_player];
}
else {
}
if ((UnitBehaviorDuration(lp_unit, lp_behavior) >= UnitBehaviorDuration(lp_unit, lv_behavior))) {
auto6E46D1E8_val = UnitGetType(lp_unit);
if (auto6E46D1E8_val == "HeroOlaf") {
libGDHL_gv_lostVikingsUnitStatusBars_BehaviorChannelBarCurrentBehaviorForOlaf[lp_player] = lp_behavior;
}
else if (auto6E46D1E8_val == "HeroBaleog") {
libGDHL_gv_lostVikingsUnitStatusBars_BehaviorChannelBarCurrentBehaviorForBaleog[lp_player] = lp_behavior;
}
else if (auto6E46D1E8_val == "HeroErik") {
libGDHL_gv_lostVikingsUnitStatusBars_BehaviorChannelBarCurrentBehaviorForErik[lp_player] = lp_behavior;
}
else {
}
libNtve_gf_SetDialogItemBehavior(lv_behaviorDuration, lp_behavior, libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemText(lv_behaviorLabel, StringExternal(CatalogFieldValueGet(c_gameCatalogBehavior, lp_behavior, "Name", c_playerAny)), libCore_gv_playerGroupFromPlayer[lp_player]);
}
DialogControlSetVisible(lv_behaviorBar, libCore_gv_playerGroupFromPlayer[lp_player], true);
}
void libGDHL_gf_LostVikingsUpdateObserverUI (int lp_dialogToUpdate, int lp_player, int lp_lostVikingPlayer) {
// Variable Declarations
fixed lv_currentHighestTimer;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
if ((TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_lostVikingPlayer].lv_olafDeathTimer) > 0.0)) {
lv_currentHighestTimer = TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_lostVikingPlayer].lv_olafDeathTimer);
}
if ((TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_lostVikingPlayer].lv_erikDeathTimer) > lv_currentHighestTimer)) {
lv_currentHighestTimer = TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_lostVikingPlayer].lv_erikDeathTimer);
}
if ((TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_lostVikingPlayer].lv_baleogDeathTimer) > lv_currentHighestTimer)) {
lv_currentHighestTimer = TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lp_lostVikingPlayer].lv_baleogDeathTimer);
}
libNtve_gf_SetDialogItemText(lp_dialogToUpdate, FixedToText(lv_currentHighestTimer, 0), libCore_gv_playerGroupFromPlayer[lp_player]);
}
void libGDHL_gf_HeroMalfurionIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroMalfurionTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroMalfurionTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroMalfurionTwilightDreamSilenceTarget, true);
TriggerEnable(libGDHL_gt_HeroMalfurionTwilightDreamSilenceEnd, true);
TriggerEnable(libGDHL_gt_HeroMalfurionInnervateCDR, true);
TriggerEnable(libGDHL_gt_HeroMalfurionTenaciousRootsProc, true);
}
}
void libGDHL_gf_HeroMalfurionDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroMalfurionTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroMalfurionTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroMalfurionTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroMalfurionTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroMalfurionTwilightDreamSilenceTarget, false);
TriggerEnable(libGDHL_gt_HeroMalfurionTwilightDreamSilenceEnd, false);
TriggerEnable(libGDHL_gt_HeroMalfurionInnervateCDR, false);
TriggerEnable(libGDHL_gt_HeroMalfurionTenaciousRootsProc, false);
}
}
void libGDHL_gf_HeroMedicIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroMedicTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroMedicTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipEnRouteOrders, true);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipDeathCleanup, true);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipCreated, true);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipUnloadEvent, true);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipLoadEvent, true);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipOverlay, true);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipCountdownSound, true);
TriggerEnable(libGDHL_gt_HeroMedicMedivacBeingBoarded, true);
TriggerEnable(libGDHL_gt_HeroMedicHealingBeamTargetActions, true);
TriggerEnable(libGDHL_gt_HeroMedicHealingBeamUIReset, true);
TriggerEnable(libGDHL_gt_HeroMedicHearthCleanup, true);
TriggerEnable(libGDHL_gt_HeroMedicHealingBeamAllyRangeVisibility, true);
TriggerEnable(libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc, true);
TriggerEnable(libGDHL_gt_HeroMedicMedivacGameOverHide, true);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipRejoinHideMedivacUI, true);
TriggerEnable(libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOn, true);
TriggerEnable(libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOff, true);
}
}
void libGDHL_gf_HeroMedicDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroMedicTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroMedicTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroMedicTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroMedicTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipEnRouteOrders, false);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipDeathCleanup, false);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipCreated, false);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipUnloadEvent, false);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipLoadEvent, false);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipOverlay, false);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipCountdownSound, false);
TriggerEnable(libGDHL_gt_HeroMedicMedivacBeingBoarded, false);
TriggerEnable(libGDHL_gt_HeroMedicHealingBeamTargetActions, false);
TriggerEnable(libGDHL_gt_HeroMedicHealingBeamUIReset, false);
TriggerEnable(libGDHL_gt_HeroMedicHearthCleanup, false);
TriggerEnable(libGDHL_gt_HeroMedicHealingBeamAllyRangeVisibility, false);
TriggerEnable(libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc, false);
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipRejoinHideMedivacUI, false);
TriggerEnable(libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOn, false);
TriggerEnable(libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOff, false);
}
}
string libGDHL_gf_HealingBeamGetPortraitPathforUnit (unit lp_unit) {
// Automatic Variable Declarations
string auto0CC21378_val;
// Implementation
auto0CC21378_val = UnitGetType(lp_unit);
if (auto0CC21378_val == "HeroChenStorm") {
return "Assets\\Textures\\storm_ui_ingame_targetinfopanel_unit_chen_storm.dds";
}
else if (auto0CC21378_val == "HeroChenEarth") {
return "Assets\\Textures\\storm_ui_ingame_targetinfopanel_unit_chen_earth.dds";
}
else if (auto0CC21378_val == "HeroChenFire") {
return "Assets\\Textures\\storm_ui_ingame_targetinfopanel_unit_chen_fire.dds";
}
else {
return libUIUI_gf_KillLogGetPortraitPathforUnit(lp_unit);
}
}
void libGDHL_gf_MedicUIHealingBeam (bool lp_reset, int lp_medicPlayer, unit lp_healingBeamTarget) {
// Automatic Variable Declarations
// Implementation
if ((lp_reset == true)) {
libNtve_gf_SetDialogItemImage(libGDHL_gv_healingBeamUI.lv_healingBeamTargetPortrait, "Assets\\Textures\\storm_ui_icon_medic_healingbeam.dds", PlayerGroupSingle(lp_medicPlayer));
DialogControlSetVisible(libGDHL_gv_healingBeamUI.lv_healingBeamTargetDisplayName, PlayerGroupSingle(lp_medicPlayer), false);
}
else {
DialogControlSetVisible(libGDHL_gv_healingBeamUI.lv_healingBeamTargetDisplayName, PlayerGroupSingle(lp_medicPlayer), true);
libNtve_gf_SetDialogItemText(libGDHL_gv_healingBeamUI.lv_healingBeamTargetDisplayName, libGDHL_gf_MedicUIUnitDisplayName(lp_healingBeamTarget), PlayerGroupSingle(lp_medicPlayer));
libNtve_gf_SetDialogItemImage(libGDHL_gv_healingBeamUI.lv_healingBeamTargetPortrait, libGDHL_gf_HealingBeamGetPortraitPathforUnit(lp_healingBeamTarget), PlayerGroupSingle(lp_medicPlayer));
}
}
text libGDHL_gf_MedicUIUnitDisplayName (unit lp_unit) {
// Variable Declarations
int lv_unitOwner;
// Automatic Variable Declarations
// Variable Initialization
lv_unitOwner = UnitGetOwner(lp_unit);
// Implementation
if ((UnitGetType(lp_unit) == "HeroCho")) {
return StringExternal("Param/Value/lib_GDHL_1F065CDD");
}
else {
return UnitGetName(lp_unit);
}
}
trigger auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_Trigger = null;
bool auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_lp_showHide;
int auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_lp_player;
void libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI (bool lp_showHide, int lp_player) {
auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_lp_showHide = lp_showHide;
auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_lp_player = lp_player;
if (auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_Trigger == null) {
auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_Trigger = TriggerCreate("auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_TriggerFunc");
}
TriggerExecute(auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_Trigger, false, false);
}
bool auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_TriggerFunc (bool testConds, bool runActions) {
bool lp_showHide = auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_lp_showHide;
int lp_player = auto_libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI_lp_player;
// Automatic Variable Declarations
// Implementation
if ((lp_showHide == true)) {
DialogControlSendAnimationEvent(libGDHL_gv_medicUI.lv_medivacAlert, libCore_gv_playerGroupFromPlayer[lp_player], "Begin");
}
else {
DialogControlSendAnimationEvent(libGDHL_gv_medicUI.lv_medivacAlert, libCore_gv_playerGroupFromPlayer[lp_player], "End");
Wait(0.5, c_timeGame);
DialogControlSendAnimationEvent(libGDHL_gv_medicUI.lv_medivacAlert, libCore_gv_playerGroupFromPlayer[lp_player], "End");
}
return true;
}
void libGDHL_gf_HeroMonkIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroMonkTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroMonkTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroMonkDivinePalmSetLife, true);
TriggerEnable(libGDHL_gt_HeroMonkDivinePalmOverlayOn, true);
TriggerEnable(libGDHL_gt_HeroMonkDivinePalmOverlayOff, true);
TriggerEnable(libGDHL_gt_HeroMonkSevenSidedStrikeTakeFacing, true);
TriggerEnable(libGDHL_gt_HeroMonkSevenSidedStrikeFinishSetFacing, true);
TriggerEnable(libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOn, true);
TriggerEnable(libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOff, true);
}
}
void libGDHL_gf_HeroMonkDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroMonkTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroMonkTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroMonkTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroMonkTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroMonkDivinePalmSetLife, false);
TriggerEnable(libGDHL_gt_HeroMonkDivinePalmOverlayOn, false);
TriggerEnable(libGDHL_gt_HeroMonkDivinePalmOverlayOff, false);
TriggerEnable(libGDHL_gt_HeroMonkSevenSidedStrikeTakeFacing, false);
TriggerEnable(libGDHL_gt_HeroMonkSevenSidedStrikeFinishSetFacing, false);
TriggerEnable(libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOn, false);
TriggerEnable(libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOff, false);
}
}
void libGDHL_gf_HeroMuradinIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroMuradinTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroMuradinTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroMuradinHaymaker, true);
TriggerEnable(libGDHL_gt_HeroMuradinItsHammerTimeOnDeathProc, true);
TriggerEnable(libGDHL_gt_HeroMuradinAvatarApplyHealthBuff, true);
TriggerEnable(libGDHL_gt_HeroMuradinHaymakerGrandSlamTalentProc, true);
TriggerEnable(libGDHL_gt_HeroMuradinFreePiercingStormbolt, true);
TriggerEnable(libGDHL_gt_HeroMuradinResetFreePiercingStormbolt, true);
}
}
void libGDHL_gf_HeroMuradinDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroMuradinTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroMuradinTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroMuradinTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroMuradinTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroMuradinHaymaker, false);
TriggerEnable(libGDHL_gt_HeroMuradinItsHammerTimeOnDeathProc, false);
TriggerEnable(libGDHL_gt_HeroMuradinAvatarApplyHealthBuff, false);
TriggerEnable(libGDHL_gt_HeroMuradinHaymakerGrandSlamTalentProc, false);
TriggerEnable(libGDHL_gt_HeroMuradinFreePiercingStormbolt, false);
TriggerEnable(libGDHL_gt_HeroMuradinResetFreePiercingStormbolt, false);
}
}
void libGDHL_gf_HeroMurkyIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroMurkyTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroMurkyTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroMurkyMurkyEggDies, true);
TriggerEnable(libGDHL_gt_HeroMurkyMurkyDies, true);
TriggerEnable(libGDHL_gt_HeroMurkyReviveWhileEggIsAlive, true);
TriggerEnable(libGDHL_gt_HeroMurkyCreateEggOnSpawn, true);
TriggerEnable(libGDHL_gt_HeroMurkyFishEyeDynamicApplication, true);
TriggerEnable(libGDHL_gt_HeroMurkyRespawnEggCreated, true);
TriggerEnable(libGDHL_gt_HeroMurkyAFishyDealChargeCountProc, true);
TriggerEnable(libGDHL_gt_HeroMurkyEggSpawnsChangeDeathSound, true);
}
}
void libGDHL_gf_HeroMurkyDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroMurkyTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroMurkyTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroMurkyTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroMurkyTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroMurkyMurkyEggDies, false);
TriggerEnable(libGDHL_gt_HeroMurkyMurkyDies, false);
TriggerEnable(libGDHL_gt_HeroMurkyReviveWhileEggIsAlive, false);
TriggerEnable(libGDHL_gt_HeroMurkyCreateEggOnSpawn, false);
TriggerEnable(libGDHL_gt_HeroMurkyFishEyeDynamicApplication, false);
TriggerEnable(libGDHL_gt_HeroMurkyRespawnEggCreated, false);
TriggerEnable(libGDHL_gt_HeroMurkyAFishyDealChargeCountProc, false);
TriggerEnable(libGDHL_gt_HeroMurkyEggSpawnsChangeDeathSound, false);
}
}
void libGDHL_gf_UIHeroSpecificStatusFrameUpdateMurkyEggStatus (int lp_player) {
// Automatic Variable Declarations
// Implementation
DialogControlSetVisible(libGDHL_gv_murkyUI.lv_mainPanel, libCore_gv_playerGroupFromPlayer[lp_player], true);
if ((libGame_gv_heroDeathMurkyRespawnEggs[lp_player] != null)) {
DialogControlSetVisible(libGDHL_gv_murkyUI.lv_eggOk, libCore_gv_playerGroupFromPlayer[lp_player], true);
DialogControlSetVisible(libGDHL_gv_murkyUI.lv_eggBroken, libCore_gv_playerGroupFromPlayer[lp_player], false);
}
else {
DialogControlSetVisible(libGDHL_gv_murkyUI.lv_eggBroken, libCore_gv_playerGroupFromPlayer[lp_player], true);
DialogControlSetVisible(libGDHL_gv_murkyUI.lv_eggOk, libCore_gv_playerGroupFromPlayer[lp_player], false);
}
}
void libGDHL_gf_HeroMurkyCreateEggAtBaseforPlayer (int lp_player) {
// Variable Declarations
unit lv_murkyEgg;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
if ((libGame_gv_teams[libGame_gf_TeamNumberOfPlayer(lp_player)].lv_core != null)) {
UnitCreate(1, "MurkyRespawnEgg", 0, lp_player, libNtve_gf_PointOffsetTowardsPoint(libGame_gv_players[lp_player].lv_spawnPoint, -1.5, UnitGetPosition(libGame_gv_teams[libGame_gf_TeamNumberOfPlayer(lp_player)].lv_core)), 270.0, null);
}
else {
UnitCreate(1, "MurkyRespawnEgg", 0, lp_player, libGame_gv_players[lp_player].lv_spawnPoint, 270.0, null);
}
lv_murkyEgg = UnitLastCreated();
UnitCreateEffectUnit(libGame_gv_players[lp_player].lv_heroUnit, "MurkySpawnEggApplyFishEyeTalentHealthBuff", lv_murkyEgg);
libGame_gv_heroDeathMurkyRespawnEggs[lp_player] = lv_murkyEgg;
libGame_gv_heroDeathMurkyRespawnEggPoint[lp_player] = UnitGetPosition(lv_murkyEgg);
libGDHL_gf_UIHeroSpecificStatusFrameUpdateMurkyEggStatus(lp_player);
}
void libGDHL_gf_HeroMurkyRespawnLogicCheck (int lp_player) {
// Variable Declarations
int lv_randomEgg;
unit lv_murky;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_murky = libGame_gv_players[lp_player].lv_heroUnit;
if ((((libGame_gv_heroDeathMurkyRespawnEggDeathTimeStamp[lp_player] >= (TimerGetElapsed(libGame_gv_gameTimer) - 0.0625)) && (libGame_gv_heroDeathMurkyRespawnEggDeathTimeStamp[lp_player] <= (TimerGetElapsed(libGame_gv_gameTimer) + 0.0625))) || (((libGame_gv_heroDeathMurkyRespawnEggs[lp_player] != null) || (libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lp_player] != null)) && ((UnitIsAlive(libGame_gv_heroDeathMurkyRespawnEggs[lp_player]) == true) || (UnitIsAlive(libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lp_player]) == true))))) {
UnitBehaviorRemove(lv_murky, "HallOfStormsProtectionBuff", 1);
lv_randomEgg = RandomInt(1, 2);
if ((libGame_gv_heroDeathMurkyRespawnEggs[lp_player] == null)) {
libGame_gv_heroDeathMurkyRespawnEggPoint[lp_player] = UnitGetPosition(libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lp_player]);
}
else {
if ((libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lp_player] == null)) {
libGame_gv_heroDeathMurkyRespawnEggPoint[lp_player] = UnitGetPosition(libGame_gv_heroDeathMurkyRespawnEggs[lp_player]);
}
else {
if ((lv_randomEgg == 1)) {
libGame_gv_heroDeathMurkyRespawnEggPoint[lp_player] = UnitGetPosition(libGame_gv_heroDeathMurkyRespawnEggs[lp_player]);
}
else {
libGame_gv_heroDeathMurkyRespawnEggPoint[lp_player] = UnitGetPosition(libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lp_player]);
}
}
}
UnitSetPosition(lv_murky, libGame_gv_heroDeathMurkyRespawnEggPoint[lp_player], false);
UnitCreateEffectUnit(lv_murky, "MurkyReviveShieldApplyShieldBuff", lv_murky);
if ((PlayerHasTalent(lp_player, "MurkyFishEye") == true)) {
UnitCreateEffectUnit(lv_murky, "MurkyFishEyeApplyMountSpeedBuff", lv_murky);
}
}
else {
if ((libGame_gv_heroDeathMurkyRespawnEggs[lp_player] == null) && (libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lp_player] == null)) {
libGDHL_gf_HeroMurkyCreateEggAtBaseforPlayer(lp_player);
}
}
UnitModifyCooldown(lv_murky, "Abil/MurkyRespawnEgg", -60.0, c_cooldownOperationAdd);
}
void libGDHL_gf_HeroNecromancerIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroNecromancerTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroNecromancerTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroNecromancerSkeletonMasteryProc, true);
TriggerEnable(libGDHL_gt_HeroNecromancerSkeletonMasterySpawned, true);
TriggerEnable(libGDHL_gt_HeroNecromancerSkeletonMasteryMaxCountProc, true);
TriggerEnable(libGDHL_gt_HeroNecromancerTrackMortalWoundsDamageReduction, true);
TriggerEnable(libGDHL_gt_HeroNecromancerMortalWoundsDebuffController, true);
}
}
void libGDHL_gf_HeroNecromancerDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroNecromancerTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroNecromancerTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroNecromancerTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroNecromancerTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroNecromancerSkeletonMasteryProc, false);
TriggerEnable(libGDHL_gt_HeroNecromancerSkeletonMasterySpawned, false);
TriggerEnable(libGDHL_gt_HeroNecromancerSkeletonMasteryMaxCountProc, false);
TriggerEnable(libGDHL_gt_HeroNecromancerTrackMortalWoundsDamageReduction, false);
TriggerEnable(libGDHL_gt_HeroNecromancerMortalWoundsDebuffController, false);
}
}
void libGDHL_gf_HeroNovaIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroNovaTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroNovaTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroNovaCovertMissionTakedown, true);
TriggerEnable(libGDHL_gt_HeroNovaCovertMissionVariables, true);
TriggerEnable(libGDHL_gt_HeroNovaTripleTapAbilityUsed, true);
TriggerEnable(libGDHL_gt_HeroNovaTripleTapMissiles, true);
TriggerEnable(libGDHL_gt_HeroNovaTripleTapMissileCleanup, true);
TriggerEnable(libGDHL_gt_HeroNovaHoloCloneSpawned, true);
TriggerEnable(libGDHL_gt_HeroNovaHoloCloneDamageDuplication, true);
TriggerEnable(libGDHL_gt_HeroNovaAntiArmorShellsAttackCooldownController, true);
}
}
void libGDHL_gf_HeroNovaDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroNovaTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroNovaTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroNovaTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroNovaTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroNovaCovertMissionTakedown, false);
TriggerEnable(libGDHL_gt_HeroNovaCovertMissionVariables, false);
TriggerEnable(libGDHL_gt_HeroNovaTripleTapAbilityUsed, false);
TriggerEnable(libGDHL_gt_HeroNovaTripleTapMissiles, false);
TriggerEnable(libGDHL_gt_HeroNovaTripleTapMissileCleanup, false);
TriggerEnable(libGDHL_gt_HeroNovaHoloCloneSpawned, false);
TriggerEnable(libGDHL_gt_HeroNovaHoloCloneDamageDuplication, false);
TriggerEnable(libGDHL_gt_HeroNovaAntiArmorShellsAttackCooldownController, false);
}
}
void libGDHL_gf_HeroRaynorIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroRaynorTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroRaynorTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroRaynorRaynorsBansheeFlyIn, true);
TriggerEnable(libGDHL_gt_HeroRaynorRaynorsBansheeFlyOut, true);
TriggerEnable(libGDHL_gt_HeroRaynorBansheesCommand, true);
TriggerEnable(libGDHL_gt_HeroRaynorACardToPlayTalentGained, true);
TriggerEnable(libGDHL_gt_HeroRaynorBansheeTeleport, true);
TriggerEnable(libGDHL_gt_HeroRaynorRemoveBansheeOnEnterVehicle, true);
TriggerEnable(libGDHL_gt_HeroRaynorExecuteOrderDeathTimerMod, true);
TriggerEnable(libGDHL_gt_HeroRaynorExecuteOrderHyperionActivate, true);
}
}
void libGDHL_gf_HeroRaynorDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroRaynorTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroRaynorTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroRaynorTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroRaynorTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroRaynorRaynorsBansheeFlyIn, false);
TriggerEnable(libGDHL_gt_HeroRaynorRaynorsBansheeFlyOut, false);
TriggerEnable(libGDHL_gt_HeroRaynorBansheesCommand, false);
TriggerEnable(libGDHL_gt_HeroRaynorACardToPlayTalentGained, false);
TriggerEnable(libGDHL_gt_HeroRaynorACardToPlayHeroTakedown, false);
TriggerEnable(libGDHL_gt_HeroRaynorBansheeTeleport, false);
TriggerEnable(libGDHL_gt_HeroRaynorRemoveBansheeOnEnterVehicle, false);
TriggerEnable(libGDHL_gt_HeroRaynorExecuteOrderDeathTimerMod, false);
TriggerEnable(libGDHL_gt_HeroRaynorExecuteOrderHyperionActivate, false);
}
}
void libGDHL_gf_HeroRehgarIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroRehgarTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroRehgarTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown, true);
TriggerEnable(libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase, true);
TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionTalentSaveTotem, true);
TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionTalentMoveTotem, true);
TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse, true);
TriggerEnable(libGDHL_gt_HeroRehgarTidalWavesModifyCooldown, true);
TriggerEnable(libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply, true);
TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeAddLeech, true);
TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeLeechProc, true);
}
}
void libGDHL_gf_HeroRehgarDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroRehgarTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroRehgarTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroRehgarTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroRehgarTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown, false);
TriggerEnable(libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase, false);
TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionTalentSaveTotem, false);
TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionTalentMoveTotem, false);
TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse, false);
TriggerEnable(libGDHL_gt_HeroRehgarTidalWavesModifyCooldown, false);
TriggerEnable(libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply, false);
TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeAddLeech, false);
TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeLeechProc, false);
}
}
void libGDHL_gf_HeroRexxarIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroRexxarTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroRexxarTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroRexxarUnleashtheBoarsCast, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaFocusUsed, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaGainsMapMechanicStack, true);
TriggerEnable(libGDHL_gt_HeroRexxarRexxarLosesMapMechanicStacks, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaChargeDisable, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaMendPetDisable, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaSpawn, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromAttacks, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaClearPursuitTargetFromMishaFollow, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromMishaFocus, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, true);
TriggerEnable(libGDHL_gt_HeroRexxarRexxarDies, true);
TriggerEnable(libGDHL_gt_HeroRexxarRemoveMisha, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaDance, true);
TriggerEnable(libGDHL_gt_HeroRexxarRexxarStasisStartIncludesFeignDeath, true);
TriggerEnable(libGDHL_gt_HeroRexxarRexxarStasisEndIncludedFeignDeath, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaDies, true);
TriggerEnable(libGDHL_gt_HeroRexxarGorgeEnd, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaTeleport, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaUnderworldGateUsed, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaVehicleUsed, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaVehicleDone, true);
TriggerEnable(libGDHL_gt_HeroRexxarStuffMishaIntoTransport, true);
TriggerEnable(libGDHL_gt_HeroRexxarKickMishaOutOfTransport, true);
TriggerEnable(libGDHL_gt_HeroRexxarMishaMountedBehaviorDisabled, true);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaGrizzledFortitude, true);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaEasyPrey, true);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaWildfireBear, true);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaPrimalIntimidation, true);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaHunterGatherer, true);
TriggerEnable(libGDHL_gt_HeroRexxarBestialWrathSpiritBondBearNecessitiesHealProc, true);
TriggerEnable(libGDHL_gt_HeroRexxarChargeCast, true);
TriggerEnable(libGDHL_gt_HeroRexxarSelectMishaOnVehicleExit, true);
TriggerEnable(libGDHL_gt_HeroRexxarDeselectMishaOnVehicleEnter, true);
TriggerEnable(libGDHL_gt_HeroRexxarHunterGathererController, true);
TriggerEnable(libGDHL_gt_HeroRexxarFeignDeathOverlayOn, true);
TriggerEnable(libGDHL_gt_HeroRexxarFeignDeathOverlayOff, true);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaAnimalHusbandry, true);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaDireBeast, true);
}
}
void libGDHL_gf_HeroRexxarDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroRexxarTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroRexxarTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroRexxarTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroRexxarTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroRexxarUnleashtheBoarsCast, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaFocusUsed, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaGainsMapMechanicStack, false);
TriggerEnable(libGDHL_gt_HeroRexxarRexxarLosesMapMechanicStacks, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaChargeDisable, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaMendPetDisable, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaSpawn, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromAttacks, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaClearPursuitTargetFromMishaFollow, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromMishaFocus, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, false);
TriggerEnable(libGDHL_gt_HeroRexxarRexxarDies, false);
TriggerEnable(libGDHL_gt_HeroRexxarRemoveMisha, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaDance, false);
TriggerEnable(libGDHL_gt_HeroRexxarRexxarStasisStartIncludesFeignDeath, false);
TriggerEnable(libGDHL_gt_HeroRexxarRexxarStasisEndIncludedFeignDeath, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaDies, false);
TriggerEnable(libGDHL_gt_HeroRexxarGorgeEnd, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaTeleport, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaUnderworldGateUsed, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaVehicleUsed, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaVehicleDone, false);
TriggerEnable(libGDHL_gt_HeroRexxarStuffMishaIntoTransport, false);
TriggerEnable(libGDHL_gt_HeroRexxarKickMishaOutOfTransport, false);
TriggerEnable(libGDHL_gt_HeroRexxarMishaMountedBehaviorDisabled, false);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaGrizzledFortitude, false);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaEasyPrey, false);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaWildfireBear, false);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaPrimalIntimidation, false);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaHunterGatherer, false);
TriggerEnable(libGDHL_gt_HeroRexxarBestialWrathSpiritBondBearNecessitiesHealProc, false);
TriggerEnable(libGDHL_gt_HeroRexxarChargeCast, false);
TriggerEnable(libGDHL_gt_HeroRexxarSelectMishaOnVehicleExit, false);
TriggerEnable(libGDHL_gt_HeroRexxarDeselectMishaOnVehicleEnter, false);
TriggerEnable(libGDHL_gt_HeroRexxarHunterGathererController, false);
TriggerEnable(libGDHL_gt_HeroRexxarFeignDeathOverlayOn, false);
TriggerEnable(libGDHL_gt_HeroRexxarFeignDeathOverlayOff, false);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaAnimalHusbandry, false);
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaDireBeast, false);
}
}
void libGDHL_gf_RexxarUISetup (int lp_rexxarPlayer, unit lp_mishaUnit) {
// Automatic Variable Declarations
// Implementation
libNtve_gf_SetDialogItemUnit(libGDHL_gv_rexxarUI.lv_rexxarMishaUnitStatus, lp_mishaUnit, libCore_gv_playerGroupFromPlayer[lp_rexxarPlayer]);
libNtve_gf_SetDialogItemTooltip(libGDHL_gv_rexxarUI.lv_rexxarMishaHealth, StringExternal("Param/Value/lib_GDHL_C2E9D341"), libCore_gv_playerGroupFromPlayer[lp_rexxarPlayer]);
DialogControlSetVisible(libGDHL_gv_rexxarUI.lv_mainPanel, libCore_gv_playerGroupFromPlayer[lp_rexxarPlayer], true);
DialogControlSetVisible(libGDHL_gv_rexxarUI.lv_rexxarMishaUnitStatus, libCore_gv_playerGroupFromPlayer[lp_rexxarPlayer], true);
}
void libGDHL_gf_RexxarUICleanup (int lp_rexxarPlayer) {
// Automatic Variable Declarations
// Implementation
DialogControlSetVisible(libGDHL_gv_rexxarUI.lv_mainPanel, libCore_gv_playerGroupFromPlayer[lp_rexxarPlayer], false);
}
void libGDHL_gf_HeroRexxarUnleashtheBoarsTeleportValidation (unit lp_boarUnit, unit lp_targetUnit, fixed lp_teleportDistanceThreshold) {
// Variable Declarations
point lv_mostRecentLocation;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_mostRecentLocation = UnitGetPosition(lp_targetUnit);
while ((UnitIsAlive(lp_boarUnit) == true) && (UnitIsAlive(lp_targetUnit) == true)) {
if (((DistanceBetweenPoints(UnitGetPosition(lp_targetUnit), lv_mostRecentLocation) > 15.0))) {
UnitCreateEffectUnit(lp_boarUnit, "TimedLifeFate", lp_boarUnit);
}
lv_mostRecentLocation = UnitGetPosition(lp_targetUnit);
Wait(0.0625, c_timeGame);
}
}
void libGDHL_gf_HeroRexxarMishaThink (int lp_player) {
// Variable Declarations
point lv_positionToCheck;
point lv_positionToMove;
int lv_itNearbyShrubChecks;
unit lv_unitToAttack;
bool lv_autoAquired;
int lv_player;
unit lv_rexxar;
unit lv_misha;
int lv_currentState;
int lv_attackPoint;
fixed lv_pursuitOffset;
// Automatic Variable Declarations
int auto3742AA88_val;
const int auto02EA91E5_ae = 8;
const int auto02EA91E5_ai = 1;
const int auto817393C0_ae = 8;
const int auto817393C0_ai = 1;
// Variable Initialization
lv_currentState = libGDHL_ge_MishaState_Idle;
// Implementation
lv_player = lp_player;
lv_rexxar = libGame_gv_players[lv_player].lv_heroUnit;
lv_misha = libGDHL_gv_rexxarMishaUnit[lv_player];
lv_currentState = libGDHL_gv_mishaCurrentAIState[lv_player];
if ((UnitHasBehavior2(lv_misha, "PermanentlyUncommandable") == true)) {
return ;
}
if ((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroAbathur")) {
lv_rexxar = libGame_gv_players[lv_player].lv_activeVehicle;
}
if ((libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player] != null) && (libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] != null) && (libNtve_gf_UnitIsVisibleToPlayer(libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player], lv_player) == true) && (lv_currentState != libGDHL_ge_MishaState_Pursuing)) {
lv_pursuitOffset = (UnitGetPropertyFixed(libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player], c_unitPropMovementSpeedCurrent, c_unitPropCurrent) / 4.0);
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] = PointWithOffsetPolar(UnitGetPosition(libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player]), lv_pursuitOffset, UnitGetFacing(libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player]));
}
if ((lv_currentState == libGDHL_ge_MishaState_Pursuing) && (libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] == null)) {
lv_currentState = libGDHL_ge_MishaState_Idle;
}
if ((DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) >= libGDHL_gv_rexxar_Misha_LeashRange_Max_C) && (lv_currentState != libGDHL_ge_MishaState_Leashing) && (lv_currentState != libGDHL_ge_MishaState_Following)) {
if ((((UnitBehaviorEnabled(lv_misha, "RexxarMishaLeashTimeToLeash") == true) || (DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) >= libGDHL_gv_rexxar_Misha_LeashRange_Immediate_C))) && (UnitHasBehavior2(lv_rexxar, "UsingVehicle") == false)) {
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_rexxar), 3.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
lv_currentState = libGDHL_ge_MishaState_Leashing;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] = null;
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player] = null;
libGDHL_gf_HeroRexxarMishaFocusOff(lv_player);
FloatingCombatElementCreateTextAtPoint(PlayerGroupSingle(lv_player), "FloatingCombatElements/FloatingCombatElementTemplate", "", UnitGetPosition(lv_misha), StringExternal("Param/Value/lib_GDHL_6071B140"), libNtve_gv_FloatingCombatTextAutoRandomSeed);
}
else {
if ((UnitBehaviorEnabled(lv_misha, "RexxarMishaLeashGracePeriod") == false)) {
UnitBehaviorAdd(lv_misha, "RexxarMishaLeashGracePeriod", lv_rexxar, 1);
}
}
}
if ((lv_currentState != libGDHL_ge_MishaState_Fighting) && ((libGDHL_gv_commandMishaTargetUnit[lv_player] != null) || ((OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) == AbilityCommand("attack", 0)) && (UnitIsValid(OrderGetTargetUnit(UnitOrder(lv_rexxar, 0))) == true) && (lv_autoAquired != true)))) {
lv_currentState = libGDHL_ge_MishaState_Fighting;
}
if ((lv_currentState != libGDHL_ge_MishaState_HoldingPosition) && (libGDHL_gv_commandMishaTargetPoint[lv_player] != null)) {
lv_currentState = libGDHL_ge_MishaState_HoldingPosition;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] = null;
}
if ((lv_currentState != libGDHL_ge_MishaState_GoingToMoonwell) && (libGDHL_gv_commandMishaTargetMoonwell[lv_player] != null)) {
lv_currentState = libGDHL_ge_MishaState_GoingToMoonwell;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] = null;
}
if ((UnitBehaviorCount(lv_misha, "RexxarMishaFollowFollow") > 0) && (lv_currentState != libGDHL_ge_MishaState_Following) && (lv_currentState != libGDHL_ge_MishaState_Pursuing)) {
lv_currentState = libGDHL_ge_MishaState_Following;
lv_autoAquired = false;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] = null;
libGDHL_gf_HeroRexxarMishaFocusOff(lv_player);
}
else {
if ((UnitAbilityCheck(lv_misha, "attack", false) == true)) {
UnitAbilityEnable(lv_misha, "attack", true);
}
}
if ((libGDHL_gv_rexxarIsInStasis[lv_player] == true) && (lv_currentState != libGDHL_ge_MishaState_RexxarStasis)) {
lv_currentState = libGDHL_ge_MishaState_RexxarStasis;
}
if ((UnitHasBehavior2(lv_misha, "SylvanasMindControlTarget") == true)) {
lv_currentState = libGDHL_ge_MishaState_AI_Paused;
}
auto3742AA88_val = lv_currentState;
if (auto3742AA88_val == libGDHL_ge_MishaState_Searching) {
if ((UnitIsValid(libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player]) == true) && (libNtve_gf_UnitIsVisibleToPlayer(libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player], lv_player) == true)) {
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] = UnitGetPosition(libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player]);
libGDHL_gv_commandMishaTargetUnit[lv_player] = libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player];
PlayerCreateEffectUnit(lv_player, "RexxarApplyMishaFocusTargetBehavior", libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player]);
UnitBehaviorAdd(lv_misha, "RexxarMishaFocussedOnUnit", lv_rexxar, 1);
UnitIssueOrder(lv_misha, OrderTargetingUnit(AbilityCommand("attack", 0), libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player]), c_orderQueueReplace);
lv_currentState = libGDHL_ge_MishaState_Fighting;
}
else {
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] = null;
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player] = null;
lv_currentState = libGDHL_ge_MishaState_Leashing;
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_Pursuing) {
if (((DistanceBetweenPoints(UnitGetPosition(lv_misha), libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player]) < 1.0) || (libNtve_gf_UnitIsVisibleToPlayer(libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player], lv_player) == true))) {
lv_currentState = libGDHL_ge_MishaState_Searching;
}
else {
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player]), c_orderQueueReplace);
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_Fighting) {
if ((UnitIsValid(libGDHL_gv_commandMishaTargetUnit[lv_player]) == true) && (UnitTestState(libGDHL_gv_commandMishaTargetUnit[lv_player], c_unitStateTargetable) == true) && ((UnitFilterMatch(libGDHL_gv_commandMishaTargetUnit[lv_player], lv_player, UnitFilter((1 << c_targetFilterVisible), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly) | (1 << c_targetFilterStructure), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true) || (UnitFilterMatch(libGDHL_gv_commandMishaTargetUnit[lv_player], lv_player, UnitFilter((1 << c_targetFilterStructure), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly) | (1 << c_targetFilterImmuneToSkillshots), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterInvulnerable - 32)))) == true))) {
if ((OrderGetTargetUnit(UnitOrder(lv_misha, 0)) != libGDHL_gv_commandMishaTargetUnit[lv_player])) {
UnitIssueOrder(lv_misha, OrderTargetingUnit(AbilityCommand("attack", 0), libGDHL_gv_commandMishaTargetUnit[lv_player]), c_orderQueueReplace);
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaTargetingPersistent", libGDHL_gv_commandMishaTargetUnit[lv_player]);
}
}
else {
if ((libGDHL_gv_commandMishaTargetUnit[lv_player] != null)) {
libGDHL_gf_HeroRexxarMishaFocusOff(lv_player);
}
if ((OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) == AbilityCommand("attack", 0)) && (UnitOrderIsAcquired(lv_rexxar, 0) == false) && (UnitIsValid(OrderGetTargetUnit(UnitOrder(lv_rexxar, 0))) == true) && (UnitFilterMatch(OrderGetTargetUnit(UnitOrder(lv_rexxar, 0)), lv_player, UnitFilter((1 << c_targetFilterVisible), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true) && (OrderGetTargetUnit(UnitOrder(lv_rexxar, 0)) != OrderGetTargetUnit(UnitOrder(lv_misha, 0))) && (libGDHL_gv_commandMishaTargetUnit[lv_player] == null)) {
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaCopyOrders", lv_misha);
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaTargetingPersistent", OrderGetTargetUnit(UnitOrder(lv_rexxar, 0)));
}
}
if ((OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) == AbilityCommand("attack", 0)) && (((UnitIsAlive(libGDHL_gv_commandMishaTargetUnit[lv_player]) == true) && (UnitFilterMatch(libGDHL_gv_commandMishaTargetUnit[lv_player], lv_player, UnitFilter((1 << c_targetFilterStructure), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly), (1 << (c_targetFilterInvulnerable - 32)))) == true)) || ((UnitIsAlive(OrderGetTargetUnit(UnitOrder(lv_misha, 0))) == true) && (UnitFilterMatch(OrderGetTargetUnit(UnitOrder(lv_misha, 0)), lv_player, UnitFilter((1 << c_targetFilterVisible), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true)))) {
}
else {
lv_currentState = libGDHL_ge_MishaState_Idle;
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_Following) {
if ((UnitBehaviorCount(lv_misha, "RexxarMishaFollowFollow") == 0)) {
lv_currentState = libGDHL_ge_MishaState_Idle;
lv_autoAquired = false;
}
else {
lv_autoAquired = true;
if ((UnitOrderCount(lv_rexxar) != 0) && (OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) != AbilityCommand("RexxarSpiritSwoop", 0)) && (OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) != AbilityCommand("RexxarUnleashTheBoars", 0)) && (UnitGetType(OrderGetTargetItem(UnitOrder(lv_rexxar, 0))) != "RexxarFlare") && (OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)) != Point(0.0, 0.0)) && (DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) <= 3.0) && ((OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) != AbilityCommand("attack", 0)) || (UnitIsValid(OrderGetTargetUnit(UnitOrder(lv_rexxar, 0))) == false))) {
UnitAbilityEnable(lv_misha, "attack", true);
libGDHL_gf_HeroRexxarOrderMishaMoveNearPoint(lv_rexxar, lv_misha, OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)));
if ((OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) != AbilityCommand("move", 0)) && (DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)), UnitGetPosition(lv_misha)) < 4.0)) {
libNtve_gf_MakeUnitFacePoint(lv_misha, OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)), 0.2);
}
}
else {
if ((UnitTechTreeBehaviorCount(lv_rexxar, "ShrubStatusController", c_techCountQueuedOrBetter) <= 0)) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) > 3.0) && ((OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) == AbilityCommand("attack", 0)) || (UnitOrderCount(lv_misha) == 0) || (DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_misha, 0)), UnitGetPosition(lv_rexxar)) > 6.0))) {
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_rexxar), 3.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
UnitAbilityEnable(lv_misha, "attack", false);
}
else {
if ((UnitOrderCount(lv_misha) > 0) && (DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) <= 2.0)) {
UnitIssueOrder(lv_misha, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
UnitAbilityEnable(lv_misha, "attack", true);
}
}
}
else {
if ((UnitTechTreeBehaviorCount(lv_misha, "ShrubStatusController", c_techCountQueuedOrBetter) == 0) && (OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) != AbilityCommand("move", 0))) {
UnitAbilityEnable(lv_misha, "attack", true);
lv_itNearbyShrubChecks = 0;
for ( ; ( (auto02EA91E5_ai >= 0 && lv_itNearbyShrubChecks <= auto02EA91E5_ae) || (auto02EA91E5_ai < 0 && lv_itNearbyShrubChecks >= auto02EA91E5_ae) ) ; lv_itNearbyShrubChecks += auto02EA91E5_ai ) {
lv_positionToCheck = PointWithOffsetPolar(UnitGetPosition(lv_rexxar), 1.5, (45 * lv_itNearbyShrubChecks));
if ((InShrub(lv_positionToCheck) == true) && ((lv_positionToMove == null) || (DistanceBetweenPoints(UnitGetPosition(lv_misha), lv_positionToMove) > DistanceBetweenPoints(lv_positionToCheck, UnitGetPosition(lv_misha))))) {
lv_positionToMove = lv_positionToCheck;
}
}
if ((lv_positionToMove != null)) {
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), lv_positionToMove), c_orderQueueReplace);
lv_positionToMove = null;
}
}
else {
UnitAbilityEnable(lv_misha, "attack", true);
}
}
}
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_Idle) {
if ((libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] != null)) {
lv_currentState = libGDHL_ge_MishaState_Pursuing;
}
if ((UnitOrderCount(lv_rexxar) != 0) && (UnitBehaviorEnabled(lv_misha, "RexxarMishaHold") == false) && (libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] == null)) {
if ((OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) == AbilityCommand("attack", 0))) {
if ((UnitOrderIsAcquired(lv_rexxar, 0) == true) && (OrderGetTargetPosition(UnitOrder(lv_rexxar, 1)) == UnitGetPosition(lv_rexxar))) {
lv_autoAquired = true;
}
else {
lv_autoAquired = false;
}
if ((UnitIsValid(OrderGetTargetUnit(UnitOrder(lv_rexxar, 0))) == false)) {
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaCommandRemoveTargetPriorityBuffSearch", lv_rexxar);
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaCopyOrders", lv_misha);
}
else {
if ((OrderGetTargetUnit(UnitOrder(lv_rexxar, 0)) != OrderGetTargetUnit(UnitOrder(lv_misha, 0)))) {
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaApplyTargetPriorityBuff", OrderGetTargetUnit(UnitOrder(lv_rexxar, 0)));
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaCopyOrders", lv_misha);
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaTargetingPersistent", OrderGetTargetUnit(UnitOrder(lv_rexxar, 0)));
}
else {
lv_currentState = libGDHL_ge_MishaState_Moving;
}
}
}
else {
if ((OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) == AbilityCommand("move", 0)) && (UnitHasBehavior2(lv_misha, "RexxarMishaManualOrder") == false)) {
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaCommandRemoveTargetPriorityBuffSearch", lv_rexxar);
if ((DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)), UnitGetPosition(lv_misha)) > 4.0) && (UnitBehaviorEnabled(lv_misha, "RexxarMishaHold") == false)) {
libGDHL_gf_HeroRexxarOrderMishaMoveNearPoint(lv_rexxar, lv_misha, OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)));
lv_currentState = libGDHL_ge_MishaState_Moving;
}
else {
libNtve_gf_MakeUnitFacePoint(lv_misha, OrderGetTargetPoint(UnitOrder(lv_rexxar, 0)), 0.2);
}
}
else {
if ((OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) == AbilityCommand("FountainDrink", 0)) && (OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) != AbilityCommand("FountainDrink", 0))) {
lv_currentState = libGDHL_ge_MishaState_Moving;
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaCopyOrders", lv_misha);
}
}
}
if ((((DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) >= 4.0) && (UnitOrderCount(lv_misha) == 0)) || ((DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) >= 5.0) && (OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) == AbilityCommand("attack", 0))))) {
if ((OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) == AbilityCommand("move", 0))) {
lv_currentState = libGDHL_ge_MishaState_Moving;
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)), 3.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
}
else {
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_rexxar), 3.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
}
}
}
else {
lv_autoAquired = true;
if ((UnitTechTreeBehaviorCount(lv_rexxar, "ShrubStatusController", c_techCountQueuedOrBetter) > 0) && (UnitTechTreeBehaviorCount(lv_misha, "ShrubStatusController", c_techCountQueuedOrBetter) == 0) && (OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) != AbilityCommand("move", 0))) {
lv_itNearbyShrubChecks = 0;
for ( ; ( (auto817393C0_ai >= 0 && lv_itNearbyShrubChecks <= auto817393C0_ae) || (auto817393C0_ai < 0 && lv_itNearbyShrubChecks >= auto817393C0_ae) ) ; lv_itNearbyShrubChecks += auto817393C0_ai ) {
lv_positionToCheck = PointWithOffsetPolar(UnitGetPosition(lv_rexxar), 1.5, (45 * lv_itNearbyShrubChecks));
if ((InShrub(lv_positionToCheck) == true) && ((lv_positionToMove == null) || (DistanceBetweenPoints(UnitGetPosition(lv_misha), lv_positionToMove) > DistanceBetweenPoints(lv_positionToCheck, UnitGetPosition(lv_misha))))) {
lv_positionToMove = lv_positionToCheck;
}
}
if ((lv_positionToMove != null)) {
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), lv_positionToMove), c_orderQueueReplace);
lv_positionToMove = null;
}
}
else {
if (((UnitIsValid(OrderGetTargetUnit(UnitOrder(lv_misha, 0))) == true) || (OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) == AbilityCommand("attack", 0)))) {
UnitIssueOrder(lv_misha, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
}
}
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_Moving) {
if ((UnitOrderCount(lv_misha) == 0) && (OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) != AbilityCommand("FountainDrink", 0))) {
lv_currentState = libGDHL_ge_MishaState_Idle;
}
else {
if (((UnitOrderCount(lv_rexxar) == 0) || (OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) == AbilityCommand("move", 2)))) {
if (((DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) <= 4.0) || (DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_misha, 0)), UnitGetPosition(lv_rexxar)) > 5.0))) {
UnitIssueOrder(lv_misha, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
lv_currentState = libGDHL_ge_MishaState_Idle;
}
}
else {
if ((OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) != AbilityCommand("attack", 0)) && (UnitHasBehavior2(lv_misha, "RexxarMishaManualOrder") == false)) {
if ((OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) == AbilityCommand("FountainDrink", 0))) {
if ((OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) != AbilityCommand("FountainDrink", 0))) {
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaCopyOrders", lv_misha);
}
}
else {
if ((OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)) != Point(0.0, 0.0))) {
libGDHL_gf_HeroRexxarOrderMishaMoveNearPoint(lv_rexxar, lv_misha, OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)));
}
if ((DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)), OrderGetTargetPosition(UnitOrder(lv_misha, 0))) > 4.0) && (OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) != AbilityCommand("move", 2))) {
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaCommandRemoveTargetPriorityBuffSearch", lv_rexxar);
}
}
}
else {
if ((OrderGetAbilityCommand(UnitOrder(lv_rexxar, 0)) == AbilityCommand("attack", 0)) && (OrderGetTargetUnit(UnitOrder(lv_rexxar, 0)) != OrderGetTargetUnit(UnitOrder(lv_misha, 0)))) {
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaCopyOrders", lv_misha);
if ((UnitIsValid(OrderGetTargetUnit(UnitOrder(lv_rexxar, 0))) == true)) {
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaTargetingPersistent", OrderGetTargetUnit(UnitOrder(lv_rexxar, 0)));
lv_autoAquired = false;
}
}
}
}
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_Leashing) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) <= 3.0)) {
UnitIssueOrder(lv_misha, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
lv_currentState = libGDHL_ge_MishaState_Idle;
}
else {
if ((UnitOrderCount(lv_misha) == 0) && (UnitHasBehavior2(lv_misha, "RexxarMishaManualOrder") == false)) {
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_rexxar), 3.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_rexxar), OrderGetTargetPosition(UnitOrder(lv_misha, 0))) >= libGDHL_gv_rexxar_Misha_LeashRange_Min_C)) {
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_rexxar), 3.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) >= libGDHL_gv_rexxar_Misha_LeashRange_Speedboost_Min_C) && ((UnitOrderCount(lv_rexxar) == 0) || (DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)), UnitGetPosition(lv_rexxar)) < DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_rexxar, 0)), UnitGetPosition(lv_misha))))) {
UnitBehaviorAdd(lv_misha, "RexxarMishaSpeedBoost", lv_misha, 1);
}
}
}
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_RexxarStasis) {
if ((libGDHL_gv_rexxarIsInStasis[lv_player] == false)) {
lv_currentState = libGDHL_ge_MishaState_Idle;
}
if ((OrderGetTargetPosition(UnitOrder(lv_rexxar, UnitOrderCount(lv_rexxar))) != OrderGetTargetPosition(UnitOrder(lv_misha, 0)))) {
UnitIssueOrder(lv_misha, UnitOrder(lv_rexxar, UnitOrderCount(lv_rexxar)), c_orderQueueReplace);
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_Dancing) {
if ((OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) != AbilityCommand("stop", 3))) {
lv_currentState = libGDHL_ge_MishaState_Idle;
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_HoldingPosition) {
if ((libGDHL_gv_commandMishaTargetPoint[lv_player] == null)) {
lv_currentState = libGDHL_ge_MishaState_Idle;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_misha), libGDHL_gv_commandMishaTargetPoint[lv_player]) > 1.0) && ((OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) != AbilityCommand("move", 0)) || (OrderGetTargetPosition(UnitOrder(lv_misha, 0)) != libGDHL_gv_commandMishaTargetPoint[lv_player]))) {
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), libGDHL_gv_commandMishaTargetPoint[lv_player]), c_orderQueueReplace);
}
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_GoingToMoonwell) {
if (((UnitHasBehavior2(lv_rexxar, "HealingFountainCooldown") == true) || ((UnitGetPropertyFixed(lv_misha, c_unitPropLife, c_unitPropCurrent) == UnitGetPropertyFixed(lv_misha, c_unitPropLifeMax, c_unitPropCurrent)) && (UnitGetPropertyFixed(lv_rexxar, c_unitPropLife, c_unitPropCurrent) == UnitGetPropertyFixed(lv_rexxar, c_unitPropLifeMax, c_unitPropCurrent)) && (UnitGetPropertyFixed(lv_rexxar, c_unitPropEnergy, c_unitPropCurrent) == UnitGetPropertyFixed(lv_rexxar, c_unitPropEnergyMax, c_unitPropCurrent))))) {
lv_currentState = libGDHL_ge_MishaState_Idle;
libGDHL_gf_HeroRexxarMishaFocusOff(lv_player);
if ((DistanceBetweenPoints(UnitGetPosition(lv_misha), UnitGetPosition(lv_rexxar)) > 4.0)) {
UnitIssueOrder(lv_misha, OrderTargetingPoint(AbilityCommand("move", 0), libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_rexxar), 2.0, UnitGetPosition(lv_misha))), c_orderQueueReplace);
}
}
else {
if (((OrderGetAbilityCommand(UnitOrder(lv_misha, 0)) != AbilityCommand("FountainDrink", 0)) || (OrderGetTargetUnit(UnitOrder(lv_misha, 0)) != libGDHL_gv_commandMishaTargetMoonwell[lp_player]))) {
UnitIssueOrder(lv_misha, OrderTargetingUnit(AbilityCommand("FountainDrink", 0), libGDHL_gv_commandMishaTargetMoonwell[lv_player]), c_orderQueueReplace);
}
}
}
else if (auto3742AA88_val == libGDHL_ge_MishaState_AI_Paused) {
if ((UnitHasBehavior2(lv_misha, "SylvanasMindControlTarget") == false)) {
lv_currentState = libGDHL_ge_MishaState_Idle;
}
}
else {
}
libGDHL_gv_mishaCurrentAIState[lv_player] = lv_currentState;
}
void libGDHL_gf_HeroRexxarOrderMishaMoveNearPoint (unit lp_rexxar, unit lp_misha, point lp_target) {
// Variable Declarations
fixed lv_distanceFromMishaToRexxar;
point lv_orderPosition;
// Automatic Variable Declarations
// Variable Initialization
lv_distanceFromMishaToRexxar = DistanceBetweenPoints(UnitGetPosition(lp_rexxar), UnitGetPosition(lp_misha));
// Implementation
lv_orderPosition = OrderGetTargetPosition(UnitOrder(lp_misha, 0));
if ((lv_distanceFromMishaToRexxar > libGDHL_gv_rexxar_Misha_LeashRange_Min_C) && (libNtve_gf_PointDotProduct2D(PointWithOffsetPolar(Point(0.0, 0.0), 1.0, UnitGetFacing(lp_rexxar)), libNtve_gf_PointSubtract2D(UnitGetPosition(lp_misha), UnitGetPosition(lp_rexxar))) < 0.707)) {
if (((OrderGetAbilityCommand(UnitOrder(lp_misha, 0)) != AbilityCommand("move", 0)) || (DistanceBetweenPoints(lv_orderPosition, UnitGetPosition(lp_rexxar)) > 4.0) || (DistanceBetweenPoints(lv_orderPosition, UnitGetPosition(lp_misha)) < 2.0))) {
UnitIssueOrder(lp_misha, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lp_rexxar), 1.5, UnitGetFacing(lp_rexxar))), c_orderQueueReplace);
}
}
else {
if (((OrderGetAbilityCommand(UnitOrder(lp_misha, 0)) != AbilityCommand("move", 0)) || ((DistanceBetweenPoints(lv_orderPosition, lp_target) > 4.0) && ((DistanceBetweenPoints(lv_orderPosition, UnitGetPosition(lp_rexxar)) > 4.0) || (DistanceBetweenPoints(lv_orderPosition, UnitGetPosition(lp_misha)) < 2.0))))) {
UnitIssueOrder(lp_misha, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(lp_target, 3.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
}
}
}
void libGDHL_gf_HeroRexxarMishaStopMishaandResetThink (unit lp_mishaUnit) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(lp_mishaUnit);
// Implementation
UnitCreateEffectUnit(lp_mishaUnit, "RexxarMishaHoldIssueStopOrder", lp_mishaUnit);
UnitBehaviorRemove(lp_mishaUnit, "RexxarMishaManualOrder", 1);
UnitBehaviorRemove(lp_mishaUnit, "RexxarMishaLeashTimeToLeash", 1);
UnitBehaviorRemove(lp_mishaUnit, "RexxarMishaHold", 1);
UnitCreateEffectUnit(lp_mishaUnit, "RexxarMishaCommandRemoveTargetPriorityBuffSearch", lp_mishaUnit);
if ((libGDHL_gv_commandMishaTargetPoint[lv_player] != null)) {
UnitCreateEffectPoint(lp_mishaUnit, "RexxarMishaFocusTargetOff", libGDHL_gv_commandMishaTargetPoint[lv_player]);
}
libGDHL_gv_commandMishaTargetPoint[lv_player] = null;
UnitBehaviorRemove(libGDHL_gv_commandMishaTargetUnit[lv_player], "RexxarMishaFocussedTargetUnit", 1);
libGDHL_gv_commandMishaTargetUnit[lv_player] = null;
UnitBehaviorRemove(libGDHL_gv_commandMishaTargetMoonwell[lv_player], "RexxarMishaFocussedTargetUnit", 1);
libGDHL_gv_commandMishaTargetMoonwell[lv_player] = null;
UnitBehaviorRemove(lp_mishaUnit, "RexxarMishaFocussedOnPoint", 1);
UnitBehaviorRemove(lp_mishaUnit, "RexxarMishaFocussedOnUnit", 1);
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_player] = null;
libGDHL_gv_mishaCurrentAIState[lv_player] = libGDHL_ge_MishaState_Idle;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_player] = null;
}
void libGDHL_gf_HeroRexxarMishaFocusOff (int lp_player) {
// Automatic Variable Declarations
// Implementation
if ((libGDHL_gv_commandMishaTargetUnit[lp_player] != null)) {
UnitBehaviorRemovePlayer(libGDHL_gv_commandMishaTargetUnit[lp_player], "RexxarMishaFocussedTargetUnit", lp_player, 1);
UnitCreateEffectUnit(libGDHL_gv_rexxarMishaUnit[lp_player], "RexxarMishaFocusTargetOff", libGDHL_gv_commandMishaTargetUnit[lp_player]);
libGDHL_gv_commandMishaTargetUnit[lp_player] = null;
UnitBehaviorRemove(libGDHL_gv_rexxarMishaUnit[lp_player], "RexxarMishaFocussedOnUnit", 1);
}
if ((libGDHL_gv_commandMishaTargetMoonwell[lp_player] != null)) {
UnitCreateEffectUnit(libGDHL_gv_rexxarMishaUnit[lp_player], "RexxarMishaFocusTargetOff", libGDHL_gv_commandMishaTargetMoonwell[lp_player]);
libGDHL_gv_commandMishaTargetMoonwell[lp_player] = null;
UnitBehaviorRemove(libGDHL_gv_rexxarMishaUnit[lp_player], "RexxarMishaFocussedOnPoint", 1);
}
if ((libGDHL_gv_commandMishaTargetPoint[lp_player] != null)) {
UnitCreateEffectPoint(libGDHL_gv_rexxarMishaUnit[lp_player], "RexxarMishaFocusTargetOff", libGDHL_gv_commandMishaTargetPoint[lp_player]);
libGDHL_gv_commandMishaTargetPoint[lp_player] = null;
UnitBehaviorRemove(libGDHL_gv_rexxarMishaUnit[lp_player], "RexxarMishaFocussedOnPoint", 1);
}
}
void libGDHL_gf_HeroSgtHammerIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroSgtHammerTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroSgtHammerTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroSgtHammerCompleteHearthstone, true);
TriggerEnable(libGDHL_gt_HeroSgtHammerSiegeModeUpdate, true);
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunPrepStart, true);
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculation, true);
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculationViaEffect, true);
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunApplyOrbitalScan, true);
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunCheckForLocation, true);
TriggerEnable(libGDHL_gt_HeroSgtHammerConcussiveBlastCancel, true);
TriggerEnable(libGDHL_gt_HeroSgtHammerConcussiveBlastForcedDestruction, true);
TriggerEnable(libGDHL_gt_HeroSgtHammerMaelstromRoundsAddCharge, true);
TriggerEnable(libGDHL_gt_HeroSgtHammerHearthstoneUsed, true);
}
}
void libGDHL_gf_HeroSgtHammerDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroSgtHammerTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroSgtHammerTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroSgtHammerTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroSgtHammerTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroSgtHammerCompleteHearthstone, false);
TriggerEnable(libGDHL_gt_HeroSgtHammerSiegeModeUpdate, false);
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunPrepStart, false);
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculation, false);
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculationViaEffect, false);
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunApplyOrbitalScan, false);
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunCheckForLocation, false);
TriggerEnable(libGDHL_gt_HeroSgtHammerConcussiveBlastCancel, false);
TriggerEnable(libGDHL_gt_HeroSgtHammerConcussiveBlastForcedDestruction, false);
TriggerEnable(libGDHL_gt_HeroSgtHammerMaelstromRoundsAddCharge, false);
TriggerEnable(libGDHL_gt_HeroSgtHammerHearthstoneUsed, false);
}
}
void libGDHL_gf_HeroStitchesIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroStitchesTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroStitchesTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroStitchesHookHookVision, true);
TriggerEnable(libGDHL_gt_HeroStitchesHookLaunchTargetUsed, true);
TriggerEnable(libGDHL_gt_HeroStitchesGorgeDecreases, true);
TriggerEnable(libGDHL_gt_HeroStitchesGorgeActivate, true);
TriggerEnable(libGDHL_gt_HeroStitchesGorgeOff, true);
TriggerEnable(libGDHL_gt_HeroStitchesGiftFromTheEmbalmerDeathTimerReduction, true);
}
}
void libGDHL_gf_HeroStitchesDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroStitchesTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroStitchesTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroStitchesTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroStitchesTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroStitchesHookHookVision, false);
TriggerEnable(libGDHL_gt_HeroStitchesHookLaunchTargetUsed, false);
TriggerEnable(libGDHL_gt_HeroStitchesGorgeDecreases, false);
TriggerEnable(libGDHL_gt_HeroStitchesGorgeActivate, false);
TriggerEnable(libGDHL_gt_HeroStitchesGorgeOff, false);
TriggerEnable(libGDHL_gt_HeroStitchesGiftFromTheEmbalmerDeathTimerReduction, false);
}
}
void libGDHL_gf_HeroSylvanasIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroSylvanasTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroSylvanasTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroSylvanasMindControlTargetSelect, true);
TriggerEnable(libGDHL_gt_HeroSylvanasWailingArrowSilenceTarget, true);
TriggerEnable(libGDHL_gt_HeroSylvanasWailingArrowDeafeningBlastSilenceTarget, true);
TriggerEnable(libGDHL_gt_HeroSylvanasWailingArrowSilenceEnd, true);
TriggerEnable(libGDHL_gt_HeroSylvanasWitheringFireHeroKillAddCharge, true);
TriggerEnable(libGDHL_gt_HeroSylvanasPossessionRewire, true);
TriggerEnable(libGDHL_gt_HeroSylvanasPossessionCatapultMinionModifyChargeCount, true);
TriggerEnable(libGDHL_gt_HeroSylvanasDarkLadysCallTalentApplyAllyVisionSuppression, true);
TriggerEnable(libGDHL_gt_HeroSylvanasDarkLadysCallTalentResetAllyVisionSuppression, true);
TriggerEnable(libGDHL_gt_HeroSylvanasMindControlCameraLock, true);
}
}
void libGDHL_gf_HeroSylvanasDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroSylvanasTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroSylvanasTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroSylvanasTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroSylvanasTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroSylvanasMindControlTargetSelect, false);
TriggerEnable(libGDHL_gt_HeroSylvanasWailingArrowSilenceTarget, false);
TriggerEnable(libGDHL_gt_HeroSylvanasWailingArrowDeafeningBlastSilenceTarget, false);
TriggerEnable(libGDHL_gt_HeroSylvanasWailingArrowSilenceEnd, false);
TriggerEnable(libGDHL_gt_HeroSylvanasWitheringFireHeroKillAddCharge, false);
TriggerEnable(libGDHL_gt_HeroSylvanasPossessionRewire, false);
TriggerEnable(libGDHL_gt_HeroSylvanasPossessionCatapultMinionModifyChargeCount, false);
TriggerEnable(libGDHL_gt_HeroSylvanasDarkLadysCallTalentApplyAllyVisionSuppression, false);
TriggerEnable(libGDHL_gt_HeroSylvanasDarkLadysCallTalentResetAllyVisionSuppression, false);
TriggerEnable(libGDHL_gt_HeroSylvanasMindControlCameraLock, false);
}
}
void libGDHL_gf_HeroTassadarIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroTassadarTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroTassadarTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod, true);
TriggerEnable(libGDHL_gt_HeroTassadarForceWallForcedDestruction, true);
TriggerEnable(libGDHL_gt_HeroTassadarShockRayVision, true);
}
}
void libGDHL_gf_HeroTassadarDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroTassadarTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroTassadarTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroTassadarTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroTassadarTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod, false);
TriggerEnable(libGDHL_gt_HeroTassadarForceWallForcedDestruction, false);
TriggerEnable(libGDHL_gt_HeroTassadarShockRayVision, false);
}
}
void libGDHL_gf_HeroThrallIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroThrallTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroThrallTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroThrallEarthquakeEarthenShieldMasteryShieldApplication, true);
TriggerEnable(libGDHL_gt_HeroThrallAncestralWrathChargeCountProc, true);
TriggerEnable(libGDHL_gt_HeroThrallAncestralWrathHealingDummyUpdate, true);
TriggerEnable(libGDHL_gt_HeroThrallWorldBreakerForcedDestruction, true);
}
}
void libGDHL_gf_HeroThrallDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroThrallTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroThrallTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroThrallTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroThrallTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroThrallEarthquakeEarthenShieldMasteryShieldApplication, false);
TriggerEnable(libGDHL_gt_HeroThrallAncestralWrathChargeCountProc, false);
TriggerEnable(libGDHL_gt_HeroThrallAncestralWrathHealingDummyUpdate, false);
TriggerEnable(libGDHL_gt_HeroThrallWorldBreakerForcedDestruction, false);
}
}
void libGDHL_gf_UIHeroSpecificStatusFrameUpdateThrallStatus (int lp_player) {
// Variable Declarations
int lv_traitCounter;
// Automatic Variable Declarations
const int auto4FF95022_ae = libGDHL_gv_thrallTraitMaxStacks;
const int auto4FF95022_ai = 1;
// Variable Initialization
// Implementation
libGDHL_gv_thrallTraitCount[lp_player] += 1;
if ((libGDHL_gv_thrallTraitCount[lp_player] == 5)) {
libGDHL_gv_thrallTraitCount[lp_player] = 0;
DialogControlSendAnimationEvent(libGDHL_gv_thrallUI.lv_mainPanel, libCore_gv_playerGroupFromPlayer[lp_player], "TransitionToTop");
lv_traitCounter = 1;
for ( ; ( (auto4FF95022_ai >= 0 && lv_traitCounter <= auto4FF95022_ae) || (auto4FF95022_ai < 0 && lv_traitCounter >= auto4FF95022_ae) ) ; lv_traitCounter += auto4FF95022_ai ) {
DialogControlSetVisible(libGDHL_gv_thrallUI.lv_counterImage[lv_traitCounter], libCore_gv_playerGroupFromPlayer[lp_player], false);
}
}
else {
DialogControlSetVisible(libGDHL_gv_thrallUI.lv_counterImage[libGDHL_gv_thrallTraitCount[lp_player]], libCore_gv_playerGroupFromPlayer[lp_player], true);
}
}
void libGDHL_gf_UIClearThrallFrostwolfCount (int lp_player) {
// Variable Declarations
int lv_traitCounter;
// Automatic Variable Declarations
const int auto1AF3E679_ae = libGDHL_gv_thrallTraitMaxStacks;
const int auto1AF3E679_ai = 1;
// Variable Initialization
// Implementation
libGDHL_gv_thrallTraitCount[lp_player] = 0;
lv_traitCounter = 1;
for ( ; ( (auto1AF3E679_ai >= 0 && lv_traitCounter <= auto1AF3E679_ae) || (auto1AF3E679_ai < 0 && lv_traitCounter >= auto1AF3E679_ae) ) ; lv_traitCounter += auto1AF3E679_ai ) {
DialogControlSetVisible(libGDHL_gv_thrallUI.lv_counterImage[lv_traitCounter], libCore_gv_playerGroupFromPlayer[lp_player], false);
}
}
void libGDHL_gf_HeroTinkerIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroTinkerTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroTinkerTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroTinkerFocusTurretsSetTarget, true);
}
}
void libGDHL_gf_HeroTinkerDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroTinkerTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroTinkerTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroTinkerTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroTinkerTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroTinkerFocusTurretsSetTarget, false);
}
}
void libGDHL_gf_HeroTychusIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroTychusTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroTychusTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroTychusUpdateOrdersOnIssueOrderAbility, true);
TriggerEnable(libGDHL_gt_HeroTychusOverkillRollingReload, true);
TriggerEnable(libGDHL_gt_HeroTychusMasterAssassinHeroTakedownProc, true);
TriggerEnable(libGDHL_gt_HeroTychusRelentlessSoldierTalentProc, true);
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffOn, true);
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffOff, true);
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffHealPreviewCatalog, true);
}
}
void libGDHL_gf_HeroTychusDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroTychusTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroTychusTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroTychusTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroTychusTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroTychusUpdateOrdersOnIssueOrderAbility, false);
TriggerEnable(libGDHL_gt_HeroTychusOverkillRollingReload, false);
TriggerEnable(libGDHL_gt_HeroTychusMasterAssassinHeroTakedownProc, false);
TriggerEnable(libGDHL_gt_HeroTychusRelentlessSoldierTalentProc, false);
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffOn, false);
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffOff, false);
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffHealPreviewCatalog, false);
}
}
void libGDHL_gf_HeroTyraelIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroTyraelTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroTyraelTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationFacing, true);
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationTimerStart, true);
TriggerEnable(libGDHL_gt_HeroTyraelArchangelsWrathSuppressCollision, true);
TriggerEnable(libGDHL_gt_HeroTyraelArchangelsWrathDeathTimerModification, true);
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOn, true);
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOff, true);
}
}
void libGDHL_gf_HeroTyraelDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroTyraelTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroTyraelTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroTyraelTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroTyraelTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationFacing, false);
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationTimerStart, false);
TriggerEnable(libGDHL_gt_HeroTyraelArchangelsWrathSuppressCollision, false);
TriggerEnable(libGDHL_gt_HeroTyraelArchangelsWrathDeathTimerModification, false);
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOn, false);
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOff, false);
}
}
void libGDHL_gf_HeroTyrandeIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroTyrandeTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroTyrandeTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroTyrandeElunesChosenSetTarget, true);
TriggerEnable(libGDHL_gt_HeroTyrandeElunesChosenDamageProc, true);
TriggerEnable(libGDHL_gt_HeroTyrandeEyesOfTheHuntressActivate, true);
}
}
void libGDHL_gf_HeroTyrandeDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroTyrandeTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroTyrandeTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroTyrandeTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroTyrandeTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroTyrandeElunesChosenSetTarget, false);
TriggerEnable(libGDHL_gt_HeroTyrandeElunesChosenDamageProc, false);
TriggerEnable(libGDHL_gt_HeroTyrandeEyesOfTheHuntressActivate, false);
}
}
void libGDHL_gf_HeroWitchDoctorIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroWitchDoctorTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroWitchDoctorTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroWitchDoctorZombiePrisonKillZombies, true);
TriggerEnable(libGDHL_gt_HeroWitchDoctorZombiePrisonRelicZombiesSpawned, true);
TriggerEnable(libGDHL_gt_HeroWitchDoctorRavenousSpiritCast, true);
TriggerEnable(libGDHL_gt_HeroWitchDoctorRavenousSpiritExpires, true);
TriggerEnable(libGDHL_gt_HeroWitchDoctorPassiveTarget, true);
TriggerEnable(libGDHL_gt_HeroWitchDoctorGargantuanCreated, true);
TriggerEnable(libGDHL_gt_HeroWitchDoctorGargantuanStompUsed, true);
TriggerEnable(libGDHL_gt_HeroWitchDoctorVileInfectionTaken, true);
TriggerEnable(libGDHL_gt_HeroWitchDoctorBloodRitualHeroTakedownProc, true);
}
}
void libGDHL_gf_HeroWitchDoctorDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroWitchDoctorTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroWitchDoctorTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroWitchDoctorTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroWitchDoctorTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroWitchDoctorZombiePrisonKillZombies, false);
TriggerEnable(libGDHL_gt_HeroWitchDoctorZombiePrisonRelicZombiesSpawned, false);
TriggerEnable(libGDHL_gt_HeroWitchDoctorRavenousSpiritCast, false);
TriggerEnable(libGDHL_gt_HeroWitchDoctorRavenousSpiritExpires, false);
TriggerEnable(libGDHL_gt_HeroWitchDoctorPassiveTarget, false);
TriggerEnable(libGDHL_gt_HeroWitchDoctorGargantuanCreated, false);
TriggerEnable(libGDHL_gt_HeroWitchDoctorGargantuanStompUsed, false);
TriggerEnable(libGDHL_gt_HeroWitchDoctorVileInfectionTaken, false);
TriggerEnable(libGDHL_gt_HeroWitchDoctorBloodRitualHeroTakedownProc, false);
}
}
trigger auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_Trigger = null;
unit auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_witchDoctor;
unit auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_george;
int auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_player;
point auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_castPosition;
void libGDHL_gf_HeroWitchDoctorGargantuanAI (unit lp_witchDoctor, unit lp_george, int lp_player, point lp_castPosition) {
auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_witchDoctor = lp_witchDoctor;
auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_george = lp_george;
auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_player = lp_player;
auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_castPosition = lp_castPosition;
if (auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_Trigger == null) {
auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_Trigger = TriggerCreate("auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_TriggerFunc");
}
TriggerExecute(auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_Trigger, false, false);
}
bool auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_TriggerFunc (bool testConds, bool runActions) {
unit lp_witchDoctor = auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_witchDoctor;
unit lp_george = auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_george;
int lp_player = auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_player;
point lp_castPosition = auto_libGDHL_gf_HeroWitchDoctorGargantuanAI_lp_castPosition;
// Variable Declarations
unit lv_unitToFollow;
int lv_gargantuanState;
unit lv_gargantuanAggroTarget;
// Automatic Variable Declarations
// Variable Initialization
lv_unitToFollow = lp_witchDoctor;
lv_gargantuanState = libGDHL_ge_GargantuanState_Idle;
// Implementation
while ((UnitHasBehavior2(lp_witchDoctor, "WitchDoctorGargantuanActive") == true) && (UnitIsAlive(lp_george) == true)) {
if ((OrderGetAbilityCommand(UnitOrder(lp_george, 0)) == AbilityCommand("WitchDoctorGargantuanStomp", 0)) && (lv_gargantuanState != libGDHL_ge_GargantuanState_Approach)) {
if ((OrderGetAbilityCommand(UnitOrder(lp_george, 0)) != AbilityCommand("WitchDoctorGargantuanStomp", 0))) {
lv_gargantuanState = libGDHL_ge_GargantuanState_Idle;
}
}
else {
if ((UnitOrder(lp_george, 0) == null) && (lv_gargantuanState != libGDHL_ge_GargantuanState_Idle)) {
lv_gargantuanState = libGDHL_ge_GargantuanState_Idle;
}
else {
if ((OrderGetAbilityCommand(UnitOrder(lp_george, 0)) == AbilityCommand("attack", 0)) && (UnitTypeTestAttribute(UnitGetType(OrderGetTargetUnit(UnitOrder(lp_george, 0))), c_unitAttributeHeroic) == true)) {
lv_gargantuanState = libGDHL_ge_GargantuanState_Aggro;
}
}
if ((lv_gargantuanState != libGDHL_ge_GargantuanState_Aggro) && (OrderGetAbilityCommand(UnitOrder(lp_george, 0)) != AbilityCommand("WitchDoctorGargantuanStompCommand", 0))) {
if ((DistanceBetweenPoints(UnitGetPosition(lp_george), lp_castPosition) > libGDHL_gv_witchDoctor_Gargantuan_LeashRange_C)) {
UnitIssueOrder(lp_george, OrderTargetingPoint(AbilityCommand("move", 0), lp_castPosition), c_orderQueueReplace);
UnitBehaviorAdd(lp_george, "WitchDoctorGargantuanAggroSpeed", lp_witchDoctor, 1);
lv_gargantuanState = libGDHL_ge_GargantuanState_Leashing;
}
else {
if ((lv_gargantuanState == libGDHL_ge_GargantuanState_Idle)) {
UnitIssueOrder(lp_george, OrderTargetingPoint(AbilityCommand("attack", 0), lp_castPosition), c_orderQueueReplace);
}
}
}
else {
if ((OrderGetAbilityCommand(UnitOrder(lp_george, 0)) != AbilityCommand("WitchDoctorGargantuanStompCommand", 0)) && (UnitIsValid(OrderGetTargetUnit(UnitOrder(lp_george, 0))) == true) && ((DistanceBetweenPoints(UnitGetPosition(lp_george), lp_castPosition) > libGDHL_gv_witchDoctor_Gargantuan_LeashRange_C) || (UnitHasBehavior2(OrderGetTargetUnit(UnitOrder(lp_george, 0)), "LeoricUndying") == true) || (UnitHasBehavior2(OrderGetTargetUnit(UnitOrder(lp_george, 0)), "UtherEternalVanguardRezDelay") == true) || (UnitHasBehavior2(OrderGetTargetUnit(UnitOrder(lp_george, 0)), "TyraelArchangelsWrathDeathActiveBuff") == true) || (libAIAI_gf_AIUnitBehindEnemyGateEstimate(UnitGetPosition(lp_george), UnitGetOwner(lp_witchDoctor), OrderGetTargetUnit(UnitOrder(lp_george, 0))) == true))) {
UnitGroupRemove(libGDHL_gv_heroWitchDoctorGargantuanAggroGroup[lp_player], OrderGetTargetUnit(UnitOrder(lp_george, 0)));
UnitIssueOrder(lp_george, OrderTargetingPoint(AbilityCommand("move", 0), lp_castPosition), c_orderQueueReplace);
UnitBehaviorAdd(lp_george, "WitchDoctorGargantuanAggroSpeed", lp_witchDoctor, 1);
lv_gargantuanState = libGDHL_ge_GargantuanState_Leashing;
}
}
if ((OrderGetAbilityCommand(UnitOrder(lv_unitToFollow, 0)) == AbilityCommand("attack", 0)) && (lv_gargantuanState != libGDHL_ge_GargantuanState_Aggro) && ((DistanceBetweenPoints(UnitGetPosition(OrderGetTargetUnit(UnitOrder(lv_unitToFollow, 0))), lp_castPosition) + 0.5) <= libGDHL_gv_witchDoctor_Gargantuan_LeashRange_C)) {
UnitIssueOrder(lp_george, OrderTargetingUnit(AbilityCommand("attack", 0), OrderGetTargetUnit(UnitOrder(lv_unitToFollow, 0))), c_orderQueueReplace);
lv_gargantuanState = libGDHL_ge_GargantuanState_Idle;
}
if ((OrderGetAbilityCommand(UnitOrder(lp_george, 0)) == AbilityCommand("WitchDoctorGargantuanStompCommand", 0))) {
lv_gargantuanState = libGDHL_ge_GargantuanState_Approach;
}
}
Wait(0.125, c_timeGame);
}
UnitBehaviorRemove(lp_witchDoctor, "WitchDoctorGargantuanActive", 1);
return true;
}
void libGDHL_gf_HeroWizardIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroWizardTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroWizardTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroWizardCriticalMassCDReduction, true);
TriggerEnable(libGDHL_gt_HeroWizardDominance, true);
TriggerEnable(libGDHL_gt_HeroWizardIllusionistDamageCheck, true);
}
}
void libGDHL_gf_HeroWizardDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroWizardTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroWizardTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroWizardTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroWizardTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroWizardCriticalMassCDReduction, false);
TriggerEnable(libGDHL_gt_HeroWizardDominance, false);
TriggerEnable(libGDHL_gt_HeroWizardIllusionistDamageCheck, false);
}
}
void libGDHL_gf_HeroUtherIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroUtherTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroUtherTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroUtherBlessedChampionTargetProc, true);
TriggerEnable(libGDHL_gt_HeroUtherBlessedChampionSelfHealingProc, true);
TriggerEnable(libGDHL_gt_HeroUtherBlessedChampionDummyProcs, true);
TriggerEnable(libGDHL_gt_HeroUtherSpiritofRedemptionCooldownReset, true);
TriggerEnable(libGDHL_gt_HeroUtherEternalDevotionSuppressCollision, true);
TriggerEnable(libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOn, true);
TriggerEnable(libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOff, true);
}
}
void libGDHL_gf_HeroUtherDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroUtherTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroUtherTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroUtherTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroUtherTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroUtherBlessedChampionTargetProc, false);
TriggerEnable(libGDHL_gt_HeroUtherBlessedChampionSelfHealingProc, false);
TriggerEnable(libGDHL_gt_HeroUtherBlessedChampionDummyProcs, false);
TriggerEnable(libGDHL_gt_HeroUtherSpiritofRedemptionCooldownReset, false);
TriggerEnable(libGDHL_gt_HeroUtherEternalDevotionSuppressCollision, false);
TriggerEnable(libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOn, false);
TriggerEnable(libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOff, false);
}
}
void libGDHL_gf_HeroUtherBlessedChampionSetHeal (int lp_player) {
// Automatic Variable Declarations
// Implementation
CatalogFieldValueSet(c_gameCatalogEffect, "BlessedChampionCreateHealer", "RechargeVitalRate", lp_player, FixedToString((libGDHL_gv_heroUtherBlessedChampionStoredHealing[lp_player][1] + libGDHL_gv_heroUtherBlessedChampionStoredHealing[lp_player][2]), 2));
libGDHL_gv_heroUtherBlessedChampionRegisteredHeals[lp_player] = 0;
libGDHL_gv_heroUtherBlessedChampionStoredHealing[lp_player][1] = 0;
libGDHL_gv_heroUtherBlessedChampionStoredHealing[lp_player][2] = 0;
}
void libGDHL_gf_HeroZagaraIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroZagaraTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroZagaraTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroZagaraExitNydusWormUsed, true);
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormSpawned, true);
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormTargetingState, true);
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormDies, true);
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormDiesUpdateLineofSuccession, true);
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormExitAnimation, true);
TriggerEnable(libGDHL_gt_HeroZagaraBanelingBarrage, true);
TriggerEnable(libGDHL_gt_HeroZagaraHydraliskorMutaliskControl, true);
TriggerEnable(libGDHL_gt_HeroZagaraInfestedDropSpawnRoach, true);
TriggerEnable(libGDHL_gt_HeroZagaraInfestScaling, true);
TriggerEnable(libGDHL_gt_HeroZagaraTyrantMawCDRonDeath, true);
TriggerEnable(libGDHL_gt_HeroZagaraEndlessCreepApplyBehavior, true);
TriggerEnable(libGDHL_gt_HeroZagaraDevouringMawOverlayOn, true);
TriggerEnable(libGDHL_gt_HeroZagaraDevouringMawOverlayOff, true);
}
}
void libGDHL_gf_HeroZagaraDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroZagaraTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroZagaraTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroZagaraTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroZagaraTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroZagaraExitNydusWormUsed, false);
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormSpawned, false);
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormTargetingState, false);
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormDies, false);
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormDiesUpdateLineofSuccession, false);
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormExitAnimation, false);
TriggerEnable(libGDHL_gt_HeroZagaraBanelingBarrage, false);
TriggerEnable(libGDHL_gt_HeroZagaraInfestScaling, false);
TriggerEnable(libGDHL_gt_HeroZagaraHydraliskorMutaliskControl, false);
TriggerEnable(libGDHL_gt_HeroZagaraInfestedDropSpawnRoach, false);
TriggerEnable(libGDHL_gt_HeroZagaraTyrantMawCDRonDeath, false);
TriggerEnable(libGDHL_gt_HeroZagaraEndlessCreepApplyBehavior, false);
TriggerEnable(libGDHL_gt_HeroZagaraDevouringMawOverlayOn, false);
TriggerEnable(libGDHL_gt_HeroZagaraDevouringMawOverlayOff, false);
}
}
void libGDHL_gf_HeroZagaraUpdateNydusWormLineofSuccession (int lp_player) {
// Variable Declarations
unit lv_u;
// Automatic Variable Declarations
unitgroup auto5277D092_g;
int auto5277D092_u;
// Variable Initialization
// Implementation
if ((UnitGroupCount(libGDHL_gv_heroZagaraNydusWormUnitGroup[lp_player], c_unitCountAlive) > libGDHL_gv_heroZagaraMaxNydusWorms[lp_player])) {
auto5277D092_g = libGDHL_gv_heroZagaraNydusWormUnitGroup[lp_player];
auto5277D092_u = UnitGroupCount(auto5277D092_g, c_unitCountAll);
for (;; auto5277D092_u -= 1) {
lv_u = UnitGroupUnitFromEnd(auto5277D092_g, auto5277D092_u);
if (lv_u == null) { break; }
UnitGroupRemove(libGDHL_gv_heroZagaraNydusWormUnitGroup[lp_player], lv_u);
UnitKill(lv_u);
break;
}
}
}
void libGDHL_gf_HeroZeratulIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroZeratulTriggerRegistrationVariable += 1;
if ((libGDHL_gv_heroZeratulTriggerRegistrationVariable == 1)) {
TriggerEnable(libGDHL_gt_HeroZeratulGrimTaskProc, true);
TriggerEnable(libGDHL_gt_HeroZeratulVoidPrisonApplyStasisOverlay, true);
TriggerEnable(libGDHL_gt_HeroZeratulVoidPrisonRemoveStasisOverlay, true);
TriggerEnable(libGDHL_gt_HeroZeratulSeekerInTheDarkStructureTarget, true);
TriggerEnable(libGDHL_gt_HeroZeratulShroudofAdunFCT, true);
}
}
void libGDHL_gf_HeroZeratulDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libGDHL_gv_heroZeratulTriggerRegistrationVariable -= 1;
if ((libGDHL_gv_heroZeratulTriggerRegistrationVariable < 0)) {
libGDHL_gv_heroZeratulTriggerRegistrationVariable = 0;
}
if ((libGDHL_gv_heroZeratulTriggerRegistrationVariable == 0)) {
TriggerEnable(libGDHL_gt_HeroZeratulVoidPrisonApplyStasisOverlay, false);
TriggerEnable(libGDHL_gt_HeroZeratulGrimTaskProc, false);
TriggerEnable(libGDHL_gt_HeroZeratulVoidPrisonRemoveStasisOverlay, false);
TriggerEnable(libGDHL_gt_HeroZeratulSeekerInTheDarkStructureTarget, false);
TriggerEnable(libGDHL_gt_HeroZeratulShroudofAdunFCT, false);
}
}
// Triggers
//--------------------------------------------------------------------------------------------------
// Trigger: #Include Game Data Helper
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_IncludeGameDataHelper_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_IncludeGameDataHelper_Init () {
libGDHL_gt_IncludeGameDataHelper = TriggerCreate("libGDHL_gt_IncludeGameDataHelper_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Summoned Unit AP Application
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_SummonedUnitAPApplication_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((EventUnit() != null))) {
return false;
}
if (!((UnitGetOwner(EventUnitCreatedUnit()) <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitGetOwner(EventUnitCreatedUnit()) >= 1))) {
return false;
}
if (!(((UnitTypeTestAttribute(UnitGetType(EventUnitCreatedUnit()), c_unitAttributeSummoned) == true) || (UnitGetType(EventUnitCreatedUnit()) == "NovaHoloCloneCloaked")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gf_SiegeUpdateAbilityPowerOnSummonedUnits(EventUnitCreatedUnit());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_SummonedUnitAPApplication_Init () {
libGDHL_gt_SummonedUnitAPApplication = TriggerCreate("libGDHL_gt_SummonedUnitAPApplication_Func");
TriggerAddEventUnitCreated(libGDHL_gt_SummonedUnitAPApplication, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Summoned Unit Imposing Presence Application
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_SummonedUnitImposingPresenceApplication_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_attackingUnit;
unit lv_attackedUnit;
int lv_attackedPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_attackingUnit = EventPlayerEffectUsedUnitLaunch();
lv_attackedUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_attackedPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget);
// Conditions
if (testConds) {
if (!((lv_attackingUnit != null))) {
return false;
}
if (!((lv_attackedPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((lv_attackedPlayer >= 1))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_attackedUnit, "TalentImposingPresenceApplyDamageResponseBehavior", lv_attackingUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_SummonedUnitImposingPresenceApplication_Init () {
libGDHL_gt_SummonedUnitImposingPresenceApplication = TriggerCreate("libGDHL_gt_SummonedUnitImposingPresenceApplication_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_SummonedUnitImposingPresenceApplication, c_playerAny, "StormSummonedUnitApplyImposingPresenceDamageResponseDebuffToCasterTriggerDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Summoned Unit Damage Dealt Enum Target Caster Handled
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_SummonedUnitDamageDealtEnumTargetCasterHandled_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_summonUnit;
int lv_summonUnitOwner;
// Automatic Variable Declarations
// Variable Initialization
lv_summonUnit = EventPlayerEffectUsedUnitImpact();
lv_summonUnitOwner = EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget);
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(lv_summonUnit, "StormSummonedUnitDamagedUnitTracker") == true))) {
return false;
}
if (!((lv_summonUnit != null))) {
return false;
}
if (!((lv_summonUnitOwner <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((lv_summonUnitOwner >= 1))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((EventPlayerEffectUsed() == "StormSummonedUnitPhysicalDamageDealtDummy")) {
UnitCreateEffectUnit(lv_summonUnit, "StormStummonedUnitEnumUnitsSetPhysicalDamage", lv_summonUnit);
}
else if ((EventPlayerEffectUsed() == "StormSummonedUnitSpellDamageDealtDummy")) {
UnitCreateEffectUnit(lv_summonUnit, "StormStummonedUnitEnumUnitsSetSpellDamage", lv_summonUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_SummonedUnitDamageDealtEnumTargetCasterHandled_Init () {
libGDHL_gt_SummonedUnitDamageDealtEnumTargetCasterHandled = TriggerCreate("libGDHL_gt_SummonedUnitDamageDealtEnumTargetCasterHandled_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_SummonedUnitDamageDealtEnumTargetCasterHandled, c_playerAny, "StormSummonedUnitPhysicalDamageDealtDummy");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_SummonedUnitDamageDealtEnumTargetCasterHandled, c_playerAny, "StormSummonedUnitSpellDamageDealtDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Generic - Camera Shake Light Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericCameraShakeLightTarget_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitTarget)) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((DistanceBetweenPoints(EventPlayerEffectUsedPoint(c_effectLocationCasterPoint), CameraGetTarget(EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget))) <= 10.0)) {
CameraShake(EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget), "Light", "Shake", 0.1, 0.2, 0.3);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericCameraShakeLightTarget_Init () {
libGDHL_gt_HeroGenericCameraShakeLightTarget = TriggerCreate("libGDHL_gt_HeroGenericCameraShakeLightTarget_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroGenericCameraShakeLightTarget, c_playerAny, "CameraShakeLightTauntingTotemSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Generic - Camera Shake Medium Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericCameraShakeMediumTarget_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitTarget)) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((DistanceBetweenPoints(EventPlayerEffectUsedPoint(c_effectLocationCasterUnit), CameraGetTarget(EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget))) <= 10.0)) {
CameraShake(EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget), "Medium", "Shake", 0.1, 0.2, 0.3);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericCameraShakeMediumTarget_Init () {
libGDHL_gt_HeroGenericCameraShakeMediumTarget = TriggerCreate("libGDHL_gt_HeroGenericCameraShakeMediumTarget_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroGenericCameraShakeMediumTarget, c_playerAny, "CameraShakeMediumTauntingTotemSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Generic - Camera Shake Heavy Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericCameraShakeHeavyTarget_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitTarget)) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((DistanceBetweenPoints(EventPlayerEffectUsedPoint(c_effectLocationCasterUnit), CameraGetTarget(EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget))) <= 10.0)) {
CameraShake(EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget), "Heavy", "Shake", 0.1, 0.2, 0.3);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericCameraShakeHeavyTarget_Init () {
libGDHL_gt_HeroGenericCameraShakeHeavyTarget = TriggerCreate("libGDHL_gt_HeroGenericCameraShakeHeavyTarget_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroGenericCameraShakeHeavyTarget, c_playerAny, "CameraShakeHeavyTauntingTotemSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Generic - Camera Shake Auto Caster
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericCameraShakeAutoCaster_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((DistanceBetweenPoints(EventPlayerEffectUsedPoint(c_effectLocationCasterUnit), CameraGetTarget(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster))) <= 10.0)) {
CameraShake(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), "Medium", "Shake", 0.0, 0.125, 0.0625);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericCameraShakeAutoCaster_Init () {
libGDHL_gt_HeroGenericCameraShakeAutoCaster = TriggerCreate("libGDHL_gt_HeroGenericCameraShakeAutoCaster_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroGenericCameraShakeAutoCaster, c_playerAny, "CameraShakeAutoCasterDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Generic - Camera Shake Light Caster
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericCameraShakeLightCaster_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((DistanceBetweenPoints(EventPlayerEffectUsedPoint(c_effectLocationCasterUnit), CameraGetTarget(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster))) <= 10.0)) {
CameraShake(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), "Light", "Shake", 0.1, 0.2, 0.3);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericCameraShakeLightCaster_Init () {
libGDHL_gt_HeroGenericCameraShakeLightCaster = TriggerCreate("libGDHL_gt_HeroGenericCameraShakeLightCaster_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroGenericCameraShakeLightCaster, c_playerAny, "CameraShakeLightCasterDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Generic - Camera Shake Medium Caster
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericCameraShakeMediumCaster_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((DistanceBetweenPoints(EventPlayerEffectUsedPoint(c_effectLocationCasterUnit), CameraGetTarget(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster))) <= 10.0)) {
CameraShake(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), "Medium", "Shake", 0.1, 0.2, 0.3);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericCameraShakeMediumCaster_Init () {
libGDHL_gt_HeroGenericCameraShakeMediumCaster = TriggerCreate("libGDHL_gt_HeroGenericCameraShakeMediumCaster_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroGenericCameraShakeMediumCaster, c_playerAny, "CameraShakeMediumCasterDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Generic - Camera Shake Heavy Caster
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericCameraShakeHeavyCaster_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((DistanceBetweenPoints(EventPlayerEffectUsedPoint(c_effectLocationCasterUnit), CameraGetTarget(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster))) <= 10.0)) {
CameraShake(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), "Heavy", "Shake", 0.1, 0.2, 0.3);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericCameraShakeHeavyCaster_Init () {
libGDHL_gt_HeroGenericCameraShakeHeavyCaster = TriggerCreate("libGDHL_gt_HeroGenericCameraShakeHeavyCaster_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroGenericCameraShakeHeavyCaster, c_playerAny, "CameraShakeHeavyCasterDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero Generic - Speed Ribbon Controller
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericSpeedRibbonController_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Conditions
if (testConds) {
if (!((UnitTypeTestAttribute(UnitGetType(lv_unit), c_unitAttributeHeroic) == true))) {
return false;
}
if (!((EventUnitBehaviorChange() != c_unitBehaviorChangeCreate))) {
return false;
}
if (!((EventUnitBehaviorChange() != c_unitBehaviorChangeDestroy))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libNtve_gf_SendActorMessageToUnit(lv_unit, "Signal SpeedRibbonCheck");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericSpeedRibbonController_Init () {
libGDHL_gt_HeroGenericSpeedRibbonController = TriggerCreate("libGDHL_gt_HeroGenericSpeedRibbonController_Func");
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroGenericSpeedRibbonController, null, c_behaviorCategoryFast, c_unitBehaviorChangeAny);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroGenericSpeedRibbonController, null, c_behaviorCategorySlow, c_unitBehaviorChangeAny);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroGenericSpeedRibbonController, null, c_behaviorCategoryPushOrPull, c_unitBehaviorChangeAny);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroGenericSpeedRibbonController, null, c_behaviorCategoryTimeStop, c_unitBehaviorChangeAny);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero Generic - Slow FX Controller
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericSlowFXController_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Conditions
if (testConds) {
if (!((UnitTypeTestAttribute(UnitGetType(lv_unit), c_unitAttributeHeroic) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libNtve_gf_SendActorMessageToUnit(lv_unit, "Signal StormSlowCheck");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericSlowFXController_Init () {
libGDHL_gt_HeroGenericSlowFXController = TriggerCreate("libGDHL_gt_HeroGenericSlowFXController_Func");
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroGenericSlowFXController, null, c_behaviorCategorySlow, c_unitBehaviorChangeAny);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroGenericSlowFXController, null, c_behaviorCategoryPushOrPull, c_unitBehaviorChangeAny);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Generic - Reveal Cloaked Periodic Damage Source
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericRevealCloakedPeriodicDamageSource_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(EventPlayerEffectUsedUnitLaunch(), "PeriodicDamageRevealSourceCloakedRevealer", EventPlayerEffectUsedUnitImpact(), 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericRevealCloakedPeriodicDamageSource_Init () {
libGDHL_gt_HeroGenericRevealCloakedPeriodicDamageSource = TriggerCreate("libGDHL_gt_HeroGenericRevealCloakedPeriodicDamageSource_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroGenericRevealCloakedPeriodicDamageSource, c_playerAny, "PeriodicDamageRevealSourceApplyCloakedRevealerDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Generic - Reveal Cloaked One-Off Damage Source
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericRevealCloakedOneOffDamageSource_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(EventPlayerEffectUsedUnitLaunch(), "OneOffDamageRevealSourceCloakedRevealer", EventPlayerEffectUsedUnitImpact(), 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericRevealCloakedOneOffDamageSource_Init () {
libGDHL_gt_HeroGenericRevealCloakedOneOffDamageSource = TriggerCreate("libGDHL_gt_HeroGenericRevealCloakedOneOffDamageSource_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroGenericRevealCloakedOneOffDamageSource, c_playerAny, "OneOffDamageRevealSourceApplyCloakedRevealerDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Generic - Super Stealth Activate/Deactivate
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGenericSuperStealthActivateDeactivate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
if ((EventUnitBehaviorChange() == c_unitBehaviorChangeActivate)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(lv_player, libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_SuperCloakOverlay.StormCutscene", EventUnitBehavior());
}
else {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(lv_player, "Cutscenes\\GameUI_SuperCloakOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGenericSuperStealthActivateDeactivate_Init () {
libGDHL_gt_HeroGenericSuperStealthActivateDeactivate = TriggerCreate("libGDHL_gt_HeroGenericSuperStealthActivateDeactivate_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroGenericSuperStealthActivateDeactivate, null, "HeroGenericStationaryExtraStealthActive", c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroGenericSuperStealthActivateDeactivate, null, "HeroGenericStationaryExtraStealthActive", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - All - Hero Respec
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAllHeroRespec_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_thrall;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroRespecsTalentsPlayer();
lv_thrall = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(libGame_gv_players[lv_player].lv_heroUnit, "ResetQuestMinimums", libGame_gv_players[lv_player].lv_heroUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAllHeroRespec_Init () {
libGDHL_gt_HeroAllHeroRespec = TriggerCreate("libGDHL_gt_HeroAllHeroRespec_Func");
libGame_gf_HeroRespecsTalents(libGDHL_gt_HeroAllHeroRespec);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hearthstone - Teleport
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HearthstoneTeleport_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_hearthstonePlayer;
unit lv_hearthstoneUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_hearthstonePlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_hearthstoneUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Actions
if (!runActions) {
return true;
}
UIAlert("HearthstoneUsed", lv_hearthstonePlayer, StringToText(""), null);
libGame_gf_SendEventHeroPortedBackToTown(lv_hearthstonePlayer, lv_hearthstoneUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HearthstoneTeleport_Init () {
libGDHL_gt_HearthstoneTeleport = TriggerCreate("libGDHL_gt_HearthstoneTeleport_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HearthstoneTeleport, c_playerAny, "HearthstoneTeleport");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hearthstone - Channeling Buff - On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HearthstoneChannelingBuffOn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_hearthstoneUnit;
int lv_hearthstonePlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_hearthstoneUnit = EventUnit();
lv_hearthstonePlayer = UnitGetOwner(lv_hearthstoneUnit);
// Conditions
if (testConds) {
if (!((lv_hearthstonePlayer > 0))) {
return false;
}
if (!((lv_hearthstonePlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libUIUI_gf_PingPlayerStartsHearthStonePing(lv_hearthstonePlayer, UnitGetPosition(lv_hearthstoneUnit));
libSond_gf_HeroVOHeroBeginsHearthing(lv_hearthstonePlayer);
libUIUI_gf_UIPartyFrameHeroHearthstoneStart(lv_hearthstonePlayer, lv_hearthstoneUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HearthstoneChannelingBuffOn_Init () {
libGDHL_gt_HearthstoneChannelingBuffOn = TriggerCreate("libGDHL_gt_HearthstoneChannelingBuffOn_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HearthstoneChannelingBuffOn, null, "HearthstoneChannelingBuff", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hearthstone - Channeling Buff - Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HearthstoneChannelingBuffOff_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_hearthstoneUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_hearthstoneUnit = EventUnit();
// Actions
if (!runActions) {
return true;
}
libUIUI_gf_PingCancelPlayersHearthStonePing(UnitGetOwner(lv_hearthstoneUnit));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HearthstoneChannelingBuffOff_Init () {
libGDHL_gt_HearthstoneChannelingBuffOff = TriggerCreate("libGDHL_gt_HearthstoneChannelingBuffOff_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HearthstoneChannelingBuffOff, null, "HearthstoneChannelingBuff", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hearthstone - Channeling Buff - Canceled
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HearthstoneChannelingBuffCanceled_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_hearthstoneUnit;
int lv_hearthstonePlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_hearthstoneUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_hearthstonePlayer = UnitGetOwner(lv_hearthstoneUnit);
// Actions
if (!runActions) {
return true;
}
PingDestroy(libUIUI_gv_ping_PlayerHearth[lv_hearthstonePlayer]);
SoundPlayOnUnitForPlayer(SoundLink("Gen_Hearthstone_Teleport_Fizzle", -1), lv_hearthstonePlayer, PlayerGroupSingle(lv_hearthstonePlayer), lv_hearthstoneUnit, 0.0, 100.0, 0.0);
libUIUI_gf_UIPartyFrameHeroHearthstoneFizzle(lv_hearthstonePlayer, lv_hearthstoneUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HearthstoneChannelingBuffCanceled_Init () {
libGDHL_gt_HearthstoneChannelingBuffCanceled = TriggerCreate("libGDHL_gt_HearthstoneChannelingBuffCanceled_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HearthstoneChannelingBuffCanceled, c_playerAny, "HearthstoneChannelingBuffCancelDummyModifyUnit");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Heroic Summons - Unit Gains Heroic Summon Behavior
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroicSummonsUnitGainsHeroicSummonBehavior_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_summonedUnit;
unit lv_casterUnit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = UnitGetOwner(EventUnit());
lv_casterUnit = libGame_gv_players[lv_player].lv_heroUnit;
lv_summonedUnit = EventUnit();
libGDHL_gf_HeroicSummonsApplySummonedUnitTalentMonitor(lv_casterUnit, lv_summonedUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroicSummonsUnitGainsHeroicSummonBehavior_Init () {
libGDHL_gt_HeroicSummonsUnitGainsHeroicSummonBehavior = TriggerCreate("libGDHL_gt_HeroicSummonsUnitGainsHeroicSummonBehavior_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroicSummonsUnitGainsHeroicSummonBehavior, null, "HeroicSummon", c_unitBehaviorChangeIncrease);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Deep Tunnel Ping
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurDeepTunnelPing_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_abathurPlayer;
playergroup lv_alliedPlayers;
point lv_location;
// Automatic Variable Declarations
// Variable Initialization
lv_abathurPlayer = UnitGetOwner(EventUnit());
lv_alliedPlayers = PlayerGroupEmpty();
lv_location = EventUnitTargetPoint();
// Actions
if (!runActions) {
return true;
}
if ((TimerGetRemaining(libUIUI_gv_pingInputSuppressionTimer[lv_abathurPlayer]) > 0.0)) {
return true;
}
if ((TimerGetRemaining(libUIUI_gv_pingLockoutTimer[lv_abathurPlayer]) > 0.0)) {
return true;
}
libUIUI_gf_PingIncrementPingCountAndManageTimersForPlayer(lv_abathurPlayer);
lv_alliedPlayers = libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lv_abathurPlayer), false);
libNtve_gf_CreatePingFacingAngleWithType(lv_alliedPlayers, "DehakaBrushStalkerShrubClusterModelMiniMap", lv_location, Color(0.00, 5.49, 73.33), 3.0, 270.0, -1, -1);
if ((libGame_gv_players[lv_abathurPlayer].lv_activeVehicle != null)) {
UnitCreateEffectPoint(libGame_gv_players[lv_abathurPlayer].lv_activeVehicle, "DehakaBrushstalkerDummyPing", lv_location);
}
else {
UnitCreateEffectPoint(libGame_gv_players[lv_abathurPlayer].lv_heroUnit, "DehakaBrushstalkerDummyPing", lv_location);
}
TextExpressionSetToken("Param/Expression/lib_GDHL_0B78F471", "A", UnitTypeGetName(UnitGetType(libGame_gv_players[lv_abathurPlayer].lv_heroUnit)));
TextTagCreate(TextExpressionAssemble("Param/Expression/lib_GDHL_0B78F471"), 24, lv_location, 2.0, true, false, libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lv_abathurPlayer), false));
TextTagSetTime(TextTagLastCreated(), c_textTagTimeDuration, 3.5);
libGDHL_gv_abathurDeepTunnelPings[lv_abathurPlayer] = PingLastCreated();
PingSetScale(PingLastCreated(), 0.2);
if ((TimerGetRemaining(libGDHL_gv_abathurDeepTunnelPingTextLockoutTimer[lv_abathurPlayer]) > 0.0)) {
}
else {
TextExpressionSetToken("Param/Expression/lib_GDHL_602BD783", "A", StringExternal("Param/Value/lib_GDHL_719F971E"));
UIDisplayMessage(lv_alliedPlayers, c_messageAreaChat, TextExpressionAssemble("Param/Expression/lib_GDHL_602BD783"));
TimerStart(libGDHL_gv_abathurDeepTunnelPingTextLockoutTimer[lv_abathurPlayer], 10.0, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurDeepTunnelPing_Init () {
libGDHL_gt_HeroAbathurDeepTunnelPing = TriggerCreate("libGDHL_gt_HeroAbathurDeepTunnelPing_Func");
TriggerEnable(libGDHL_gt_HeroAbathurDeepTunnelPing, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroAbathurDeepTunnelPing, null, AbilityCommand("AbathurDeepTunnel", 0), c_abilEffectStageCast, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Abathur Exits Transport
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurAbathurExitsTransport_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroExitingTransportPlayerExiting();
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroAbathur"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((libGame_gv_players[lv_player].lv_activeVehicle != null)) {
lv_unit = libGame_gv_players[lv_player].lv_activeVehicle;
libUIUI_gf_UIHeroConsoleSetUpForPlayer(lv_unit, lv_player);
libUIUI_gf_HeroConsoleUnitStatusBarsSetUnitForBars(lv_unit, lv_player);
UnitStatusBarOverride(lv_unit, c_unitStatusGroupAll);
UnitClearSelection(lv_player);
UnitSelect(lv_unit, lv_player, true);
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_unit);
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
}
else {
UnitClearSelection(lv_player);
UnitSelect(libGame_gv_players[lv_player].lv_heroUnit, lv_player, true);
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurAbathurExitsTransport_Init () {
libGDHL_gt_HeroAbathurAbathurExitsTransport = TriggerCreate("libGDHL_gt_HeroAbathurAbathurExitsTransport_Func");
TriggerEnable(libGDHL_gt_HeroAbathurAbathurExitsTransport, false);
libGame_gf_HeroExitedTransport(libGDHL_gt_HeroAbathurAbathurExitsTransport);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Symbiote
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurSymbiote_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_abathur;
int lv_abathurPlayer;
unit lv_symbioteHost;
int lv_symbioteHostPlayer;
string lv_symbioteAbilityCooldownLink;
string lv_toxicNestAbilityCooldownLink;
fixed lv_spikeBurstRange;
fixed lv_symbioteFacing;
bool lv_symbioteFacingTriggerEnabled;
int lv_i;
// Automatic Variable Declarations
const int auto28C78E78_ae = libCore_gv_bALMaxPlayers;
const int auto28C78E78_ai = 1;
// Variable Initialization
lv_symbioteAbilityCooldownLink = "";
lv_toxicNestAbilityCooldownLink = "";
// Actions
if (!runActions) {
return true;
}
lv_abathur = EventPlayerEffectUsedUnit(c_effectUnitCaster);
if ((UnitIsAlive(lv_abathur) == true)) {
lv_abathurPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
if ((libGame_gv_afk_UseAFKSystem == true)) {
libGame_gf_AfkResetWarningTimerForPlayer(lv_abathurPlayer);
}
if ((libGame_gv_afk_PlayerStartingIdle[lv_abathurPlayer] == true)) {
libGame_gv_afk_PlayerStartingIdle[lv_abathurPlayer] = false;
}
UnitSetFacing(libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 315.0, 0.0);
lv_symbioteHost = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_symbioteHostPlayer = UnitGetOwner(lv_symbioteHost);
lv_symbioteAbilityCooldownLink = CatalogFieldValueGet(c_gameCatalogAbil, "AbathurSymbiote", "Cost[" + IntToString(0) + "].Cooldown.Link", lv_abathurPlayer);
lv_toxicNestAbilityCooldownLink = CatalogFieldValueGet(c_gameCatalogAbil, "AbathurToxicNest", "Cost[" + IntToString(0) + "].Cooldown.Link", lv_abathurPlayer);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "AbathurSymbiote", 0, lv_abathurPlayer, UnitGetPosition(lv_symbioteHost), lv_abathur);
libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer] = UnitLastCreated();
AIAddPlayerUnit(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer]);
UnitCreateEffectUnit(lv_symbioteHost, "SymbioteActorLink", libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer]);
UnitCreateEffectUnit(lv_symbioteHost, "AbathurSymbioteApplySuperStealthController", libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer]);
UnitCreateEffectUnit(lv_symbioteHost, "AbathurSymbioteApplyStealthController", libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer]);
UnitCreateEffectUnit(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer], "SymbiotePropertyLink", lv_symbioteHost);
SoundPlayForPlayer(SoundLink("Abathur_Symbiote_Screen_Launch", -1), lv_abathurPlayer, PlayerGroupSingle(lv_abathurPlayer), 100.0, 0.0);
SoundPlayForPlayer(SoundLink("Abathur_Symbiote_Screen_Loop", -1), lv_abathurPlayer, PlayerGroupSingle(lv_abathurPlayer), 100.0, 0.0);
libGDHL_gv_heroAbathurSymbioteScreenSound[lv_abathurPlayer] = SoundLastPlayed();
libGDHL_gf_SendEventAbathurSymbiote(lv_abathurPlayer, libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer], lv_symbioteHost);
if ((UnitBehaviorCount(lv_abathur, "PressurizedGlandsCarryBehavior") == 1)) {
lv_spikeBurstRange = (CatalogFieldValueGetAsFixed(c_gameCatalogEffect, "SpikeBurstPressurizedGlandsDamageSearch", "AreaArray[" + IntToString(0) + "].Radius", lv_abathurPlayer) + UnitGetPropertyFixed(lv_symbioteHost, c_unitPropRadius, c_unitPropCurrent));
CatalogFieldValueSetFixed(c_gameCatalogActor, "SymbioteSpikeBurstRangeSplat", "Scale", lv_abathurPlayer, (lv_spikeBurstRange * libGDHL_gv_heroAbathurSpikeBurstSplatScalar));
}
else {
lv_spikeBurstRange = (CatalogFieldValueGetAsFixed(c_gameCatalogEffect, "AbathurSymbioteSpikeBurstDamageSearch", "AreaArray[" + IntToString(0) + "].Radius", lv_abathurPlayer) + UnitGetPropertyFixed(lv_symbioteHost, c_unitPropRadius, c_unitPropCurrent));
CatalogFieldValueSetFixed(c_gameCatalogActor, "SymbioteSpikeBurstRangeSplat", "Scale", lv_abathurPlayer, (lv_spikeBurstRange * libGDHL_gv_heroAbathurSpikeBurstSplatScalar));
}
SoundPlayForPlayer(SoundLink("AbathurHero_Symbiote", -1), lv_abathurPlayer, PlayerGroupSingle(UnitGetOwner(lv_symbioteHost)), 100.0, 0.0);
UnitSelect(libGame_gv_players[lv_abathurPlayer].lv_heroUnit, lv_abathurPlayer, false);
UnitSelect(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer], lv_abathurPlayer, true);
UnitSelect(libGame_gv_players[lv_abathurPlayer].lv_heroUnit, lv_abathurPlayer, true);
if ((libGDHL_gv_heroAbathurSymbioteDontLockCameraforCutscene == false)) {
libGame_gv_players[lv_abathurPlayer].lv_cameraForcedLock = true;
libGame_gv_players[lv_abathurPlayer].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer]);
libGame_gf_CameraUpdateCameraForPlayer(lv_abathurPlayer);
}
libGDHL_gv_heroAbathurSymbioteEventAdded[lv_abathurPlayer] = true;
libGDHL_gv_heroAbathurSymbioteLookAt[lv_abathurPlayer] = UnitGetPosition(lv_symbioteHost);
libGDHL_gv_heroAbathurSymbioteActive[lv_abathurPlayer] = true;
libNtve_gf_MakeUnitFacePoint(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer], PointWithOffsetPolar(UnitGetPosition(lv_symbioteHost), 1.0, -90.0), 2.0);
while ((UnitIsAlive(lv_symbioteHost) == true) && (UnitBehaviorCount(lv_symbioteHost, "AbathurSymbioteHostBehavior") >= 1) && (UnitGetOwner(lv_symbioteHost) == lv_symbioteHostPlayer)) {
if ((DistanceBetweenPoints(UnitGetPosition(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer]), UnitGetPosition(lv_symbioteHost)) >= 4.0)) {
UnitSetPosition(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer], UnitGetPosition(lv_symbioteHost), false);
}
else {
UnitSetPosition(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer], UnitGetPosition(lv_symbioteHost), true);
}
if ((UnitFilterMatch(lv_symbioteHost, lv_abathurPlayer, UnitFilter(0, (1 << (c_targetFilterStasis - 32)), 0, 0)) == true)) {
if ((UnitHasBehavior2(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer], "AbathurSymbioteAbilityDisabler") == false)) {
UnitBehaviorAdd(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer], "AbathurSymbioteAbilityDisabler", lv_abathur, 1);
}
}
else {
if ((UnitHasBehavior2(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer], "AbathurSymbioteAbilityDisabler") == true)) {
UnitCreateEffectUnit(lv_abathur, "AbathurSymbioteRemoveAbilityDisabler", libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer]);
}
}
Wait(0.0625, c_timeGame);
}
UnitModifyCooldown(lv_abathur, lv_symbioteAbilityCooldownLink, 4.0, c_cooldownOperationSet);
UnitModifyCooldown(lv_abathur, lv_toxicNestAbilityCooldownLink, 0.5, c_cooldownOperationSet);
libGame_gv_players[lv_abathurPlayer].lv_cameraForcedLock = false;
libGame_gv_players[lv_abathurPlayer].lv_cameraPlayerUnitGroupToFocusOn = libGame_gv_players[lv_abathurPlayer].lv_heroUnitGroup;
libGame_gf_CameraUpdateCameraForPlayer(lv_abathurPlayer);
AIRemovePlayerUnit(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer]);
UnitKill(libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer]);
libGDHL_gv_heroAbathurSymbioteUnit[lv_abathurPlayer] = null;
UnitBehaviorRemove(lv_abathur, "AssumingDirectControlBehavior", 1);
lv_i = 1;
for ( ; ( (auto28C78E78_ai >= 0 && lv_i <= auto28C78E78_ae) || (auto28C78E78_ai < 0 && lv_i >= auto28C78E78_ae) ) ; lv_i += auto28C78E78_ai ) {
if ((libGDHL_gv_heroAbathurSymbioteActive[lv_i] == true)) {
lv_symbioteFacingTriggerEnabled = true;
break;
}
}
libGDHL_gv_heroAbathurSymbioteActive[lv_abathurPlayer] = false;
SoundStop(libGDHL_gv_heroAbathurSymbioteScreenSound[lv_abathurPlayer], false);
SoundPlayForPlayer(SoundLink("Abathur_Symbiote_Screen_End", -1), lv_abathurPlayer, PlayerGroupSingle(lv_abathurPlayer), 100.0, 0.0);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurSymbiote_Init () {
libGDHL_gt_HeroAbathurSymbiote = TriggerCreate("libGDHL_gt_HeroAbathurSymbiote_Func");
TriggerEnable(libGDHL_gt_HeroAbathurSymbiote, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurSymbiote, c_playerAny, "SymbioteApplyHostBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Carapace Regenerative Microbes
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_abathur;
int lv_abathurPlayer;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_abathurPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_abathur = libGame_gv_players[lv_abathurPlayer].lv_heroUnit;
UnitCreateEffectUnit(lv_abathur, "RegenerativeMicrobesApplyBehavior", EventPlayerEffectUsedUnit(c_effectUnitTarget));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes_Init () {
libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes = TriggerCreate("libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes_Func");
TriggerEnable(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, c_playerAny, "CarapaceEvolutionApplyShield");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, c_playerAny, "CarapaceEvolutionApplyShieldHivemind");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, c_playerAny, "AbathurSymbioteApplyCarapaceNetworkedCarapaceTalentShield");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, c_playerAny, "AbathurSymbioteApplyCarapaceNetworkedCarapaceHivemindTalentShield");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Symbiote Screen Effect
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurSymbioteScreenEffect_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
if ((EventUnitBehaviorChange() == c_unitBehaviorChangeActivate)) {
DialogControlFadeTransparency(libUIUI_gv_fullscreenOverlaysPanel.lv_abathurSymbioteOverlay, PlayerGroupSingle(lv_player), 0.5, 0.0);
UISetSelectionTypeEnabled(PlayerGroupSingle(lv_player), c_localSelectionTypeWorldPanelHero, false);
}
else {
DialogControlFadeTransparency(libUIUI_gv_fullscreenOverlaysPanel.lv_abathurSymbioteOverlay, PlayerGroupSingle(lv_player), 0.5, 100.0);
UISetSelectionTypeEnabled(PlayerGroupSingle(lv_player), c_localSelectionTypeWorldPanelHero, true);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurSymbioteScreenEffect_Init () {
libGDHL_gt_HeroAbathurSymbioteScreenEffect = TriggerCreate("libGDHL_gt_HeroAbathurSymbioteScreenEffect_Func");
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteScreenEffect, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroAbathurSymbioteScreenEffect, null, "AssumingDirectControlBehavior", c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroAbathurSymbioteScreenEffect, null, "AssumingDirectControlBehavior", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Stab Facer
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurStabFacer_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libNtve_gf_MakeUnitFacePoint(EventPlayerEffectUsedUnit(c_effectUnitCaster), EventPlayerEffectUsedPoint(c_effectLocationTargetPoint), 0.0625);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurStabFacer_Init () {
libGDHL_gt_HeroAbathurStabFacer = TriggerCreate("libGDHL_gt_HeroAbathurStabFacer_Func");
TriggerEnable(libGDHL_gt_HeroAbathurStabFacer, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurStabFacer, c_playerAny, "StabCreateSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Volatile Mutation (Ultimate Evolution)
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurVolatileMutationUltimateEvolution_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Conditions
if (testConds) {
if (!((PlayerHasTalent(UnitGetOwner(lv_unit), "AbathurVolatileMutation") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(lv_unit, "AbathurVolatileMutation", lv_unit, 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurVolatileMutationUltimateEvolution_Init () {
libGDHL_gt_HeroAbathurVolatileMutationUltimateEvolution = TriggerCreate("libGDHL_gt_HeroAbathurVolatileMutationUltimateEvolution_Func");
TriggerEnable(libGDHL_gt_HeroAbathurVolatileMutationUltimateEvolution, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroAbathurVolatileMutationUltimateEvolution, null, "UltimateEvolutionBuild", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Ultimate Evolution - Start Control
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurUltimateEvolutionStartControl_Func (bool testConds, bool runActions) {
// Variable Declarations
string lv_abilLink;
string lv_cooldownLink;
unit lv_abathur;
int lv_abathurPlayer;
int lv_abathurLevel;
unit lv_ultimateEvolutionUnit;
fixed lv_multiplier;
fixed lv_lifeofTarget;
int lv_itHeroicAbil;
unit lv_target;
int lv_ownerofTarget;
string lv_typeofCopiedUnit;
// Automatic Variable Declarations
int auto763D98BE_n;
int auto763D98BE_i;
// Variable Initialization
lv_cooldownLink = "";
lv_abathur = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_abathurPlayer = UnitGetOwner(lv_abathur);
lv_abathurLevel = libGame_gf_GetCustomValueLevelofHeroUnit(lv_abathur);
lv_target = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_ownerofTarget = UnitGetOwner(lv_target);
lv_typeofCopiedUnit = UnitGetType(EventPlayerEffectUsedUnit(c_effectUnitTarget));
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(lv_target, "UltimateEvolutionInvalidTarget") == true)) {
UnitCreateEffectUnit(lv_abathur, "AbathurUltimateEvolutionInterruptModifyCooldown", lv_abathur);
UnitBehaviorRemove(lv_abathur, "AbathurUltimateEvolutionVehicleCasterBehavior", 1);
UnitBehaviorRemove(lv_abathur, "AssumingDirectControlBehavior", 1);
return true;
}
if ((UnitIsAlive(lv_abathur) == false)) {
UnitBehaviorRemove(lv_abathur, "AssumingDirectControlBehavior", 1);
return true;
}
lv_multiplier = ((UnitLevel(libGame_gv_players[lv_abathurPlayer].lv_heroUnit) * 150.0) + 0.0);
lv_lifeofTarget = UnitGetPropertyFixed(lv_target, c_unitPropLifeMax, c_unitPropNormal);
PlayerSetSkin(lv_abathurPlayer, libGame_gv_players[UnitGetOwner(lv_target)].lv_skinData.lv_skinID);
if ((UnitGetOwner(lv_target) <= libCore_gv_bALMaxPlayers) && (libGame_gv_players[UnitGetOwner(lv_target)].lv_activeVehicle != null)) {
libNtve_gf_CreateUnitsWithDefaultFacing(1, lv_typeofCopiedUnit, 0, lv_abathurPlayer, UnitTypePlacementFromPoint(lv_typeofCopiedUnit, lv_abathurPlayer, UnitGetPosition(libGame_gv_players[lv_ownerofTarget].lv_activeVehicle), 35.0), lv_abathur);
}
else {
libNtve_gf_CreateUnitsWithDefaultFacing(1, lv_typeofCopiedUnit, 0, lv_abathurPlayer, UnitTypePlacementFromPoint(lv_typeofCopiedUnit, lv_abathurPlayer, UnitGetPosition(lv_target), 35.0), lv_abathur);
}
lv_ultimateEvolutionUnit = UnitLastCreated();
AIRemovePlayerUnit(lv_abathur);
AIAddPlayerUnit(lv_ultimateEvolutionUnit);
libUIUI_gf_UIUnitStatusFramesUpdateUnitStatusFramesForUnit(lv_abathurPlayer, lv_ultimateEvolutionUnit);
libUIUI_gf_InitPathingLines(lv_ultimateEvolutionUnit, lv_abathurPlayer);
UnitSetPropertyFixed(lv_ultimateEvolutionUnit, c_unitPropLife, UnitGetPropertyFixed(lv_ultimateEvolutionUnit, c_unitPropLifeMax, c_unitPropCurrent));
UnitBehaviorAdd(lv_ultimateEvolutionUnit, "UltimateEvolutionBuild", libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 1);
UnitBehaviorAdd(lv_ultimateEvolutionUnit, "UltimateEvolutionBuff", libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 1);
UnitBehaviorAdd(lv_ultimateEvolutionUnit, "SuppressGenericDeath", libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 1);
UnitBehaviorAdd(lv_ultimateEvolutionUnit, "SuppressGenericDeathRagdoll", libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 1);
UnitBehaviorAdd(lv_ultimateEvolutionUnit, "AbathurUltimateEvolutionControlBehavior", libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 1);
UnitBehaviorAdd(lv_ultimateEvolutionUnit, "EarnsXP", libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 1);
UnitBehaviorAdd(lv_ultimateEvolutionUnit, "UltimateEvolutionThreatIncrease", libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 1);
UnitBehaviorAdd(lv_ultimateEvolutionUnit, "UltimateEvolutionPlaystyleAdjustment", libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 1);
UnitBehaviorAdd(lv_ultimateEvolutionUnit, "CapturePointAllowed", libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 1);
SoundPlayForPlayer(SoundLink("Abathur_UltimateEvolution_Screen_Loop", -1), lv_abathurPlayer, PlayerGroupSingle(lv_abathurPlayer), 100.0, 0.0);
UnitXPAddXP(lv_ultimateEvolutionUnit, null, libCore_gf_GetTotalXPForLevel(lv_abathurLevel));
CatalogFieldValueSet(c_gameCatalogAbil, "Mount", "CastIntroTime[" + IntToString(0) + "]", UnitGetOwner(lv_abathur), CatalogFieldValueGet(c_gameCatalogAbil, "Mount", "CastIntroTime[" + IntToString(0) + "]", 0));
if ((libMapM_gf_MapMechanicExistsOnMap("BlackheartsBay") == true)) {
UnitBehaviorAdd(lv_ultimateEvolutionUnit, "MapMechanicStack", lv_ultimateEvolutionUnit, UnitBehaviorCount(lv_abathur, "MapMechanicStack"));
}
libGame_gv_players[lv_abathurPlayer].lv_activeVehicle = lv_ultimateEvolutionUnit;
UnitSetPropertyFixed(libGame_gv_players[lv_abathurPlayer].lv_activeVehicle, c_unitPropLevel, lv_abathurLevel);
libUIUI_gf_UIHeroConsoleSetUpForPlayer(lv_ultimateEvolutionUnit, lv_abathurPlayer);
libUIUI_gf_HeroConsoleUnitStatusBarsSetUnitForBars(lv_ultimateEvolutionUnit, lv_abathurPlayer);
UnitStatusBarOverride(lv_ultimateEvolutionUnit, c_unitStatusGroupAll);
libGame_gf_RemoveLevelUpHeroStatsForPlayer(UnitGetType(lv_ultimateEvolutionUnit), lv_abathurPlayer);
auto763D98BE_n = lv_abathurLevel;
for (auto763D98BE_i = 1; auto763D98BE_i <= auto763D98BE_n; auto763D98BE_i += 1) {
libGame_gf_ApplyLevelUpHeroStatsForHeroSingleLevel(lv_ultimateEvolutionUnit);
}
UnitClearSelection(lv_abathurPlayer);
UnitSelect(lv_ultimateEvolutionUnit, lv_abathurPlayer, true);
libGame_gv_players[lv_abathurPlayer].lv_cameraPlayerHasControl = false;
libGame_gv_players[lv_abathurPlayer].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_ultimateEvolutionUnit);
libGame_gf_CameraUpdateCameraForPlayer(lv_abathurPlayer);
libGame_gv_players[lv_abathurPlayer].lv_cameraPlayerHasControl = true;
libGame_gf_CameraUpdateCameraForPlayer(lv_abathurPlayer);
libGDHL_gf_SendEventAbathurUltimateEvolutionHeroCopied(lv_abathurPlayer, lv_ownerofTarget);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurUltimateEvolutionStartControl_Init () {
libGDHL_gt_HeroAbathurUltimateEvolutionStartControl = TriggerCreate("libGDHL_gt_HeroAbathurUltimateEvolutionStartControl_Func");
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionStartControl, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurUltimateEvolutionStartControl, c_playerAny, "UltimateEvolutionCastDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Ultimate Evolution - Stop Control
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurUltimateEvolutionStopControl_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_ultimateEvolutionUnit;
int lv_ownerPlayer;
int lv_itPlayer;
int lv_teamNumberofOwner;
bool lv_vehicleTransferCase;
string lv_abilLink;
string lv_cooldownLink;
fixed lv_cooldownValue;
// Automatic Variable Declarations
playergroup autoC3EC0AA3_g;
int autoC3EC0AA3_var;
playergroup auto6824BDCC_g;
int auto6824BDCC_var;
// Variable Initialization
lv_vehicleTransferCase = true;
lv_cooldownLink = "";
// Conditions
if (testConds) {
if (!((libGDHL_gv_heroAbathurStopControlIgnoredforPlayer[UnitGetOwner(EventUnit())] == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_ultimateEvolutionUnit = EventUnit();
lv_ownerPlayer = UnitGetOwner(lv_ultimateEvolutionUnit);
lv_teamNumberofOwner = libGame_gf_TeamNumberOfPlayer(lv_ownerPlayer);
AIRemovePlayerUnit(lv_ultimateEvolutionUnit);
AIAddPlayerUnit(libGame_gv_players[lv_ownerPlayer].lv_heroUnit);
autoC3EC0AA3_g = libGame_gv_teams[lv_teamNumberofOwner].lv_teamPlayerGroup;
autoC3EC0AA3_var = -1;
while (true) {
autoC3EC0AA3_var = PlayerGroupNextPlayer(autoC3EC0AA3_g, autoC3EC0AA3_var);
if (autoC3EC0AA3_var<0) { break; }
if ((libGame_gv_players[autoC3EC0AA3_var].lv_activeVehicle == lv_ultimateEvolutionUnit)) {
libGDHL_gf_SendEventAbathurUltimateEvolutionEnded(lv_ownerPlayer, lv_ultimateEvolutionUnit);
libUIUI_gf_UIUnitStatusFramesRemoveUnitfromUnitStatusFrameHookup(lv_ownerPlayer, lv_ultimateEvolutionUnit);
UnitBehaviorRemove(libGame_gv_players[autoC3EC0AA3_var].lv_heroUnit, "AbathurUltimateEvolutionVehicleCasterBehavior", 1);
libGame_gv_players[autoC3EC0AA3_var].lv_activeVehicle = null;
lv_vehicleTransferCase = false;
break;
}
}
if ((lv_vehicleTransferCase == true)) {
UnitBehaviorRemove(libGame_gv_players[lv_ownerPlayer].lv_heroUnit, "AssumingDirectControlBehavior", 1);
return true;
}
auto6824BDCC_g = libGame_gv_teams[lv_teamNumberofOwner].lv_teamPlayerGroup;
auto6824BDCC_var = -1;
while (true) {
auto6824BDCC_var = PlayerGroupNextPlayer(auto6824BDCC_g, auto6824BDCC_var);
if (auto6824BDCC_var<0) { break; }
if ((UnitGetType(libGame_gv_players[auto6824BDCC_var].lv_heroUnit) == "HeroAbathur")) {
PlayerSetSkin(auto6824BDCC_var, libGame_gv_players[auto6824BDCC_var].lv_skinData.lv_skinID);
UnitSelect(lv_ultimateEvolutionUnit, auto6824BDCC_var, false);
UnitSelect(libGame_gv_players[auto6824BDCC_var].lv_heroUnit, auto6824BDCC_var, true);
Wait(0.5, c_timeGame);
UnitBehaviorRemove(libGame_gv_players[lv_ownerPlayer].lv_heroUnit, "AssumingDirectControlBehavior", 1);
libGame_gv_players[auto6824BDCC_var].lv_cameraPlayerUnitGroupToFocusOn = libGame_gv_players[auto6824BDCC_var].lv_heroUnitGroup;
libGame_gf_CameraUpdateCameraForPlayer(auto6824BDCC_var);
libUIUI_gf_UIHeroConsoleSetUpForPlayer(libGame_gv_players[auto6824BDCC_var].lv_heroUnit, auto6824BDCC_var);
libUIUI_gf_HeroConsoleUnitStatusBarsSetUnitForBars(libGame_gv_players[auto6824BDCC_var].lv_heroUnit, auto6824BDCC_var);
lv_abilLink = "AbathurUltimateEvolution";
lv_cooldownLink = CatalogFieldValueGet(c_gameCatalogAbil, lv_abilLink, "Cost[" + IntToString(0) + "].Cooldown.Link", auto6824BDCC_var);
lv_cooldownValue = CatalogFieldValueGetAsInt(c_gameCatalogAbil, lv_abilLink, "Cost[" + IntToString(0) + "].Cooldown.TimeUse", auto6824BDCC_var);
UnitModifyCooldown(libGame_gv_players[auto6824BDCC_var].lv_heroUnit, lv_cooldownLink, lv_cooldownValue, c_cooldownOperationSet);
if ((libMapM_gf_MapMechanicExistsOnMap("BlackheartsBay") == true) && (UnitBehaviorCount(lv_ultimateEvolutionUnit, "MapMechanicStack") > UnitBehaviorCount(libGame_gv_players[auto6824BDCC_var].lv_heroUnit, "MapMechanicStack"))) {
UnitBehaviorAdd(libGame_gv_players[auto6824BDCC_var].lv_heroUnit, "MapMechanicStack", libGame_gv_players[auto6824BDCC_var].lv_heroUnit, (UnitBehaviorCount(lv_ultimateEvolutionUnit, "MapMechanicStack") - UnitBehaviorCount(libGame_gv_players[auto6824BDCC_var].lv_heroUnit, "MapMechanicStack")));
}
break;
}
}
libGame_gv_players[lv_ownerPlayer].lv_heroUsesAnnouncementAlias = false;
libGame_gv_players[lv_ownerPlayer].lv_heroAnnouncementAliasText = null;
libGame_gv_players[lv_ownerPlayer].lv_heroAnnouncementAliasIcon = null;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurUltimateEvolutionStopControl_Init () {
libGDHL_gt_HeroAbathurUltimateEvolutionStopControl = TriggerCreate("libGDHL_gt_HeroAbathurUltimateEvolutionStopControl_Func");
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionStopControl, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroAbathurUltimateEvolutionStopControl, null, "AbathurUltimateEvolutionControlBehavior", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Ultimate Evolution - Game End
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurUltimateEvolutionGameEnd_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
playergroup autoD9D8C168_g;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
autoD9D8C168_g = PlayerGroupAll();
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(autoD9D8C168_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
UnitBehaviorRemove(libGame_gv_players[lv_itPlayer].lv_activeVehicle, "AbathurUltimateEvolutionControlBehavior", 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurUltimateEvolutionGameEnd_Init () {
libGDHL_gt_HeroAbathurUltimateEvolutionGameEnd = TriggerCreate("libGDHL_gt_HeroAbathurUltimateEvolutionGameEnd_Func");
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionGameEnd, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroAbathurUltimateEvolutionGameEnd, UnitRefFromVariable("libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_core"));
TriggerAddEventUnitDied(libGDHL_gt_HeroAbathurUltimateEvolutionGameEnd, UnitRefFromVariable("libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_core"));
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Ultimate Evolution - Unit Dead
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurUltimateEvolutionUnitDead_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_targetPlayer;
playergroup lv_allyPlayerGroup;
playergroup lv_enemyPlayerGroup;
playergroup lv_awardGroup;
int lv_itPlayer;
int lv_ownerPlayer;
unit lv_itCleanupTargets;
playergroup lv_killingGroup;
// Automatic Variable Declarations
playergroup autoC8F5471D_g;
// Variable Initialization
lv_unit = EventUnit();
lv_targetPlayer = UnitGetOwner(EventUnit());
lv_allyPlayerGroup = PlayerGroupEmpty();
lv_enemyPlayerGroup = PlayerGroupEmpty();
lv_awardGroup = PlayerGroupEmpty();
lv_killingGroup = PlayerGroupEmpty();
// Conditions
if (testConds) {
if (!((UnitTypeTestAttribute(UnitGetType(lv_unit), c_unitAttributeHeroic) == true))) {
return false;
}
if (!(((UnitHasBehavior2(lv_unit, "UltimateEvolutionBuff") == true) || (UnitHasBehavior2(lv_unit, "UltimateEvolutionBuild") == true)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libNtve_gf_MakeUnitUncommandable(lv_unit, true);
libGame_gf_ShareUnshareVisionOfAlliesForPlayer(true, lv_targetPlayer);
lv_allyPlayerGroup = libGame_gf_AlliedPlayerGroupOfPlayer(lv_targetPlayer);
autoC8F5471D_g = lv_allyPlayerGroup;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(autoC8F5471D_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
PlayerSetAlliance(lv_itPlayer, c_allianceIdSeekHelp, lv_targetPlayer, true);
PlayerSetAlliance(lv_itPlayer, c_allianceIdGiveHelp, lv_targetPlayer, true);
}
UnitBehaviorRemove(lv_unit, "UltimateEvolutionBuff", 1);
UnitRemove(lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurUltimateEvolutionUnitDead_Init () {
libGDHL_gt_HeroAbathurUltimateEvolutionUnitDead = TriggerCreate("libGDHL_gt_HeroAbathurUltimateEvolutionUnitDead_Func");
TriggerEnable(libGDHL_gt_HeroAbathurUltimateEvolutionUnitDead, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroAbathurUltimateEvolutionUnitDead, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Locust Spawned
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurLocustSpawned_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_locustUnit;
unit lv_effectSource;
int lv_locustUnitOwner;
// Automatic Variable Declarations
// Variable Initialization
lv_locustUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_effectSource = EventPlayerEffectUsedUnit(c_effectUnitSource);
lv_locustUnitOwner = UnitGetOwner(lv_locustUnit);
// Actions
if (!runActions) {
return true;
}
UnitGroupAdd(libGame_gv_players[lv_locustUnitOwner].lv_summonedUnitGroup, lv_locustUnit);
UnitSetFacing(lv_locustUnit, UnitGetFacing(lv_effectSource), 0.0);
UnitIssueOrder(lv_locustUnit, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_effectSource), 1.5, UnitGetFacing(lv_effectSource))), c_orderQueueAddToFront);
Wait(0.5, c_timeGame);
if ((UnitIsValid(lv_locustUnit) == true) && (lv_locustUnitOwner > 0) && (lv_locustUnitOwner <= libCore_gv_bALMaxPlayers)) {
UnitCreateAIThinkTree(lv_locustUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurLocustSpawned_Init () {
libGDHL_gt_HeroAbathurLocustSpawned = TriggerCreate("libGDHL_gt_HeroAbathurLocustSpawned_Func");
TriggerEnable(libGDHL_gt_HeroAbathurLocustSpawned, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurLocustSpawned, c_playerAny, "LocustSpawnLanerDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Locust Nest Set Facing
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurLocustNestSetFacing_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnitCreatedUnit();
// Actions
if (!runActions) {
return true;
}
libNtve_gf_MakeUnitFacePoint(lv_unit, UnitGetPosition(libGame_gv_teams[libGame_gf_EnemyTeamNumberOfPlayer(UnitGetOwner(lv_unit))].lv_core), 0.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurLocustNestSetFacing_Init () {
libGDHL_gt_HeroAbathurLocustNestSetFacing = TriggerCreate("libGDHL_gt_HeroAbathurLocustNestSetFacing_Func");
TriggerEnable(libGDHL_gt_HeroAbathurLocustNestSetFacing, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroAbathurLocustNestSetFacing, null, "AbathurLocustNest", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Locust Nest Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurLocustNestCast_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
unitgroup auto6D59DEB0_g;
int auto6D59DEB0_u;
unit auto6D59DEB0_var;
// Variable Initialization
lv_player = UnitGetOwner(EventUnitCreatedUnit());
// Actions
if (!runActions) {
return true;
}
auto6D59DEB0_g = UnitGroupFilter("AbathurLocustNest", lv_player, libGame_gv_players[lv_player].lv_summonedUnitGroup, UnitFilter(0, 0, 0, (1 << (c_targetFilterDead - 32))), 0);
auto6D59DEB0_u = UnitGroupCount(auto6D59DEB0_g, c_unitCountAll);
for (;; auto6D59DEB0_u -= 1) {
auto6D59DEB0_var = UnitGroupUnitFromEnd(auto6D59DEB0_g, auto6D59DEB0_u);
if (auto6D59DEB0_var == null) { break; }
UnitKill(auto6D59DEB0_var);
}
UnitGroupAdd(libGame_gv_players[lv_player].lv_summonedUnitGroup, EventUnitCreatedUnit());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurLocustNestCast_Init () {
libGDHL_gt_HeroAbathurLocustNestCast = TriggerCreate("libGDHL_gt_HeroAbathurLocustNestCast_Func");
TriggerEnable(libGDHL_gt_HeroAbathurLocustNestCast, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroAbathurLocustNestCast, null, "AbathurLocustNest", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Symbiote Hivemind (Single Target)
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurSymbioteHivemindSingleTarget_Func (bool testConds, bool runActions) {
// Variable Declarations
unitgroup lv_possibleSymbioteHivemindHosts;
int lv_numSymbioteHivemindHosts;
libGDHL_gs_SymbioteHivemind lv_symbioteHivemind;
unit lv_symbioteHivemindHost;
unit lv_itPossibleSymbioteHivemindHost;
unit lv_mainSymbioteHost;
unit lv_mainSymbiote;
int lv_abathurPlayer;
int lv_hivemindSymbioteHostCounter;
// Automatic Variable Declarations
unitgroup autoFE393C25_g;
int autoFE393C25_u;
// Variable Initialization
lv_possibleSymbioteHivemindHosts = UnitGroupEmpty();
// Actions
if (!runActions) {
return true;
}
lv_abathurPlayer = libGDHL_gf_AbathurSymbioteAbathurPlayer();
lv_mainSymbioteHost = libGDHL_gf_AbathurSymbioteTarget();
lv_mainSymbiote = libGDHL_gf_AbathurSymbioteUnit();
while ((UnitIsAlive(lv_mainSymbiote) == true) && (UnitIsAlive(lv_mainSymbioteHost) == true)) {
if ((PlayerHasTalent(libGDHL_gf_AbathurSymbioteAbathurPlayer(), "AbathurSymbioteHivemind") == true)) {
lv_possibleSymbioteHivemindHosts = libNtve_gf_UnitsInRegionWithAllianceToPlayerMatchingCondition(null, "", "", lv_abathurPlayer, c_unitAllianceAllyExcludeSelf, RegionCircle(UnitGetPosition(lv_mainSymbioteHost), libGDHL_gv_abathurSymbioteHivemindCastRange_C), libCore_gv_filtersHeroicAllyandnotImmuneToFriendlyAbilitiesorBenign, (libGDHL_gv_abathurSymbioteHivemindMaxHosts_C + 1));
autoFE393C25_g = lv_possibleSymbioteHivemindHosts;
autoFE393C25_u = UnitGroupCount(autoFE393C25_g, c_unitCountAll);
for (;; autoFE393C25_u -= 1) {
lv_itPossibleSymbioteHivemindHost = UnitGroupUnitFromEnd(autoFE393C25_g, autoFE393C25_u);
if (lv_itPossibleSymbioteHivemindHost == null) { break; }
if (((lv_itPossibleSymbioteHivemindHost == lv_mainSymbioteHost) || (UnitHasBehavior2(lv_itPossibleSymbioteHivemindHost, "Dead") == true))) {
UnitGroupRemove(lv_possibleSymbioteHivemindHosts, lv_itPossibleSymbioteHivemindHost);
break;
}
}
if ((UnitGroupCount(lv_possibleSymbioteHivemindHosts, c_unitCountAlive) <= 0)) {
Wait(0.0625, c_timeGame);
continue;
}
lv_symbioteHivemindHost = UnitGroupClosestToPoint(lv_possibleSymbioteHivemindHosts, UnitGetPosition(lv_mainSymbioteHost));
libNtve_gf_CreateUnitsWithDefaultFacing(1, "AbathurSymbiote", 0, lv_abathurPlayer, UnitGetPosition(lv_symbioteHivemindHost), libGame_gv_players[lv_abathurPlayer].lv_heroUnit);
lv_symbioteHivemind.lv_symbioteUnit = UnitLastCreated();
lv_symbioteHivemind.lv_hostUnit = lv_symbioteHivemindHost;
UnitDestroyAIThinkTree(lv_symbioteHivemind.lv_symbioteUnit);
UnitCreateEffectUnit(lv_symbioteHivemind.lv_hostUnit, "SymbioteActorLink", lv_symbioteHivemind.lv_symbioteUnit);
UnitCreateEffectUnit(lv_symbioteHivemind.lv_symbioteUnit, "SymbiotePropertyLink", lv_symbioteHivemindHost);
UnitCreateEffectUnit(lv_mainSymbiote, "AbathurSymbioteHivemindCreateUnitLinkDummyA", lv_symbioteHivemind.lv_hostUnit);
ActorSend(libNtve_gf_MainActorofUnit(lv_symbioteHivemind.lv_symbioteUnit), "Signal HivemindScale");
ActorSend(libNtve_gf_MainActorofUnit(lv_mainSymbiote), "Signal HivemindActive");
UnitBehaviorAdd(lv_symbioteHivemind.lv_hostUnit, "AbathurSymbioteHostBehavior", lv_symbioteHivemind.lv_symbioteUnit, 1);
UnitBehaviorAdd(lv_symbioteHivemind.lv_symbioteUnit, "AbathurSymbioteHivemind", lv_symbioteHivemind.lv_symbioteUnit, 1);
UnitBehaviorAdd(lv_symbioteHivemind.lv_hostUnit, "AbathurSymbioteHivemind", lv_symbioteHivemind.lv_hostUnit, 1);
if ((PlayerHasTalent(lv_abathurPlayer, "AbathurSymbioteAdrenalOverload") == true)) {
UnitBehaviorAdd(lv_symbioteHivemind.lv_hostUnit, "AbathurAdrenalOverload", lv_symbioteHivemind.lv_symbioteUnit, 1);
}
SoundPlayForPlayer(SoundLink("AbathurHero_Symbiote", -1), lv_abathurPlayer, PlayerGroupSingle(UnitGetOwner(lv_itPossibleSymbioteHivemindHost)), 100.0, 0.0);
while ((UnitIsAlive(lv_symbioteHivemind.lv_hostUnit) == true) && (UnitHasBehavior2(lv_symbioteHivemind.lv_hostUnit, "Dead") == false) && (UnitIsAlive(lv_symbioteHivemind.lv_symbioteUnit) == true) && (UnitFilterMatch(lv_symbioteHivemind.lv_hostUnit, lv_abathurPlayer, UnitFilter(0, 0, 0, (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)))) == true)) {
if ((UnitIsAlive(lv_mainSymbiote) == true) && (UnitIsAlive(lv_mainSymbioteHost) == true)) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_mainSymbioteHost), UnitGetPosition(lv_symbioteHivemind.lv_hostUnit)) >= libGDHL_gv_abathurSymbioteHivemindMaxRange_C)) {
ActorSend(libNtve_gf_MainActorofUnit(lv_mainSymbiote), "Signal RemoveStabCursors");
UnitBehaviorRemove(lv_symbioteHivemind.lv_hostUnit, "AbathurSymbioteHostBehavior", 1);
UnitBehaviorRemove(lv_symbioteHivemind.lv_hostUnit, "AbathurSymbioteHivemind", 1);
UnitBehaviorRemove(lv_symbioteHivemind.lv_symbioteUnit, "AbathurSymbioteHivemind", 1);
UnitKill(lv_symbioteHivemind.lv_symbioteUnit);
lv_symbioteHivemind.lv_symbioteUnit = null;
lv_symbioteHivemind.lv_hostUnit = null;
Wait(0.0625, c_timeGame);
continue;
}
if ((DistanceBetweenPoints(UnitGetPosition(lv_symbioteHivemind.lv_symbioteUnit), UnitGetPosition(lv_symbioteHivemind.lv_hostUnit)) >= 4.0)) {
UnitSetPosition(lv_symbioteHivemind.lv_symbioteUnit, UnitGetPosition(lv_symbioteHivemind.lv_hostUnit), false);
}
else {
UnitSetPosition(lv_symbioteHivemind.lv_symbioteUnit, UnitGetPosition(lv_symbioteHivemind.lv_hostUnit), true);
}
Wait(0.0625, c_timeGame);
}
else {
UnitBehaviorRemove(lv_symbioteHivemind.lv_hostUnit, "AbathurSymbioteHostBehavior", 1);
UnitBehaviorRemove(lv_symbioteHivemind.lv_hostUnit, "AbathurSymbioteHivemind", 1);
UnitBehaviorRemove(lv_symbioteHivemind.lv_symbioteUnit, "AbathurSymbioteHivemind", 1);
UnitKill(lv_symbioteHivemind.lv_symbioteUnit);
lv_symbioteHivemind.lv_symbioteUnit = null;
lv_symbioteHivemind.lv_hostUnit = null;
}
}
if ((UnitIsAlive(lv_symbioteHivemind.lv_symbioteUnit) == true)) {
ActorSend(libNtve_gf_MainActorofUnit(lv_mainSymbiote), "Signal HivemindInActive");
UnitBehaviorRemove(lv_symbioteHivemind.lv_hostUnit, "AbathurSymbioteHostBehavior", 1);
UnitBehaviorRemove(lv_symbioteHivemind.lv_hostUnit, "AbathurSymbioteHivemind", 1);
UnitBehaviorRemove(lv_symbioteHivemind.lv_symbioteUnit, "AbathurSymbioteHivemind", 1);
UnitKill(lv_symbioteHivemind.lv_symbioteUnit);
lv_symbioteHivemind.lv_symbioteUnit = null;
lv_symbioteHivemind.lv_hostUnit = null;
}
}
Wait(0.0625, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurSymbioteHivemindSingleTarget_Init () {
libGDHL_gt_HeroAbathurSymbioteHivemindSingleTarget = TriggerCreate("libGDHL_gt_HeroAbathurSymbioteHivemindSingleTarget_Func");
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteHivemindSingleTarget, false);
libGDHL_gf_AbathurSymbiote(libGDHL_gt_HeroAbathurSymbioteHivemindSingleTarget);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Symbiote Hivemind Stab
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurSymbioteHivemindStab_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
unitgroup lv_symbioteHivemindHats;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_symbioteHivemindHats = UnitGroupEmpty();
// Conditions
if (testConds) {
if (!((PlayerHasTalent(UnitGetOwner(lv_unit), "AbathurSymbioteHivemind") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_symbioteHivemindHats = UnitGroup("AbathurSymbiote", UnitGetOwner(lv_unit), RegionCircle(UnitGetPosition(lv_unit), libGDHL_gv_abathurSymbioteHivemindMaxRange_C), UnitFilter(0, 0, (1 << c_targetFilterAlly) | (1 << c_targetFilterNeutral) | (1 << c_targetFilterEnemy) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), (libGDHL_gv_abathurSymbioteHivemindMaxHosts_C + 1));
UnitGroupIssueOrder(lv_symbioteHivemindHats, OrderTargetingPoint(AbilityCommand("AbathurSymbioteStab", 0), EventUnitTargetPoint()), c_orderQueueReplace);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurSymbioteHivemindStab_Init () {
libGDHL_gt_HeroAbathurSymbioteHivemindStab = TriggerCreate("libGDHL_gt_HeroAbathurSymbioteHivemindStab_Func");
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteHivemindStab, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroAbathurSymbioteHivemindStab, null, AbilityCommand("AbathurSymbioteStab", 0), c_abilEffectStageCast, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Monstrosity Deep Tunnel Ping
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurMonstrosityDeepTunnelPing_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_monstrosity;
int lv_abathurPlayer;
playergroup lv_alliedPlayers;
point lv_location;
// Automatic Variable Declarations
// Variable Initialization
lv_monstrosity = EventUnit();
lv_abathurPlayer = UnitGetOwner(EventUnit());
lv_alliedPlayers = PlayerGroupEmpty();
lv_location = EventUnitTargetPoint();
// Actions
if (!runActions) {
return true;
}
if ((TimerGetRemaining(libUIUI_gv_pingInputSuppressionTimer[lv_abathurPlayer]) > 0.0)) {
return true;
}
if ((TimerGetRemaining(libUIUI_gv_pingLockoutTimer[lv_abathurPlayer]) > 0.0)) {
return true;
}
libUIUI_gf_PingIncrementPingCountAndManageTimersForPlayer(lv_abathurPlayer);
lv_alliedPlayers = libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lv_abathurPlayer), false);
libNtve_gf_CreatePingFacingAngleWithType(lv_alliedPlayers, "DehakaBrushStalkerShrubClusterModelMiniMap", lv_location, Color(0.00, 5.49, 73.33), 3.0, 270.0, -1, -1);
UnitCreateEffectPoint(lv_monstrosity, "DehakaBrushstalkerDummyPing", lv_location);
TextExpressionSetToken("Param/Expression/lib_GDHL_D54A5ECE", "A", UnitTypeGetName(UnitGetType(lv_monstrosity)));
TextTagCreate(TextExpressionAssemble("Param/Expression/lib_GDHL_D54A5ECE"), 24, lv_location, 2.0, true, false, libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lv_abathurPlayer), false));
TextTagSetTime(TextTagLastCreated(), c_textTagTimeDuration, 3.0);
libGDHL_gv_abathurMonstrosityDeepTunnelPings[lv_abathurPlayer] = PingLastCreated();
PingSetScale(PingLastCreated(), 0.2);
if ((TimerGetRemaining(libGDHL_gv_abathurMonstrosityDeepTunnelPingTextLockoutTimer[lv_abathurPlayer]) > 0.0)) {
}
else {
TextExpressionSetToken("Param/Expression/lib_GDHL_09007EC9", "A", StringExternal("Param/Value/lib_GDHL_2804A2A6"));
UIDisplayMessage(lv_alliedPlayers, c_messageAreaChat, TextExpressionAssemble("Param/Expression/lib_GDHL_09007EC9"));
TimerStart(libGDHL_gv_abathurMonstrosityDeepTunnelPingTextLockoutTimer[lv_abathurPlayer], 10.0, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurMonstrosityDeepTunnelPing_Init () {
libGDHL_gt_HeroAbathurMonstrosityDeepTunnelPing = TriggerCreate("libGDHL_gt_HeroAbathurMonstrosityDeepTunnelPing_Func");
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityDeepTunnelPing, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroAbathurMonstrosityDeepTunnelPing, null, AbilityCommand("AbathurMonstrosityDeepTunnel", 0), c_abilEffectStageCast, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Monstrosity - Add Minion Kill Stacks
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurMonstrosityAddMinionKillStacks_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_abathurPlayer;
unit lv_symbiote;
int lv_evolutionCompleteStacks;
unit lv_minionUnit;
int lv_minionAbsorbedTokenCount;
// Automatic Variable Declarations
unitgroup auto2B15A152_g;
int auto2B15A152_u;
unit auto2B15A152_var;
unitgroup auto7E23C28A_g;
int auto7E23C28A_u;
unit auto7E23C28A_var;
// Variable Initialization
lv_abathurPlayer = libGame_gf_SpecialCaseUnitParticipatedInNPCTakedownPlayerParticipant();
// Actions
if (!runActions) {
return true;
}
lv_minionUnit = libGame_gf_SpecialCaseUnitParticipatedInNPCTakedownMinion();
if (((UnitTypeTestAttribute(UnitGetType(lv_minionUnit), c_unitAttributeSummoned) == true) || (UnitTypeTestAttribute(UnitGetType(lv_minionUnit), c_unitAttributeStructure) == true) || (UnitTypeTestAttribute(UnitGetType(lv_minionUnit), c_unitAttributeCreep) == true) || (UnitTypeTestAttribute(UnitGetType(lv_minionUnit), c_unitAttributeMerc) == true) || (UnitTypeTestAttribute(UnitGetType(lv_minionUnit), c_unitAttributeMapBoss) == true))) {
return true;
}
if ((UnitGetType(libGame_gv_players[lv_abathurPlayer].lv_heroUnit) == "HeroAbathur") && (PlayerHasTalent(lv_abathurPlayer, "AbathurHeroicAbilityEvolveMonstrosity") == true) && ((UnitTypeTestAttribute(UnitGetType(lv_minionUnit), c_unitAttributeMinion) == true) || (UnitTypeTestAttribute(UnitGetType(lv_minionUnit), c_unitAttributeMerc) == true))) {
if ((TechTreeUnitCount(lv_abathurPlayer, "AbathurSymbiote", c_techCountCompleteOnly) > 0)) {
auto2B15A152_g = UnitGroup("AbathurSymbiote", lv_abathurPlayer, RegionPlayableMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto2B15A152_u = UnitGroupCount(auto2B15A152_g, c_unitCountAll);
for (;; auto2B15A152_u -= 1) {
auto2B15A152_var = UnitGroupUnitFromEnd(auto2B15A152_g, auto2B15A152_u);
if (auto2B15A152_var == null) { break; }
UnitBehaviorAdd(auto2B15A152_var, "AbathurEvolveMonstrosityAbathurStack", auto2B15A152_var, 1);
lv_symbiote = auto2B15A152_var;
}
}
auto7E23C28A_g = UnitGroupSearch("AbathurEvolvedMonstrosity", lv_abathurPlayer, UnitGetPosition(libGame_gf_SpecialCaseUnitParticipatedInNPCTakedownMinion()), libCore_gv_bALXPRadius, UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto7E23C28A_u = UnitGroupCount(auto7E23C28A_g, c_unitCountAll);
for (;; auto7E23C28A_u -= 1) {
auto7E23C28A_var = UnitGroupUnitFromEnd(auto7E23C28A_g, auto7E23C28A_u);
if (auto7E23C28A_var == null) { break; }
UnitBehaviorAdd(auto7E23C28A_var, "AbathurEvolveMonstrosityHealthStack", auto7E23C28A_var, 1);
lv_minionAbsorbedTokenCount = UnitBehaviorCount(auto7E23C28A_var, "AbathurEvolveMonstrosityMinionAbsorbedToken");
lv_minionAbsorbedTokenCount = (lv_minionAbsorbedTokenCount+1);
UnitSetTokenCount(auto7E23C28A_var, "AbathurEvolveMonstrosityMinionAbsorbedToken", lv_minionAbsorbedTokenCount, auto7E23C28A_var);
UnitCreateEffectUnit(auto7E23C28A_var, "EvolveMonstrosityHealthStackHealer", auto7E23C28A_var);
UnitBehaviorAdd(libGame_gv_players[lv_abathurPlayer].lv_heroUnit, "AbathurEvolveMonstrosityAbathurStack", libGame_gv_players[lv_abathurPlayer].lv_heroUnit, 1);
UnitBehaviorSetDurationRemaining(libGame_gv_players[lv_abathurPlayer].lv_heroUnit, "AbathurEvolveMonstrosityAbathurStack", UnitBehaviorDuration(auto7E23C28A_var, "AbathurEvolveMonstrosity"));
UnitBehaviorSetDurationRemaining(lv_symbiote, "AbathurEvolveMonstrosityAbathurStack", UnitBehaviorDuration(auto7E23C28A_var, "AbathurEvolveMonstrosity"));
if ((PlayerHasTalent(lv_abathurPlayer, "AbathurMasteryEvolutionComplete") == true)) {
lv_evolutionCompleteStacks = PlayerScoreValueGetAsInt(lv_abathurPlayer, "EvolutionCompleteStacks");
lv_evolutionCompleteStacks += 1;
PlayerScoreValueSetFromInt(lv_abathurPlayer, "EvolutionCompleteStacks", lv_evolutionCompleteStacks);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurMonstrosityAddMinionKillStacks_Init () {
libGDHL_gt_HeroAbathurMonstrosityAddMinionKillStacks = TriggerCreate("libGDHL_gt_HeroAbathurMonstrosityAddMinionKillStacks_Func");
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityAddMinionKillStacks, false);
libGame_gf_SpecialCaseParticipatedInNPCTakedown(libGDHL_gt_HeroAbathurMonstrosityAddMinionKillStacks);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Monstrosity - Symbiote end - Hook to AI
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurMonstrositySymbioteendHooktoAI_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
libUIUI_gf_HeroConsoleUnitStatusBarsSetUnitForBars(libGame_gv_players[lv_player].lv_heroUnit, lv_player);
UnitSelect(libGDHL_gv_abathurMonstrosity[lv_player], lv_player, false);
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(lv_player) == true)) {
UnitCreateAIThinkTree(libGDHL_gv_abathurMonstrosity[lv_player]);
}
libUIUI_gf_UIHeroConsoleSetUpForPlayer(libGame_gv_players[lv_player].lv_heroUnit, lv_player);
Wait(0.0625, c_timeGame);
if ((UnitIsAlive(libGame_gv_players[lv_player].lv_heroUnit) == false)) {
libUIUI_gf_HeroConsoleUnitStatusBarsUpdateStunDeathBar("Dead", lv_player);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurMonstrositySymbioteendHooktoAI_Init () {
libGDHL_gt_HeroAbathurMonstrositySymbioteendHooktoAI = TriggerCreate("libGDHL_gt_HeroAbathurMonstrositySymbioteendHooktoAI_Func");
TriggerEnable(libGDHL_gt_HeroAbathurMonstrositySymbioteendHooktoAI, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurMonstrositySymbioteendHooktoAI, c_playerAny, "AbathurSymbioteEvolveMonstrosityFinalDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Monstrosity - Deselected - Hook to AI
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurMonstrosityDeselectedHooktoAI_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
// Actions
if (!runActions) {
return true;
}
if ((lv_player <= libCore_gv_bALMaxEnginePlayerCount) && (libGDHL_gv_abathurMonstrosity[lv_player] == EventUnit())) {
UnitCreateAIThinkTree(libGDHL_gv_abathurMonstrosity[lv_player]);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurMonstrosityDeselectedHooktoAI_Init () {
libGDHL_gt_HeroAbathurMonstrosityDeselectedHooktoAI = TriggerCreate("libGDHL_gt_HeroAbathurMonstrosityDeselectedHooktoAI_Func");
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityDeselectedHooktoAI, false);
TriggerAddEventUnitSelected(libGDHL_gt_HeroAbathurMonstrosityDeselectedHooktoAI, null, c_playerAny, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Monstrosity - Unhook AI
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurMonstrosityUnhookAI_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_ownerOfTarget;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_ownerOfTarget = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
UnitSelect(lv_unit, UnitGetOwner(lv_unit), true);
UnitDestroyAIThinkTree(lv_unit);
libUIUI_gf_UIHeroConsoleSetUpForPlayer(lv_unit, lv_ownerOfTarget);
libUIUI_gf_HeroConsoleUnitStatusBarsSetUnitForBars(lv_unit, lv_ownerOfTarget);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurMonstrosityUnhookAI_Init () {
libGDHL_gt_HeroAbathurMonstrosityUnhookAI = TriggerCreate("libGDHL_gt_HeroAbathurMonstrosityUnhookAI_Func");
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityUnhookAI, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurMonstrosityUnhookAI, c_playerAny, "AbathurSymbioteEvolveMonstrosityInitialDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Monstrosity - Kill Initial Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurMonstrosityKillInitialTarget_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_unit, "StormSuicide", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurMonstrosityKillInitialTarget_Init () {
libGDHL_gt_HeroAbathurMonstrosityKillInitialTarget = TriggerCreate("libGDHL_gt_HeroAbathurMonstrosityKillInitialTarget_Func");
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityKillInitialTarget, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroAbathurMonstrosityKillInitialTarget, null, "AbathurEvolveMonstrosityTargetCollisionSuppresser", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Monstrosity - Add Symbiote Stacks
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurMonstrosityAddSymbioteStacks_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
unitgroup auto6B09D94A_g;
int auto6B09D94A_u;
unit auto6B09D94A_var;
// Variable Initialization
lv_unit = EventUnitCreatedUnit();
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "AbathurSymbiote"))) {
return false;
}
if (!((TechTreeUnitCount(UnitGetOwner(lv_unit), "AbathurEvolvedMonstrosity", c_techCountCompleteOnly) > 0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto6B09D94A_g = UnitGroup("AbathurEvolvedMonstrosity", UnitGetOwner(lv_unit), RegionPlayableMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto6B09D94A_u = UnitGroupCount(auto6B09D94A_g, c_unitCountAll);
for (;; auto6B09D94A_u -= 1) {
auto6B09D94A_var = UnitGroupUnitFromEnd(auto6B09D94A_g, auto6B09D94A_u);
if (auto6B09D94A_var == null) { break; }
UnitBehaviorAdd(lv_unit, "AbathurEvolveMonstrosityAbathurStack", lv_unit, UnitBehaviorCount(auto6B09D94A_var, "AbathurEvolveMonstrosityMinionAbsorbedToken"));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurMonstrosityAddSymbioteStacks_Init () {
libGDHL_gt_HeroAbathurMonstrosityAddSymbioteStacks = TriggerCreate("libGDHL_gt_HeroAbathurMonstrosityAddSymbioteStacks_Func");
TriggerEnable(libGDHL_gt_HeroAbathurMonstrosityAddSymbioteStacks, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroAbathurMonstrosityAddSymbioteStacks, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Symbioted Monstrosity Symbioted
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurSymbiotedMonstrositySymbioted_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_deepTunnelCD;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(libGDHL_gf_AbathurSymbioteTarget()) == "AbathurEvolvedMonstrosity"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_abathurMonstrosity[libGDHL_gf_AbathurSymbioteAbathurPlayer()] = libGDHL_gf_AbathurSymbioteTarget();
libGDHL_gv_abathurSymbioteMonstrosity[libGDHL_gf_AbathurSymbioteAbathurPlayer()] = libGDHL_gf_AbathurSymbioteUnit();
UnitBehaviorRemove(libGDHL_gf_AbathurSymbioteUnit(), "AbathurSymbioteSuppressAttack", 1);
UnitBehaviorAdd(libGDHL_gf_AbathurSymbioteUnit(), "AbathurMonstrosityDeepTunnelCarry", libGDHL_gf_AbathurSymbioteUnit(), 1);
lv_deepTunnelCD = UnitGetCooldown(libGDHL_gf_AbathurSymbioteTarget(), "Abil/AbathurMonstrosityDeepTunnel");
UnitModifyCooldown(libGDHL_gf_AbathurSymbioteUnit(), "Abil/AbathurMonstrosityDeepTunnelRedirect", lv_deepTunnelCD, c_cooldownOperationSet);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurSymbiotedMonstrositySymbioted_Init () {
libGDHL_gt_HeroAbathurSymbiotedMonstrositySymbioted = TriggerCreate("libGDHL_gt_HeroAbathurSymbiotedMonstrositySymbioted_Func");
TriggerEnable(libGDHL_gt_HeroAbathurSymbiotedMonstrositySymbioted, false);
libGDHL_gf_AbathurSymbiote(libGDHL_gt_HeroAbathurSymbiotedMonstrositySymbioted);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Abathur - Symbiote Minimap Icon
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAbathurSymbioteMinimapIcon_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_abathur;
int lv_abathurPlayer;
unit lv_symbioteHost;
int lv_symbioteHostPlayer;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_abathur = EventPlayerEffectUsedUnit(c_effectUnitCaster);
if ((UnitIsAlive(lv_abathur) == true)) {
lv_abathurPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_symbioteHost = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_symbioteHostPlayer = UnitGetOwner(lv_symbioteHost);
if ((UnitTypeTestAttribute(UnitGetType(lv_symbioteHost), c_unitAttributeHeroic) == true) && (UnitGetType(lv_symbioteHost) != "AbathurEvolvedMonstrosity")) {
CatalogFieldValueModify(c_gameCatalogActor, "AbathurSymbiote", "MinimapUnitStatusFrame", lv_abathurPlayer, "Abathur/AbathurSymbioteMinimapIconHero", c_upgradeOperationSet);
}
else if (((UnitTypeTestFlag(UnitGetType(lv_symbioteHost), c_unitFlagTownStructureTownHall) == true))) {
CatalogFieldValueModify(c_gameCatalogActor, "AbathurSymbiote", "MinimapUnitStatusFrame", lv_abathurPlayer, "Abathur/AbathurSymbioteMinimapIconTownHall", c_upgradeOperationSet);
}
else if (((UnitTypeTestFlag(UnitGetType(lv_symbioteHost), c_unitFlagTownStructureCore) == true))) {
CatalogFieldValueModify(c_gameCatalogActor, "AbathurSymbiote", "MinimapUnitStatusFrame", lv_abathurPlayer, "Abathur/AbathurSymbioteMinimapIconCore", c_upgradeOperationSet);
}
else if (((UnitTypeTestFlag(UnitGetType(lv_symbioteHost), c_unitFlagTownStructureMoonwell) == true) || (UnitTypeTestFlag(UnitGetType(lv_symbioteHost), c_unitFlagTownStructureGate) == true) || (UnitTypeTestFlag(UnitGetType(lv_symbioteHost), c_unitFlagTownStructureCannonTower) == true))) {
CatalogFieldValueModify(c_gameCatalogActor, "AbathurSymbiote", "MinimapUnitStatusFrame", lv_abathurPlayer, "Abathur/AbathurSymbioteMinimapIconStructure", c_upgradeOperationSet);
}
else if ((UnitGetType(lv_symbioteHost) == "AbathurEvolvedMonstrosity")) {
CatalogFieldValueModify(c_gameCatalogActor, "AbathurSymbiote", "MinimapUnitStatusFrame", lv_abathurPlayer, "Abathur/AbathurSymbioteMinimapIconMonstrosity", c_upgradeOperationSet);
}
else if ((UnitTypeTestAttribute(UnitGetType(lv_symbioteHost), c_unitAttributeMerc) == true)) {
CatalogFieldValueModify(c_gameCatalogActor, "AbathurSymbiote", "MinimapUnitStatusFrame", lv_abathurPlayer, "Abathur/AbathurSymbioteMinimapIconMerc", c_upgradeOperationSet);
}
else if (((UnitTypeTestAttribute(UnitGetType(lv_symbioteHost), c_unitAttributeMinion) == true) || (UnitTypeTestAttribute(UnitGetType(lv_symbioteHost), c_unitAttributeSummoned) == true) || (UnitTypeTestAttribute(UnitGetType(lv_symbioteHost), c_unitAttributeMerc) != true))) {
CatalogFieldValueModify(c_gameCatalogActor, "AbathurSymbiote", "MinimapUnitStatusFrame", lv_abathurPlayer, "Abathur/AbathurSymbioteMinimapIconMinion", c_upgradeOperationSet);
}
}
else {
CatalogFieldValueModify(c_gameCatalogActor, "AbathurSymbiote", "MinimapUnitStatusFrame", lv_abathurPlayer, "", c_upgradeOperationSet);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAbathurSymbioteMinimapIcon_Init () {
libGDHL_gt_HeroAbathurSymbioteMinimapIcon = TriggerCreate("libGDHL_gt_HeroAbathurSymbioteMinimapIcon_Func");
TriggerEnable(libGDHL_gt_HeroAbathurSymbioteMinimapIcon, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurSymbioteMinimapIcon, c_playerAny, "SymbioteApplyHostBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Artanis - Protector of Aiur - Hero Takedown Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArtanisProtectorofAiurHeroTakedownProc_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_artanisPlayer;
unit lv_artanisUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_artanisPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_artanisUnit = libGame_gv_players[lv_artanisPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_artanisPlayer >= 1))) {
return false;
}
if (!((lv_artanisPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHasTalent(lv_artanisPlayer, "ArtanisProtectorOfAiur") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_artanisUnit, "ArtanisProtectorOfAiurAddTakedownsTokenCount", lv_artanisUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArtanisProtectorofAiurHeroTakedownProc_Init () {
libGDHL_gt_HeroArtanisProtectorofAiurHeroTakedownProc = TriggerCreate("libGDHL_gt_HeroArtanisProtectorofAiurHeroTakedownProc_Func");
TriggerEnable(libGDHL_gt_HeroArtanisProtectorofAiurHeroTakedownProc, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroArtanisProtectorofAiurHeroTakedownProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Artanis - Blade Dash Phase Prism Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArtanisBladeDashPhasePrismCast_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((libGDHL_gv_heroArtanisPhasePrismBoolean[lv_player] == false))) {
return false;
}
if (!((lv_player > 0))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitFilterMatch(lv_unit, lv_player, UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterOrdersPaused - 32)) | (1 << (c_targetFilterSilenced - 32)))) == true))) {
return false;
}
if (!(((UnitBehaviorCount(lv_unit, "ArtanisBladeDashFirstCaster") == 1) || (UnitBehaviorCount(lv_unit, "ArtanisBladeDashBetweenStrikes") == 1) || (UnitBehaviorCount(lv_unit, "ArtanisBladeDashSecondCaster") == 1) || (UnitBehaviorCount(lv_unit, "ArtanisBladeDashValidity") == 1)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroArtanisPhasePrismBoolean[lv_player] = true;
UnitCreateEffectPointWithSource(lv_unit, "ArtanisPhasePrismInitialSet", OrderGetTargetPoint(EventUnitOrder()), c_gameCatalogAbil, "ArtanisPhasePrism");
UnitCreateEffectUnitWithSource(lv_unit, "ArtanisBladeDashPhasePrismModifyCooldown", lv_unit, c_gameCatalogAbil, "ArtanisPhasePrism");
UnitCreateEffectUnitWithSource(lv_unit, "ArtanisPhasePrismCancelOrder", lv_unit, c_gameCatalogAbil, "ArtanisPhasePrism");
Wait(0.0625, c_timeGame);
libGDHL_gv_heroArtanisPhasePrismBoolean[lv_player] = false;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArtanisBladeDashPhasePrismCast_Init () {
libGDHL_gt_HeroArtanisBladeDashPhasePrismCast = TriggerCreate("libGDHL_gt_HeroArtanisBladeDashPhasePrismCast_Func");
TriggerEnable(libGDHL_gt_HeroArtanisBladeDashPhasePrismCast, false);
TriggerAddEventUnitOrder(libGDHL_gt_HeroArtanisBladeDashPhasePrismCast, null, AbilityCommand("ArtanisPhasePrism", 0));
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Artanis - Twin Blades Zealot Charge Targeting
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArtanisTwinBladesZealotChargeTargeting_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
fixed auto93CE00F6_at;
// Variable Initialization
lv_unit = EventUnit();
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(OrderGetTargetUnit(UnitOrder(lv_unit, 0)), "ArtanisTwinBladesChargeTarget", lv_unit, 1);
libNtve_gf_SendActorMessageToUnit(lv_unit, "AnimBaselineStop");
auto93CE00F6_at = 0;
while (!((UnitHasBehavior2(lv_unit, "ArtanisTwinBladesChargeCaster") == false)) && auto93CE00F6_at <= 0.5) {
Wait(0.0625, c_timeGame);
auto93CE00F6_at = auto93CE00F6_at + 0.0625;
}
libNtve_gf_SendActorMessageToUnit(lv_unit, "AnimBaselineStart");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArtanisTwinBladesZealotChargeTargeting_Init () {
libGDHL_gt_HeroArtanisTwinBladesZealotChargeTargeting = TriggerCreate("libGDHL_gt_HeroArtanisTwinBladesZealotChargeTargeting_Func");
TriggerEnable(libGDHL_gt_HeroArtanisTwinBladesZealotChargeTargeting, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroArtanisTwinBladesZealotChargeTargeting, null, "ArtanisTwinBladesChargeCaster", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Artanis - Spear of Adun: Purifier Beam Set Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamSetTarget_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_beamTargetUnit;
int lv_beamPlayer;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_beamTargetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_beamPlayer = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lv_beamPlayer] = lv_beamTargetUnit;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamSetTarget_Init () {
libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamSetTarget = TriggerCreate("libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamSetTarget_Func");
TriggerEnable(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamSetTarget, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamSetTarget, c_playerAny, "ArtanisSpearofAdunPurifierBeamApplyTargetingBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Artanis - Spear of Adun: Purifier Beam Unit Created
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamUnitCreated_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnitCreatedUnit();
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "ArtanisSpearofAdunPurifierBeamInvisibleTrackingUnit"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroArtanisSpearofAdunPurifierBeamUnit[UnitGetOwner(lv_unit)] = lv_unit;
libGDHL_gf_HeroArtanisSpearofAdunPurifierBeamAI(EventUnitCreatedUnit(), UnitGetOwner(lv_unit));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamUnitCreated_Init () {
libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamUnitCreated = TriggerCreate("libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamUnitCreated_Func");
TriggerEnable(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamUnitCreated, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamUnitCreated, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Artanis - Spear of Adun: Purifier Beam Redirect Target 2 Electric Boogaloo
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamRedirectTarget2ElectricBoogaloo_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
unit lv_unit;
fixed lv_timeRemaining;
unit lv_purifierBeamUnit;
int lv_owner;
// Automatic Variable Declarations
// Variable Initialization
lv_target = libGame_gf_CheckUnitForAbilityRedirectTarget();
lv_unit = libGame_gf_CheckUnitForAbilityRedirectUnit();
// Conditions
if (testConds) {
if (!((UnitBehaviorCount(lv_unit, "ArtanisSpearofAdunPurifierBeamTargeting") == 1))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_owner = UnitBehaviorEffectPlayer(lv_unit, "ArtanisSpearofAdunPurifierBeamTargeting", c_effectPlayerCaster, 0);
lv_timeRemaining = UnitBehaviorDuration(lv_unit, "ArtanisSpearofAdunPurifierBeamTargeting");
if ((libGame_gf_CheckUnitForAbilityRedirectBoolean() == true)) {
if ((DistanceBetweenPoints(UnitGetPosition(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamUnit[lv_owner]), UnitGetPosition(lv_unit)) <= 6.0) && ((UnitBehaviorCount(lv_unit, "ArtanisSpearofAdunPurifierBeamTargeting") == 1) && (UnitBehaviorEffectUnit(lv_unit, "ArtanisSpearofAdunPurifierBeamTargeting", c_effectUnitSource, 0) == libGame_gv_players[lv_owner].lv_heroUnit))) {
libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lv_owner] = lv_target;
}
else {
libGDHL_gv_heroArtanisSpearofAdunPurifierBeamPointOverride[lv_owner] = true;
libGDHL_gv_heroArtanisSpearofAdunPurifierBeamLastKnownPoint[lv_owner] = libGame_gf_CheckUnitForAbilityRedirectPoint();
}
}
else {
UnitBehaviorRemove(libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lv_owner], "ArtanisSpearofAdunPurifierBeamTargeting", 1);
libGDHL_gv_heroArtanisSpearofAdunPurifierBeamTarget[lv_owner] = lv_target;
UnitBehaviorAdd(lv_target, "ArtanisSpearofAdunPurifierBeamTargeting", libGame_gv_players[lv_owner].lv_heroUnit, 1);
UnitBehaviorAdd(lv_target, "ArtanisSpearofAdunPurifierBeamRevealer", libGame_gv_players[lv_owner].lv_heroUnit, 1);
UnitBehaviorSetDurationRemaining(lv_target, "ArtanisSpearofAdunPurifierBeamTargeting", lv_timeRemaining);
UnitBehaviorSetDurationRemaining(lv_target, "ArtanisSpearofAdunPurifierBeamRevealer", lv_timeRemaining);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamRedirectTarget2ElectricBoogaloo_Init () {
libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamRedirectTarget2ElectricBoogaloo = TriggerCreate("libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamRedirectTarget2ElectricBoogaloo_Func");
TriggerEnable(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamRedirectTarget2ElectricBoogaloo, false);
libGame_gf_CheckUnitForAbilityRedirect(libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamRedirectTarget2ElectricBoogaloo);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Arthas - Anti-Magic Shell - Heal
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArthasAntiMagicShellHeal_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_arthas;
int lv_arthasPlayer;
fixed lv_healingAvailable;
// Automatic Variable Declarations
// Variable Initialization
lv_arthas = EventUnit();
lv_arthasPlayer = UnitGetOwner(lv_arthas);
// Conditions
if (testConds) {
if (!((EventUnitDamageAbsorbed() > 1.0))) {
return false;
}
if (!((UnitIsAlive(lv_arthas) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_healingAvailable = (EventUnitDamageAbsorbed() * libGDHL_gv_heroArthasAntiMagicShellHealingFraction);
CatalogFieldValueSetFixed(c_gameCatalogEffect, "ArthasAntiMagicShellCreateHealer", "RechargeVitalRate", lv_arthasPlayer, lv_healingAvailable);
UnitCreateEffectUnit(lv_arthas, "ArthasAntiMagicShellCreateHealer", lv_arthas);
UnitCreateEffectUnit(EventUnitDamageSourceUnit(), "HeroGenericDummyInterruptDamage", lv_arthas);
UnitCreateEffectUnit(EventUnitDamageSourceUnit(), "DismountDecloakTargetSet", lv_arthas);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArthasAntiMagicShellHeal_Init () {
libGDHL_gt_HeroArthasAntiMagicShellHeal = TriggerCreate("libGDHL_gt_HeroArthasAntiMagicShellHeal_Func");
TriggerEnable(libGDHL_gt_HeroArthasAntiMagicShellHeal, false);
TriggerAddEventUnitDamageAbsorbed(libGDHL_gt_HeroArthasAntiMagicShellHeal, null, "ArthasAntiMagicShellCaster");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Arthas - Army of the Dead - Legion of Northrend Talent Spawn
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArthasArmyoftheDeadLegionofNorthrendTalentSpawn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "ArthasMasteryLegionOfNorthrendArmyoftheDead") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGame_gf_CalculateSpawnedMinionGoalPoints(lv_player, UnitGetPosition(lv_unit));
libAIAI_gf_MinionAIStartMinionAI(-1, lv_unit, libGame_gv_spawnedMinionLane, libGame_gv_spawnedMinionFirstWaypointIndex, false, true, false, 0, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArthasArmyoftheDeadLegionofNorthrendTalentSpawn_Init () {
libGDHL_gt_HeroArthasArmyoftheDeadLegionofNorthrendTalentSpawn = TriggerCreate("libGDHL_gt_HeroArthasArmyoftheDeadLegionofNorthrendTalentSpawn_Func");
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadLegionofNorthrendTalentSpawn, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroArthasArmyoftheDeadLegionofNorthrendTalentSpawn, c_playerAny, "ArthasArmyoftheDeadLegionofNorthrendTalentSpawnSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Arthas - Army of the Dead - NPC Death Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArthasArmyoftheDeadNPCDeathProc_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_killingPlayer;
unit lv_minion;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_killingPlayer = libGame_gf_HeroParticipatedInNPCTakedownKillingPlayer();
lv_minion = libGame_gf_HeroParticipatedInNPCTakedownMinion();
if ((PlayerHasTalent(lv_killingPlayer, "ArthasHeroicAbilityArmyoftheDead") == true) && (UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeSummoned) == false) && (UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeStructure) == false) && (UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeCreep) == false) && ((UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeMerc) == true) || (UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeMinion) == true))) {
UnitCreateEffectUnit(libGame_gv_players[lv_killingPlayer].lv_heroUnit, "ArthasArmyoftheDeadNPCDeathModifyChargeCooldown", libGame_gv_players[lv_killingPlayer].lv_heroUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArthasArmyoftheDeadNPCDeathProc_Init () {
libGDHL_gt_HeroArthasArmyoftheDeadNPCDeathProc = TriggerCreate("libGDHL_gt_HeroArthasArmyoftheDeadNPCDeathProc_Func");
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadNPCDeathProc, false);
libGame_gf_HeroParticipatedInNPCTakedown(libGDHL_gt_HeroArthasArmyoftheDeadNPCDeathProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Arthas - Army of the Dead - Takedown Death Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArthasArmyoftheDeadTakedownDeathProc_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_killingPlayer;
unit lv_minion;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_killingPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
if ((PlayerHasTalent(lv_killingPlayer, "ArthasHeroicAbilityArmyoftheDead") == true)) {
UnitCreateEffectUnit(libGame_gv_players[lv_killingPlayer].lv_heroUnit, "ArthasArmyoftheDeadTakedownModifyChargeCooldown", libGame_gv_players[lv_killingPlayer].lv_heroUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArthasArmyoftheDeadTakedownDeathProc_Init () {
libGDHL_gt_HeroArthasArmyoftheDeadTakedownDeathProc = TriggerCreate("libGDHL_gt_HeroArthasArmyoftheDeadTakedownDeathProc_Func");
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadTakedownDeathProc, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroArthasArmyoftheDeadTakedownDeathProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Arthas - Army of the Dead - Minion AI Takeover (Death)
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverDeath_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
unitgroup autoF1AE7A91_g;
int autoF1AE7A91_u;
unit autoF1AE7A91_var;
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroArthas"))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "ArthasHeroicAbilityArmyoftheDead") == true))) {
return false;
}
if (!((UnitCount("ArthasArmyOfTheDeadGhoul", lv_player, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0) > 0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoF1AE7A91_g = UnitGroup("ArthasArmyOfTheDeadGhoul", lv_player, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoF1AE7A91_u = UnitGroupCount(autoF1AE7A91_g, c_unitCountAll);
for (;; autoF1AE7A91_u -= 1) {
autoF1AE7A91_var = UnitGroupUnitFromEnd(autoF1AE7A91_g, autoF1AE7A91_u);
if (autoF1AE7A91_var == null) { break; }
libGame_gf_CalculateSpawnedMinionGoalPoints(lv_player, UnitGetPosition(autoF1AE7A91_var));
libAIAI_gf_MinionAIStartMinionAI(-1, autoF1AE7A91_var, libGame_gv_spawnedMinionLane, libGame_gv_spawnedMinionFirstWaypointIndex, false, true, false, 0, false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverDeath_Init () {
libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverDeath = TriggerCreate("libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverDeath_Func");
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverDeath, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverDeath, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Arthas - Army of the Dead - Minion AI Takeover (Transport)
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverTransport_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
unitgroup auto21667AB0_g;
int auto21667AB0_u;
unit auto21667AB0_var;
// Variable Initialization
lv_player = libGame_gf_HeroEnteredTransportPlayerEntering();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroArthas"))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "ArthasHeroicAbilityArmyoftheDead") == true))) {
return false;
}
if (!((UnitCount("ArthasArmyOfTheDeadGhoul", lv_player, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0) > 0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto21667AB0_g = UnitGroup("ArthasArmyOfTheDeadGhoul", lv_player, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto21667AB0_u = UnitGroupCount(auto21667AB0_g, c_unitCountAll);
for (;; auto21667AB0_u -= 1) {
auto21667AB0_var = UnitGroupUnitFromEnd(auto21667AB0_g, auto21667AB0_u);
if (auto21667AB0_var == null) { break; }
libGame_gf_CalculateSpawnedMinionGoalPoints(lv_player, UnitGetPosition(auto21667AB0_var));
libAIAI_gf_MinionAIStartMinionAI(-1, auto21667AB0_var, libGame_gv_spawnedMinionLane, libGame_gv_spawnedMinionFirstWaypointIndex, false, true, false, 0, false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverTransport_Init () {
libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverTransport = TriggerCreate("libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverTransport_Func");
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverTransport, false);
libGame_gf_HeroEnteredTransport(libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverTransport);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Arthas - Army of the Dead - Port Ghouls
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArthasArmyoftheDeadPortGhouls_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
unitgroup auto993B987E_g;
int auto993B987E_u;
unit auto993B987E_var;
// Variable Initialization
lv_player = EventPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroArthas"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto993B987E_g = UnitGroup("ArthasArmyOfTheDeadGhoul", lv_player, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto993B987E_u = UnitGroupCount(auto993B987E_g, c_unitCountAll);
for (;; auto993B987E_u -= 1) {
auto993B987E_var = UnitGroupUnitFromEnd(auto993B987E_g, auto993B987E_u);
if (auto993B987E_var == null) { break; }
UnitSetPosition(auto993B987E_var, UnitGetPosition(libGame_gv_players[lv_player].lv_heroUnit), false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArthasArmyoftheDeadPortGhouls_Init () {
libGDHL_gt_HeroArthasArmyoftheDeadPortGhouls = TriggerCreate("libGDHL_gt_HeroArthasArmyoftheDeadPortGhouls_Func");
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadPortGhouls, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroArthasArmyoftheDeadPortGhouls, c_playerAny, "HearthstoneTeleport");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Arthas - Army of the Dead - Ghoul Spawned
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArthasArmyoftheDeadGhoulSpawned_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
unit lv_createdUnit;
int lv_player;
bool lv_thinkTreeDestroyed;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_createdUnit = EventUnitCreatedUnit();
lv_player = EventPlayer();
// Actions
if (!runActions) {
return true;
}
UnitGroupAdd(libGame_gv_players[lv_player].lv_summonedUnitGroup, EventUnitCreatedUnit());
if (((PointPathingCliffLevel(UnitGetPosition(lv_createdUnit)) > PointPathingCliffLevel(UnitGetPosition(lv_unit))) || (PointPathingCliffLevel(UnitGetPosition(lv_createdUnit)) < PointPathingCliffLevel(UnitGetPosition(lv_unit)))) && (UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroArthas")) {
UnitSetPosition(lv_createdUnit, UnitGetPosition(libGame_gv_players[lv_player].lv_heroUnit), false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArthasArmyoftheDeadGhoulSpawned_Init () {
libGDHL_gt_HeroArthasArmyoftheDeadGhoulSpawned = TriggerCreate("libGDHL_gt_HeroArthasArmyoftheDeadGhoulSpawned_Func");
TriggerEnable(libGDHL_gt_HeroArthasArmyoftheDeadGhoulSpawned, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroArthasArmyoftheDeadGhoulSpawned, null, "ArthasGhoulMagazine", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Arthas - Death Pact Talent - Takedown Token Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroArthasDeathPactTalentTakedownTokenProc_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_killingPlayer;
unit lv_minion;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_killingPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
if ((PlayerHasTalent(lv_killingPlayer, "ArthasDeathPact") == true)) {
UnitCreateEffectUnit(libGame_gv_players[lv_killingPlayer].lv_heroUnit, "ArthasFrostmourneHungersDeathPactTalentTakedownModifyTokens", libGame_gv_players[lv_killingPlayer].lv_heroUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroArthasDeathPactTalentTakedownTokenProc_Init () {
libGDHL_gt_HeroArthasDeathPactTalentTakedownTokenProc = TriggerCreate("libGDHL_gt_HeroArthasDeathPactTalentTakedownTokenProc_Func");
TriggerEnable(libGDHL_gt_HeroArthasDeathPactTalentTakedownTokenProc, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroArthasDeathPactTalentTakedownTokenProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Anub'arak Burrow Charge Suppress Collision
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAnubarakBurrowChargeSuppressCollision_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
fixed auto1AC4814E_at;
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(EventUnit());
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSet(c_gameCatalogUnit, "HeroAnubarak", "Mover", lv_player, "FlyGroundHM");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroAnubarak", "Collide[" + IntToString(1) + "]", lv_player, "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroAnubarak", "Collide[" + IntToString(12) + "]", lv_player, "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroAnubarak", "Collide[" + IntToString(8) + "]", lv_player, "0");
auto1AC4814E_at = 0;
while (!(((UnitHasBehavior2(lv_unit, "AnubarakBurrowChargeCaster") == false) && (UnitHasBehavior2(lv_unit, "AnubarakBurrowChargeUnpathableSelfStun") == false))) && auto1AC4814E_at <= 10.0) {
Wait(0.0625, c_timeGame);
auto1AC4814E_at = auto1AC4814E_at + 0.0625;
}
CatalogFieldValueSet(c_gameCatalogUnit, "HeroAnubarak", "Mover", lv_player, "Ground");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroAnubarak", "Collide[" + IntToString(1) + "]", lv_player, "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroAnubarak", "Collide[" + IntToString(12) + "]", lv_player, "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroAnubarak", "Collide[" + IntToString(8) + "]", lv_player, "1");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAnubarakBurrowChargeSuppressCollision_Init () {
libGDHL_gt_HeroAnubarakBurrowChargeSuppressCollision = TriggerCreate("libGDHL_gt_HeroAnubarakBurrowChargeSuppressCollision_Func");
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeSuppressCollision, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroAnubarakBurrowChargeSuppressCollision, null, "AnubarakBurrowChargeCaster", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Anub'arak Burrow Charge Max Range
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAnubarakBurrowChargeMaxRange_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
fixed lv_abilityRange;
point lv_playerTargetPoint;
fixed lv_distanceFromAnubarakToTargetPoint;
fixed lv_anubarakRadius;
point lv_actualTargetPoint;
fixed lv_modifiedDistance;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
lv_anubarakRadius = CatalogFieldValueGetAsFixed(c_gameCatalogUnit, (UnitGetType(lv_unit)), "Radius", lv_player);
lv_abilityRange = CatalogFieldValueGetAsFixed(c_gameCatalogActor, "AnubarakBurrowChargeGuide", "Height", lv_player);
lv_playerTargetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
lv_distanceFromAnubarakToTargetPoint = DistanceBetweenPoints(UnitGetPosition(lv_unit), lv_playerTargetPoint);
if ((lv_distanceFromAnubarakToTargetPoint > lv_abilityRange)) {
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_unit), lv_abilityRange, lv_playerTargetPoint);
}
else {
lv_actualTargetPoint = lv_playerTargetPoint;
}
lv_modifiedDistance = (lv_abilityRange + 0.125);
while ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_modifiedDistance -= 0.125;
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_unit), lv_modifiedDistance, lv_playerTargetPoint);
if ((DistanceBetweenPoints(UnitGetPosition(lv_unit), lv_actualTargetPoint) <= (lv_anubarakRadius + 0.125))) {
libNtve_gf_UIErrorMessage(libCore_gv_playerGroupFromPlayer[lv_player], StringExternal("Param/Value/lib_GDHL_F272EA53"), SoundLink("UI_GenericError", -1));
UnitBehaviorRemove(lv_unit, "AnubarakBurrowChargeCaster", 1);
return true;
}
}
if ((UnitIsAlive(EventPlayerEffectUsedUnit(c_effectUnitCaster)) == true)) {
UnitBehaviorRemove(EventPlayerEffectUsedUnit(c_effectUnitCaster), "ZaryaGravitonSurgePull", 1);
UnitIssueOrder(EventPlayerEffectUsedUnit(c_effectUnitCaster), OrderTargetingPoint(AbilityCommand("move", 0), lv_actualTargetPoint), c_orderQueueAddToFront);
}
UnitCreateEffectPoint(lv_unit, "AnubarakBurrowChargeFinishRangeCheckCreatePersistent", lv_actualTargetPoint);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAnubarakBurrowChargeMaxRange_Init () {
libGDHL_gt_HeroAnubarakBurrowChargeMaxRange = TriggerCreate("libGDHL_gt_HeroAnubarakBurrowChargeMaxRange_Func");
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeMaxRange, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAnubarakBurrowChargeMaxRange, c_playerAny, "AnubarakBurrowChargeOffsetPersistent");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Anub'arak Burrow Charge Cancel
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAnubarakBurrowChargeCancel_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
fixed autoE88A0ED8_at;
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSet(c_gameCatalogBehavior, "AnubarakBurrowChargeCaster", "Modification.ModifyFlags[" + IntToString(11) + "]", lv_player, "0");
autoE88A0ED8_at = 0;
while (!((UnitHasBehavior2(lv_unit, "AnubarakBurrowChargeCaster") == false)) && autoE88A0ED8_at <= 10.0) {
Wait(0.25, c_timeGame);
autoE88A0ED8_at = autoE88A0ED8_at + 0.25;
}
CatalogFieldValueSet(c_gameCatalogBehavior, "AnubarakBurrowChargeCaster", "Modification.ModifyFlags[" + IntToString(11) + "]", lv_player, "1");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAnubarakBurrowChargeCancel_Init () {
libGDHL_gt_HeroAnubarakBurrowChargeCancel = TriggerCreate("libGDHL_gt_HeroAnubarakBurrowChargeCancel_Func");
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeCancel, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroAnubarakBurrowChargeCancel, null, AbilityCommand("AnubarakBurrowChargeCancel", 0), c_unitAbilStageExecute, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Anub'arak Burrow Charge Unpathable Check
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAnubarakBurrowChargeUnpathableCheck_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
UnitIssueOrder(lv_unit, OrderTargetingPoint(AbilityCommand("move", 0), UnitTypePlacementFromPoint("AnubarakBeetleSpitBeetle", lv_player, UnitGetPosition(lv_unit), 20.0)), c_orderQueueAddToFront);
libNtve_gf_MakeUnitUncommandable(lv_unit, true);
while ((PointPathingPassable(UnitGetPosition(lv_unit)) == false)) {
UnitIssueOrder(lv_unit, OrderTargetingPoint(AbilityCommand("move", 0), UnitTypePlacementFromPoint("AnubarakBeetleSpitBeetle", lv_player, UnitGetPosition(lv_unit), 20.0)), c_orderQueueAddToFront);
Wait(0.0625, c_timeGame);
}
libNtve_gf_MakeUnitUncommandable(lv_unit, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAnubarakBurrowChargeUnpathableCheck_Init () {
libGDHL_gt_HeroAnubarakBurrowChargeUnpathableCheck = TriggerCreate("libGDHL_gt_HeroAnubarakBurrowChargeUnpathableCheck_Func");
TriggerEnable(libGDHL_gt_HeroAnubarakBurrowChargeUnpathableCheck, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAnubarakBurrowChargeUnpathableCheck, c_playerAny, "AnubarakBurrowChargeUnpathableDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Anub'arak - Beetle, Juiced Mastery Special Death State Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAnubarakBeetleJuicedMasterySpecialDeathStateProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_deadHero;
unit lv_beetle;
// Automatic Variable Declarations
// Variable Initialization
lv_deadHero = libGame_gf_HeroEntersSpecialDeathStateHero();
// Conditions
if (testConds) {
if (!((UnitBehaviorCount(lv_deadHero, "AnubarakBeetleSpitDeathResponseBehavior") == 1))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_beetle = UnitBehaviorEffectUnit(lv_deadHero, "AnubarakBeetleSpitDeathResponseBehavior", c_effectUnitCaster, 0);
UnitCreateEffectUnit(lv_beetle, "AnubarakBeetleJuicedCreatePersistentSpecialDeathState", lv_deadHero);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAnubarakBeetleJuicedMasterySpecialDeathStateProc_Init () {
libGDHL_gt_HeroAnubarakBeetleJuicedMasterySpecialDeathStateProc = TriggerCreate("libGDHL_gt_HeroAnubarakBeetleJuicedMasterySpecialDeathStateProc_Func");
TriggerEnable(libGDHL_gt_HeroAnubarakBeetleJuicedMasterySpecialDeathStateProc, false);
libGame_gf_HeroEntersSpecialDeathState(libGDHL_gt_HeroAnubarakBeetleJuicedMasterySpecialDeathStateProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Anub'arak - Cocoon Unit Hit
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAnubarakCocoonUnitHit_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_cocoonTargets[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))] = EventPlayerEffectUsedUnit(c_effectUnitTarget);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAnubarakCocoonUnitHit_Init () {
libGDHL_gt_HeroAnubarakCocoonUnitHit = TriggerCreate("libGDHL_gt_HeroAnubarakCocoonUnitHit_Func");
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonUnitHit, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAnubarakCocoonUnitHit, c_playerAny, "AnubarakCocoonApplyWebbedBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Anub'arak - Cocoon Spawned
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAnubarakCocoonSpawned_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_anubarak;
unit lv_cocoonUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_anubarak = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_cocoonUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
Wait(0.125, c_timeGame);
UnitSetPosition(libGDHL_gv_cocoonTargets[UnitGetOwner(lv_anubarak)], UnitGetPosition(lv_cocoonUnit), false);
while ((UnitIsValid(lv_anubarak) == true) && (UnitIsValid(lv_cocoonUnit) == true) && (UnitIsValid(libGDHL_gv_cocoonTargets[UnitGetOwner(lv_anubarak)]) == true)) {
Wait(0.0625, c_timeGame);
}
UnitCreateEffectUnit(lv_cocoonUnit, "TimedLifeFate", lv_cocoonUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAnubarakCocoonSpawned_Init () {
libGDHL_gt_HeroAnubarakCocoonSpawned = TriggerCreate("libGDHL_gt_HeroAnubarakCocoonSpawned_Func");
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonSpawned, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAnubarakCocoonSpawned, c_playerAny, "AnubarakCocoonUnitSpawnSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Anub'arak - Cocoon Sound Effect
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAnubarakCocoonSoundEffect_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_webbedPlayer;
int lv_behaviorChange;
// Automatic Variable Declarations
int auto309F9278_val;
// Variable Initialization
lv_webbedPlayer = UnitGetOwner(EventUnit());
lv_behaviorChange = EventUnitBehaviorChange();
// Actions
if (!runActions) {
return true;
}
auto309F9278_val = lv_behaviorChange;
if (auto309F9278_val == c_unitBehaviorChangeActivate) {
libSond_gf_DigitalSoundEffectsEnableDisableSoundStateForPlayer(true, lv_webbedPlayer, "Heroes_Lowpass_Cocoon_Cocoon");
}
else if (auto309F9278_val == c_unitBehaviorChangeDeactivate) {
libSond_gf_DigitalSoundEffectsEnableDisableSoundStateForPlayer(false, lv_webbedPlayer, "Heroes_Lowpass_Cocoon_Cocoon");
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAnubarakCocoonSoundEffect_Init () {
libGDHL_gt_HeroAnubarakCocoonSoundEffect = TriggerCreate("libGDHL_gt_HeroAnubarakCocoonSoundEffect_Func");
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonSoundEffect, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroAnubarakCocoonSoundEffect, null, "AnubarakCocoonWebbed", c_unitBehaviorChangeAny);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Anub'arak - Cocoon On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAnubarakCocoonOn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_webbedUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_webbedUnit = EventUnit();
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(lv_webbedUnit, "HeroGenericIgnoreFullscreenOverlay") == false) && (UnitIsAlive(lv_webbedUnit) == true) && (UnitTestState(lv_webbedUnit, c_unitStateHallucination) == false)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(UnitGetOwner(lv_webbedUnit), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_WebBlastOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAnubarakCocoonOn_Init () {
libGDHL_gt_HeroAnubarakCocoonOn = TriggerCreate("libGDHL_gt_HeroAnubarakCocoonOn_Func");
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroAnubarakCocoonOn, null, "AnubarakCocoonWebbed", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Anub'arak - Cocoon Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAnubarakCocoonOff_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_webbedUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_webbedUnit = EventUnit();
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(lv_webbedUnit, "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(lv_webbedUnit), "Cutscenes\\GameUI_WebBlastOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAnubarakCocoonOff_Init () {
libGDHL_gt_HeroAnubarakCocoonOff = TriggerCreate("libGDHL_gt_HeroAnubarakCocoonOff_Func");
TriggerEnable(libGDHL_gt_HeroAnubarakCocoonOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroAnubarakCocoonOff, null, "AnubarakCocoonWebbed", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Azmodan - Spawned
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAzmodanSpawned_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroSpawnPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroAzmodan"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((libGame_gv_players[lv_player].lv_selectedSkin == libCore_gf_DataSkinsGetSkinIndexFromSkinLink("AzmodanSkinAzmodunk"))) {
libGame_gv_players[lv_player].lv_vOHeroHasCustomKillVO = true;
TriggerEnable(libGDHL_gt_HeroAzmodanCustomKillVO, true);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAzmodanSpawned_Init () {
libGDHL_gt_HeroAzmodanSpawned = TriggerCreate("libGDHL_gt_HeroAzmodanSpawned_Func");
TriggerEnable(libGDHL_gt_HeroAzmodanSpawned, false);
libGame_gf_HeroSpawn(libGDHL_gt_HeroAzmodanSpawned);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Azmodan - Demonic Invasion - Add Units to Unit Group
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAzmodanDemonicInvasionAddUnitstoUnitGroup_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_zombie;
int lv_ownerPlayer;
point lv_positionOfAbility;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnitCreatedUnit()) == "AzmodanDemonicInvasionDemonGrunt"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_zombie = EventUnitCreatedUnit();
lv_ownerPlayer = UnitGetOwner(lv_zombie);
UnitGroupAdd(libGDHL_gv_heroAzmodanDemonicInvasionUnitGroup[lv_ownerPlayer], lv_zombie);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAzmodanDemonicInvasionAddUnitstoUnitGroup_Init () {
libGDHL_gt_HeroAzmodanDemonicInvasionAddUnitstoUnitGroup = TriggerCreate("libGDHL_gt_HeroAzmodanDemonicInvasionAddUnitstoUnitGroup_Func");
TriggerEnable(libGDHL_gt_HeroAzmodanDemonicInvasionAddUnitstoUnitGroup, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroAzmodanDemonicInvasionAddUnitstoUnitGroup, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Azmodan - Demonic Invasion - Unpathable Location
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAzmodanDemonicInvasionUnpathableLocation_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
point lv_newPoint;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
// Actions
if (!runActions) {
return true;
}
lv_newPoint = UnitTypePlacementFromPoint("AzmodanDemonicInvasionDemonGrunt", lv_player, EventPlayerEffectUsedPoint(c_effectLocationTargetPoint), 10.0);
UnitCreateEffectPoint(EventPlayerEffectUsedUnit(c_effectUnitCaster), "AzmodanDemonicInvasionStaggerPersistent", lv_newPoint);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAzmodanDemonicInvasionUnpathableLocation_Init () {
libGDHL_gt_HeroAzmodanDemonicInvasionUnpathableLocation = TriggerCreate("libGDHL_gt_HeroAzmodanDemonicInvasionUnpathableLocation_Func");
TriggerEnable(libGDHL_gt_HeroAzmodanDemonicInvasionUnpathableLocation, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanDemonicInvasionUnpathableLocation, c_playerAny, "DemonicInvasionUnpathableDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Azmodan - Demonic Invasion - Remove Existing Demons
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAzmodanDemonicInvasionRemoveExistingDemons_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
unitgroup auto9E995D66_g;
int auto9E995D66_u;
unit auto9E995D66_var;
// Variable Initialization
lv_player = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
// Conditions
if (testConds) {
if (!((lv_player > 0))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto9E995D66_g = UnitGroupFilter(null, lv_player, libGDHL_gv_heroAzmodanDemonicInvasionUnitGroup[lv_player], UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto9E995D66_u = UnitGroupCount(auto9E995D66_g, c_unitCountAll);
for (;; auto9E995D66_u -= 1) {
auto9E995D66_var = UnitGroupUnitFromEnd(auto9E995D66_g, auto9E995D66_u);
if (auto9E995D66_var == null) { break; }
UnitKill(auto9E995D66_var);
UnitGroupRemove(libGDHL_gv_heroAzmodanDemonicInvasionUnitGroup[lv_player], auto9E995D66_var);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAzmodanDemonicInvasionRemoveExistingDemons_Init () {
libGDHL_gt_HeroAzmodanDemonicInvasionRemoveExistingDemons = TriggerCreate("libGDHL_gt_HeroAzmodanDemonicInvasionRemoveExistingDemons_Func");
TriggerEnable(libGDHL_gt_HeroAzmodanDemonicInvasionRemoveExistingDemons, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanDemonicInvasionRemoveExistingDemons, c_playerAny, "AzmodanDemonicInvasionInitialSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Azmodan - Annihilation Stack Score Values
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_azmodan;
string lv_effect;
fixed lv_stackCount;
string lv_scoreValue;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
lv_azmodan = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_effect = EventPlayerEffectUsed();
lv_stackCount = CatalogFieldValueGetAsFixed(c_gameCatalogEffect, lv_effect, "Value", lv_player);
if ((lv_effect == "AzmodanGlobeOfAnnihilationDeathModifyTokenMinion")) {
lv_scoreValue = "AzmodanMinionKillAnnihilation";
}
else if ((lv_effect == "AzmodanGlobeOfAnnihilationHeroImpactModifyTokenCount")) {
lv_scoreValue = "AzmodanHeroHitAnnihilation";
}
else if ((lv_effect == "AzmodanHeroWeaponWrathTalentModifyTokenCount")) {
lv_scoreValue = "AzmodanWrathTalentAnnihilation";
}
else if ((lv_effect == "AzmodanGlobeOfAnnihilationArtOfChaosTalentModifyTokenCount")) {
lv_scoreValue = "AzmodanArtOfChaosTalentAnnihilation";
}
else if ((lv_effect == "AzmodanAllShallBurnMasterOfDestructionTalentModifyTokenCount")) {
lv_scoreValue = "AzmodanMasterOfDestructionTalentAnnihilation";
}
else if ((lv_effect == "AzmodanHeroWeaponBombardmentTalentModifyTokenCount")) {
lv_scoreValue = "AzmodanBombardmentTalentAnnihilation";
}
if ((UnitGetTokenCount(lv_azmodan, "AzmodanGlobeOfAnnihilationTokenCounter") < CatalogFieldValueGetAsFixed(c_gameCatalogBehavior, "AzmodanGlobeOfAnnihilationTokenCounter", "Max", lv_player))) {
PlayerScoreValueSetFromFixed(lv_player, lv_scoreValue, (PlayerScoreValueGetAsFixed(lv_player, lv_scoreValue) + lv_stackCount));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues_Init () {
libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues = TriggerCreate("libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues_Func");
TriggerEnable(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues, c_playerAny, "AzmodanGlobeOfAnnihilationDeathModifyTokenMinion");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues, c_playerAny, "AzmodanGlobeOfAnnihilationHeroImpactModifyTokenCount");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues, c_playerAny, "AzmodanHeroWeaponWrathTalentModifyTokenCount");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues, c_playerAny, "AzmodanGlobeOfAnnihilationArtOfChaosTalentModifyTokenCount");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues, c_playerAny, "AzmodanAllShallBurnMasterOfDestructionTalentModifyTokenCount");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues, c_playerAny, "AzmodanDemonLieutenantDemonicSmiteModifyToken");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues, c_playerAny, "AzmodanHeroWeaponBombardmentTalentModifyTokenCount");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Azmodan - Annihilation Stack Score Values Reset
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAzmodanAnnihilationStackScoreValuesReset_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_azmodan;
fixed lv_stackCount;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroRespecsTalentsPlayer();
lv_azmodan = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PlayerScoreValueSetFromFixed(lv_player, "AzmodanMinionKillAnnihilation", 0.0);
PlayerScoreValueSetFromFixed(lv_player, "AzmodanHeroHitAnnihilation", 0.0);
PlayerScoreValueSetFromFixed(lv_player, "AzmodanWrathTalentAnnihilation", 0.0);
PlayerScoreValueSetFromFixed(lv_player, "AzmodanArtOfChaosTalentAnnihilation", 0.0);
PlayerScoreValueSetFromFixed(lv_player, "AzmodanMasterOfDestructionTalentAnnihilation", 0.0);
PlayerScoreValueSetFromFixed(lv_player, "AzmodanBombardmentTalentAnnihilation", 0.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAzmodanAnnihilationStackScoreValuesReset_Init () {
libGDHL_gt_HeroAzmodanAnnihilationStackScoreValuesReset = TriggerCreate("libGDHL_gt_HeroAzmodanAnnihilationStackScoreValuesReset_Func");
TriggerEnable(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValuesReset, false);
libGame_gf_HeroRespecsTalents(libGDHL_gt_HeroAzmodanAnnihilationStackScoreValuesReset);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Azmodan - Custom Kill VO
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAzmodanCustomKillVO_Func (bool testConds, bool runActions) {
// Variable Declarations
string lv_killingEffect;
int lv_killingPlayer;
int lv_deadPlayer;
int lv_speakingPlayer;
string lv_killLine;
// Automatic Variable Declarations
// Variable Initialization
lv_killingPlayer = libGame_gf_CustomKillVOKillingPlayer();
lv_deadPlayer = libGame_gf_CustomKillVODeadPlayer();
lv_speakingPlayer = libGame_gf_CustomKillVOSpeakingPlayer();
lv_killLine = libGame_gf_CustomKillVOKillLine();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_killingPlayer].lv_heroUnit) == "HeroAzmodan"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((lv_deadPlayer > 0) && (lv_deadPlayer <= libCore_gv_bALMaxPlayers)) {
lv_killingEffect = libGame_gv_deathRecap_DeathData[lv_deadPlayer].lv_effectBars[1].lv_effect;
}
else {
return true;
}
if (((libGame_gv_players[lv_killingPlayer].lv_selectedSkin == libCore_gf_DataSkinsGetSkinIndexFromSkinLink("AzmodanSkinAzmodunk")) && ((lv_killingEffect == "AzmodanGlobeOfAnnihilationDamage") || (lv_killingEffect == "AzmodanGlobeOfAnnihilationTideOfSinTalentDamage") || (lv_killingEffect == "AzmodanGlobeOfAnnihilationTotalAnnihilationTalentDamage") || (lv_killingEffect == "AzmodanGlobeOfAnnihilationTotalAnnihilationTalentDamage")))) {
lv_speakingPlayer = lv_killingPlayer;
lv_killLine = ("AzmodanAzmodunk_GlobeKill");
}
libSond_gf_HeroVOPlayKillLine((lv_killLine), lv_speakingPlayer, lv_killingPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAzmodanCustomKillVO_Init () {
libGDHL_gt_HeroAzmodanCustomKillVO = TriggerCreate("libGDHL_gt_HeroAzmodanCustomKillVO_Func");
TriggerEnable(libGDHL_gt_HeroAzmodanCustomKillVO, false);
libGame_gf_CustomKillVO(libGDHL_gt_HeroAzmodanCustomKillVO);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Azmodan - Globe Talent Picked
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAzmodanGlobeTalentPicked_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_tokenCount;
unit lv_hero;
string lv_talent;
// Automatic Variable Declarations
// Variable Initialization
lv_hero = libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnit;
lv_talent = libGame_gf_HeroGainTalentGainedTalent();
// Conditions
if (testConds) {
if (!(((lv_talent == "AzmodanGreed") || (lv_talent == "AzmodanGluttony") || (lv_talent == "AzmodanWrath")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_tokenCount = UnitGetTokenCount(lv_hero, "AzmodanGlobeOfAnnihilationTokenCounter");
UnitSetTokenCount(lv_hero, "AzmodanGlobeOfAnnihilationDisplayTokenCounter", lv_tokenCount, lv_hero);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAzmodanGlobeTalentPicked_Init () {
libGDHL_gt_HeroAzmodanGlobeTalentPicked = TriggerCreate("libGDHL_gt_HeroAzmodanGlobeTalentPicked_Func");
TriggerEnable(libGDHL_gt_HeroAzmodanGlobeTalentPicked, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroAzmodanGlobeTalentPicked);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Azmodan - Demon Create
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAzmodanDemonCreate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_azmodan;
fixed lv_newFacing;
unit lv_demon;
point lv_targetPoint;
point lv_casterPoint;
point lv_offsetPoint;
fixed lv_offset;
fixed lv_facing;
point lv_target;
fixed lv_targetOffset;
fixed lv_wait;
// Automatic Variable Declarations
// Variable Initialization
lv_azmodan = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_offset = 4.0;
lv_target = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
lv_targetOffset = 12.0;
lv_wait = 3.0;
// Actions
if (!runActions) {
return true;
}
lv_targetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
if ((EventPlayerEffectUsed() == "AzmodanSummonDemonWarriorDummySet")) {
lv_casterPoint = EventPlayerEffectUsedPoint(c_effectLocationCasterPoint);
lv_facing = UnitGetFacing(lv_azmodan);
lv_offsetPoint = PointWithOffsetPolar(libNtve_gf_PointFromPositionAndAngle(lv_casterPoint, UnitGetFacing(lv_azmodan)), lv_offset, UnitGetFacing(lv_azmodan));
}
else if ((EventPlayerEffectUsed() == "AzmodanSummonDemonWarriorArmyOfHellTalentDummySet1")) {
lv_casterPoint = EventPlayerEffectUsedPoint(c_effectLocationCasterPoint);
lv_facing = UnitGetFacing(lv_azmodan);
lv_facing = (UnitGetFacing(lv_azmodan) + 17.5);
lv_offsetPoint = PointWithOffsetPolar(libNtve_gf_PointFromPositionAndAngle(lv_casterPoint, UnitGetFacing(lv_azmodan)), lv_offset, (UnitGetFacing(lv_azmodan) + 17.5));
}
else if ((EventPlayerEffectUsed() == "AzmodanSummonDemonWarriorArmyOfHellTalentDummySet2")) {
lv_casterPoint = EventPlayerEffectUsedPoint(c_effectLocationCasterPoint);
lv_facing = (UnitGetFacing(lv_azmodan) - 17.5);
lv_offsetPoint = PointWithOffsetPolar(libNtve_gf_PointFromPositionAndAngle(lv_casterPoint, UnitGetFacing(lv_azmodan)), lv_offset, (UnitGetFacing(lv_azmodan) - 17.5));
}
else if ((EventPlayerEffectUsed() == "AzmodanSummonDemonWarriorHellRiftTalentDummySet")) {
lv_casterPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
lv_offset = 0.0;
lv_wait = 0.0;
lv_target = EventPlayerEffectUsedPoint(c_effectLocationTargetUnit);
lv_facing = UnitGetFacing(lv_azmodan);
lv_offsetPoint = PointWithOffsetPolar(libNtve_gf_PointFromPositionAndAngle(lv_casterPoint, UnitGetFacing(lv_azmodan)), lv_offset, UnitGetFacing(lv_azmodan));
}
libNtve_gf_UnitCreateFacingPoint(1, "AzmodanDemonWarrior", 0, UnitGetOwner(lv_azmodan), lv_offsetPoint, PointWithOffsetPolar(libNtve_gf_PointFromPositionAndAngle(lv_casterPoint, UnitGetFacing(lv_azmodan)), 4.5, lv_facing), lv_azmodan);
lv_demon = UnitLastCreated();
if ((EventPlayerEffectUsed() == "AzmodanSummonDemonWarriorHellRiftTalentDummySet")) {
UnitCreateEffectUnit(lv_azmodan, "AzmodanSummonDemonWarriorTalentedSpawnSet", lv_demon);
}
else {
UnitCreateEffectUnit(lv_azmodan, "AzmodanSummonDemonWarriorSpawnSet", lv_demon);
}
if (((UnitGetFacing(UnitLastCreated()) < 180.0) && (UnitGetFacing(UnitLastCreated()) > 0.0))) {
lv_newFacing = UnitGetFacing(lv_demon);
lv_newFacing += 180.0;
UnitSetFacing(lv_demon, lv_newFacing, 0.0);
}
if ((PlayerHasTalent(UnitGetOwner(lv_demon), "AzmodanHellforgedArmor") == true)) {
UnitBehaviorAdd(lv_demon, "AzmodanSummonDemonWarriorHellforgedArmorTalent", lv_azmodan, 1);
}
if ((UnitIsAlive(lv_demon) == true)) {
Wait(1.5, c_timeGame);
if ((UnitIsAlive(lv_demon) == true)) {
UnitIssueOrder(lv_demon, OrderTargetingPoint(AbilityCommand("attack", 0), libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_demon), lv_targetOffset, lv_target)), c_orderQueueReplace);
}
}
Wait(lv_wait, c_timeGame);
if ((UnitIsAlive(lv_demon) == true)) {
UnitCreateAIThinkTree(lv_demon);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAzmodanDemonCreate_Init () {
libGDHL_gt_HeroAzmodanDemonCreate = TriggerCreate("libGDHL_gt_HeroAzmodanDemonCreate_Func");
TriggerEnable(libGDHL_gt_HeroAzmodanDemonCreate, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanDemonCreate, c_playerAny, "AzmodanSummonDemonWarriorDummySet");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanDemonCreate, c_playerAny, "AzmodanSummonDemonWarriorArmyOfHellTalentDummySet1");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanDemonCreate, c_playerAny, "AzmodanSummonDemonWarriorArmyOfHellTalentDummySet2");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanDemonCreate, c_playerAny, "AzmodanSummonDemonWarriorHellRiftTalentDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Azmodan - Demon General Birth Facing
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroAzmodanDemonGeneralBirthFacing_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
UnitSetFacing(EventPlayerEffectUsedUnit(c_effectUnitTarget), -90.0, 0.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroAzmodanDemonGeneralBirthFacing_Init () {
libGDHL_gt_HeroAzmodanDemonGeneralBirthFacing = TriggerCreate("libGDHL_gt_HeroAzmodanDemonGeneralBirthFacing_Func");
TriggerEnable(libGDHL_gt_HeroAzmodanDemonGeneralBirthFacing, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanDemonGeneralBirthFacing, c_playerAny, "AzmodanDemonLieutenantSpawnSet");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAzmodanDemonGeneralBirthFacing, c_playerAny, "AzmodanSummonDemonWarriorSpawnSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sonya - Wrath of the Berserker Buff Duration Extension
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension_Func (bool testConds, bool runActions) {
// Variable Declarations
string lv_effect;
unit lv_unit;
fixed lv_regenAmount;
fixed lv_currentDuration;
// Automatic Variable Declarations
// Variable Initialization
lv_effect = EventPlayerEffectUsed();
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_regenAmount = CatalogFieldValueGetAsFixed(c_gameCatalogEffect, lv_effect, "VitalArray[" + IntToString(c_unitVitalEnergy) + "].Change", c_playerAny);
// Conditions
if (testConds) {
if (!((UnitBehaviorCount(lv_unit, "BarbarianWrathoftheBerserkerBase") == 1))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_currentDuration = UnitBehaviorDuration(lv_unit, "BarbarianWrathoftheBerserkerBase");
if ((lv_effect == "BarbarianShotOfFuryRegenFuryModifyUnit")) {
lv_regenAmount = 50.0;
}
if ((lv_effect == "BarbarianAncientSpearRegenFuryModifyUnit")) {
lv_regenAmount = 40.0;
}
if ((lv_effect == "BarbarianFuryBasicAttackModifyUnit")) {
lv_regenAmount = 6.0;
}
if ((lv_effect == "BarbarianRegen2Fury")) {
lv_regenAmount = 2.0;
}
if ((lv_effect == "BarbarianFuryBasicAttackAngerManagementTalentModifyUnit")) {
lv_regenAmount = 9.0;
}
if ((lv_effect == "BarbarianRegen2FuryRegenAngerManagementFury")) {
lv_regenAmount = 3.0;
}
UnitBehaviorSetDurationRemaining(lv_unit, "BarbarianWrathoftheBerserkerBase", (lv_currentDuration + (lv_regenAmount / 10.0)));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension_Init () {
libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension = TriggerCreate("libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension_Func");
TriggerEnable(libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension, c_playerAny, "BarbarianShotOfFuryRegenFuryModifyUnit");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension, c_playerAny, "BarbarianAncientSpearRegenFuryModifyUnit");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension, c_playerAny, "BarbarianFuryBasicAttackModifyUnit");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension, c_playerAny, "BarbarianRegen2Fury");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Barbarian - Ancient Spear Launch Barbarian Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroBarbarianAncientSpearLaunchBarbarianUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_barbarianUnit;
unit lv_targetUnit;
point lv_currentPositionOfTarget;
bool lv_spearActive;
fixed lv_reDirectDistance;
// Automatic Variable Declarations
// Variable Initialization
lv_barbarianUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_targetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_spearActive = true;
// Actions
if (!runActions) {
return true;
}
if ((PlayerHasTalent(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), "BarbarianCompositeSpear") == true)) {
lv_reDirectDistance = (libGDHL_gv_heroBarbarianAncientSpearReDirectDistance * 1.5);
}
else {
lv_reDirectDistance = libGDHL_gv_heroBarbarianAncientSpearReDirectDistance;
}
while ((UnitHasBehavior2(lv_barbarianUnit, "BarbarianAncientSpearSelfBuff") == true) && (UnitIsAlive(lv_targetUnit) == true) && (UnitIsAlive(lv_barbarianUnit) == true)) {
if ((UnitHasBehaviorWithCategoryFlag(lv_barbarianUnit, c_behaviorCategoryTimeStop) == true)) {
while ((UnitHasBehaviorWithCategoryFlag(lv_barbarianUnit, c_behaviorCategoryTimeStop) == true) && (UnitIsAlive(lv_targetUnit) == true)) {
lv_currentPositionOfTarget = UnitGetPosition(lv_targetUnit);
if ((lv_spearActive == true) && (DistanceBetweenPoints(lv_currentPositionOfTarget, UnitGetPosition(lv_barbarianUnit)) > lv_reDirectDistance)) {
UnitCreateEffectUnit(lv_barbarianUnit, "BarbarianAncientSpearDestroyTentacleDummy", lv_barbarianUnit);
lv_spearActive = false;
}
Wait(0.0625, c_timeGame);
}
if ((lv_spearActive == true)) {
UnitCreateEffectUnit(lv_barbarianUnit, "BarbarianAncientSpearReDirectBarbarian", lv_targetUnit);
}
else {
UnitCreateEffectUnit(lv_barbarianUnit, "BarbarianAncientSpearReDirectBarbarian", lv_barbarianUnit);
}
}
Wait(0.0625, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroBarbarianAncientSpearLaunchBarbarianUsed_Init () {
libGDHL_gt_HeroBarbarianAncientSpearLaunchBarbarianUsed = TriggerCreate("libGDHL_gt_HeroBarbarianAncientSpearLaunchBarbarianUsed_Func");
TriggerEnable(libGDHL_gt_HeroBarbarianAncientSpearLaunchBarbarianUsed, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroBarbarianAncientSpearLaunchBarbarianUsed, c_playerAny, "BarbarianAncientSpearLaunchBarbarian");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Barbarian - Leap
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroBarbarianLeap_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
fixed lv_abilityRange;
point lv_playerTargetPoint;
fixed lv_distanceFromBarbarianToPlayerTargetPoint;
fixed lv_barbarianRadius;
point lv_actualTargetPoint;
fixed lv_modifiedDistance;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
lv_barbarianRadius = CatalogFieldValueGetAsFixed(c_gameCatalogUnit, (UnitGetType(lv_unit)), "Radius", lv_player);
lv_abilityRange = CatalogFieldValueGetAsFixed(c_gameCatalogActor, "BarbarianLeapRangeSplat", "Scale", lv_player);
lv_playerTargetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
lv_distanceFromBarbarianToPlayerTargetPoint = DistanceBetweenPoints(UnitGetPosition(lv_unit), lv_playerTargetPoint);
if ((lv_distanceFromBarbarianToPlayerTargetPoint > lv_abilityRange)) {
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_unit), lv_abilityRange, lv_playerTargetPoint);
}
else {
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_unit), lv_distanceFromBarbarianToPlayerTargetPoint, lv_playerTargetPoint);
}
lv_modifiedDistance = lv_distanceFromBarbarianToPlayerTargetPoint;
while ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_modifiedDistance -= 0.125;
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_unit), lv_modifiedDistance, lv_playerTargetPoint);
if ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_actualTargetPoint = PointWithOffsetPolar(libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_unit), lv_modifiedDistance, lv_playerTargetPoint), 0.5, (AngleBetweenPoints(UnitGetPosition(lv_unit), lv_playerTargetPoint) + 90.0));
if ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_actualTargetPoint = PointWithOffsetPolar(libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_unit), lv_modifiedDistance, lv_playerTargetPoint), 0.5, (AngleBetweenPoints(UnitGetPosition(lv_unit), lv_playerTargetPoint) - 90.0));
if ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_unit), lv_modifiedDistance, lv_playerTargetPoint);
}
}
}
if ((DistanceBetweenPoints(UnitGetPosition(lv_unit), lv_actualTargetPoint) <= (lv_barbarianRadius + 0.125))) {
libNtve_gf_UIErrorMessage(libCore_gv_playerGroupFromPlayer[lv_player], StringExternal("Param/Value/lib_GDHL_D9EC6B41"), SoundLink("UI_GenericError", -1));
UnitBehaviorRemove(lv_unit, "BarbarianLeap", 1);
UnitAbilityReset(lv_unit, AbilityCommand("BarbarianLeap", 0), c_spendLocationAll);
return true;
}
}
if ((UnitIsAlive(lv_unit) == true)) {
UnitCreateEffectPointWithSource(lv_unit, "BarbarianLeapLaunchMissile", lv_actualTargetPoint, c_gameCatalogAbil, "BarbarianLeap");
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroBarbarianLeap_Init () {
libGDHL_gt_HeroBarbarianLeap = TriggerCreate("libGDHL_gt_HeroBarbarianLeap_Func");
TriggerEnable(libGDHL_gt_HeroBarbarianLeap, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroBarbarianLeap, c_playerAny, "BarbarianLeapInitialSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Barbarian - Leap Refactor
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroBarbarianLeapRefactor_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_abilityRange;
point lv_playerTargetPoint;
fixed lv_distanceFromBarbarianToPlayerTargetPoint;
fixed lv_barbarianRadius;
point lv_actualTargetPoint;
fixed lv_modifiedDistance;
point lv_barbarianPosition;
unit lv_eventUnit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_eventUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_barbarianPosition = UnitGetPosition(lv_eventUnit);
lv_barbarianRadius = CatalogFieldValueGetAsFixed(c_gameCatalogUnit, (UnitGetType(lv_eventUnit)), "Radius", UnitGetOwner(lv_eventUnit));
lv_abilityRange = (CatalogFieldValueGetAsFixed(c_gameCatalogActor, "BarbarianLeapRangeSplat", "Scale", UnitGetOwner(lv_eventUnit)) + lv_barbarianRadius);
lv_playerTargetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
lv_distanceFromBarbarianToPlayerTargetPoint = DistanceBetweenPoints(lv_barbarianPosition, lv_playerTargetPoint);
if ((lv_distanceFromBarbarianToPlayerTargetPoint > lv_abilityRange)) {
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_barbarianPosition, (lv_barbarianRadius + lv_abilityRange), lv_playerTargetPoint);
}
else {
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_barbarianPosition, (lv_barbarianRadius + lv_distanceFromBarbarianToPlayerTargetPoint), lv_playerTargetPoint);
}
lv_modifiedDistance = lv_distanceFromBarbarianToPlayerTargetPoint;
while ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_modifiedDistance -= 0.125;
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_barbarianPosition, lv_modifiedDistance, lv_playerTargetPoint);
if ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_actualTargetPoint = PointWithOffsetPolar(libNtve_gf_PointOffsetTowardsPoint(lv_barbarianPosition, lv_modifiedDistance, lv_playerTargetPoint), 0.5, (AngleBetweenPoints(lv_barbarianPosition, lv_playerTargetPoint) + 90.0));
if ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_actualTargetPoint = PointWithOffsetPolar(libNtve_gf_PointOffsetTowardsPoint(lv_barbarianPosition, lv_modifiedDistance, lv_playerTargetPoint), 0.5, (AngleBetweenPoints(lv_barbarianPosition, lv_playerTargetPoint) - 90.0));
if ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_barbarianPosition, lv_modifiedDistance, lv_playerTargetPoint);
}
}
}
if ((DistanceBetweenPoints(lv_barbarianPosition, lv_actualTargetPoint) <= (lv_barbarianRadius + 0.125))) {
libNtve_gf_UIErrorMessage(libCore_gv_playerGroupFromPlayer[UnitGetOwner(lv_eventUnit)], StringExternal("Param/Value/lib_GDHL_EC6CBAAF"), SoundLink("UI_GenericError", -1));
UnitBehaviorRemove(lv_eventUnit, "BarbarianLeap", 1);
UnitAbilityReset(lv_eventUnit, AbilityCommand("BarbarianLeap", 0), c_spendLocationAll);
return true;
}
}
if ((UnitIsAlive(lv_eventUnit) == true)) {
UnitCreateEffectPointWithSource(lv_eventUnit, "BarbarianLeapLaunchMissile", lv_actualTargetPoint, c_gameCatalogAbil, "BarbarianLeap");
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroBarbarianLeapRefactor_Init () {
libGDHL_gt_HeroBarbarianLeapRefactor = TriggerCreate("libGDHL_gt_HeroBarbarianLeapRefactor_Func");
TriggerEnable(libGDHL_gt_HeroBarbarianLeapRefactor, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroBarbarianLeapRefactor, c_playerAny, "BarbarianLeapInitialSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Barbarian - Leap Arreat Crater Forced Destruction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroBarbarianLeapArreatCraterForcedDestruction_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_target = EventPlayerEffectUsedUnitImpact();
lv_player = UnitGetOwner(lv_target);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_target) == "BarbarianLeapArreatCraterCollision"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(libGame_gv_players[lv_player].lv_heroUnit, "BarbarianLeapArreatCraterDestroySet", libGame_gv_players[lv_player].lv_heroUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroBarbarianLeapArreatCraterForcedDestruction_Init () {
libGDHL_gt_HeroBarbarianLeapArreatCraterForcedDestruction = TriggerCreate("libGDHL_gt_HeroBarbarianLeapArreatCraterForcedDestruction_Func");
TriggerEnable(libGDHL_gt_HeroBarbarianLeapArreatCraterForcedDestruction, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroBarbarianLeapArreatCraterForcedDestruction, c_playerAny, "DestroyPathingBlockerDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Butcher - Ruthless Onslaught - Target Audio Telegraph
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroButcherRuthlessOnslaughtTargetAudioTelegraph_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_butcherPlayer;
unit lv_target;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Conditions
if (testConds) {
if (!((UnitGetOwner(lv_unit) >= 1))) {
return false;
}
if (!((UnitGetOwner(lv_unit) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_butcherPlayer = UnitBehaviorEffectPlayer(lv_unit, EventUnitBehavior(), c_effectPlayerCaster, 0);
lv_target = lv_unit;
lv_butcherPlayer = UnitGetOwner(UnitBehaviorEffectUnit(lv_unit, "RuthlessOnslaughtTarget", c_effectUnitCaster, 0));
SoundPlayForPlayer(SoundLink("Butcher_RuthlessOnslaught_Targeted_VICTIM", -1), lv_butcherPlayer, PlayerGroupSingle(UnitGetOwner(lv_target)), 100.0, 0.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroButcherRuthlessOnslaughtTargetAudioTelegraph_Init () {
libGDHL_gt_HeroButcherRuthlessOnslaughtTargetAudioTelegraph = TriggerCreate("libGDHL_gt_HeroButcherRuthlessOnslaughtTargetAudioTelegraph_Func");
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtTargetAudioTelegraph, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroButcherRuthlessOnslaughtTargetAudioTelegraph, null, "RuthlessOnslaughtTarget", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Butcher - Ruthless Onslaught Travel Validation
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroButcherRuthlessOnslaughtTravelValidation_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_targetUnit;
unit lv_unit;
fixed lv_travelDistanceCancelThreshold;
int lv_butcherPlayer;
int lv_targetPlayer;
point lv_currentPositionOfTarget;
// Automatic Variable Declarations
// Variable Initialization
lv_targetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_travelDistanceCancelThreshold = 20.0;
// Actions
if (!runActions) {
return true;
}
lv_butcherPlayer = UnitGetOwner(lv_unit);
lv_targetPlayer = UnitGetOwner(lv_targetUnit);
lv_currentPositionOfTarget = UnitGetPosition(lv_targetUnit);
while ((UnitIsAlive(lv_unit) == true) && (UnitIsAlive(lv_targetUnit) == true) && ((UnitHasBehavior2(lv_unit, "ButcherRuthlessOnslaughtCaster") == true) || (UnitHasBehavior2(lv_unit, "RuthlessOnslaughtFinalAssault") == true))) {
if ((UnitOrder(lv_unit, 0) == null)) {
UnitIssueOrder(lv_unit, OrderTargetingUnit(AbilityCommand("attack", 0), lv_targetUnit), c_orderQueueAddToFront);
}
if ((((UnitIsAlive(lv_targetUnit) == true) && (DistanceBetweenPoints(UnitGetPosition(lv_targetUnit), lv_currentPositionOfTarget) > lv_travelDistanceCancelThreshold)) || ((UnitIsAlive(lv_targetUnit) == true) && (UnitHasBehavior2(lv_targetUnit, "FalstadFlightAscend") == true)))) {
UnitCreateEffectUnit(lv_unit, "RuthlessOnslaughtTargetInvalidatedCleanupSet", lv_unit);
}
lv_currentPositionOfTarget = UnitGetPosition(lv_targetUnit);
Wait(0.0625, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroButcherRuthlessOnslaughtTravelValidation_Init () {
libGDHL_gt_HeroButcherRuthlessOnslaughtTravelValidation = TriggerCreate("libGDHL_gt_HeroButcherRuthlessOnslaughtTravelValidation_Func");
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtTravelValidation, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroButcherRuthlessOnslaughtTravelValidation, c_playerAny, "RuthlessOnslaughtInitialSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Butcher - Ruthless Onslaught Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroButcherRuthlessOnslaughtCast_Func (bool testConds, bool runActions) {
// Variable Declarations
playergroup lv_eligiblePlayerstoHearVO;
const int lv_bonusRange = 4;
int lv_abilityRange;
unit lv_itU;
// Automatic Variable Declarations
// Variable Initialization
lv_eligiblePlayerstoHearVO = PlayerGroupEmpty();
lv_abilityRange = CatalogFieldValueGetAsInt(c_gameCatalogAbil, "ButcherRuthlessOnslaught", "Range[" + IntToString(0) + "]", c_playerAny);
// Actions
if (!runActions) {
return true;
}
PlayerGroupAdd(lv_eligiblePlayerstoHearVO, UnitGetOwner(EventUnit()));
PlayerGroupAdd(lv_eligiblePlayerstoHearVO, UnitGetOwner(EventUnitTargetUnit()));
SoundPlayForPlayer(SoundLink("ButcherBase_VOX_ReactionC", -1), c_maxPlayers, lv_eligiblePlayerstoHearVO, 100.0, 0.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroButcherRuthlessOnslaughtCast_Init () {
libGDHL_gt_HeroButcherRuthlessOnslaughtCast = TriggerCreate("libGDHL_gt_HeroButcherRuthlessOnslaughtCast_Func");
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtCast, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroButcherRuthlessOnslaughtCast, null, AbilityCommand("ButcherRuthlessOnslaught", 0), c_abilEffectStageCast, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Butcher - Ruthless Onslaught Cancel Animation Hook
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroButcherRuthlessOnslaughtCancelAnimationHook_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
ActorSend(libNtve_gf_MainActorofUnit(EventUnit()), "AnimPlay Spell Spell,A");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroButcherRuthlessOnslaughtCancelAnimationHook_Init () {
libGDHL_gt_HeroButcherRuthlessOnslaughtCancelAnimationHook = TriggerCreate("libGDHL_gt_HeroButcherRuthlessOnslaughtCancelAnimationHook_Func");
TriggerEnable(libGDHL_gt_HeroButcherRuthlessOnslaughtCancelAnimationHook, false);
TriggerAddEventUnitOrder(libGDHL_gt_HeroButcherRuthlessOnslaughtCancelAnimationHook, null, AbilityCommand("RuthlessOnslaughtCancel", 0));
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Butcher - Butcher Participated In Takedown
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroButcherButcherParticipatedInTakedown_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_butcherPlayer;
unit lv_butcher;
unit lv_deadUnit;
int lv_iterator;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_heroUnit) == "HeroButcher"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_butcherPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_butcher = libGame_gv_players[lv_butcherPlayer].lv_heroUnit;
lv_deadUnit = libGame_gf_HeroParticipatedInTakedownKilledHero();
libNtve_gf_CreateUnitsWithDefaultFacing(1, "ButcherFreshMeat20Stack", 0, lv_butcherPlayer, PointWithOffsetPolar(libGame_gf_HeroParticipatedInTakedownKilledHeroPosition(), 1.0, libNtve_gf_RandomAngle()), lv_butcher);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroButcherButcherParticipatedInTakedown_Init () {
libGDHL_gt_HeroButcherButcherParticipatedInTakedown = TriggerCreate("libGDHL_gt_HeroButcherButcherParticipatedInTakedown_Func");
TriggerEnable(libGDHL_gt_HeroButcherButcherParticipatedInTakedown, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroButcherButcherParticipatedInTakedown);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Butcher - Fresh Meat - Vehicle Pickup
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroButcherFreshMeatVehiclePickup_Func (bool testConds, bool runActions) {
// Variable Declarations
string lv_effect;
int lv_player;
unit lv_heroUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_effect = EventPlayerEffectUsed();
// Conditions
if (testConds) {
if (!((UnitIsValid(EventPlayerEffectUsedUnit(c_effectUnitTarget)) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(libGame_gv_players[EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget)].lv_heroUnit) == "HeroButcher") && (UnitIsValid(libGame_gv_players[EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget)].lv_activeVehicle) == true)) {
lv_player = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitTarget));
lv_heroUnit = libGame_gv_players[lv_player].lv_heroUnit;
if ((lv_effect == "ButcherFreshMeat1StackImpactDummySet")) {
UnitCreateEffectUnit(EventPlayerEffectUsedUnit(c_effectUnitCaster), "ButcherFreshMeat1StackImpactSet", lv_heroUnit);
}
else if ((lv_effect == "ButcherFreshMeat20StackImpactDummySet")) {
UnitCreateEffectUnit(EventPlayerEffectUsedUnit(c_effectUnitCaster), "ButcherFreshMeat20StackImpactSet", lv_heroUnit);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroButcherFreshMeatVehiclePickup_Init () {
libGDHL_gt_HeroButcherFreshMeatVehiclePickup = TriggerCreate("libGDHL_gt_HeroButcherFreshMeatVehiclePickup_Func");
TriggerEnable(libGDHL_gt_HeroButcherFreshMeatVehiclePickup, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroButcherFreshMeatVehiclePickup, c_playerAny, "ButcherFreshMeat1StackImpactDummySet");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroButcherFreshMeatVehiclePickup, c_playerAny, "ButcherFreshMeat20StackImpactDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Butcher - Fresh Meat - Vehicle Occupy
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroButcherFreshMeatVehicleOccupy_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_butcher;
int lv_butcher_Player;
unit lv_vehicle;
// Automatic Variable Declarations
// Variable Initialization
lv_butcher = EventUnit();
lv_butcher_Player = UnitGetOwner(lv_butcher);
lv_vehicle = libGame_gv_players[lv_butcher_Player].lv_activeVehicle;
// Conditions
if (testConds) {
if (!((UnitGetType(lv_butcher) == "HeroButcher"))) {
return false;
}
if (!((UnitGetTokenCount(lv_butcher, "ButcherFreshMeatTokenCounter") < libGDHL_gv_heroButcherFreshMeatMaxMeatCount))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(lv_vehicle, "ButcherFreshMeatVehicleCarry", lv_butcher, 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroButcherFreshMeatVehicleOccupy_Init () {
libGDHL_gt_HeroButcherFreshMeatVehicleOccupy = TriggerCreate("libGDHL_gt_HeroButcherFreshMeatVehicleOccupy_Func");
TriggerEnable(libGDHL_gt_HeroButcherFreshMeatVehicleOccupy, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroButcherFreshMeatVehicleOccupy, null, "UsingVehicle", c_unitBehaviorChangeIncrease);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Butcher - Fresh Meat - Update Stack Counter
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter_Func (bool testConds, bool runActions) {
// Variable Declarations
string lv_freshMeatChargeLink;
int lv_butcherPlayer;
unit lv_butcher;
int lv_maxCharges;
int lv_currentCharges;
int lv_changeInCharges;
// Automatic Variable Declarations
// Variable Initialization
lv_freshMeatChargeLink = "Abil/ButcherFreshMeatDummy";
lv_butcherPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_butcher = libGame_gv_players[lv_butcherPlayer].lv_heroUnit;
lv_maxCharges = FixedToInt(CatalogReferenceGetAsInt("Abil,ButcherFreshMeatDummy,Cost.Charge.CountMax", c_playerAny));
lv_currentCharges = (lv_maxCharges - FixedToInt(UnitGetChargeUsed(lv_butcher, lv_freshMeatChargeLink)));
lv_changeInCharges = (UnitBehaviorCount(lv_butcher, "ButcherFreshMeatTokenCounter") - lv_currentCharges);
// Actions
if (!runActions) {
return true;
}
UnitAddChargeUsed(lv_butcher, lv_freshMeatChargeLink, (lv_changeInCharges * -1));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter_Init () {
libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter = TriggerCreate("libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter_Func");
TriggerEnable(libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter, c_playerAny, "ButcherFreshMeat1StackImpactSet");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter, c_playerAny, "ButcherFreshMeatDeathRemove15StackSet");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter, c_playerAny, "ButcherFreshMeat20StackImpactSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Wandering Keg Activate
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenWanderingKegActivate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_chen;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_chen = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_chen);
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(lv_player) == false)) {
UnitBehaviorAdd(lv_chen, "ChenWanderingKegMovementDisabler", lv_chen, 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenWanderingKegActivate_Init () {
libGDHL_gt_HeroChenWanderingKegActivate = TriggerCreate("libGDHL_gt_HeroChenWanderingKegActivate_Func");
TriggerEnable(libGDHL_gt_HeroChenWanderingKegActivate, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroChenWanderingKegActivate, c_playerAny, "ChenWanderingKegInitialSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Wandering Keg Deactivate
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenWanderingKegDeactivate_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
UnitBehaviorRemove(EventUnit(), "ChenWanderingKegDontDie", 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenWanderingKegDeactivate_Init () {
libGDHL_gt_HeroChenWanderingKegDeactivate = TriggerCreate("libGDHL_gt_HeroChenWanderingKegDeactivate_Func");
TriggerEnable(libGDHL_gt_HeroChenWanderingKegDeactivate, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroChenWanderingKegDeactivate, null, "ChenWanderingKegCasterBuff", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Storm Earth Fire Timed Life Increase
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenStormEarthFireTimedLifeIncrease_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_chen;
int lv_chenOwner;
// Automatic Variable Declarations
unitgroup autoCC30ED76_g;
int autoCC30ED76_u;
unit autoCC30ED76_var;
// Variable Initialization
lv_chen = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_chenOwner = UnitGetOwner(lv_chen);
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_chen, "ChenStormStormEarthFireEmpoweredCastModifyTimedLifeChenUnit", lv_chen);
autoCC30ED76_g = libGDHL_gv_heroChenStormEarthFireUnits[lv_chenOwner].lv_stormEarthFireUnits;
autoCC30ED76_u = UnitGroupCount(autoCC30ED76_g, c_unitCountAll);
for (;; autoCC30ED76_u -= 1) {
autoCC30ED76_var = UnitGroupUnitFromEnd(autoCC30ED76_g, autoCC30ED76_u);
if (autoCC30ED76_var == null) { break; }
UnitCreateEffectUnit(lv_chen, "ChenStormStormEarthFireEmpoweredCastModifyTimedLife", autoCC30ED76_var);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenStormEarthFireTimedLifeIncrease_Init () {
libGDHL_gt_HeroChenStormEarthFireTimedLifeIncrease = TriggerCreate("libGDHL_gt_HeroChenStormEarthFireTimedLifeIncrease_Func");
TriggerEnable(libGDHL_gt_HeroChenStormEarthFireTimedLifeIncrease, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroChenStormEarthFireTimedLifeIncrease, c_playerAny, "ChenStormStormEarthFireEmpoweredCastModifyTimedLifeDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Storm Earth And Fire Stasis
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenStormEarthAndFireStasis_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itUnit;
int lv_player;
// Automatic Variable Declarations
unitgroup auto7E91516A_g;
int auto7E91516A_u;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayer();
if ((lv_player > libCore_gv_bALMaxPlayers)) {
return true;
}
if ((libGame_gv_players[lv_player].lv_heroIndex != libCore_gf_GetHeroIndexForUnitType("HeroChen")) && ((UnitHasBehavior2(libGame_gv_players[lv_player].lv_heroUnit, "ChenStormEarthFireCasterInitialDisable") != true) || (UnitHasBehavior2(libGame_gv_players[lv_player].lv_heroUnit, "StormEarthFireCasterBehavior") != true))) {
return true;
}
auto7E91516A_g = libGDHL_gv_heroChenStormEarthFireUnits[lv_player].lv_stormEarthFireUnits;
auto7E91516A_u = UnitGroupCount(auto7E91516A_g, c_unitCountAll);
for (;; auto7E91516A_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto7E91516A_g, auto7E91516A_u);
if (lv_itUnit == null) { break; }
if ((UnitFilterMatch(lv_itUnit, lv_player, UnitFilter(0, 0, 0, (1 << (c_targetFilterStasis - 32)))) == true)) {
return true;
}
}
UnitBehaviorAdd(libGame_gv_players[lv_player].lv_heroUnit, "ChenElementalAbilitySuppression", libGame_gv_players[lv_player].lv_heroUnit, 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenStormEarthAndFireStasis_Init () {
libGDHL_gt_HeroChenStormEarthAndFireStasis = TriggerCreate("libGDHL_gt_HeroChenStormEarthAndFireStasis_Func");
TriggerEnable(libGDHL_gt_HeroChenStormEarthAndFireStasis, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroChenStormEarthAndFireStasis, null, c_behaviorCategoryDebuffStasis, c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Storm Earth And Fire Timestop
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenStormEarthAndFireTimestop_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_i;
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
unitgroup auto0E1B5985_g;
int auto0E1B5985_u;
unit auto0E1B5985_var;
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((lv_player > 0))) {
return false;
}
if (!((lv_player < libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
while ((UnitHasBehavior2(lv_unit, "StormEarthFireCasterBehavior") == true)) {
auto0E1B5985_g = libGDHL_gv_heroChenStormEarthFireUnits[lv_player].lv_stormEarthFireUnits;
auto0E1B5985_u = UnitGroupCount(auto0E1B5985_g, c_unitCountAll);
for (;; auto0E1B5985_u -= 1) {
auto0E1B5985_var = UnitGroupUnitFromEnd(auto0E1B5985_g, auto0E1B5985_u);
if (auto0E1B5985_var == null) { break; }
if ((UnitHasBehaviorWithCategoryFlag(auto0E1B5985_var, c_behaviorCategoryTimeStop) == true)) {
lv_i += 1;
if ((UnitGroupCount(libGDHL_gv_heroChenStormEarthFireUnits[lv_player].lv_stormEarthFireUnits, c_unitCountAlive) == lv_i)) {
UnitBehaviorAdd(libGame_gv_players[lv_player].lv_heroUnit, "ChenStormEarthFireTimeStopController", UnitGroupRandomUnit(libGDHL_gv_heroChenStormEarthFireUnits[lv_player].lv_stormEarthFireUnits, c_unitCountAlive), 1);
}
}
}
lv_i = 0;
Wait(0.0625, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenStormEarthAndFireTimestop_Init () {
libGDHL_gt_HeroChenStormEarthAndFireTimestop = TriggerCreate("libGDHL_gt_HeroChenStormEarthAndFireTimestop_Func");
TriggerEnable(libGDHL_gt_HeroChenStormEarthAndFireTimestop, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroChenStormEarthAndFireTimestop, null, "StormEarthFireCasterBehavior", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Storm Earth And Fire Stasis Cleanup
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenStormEarthAndFireStasisCleanup_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itUnit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayer();
if ((lv_player > libCore_gv_bALMaxPlayers)) {
return true;
}
if ((libGame_gv_players[lv_player].lv_heroIndex != libCore_gf_GetHeroIndexForUnitType("HeroChen"))) {
return true;
}
if ((UnitGroupHasUnit(libGDHL_gv_heroChenStormEarthFireUnits[lv_player].lv_stormEarthFireUnits, EventUnit()) == true) && (UnitFilterMatch(EventUnit(), lv_player, UnitFilter(0, 0, 0, (1 << (c_targetFilterStasis - 32)))) == true)) {
UnitBehaviorRemove(libGame_gv_players[lv_player].lv_heroUnit, "ChenElementalAbilitySuppression", 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenStormEarthAndFireStasisCleanup_Init () {
libGDHL_gt_HeroChenStormEarthAndFireStasisCleanup = TriggerCreate("libGDHL_gt_HeroChenStormEarthAndFireStasisCleanup_Func");
TriggerEnable(libGDHL_gt_HeroChenStormEarthAndFireStasisCleanup, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroChenStormEarthAndFireStasisCleanup, null, c_behaviorCategoryDebuffStasis, c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Storm Earth Fire Activated New
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenStormEarthFireActivatedNew_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_chen;
unit lv_itChenSpirit;
int lv_chenPlayer;
// Automatic Variable Declarations
unitgroup autoF2A44342_g;
int autoF2A44342_u;
unitgroup auto41D2074B_g;
int auto41D2074B_u;
unit auto41D2074B_var;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_chen = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_chenPlayer = UnitGetOwner(lv_chen);
libGDHL_gv_heroChenStormEarthFireFatalDamageResponseCounter[lv_chenPlayer] = 0;
UnitCreate(1, "HeroChenStorm", 0, lv_chenPlayer, PointWithOffsetPolar(UnitGetPosition(lv_chen), 1.5, 0.0), 0.0, lv_chen);
UnitBehaviorAdd(UnitLastCreated(), "StormEarthFireTimedLife", lv_chen, 1);
UnitBehaviorAdd(lv_chen, "ChenStormEarthFireStormAbilityDisable", UnitLastCreated(), 1);
UnitGroupAdd(libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_stormEarthFireUnits, UnitLastCreated());
UnitGroupAdd(libGame_gv_players[lv_chenPlayer].lv_heroUnitGroup, UnitLastCreated());
UnitGroupAdd(libGame_gv_players[lv_chenPlayer].lv_altClickPartyFrameAnnouncementUnitGroup, UnitLastCreated());
AIAddPlayerUnit(UnitLastCreated());
libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_controlStoreUnit = UnitLastCreated();
UnitCreate(1, "HeroChenEarth", 0, lv_chenPlayer, PointWithOffsetPolar(UnitGetPosition(lv_chen), 1.5, 120.0), 120.0, lv_chen);
UnitBehaviorAdd(UnitLastCreated(), "StormEarthFireTimedLife", lv_chen, 1);
UnitBehaviorAdd(lv_chen, "ChenStormEarthFireEarthAbilityDisable", UnitLastCreated(), 1);
UnitGroupAdd(libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_stormEarthFireUnits, UnitLastCreated());
UnitGroupAdd(libGame_gv_players[lv_chenPlayer].lv_heroUnitGroup, UnitLastCreated());
UnitGroupAdd(libGame_gv_players[lv_chenPlayer].lv_altClickPartyFrameAnnouncementUnitGroup, UnitLastCreated());
AIAddPlayerUnit(UnitLastCreated());
UnitCreate(1, "HeroChenFire", 0, lv_chenPlayer, PointWithOffsetPolar(UnitGetPosition(lv_chen), 1.5, 240.0), 240.0, lv_chen);
UnitBehaviorAdd(UnitLastCreated(), "StormEarthFireTimedLife", lv_chen, 1);
UnitBehaviorAdd(lv_chen, "ChenStormEarthFireFireAbilityDisable", UnitLastCreated(), 1);
UnitGroupAdd(libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_stormEarthFireUnits, UnitLastCreated());
UnitGroupAdd(libGame_gv_players[lv_chenPlayer].lv_heroUnitGroup, UnitLastCreated());
UnitGroupAdd(libGame_gv_players[lv_chenPlayer].lv_altClickPartyFrameAnnouncementUnitGroup, UnitLastCreated());
AIAddPlayerUnit(UnitLastCreated());
UnitGroupRemove(libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_stormEarthFireUnits, lv_chen);
autoF2A44342_g = libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_stormEarthFireUnits;
autoF2A44342_u = UnitGroupCount(autoF2A44342_g, c_unitCountAll);
for (;; autoF2A44342_u -= 1) {
lv_itChenSpirit = UnitGroupUnitFromEnd(autoF2A44342_g, autoF2A44342_u);
if (lv_itChenSpirit == null) { break; }
UnitBehaviorAdd(lv_itChenSpirit, "MapMechanicStack", lv_itChenSpirit, UnitBehaviorCount(lv_chen, "MapMechanicStack"));
UnitSelect(lv_itChenSpirit, lv_chenPlayer, true);
}
if ((UnitGetType(libGame_gv_players[lv_chenPlayer].lv_heroUnit) == "HeroAbathur")) {
auto41D2074B_g = libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_stormEarthFireUnits;
auto41D2074B_u = UnitGroupCount(auto41D2074B_g, c_unitCountAll);
for (;; auto41D2074B_u -= 1) {
auto41D2074B_var = UnitGroupUnitFromEnd(auto41D2074B_g, auto41D2074B_u);
if (auto41D2074B_var == null) { break; }
UnitBehaviorAdd(auto41D2074B_var, "UltimateEvolutionAlternateHero", auto41D2074B_var, 1);
UnitBehaviorAdd(auto41D2074B_var, "AbathurUltimateEvolutionCleanupTarget", auto41D2074B_var, 1);
}
}
UISetSelectionTypeEnabled(PlayerGroupSingle(lv_chenPlayer), c_localSelectionTypeWorldPanelHero, false);
while ((UnitHasBehavior2(lv_chen, "StormEarthFireCasterBehavior") == true)) {
if ((UnitIsAlive(libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_controlStoreUnit) == true)) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_chen), UnitGetPosition(libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_controlStoreUnit)) >= 4.0)) {
UnitSetPosition(lv_chen, UnitGetPosition(libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_controlStoreUnit), true);
}
else {
UnitSetPosition(lv_chen, UnitGetPosition(libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_controlStoreUnit), true);
}
}
Wait(0.0625, c_timeGame);
}
UISetSelectionTypeEnabled(PlayerGroupSingle(lv_chenPlayer), c_localSelectionTypeWorldPanelHero, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenStormEarthFireActivatedNew_Init () {
libGDHL_gt_HeroChenStormEarthFireActivatedNew = TriggerCreate("libGDHL_gt_HeroChenStormEarthFireActivatedNew_Func");
TriggerEnable(libGDHL_gt_HeroChenStormEarthFireActivatedNew, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroChenStormEarthFireActivatedNew, c_playerAny, "ChenStormEarthFireCreateFinishSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Element Dies
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenElementDies_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_killingUnit;
unit lv_killedElement;
int lv_owner;
unit lv_chen;
int lv_elementsAlive;
point lv_chenReturnPoint;
// Automatic Variable Declarations
string auto06E2BA20_val;
unitgroup auto44B73923_g;
int auto44B73923_u;
unit auto44B73923_var;
// Variable Initialization
lv_killingUnit = libNtve_gf_KillingUnit();
lv_killedElement = EventUnit();
// Conditions
if (testConds) {
if (!((UnitBehaviorCount(libGame_gv_players[UnitGetOwner(lv_killedElement)].lv_heroUnit, "StormEarthFireCasterBehavior") == 1))) {
return false;
}
if (!(((UnitGetType(lv_killedElement) == "HeroChenStorm") || (UnitGetType(lv_killedElement) == "HeroChenEarth") || (UnitGetType(lv_killedElement) == "HeroChenFire")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_chenReturnPoint = UnitGetPosition(lv_killedElement);
lv_owner = UnitGetOwner(lv_killedElement);
if ((UnitGetType(libGame_gv_players[lv_owner].lv_heroUnit) == "HeroChen")) {
lv_chen = libGame_gv_players[lv_owner].lv_heroUnit;
}
else {
lv_chen = libGame_gv_players[lv_owner].lv_activeVehicle;
}
lv_elementsAlive = UnitGroupCount(libGDHL_gv_heroChenStormEarthFireUnits[lv_owner].lv_stormEarthFireUnits, c_unitCountAlive);
auto06E2BA20_val = UnitGetType(lv_killedElement);
if (auto06E2BA20_val == "HeroChenStorm") {
UnitBehaviorRemove(lv_chen, "ChenStormAlive", 1);
}
else if (auto06E2BA20_val == "HeroChenEarth") {
UnitBehaviorRemove(lv_chen, "ChenEarthAlive", 1);
}
else if (auto06E2BA20_val == "HeroChenFire") {
UnitBehaviorRemove(lv_chen, "ChenFireAlive", 1);
}
else {
}
if ((lv_elementsAlive == 0)) {
if ((UnitGetOwner(lv_killingUnit) != lv_owner)) {
libGDHL_gf_HeroChenStormEarthFireCleanup(lv_owner, true, lv_killingUnit);
}
else {
libGDHL_gf_HeroChenStormEarthFireCleanup(lv_owner, false, lv_killingUnit);
}
}
else {
if ((lv_killedElement == libGDHL_gv_heroChenStormEarthFireUnits[lv_owner].lv_controlStoreUnit)) {
auto44B73923_g = UnitGroupFilter(null, lv_owner, libGDHL_gv_heroChenStormEarthFireUnits[lv_owner].lv_stormEarthFireUnits, UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto44B73923_u = UnitGroupCount(auto44B73923_g, c_unitCountAll);
for (;; auto44B73923_u -= 1) {
auto44B73923_var = UnitGroupUnitFromEnd(auto44B73923_g, auto44B73923_u);
if (auto44B73923_var == null) { break; }
if ((lv_elementsAlive == 2) && (UnitGetType(auto44B73923_var) == "HeroChenEarth")) {
libGDHL_gv_heroChenStormEarthFireUnits[lv_owner].lv_controlStoreUnit = auto44B73923_var;
break;
}
else {
if ((lv_elementsAlive == 1) && (UnitGetType(auto44B73923_var) == "HeroChenFire")) {
libGDHL_gv_heroChenStormEarthFireUnits[lv_owner].lv_controlStoreUnit = auto44B73923_var;
break;
}
else {
if ((lv_elementsAlive == 1) && (UnitGetType(auto44B73923_var) == "HeroChenEarth")) {
libGDHL_gv_heroChenStormEarthFireUnits[lv_owner].lv_controlStoreUnit = auto44B73923_var;
break;
}
}
}
}
}
}
Wait(2.0, c_timeGame);
UnitRemove(EventUnit());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenElementDies_Init () {
libGDHL_gt_HeroChenElementDies = TriggerCreate("libGDHL_gt_HeroChenElementDies_Func");
TriggerEnable(libGDHL_gt_HeroChenElementDies, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroChenElementDies, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Element Fatal Damage Response
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenElementFatalDamageResponse_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_spirit;
int lv_spiritOwner;
// Automatic Variable Declarations
// Variable Initialization
lv_spirit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_spiritOwner = UnitGetOwner(lv_spirit);
// Conditions
if (testConds) {
if (!((lv_spiritOwner > 0))) {
return false;
}
if (!((lv_spiritOwner <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((libGDHL_gv_heroChenStormEarthFireFatalDamageResponseCounter[lv_spiritOwner] >= 3)) {
libGDHL_gv_heroChenStormEarthFireFatalDamageResponseCounter[lv_spiritOwner] = 3;
}
else {
libGDHL_gv_heroChenStormEarthFireFatalDamageResponseCounter[lv_spiritOwner] += 1;
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenElementFatalDamageResponse_Init () {
libGDHL_gt_HeroChenElementFatalDamageResponse = TriggerCreate("libGDHL_gt_HeroChenElementFatalDamageResponse_Func");
TriggerEnable(libGDHL_gt_HeroChenElementFatalDamageResponse, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroChenElementFatalDamageResponse, c_playerAny, "ChenStormEarthFireFatalDamageResponseDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Expiration Cleanup
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenExpirationCleanup_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
unitgroup auto342D60BF_g;
int auto342D60BF_u;
unit auto342D60BF_var;
// Variable Initialization
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
// Actions
if (!runActions) {
return true;
}
auto342D60BF_g = libGDHL_gv_heroChenStormEarthFireUnits[lv_player].lv_stormEarthFireUnits;
auto342D60BF_u = UnitGroupCount(auto342D60BF_g, c_unitCountAll);
for (;; auto342D60BF_u -= 1) {
auto342D60BF_var = UnitGroupUnitFromEnd(auto342D60BF_g, auto342D60BF_u);
if (auto342D60BF_var == null) { break; }
if (((UnitGetType(auto342D60BF_var) == "HeroChenStorm") || (UnitGetType(auto342D60BF_var) == "HeroChenFire") || (UnitGetType(auto342D60BF_var) == "HeroChenEarth"))) {
UnitCreateEffectUnit(auto342D60BF_var, "TimedLifeFate", auto342D60BF_var);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenExpirationCleanup_Init () {
libGDHL_gt_HeroChenExpirationCleanup = TriggerCreate("libGDHL_gt_HeroChenExpirationCleanup_Func");
TriggerEnable(libGDHL_gt_HeroChenExpirationCleanup, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroChenExpirationCleanup, c_playerAny, "StormEarthFireTimedLifeFate");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Storm Earth Fire Earth Ability
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenStormEarthFireEarthAbility_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_chenPlayer;
unit lv_Chen;
fixed lv_maxJumpRange;
point lv_playerTargetPoint;
fixed lv_distanceFromSpiritToPlayerTargetPoint;
fixed lv_spiritRadius;
point lv_actualTargetPoint;
point lv_closestElementPoint;
fixed lv_modifiedDistance;
// Automatic Variable Declarations
unitgroup autoC170BB9F_g;
int autoC170BB9F_u;
unit autoC170BB9F_var;
// Variable Initialization
lv_chenPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_Chen = libGame_gv_players[lv_chenPlayer].lv_heroUnit;
lv_maxJumpRange = 9.5;
// Actions
if (!runActions) {
return true;
}
lv_playerTargetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
lv_closestElementPoint = UnitGetPosition(UnitGroupClosestToPoint(libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_stormEarthFireUnits, lv_playerTargetPoint));
lv_distanceFromSpiritToPlayerTargetPoint = DistanceBetweenPoints(lv_closestElementPoint, lv_playerTargetPoint);
lv_spiritRadius = 0.5;
if ((lv_distanceFromSpiritToPlayerTargetPoint > lv_maxJumpRange)) {
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_closestElementPoint, lv_maxJumpRange, lv_playerTargetPoint);
}
else {
lv_actualTargetPoint = lv_playerTargetPoint;
}
lv_modifiedDistance = (lv_maxJumpRange + 0.125);
autoC170BB9F_g = libGDHL_gv_heroChenStormEarthFireUnits[lv_chenPlayer].lv_stormEarthFireUnits;
autoC170BB9F_u = UnitGroupCount(autoC170BB9F_g, c_unitCountAll);
for (;; autoC170BB9F_u -= 1) {
autoC170BB9F_var = UnitGroupUnitFromEnd(autoC170BB9F_g, autoC170BB9F_u);
if (autoC170BB9F_var == null) { break; }
if ((UnitGetType(autoC170BB9F_var) != "HeroChenStorm")) {
if (((UnitBehaviorCount(lv_Chen, "ChenStormEarthFireStackingBehaviorEmpoweredFinalAbilityCast") == 2) || (PlayerHasTalent(lv_chenPlayer, "ChenElementalConduit") == true))) {
UnitCreateEffectUnit(autoC170BB9F_var, "ChenEarthStormEarthFireDummyLeapEmpoweredBonusesApplyBehavior", autoC170BB9F_var);
}
while ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_modifiedDistance -= 0.125;
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(lv_closestElementPoint, lv_modifiedDistance, lv_playerTargetPoint);
}
}
if ((UnitGetType(autoC170BB9F_var) != "HeroChenStorm") && (UnitIsAlive(autoC170BB9F_var) == true) && (PointPathingCost(UnitGetPosition(autoC170BB9F_var), lv_actualTargetPoint) < 100)) {
libNtve_gf_MakeUnitFacePoint(autoC170BB9F_var, lv_actualTargetPoint, 0.0);
UnitCreateEffectUnit(autoC170BB9F_var, "DismountDecloakCasterSet", autoC170BB9F_var);
UnitCreateEffectPointWithSource(autoC170BB9F_var, "ChenEarthLaunchMissile", lv_actualTargetPoint, c_gameCatalogAbil, "ChenStormEarthFireTriAttack");
UnitIssueOrder(autoC170BB9F_var, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
}
}
UnitCreateEffectUnit(lv_Chen, "EmpoweredStormEarthFireStackingBehaviorEmpoweredFinalAbilityCastApplyBehavior", lv_Chen);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenStormEarthFireEarthAbility_Init () {
libGDHL_gt_HeroChenStormEarthFireEarthAbility = TriggerCreate("libGDHL_gt_HeroChenStormEarthFireEarthAbility_Func");
TriggerEnable(libGDHL_gt_HeroChenStormEarthFireEarthAbility, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroChenStormEarthFireEarthAbility, c_playerAny, "ChenEarthDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Swift Reflexes Talent - Missed
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenSwiftReflexesTalentMissed_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_caster;
int lv_target;
playergroup lv_players;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_target = EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget);
lv_players = PlayerGroupEmpty();
// Conditions
if (testConds) {
if (!((libSprt_gv_dEBUGCombatTextEnabled == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((EventPlayerEffectUsed() == "LiLiBlindingWindRemoveBehaviorBlind")) {
PlayerGroupAdd(lv_players, lv_caster);
PlayerGroupAdd(lv_players, EventPlayerEffectUsedUnitOwner(c_effectPlayerSource));
FloatingCombatElementCreateTextAtUnit(lv_players, "FloatingCombatElements/FloatingCombatElementTemplate", "", EventPlayerEffectUsedUnit(c_effectUnitTarget), StringExternal("Param/Value/lib_GDHL_1032ACAE"), libNtve_gv_FloatingCombatTextAutoRandomSeed);
}
else {
PlayerGroupAdd(lv_players, lv_target);
PlayerGroupAdd(lv_players, lv_caster);
FloatingCombatElementCreateTextAtUnit(lv_players, "FloatingCombatElements/FloatingCombatElementTemplate", "", EventPlayerEffectUsedUnit(c_effectUnitSource), StringExternal("Param/Value/lib_GDHL_D0A684FD"), libNtve_gv_FloatingCombatTextAutoRandomSeed);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenSwiftReflexesTalentMissed_Init () {
libGDHL_gt_HeroChenSwiftReflexesTalentMissed = TriggerCreate("libGDHL_gt_HeroChenSwiftReflexesTalentMissed_Func");
TriggerEnable(libGDHL_gt_HeroChenSwiftReflexesTalentMissed, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroChenSwiftReflexesTalentMissed, c_playerAny, "ChenSwiftReflexesProcSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Freshest Ingredients Talent Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenFreshestIngredientsTalentProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itRegenGlobeImpactUnit;
unit lv_regenGlobeTarget;
int lv_regenGlobeTargetPlayer;
playergroup lv_chenPlayerGroup;
unit lv_itChenUnit;
int lv_itChenPlayer;
fixed lv_regenGlobeSearchRadius;
// Automatic Variable Declarations
unitgroup autoA4EE960C_g;
int autoA4EE960C_u;
playergroup auto7AE37C66_g;
// Variable Initialization
lv_regenGlobeTarget = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_regenGlobeTargetPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget);
lv_chenPlayerGroup = PlayerGroupEmpty();
// Actions
if (!runActions) {
return true;
}
lv_regenGlobeSearchRadius = CatalogFieldValueGetAsInt(c_gameCatalogEffect, "RegenGlobePickupSearch", "AreaArray[" + IntToString(0) + "].Radius", 0);
autoA4EE960C_g = UnitGroupAlliance(lv_regenGlobeTargetPlayer, c_unitAllianceAlly, RegionCircle(UnitGetPosition(lv_regenGlobeTarget), lv_regenGlobeSearchRadius), libCore_gv_filtersHeroicAllyorPlayerandnotStasis, 0);
autoA4EE960C_u = UnitGroupCount(autoA4EE960C_g, c_unitCountAll);
for (;; autoA4EE960C_u -= 1) {
lv_itRegenGlobeImpactUnit = UnitGroupUnitFromEnd(autoA4EE960C_g, autoA4EE960C_u);
if (lv_itRegenGlobeImpactUnit == null) { break; }
if ((PlayerHasTalent(UnitGetOwner(lv_itRegenGlobeImpactUnit), "ChenFreshestIngredients") == true) && ((UnitGetType(lv_itRegenGlobeImpactUnit) == "HeroChen") || (UnitGetType(lv_itRegenGlobeImpactUnit) == "HeroChenStorm") || (UnitGetType(lv_itRegenGlobeImpactUnit) == "HeroChenEarth") || (UnitGetType(lv_itRegenGlobeImpactUnit) == "HeroChenFire"))) {
PlayerGroupAdd(lv_chenPlayerGroup, UnitGetOwner(lv_itRegenGlobeImpactUnit));
}
else {
if ((((lv_itRegenGlobeImpactUnit == libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeImpactUnit)].lv_unit_Vehicle) && (UnitGetType(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeImpactUnit)].lv_unit_UnitInsideVehicle) == "HeroChen")) || ((lv_itRegenGlobeImpactUnit == libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeImpactUnit)].lv_unit_Vehicle) && (UnitGetType(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeImpactUnit)].lv_unit_LinkedVehicle)].lv_unit_UnitInsideVehicle) == "HeroChen")))) {
if ((UnitIsValid(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeImpactUnit)].lv_unit_LinkedVehicle) == true)) {
PlayerGroupAdd(lv_chenPlayerGroup, UnitGetOwner(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeImpactUnit)].lv_unit_LinkedVehicle));
}
PlayerGroupAdd(lv_chenPlayerGroup, UnitGetOwner(lv_itRegenGlobeImpactUnit));
}
}
}
auto7AE37C66_g = lv_chenPlayerGroup;
lv_itChenPlayer = -1;
while (true) {
lv_itChenPlayer = PlayerGroupNextPlayer(auto7AE37C66_g, lv_itChenPlayer);
if (lv_itChenPlayer<0) { break; }
if ((PlayerHasTalent(lv_itChenPlayer, "ChenFreshestIngredients") == true)) {
lv_itChenUnit = libGame_gv_players[lv_itChenPlayer].lv_heroUnit;
UnitCreateEffectUnit(lv_itChenUnit, "ChenFortifyingBrewFreshestIngredientsAddTokenCounter", lv_itChenUnit);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenFreshestIngredientsTalentProc_Init () {
libGDHL_gt_HeroChenFreshestIngredientsTalentProc = TriggerCreate("libGDHL_gt_HeroChenFreshestIngredientsTalentProc_Func");
TriggerEnable(libGDHL_gt_HeroChenFreshestIngredientsTalentProc, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroChenFreshestIngredientsTalentProc, c_playerAny, "RegenGlobePickupSearch");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen Stagger Gift Of The Ox Talent Damage Modification
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModification_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroGainTalentPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroChen"))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "ChenGiftOfTheOxStagger") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroChenStaggerDamageModification[lv_player] = 0.5;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModification_Init () {
libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModification = TriggerCreate("libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModification_Func");
libGame_gf_HeroGainTalent(libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModification);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen Stagger Gift Of The Ox Talent Damage Modification Reset
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModificationReset_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroRespecsTalentsPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroChen"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroChenStaggerDamageModification[lv_player] = 0.75;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModificationReset_Init () {
libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModificationReset = TriggerCreate("libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModificationReset_Func");
libGame_gf_HeroRespecsTalents(libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModificationReset);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Stagger Damage Response
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenStaggerDamageResponse_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_chen;
int lv_chenOwner;
fixed lv_damageTaken;
int lv_damageTakenInteger;
// Automatic Variable Declarations
// Variable Initialization
lv_chen = EventUnit();
lv_chenOwner = UnitGetOwner(lv_chen);
lv_damageTaken = (EventUnitDamageAbsorbed() * libGDHL_gv_heroChenStaggerDamageModification[lv_chenOwner]);
lv_damageTakenInteger = FixedToInt(lv_damageTaken);
// Actions
if (!runActions) {
return true;
}
libGame_gf_ModifyTokenCount(lv_damageTakenInteger, "ChenStaggerTokenCounter", lv_chen);
libGame_gf_ModifyTokenCount(lv_damageTakenInteger, "ChenStaggerDisplayTokenCounter", lv_chen);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenStaggerDamageResponse_Init () {
libGDHL_gt_HeroChenStaggerDamageResponse = TriggerCreate("libGDHL_gt_HeroChenStaggerDamageResponse_Func");
TriggerEnable(libGDHL_gt_HeroChenStaggerDamageResponse, false);
TriggerAddEventUnitDamageAbsorbed(libGDHL_gt_HeroChenStaggerDamageResponse, null, "ChenStaggerProtectedBuff");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Chen - Stagger Display Update
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroChenStaggerDisplayUpdate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_chen;
int lv_chenOwner;
fixed lv_damageTaken;
int lv_damageTakenInteger;
// Automatic Variable Declarations
// Variable Initialization
lv_chen = EventUnit();
lv_chenOwner = UnitGetOwner(lv_chen);
lv_damageTaken = EventUnitDamageAttempted();
lv_damageTakenInteger = FixedToInt((lv_damageTaken * -1.0));
// Actions
if (!runActions) {
return true;
}
libGame_gf_ModifyTokenCount(lv_damageTakenInteger, "ChenStaggerDisplayTokenCounter", lv_chen);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroChenStaggerDisplayUpdate_Init () {
libGDHL_gt_HeroChenStaggerDisplayUpdate = TriggerCreate("libGDHL_gt_HeroChenStaggerDisplayUpdate_Func");
TriggerEnable(libGDHL_gt_HeroChenStaggerDisplayUpdate, false);
TriggerAddEventUnitDamaged(libGDHL_gt_HeroChenStaggerDisplayUpdate, null, c_unitDamageTypeAny, c_unitDamageEither, "ChenStaggerDoTDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Crusader - Falling Sword - Teleport
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_CrusaderFallingSwordTeleport_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
int lv_owner;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_owner = UnitGetOwner(lv_caster);
// Actions
if (!runActions) {
return true;
}
libGame_gv_players[lv_owner].lv_cameraCameraLockInterrupt = true;
libGame_gf_CameraUpdateCameraForPlayer(lv_owner);
libGame_gf_CameraPanCameraForPlayerAndUpdateMapBoundsIfNecessary(lv_owner, UnitGetPosition(lv_caster), 0.0, -1, 10.0, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_CrusaderFallingSwordTeleport_Init () {
libGDHL_gt_CrusaderFallingSwordTeleport = TriggerCreate("libGDHL_gt_CrusaderFallingSwordTeleport_Func");
TriggerEnable(libGDHL_gt_CrusaderFallingSwordTeleport, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_CrusaderFallingSwordTeleport, c_playerAny, "CrusaderFallingSwordTeleport");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Crusader - Falling Sword - Final Set
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_CrusaderFallingSwordFinalSet_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
libGame_gv_players[lv_player].lv_cameraCameraLockInterrupt = false;
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_CrusaderFallingSwordFinalSet_Init () {
libGDHL_gt_CrusaderFallingSwordFinalSet = TriggerCreate("libGDHL_gt_CrusaderFallingSwordFinalSet_Func");
TriggerEnable(libGDHL_gt_CrusaderFallingSwordFinalSet, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_CrusaderFallingSwordFinalSet, null, "CrusaderFallingSword", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Crusader - Falling Sword - Suppress Collision
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_CrusaderFallingSwordSuppressCollision_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSet(c_gameCatalogUnit, "HeroCrusader", "Collide[" + IntToString(1) + "]", UnitGetOwner(EventUnit()), "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroCrusader", "Collide[" + IntToString(12) + "]", UnitGetOwner(EventUnit()), "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroCrusader", "Collide[" + IntToString(8) + "]", UnitGetOwner(EventUnit()), "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroCrusader", "Collide[" + IntToString(10) + "]", UnitGetOwner(EventUnit()), "1");
while (!((UnitHasBehavior2(EventUnit(), "CrusaderFallingSword") == false))) {
Wait(0.0625, c_timeGame);
}
CatalogFieldValueSet(c_gameCatalogUnit, "HeroCrusader", "Collide[" + IntToString(1) + "]", UnitGetOwner(EventUnit()), "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroCrusader", "Collide[" + IntToString(12) + "]", UnitGetOwner(EventUnit()), "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroCrusader", "Collide[" + IntToString(8) + "]", UnitGetOwner(EventUnit()), "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroCrusader", "Collide[" + IntToString(10) + "]", UnitGetOwner(EventUnit()), "0");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_CrusaderFallingSwordSuppressCollision_Init () {
libGDHL_gt_CrusaderFallingSwordSuppressCollision = TriggerCreate("libGDHL_gt_CrusaderFallingSwordSuppressCollision_Func");
TriggerEnable(libGDHL_gt_CrusaderFallingSwordSuppressCollision, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_CrusaderFallingSwordSuppressCollision, null, "CrusaderFallingSword", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Diablo - Overpower Set Facing
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDiabloOverpowerSetFacing_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_diabloUnit;
fixed lv_diabloFacing;
fixed lv_diabloNewFacing;
// Automatic Variable Declarations
// Variable Initialization
lv_diabloUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Actions
if (!runActions) {
return true;
}
lv_diabloFacing = UnitGetFacing(lv_diabloUnit);
lv_diabloNewFacing = (lv_diabloFacing + 180.0);
UnitSetFacing(lv_diabloUnit, lv_diabloNewFacing, 0.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDiabloOverpowerSetFacing_Init () {
libGDHL_gt_HeroDiabloOverpowerSetFacing = TriggerCreate("libGDHL_gt_HeroDiabloOverpowerSetFacing_Func");
TriggerEnable(libGDHL_gt_HeroDiabloOverpowerSetFacing, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroDiabloOverpowerSetFacing, c_playerAny, "DiabloOverpowerCasterSetFacingTriggerTriggerDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Diablo - Inferno Breath Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDiabloInfernoBreathCast_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((UnitGetOwner(lv_unit) >= 1))) {
return false;
}
if (!((UnitGetOwner(lv_unit) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroDiabloInfernoBreathActive[lv_player] = true;
CatalogFieldValueSetFixed(c_gameCatalogUnit, "HeroDiablo", "StationaryTurningRate", lv_player, libGDHL_gv_heroDiabloInfernoBreathTurningRate);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDiabloInfernoBreathCast_Init () {
libGDHL_gt_HeroDiabloInfernoBreathCast = TriggerCreate("libGDHL_gt_HeroDiabloInfernoBreathCast_Func");
TriggerEnable(libGDHL_gt_HeroDiabloInfernoBreathCast, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroDiabloInfernoBreathCast, null, "DiabloLightningBreathActive", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Diablo - Inferno Breath End
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDiabloInfernoBreathEnd_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_i;
bool lv_infernoBreathAimTriggerEnabled;
int lv_diabloIndex;
int lv_triggeringDiabloPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_triggeringDiabloPlayer = UnitGetOwner(EventUnit());
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventUnit()) >= 1))) {
return false;
}
if (!((UnitGetOwner(EventUnit()) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSet(c_gameCatalogUnit, "HeroDiablo", "StationaryTurningRate", lv_triggeringDiabloPlayer, CatalogFieldValueGet(c_gameCatalogUnit, "HeroDiablo", "StationaryTurningRate", 0));
libGDHL_gv_heroDiabloInfernoBreathActive[lv_triggeringDiabloPlayer] = false;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDiabloInfernoBreathEnd_Init () {
libGDHL_gt_HeroDiabloInfernoBreathEnd = TriggerCreate("libGDHL_gt_HeroDiabloInfernoBreathEnd_Func");
TriggerEnable(libGDHL_gt_HeroDiabloInfernoBreathEnd, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroDiabloInfernoBreathEnd, null, "DiabloLightningBreathActive", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Diablo - Eternal Soulstone Ressurection
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDiabloEternalSoulstoneRessurection_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroLevelUpPlayer();
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((libGame_gf_HeroLevelUpLevel() >= 10))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroDiablo"))) {
return false;
}
if (!((UnitHasBehavior2(lv_unit, "DiabloBlackSoulstoneEternalSoulstone") == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(lv_unit, "DiabloBlackSoulstoneEternalSoulstone", lv_unit, 1);
UnitCreateEffectUnit(lv_unit, "DiabloBlackSoulstoneAdd1EternalSoulstoneTokenCount", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDiabloEternalSoulstoneRessurection_Init () {
libGDHL_gt_HeroDiabloEternalSoulstoneRessurection = TriggerCreate("libGDHL_gt_HeroDiabloEternalSoulstoneRessurection_Func");
TriggerEnable(libGDHL_gt_HeroDiabloEternalSoulstoneRessurection, false);
libGame_gf_HeroLevelUp(libGDHL_gt_HeroDiabloEternalSoulstoneRessurection);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Diablo - Reset Eternal Soulstone Ressurection
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDiabloResetEternalSoulstoneRessurection_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroDiablo"))) {
return false;
}
if (!((UnitHasBehavior2(lv_unit, "DiabloBlackSoulstoneEternalSoulstone") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_unit, "DiabloBlackSoulstoneResetEternalSoulstoneTokenCount", lv_unit);
UnitBehaviorRemove(lv_unit, "DiabloBlackSoulstoneEternalSoulstone", 1);
Wait(0.125, c_timeGame);
if ((UnitBehaviorCount(EventUnit(), "HeroDummyVeterancy") >= 10)) {
UnitBehaviorAdd(lv_unit, "DiabloBlackSoulstoneEternalSoulstone", lv_unit, 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDiabloResetEternalSoulstoneRessurection_Init () {
libGDHL_gt_HeroDiabloResetEternalSoulstoneRessurection = TriggerCreate("libGDHL_gt_HeroDiabloResetEternalSoulstoneRessurection_Func");
TriggerEnable(libGDHL_gt_HeroDiabloResetEternalSoulstoneRessurection, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroDiabloResetEternalSoulstoneRessurection, null, "MuradinItsHammerTimeTokenCounter", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Diablo - Black Soulstone Stack Talent Picked
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDiabloBlackSoulstoneStackTalentPicked_Func (bool testConds, bool runActions) {
// Variable Declarations
string lv_behavior;
unit lv_unit;
int lv_player;
fixed lv_tokenStacks;
// Automatic Variable Declarations
// Variable Initialization
lv_behavior = EventUnitBehavior();
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
lv_tokenStacks = UnitBehaviorCount(lv_unit, "DiabloBlackSoulstoneTokenCounter");
// Conditions
if (testConds) {
if (!((UnitBehaviorCount(lv_unit, "DiabloBlackSoulstoneTokenCounter") > 0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSetFixed(c_gameCatalogEffect, "DiabloBlackSoulstoneAddDynamicDevilsDueTalentTokenCount", "Value", lv_player, lv_tokenStacks);
UnitCreateEffectUnit(lv_unit, "DiabloBlackSoulstoneAddDynamicDevilsDueTalentTokenCount", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDiabloBlackSoulstoneStackTalentPicked_Init () {
libGDHL_gt_HeroDiabloBlackSoulstoneStackTalentPicked = TriggerCreate("libGDHL_gt_HeroDiabloBlackSoulstoneStackTalentPicked_Func");
TriggerEnable(libGDHL_gt_HeroDiabloBlackSoulstoneStackTalentPicked, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroDiabloBlackSoulstoneStackTalentPicked, null, "DiabloBlackSoulstoneDevilsDueTalentTokenCounter", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Demon Hunter - Vault Damage Buff
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDemonHunterVaultDamageBuff_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
int lv_stacks;
fixed lv_base;
fixed lv_stackMod;
fixed lv_finalMod;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_unit);
lv_stacks = UnitBehaviorCount(lv_unit, "NewHatredStack");
lv_stackMod = 0.06;
// Actions
if (!runActions) {
return true;
}
if ((PlayerHasTalent(lv_player, "DemonHunterDeathDealer") == true)) {
lv_stackMod = 0.15;
}
lv_finalMod = (lv_base + (lv_stackMod * lv_stacks));
CatalogFieldValueSetFixed(c_gameCatalogBehavior, "DemonHunterVaultDamageBoost", "Modification.UnifiedDamageDealtFraction[" + IntToString(c_unitDamageTypeBasic) + "]", lv_player, lv_finalMod);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDemonHunterVaultDamageBuff_Init () {
libGDHL_gt_HeroDemonHunterVaultDamageBuff = TriggerCreate("libGDHL_gt_HeroDemonHunterVaultDamageBuff_Func");
TriggerEnable(libGDHL_gt_HeroDemonHunterVaultDamageBuff, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroDemonHunterVaultDamageBuff, c_playerAny, "VaultPersistent");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Demon Hunter - Manticore Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDemonHunterManticoreProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
unit lv_caster;
int lv_casterPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_target = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_casterPlayer = UnitGetOwner(lv_caster);
// Actions
if (!runActions) {
return true;
}
if ((libGDHL_gv_heroDemonHunterManticoreTarget[lv_casterPlayer] == lv_target)) {
if ((libGDHL_gv_heroDemonHunterManticoreIncrementer[lv_casterPlayer] == 2)) {
UnitCreateEffectUnitWithSource(lv_caster, "DemonHunterHeroWeaponManticoreTalentProcDamage", lv_target, c_gameCatalogAbil, "attack");
UnitCreateEffectUnitWithSource(lv_caster, "ManticoreRemoveProcStacks", lv_target, c_gameCatalogAbil, "attack");
libGDHL_gv_heroDemonHunterManticoreIncrementer[lv_casterPlayer] = 0;
}
else {
libGDHL_gv_heroDemonHunterManticoreIncrementer[lv_casterPlayer] += 1;
}
}
else {
UnitCreateEffectUnitWithSource(lv_caster, "ManticoreRemoveProcStacks", libGDHL_gv_heroDemonHunterManticoreTarget[lv_casterPlayer], c_gameCatalogAbil, "attack");
libGDHL_gv_heroDemonHunterManticoreIncrementer[lv_casterPlayer] = 1;
libGDHL_gv_heroDemonHunterManticoreTarget[lv_casterPlayer] = lv_target;
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDemonHunterManticoreProc_Init () {
libGDHL_gt_HeroDemonHunterManticoreProc = TriggerCreate("libGDHL_gt_HeroDemonHunterManticoreProc_Func");
TriggerEnable(libGDHL_gt_HeroDemonHunterManticoreProc, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroDemonHunterManticoreProc, c_playerAny, "DemonHunterHeroWeaponManticoreTalentDummyModifyUnit");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Leaping Strike - Set Target Variable
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadLeapingStrikeSetTargetVariable_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroDryadLeapingStrikeTarget[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))] = EventPlayerEffectUsedUnit(c_effectUnitTarget);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadLeapingStrikeSetTargetVariable_Init () {
libGDHL_gt_HeroDryadLeapingStrikeSetTargetVariable = TriggerCreate("libGDHL_gt_HeroDryadLeapingStrikeSetTargetVariable_Func");
TriggerEnable(libGDHL_gt_HeroDryadLeapingStrikeSetTargetVariable, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroDryadLeapingStrikeSetTargetVariable, c_playerAny, "DryadLeapingStrikeAttackDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Leaping Strike - Find Landing Location
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadLeapingStrikeFindLandingLocation_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_lunara;
point lv_targetPoint;
fixed lv_searchIncrements;
point lv_newLocation;
// Automatic Variable Declarations
// Variable Initialization
lv_targetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
lv_searchIncrements = 0.25;
// Actions
if (!runActions) {
return true;
}
lv_newLocation = lv_targetPoint;
lv_lunara = EventPlayerEffectUsedUnit(c_effectUnitCaster);
while (((PathingType(lv_newLocation) != c_pathingGround))) {
lv_newLocation = libNtve_gf_PointOffsetTowardsPoint(lv_newLocation, lv_searchIncrements, UnitGetPosition(lv_lunara));
if ((DistanceBetweenPoints(lv_newLocation, UnitGetPosition(lv_lunara)) <= lv_searchIncrements)) {
lv_newLocation = UnitTypePlacementTestsFromPoint(UnitGetType(lv_lunara), 0, lv_newLocation, 5.0, c_placementTestIgnoreBlockersMask);
break;
}
}
if ((UnitHasBehavior2(lv_lunara, "DryadLeapingStrikeFriendlyCast") == true)) {
UnitCreateEffectPoint(lv_lunara, "DryadLeapingStrikeBoundlessStrideLaunchMissile", lv_newLocation);
}
else {
UnitCreateEffectPoint(lv_lunara, "DryadLeapingStrikeLaunchMissile", lv_newLocation);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadLeapingStrikeFindLandingLocation_Init () {
libGDHL_gt_HeroDryadLeapingStrikeFindLandingLocation = TriggerCreate("libGDHL_gt_HeroDryadLeapingStrikeFindLandingLocation_Func");
TriggerEnable(libGDHL_gt_HeroDryadLeapingStrikeFindLandingLocation, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroDryadLeapingStrikeFindLandingLocation, c_playerAny, "DryadLeapingStrikeOffsetDummyEffect");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Leaping Strike - Create Attack Persistent
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadLeapingStrikeCreateAttackPersistent_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Actions
if (!runActions) {
return true;
}
Wait(0.125, c_timeGame);
UnitCreateEffectUnitWithSource(lv_caster, "DryadLeapingStrikeAttackPersistent", libGDHL_gv_heroDryadLeapingStrikeTarget[UnitGetOwner(lv_caster)], c_gameCatalogAbil, "DryadLeapingStrike");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadLeapingStrikeCreateAttackPersistent_Init () {
libGDHL_gt_HeroDryadLeapingStrikeCreateAttackPersistent = TriggerCreate("libGDHL_gt_HeroDryadLeapingStrikeCreateAttackPersistent_Func");
TriggerEnable(libGDHL_gt_HeroDryadLeapingStrikeCreateAttackPersistent, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroDryadLeapingStrikeCreateAttackPersistent, c_playerAny, "DryadLeapingStrikeLaunchMissile");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Nature's Toxin - Handle Application
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadNaturesToxinHandleApplication_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_timeDifferenceToNextThreshold;
unit lv_caster;
unit lv_target;
string lv_triggeringPoison;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_target = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_triggeringPoison = "DryadNaturesToxin";
// Actions
if (!runActions) {
return true;
}
if (((UnitHasBehavior2(lv_target, "IsPseudoStructure") == true) || (UnitTypeTestAttribute(UnitGetType(lv_target), c_unitAttributeHeroic) == true) || (UnitTypeTestAttribute(UnitGetType(lv_target), c_unitAttributeStructure) == true))) {
if ((UnitBehaviorDuration(lv_target, lv_triggeringPoison) < 6.0)) {
lv_timeDifferenceToNextThreshold = (UnitBehaviorDuration(lv_target, lv_triggeringPoison) - 3.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual2", lv_timeDifferenceToNextThreshold);
}
else {
if ((UnitBehaviorDuration(lv_target, lv_triggeringPoison) < 9.0)) {
lv_timeDifferenceToNextThreshold = (UnitBehaviorDuration(lv_target, lv_triggeringPoison) - 6.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual2", 6.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual3", lv_timeDifferenceToNextThreshold);
}
}
if ((UnitBehaviorDurationTotal(lv_target, lv_triggeringPoison) > 9.0)) {
UnitBehaviorSetDurationRemaining(lv_target, lv_triggeringPoison, 9.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual3", 3.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual2", 6.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual1", 9.0);
}
}
else {
if ((UnitBehaviorDuration(lv_target, lv_triggeringPoison) < 6.0)) {
lv_timeDifferenceToNextThreshold = (UnitBehaviorDuration(lv_target, lv_triggeringPoison) - 3.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual2", lv_timeDifferenceToNextThreshold);
}
else {
if ((UnitBehaviorDuration(lv_target, lv_triggeringPoison) < 9.0)) {
lv_timeDifferenceToNextThreshold = (UnitBehaviorDuration(lv_target, lv_triggeringPoison) - 6.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual2", 6.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual3", lv_timeDifferenceToNextThreshold);
}
}
if ((UnitBehaviorDurationTotal(lv_target, lv_triggeringPoison) > 9.0)) {
UnitBehaviorSetDurationRemaining(lv_target, lv_triggeringPoison, 9.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual3", 3.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual2", 6.0);
UnitBehaviorSetDurationRemaining(lv_target, "DryadNaturesToxinVisual1", 9.0);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadNaturesToxinHandleApplication_Init () {
libGDHL_gt_HeroDryadNaturesToxinHandleApplication = TriggerCreate("libGDHL_gt_HeroDryadNaturesToxinHandleApplication_Func");
TriggerEnable(libGDHL_gt_HeroDryadNaturesToxinHandleApplication, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroDryadNaturesToxinHandleApplication, c_playerAny, "DryadNaturesToxinApplyDebuff");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroDryadNaturesToxinHandleApplication, c_playerAny, "DryadNaturesToxinApplyIntensifyingToxinDebuff");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroDryadNaturesToxinHandleApplication, c_playerAny, "DryadForestsWrathApplyThornwoodVineDebuff");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Wisp - Dividing Wisp Duration
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadWispDividingWispDuration_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup autoF8ACB49C_g;
int autoF8ACB49C_u;
unit autoF8ACB49C_var;
// Actions
if (!runActions) {
return true;
}
autoF8ACB49C_g = UnitGroup("DryadWispUnit", UnitGetOwner(EventUnit()), RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1);
autoF8ACB49C_u = UnitGroupCount(autoF8ACB49C_g, c_unitCountAll);
for (;; autoF8ACB49C_u -= 1) {
autoF8ACB49C_var = UnitGroupUnitFromEnd(autoF8ACB49C_g, autoF8ACB49C_u);
if (autoF8ACB49C_var == null) { break; }
UnitBehaviorSetDurationRemaining(EventUnit(), "DryadWispDividingWispMasteryTimedLife", (UnitBehaviorDuration(autoF8ACB49C_var, "DryadWispTimedLife") - 0.0625));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadWispDividingWispDuration_Init () {
libGDHL_gt_HeroDryadWispDividingWispDuration = TriggerCreate("libGDHL_gt_HeroDryadWispDividingWispDuration_Func");
TriggerEnable(libGDHL_gt_HeroDryadWispDividingWispDuration, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroDryadWispDividingWispDuration, null, "DryadWispDividingWispMasteryTimedLife", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Dance Cancel Orders
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadDanceCancelOrders_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = libGame_gv_players[UnitGetOwner(EventUnit())].lv_heroUnit;
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroDryad"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitIssueOrder(lv_unit, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadDanceCancelOrders_Init () {
libGDHL_gt_HeroDryadDanceCancelOrders = TriggerCreate("libGDHL_gt_HeroDryadDanceCancelOrders_Func");
TriggerEnable(libGDHL_gt_HeroDryadDanceCancelOrders, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroDryadDanceCancelOrders, null, AbilityCommand("stop", 3), c_unitAbilStageExecute, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Abolish Magic - Behavior Activate
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadAbolishMagicBehaviorActivate_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroDryadAbolishMagicIncrementer += 1;
if (((TriggerIsEnabled(libGDHL_gt_HeroDryadAbolishMagicCCRecognition) == false) && (libGDHL_gv_heroDryadAbolishMagicIncrementer >= 1))) {
TriggerEnable(libGDHL_gt_HeroDryadAbolishMagicCCRecognition, true);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadAbolishMagicBehaviorActivate_Init () {
libGDHL_gt_HeroDryadAbolishMagicBehaviorActivate = TriggerCreate("libGDHL_gt_HeroDryadAbolishMagicBehaviorActivate_Func");
TriggerEnable(libGDHL_gt_HeroDryadAbolishMagicBehaviorActivate, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroDryadAbolishMagicBehaviorActivate, null, "DryadAbolishMagicDummy", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Abolish Magic - Behavior Deactivate
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadAbolishMagicBehaviorDeactivate_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroDryadAbolishMagicIncrementer -= 1;
if ((libGDHL_gv_heroDryadAbolishMagicIncrementer == 0)) {
TriggerEnable(libGDHL_gt_HeroDryadAbolishMagicCCRecognition, false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadAbolishMagicBehaviorDeactivate_Init () {
libGDHL_gt_HeroDryadAbolishMagicBehaviorDeactivate = TriggerCreate("libGDHL_gt_HeroDryadAbolishMagicBehaviorDeactivate_Func");
TriggerEnable(libGDHL_gt_HeroDryadAbolishMagicBehaviorDeactivate, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroDryadAbolishMagicBehaviorDeactivate, null, "DryadAbolishMagicDummy", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Abolish Magic - CC Recognition
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadAbolishMagicCCRecognition_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
string lv_behavior;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_behavior = EventUnitBehavior();
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(lv_unit, "DryadAbolishMagicDummy") == true))) {
return false;
}
if (!((UnitGetOwner(lv_unit) > 0))) {
return false;
}
if (!((UnitGetOwner(lv_unit) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((((UnitBehaviorHasCategoryFlag(lv_behavior, c_behaviorCategoryUnreducible) == true) && (UnitBehaviorHasCategoryFlag(lv_behavior, c_behaviorCategoryStun) == true)) || ((UnitBehaviorHasCategoryFlag(lv_behavior, c_behaviorCategoryUnreducible) == true) && (UnitBehaviorHasCategoryFlag(lv_behavior, c_behaviorCategoryDebuffSilence) == true)))) {
return true;
}
else {
libGame_gf_CCRecognitionCCReduction(lv_unit, lv_behavior);
if ((UnitBehaviorCount(lv_unit, "HeroGenericHasNoStatusBar") == 0) && (UnitBehaviorHasCategoryFlag(lv_behavior, c_behaviorCategoryRestorable) == true)) {
libUIUI_gf_HeroConsoleUnitStatusBarsUpdateStunDeathBar(lv_behavior, UnitGetOwner(lv_unit));
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadAbolishMagicCCRecognition_Init () {
libGDHL_gt_HeroDryadAbolishMagicCCRecognition = TriggerCreate("libGDHL_gt_HeroDryadAbolishMagicCCRecognition_Func");
TriggerEnable(libGDHL_gt_HeroDryadAbolishMagicCCRecognition, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroDryadAbolishMagicCCRecognition, null, c_behaviorCategoryDebuffSilence, c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroDryadAbolishMagicCCRecognition, null, c_behaviorCategoryDebuffSilence, c_unitBehaviorChangeRefresh);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Activate Camera Settings
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadActivateCameraSettings_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroDryad"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CameraSetData(PlayerGroupSingle(EventPlayer()), "Dryad");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadActivateCameraSettings_Init () {
libGDHL_gt_HeroDryadActivateCameraSettings = TriggerCreate("libGDHL_gt_HeroDryadActivateCameraSettings_Func");
TriggerEnable(libGDHL_gt_HeroDryadActivateCameraSettings, false);
TriggerAddEventUnitSelected(libGDHL_gt_HeroDryadActivateCameraSettings, null, c_playerAny, true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Deactivate Camera Settings
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadDeactivateCameraSettings_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroDryad"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CameraSetData(PlayerGroupSingle(EventPlayer()), "BlizzardAllStars");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadDeactivateCameraSettings_Init () {
libGDHL_gt_HeroDryadDeactivateCameraSettings = TriggerCreate("libGDHL_gt_HeroDryadDeactivateCameraSettings_Func");
TriggerEnable(libGDHL_gt_HeroDryadDeactivateCameraSettings, false);
TriggerAddEventUnitSelected(libGDHL_gt_HeroDryadDeactivateCameraSettings, null, c_playerAny, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Activate Camera for Symbiote
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadActivateCameraforSymbiote_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(libGDHL_gf_AbathurSymbioteTarget()) == "HeroDryad"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CameraSetData(PlayerGroupSingle(libGDHL_gf_AbathurSymbioteAbathurPlayer()), "Dryad");
while ((UnitIsAlive(libGDHL_gf_AbathurSymbioteUnit()) == true)) {
Wait(0.0625, c_timeGame);
}
CameraSetData(PlayerGroupSingle(libGDHL_gf_AbathurSymbioteAbathurPlayer()), "BlizzardAllStars");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadActivateCameraforSymbiote_Init () {
libGDHL_gt_HeroDryadActivateCameraforSymbiote = TriggerCreate("libGDHL_gt_HeroDryadActivateCameraforSymbiote_Func");
TriggerEnable(libGDHL_gt_HeroDryadActivateCameraforSymbiote, false);
libGDHL_gf_AbathurSymbiote(libGDHL_gt_HeroDryadActivateCameraforSymbiote);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Dryad - Loss of Control - Camera
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroDryadLossofControlCamera_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroDryad"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CameraSetData(PlayerGroupSingle(lv_player), "BlizzardAllStars");
while ((UnitHasBehavior2(EventUnit(), EventUnitBehavior()) == true)) {
Wait(0.0625, c_timeGame);
}
CameraSetData(PlayerGroupSingle(lv_player), "Dryad");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroDryadLossofControlCamera_Init () {
libGDHL_gt_HeroDryadLossofControlCamera = TriggerCreate("libGDHL_gt_HeroDryadLossofControlCamera_Func");
TriggerEnable(libGDHL_gt_HeroDryadLossofControlCamera, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroDryadLossofControlCamera, null, "StitchesHooked", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Greymane - Go for the Throat Special Death Procs
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGreymaneGofortheThroatSpecialDeathProcs_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_heroGreymane;
unit lv_killTarget;
// Automatic Variable Declarations
// Variable Initialization
lv_killTarget = libGame_gf_HeroEntersSpecialDeathStateHero();
// Conditions
if (testConds) {
if (!((UnitBehaviorCount(lv_killTarget, "GreymaneGoForTheThroatDeathResponse") == 1))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_heroGreymane = UnitBehaviorEffectUnit(lv_killTarget, "GreymaneGoForTheThroatDeathResponse", c_effectUnitCaster, 0);
UnitCreateEffectUnit(lv_heroGreymane, "GreymaneGoForTheThroatKillSet", lv_heroGreymane);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGreymaneGofortheThroatSpecialDeathProcs_Init () {
libGDHL_gt_HeroGreymaneGofortheThroatSpecialDeathProcs = TriggerCreate("libGDHL_gt_HeroGreymaneGofortheThroatSpecialDeathProcs_Func");
TriggerEnable(libGDHL_gt_HeroGreymaneGofortheThroatSpecialDeathProcs, false);
libGame_gf_HeroEntersSpecialDeathState(libGDHL_gt_HeroGreymaneGofortheThroatSpecialDeathProcs);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Greymane - Actor Sound Swaps
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGreymaneActorSoundSwaps_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_greymane;
int lv_greymanePlayer;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_greymane = EventUnit();
lv_greymanePlayer = UnitGetOwner(lv_greymane);
libGame_gv_players[lv_greymanePlayer].lv_vOPissedSoundIndex = 0;
if ((UnitHasBehavior2(lv_greymane, "GreymaneWorgenForm") == true)) {
if ((UnitHasBehavior2(lv_greymane, "UltimateEvolutionBuff") == true)) {
libNtve_gf_SendActorMessageToUnit(lv_greymane, "SetSoundSuffix _Evo_W");
}
if ((libGame_gv_players[lv_greymanePlayer].lv_heroUnit == lv_greymane)) {
libGame_gv_players[lv_greymanePlayer].lv_vOSoundSuffix = "_W";
}
}
else {
if ((UnitHasBehavior2(lv_greymane, "UltimateEvolutionBuff") == true)) {
libNtve_gf_SendActorMessageToUnit(lv_greymane, "SetSoundSuffix _Evo");
}
if ((libGame_gv_players[lv_greymanePlayer].lv_heroUnit == lv_greymane)) {
libGame_gv_players[lv_greymanePlayer].lv_vOSoundSuffix = "";
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGreymaneActorSoundSwaps_Init () {
libGDHL_gt_HeroGreymaneActorSoundSwaps = TriggerCreate("libGDHL_gt_HeroGreymaneActorSoundSwaps_Func");
TriggerEnable(libGDHL_gt_HeroGreymaneActorSoundSwaps, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroGreymaneActorSoundSwaps, null, "GreymaneWorgenForm", c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroGreymaneActorSoundSwaps, null, "GreymaneWorgenForm", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Greymane - Talent - Wizened Duelist Death
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroGreymaneTalentWizenedDuelistDeath_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_heroKilledUnit;
fixed lv_wizenedDuelistStacks;
// Automatic Variable Declarations
// Variable Initialization
lv_heroKilledUnit = libGame_gf_HeroKilledUnit();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gf_HeroKilledUnit()) == "HeroGreymane"))) {
return false;
}
if (!((PlayerHasTalent(UnitGetOwner(libGame_gf_HeroKilledUnit()), "GreymaneWizenedDuelist") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_heroKilledUnit = libGame_gf_HeroKilledUnit();
lv_wizenedDuelistStacks = IntToFixed(UnitBehaviorCount(libGame_gf_HeroKilledUnit(), "GreymaneWizenedDuelistQuestToken"));
UnitSetTokenCount(lv_heroKilledUnit, "GreymaneWizenedDuelistQuestToken", Trunc((lv_wizenedDuelistStacks / 2.0)), lv_heroKilledUnit);
UnitSetTokenCount(lv_heroKilledUnit, "GreymaneWizenedDuelistTokenCounter", 0.0, lv_heroKilledUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroGreymaneTalentWizenedDuelistDeath_Init () {
libGDHL_gt_HeroGreymaneTalentWizenedDuelistDeath = TriggerCreate("libGDHL_gt_HeroGreymaneTalentWizenedDuelistDeath_Func");
TriggerEnable(libGDHL_gt_HeroGreymaneTalentWizenedDuelistDeath, false);
libGame_gf_HeroKilled(libGDHL_gt_HeroGreymaneTalentWizenedDuelistDeath);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Faerie Dragon - Phase Shift Ping
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroFaerieDragonPhaseShiftPing_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_targetUnit;
int lv_brightwingPlayer;
playergroup lv_alliedPlayers;
point lv_location;
// Automatic Variable Declarations
// Variable Initialization
lv_targetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_brightwingPlayer = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
lv_alliedPlayers = PlayerGroupEmpty();
lv_location = EventPlayerEffectUsedPoint(c_effectLocationTargetUnit);
// Actions
if (!runActions) {
return true;
}
if ((TimerGetRemaining(libUIUI_gv_pingInputSuppressionTimer[lv_brightwingPlayer]) > 0.0)) {
return true;
}
if ((TimerGetRemaining(libUIUI_gv_pingLockoutTimer[lv_brightwingPlayer]) > 0.0)) {
return true;
}
libUIUI_gf_PingIncrementPingCountAndManageTimersForPlayer(lv_brightwingPlayer);
lv_alliedPlayers = libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lv_brightwingPlayer), false);
if ((TimerGetRemaining(libGDHL_gv_faerieDragonPhaseShiftPingTextLockoutTimer[lv_brightwingPlayer]) > 0.0)) {
}
else {
TextExpressionSetToken("Param/Expression/lib_GDHL_E2966CE5", "A", StringExternal("Param/Value/lib_GDHL_38BA2184"));
TextExpressionSetToken("Param/Expression/lib_GDHL_E2966CE5", "B", UnitTypeGetName(UnitGetType(lv_targetUnit)));
UIDisplayMessage(lv_alliedPlayers, c_messageAreaChat, TextExpressionAssemble("Param/Expression/lib_GDHL_E2966CE5"));
TimerStart(libGDHL_gv_faerieDragonPhaseShiftPingTextLockoutTimer[lv_brightwingPlayer], 10.0, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroFaerieDragonPhaseShiftPing_Init () {
libGDHL_gt_HeroFaerieDragonPhaseShiftPing = TriggerCreate("libGDHL_gt_HeroFaerieDragonPhaseShiftPing_Func");
TriggerEnable(libGDHL_gt_HeroFaerieDragonPhaseShiftPing, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroFaerieDragonPhaseShiftPing, c_playerAny, "BrightwingPhaseShiftPrepPersistent");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Faerie Dragon - Phase Shift - Camera
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroFaerieDragonPhaseShiftCamera_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((libGame_gv_gameOver == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
libGame_gv_players[lv_player].lv_cameraCameraLockInterrupt = true;
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
libGame_gf_CameraPanCameraForPlayerAndUpdateMapBoundsIfNecessary(lv_player, UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitCaster)), 0.0, -1, 10.0, false);
libGame_gv_players[lv_player].lv_cameraCameraLockInterrupt = false;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroFaerieDragonPhaseShiftCamera_Init () {
libGDHL_gt_HeroFaerieDragonPhaseShiftCamera = TriggerCreate("libGDHL_gt_HeroFaerieDragonPhaseShiftCamera_Func");
TriggerEnable(libGDHL_gt_HeroFaerieDragonPhaseShiftCamera, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroFaerieDragonPhaseShiftCamera, c_playerAny, "BrightwingPhaseShiftTeleport");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Faerie Dragon - Pixie Charm Charge Count Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroFaerieDragonPixieCharmChargeCountProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Actions
if (!runActions) {
return true;
}
UnitAddChargeUsed(lv_caster, "Abil/FaerieDragonPixieCharm", -1.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroFaerieDragonPixieCharmChargeCountProc_Init () {
libGDHL_gt_HeroFaerieDragonPixieCharmChargeCountProc = TriggerCreate("libGDHL_gt_HeroFaerieDragonPixieCharmChargeCountProc_Func");
TriggerEnable(libGDHL_gt_HeroFaerieDragonPixieCharmChargeCountProc, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroFaerieDragonPixieCharmChargeCountProc, c_playerAny, "FaerieDragonPixieCharmIncreaseChargeCountDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Falstad - Dishonorable Discharge Hero Kill Refresh Cooldown
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroFalstadDishonorableDischargeHeroKillRefreshCooldown_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_localPlayer;
unit lv_Falstad;
// Automatic Variable Declarations
// Variable Initialization
lv_localPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_Falstad = libGame_gv_players[lv_localPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(lv_Falstad, "ChargedUpDeathResetCarryBehavior") == true))) {
return false;
}
if (!(((UnitGetType(libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_heroUnit) == "HeroFalstad") || (UnitGetType(libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_activeVehicle) == "HeroFalstad")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_heroUnit) == "HeroFalstad")) {
lv_Falstad = libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_heroUnit;
}
else {
lv_Falstad = libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_activeVehicle;
}
UnitCreateEffectUnit(lv_Falstad, "FalstadChargedUpHeroTakedownCooldownRefresh", lv_Falstad);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroFalstadDishonorableDischargeHeroKillRefreshCooldown_Init () {
libGDHL_gt_HeroFalstadDishonorableDischargeHeroKillRefreshCooldown = TriggerCreate("libGDHL_gt_HeroFalstadDishonorableDischargeHeroKillRefreshCooldown_Func");
TriggerEnable(libGDHL_gt_HeroFalstadDishonorableDischargeHeroKillRefreshCooldown, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroFalstadDishonorableDischargeHeroKillRefreshCooldown);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Falstad - Flight Ping
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroFalstadFlightPing_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_falstadPlayer;
playergroup lv_alliedPlayers;
point lv_location;
// Automatic Variable Declarations
// Variable Initialization
lv_falstadPlayer = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
lv_alliedPlayers = PlayerGroupEmpty();
lv_location = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
// Actions
if (!runActions) {
return true;
}
if ((TimerGetRemaining(libUIUI_gv_pingInputSuppressionTimer[lv_falstadPlayer]) > 0.0)) {
return true;
}
if ((TimerGetRemaining(libUIUI_gv_pingLockoutTimer[lv_falstadPlayer]) > 0.0)) {
return true;
}
lv_alliedPlayers = libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lv_falstadPlayer), false);
TextExpressionSetToken("Param/Expression/lib_GDHL_7685E66D", "A", UnitTypeGetName(UnitGetType(libGame_gv_players[lv_falstadPlayer].lv_heroUnit)));
TextTagCreate(TextExpressionAssemble("Param/Expression/lib_GDHL_7685E66D"), 24, lv_location, 2.0, true, false, libGame_gf_PlayersOnTeamHeroes(libGame_gf_TeamNumberOfPlayer(lv_falstadPlayer), false));
TextTagSetTime(TextTagLastCreated(), c_textTagTimeDuration, 3.5);
libGDHL_gv_falstadFlightPings[lv_falstadPlayer] = PingLastCreated();
if ((TimerGetRemaining(libGDHL_gv_falstadFlightPingTextLockoutTimer[lv_falstadPlayer]) > 0.0)) {
}
else {
TextExpressionSetToken("Param/Expression/lib_GDHL_CC28B5B8", "A", StringExternal("Param/Value/lib_GDHL_84D81EA0"));
UIDisplayMessage(lv_alliedPlayers, c_messageAreaChat, TextExpressionAssemble("Param/Expression/lib_GDHL_CC28B5B8"));
TimerStart(libGDHL_gv_falstadFlightPingTextLockoutTimer[lv_falstadPlayer], 10.0, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroFalstadFlightPing_Init () {
libGDHL_gt_HeroFalstadFlightPing = TriggerCreate("libGDHL_gt_HeroFalstadFlightPing_Func");
TriggerEnable(libGDHL_gt_HeroFalstadFlightPing, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroFalstadFlightPing, c_playerAny, "FalstadFlightLaunchMissile");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroFalstadFlightPing, c_playerAny, "FalstadFlightLaunchEpicMountMissile");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Falstad - Flight Camera Height Restore
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroFalstadFlightCameraHeightRestore_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
CameraUseHeightDisplacement(lv_player, true);
while ((UnitHasBehavior2(lv_unit, "FalstadFlightAscend") == true)) {
Wait(0.0625, c_timeGame);
}
CameraUseHeightDisplacement(lv_player, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroFalstadFlightCameraHeightRestore_Init () {
libGDHL_gt_HeroFalstadFlightCameraHeightRestore = TriggerCreate("libGDHL_gt_HeroFalstadFlightCameraHeightRestore_Func");
TriggerEnable(libGDHL_gt_HeroFalstadFlightCameraHeightRestore, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroFalstadFlightCameraHeightRestore, null, "FalstadFlightAscend", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Falstad - Wingman Variables
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroFalstadWingmanVariables_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGame_gv_players[lv_player].lv_bribeTokenLink = "FalstadWingmanTokenCounter";
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroFalstadWingmanVariables_Init () {
libGDHL_gt_HeroFalstadWingmanVariables = TriggerCreate("libGDHL_gt_HeroFalstadWingmanVariables_Func");
TriggerEnable(libGDHL_gt_HeroFalstadWingmanVariables, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroFalstadWingmanVariables, null, "FalstadWingmanTokenCounter", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Illidan - Apply FotB Cooldown on Inventory Use
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse_Func (bool testConds, bool runActions) {
// Variable Declarations
abilcmd lv_abilityCommand;
unit lv_unit;
string lv_heroType;
// Automatic Variable Declarations
// Variable Initialization
lv_abilityCommand = EventUnitAbility();
lv_unit = EventUnit();
lv_heroType = UnitGetType(lv_unit);
// Conditions
if (testConds) {
if (!(((UnitHasBehavior2(lv_unit, "FlightoftheBetrayer") == true) || (UnitHasBehavior2(lv_unit, "FlightoftheBetrayerCooldown") == true)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(lv_unit, "FlightoftheBetrayerCooldown", lv_unit, 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse_Init () {
libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse = TriggerCreate("libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse_Func");
TriggerEnable(libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse, null, AbilityCommand("MapMechanicAbilityTarget", 0), c_unitAbilStageExecute, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse, null, AbilityCommand("MapMechanicAbilityInstant", 0), c_unitAbilStageExecute, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse, null, AbilityCommand("MapMechanicAbilityTarget2", 0), c_unitAbilStageExecute, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Illidan - Metamorphosis Avatar Apply Health Buff
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroIllidanMetamorphosisAvatarApplyHealthBuff_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_targetCount;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Actions
if (!runActions) {
return true;
}
lv_targetCount = UnitBehaviorCount(lv_unit, "IllidanMetamorphosisBonusHealthDummyCount");
CatalogFieldValueSetFixed(c_gameCatalogBehavior, "IllidanMetamorphosisDoubleDummyHealth", "Modification.VitalMaxArray[" + IntToString(0) + "]", UnitGetOwner(lv_unit), (CatalogFieldValueGetAsFixed(c_gameCatalogBehavior, "IllidanMetamorphosisBonusHealthScaler", "Modification.VitalMaxArray[" + IntToString(0) + "]", UnitGetOwner(lv_unit)) * lv_targetCount));
UnitCreateEffectUnit(lv_unit, "NewMetamorphosisApplyRealHealthBehavior", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroIllidanMetamorphosisAvatarApplyHealthBuff_Init () {
libGDHL_gt_HeroIllidanMetamorphosisAvatarApplyHealthBuff = TriggerCreate("libGDHL_gt_HeroIllidanMetamorphosisAvatarApplyHealthBuff_Func");
TriggerEnable(libGDHL_gt_HeroIllidanMetamorphosisAvatarApplyHealthBuff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroIllidanMetamorphosisAvatarApplyHealthBuff, null, "IllidanMetamorphosisBonusHealthDummyCount", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Illidan - The Hunt Nowhere To Hide Talent Activate
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroIllidanTheHuntNowhereToHideTalentActivate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_illidan;
// Automatic Variable Declarations
playergroup auto61616B21_g;
int auto61616B21_var;
unitgroup auto8D44DB24_g;
int auto8D44DB24_u;
unit auto8D44DB24_var;
// Variable Initialization
lv_illidan = EventUnit();
// Conditions
if (testConds) {
if (!((UnitGetOwner(lv_illidan) > 0))) {
return false;
}
if (!((UnitGetOwner(lv_illidan) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
while ((libGame_gv_gameOver == false)) {
auto61616B21_g = libGame_gf_EnemyPlayerGroupOfPlayer(UnitGetOwner(lv_illidan));
auto61616B21_var = -1;
while (true) {
auto61616B21_var = PlayerGroupNextPlayer(auto61616B21_g, auto61616B21_var);
if (auto61616B21_var<0) { break; }
auto8D44DB24_g = libGame_gv_players[auto61616B21_var].lv_heroUnitGroup;
auto8D44DB24_u = UnitGroupCount(auto8D44DB24_g, c_unitCountAll);
for (;; auto8D44DB24_u -= 1) {
auto8D44DB24_var = UnitGroupUnitFromEnd(auto8D44DB24_g, auto8D44DB24_u);
if (auto8D44DB24_var == null) { break; }
UnitCreateEffectUnit(lv_illidan, "IllidanTheHuntApplyNowhereToHideTalentReveal", auto8D44DB24_var);
}
}
Wait(0.125, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroIllidanTheHuntNowhereToHideTalentActivate_Init () {
libGDHL_gt_HeroIllidanTheHuntNowhereToHideTalentActivate = TriggerCreate("libGDHL_gt_HeroIllidanTheHuntNowhereToHideTalentActivate_Func");
TriggerEnable(libGDHL_gt_HeroIllidanTheHuntNowhereToHideTalentActivate, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroIllidanTheHuntNowhereToHideTalentActivate, null, "IllidanNowhereToHideCarry", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Illidan - Blades Of Azzinoth Add Charge
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroIllidanBladesOfAzzinothAddCharge_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((UnitGetOwner(lv_unit) > 0))) {
return false;
}
if (!((UnitGetOwner(lv_unit) <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "IllidanBladesOfAzzinoth") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitAddChargeUsed(lv_unit, "Abil/IllidanBladesOfAzzinoth", -1.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroIllidanBladesOfAzzinothAddCharge_Init () {
libGDHL_gt_HeroIllidanBladesOfAzzinothAddCharge = TriggerCreate("libGDHL_gt_HeroIllidanBladesOfAzzinothAddCharge_Func");
TriggerEnable(libGDHL_gt_HeroIllidanBladesOfAzzinothAddCharge, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroIllidanBladesOfAzzinothAddCharge, c_playerAny, "IllidanBladesOfAzzinothDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Illidan - Unending Hatred - Hero Takedown
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroIllidanUnendingHatredHeroTakedown_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_localPlayer;
unit lv_illidan;
// Automatic Variable Declarations
// Variable Initialization
lv_localPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_localPlayer, "IllidanUnendingHatredPassive") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_illidan = libGame_gv_players[lv_localPlayer].lv_heroUnit;
UnitCreateEffectUnit(lv_illidan, "IllidanUnendingHatredHeroKillIncreaseQuestToken", lv_illidan);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroIllidanUnendingHatredHeroTakedown_Init () {
libGDHL_gt_HeroIllidanUnendingHatredHeroTakedown = TriggerCreate("libGDHL_gt_HeroIllidanUnendingHatredHeroTakedown_Func");
TriggerEnable(libGDHL_gt_HeroIllidanUnendingHatredHeroTakedown, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroIllidanUnendingHatredHeroTakedown);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Illidan - Unending Hatred - NPC Kill
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroIllidanUnendingHatredNPCKill_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_killingPlayer;
unit lv_killingHero;
unit lv_minion;
// Automatic Variable Declarations
// Variable Initialization
lv_killingPlayer = libGame_gf_HeroParticipatedInNPCTakedownKillingPlayer();
lv_killingHero = libGame_gv_players[lv_killingPlayer].lv_heroUnit;
lv_minion = libGame_gf_HeroParticipatedInNPCTakedownMinion();
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_killingPlayer, "IllidanUnendingHatredPassive") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if (((UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeSummoned) == true) || (UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeUser1) == true) || (UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeMapBoss) == true))) {
return true;
}
if ((UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeMinion) == true) && (UnitFilterMatch(lv_minion, lv_killingPlayer, UnitFilter(0, 0, (1 << c_targetFilterCreep) | (1 << c_targetFilterMerc), 0)) == true)) {
UnitCreateEffectUnit(lv_killingHero, "IllidanUnendingHatredMinionKillIncreaseQuestToken", lv_killingHero);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroIllidanUnendingHatredNPCKill_Init () {
libGDHL_gt_HeroIllidanUnendingHatredNPCKill = TriggerCreate("libGDHL_gt_HeroIllidanUnendingHatredNPCKill_Func");
TriggerEnable(libGDHL_gt_HeroIllidanUnendingHatredNPCKill, false);
libGame_gf_HeroParticipatedInNPCTakedown(libGDHL_gt_HeroIllidanUnendingHatredNPCKill);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Illidan - Metamorphisis - Unending Hatred - Hearthstone Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroIllidanMetamorphisisUnendingHatredHearthstoneUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_illidanPlayer;
unit lv_illidanUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_illidanPlayer = libGame_gf_HeroPortedBackToTownPlayer();
lv_illidanUnit = libGame_gv_players[lv_illidanPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(lv_illidanUnit, "IllidanMetamorphosis") == true))) {
return false;
}
if (!((UnitHasBehavior2(lv_illidanUnit, "IllidanMetamorphosisDemonicFormCarryBehavior") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(lv_illidanUnit, "FlightoftheBetrayer", lv_illidanUnit, 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroIllidanMetamorphisisUnendingHatredHearthstoneUsed_Init () {
libGDHL_gt_HeroIllidanMetamorphisisUnendingHatredHearthstoneUsed = TriggerCreate("libGDHL_gt_HeroIllidanMetamorphisisUnendingHatredHearthstoneUsed_Func");
TriggerEnable(libGDHL_gt_HeroIllidanMetamorphisisUnendingHatredHearthstoneUsed, false);
libGame_gf_HeroPortedBackToTown(libGDHL_gt_HeroIllidanMetamorphisisUnendingHatredHearthstoneUsed);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Water Elemental Created
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaWaterElementalCreated_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_waterElementalUnit;
unit lv_jainaUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
lv_waterElementalUnit = EventUnitCreatedUnit();
lv_jainaUnit = libGame_gv_players[lv_player].lv_heroUnit;
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroJainaWaterElemental[lv_player] = lv_waterElementalUnit;
UnitGroupAdd(libGame_gv_players[lv_player].lv_summonedUnitGroup, lv_waterElementalUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaWaterElementalCreated_Init () {
libGDHL_gt_HeroJainaWaterElementalCreated = TriggerCreate("libGDHL_gt_HeroJainaWaterElementalCreated_Func");
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalCreated, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroJainaWaterElementalCreated, null, "JainaSummonWaterElemental", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Water Elemental Command
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaWaterElementalCommand_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
point lv_p;
unit lv_u;
unit lv_waterElemental;
// Automatic Variable Declarations
// Variable Initialization
lv_target = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
lv_waterElemental = libGDHL_gv_heroJainaWaterElemental[EventPlayer()];
if ((lv_target == null)) {
UnitBehaviorAdd(lv_waterElemental, "JainaWaterElementalAIAttackOverride", lv_waterElemental, 1);
UnitIssueOrder(lv_waterElemental, OrderTargetingPoint(AbilityCommand("move", 0), EventPlayerEffectUsedPoint(c_effectLocationTargetPoint)), c_orderQueueReplace);
}
else {
UnitBehaviorAdd(lv_waterElemental, "JainaWaterElementalAIAttackOverride", lv_waterElemental, 1);
UnitIssueOrder(lv_waterElemental, OrderTargetingUnit(AbilityCommand("attack", 0), lv_target), c_orderQueueReplace);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaWaterElementalCommand_Init () {
libGDHL_gt_HeroJainaWaterElementalCommand = TriggerCreate("libGDHL_gt_HeroJainaWaterElementalCommand_Func");
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalCommand, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroJainaWaterElementalCommand, c_playerAny, "JainaCommandWaterElementalCreatePersistent");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Water Elemental Summoned Unit Special Case Interaction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaWaterElementalSummonedUnitSpecialCaseInteraction_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
point lv_p;
unit lv_u;
unit lv_waterElemental;
// Automatic Variable Declarations
// Variable Initialization
lv_target = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
lv_waterElemental = libGDHL_gv_heroJainaWaterElemental[EventPlayer()];
UnitBehaviorAdd(lv_waterElemental, "JainaWaterElementalAIAttackOverride", lv_waterElemental, 1);
UnitIssueOrder(lv_waterElemental, OrderTargetingUnit(AbilityCommand("HeroGenericSummonedUnitSpecialCaseInteraction", 0), lv_target), c_orderQueueReplace);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaWaterElementalSummonedUnitSpecialCaseInteraction_Init () {
libGDHL_gt_HeroJainaWaterElementalSummonedUnitSpecialCaseInteraction = TriggerCreate("libGDHL_gt_HeroJainaWaterElementalSummonedUnitSpecialCaseInteraction_Func");
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalSummonedUnitSpecialCaseInteraction, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroJainaWaterElementalSummonedUnitSpecialCaseInteraction, c_playerAny, "JainaCommandWaterElementalSummonedUnitSpecialCaseDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Frostbolt Wintermute Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaFrostboltWintermuteCast_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_jainaPlayer;
unit lv_waterElemental;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_jainaPlayer = EventPlayer();
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_jainaPlayer, "JainaSummonWaterElementalWintermute") == true))) {
return false;
}
if (!(((lv_jainaPlayer <= libCore_gv_bALMaxPlayers) && (lv_jainaPlayer > 0)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_waterElemental = libGDHL_gv_heroJainaWaterElemental[lv_jainaPlayer];
if ((lv_waterElemental != null) && (UnitBehaviorCount(lv_waterElemental, "JainaWaterElementalStatusAvailable") == 1)) {
UnitBehaviorAdd(lv_waterElemental, "JainaWaterElementalAIAbilityOverride", lv_unit, 1);
UnitIssueOrder(lv_waterElemental, OrderTargetingPoint(AbilityCommand("JainaWaterElementalFrostbolt", 0), EventUnitTargetPoint()), c_orderQueueAddToFront);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaFrostboltWintermuteCast_Init () {
libGDHL_gt_HeroJainaFrostboltWintermuteCast = TriggerCreate("libGDHL_gt_HeroJainaFrostboltWintermuteCast_Func");
TriggerEnable(libGDHL_gt_HeroJainaFrostboltWintermuteCast, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroJainaFrostboltWintermuteCast, null, AbilityCommand("JainaFrostbolt", 0), c_abilEffectStageFinish, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Cone of Cold Wintermute Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaConeofColdWintermuteCast_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_jainaPlayer;
unit lv_waterElemental;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_jainaPlayer = EventPlayer();
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_jainaPlayer, "JainaSummonWaterElementalWintermute") == true))) {
return false;
}
if (!(((lv_jainaPlayer <= libCore_gv_bALMaxPlayers) && (lv_jainaPlayer > 0)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_waterElemental = libGDHL_gv_heroJainaWaterElemental[lv_jainaPlayer];
if ((lv_waterElemental != null) && (UnitBehaviorCount(lv_waterElemental, "JainaWaterElementalStatusAvailable") == 1)) {
UnitBehaviorAdd(lv_waterElemental, "JainaWaterElementalAIAbilityOverride", lv_unit, 1);
UnitIssueOrder(lv_waterElemental, OrderTargetingPoint(AbilityCommand("JainaWaterElementalConeOfCold", 0), EventUnitTargetPoint()), c_orderQueueAddToFront);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaConeofColdWintermuteCast_Init () {
libGDHL_gt_HeroJainaConeofColdWintermuteCast = TriggerCreate("libGDHL_gt_HeroJainaConeofColdWintermuteCast_Func");
TriggerEnable(libGDHL_gt_HeroJainaConeofColdWintermuteCast, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroJainaConeofColdWintermuteCast, null, AbilityCommand("JainaConeOfCold", 0), c_abilEffectStageFinish, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Blizzard Wintermute Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaBlizzardWintermuteCast_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_jainaPlayer;
unit lv_waterElemental;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_jainaPlayer = EventPlayer();
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_jainaPlayer, "JainaSummonWaterElementalWintermute") == true))) {
return false;
}
if (!(((lv_jainaPlayer <= libCore_gv_bALMaxPlayers) && (lv_jainaPlayer > 0)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_waterElemental = libGDHL_gv_heroJainaWaterElemental[lv_jainaPlayer];
if ((lv_waterElemental != null) && (UnitBehaviorCount(lv_waterElemental, "JainaWaterElementalStatusAvailable") == 1)) {
UnitBehaviorAdd(lv_waterElemental, "JainaWaterElementalAIAbilityOverride", lv_unit, 1);
UnitIssueOrder(lv_waterElemental, OrderTargetingPoint(AbilityCommand("JainaWaterElementalBlizzard", 0), EventPlayerEffectUsedPoint(c_effectLocationTargetPoint)), c_orderQueueAddToFront);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaBlizzardWintermuteCast_Init () {
libGDHL_gt_HeroJainaBlizzardWintermuteCast = TriggerCreate("libGDHL_gt_HeroJainaBlizzardWintermuteCast_Func");
TriggerEnable(libGDHL_gt_HeroJainaBlizzardWintermuteCast, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroJainaBlizzardWintermuteCast, c_playerAny, "JainaWaterElementalBlizzardDummyPersistent");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Water Elemental - Vehicle Initial
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaWaterElementalVehicleInitial_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_triggeringPlayer;
unit lv_jaina;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_triggeringPlayer = UnitGetOwner(lv_unit);
lv_jaina = libGame_gv_players[lv_triggeringPlayer].lv_heroUnit;
// Actions
if (!runActions) {
return true;
}
if ((UnitBehaviorCount(lv_unit, "JainaWaterElementalCasterBehavior") == 1)) {
libGDHL_gf_HeroJainaWaterElementalVehicleControl(lv_jaina, lv_triggeringPlayer);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaWaterElementalVehicleInitial_Init () {
libGDHL_gt_HeroJainaWaterElementalVehicleInitial = TriggerCreate("libGDHL_gt_HeroJainaWaterElementalVehicleInitial_Func");
TriggerEnable(libGDHL_gt_HeroJainaWaterElementalVehicleInitial, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroJainaWaterElementalVehicleInitial, null, "UsingVehicle", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Frostbite Iceblock Item
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaFrostbiteIceblockItem_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnitCreatedUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroJaina"))) {
return false;
}
if (!((UnitHasBehavior2(lv_unit, "ImprovedIceBlock") == false))) {
return false;
}
if (!((UnitHasBehavior2(lv_unit, "AbathurUltimateEvolutionControlBehavior") == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(lv_unit, "ImprovedIceBlock", lv_unit, 1);
PlayerScoreValueSetFromInt(lv_player, "JainaFrostbiteDamage", 0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaFrostbiteIceblockItem_Init () {
libGDHL_gt_HeroJainaFrostbiteIceblockItem = TriggerCreate("libGDHL_gt_HeroJainaFrostbiteIceblockItem_Func");
TriggerEnable(libGDHL_gt_HeroJainaFrostbiteIceblockItem, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroJainaFrostbiteIceblockItem, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Frostbite Quest Reset
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaFrostbiteQuestReset_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
int lv_itInventoryIndex;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroJaina"))) {
return false;
}
if (!((UnitHasBehavior2(lv_unit, "AbathurUltimateEvolutionControlBehavior") == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PlayerScoreValueSetFromInt(lv_player, "JainaFrostbiteDamage", 0);
UnitBehaviorAdd(lv_unit, "ImprovedIceBlock", lv_unit, 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaFrostbiteQuestReset_Init () {
libGDHL_gt_HeroJainaFrostbiteQuestReset = TriggerCreate("libGDHL_gt_HeroJainaFrostbiteQuestReset_Func");
TriggerEnable(libGDHL_gt_HeroJainaFrostbiteQuestReset, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroJainaFrostbiteQuestReset, null, "JainaFrostbiteTokenCounter", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Chilled Damage Response
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaChilledDamageResponse_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_owner;
fixed lv_maxShields;
fixed lv_damageValue;
fixed lv_shieldsToAdd;
fixed lv_currentShields;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_owner = EventUnitDamageSourcePlayer();
// Conditions
if (testConds) {
if (!((lv_unit != null))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_damageValue = (EventUnitDamageAmount() + EventUnitDamageBehaviorShield());
if ((UnitFilterMatch(lv_unit, lv_owner, UnitFilter((1 << c_targetFilterHeroic), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly), 0)) == true)) {
if ((PlayerScoreValueGetAsInt(lv_owner, "JainaFrostbiteDamage") < libGDHL_gv_heroJainaFrostbiteConstant)) {
PlayerScoreValueSetFromInt(lv_owner, "JainaFrostbiteDamage", (PlayerScoreValueGetAsInt(lv_owner, "JainaFrostbiteDamage") + FixedToInt(lv_damageValue)));
UnitSetTokenCount(libGame_gv_players[lv_owner].lv_heroUnit, "JainaFrostbiteTokenCounter", IntToFixed(PlayerScoreValueGetAsInt(lv_owner, "JainaFrostbiteDamage")), libGame_gv_players[lv_owner].lv_heroUnit);
}
}
if ((PlayerHasTalent(lv_owner, "JainaFrostbiteIceBarrier") == true)) {
if ((UnitHasBehavior2(libGame_gv_players[lv_owner].lv_heroUnit, "JainaFrostbiteIceBarrierShield") == true)) {
lv_currentShields = UnitBehaviorDamageModifyRemaining(libGame_gv_players[lv_owner].lv_heroUnit, "JainaFrostbiteIceBarrierShield");
}
else {
lv_currentShields = 0.0;
}
lv_shieldsToAdd = (lv_damageValue * libGDHL_gv_bALHeroJainaIceBarrierDamageModifier);
lv_shieldsToAdd = (lv_shieldsToAdd + lv_currentShields);
CatalogFieldValueSetFixed(c_gameCatalogBehavior, "JainaFrostbiteIceBarrierShield", "DamageResponse.ModifyLimit", lv_owner, lv_shieldsToAdd);
UnitBehaviorAdd(libGame_gv_players[lv_owner].lv_heroUnit, "JainaFrostbiteIceBarrierShield", libGame_gv_players[lv_owner].lv_heroUnit, 1);
UnitCreateEffectUnit(libGame_gv_players[lv_owner].lv_heroUnit, "JainaIceBarrierDummy", libGame_gv_players[lv_owner].lv_heroUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaChilledDamageResponse_Init () {
libGDHL_gt_HeroJainaChilledDamageResponse = TriggerCreate("libGDHL_gt_HeroJainaChilledDamageResponse_Func");
TriggerEnable(libGDHL_gt_HeroJainaChilledDamageResponse, false);
TriggerAddEventUnitDamaged(libGDHL_gt_HeroJainaChilledDamageResponse, null, c_unitDamageTypeAbility, c_unitDamageEither, "JainaFrostboltDamageChilled");
TriggerAddEventUnitDamaged(libGDHL_gt_HeroJainaChilledDamageResponse, null, c_unitDamageTypeAbility, c_unitDamageEither, "JainaConeOfColdDamageChilled");
TriggerAddEventUnitDamaged(libGDHL_gt_HeroJainaChilledDamageResponse, null, c_unitDamageTypeAbility, c_unitDamageEither, "JainaRingOfFrostImpactDamageChilled");
TriggerAddEventUnitDamaged(libGDHL_gt_HeroJainaChilledDamageResponse, null, c_unitDamageTypeAbility, c_unitDamageEither, "JainaBlizzardDamageChilled");
TriggerAddEventUnitDamaged(libGDHL_gt_HeroJainaChilledDamageResponse, null, c_unitDamageTypeAbility, c_unitDamageEither, "JainaWaterElementalBlizzardDamageChilled");
TriggerAddEventUnitDamaged(libGDHL_gt_HeroJainaChilledDamageResponse, null, c_unitDamageTypeAbility, c_unitDamageEither, "JainaWaterElementalConeOfColdDamageChilled");
TriggerAddEventUnitDamaged(libGDHL_gt_HeroJainaChilledDamageResponse, null, c_unitDamageTypeAbility, c_unitDamageEither, "JainaWaterElementalFrostboltDamageChilled");
TriggerAddEventUnitDamaged(libGDHL_gt_HeroJainaChilledDamageResponse, null, c_unitDamageTypeAbility, c_unitDamageEither, "JainaWaterElementalWeaponFrostbiteDamage");
TriggerAddEventUnitDamaged(libGDHL_gt_HeroJainaChilledDamageResponse, null, c_unitDamageTypeAbility, c_unitDamageEither, "JainaWaterElementalWeaponFrostbiteSplashDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Frostbitten Completion Dummy
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaFrostbittenCompletionDummy_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(EventUnit());
// Conditions
if (testConds) {
if (!((PlayerScoreValueGetAsInt(lv_player, "JainaFrostbiteDamage") < libGDHL_gv_heroJainaFrostbiteConstant))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PlayerScoreValueSetFromInt(lv_player, "JainaFrostbiteDamage", libGDHL_gv_heroJainaFrostbiteConstant);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaFrostbittenCompletionDummy_Init () {
libGDHL_gt_HeroJainaFrostbittenCompletionDummy = TriggerCreate("libGDHL_gt_HeroJainaFrostbittenCompletionDummy_Func");
TriggerEnable(libGDHL_gt_HeroJainaFrostbittenCompletionDummy, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroJainaFrostbittenCompletionDummy, null, "IceColdCarryBehavior", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Improved Ice Block Overlay On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaImprovedIceBlockOverlayOn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Actions
if (!runActions) {
return true;
}
if ((UnitIsAlive(lv_unit) == true) && (UnitTestState(lv_unit, c_unitStateHallucination) == false) && (UnitHasBehavior2(lv_unit, "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(EventPlayer(), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaImprovedIceBlockOverlayOn_Init () {
libGDHL_gt_HeroJainaImprovedIceBlockOverlayOn = TriggerCreate("libGDHL_gt_HeroJainaImprovedIceBlockOverlayOn_Func");
TriggerEnable(libGDHL_gt_HeroJainaImprovedIceBlockOverlayOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroJainaImprovedIceBlockOverlayOn, null, "JainaImprovedIceBlock", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Jaina - Improved Ice Block Overlay Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroJainaImprovedIceBlockOverlayOff_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(EventPlayer(), "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroJainaImprovedIceBlockOverlayOff_Init () {
libGDHL_gt_HeroJainaImprovedIceBlockOverlayOff = TriggerCreate("libGDHL_gt_HeroJainaImprovedIceBlockOverlayOff_Func");
TriggerEnable(libGDHL_gt_HeroJainaImprovedIceBlockOverlayOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroJainaImprovedIceBlockOverlayOff, null, "JainaImprovedIceBlock", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Kael'thas Phoenix Spawn Selection
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroKaelthasPhoenixSpawnSelection_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnitCreatedUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "KaelthasPhoenixRebirth") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_kaelthas_PhoenixUnit[lv_player] = lv_unit;
if ((libGame_gv_players[lv_player].lv_activeVehicle == null)) {
UnitSelect(lv_unit, lv_player, true);
}
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(lv_player) == true)) {
UnitCreateAIThinkTree(lv_unit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroKaelthasPhoenixSpawnSelection_Init () {
libGDHL_gt_HeroKaelthasPhoenixSpawnSelection = TriggerCreate("libGDHL_gt_HeroKaelthasPhoenixSpawnSelection_Func");
TriggerEnable(libGDHL_gt_HeroKaelthasPhoenixSpawnSelection, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroKaelthasPhoenixSpawnSelection, null, "KaelthasPhoenix", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Kael'thas - Twin Spheres Talent Pick Cooldown Reset
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroKaelthasTwinSpheresTalentPickCooldownReset_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
unitgroup auto05CCF55D_g;
int auto05CCF55D_u;
unit auto05CCF55D_var;
// Variable Initialization
lv_player = libGame_gf_HeroGainTalentPlayer();
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroKaelthas"))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "KaelthasTwinSpheres") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto05CCF55D_g = libGame_gv_players[lv_player].lv_heroUnitGroup;
auto05CCF55D_u = UnitGroupCount(auto05CCF55D_g, c_unitCountAll);
for (;; auto05CCF55D_u -= 1) {
auto05CCF55D_var = UnitGroupUnitFromEnd(auto05CCF55D_g, auto05CCF55D_u);
if (auto05CCF55D_var == null) { break; }
if ((UnitGetType(auto05CCF55D_var) == "HeroKaelthas")) {
UnitModifyCooldown(auto05CCF55D_var, "Abil/KaelthasVerdantSpheres", 0.0, c_cooldownOperationSet);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroKaelthasTwinSpheresTalentPickCooldownReset_Init () {
libGDHL_gt_HeroKaelthasTwinSpheresTalentPickCooldownReset = TriggerCreate("libGDHL_gt_HeroKaelthasTwinSpheresTalentPickCooldownReset_Func");
TriggerEnable(libGDHL_gt_HeroKaelthasTwinSpheresTalentPickCooldownReset, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroKaelthasTwinSpheresTalentPickCooldownReset);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Kael'thas - Pyroblast Missile Created
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroKaelthasPyroblastMissileCreated_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnitCreatedUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitGetType(lv_unit) == "KaelthasPyroblastMissile"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroKaelthasPyroblastMissileUnit[lv_player] = lv_unit;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroKaelthasPyroblastMissileCreated_Init () {
libGDHL_gt_HeroKaelthasPyroblastMissileCreated = TriggerCreate("libGDHL_gt_HeroKaelthasPyroblastMissileCreated_Func");
TriggerEnable(libGDHL_gt_HeroKaelthasPyroblastMissileCreated, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroKaelthasPyroblastMissileCreated, null, "KaelthasPyroblast", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Kerrigan - Ultralisk - Summon Ultralisk
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroKerriganUltraliskSummonUltralisk_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_kerriganUnit;
unit lv_targetUnit;
point lv_lastKnownLocationOfTarget;
point lv_targetPoint;
unit lv_ultraliskUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_kerriganUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_targetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_lastKnownLocationOfTarget = UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitTarget));
lv_targetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
lv_ultraliskUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
UnitGroupAdd(libGame_gv_players[lv_player].lv_summonedUnitGroup, lv_ultraliskUnit);
libGDHL_gf_SiegeUpdateAbilityPowerOnSummonedUnits(lv_ultraliskUnit);
libGDHL_gf_HeroKerriganUltraliskLogicController(lv_player, lv_ultraliskUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroKerriganUltraliskSummonUltralisk_Init () {
libGDHL_gt_HeroKerriganUltraliskSummonUltralisk = TriggerCreate("libGDHL_gt_HeroKerriganUltraliskSummonUltralisk_Func");
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskSummonUltralisk, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroKerriganUltraliskSummonUltralisk, c_playerAny, "KerriganSummonUltraliskApplyTimedLife");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Kerrigan - Ultralisk - Update Orders On Issue Order Ability
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbility_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_lastKnownLocation;
int lv_ownerPlayer;
point lv_positionOfUnit;
// Automatic Variable Declarations
unitgroup auto2ED4BA95_g;
int auto2ED4BA95_u;
unit auto2ED4BA95_var;
// Variable Initialization
lv_lastKnownLocation = UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitTarget));
lv_ownerPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroKerriganUltraliskCurrentAttackTargetUnit[lv_ownerPlayer] = EventPlayerEffectUsedUnit(c_effectUnitTarget);
auto2ED4BA95_g = UnitGroup("KerriganUltralisk", lv_ownerPlayer, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto2ED4BA95_u = UnitGroupCount(auto2ED4BA95_g, c_unitCountAll);
for (;; auto2ED4BA95_u -= 1) {
auto2ED4BA95_var = UnitGroupUnitFromEnd(auto2ED4BA95_g, auto2ED4BA95_u);
if (auto2ED4BA95_var == null) { break; }
UnitIssueOrder(auto2ED4BA95_var, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
UnitIssueOrder(auto2ED4BA95_var, OrderTargetingUnit(AbilityCommand("attack", 0), libGDHL_gv_heroKerriganUltraliskCurrentAttackTargetUnit[lv_ownerPlayer]), c_orderQueueReplace);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbility_Init () {
libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbility = TriggerCreate("libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbility_Func");
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbility, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbility, c_playerAny, "KerriganSummonUltraliskIssueRedirectOrderDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Kerrigan - Ultralisk - Update Orders On Issue Order Ability Summoned Unit Special Case Interaction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilitySummonedUnitSpecialCaseInteraction_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_lastKnownLocation;
int lv_ownerPlayer;
point lv_positionOfUnit;
// Automatic Variable Declarations
unitgroup auto7A7439C5_g;
int auto7A7439C5_u;
unit auto7A7439C5_var;
// Variable Initialization
lv_lastKnownLocation = UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitTarget));
lv_ownerPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroKerriganUltraliskCurrentAttackTargetUnit[lv_ownerPlayer] = EventPlayerEffectUsedUnit(c_effectUnitTarget);
auto7A7439C5_g = UnitGroup("KerriganUltralisk", lv_ownerPlayer, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto7A7439C5_u = UnitGroupCount(auto7A7439C5_g, c_unitCountAll);
for (;; auto7A7439C5_u -= 1) {
auto7A7439C5_var = UnitGroupUnitFromEnd(auto7A7439C5_g, auto7A7439C5_u);
if (auto7A7439C5_var == null) { break; }
UnitIssueOrder(auto7A7439C5_var, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
UnitIssueOrder(auto7A7439C5_var, OrderTargetingUnit(AbilityCommand("HeroGenericSummonedUnitSpecialCaseInteraction", 0), libGDHL_gv_heroKerriganUltraliskCurrentAttackTargetUnit[lv_ownerPlayer]), c_orderQueueReplace);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilitySummonedUnitSpecialCaseInteraction_Init () {
libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilitySummonedUnitSpecialCaseInteraction = TriggerCreate("libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilitySummonedUnitSpecialCaseInteraction_Func");
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilitySummonedUnitSpecialCaseInteraction, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilitySummonedUnitSpecialCaseInteraction, c_playerAny, "KerriganSummonUltraliskSummonedUnitSpecialCaseInteractionDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Kerrigan - Ultralisk - Update Orders On Issue Order Ability Point
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilityPoint_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup autoE89F3780_g;
int autoE89F3780_u;
unit autoE89F3780_var;
// Actions
if (!runActions) {
return true;
}
autoE89F3780_g = UnitGroup("KerriganUltralisk", EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoE89F3780_u = UnitGroupCount(autoE89F3780_g, c_unitCountAll);
for (;; autoE89F3780_u -= 1) {
autoE89F3780_var = UnitGroupUnitFromEnd(autoE89F3780_g, autoE89F3780_u);
if (autoE89F3780_var == null) { break; }
UnitIssueOrder(autoE89F3780_var, OrderTargetingPoint(AbilityCommand("move", 0), EventPlayerEffectUsedPoint(c_effectLocationTargetPoint)), c_orderQueueReplace);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilityPoint_Init () {
libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilityPoint = TriggerCreate("libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilityPoint_Func");
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilityPoint, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilityPoint, c_playerAny, "KerriganSummonUltraliskIssueRedirectOrderDummyPoint");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Kerrigan - Ultralisk Dies
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroKerriganUltraliskDies_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
unitgroup auto9FB90F8E_g;
int auto9FB90F8E_u;
unit auto9FB90F8E_var;
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(EventUnit());
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "KerriganUltralisk"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto9FB90F8E_g = UnitGroup("HeroKerrigan", lv_player, RegionEntireMap(), UnitFilter(0, 0, 0, 0), 0);
auto9FB90F8E_u = UnitGroupCount(auto9FB90F8E_g, c_unitCountAll);
for (;; auto9FB90F8E_u -= 1) {
auto9FB90F8E_var = UnitGroupUnitFromEnd(auto9FB90F8E_g, auto9FB90F8E_u);
if (auto9FB90F8E_var == null) { break; }
PlayerCreateEffectUnit(lv_player, "KerriganSummonUltraliskRemoveUltraliskActiveBehavior", auto9FB90F8E_var);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroKerriganUltraliskDies_Init () {
libGDHL_gt_HeroKerriganUltraliskDies = TriggerCreate("libGDHL_gt_HeroKerriganUltraliskDies_Func");
TriggerEnable(libGDHL_gt_HeroKerriganUltraliskDies, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroKerriganUltraliskDies, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Kerrigan - Impaling Blades - Kinetic Fulmination Token Transfer
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroKerriganImpalingBladesKineticFulminationTokenTransfer_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_kerriganPlayer;
unit lv_kerriganUnit;
fixed lv_temporaryStacks;
// Automatic Variable Declarations
// Variable Initialization
lv_kerriganPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_kerriganUnit = libGame_gv_players[lv_kerriganPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_kerriganPlayer, "KerriganImpalingBladesKineticFulmination") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_temporaryStacks = UnitGetTokenCount(lv_kerriganUnit, "KerriganImpalingBladesKineticFulminationTemporaryTokenCounter");
UnitSetTokenCount(lv_kerriganUnit, "KerriganImpalingBladesKineticFulminationTokenCounter", lv_temporaryStacks, lv_kerriganUnit);
UnitBehaviorRemove(lv_kerriganUnit, "KerriganImpalingBladesKineticFulminationCarry", c_unitBehaviorCountAll);
UnitBehaviorAdd(lv_kerriganUnit, "KerriganImpalingBladesKineticFulminationCarry", lv_kerriganUnit, FixedToInt(lv_temporaryStacks));
UnitSetTokenCount(lv_kerriganUnit, "KerriganImpalingBladesKineticFulminationTemporaryTokenCounter", 0.0, lv_kerriganUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroKerriganImpalingBladesKineticFulminationTokenTransfer_Init () {
libGDHL_gt_HeroKerriganImpalingBladesKineticFulminationTokenTransfer = TriggerCreate("libGDHL_gt_HeroKerriganImpalingBladesKineticFulminationTokenTransfer_Func");
TriggerEnable(libGDHL_gt_HeroKerriganImpalingBladesKineticFulminationTokenTransfer, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroKerriganImpalingBladesKineticFulminationTokenTransfer, c_playerAny, "KerriganImpalingBladesSearch");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - ETC - Prog Rock Talent Regen Globe Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroETCProgRockTalentRegenGlobeProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
int lv_eTC;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((lv_player > 0))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "ETCMasteryProgRock") == true))) {
return false;
}
if (!((UnitBehaviorCount(lv_unit, "ETCProgRockTokenCounter") < CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "ETCProgRockTokenCounter", "Max", 0)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_unit, "ETCGuitarSoloProgRockTalentAddToken", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroETCProgRockTalentRegenGlobeProc_Init () {
libGDHL_gt_HeroETCProgRockTalentRegenGlobeProc = TriggerCreate("libGDHL_gt_HeroETCProgRockTalentRegenGlobeProc_Func");
TriggerEnable(libGDHL_gt_HeroETCProgRockTalentRegenGlobeProc, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroETCProgRockTalentRegenGlobeProc, c_playerAny, "RegenGlobeImpactSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - L90ETC - Powerslide - Target Check
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroL90ETCPowerslideTargetCheck_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_offset;
point lv_k;
point lv_t;
fixed lv_range;
int lv_i;
unit lv_eTC;
// Automatic Variable Declarations
const int auto0B10A829_ae = 14;
const int auto0B10A829_ai = 1;
// Variable Initialization
lv_offset = CatalogFieldValueGetAsFixed(c_gameCatalogActor, "L90ETCPowerslideGuide", "Height", c_playerAny);
lv_k = UnitGetPosition(EventUnit());
lv_t = EventUnitTargetPoint();
lv_eTC = EventUnit();
// Actions
if (!runActions) {
return true;
}
lv_range = CatalogFieldValueGetAsFixed(c_gameCatalogActor, "L90ETCPowerslideGuide", "Height", EventPlayer());
lv_t = libNtve_gf_PointOffsetTowardsPoint(lv_k, lv_range, lv_t);
Wait(0.1875, c_timeGame);
lv_i = 1;
for ( ; ( (auto0B10A829_ai >= 0 && lv_i <= auto0B10A829_ae) || (auto0B10A829_ai < 0 && lv_i >= auto0B10A829_ae) ) ; lv_i += auto0B10A829_ai ) {
if ((OrderGetTargetType(UnitOrder(lv_eTC, 0)) == c_orderTargetPoint) && (OrderGetTargetPoint(UnitOrder(lv_eTC, 0)) != null) && (DistanceBetweenPoints(lv_k, lv_t) < 1)) {
UnitBehaviorRemove(EventUnit(), "Powerslide", 1);
break;
}
Wait(0.0625, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroL90ETCPowerslideTargetCheck_Init () {
libGDHL_gt_HeroL90ETCPowerslideTargetCheck = TriggerCreate("libGDHL_gt_HeroL90ETCPowerslideTargetCheck_Func");
TriggerEnable(libGDHL_gt_HeroL90ETCPowerslideTargetCheck, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroL90ETCPowerslideTargetCheck, null, AbilityCommand("L90ETCPowerslide", 0), c_abilEffectStageCast, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - L90ETC - Stage Dive - Teleport Unit
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroL90ETCStageDiveTeleportUnit_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
libGame_gv_players[lv_player].lv_cameraCameraLockInterrupt = true;
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
libGame_gf_CameraPanCameraForPlayerAndUpdateMapBoundsIfNecessary(lv_player, UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitCaster)), 0.0, -1, 10.0, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroL90ETCStageDiveTeleportUnit_Init () {
libGDHL_gt_HeroL90ETCStageDiveTeleportUnit = TriggerCreate("libGDHL_gt_HeroL90ETCStageDiveTeleportUnit_Func");
TriggerEnable(libGDHL_gt_HeroL90ETCStageDiveTeleportUnit, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroL90ETCStageDiveTeleportUnit, c_playerAny, "StageDiveTeleport");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - L90ETC - Stage Dive - Final Set
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroL90ETCStageDiveFinalSet_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
libGame_gv_players[lv_player].lv_cameraCameraLockInterrupt = false;
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
UnitSetFacing(libGame_gv_players[lv_player].lv_heroUnit, 270.0, 0.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroL90ETCStageDiveFinalSet_Init () {
libGDHL_gt_HeroL90ETCStageDiveFinalSet = TriggerCreate("libGDHL_gt_HeroL90ETCStageDiveFinalSet_Func");
TriggerEnable(libGDHL_gt_HeroL90ETCStageDiveFinalSet, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroL90ETCStageDiveFinalSet, c_playerAny, "StageDiveFinalSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - L90ETC - Mosh Pit - On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroL90ETCMoshPitOn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_eTC;
unit lv_stunnedUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_eTC = UnitBehaviorEffectUnit(EventUnit(), EventUnitBehavior(), c_effectUnitCaster, 0);
lv_stunnedUnit = EventUnit();
// Actions
if (!runActions) {
return true;
}
if ((EventUnitBehaviorChange() == c_unitBehaviorChangeCreate)) {
UnitBehaviorAdd(lv_stunnedUnit, "L90ETCMoshPitDisplayBehavior", lv_stunnedUnit, 1);
UnitBehaviorSetDuration(lv_stunnedUnit, "L90ETCMoshPitDisplayBehavior", UnitBehaviorDurationTotal(lv_eTC, "L90ETCMoshPitChannel"));
UnitBehaviorSetDurationRemaining(lv_stunnedUnit, "L90ETCMoshPitDisplayBehavior", UnitBehaviorDuration(lv_eTC, "L90ETCMoshPitChannel"));
}
else {
if ((UnitBehaviorCount(lv_stunnedUnit, "L90ETCMoshPitDisplayBehavior") == 0)) {
UnitBehaviorAdd(lv_stunnedUnit, "L90ETCMoshPitDisplayBehavior", lv_stunnedUnit, 1);
}
UnitBehaviorSetDuration(lv_stunnedUnit, "L90ETCMoshPitDisplayBehavior", UnitBehaviorDurationTotal(lv_eTC, "L90ETCMoshPitChannel"));
UnitBehaviorSetDurationRemaining(lv_stunnedUnit, "L90ETCMoshPitDisplayBehavior", UnitBehaviorDuration(lv_eTC, "L90ETCMoshPitChannel"));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroL90ETCMoshPitOn_Init () {
libGDHL_gt_HeroL90ETCMoshPitOn = TriggerCreate("libGDHL_gt_HeroL90ETCMoshPitOn_Func");
TriggerEnable(libGDHL_gt_HeroL90ETCMoshPitOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroL90ETCMoshPitOn, null, "L90ETCMoshPitStun", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroL90ETCMoshPitOn, null, "L90ETCMoshPitStun", c_unitBehaviorChangeRefresh);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Li Li - Cloud Serpent Turret Serpent Summon and Simplified AI
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLiLiCloudSerpentTurretSerpentSummonandSimplifiedAI_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
int lv_owningPlayer;
int lv_liLiPlayer;
unit lv_owningUnit;
unit lv_cloudSerpent;
int lv_currentState;
int lv_characterLevel;
int lv_surgingWindsBehaviorCount;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
// Actions
if (!runActions) {
return true;
}
lv_owningPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget);
lv_liLiPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_owningUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_characterLevel = UnitXPGetCurrentLevel(lv_caster, "HeroDummyVeterancy");
libNtve_gf_CreateUnitsAtPoint2(1, "CloudSerpent", 0, lv_liLiPlayer, PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), 1.5, libNtve_gf_RandomAngle()), lv_caster);
lv_cloudSerpent = UnitLastCreated();
UnitCreateEffectUnit(lv_owningUnit, "HeroGenericSummonedUnitStasisControllerWithSpecialCaseDeath", lv_cloudSerpent);
UnitCreateEffectUnit(lv_owningUnit, "HeroGenericTimeStopListenerApplyBehavior", lv_cloudSerpent);
libGDHL_gv_hero_LiLi_ActiveCloudSerpents[lv_liLiPlayer][lv_owningPlayer] = UnitLastCreated();
UnitBehaviorAdd(lv_cloudSerpent, "LiLiCloudSerpentUnitTracker", lv_owningUnit, 1);
UnitCreateEffectUnit(lv_cloudSerpent, "LiLiCloudSerpentAddTrackedUnit", lv_owningUnit);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionBehavior", lv_caster, 1);
UnitBehaviorAdd(lv_cloudSerpent, "LiLiCloudSerpentBlessingsOfYulon", lv_caster, 1);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentLightningSerpentBehavior", lv_caster, 1);
UnitBehaviorAdd(lv_cloudSerpent, "LiLiCloudSerpentAbilityController", lv_caster, 1);
if ((PlayerHasTalent(lv_liLiPlayer, "LiLiMasteryCloudSerpentSerpentSidekick") == true) && (lv_liLiPlayer == UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitTarget)))) {
UnitBehaviorAdd(lv_cloudSerpent, "LiLiCloudSerpentSerpentSidekickOwnerBehavior", lv_owningUnit, 1);
}
if ((PlayerHasTalent(lv_liLiPlayer, "LiLiWindSerpent") == true)) {
UnitBehaviorAdd(lv_owningUnit, "LiLiCloudSerpentWindSerpentTalentSpeedBuff", lv_cloudSerpent, 1);
}
if ((PlayerHasTalent(lv_liLiPlayer, "LiLiBlessingsOfYulon") == true)) {
UnitBehaviorAdd(lv_owningUnit, "LiLiCloudSerpentBlessingsOfYulonTalentBuff", lv_cloudSerpent, 1);
}
UnitCreateEffectUnit(lv_owningUnit, "LiLiCloudSerpentApplyUnitLinkSerpent", lv_cloudSerpent);
CatalogFieldValueSet(c_gameCatalogBehavior, "CloudSerpentMinionSpeedBoost", "Modification.UnifiedMoveSpeedFactor", lv_owningPlayer, CatalogFieldValueGet(c_gameCatalogBehavior, "Mounted", "Modification.UnifiedMoveSpeedFactor", lv_owningPlayer));
CatalogFieldValueSet(c_gameCatalogEffect, "CloudSerpentWeaponDamage", "Amount", lv_owningPlayer, CatalogFieldValueGet(c_gameCatalogEffect, "CloudSerpentWeaponDamage", "Amount", lv_liLiPlayer));
CatalogFieldValueSet(c_gameCatalogEffect, "LiLiCloudSerpentLightningSerpentTalentDamage", "Amount", lv_owningPlayer, CatalogFieldValueGet(c_gameCatalogEffect, "LiLiCloudSerpentLightningSerpentTalentDamage", "Amount", lv_liLiPlayer));
CatalogFieldValueSet(c_gameCatalogEffect, "LiLiCloudSerpentLightningSerpentCreateHealer", "RechargeVitalRate", lv_owningPlayer, CatalogFieldValueGet(c_gameCatalogEffect, "LiLiCloudSerpentLightningSerpentCreateHealer", "RechargeVitalRate", lv_liLiPlayer));
CatalogFieldValueSet(c_gameCatalogEffect, "LiLiCloudSerpentCreateHealer", "RechargeVitalRate", lv_owningPlayer, CatalogFieldValueGet(c_gameCatalogEffect, "LiLiCloudSerpentCreateHealer", "RechargeVitalRate", lv_liLiPlayer));
CatalogReferenceSet("Effect,LiLiCloudSerpentBlessingsOfYulonTalentCreateHealer,FlatModifierArray[JadeSerpent].Modifier", lv_owningPlayer, CatalogFieldValueGet(c_gameCatalogEffect, "LiLiCloudSerpentCreateHealer", "RechargeVitalRate", lv_owningPlayer));
CatalogFieldValueSet(c_gameCatalogEffect, "LiLiCloudSerpentCreateHealer", "Chance", lv_owningPlayer, CatalogFieldValueGet(c_gameCatalogEffect, "LiLiCloudSerpentCreateHealer", "Chance", lv_liLiPlayer));
while ((UnitIsAlive(lv_cloudSerpent) == true) && (UnitIsAlive(lv_owningUnit) == true) && (UnitHasBehavior2(lv_owningUnit, "Dead") == false)) {
libGDHL_gf_HeroLiLiCloudSerpentCloakController(lv_owningUnit, lv_cloudSerpent);
if (((UnitOrderCount(lv_cloudSerpent) == 0) || (OrderGetAbilityCommand(UnitOrder(lv_cloudSerpent, 0)) != AbilityCommand("LiLiCloudSerpentAttack", 0)))) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) >= 8.0)) {
UnitSetPosition(lv_cloudSerpent, PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), 1.5, libNtve_gf_RandomAngle()), false);
UnitIssueOrder(lv_cloudSerpent, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) >= 2.0) && (lv_currentState != libGDHL_ge_CloudSerpentAIState_Leashing)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), -1.0, UnitGetFacing(lv_owningUnit))), c_orderQueueReplace);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionSpeedBoost", lv_cloudSerpent, 1);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Leashing;
}
}
if ((lv_currentState == libGDHL_ge_CloudSerpentAIState_Idle)) {
if ((UnitOrderCount(lv_owningUnit) == 0)) {
}
else {
if ((OrderGetAbilityCommand(UnitOrder(lv_owningUnit, 0)) == AbilityCommand("move", 0))) {
if ((DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_owningUnit, 0)), UnitGetPosition(lv_cloudSerpent)) > 1.5)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(OrderGetTargetPosition(UnitOrder(lv_owningUnit, 0)), 1.0, UnitGetFacing(lv_owningUnit))), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Moving;
}
else {
libNtve_gf_MakeUnitFacePoint(lv_cloudSerpent, OrderGetTargetPosition(UnitOrder(lv_owningUnit, 0)), 0.2);
}
}
}
}
if ((lv_currentState == libGDHL_ge_CloudSerpentAIState_Moving)) {
if ((UnitOrderCount(lv_cloudSerpent) == 0)) {
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
else {
if ((UnitOrderCount(lv_owningUnit) == 0)) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) <= 1.5)) {
UnitIssueOrder(lv_cloudSerpent, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
}
else {
if ((OrderGetAbilityCommand(UnitOrder(lv_owningUnit, 0)) == AbilityCommand("move", 0))) {
if ((DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_owningUnit, 0)), OrderGetTargetPosition(UnitOrder(lv_cloudSerpent, 0))) > 1.5)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(OrderGetTargetPosition(UnitOrder(lv_owningUnit, 0)), 1.0, UnitGetFacing(lv_owningUnit))), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Moving;
}
else {
if ((DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_owningUnit, 0)), UnitGetPosition(lv_owningUnit)) < DistanceBetweenPoints(OrderGetTargetPosition(UnitOrder(lv_cloudSerpent, 0)), UnitGetPosition(lv_cloudSerpent)))) {
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionSpeedBoost", lv_cloudSerpent, 1);
}
}
}
}
}
}
if ((lv_currentState == libGDHL_ge_CloudSerpentAIState_Leashing)) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) <= 1.5)) {
UnitIssueOrder(lv_cloudSerpent, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) <= 2.0) && (UnitOrderCount(lv_cloudSerpent) == 0)) {
if ((UnitOrderCount(lv_owningUnit) == 0)) {
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
else {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), 1.0, UnitGetFacing(lv_owningUnit))), c_orderQueueReplace);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionSpeedBoost", lv_cloudSerpent, 1);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Leashing;
}
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) > 2.0) && (UnitOrderCount(lv_cloudSerpent) == 0)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), 1.0, UnitGetFacing(lv_owningUnit))), c_orderQueueReplace);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionSpeedBoost", lv_cloudSerpent, 1);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Leashing;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), OrderGetTargetPoint(UnitOrder(lv_cloudSerpent, 0))) <= 1.5) && (DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) > 2.0)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), 1.0, UnitGetFacing(lv_owningUnit))), c_orderQueueReplace);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionSpeedBoost", lv_cloudSerpent, 1);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Leashing;
}
}
}
}
}
}
Wait(0.0625, c_timeGame);
}
if (((UnitHasBehavior2(lv_owningUnit, "Dead") == true) || (UnitIsAlive(lv_owningUnit) != true))) {
UnitCreateEffectUnit(lv_cloudSerpent, "TimedLifeFate", lv_cloudSerpent);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLiLiCloudSerpentTurretSerpentSummonandSimplifiedAI_Init () {
libGDHL_gt_HeroLiLiCloudSerpentTurretSerpentSummonandSimplifiedAI = TriggerCreate("libGDHL_gt_HeroLiLiCloudSerpentTurretSerpentSummonandSimplifiedAI_Func");
TriggerEnable(libGDHL_gt_HeroLiLiCloudSerpentTurretSerpentSummonandSimplifiedAI, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLiLiCloudSerpentTurretSerpentSummonandSimplifiedAI, c_playerAny, "LiLiCloudSerpentApplyTurretSerpentBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Li Li - Cloud Serpent Summon and Simplified AI
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLiLiCloudSerpentSummonandSimplifiedAI_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
int lv_owningPlayer;
int lv_casterOwner;
unit lv_owningUnit;
unit lv_cloudSerpent;
int lv_currentState;
int lv_characterLevel;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_casterOwner = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
// Actions
if (!runActions) {
return true;
}
lv_owningPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget);
lv_owningUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_characterLevel = UnitXPGetCurrentLevel(lv_caster, "HeroDummyVeterancy");
libNtve_gf_CreateUnitsAtPoint2(1, "CloudSerpent", 0, lv_owningPlayer, PointWithOffsetPolar(UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitTarget)), 1.5, libNtve_gf_RandomAngle()), lv_caster);
lv_cloudSerpent = UnitLastCreated();
UnitCreateEffectUnit(lv_owningUnit, "LiLiCloudSerpentHostLinkDummy", lv_cloudSerpent);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionBehavior", lv_caster, 1);
if ((PlayerHasTalent(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), "LiLiMasteryCloudSerpentLightningSerpent") == true)) {
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentLightningSerpentBehavior", lv_cloudSerpent, 1);
}
if ((PlayerHasTalent(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), "LiLiWindSerpent") == true)) {
UnitBehaviorAdd(lv_owningUnit, "LiLiCloudSerpentWindSerpentTalentSpeedBuff", lv_cloudSerpent, 1);
}
CatalogFieldValueSet(c_gameCatalogBehavior, "CloudSerpentMinionSpeedBoost", "Modification.UnifiedMoveSpeedFactor", lv_owningPlayer, CatalogFieldValueGet(c_gameCatalogBehavior, "Mounted", "Modification.UnifiedMoveSpeedFactor", lv_owningPlayer));
CatalogFieldValueSet(c_gameCatalogEffect, "CloudSerpentWeaponDamage", "Amount", lv_owningPlayer, CatalogFieldValueGet(c_gameCatalogEffect, "CloudSerpentWeaponDamage", "Amount", lv_casterOwner));
CatalogFieldValueSet(c_gameCatalogEffect, "LightningSerpentHopDamage", "Amount", lv_owningPlayer, CatalogFieldValueGet(c_gameCatalogEffect, "LightningSerpentHopDamage", "Amount", lv_casterOwner));
if ((UnitGetType(lv_owningUnit) != "HeroTychus")) {
CatalogFieldValueSet(c_gameCatalogAbil, "LiLiCloudSerpentAttack", "Cost[" + IntToString(0) + "].Cooldown.TimeUse", lv_owningPlayer, "0");
}
while ((UnitIsAlive(lv_cloudSerpent) == true) && (UnitIsAlive(lv_owningUnit) == true)) {
if (((UnitOrderCount(lv_cloudSerpent) == 0) || (OrderGetAbilityCommand(UnitOrder(lv_cloudSerpent, 0)) != AbilityCommand("LiLiCloudSerpentAttack", 0)))) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) >= 8.0)) {
UnitSetPosition(lv_cloudSerpent, PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), 2.0, libNtve_gf_RandomAngle()), false);
UnitIssueOrder(lv_cloudSerpent, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) >= 4.0) && (lv_currentState != libGDHL_ge_CloudSerpentAIState_Leashing)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), 2.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionSpeedBoost", lv_cloudSerpent, 1);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Leashing;
}
}
if ((lv_currentState == libGDHL_ge_CloudSerpentAIState_Idle)) {
if ((UnitOrderCount(lv_owningUnit) == 0)) {
}
else {
if ((OrderGetAbilityCommand(UnitOrder(lv_owningUnit, 0)) == AbilityCommand("attack", 0))) {
if ((UnitIsValid(OrderGetTargetUnit(UnitOrder(lv_owningUnit, 0))) == false)) {
if ((OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)) == null)) {
UnitCreateEffectUnit(lv_owningUnit, "CloudSerpentCopyOrders", lv_cloudSerpent);
}
else {
if ((DistanceBetweenPoints(OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), UnitGetPosition(lv_cloudSerpent)) > 3.0)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), 2.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Moving;
}
else {
libNtve_gf_MakeUnitFacePoint(lv_cloudSerpent, OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), 0.2);
}
}
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(OrderGetTargetUnit(UnitOrder(lv_owningUnit, 0)))) > 12.0)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(OrderGetTargetUnit(UnitOrder(lv_owningUnit, 0))), 2.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Moving;
}
}
}
if ((OrderGetAbilityCommand(UnitOrder(lv_owningUnit, 0)) == AbilityCommand("move", 0))) {
if ((DistanceBetweenPoints(OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), UnitGetPosition(lv_cloudSerpent)) > 3.0)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), 2.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Moving;
}
else {
libNtve_gf_MakeUnitFacePoint(lv_cloudSerpent, OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), 0.2);
}
}
}
}
if ((lv_currentState == libGDHL_ge_CloudSerpentAIState_Moving)) {
if ((UnitOrderCount(lv_cloudSerpent) == 0)) {
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
else {
if ((UnitOrderCount(lv_owningUnit) == 0)) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) <= 3.0)) {
UnitIssueOrder(lv_cloudSerpent, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
}
else {
if ((OrderGetAbilityCommand(UnitOrder(lv_owningUnit, 0)) == AbilityCommand("attack", 0))) {
if ((OrderGetTargetUnit(UnitOrder(lv_owningUnit, 0)) == null)) {
if ((OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)) == null)) {
UnitCreateEffectUnit(lv_owningUnit, "CloudSerpentCopyOrders", lv_cloudSerpent);
}
else {
if ((DistanceBetweenPoints(OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), OrderGetTargetPoint(UnitOrder(lv_cloudSerpent, 0))) > 3.0)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), 2.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Moving;
}
else {
libNtve_gf_MakeUnitFacePoint(lv_cloudSerpent, OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), 0.2);
}
}
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(OrderGetTargetUnit(UnitOrder(lv_owningUnit, 0)))) > 12.0)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(OrderGetTargetUnit(UnitOrder(lv_owningUnit, 0))), 2.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Moving;
}
else {
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
}
}
if ((OrderGetAbilityCommand(UnitOrder(lv_owningUnit, 0)) == AbilityCommand("move", 0))) {
if ((DistanceBetweenPoints(OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), OrderGetTargetPoint(UnitOrder(lv_cloudSerpent, 0))) > 3.0)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), 2.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Moving;
}
else {
if ((DistanceBetweenPoints(OrderGetTargetPoint(UnitOrder(lv_owningUnit, 0)), UnitGetPosition(lv_owningUnit)) < DistanceBetweenPoints(OrderGetTargetPoint(UnitOrder(lv_cloudSerpent, 0)), UnitGetPosition(lv_cloudSerpent)))) {
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionSpeedBoost", lv_cloudSerpent, 1);
}
}
}
}
}
}
if ((lv_currentState == libGDHL_ge_CloudSerpentAIState_Leashing)) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) <= 3.0)) {
UnitIssueOrder(lv_cloudSerpent, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) <= 4.0) && (UnitOrderCount(lv_cloudSerpent) == 0)) {
if ((UnitOrderCount(lv_owningUnit) == 0)) {
lv_currentState = libGDHL_ge_CloudSerpentAIState_Idle;
}
else {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), 2.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionSpeedBoost", lv_cloudSerpent, 1);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Leashing;
}
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) > 4.0) && (UnitOrderCount(lv_cloudSerpent) == 0)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), 2.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionSpeedBoost", lv_cloudSerpent, 1);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Leashing;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), OrderGetTargetPoint(UnitOrder(lv_cloudSerpent, 0))) <= 1.5) && (DistanceBetweenPoints(UnitGetPosition(lv_cloudSerpent), UnitGetPosition(lv_owningUnit)) > 4.0)) {
UnitIssueOrder(lv_cloudSerpent, OrderTargetingPoint(AbilityCommand("move", 0), PointWithOffsetPolar(UnitGetPosition(lv_owningUnit), 2.0, libNtve_gf_RandomAngle())), c_orderQueueReplace);
UnitBehaviorAdd(lv_cloudSerpent, "CloudSerpentMinionSpeedBoost", lv_cloudSerpent, 1);
lv_currentState = libGDHL_ge_CloudSerpentAIState_Leashing;
}
}
}
}
}
}
Wait(0.0625, c_timeGame);
}
if ((UnitIsAlive(lv_owningUnit) != true)) {
TriggerDebugOutput(1, StringToText(""), true);
UnitCreateEffectUnit(lv_cloudSerpent, "TimedLifeFate", lv_cloudSerpent);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLiLiCloudSerpentSummonandSimplifiedAI_Init () {
libGDHL_gt_HeroLiLiCloudSerpentSummonandSimplifiedAI = TriggerCreate("libGDHL_gt_HeroLiLiCloudSerpentSummonandSimplifiedAI_Func");
TriggerEnable(libGDHL_gt_HeroLiLiCloudSerpentSummonandSimplifiedAI, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLiLiCloudSerpentSummonandSimplifiedAI, c_playerAny, "CloudSerpentApplyBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Li Li - Cloud Serpent Attack Mimic
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLiLiCloudSerpentAttackMimic_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
unit lv_ownerUnit;
// Automatic Variable Declarations
unitgroup auto71EC7391_g;
int auto71EC7391_u;
unit auto71EC7391_var;
// Variable Initialization
lv_target = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_ownerUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Conditions
if (testConds) {
if (!(((UnitHasBehavior2(lv_ownerUnit, "CloudSerpentOwnerBehavior") == true) || (UnitHasBehavior2(lv_ownerUnit, "LiLiCloudSerpentSerpentSidekickOwnerBehavior") == true)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(lv_target) != "DocksTreasureChest")) {
auto71EC7391_g = UnitGroup("CloudSerpent", UnitGetOwner(lv_ownerUnit), RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto71EC7391_u = UnitGroupCount(auto71EC7391_g, c_unitCountAll);
for (;; auto71EC7391_u -= 1) {
auto71EC7391_var = UnitGroupUnitFromEnd(auto71EC7391_g, auto71EC7391_u);
if (auto71EC7391_var == null) { break; }
if ((libCore_gf_IsAbilityOnCooldown(auto71EC7391_var, "LiLiCloudSerpentAttack") == false)) {
UnitIssueOrder(auto71EC7391_var, OrderTargetingUnit(AbilityCommand("LiLiCloudSerpentAttack", 0), lv_target), c_orderQueueReplace);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLiLiCloudSerpentAttackMimic_Init () {
libGDHL_gt_HeroLiLiCloudSerpentAttackMimic = TriggerCreate("libGDHL_gt_HeroLiLiCloudSerpentAttackMimic_Func");
TriggerEnable(libGDHL_gt_HeroLiLiCloudSerpentAttackMimic, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLiLiCloudSerpentAttackMimic, c_playerAny, "UniversalWeaponLaunchSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Leoric Spawn
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LeoricSpawn_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroSpawnPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroLeoric"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGame_gv_players[lv_player].lv_soundDeathAlertPrefix = "UI_HeroDeath_Leoric_";
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LeoricSpawn_Init () {
libGDHL_gt_LeoricSpawn = TriggerCreate("libGDHL_gt_LeoricSpawn_Func");
libGame_gf_HeroSpawn(libGDHL_gt_LeoricSpawn);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Leoric - Entomb Forced Destruction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLeoricEntombForcedDestruction_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_target = EventPlayerEffectUsedUnitImpact();
lv_player = UnitGetOwner(lv_target);
// Conditions
if (testConds) {
if (!(((UnitGetType(lv_target) == "LeoricEntombCollision") || (UnitGetType(lv_target) == "LeoricEntombMain")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(libGame_gv_players[lv_player].lv_heroUnit, "LeoricEntombCancelInitialSet", libGame_gv_players[lv_player].lv_heroUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLeoricEntombForcedDestruction_Init () {
libGDHL_gt_HeroLeoricEntombForcedDestruction = TriggerCreate("libGDHL_gt_HeroLeoricEntombForcedDestruction_Func");
TriggerEnable(libGDHL_gt_HeroLeoricEntombForcedDestruction, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLeoricEntombForcedDestruction, c_playerAny, "DestroyPathingBlockerDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Leoric - Wraith Walk - Devouring Maw Special Case
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLeoricWraithWalkDevouringMawSpecialCase_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_wraithPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(EventUnit(), "LeoricWraithWalkCasterBehavior") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_wraithPlayer = UnitGetOwner(lv_unit);
if (((lv_wraithPlayer < 0) || (lv_wraithPlayer > libCore_gv_bALMaxPlayers))) {
return true;
}
UnitCreateEffectUnit(libGame_gv_players[lv_wraithPlayer].lv_heroUnit, "LeoricWraithWalkRemoveCancelBuff", lv_unit);
UnitRemove(libGDHL_gv_hero_Leoric_WraithWalk_Unit[lv_wraithPlayer]);
libGDHL_gv_hero_Leoric_WraithWalk_Unit[lv_wraithPlayer] = null;
if ((UnitGetType(libGame_gv_players[lv_wraithPlayer].lv_heroUnit) == "HeroAbathur")) {
if ((UnitIsAlive(libGame_gv_players[lv_wraithPlayer].lv_activeVehicle) == true)) {
libGame_gv_players[lv_wraithPlayer].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(libGame_gv_players[lv_wraithPlayer].lv_activeVehicle);
}
else {
libGame_gv_players[lv_wraithPlayer].lv_cameraPlayerUnitGroupToFocusOn = libGame_gv_players[lv_wraithPlayer].lv_heroUnitGroup;
}
}
else {
libGame_gv_players[lv_wraithPlayer].lv_cameraPlayerUnitGroupToFocusOn = libGame_gv_players[lv_wraithPlayer].lv_heroUnitGroup;
}
libGame_gf_CameraUpdateCameraForPlayer(lv_wraithPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLeoricWraithWalkDevouringMawSpecialCase_Init () {
libGDHL_gt_HeroLeoricWraithWalkDevouringMawSpecialCase = TriggerCreate("libGDHL_gt_HeroLeoricWraithWalkDevouringMawSpecialCase_Func");
TriggerEnable(libGDHL_gt_HeroLeoricWraithWalkDevouringMawSpecialCase, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLeoricWraithWalkDevouringMawSpecialCase, null, "DevouringMawTargetBehavior", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Leoric - Wraith Walk - Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLeoricWraithWalkCast_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_controllerUnit;
int lv_player;
unit lv_wraithWalkUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_controllerUnit = EventUnit();
lv_player = UnitGetOwner(lv_controllerUnit);
lv_wraithWalkUnit = EventUnitCreatedUnit();
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroAbathur")) {
lv_controllerUnit = libGame_gv_players[lv_player].lv_activeVehicle;
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_controllerUnit);
}
else {
lv_controllerUnit = libGame_gv_players[lv_player].lv_heroUnit;
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = libGame_gv_players[lv_player].lv_heroUnitGroup;
}
UnitSelect(lv_wraithWalkUnit, lv_player, true);
libGDHL_gv_hero_Leoric_WraithWalk_Unit[lv_player] = lv_wraithWalkUnit;
UnitSetFacing(lv_wraithWalkUnit, UnitGetFacing(lv_controllerUnit), 0.0);
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(lv_player) == true)) {
libAIAI_gv_aIHeroes[lv_player].lv_currentHeroUnit = lv_wraithWalkUnit;
}
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_wraithWalkUnit);
libGame_gv_players[lv_player].lv_cameraCurrentTarget = lv_wraithWalkUnit;
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
while ((UnitHasBehavior2(lv_wraithWalkUnit, "LeoricWraithWalkActiveBehavior") == true) && (UnitIsAlive(lv_controllerUnit) == true)) {
Wait(0.0625, c_timeGame);
}
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(lv_player) == true)) {
libAIAI_gv_aIHeroes[lv_player].lv_currentHeroUnit = lv_controllerUnit;
}
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_controllerUnit);
libGame_gv_players[lv_player].lv_cameraCurrentTarget = lv_controllerUnit;
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLeoricWraithWalkCast_Init () {
libGDHL_gt_HeroLeoricWraithWalkCast = TriggerCreate("libGDHL_gt_HeroLeoricWraithWalkCast_Func");
TriggerEnable(libGDHL_gt_HeroLeoricWraithWalkCast, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroLeoricWraithWalkCast, null, "LeoricWraithWalk", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Leoric - Undying Start
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LeoricUndyingStart_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_leoricPlayer;
unit lv_leoric;
int lv_killingPlayer;
fixed lv_deathTimer;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(EventPlayerEffectUsedUnit(c_effectUnitCaster), "LeoricUndying") == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_leoric = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_leoricPlayer = UnitGetOwner(lv_leoric);
lv_killingPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget);
libGDHL_gv_hero_Leoric_Undying_Dead_Time_Saved[lv_leoricPlayer] = 0.0;
PlayerScoreValueSetFromInt(lv_leoricPlayer, "DeadHeroLastKnownHealth", FixedToInt(UnitGetPropertyFixed(lv_leoric, c_unitPropLife, c_unitPropCurrent)));
if ((TechTreeUnitCount(lv_leoricPlayer, "LeoricWraithWalkUnit", c_techCountCompleteOnly) >= 1)) {
if (((libGDHL_gv_hero_Leoric_WraithWalk_Unit[lv_leoricPlayer] == null) || (UnitIsAlive(libGDHL_gv_hero_Leoric_WraithWalk_Unit[lv_leoricPlayer]) == false))) {
libGDHL_gv_hero_Leoric_WraithWalk_Unit[lv_leoricPlayer] = UnitGroupUnit(UnitGroup("LeoricWraithWalkUnit", lv_leoricPlayer, RegionCircle(UnitGetPosition(lv_leoric), 25.0), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0), 1);
}
UnitSetPosition(lv_leoric, libNtve_gf_PointFacingAngle(UnitGetPosition(libGDHL_gv_hero_Leoric_WraithWalk_Unit[lv_leoricPlayer]), UnitGetFacing(libGDHL_gv_hero_Leoric_WraithWalk_Unit[lv_leoricPlayer])), false);
UnitRemove(libGDHL_gv_hero_Leoric_WraithWalk_Unit[lv_leoricPlayer]);
UnitBehaviorRemove(lv_leoric, "LeoricWraithWalkCasterBehavior", 1);
libGame_gv_players[EventPlayer()].lv_cameraPlayerUnitGroupToFocusOn = libGame_gv_players[EventPlayer()].lv_heroUnitGroup;
libGame_gf_CameraUpdateCameraForPlayer(EventPlayer());
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(lv_leoricPlayer) == true)) {
libAIAI_gv_aIHeroes[lv_leoricPlayer].lv_currentHeroUnit = libGame_gv_players[lv_leoricPlayer].lv_heroUnit;
}
}
UnitSetPropertyFixed(lv_leoric, c_unitPropLife, 2.0);
UnitSetPropertyFixed(lv_leoric, c_unitPropEnergy, 0.0);
UnitBehaviorAdd(lv_leoric, "LeoricUndyingMinorStasis", lv_leoric, 1);
UnitBehaviorAdd(lv_leoric, "Dead", lv_leoric, 1);
if ((UnitBehaviorCount(lv_leoric, "NoDeadMechanics") == 0)) {
UnitBehaviorAdd(lv_leoric, "DeadMechanics", lv_leoric, 1);
}
UnitBehaviorRemove(lv_leoric, "LeoricMarchoftheBlackKing", 1);
libGame_gv_players[lv_leoricPlayer].lv_isDead = true;
libGame_gf_SendEventHeroKilled(lv_killingPlayer, lv_leoric);
libGDHL_gf_LeoricUIShowHideCustomDeathOverlay(true, lv_leoricPlayer);
libGame_gf_SendEventHeroEntersSpecialDeathState(lv_leoric);
libGame_gf_UpdateStormMapLighting(PlayerGroupSingle(lv_leoricPlayer), 0.0);
CatalogFieldValueSet(c_gameCatalogUnit, "HeroLeoric", "LifeRegenRate", lv_leoricPlayer, "0");
CatalogFieldValueSet(c_gameCatalogActor, "HeroLeoric", "CustomUnitStatusFrame", EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), "UnitStatus/HeroUnitStatusFrameAllGreyNoEnergyTemplate");
lv_deathTimer = libCore_gf_HeroDeathTime(lv_leoricPlayer, UnitLevel(libGame_gv_players[lv_leoricPlayer].lv_heroUnit));
libGame_gf_HeroDeathStartRespawnTimer(lv_leoricPlayer, lv_deathTimer);
libNtve_gf_SendActorMessageToUnit(lv_leoric, "SetShowStatusBar 1");
UnitBehaviorAdd(lv_leoric, "LeoricUndying", lv_leoric, 1);
if ((TimerGetDuration(libGame_gv_players[lv_leoricPlayer].lv_respawnTimer) > 0.0)) {
UnitBehaviorSetDuration(lv_leoric, "LeoricUndying", TimerGetRemaining(libGame_gv_players[lv_leoricPlayer].lv_respawnTimer));
UnitBehaviorSetDuration(lv_leoric, "Dead", TimerGetRemaining(libGame_gv_players[lv_leoricPlayer].lv_respawnTimer));
libGDHL_gv_hero_Leoric_Undying_Dead_Duration[lv_leoricPlayer] = UnitBehaviorDurationTotal(lv_leoric, "LeoricUndying");
}
else {
UnitBehaviorSetDuration(lv_leoric, "LeoricUndying", 0.0);
UnitBehaviorSetDuration(lv_leoric, "Dead", 0.0);
libGDHL_gv_hero_Leoric_Undying_Dead_Duration[lv_leoricPlayer] = UnitBehaviorDurationTotal(lv_leoric, "LeoricUndying");
}
CatalogFieldValueSetFixed(c_gameCatalogEffect, "LeoricUndyingLifeRegenModifyUnit", "VitalArray[" + IntToString(0) + "].ChangeFraction", lv_leoricPlayer, (0.5 / (libGDHL_gv_hero_Leoric_Undying_Dead_Duration[lv_leoricPlayer] - 2.0)));
libUIUI_gf_UIHeroConsoleShowHideUnitStatusFrameForPlayer(false, lv_leoricPlayer);
CatalogFieldValueSet(c_gameCatalogUnit, "HeroLeoric", "Collide[" + IntToString(1) + "]", lv_leoricPlayer, "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroLeoric", "Collide[" + IntToString(12) + "]", lv_leoricPlayer, "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroLeoric", "Collide[" + IntToString(8) + "]", lv_leoricPlayer, "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroLeoric", "Collide[" + IntToString(10) + "]", lv_leoricPlayer, "1");
libUIUI_gf_FullscreenOverlaysShowHideDeathOverlay(true, lv_leoricPlayer);
libUIUI_gf_HeroConsoleUnitStatusBarsUpdateStunDeathBar("LeoricUndying", lv_leoricPlayer);
libUIUI_gf_UIHeroConsoleShowHideUnitStatusFrameForPlayer(true, UnitGetOwner(lv_leoric));
libGDHL_gf_LeoricUIHeroSpecificStatusFrameUpdateLeoricUIValue(lv_leoricPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LeoricUndyingStart_Init () {
libGDHL_gt_LeoricUndyingStart = TriggerCreate("libGDHL_gt_LeoricUndyingStart_Func");
TriggerEnable(libGDHL_gt_LeoricUndyingStart, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_LeoricUndyingStart, c_playerAny, "LeoricApplyUndyingBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Leoric - Undying End
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LeoricUndyingEnd_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_leoricRegen;
int lv_itLevel;
unit lv_leoric;
int lv_leoricPlayer;
int lv_deadPlayer;
int lv_killingPlayer;
// Automatic Variable Declarations
int auto87E5FACA_ae;
const int auto87E5FACA_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_leoric = EventUnit();
lv_leoricPlayer = UnitGetOwner(lv_leoric);
if ((lv_leoricPlayer > libCore_gv_bALMaxEnginePlayerCount)) {
return true;
}
libGame_gv_players[lv_leoricPlayer].lv_isDead = false;
UnitBehaviorRemove(lv_leoric, "Dead", 1);
CatalogFieldValueSet(c_gameCatalogUnit, "HeroLeoric", "Collide[" + IntToString(1) + "]", lv_leoricPlayer, "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroLeoric", "Collide[" + IntToString(12) + "]", lv_leoricPlayer, "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroLeoric", "Collide[" + IntToString(8) + "]", lv_leoricPlayer, "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroLeoric", "Collide[" + IntToString(10) + "]", lv_leoricPlayer, "0");
Wait(1.0, c_timeGame);
libGame_gf_SendEventHeroRespawn(lv_leoricPlayer, lv_leoric);
lv_leoricRegen = CatalogFieldValueGetAsFixed(c_gameCatalogUnit, "HeroLeoric", "LifeRegenRate", 0);
auto87E5FACA_ae = libGame_gv_teams[libGame_gf_TeamNumberOfPlayer(lv_leoricPlayer)].lv_teamLevel;
lv_itLevel = 1;
for ( ; ( (auto87E5FACA_ai >= 0 && lv_itLevel <= auto87E5FACA_ae) || (auto87E5FACA_ai < 0 && lv_itLevel >= auto87E5FACA_ae) ) ; lv_itLevel += auto87E5FACA_ai ) {
lv_leoricRegen = (lv_leoricRegen * (CatalogFieldValueGetAsFixed(c_gameCatalogHero, "Leoric", "LevelScalingArray[" + IntToString(6) + "].Modifications[" + IntToString(2) + "].Value", c_playerAny) + 1.0));
}
CatalogFieldValueSetFixed(c_gameCatalogUnit, "HeroLeoric", "LifeRegenRate", lv_leoricPlayer, lv_leoricRegen);
CatalogFieldValueSet(c_gameCatalogActor, "HeroLeoric", "CustomUnitStatusFrame", UnitGetOwner(EventUnit()), "UnitStatus/HeroUnitStatusFrameTemplate");
libGDHL_gf_LeoricUIShowHideCustomDeathOverlay(false, lv_leoricPlayer);
UnitBehaviorRemove(lv_leoric, "SuppressRegeneration", 1);
PlayerScoreValueSetFromInt(lv_leoricPlayer, "DeadHeroLastKnownHealth", 0);
libGame_gf_HeroDeathEnableDisableDeadSoundStateForPlayer(false, lv_leoricPlayer);
libSond_gf_HeroVOPlayHeroLine(libCore_ge_HeroVOEvents_Revive, lv_leoricPlayer, libCore_gv_playerGroupFromPlayer[lv_leoricPlayer]);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LeoricUndyingEnd_Init () {
libGDHL_gt_LeoricUndyingEnd = TriggerCreate("libGDHL_gt_LeoricUndyingEnd_Func");
TriggerEnable(libGDHL_gt_LeoricUndyingEnd, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_LeoricUndyingEnd, null, "LeoricUndying", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Leoric - Swapped During Undying
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LeoricSwappedDuringUndying_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[libGame_gf_DebugHeroSwappedPlayer()].lv_heroUnit) == "HeroLeoric"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = libGame_gf_DebugHeroSwappedPlayer();
CatalogFieldValueSet(c_gameCatalogActor, "HeroLeoric", "CustomUnitStatusFrame", lv_player, "UnitStatus/HeroUnitStatusFrameTemplate");
libGame_gf_SendEventHeroRespawn(lv_player, libGame_gv_players[lv_player].lv_heroUnit);
libGDHL_gf_LeoricUIShowHideCustomDeathOverlay(false, lv_player);
libGame_gf_HeroDeathEnableDisableDeadSoundStateForPlayer(false, lv_player);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LeoricSwappedDuringUndying_Init () {
libGDHL_gt_LeoricSwappedDuringUndying = TriggerCreate("libGDHL_gt_LeoricSwappedDuringUndying_Func");
TriggerEnable(libGDHL_gt_LeoricSwappedDuringUndying, false);
libGame_gf_DebugHeroSwapped(libGDHL_gt_LeoricSwappedDuringUndying);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Leoric - Undying - Healing Death Timer Reduction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LeoricUndyingHealingDeathTimerReduction_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_leoricUnit;
int lv_leoricPlayer;
fixed lv_currentTotalRespawnTime;
fixed lv_reducedTotalRespawnTime;
fixed lv_healthRegenPercentage;
fixed lv_timeReduced;
// Automatic Variable Declarations
// Variable Initialization
lv_leoricUnit = EventUnit();
lv_leoricPlayer = UnitGetOwner(lv_leoricUnit);
lv_currentTotalRespawnTime = libGDHL_gv_hero_Leoric_Undying_Dead_Duration[lv_leoricPlayer];
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(lv_leoricUnit, "LeoricUndying") == true))) {
return false;
}
if (!((UnitHasBehavior2(lv_leoricUnit, "LeoricUndyingSuppressHealing") == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_healthRegenPercentage = (EventUnitHealAmount() / UnitGetPropertyFixed(lv_leoricUnit, c_unitPropLifeMax, c_unitPropCurrent));
lv_reducedTotalRespawnTime = (lv_currentTotalRespawnTime * (1.0 - lv_healthRegenPercentage));
lv_timeReduced = (lv_reducedTotalRespawnTime - lv_currentTotalRespawnTime);
libGDHL_gv_hero_Leoric_Undying_Dead_Time_Saved[lv_leoricPlayer] -= lv_timeReduced;
libGame_gf_HeroDeathModifyRespawnTimer(lv_leoricPlayer, lv_timeReduced);
libGDHL_gf_LeoricUIHeroSpecificStatusFrameUpdateLeoricUIValue(lv_leoricPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LeoricUndyingHealingDeathTimerReduction_Init () {
libGDHL_gt_LeoricUndyingHealingDeathTimerReduction = TriggerCreate("libGDHL_gt_LeoricUndyingHealingDeathTimerReduction_Func");
TriggerAddEventUnitHealed(libGDHL_gt_LeoricUndyingHealingDeathTimerReduction, null, c_unitVitalLife, "LeoricMasteryFealtyUntoDeathRestoreLifeUndying");
TriggerAddEventUnitHealed(libGDHL_gt_LeoricUndyingHealingDeathTimerReduction, null, c_unitVitalLife, "LeoricDrainHopeGhostPeriodicHealerBase");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Leoric UI Initialize
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LeoricUIInitialize_Func (bool testConds, bool runActions) {
int init_i;
// Variable Declarations
int[6] lv_panels;
int lv_currentPanelLayer;
// Automatic Variable Declarations
// Variable Initialization
for (init_i = 0; init_i <= 5; init_i += 1) {
lv_panels[init_i] = c_invalidDialogControlId;
}
// Actions
if (!runActions) {
return true;
}
DialogControlHookup(libUIUI_gv_heroSpecificStatusContainer, c_triggerControlTypePanel, "LeoricTraitFrame");
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libGDHL_gv_leoricUI.lv_mainPanel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "UnitStatusFrame0/LeoricCheatDeathFrame");
libGDHL_gv_leoricUI.lv_cheatDeathFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "UnitStatusFrame0/LeoricCheatDeathFrame/LeoricTraitLabel");
libGDHL_gv_leoricUI.lv_traitLabel = DialogControlLastCreated();
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LeoricUIInitialize_Init () {
libGDHL_gt_LeoricUIInitialize = TriggerCreate("libGDHL_gt_LeoricUIInitialize_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Leoric UI Clean Up UI For Hero Swap
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LeoricUICleanUpUIForHeroSwap_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = libGame_gf_DebugHeroSwappedPlayer();
libGDHL_gf_LeoricUIClearUIForHeroSwap(lv_player);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LeoricUICleanUpUIForHeroSwap_Init () {
libGDHL_gt_LeoricUICleanUpUIForHeroSwap = TriggerCreate("libGDHL_gt_LeoricUICleanUpUIForHeroSwap_Func");
libGame_gf_DebugHeroSwapped(libGDHL_gt_LeoricUICleanUpUIForHeroSwap);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Leoric - Fealty Unto Death - Enemy NPC Proc Listener
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LeoricFealtyUntoDeathEnemyNPCProcListener_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_killingPlayer;
unit lv_minion;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_killingPlayer = libGame_gf_HeroParticipatedInNPCTakedownKillingPlayer();
lv_minion = libGame_gf_HeroParticipatedInNPCTakedownMinion();
if ((UnitHasBehavior2(libGame_gv_players[lv_killingPlayer].lv_heroUnit, "LeoricMasteryFealtyUntoDeathCarryBehavior") == true) && (UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeSummoned) == false) && (UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeStructure) == false) && (UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeCreep) == false) && ((UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeMerc) == true) || (UnitTypeTestAttribute(UnitGetType(lv_minion), c_unitAttributeMinion) == true))) {
if ((UnitHasBehavior2(libGame_gv_players[lv_killingPlayer].lv_heroUnit, "LeoricUndying") == true)) {
UnitCreateEffectUnitWithSource(libGame_gv_players[lv_killingPlayer].lv_heroUnit, "LeoricMasteryFealtyUntoDeathRestoreLifeUndying", libGame_gv_players[lv_killingPlayer].lv_heroUnit, c_gameCatalogBehavior, "LeoricMasteryFealtyUntoDeathCarryBehavior");
}
else {
UnitCreateEffectUnitWithSource(libGame_gv_players[lv_killingPlayer].lv_heroUnit, "LeoricMasteryFealtyUntoDeathImpactSet", libGame_gv_players[lv_killingPlayer].lv_heroUnit, c_gameCatalogBehavior, "LeoricMasteryFealtyUntoDeathCarryBehavior");
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LeoricFealtyUntoDeathEnemyNPCProcListener_Init () {
libGDHL_gt_LeoricFealtyUntoDeathEnemyNPCProcListener = TriggerCreate("libGDHL_gt_LeoricFealtyUntoDeathEnemyNPCProcListener_Func");
TriggerEnable(libGDHL_gt_LeoricFealtyUntoDeathEnemyNPCProcListener, false);
libGame_gf_HeroParticipatedInNPCTakedown(libGDHL_gt_LeoricFealtyUntoDeathEnemyNPCProcListener);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Leoric - Fealty Unto Death - Allied NPC Proc Listener
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LeoricFealtyUntoDeathAlliedNPCProcListener_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_alliedPlayer;
unit lv_killedNPC;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_alliedPlayer = libGame_gf_HeroWitnessedAlliedNPCDeathAlliedPlayer();
lv_killedNPC = libGame_gf_HeroWitnessedAlliedNPCDeathMinion();
if ((UnitHasBehavior2(libGame_gv_players[lv_alliedPlayer].lv_heroUnit, "LeoricMasteryFealtyUntoDeathCarryBehavior") == true) && (UnitTypeTestAttribute(UnitGetType(lv_killedNPC), c_unitAttributeSummoned) == false) && (UnitTypeTestAttribute(UnitGetType(lv_killedNPC), c_unitAttributeStructure) == false) && (UnitTypeTestAttribute(UnitGetType(lv_killedNPC), c_unitAttributeCreep) == false) && ((UnitTypeTestAttribute(UnitGetType(lv_killedNPC), c_unitAttributeMerc) == true) || (UnitTypeTestAttribute(UnitGetType(lv_killedNPC), c_unitAttributeMinion) == true))) {
if ((UnitHasBehavior2(libGame_gv_players[lv_alliedPlayer].lv_heroUnit, "LeoricUndying") == true)) {
UnitCreateEffectUnitWithSource(libGame_gv_players[lv_alliedPlayer].lv_heroUnit, "LeoricMasteryFealtyUntoDeathRestoreLifeUndying", libGame_gv_players[lv_alliedPlayer].lv_heroUnit, c_gameCatalogBehavior, "LeoricMasteryFealtyUntoDeathCarryBehavior");
}
else {
UnitCreateEffectUnitWithSource(libGame_gv_players[lv_alliedPlayer].lv_heroUnit, "LeoricMasteryFealtyUntoDeathImpactSet", libGame_gv_players[lv_alliedPlayer].lv_heroUnit, c_gameCatalogBehavior, "LeoricMasteryFealtyUntoDeathCarryBehavior");
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LeoricFealtyUntoDeathAlliedNPCProcListener_Init () {
libGDHL_gt_LeoricFealtyUntoDeathAlliedNPCProcListener = TriggerCreate("libGDHL_gt_LeoricFealtyUntoDeathAlliedNPCProcListener_Func");
TriggerEnable(libGDHL_gt_LeoricFealtyUntoDeathAlliedNPCProcListener, false);
libGame_gf_HeroWitnessedAlliedNPCDeath(libGDHL_gt_LeoricFealtyUntoDeathAlliedNPCProcListener);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Leoric - Ossein Renewal Talent Globe Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLeoricOsseinRenewalTalentGlobeProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_leoric;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_leoric = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_player = UnitGetOwner(lv_leoric);
// Conditions
if (testConds) {
if (!((UnitGetOwner(lv_leoric) >= 1))) {
return false;
}
if (!((UnitGetOwner(lv_leoric) <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "LeoricMasteryOsseinRenewal") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((PlayerHasTalent(EventPlayer(), "LeoricMasteryOsseinRenewal") == true)) {
UnitCreateEffectUnit(lv_leoric, "LeoricOsseinRenewalGlobeImpactSet", lv_leoric);
UnitAddChargeUsed(lv_leoric, "Abil/LeoricOsseinRenewal", -1.0);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLeoricOsseinRenewalTalentGlobeProc_Init () {
libGDHL_gt_HeroLeoricOsseinRenewalTalentGlobeProc = TriggerCreate("libGDHL_gt_HeroLeoricOsseinRenewalTalentGlobeProc_Func");
TriggerEnable(libGDHL_gt_HeroLeoricOsseinRenewalTalentGlobeProc, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLeoricOsseinRenewalTalentGlobeProc, c_playerAny, "RegenGlobeImpactSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Leoric - Shroud of the Dead King Floating Text
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLeoricShroudOfTheDeadKingFloatingText_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_triggeringUnitOwner;
// Automatic Variable Declarations
// Variable Initialization
lv_triggeringUnitOwner = UnitGetOwner(EventUnit());
// Conditions
if (testConds) {
if (!((EventUnitBehaviorCumulativeDamageModification() >= 0.0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
FloatingCombatElementCreateNumberTextAtUnit(PlayerGroupSingle(lv_triggeringUnitOwner), "FloatingCombatElements/FloatingCombatAmountReadable", "", EventUnit(), FixedToInt(EventUnitBehaviorCumulativeDamageModification()), StringExternal("Param/Value/lib_HVAR_D90A4267"), libNtve_gv_FloatingCombatTextAutoRandomSeed);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLeoricShroudOfTheDeadKingFloatingText_Init () {
libGDHL_gt_HeroLeoricShroudOfTheDeadKingFloatingText = TriggerCreate("libGDHL_gt_HeroLeoricShroudOfTheDeadKingFloatingText_Func");
TriggerEnable(libGDHL_gt_HeroLeoricShroudOfTheDeadKingFloatingText, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLeoricShroudOfTheDeadKingFloatingText, null, "LeoricShroudoftheDeadKingProtectedBuff", c_unitBehaviorChangeRefresh);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLeoricShroudOfTheDeadKingFloatingText, null, "LeoricShroudoftheDeadKingProtectedBuff", c_unitBehaviorChangeDecrease);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Viking Bribery NPC Proc Listener
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsVikingBriberyNPCProcListener_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_killingPlayer;
unit lv_minion;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_killingPlayer = libGame_gf_HeroParticipatedInNPCTakedownKillingPlayer();
lv_minion = libGame_gf_HeroParticipatedInNPCTakedownMinion();
libGDHL_gf_VikingBriberyProc(lv_killingPlayer, lv_minion);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsVikingBriberyNPCProcListener_Init () {
libGDHL_gt_HeroLostVikingsVikingBriberyNPCProcListener = TriggerCreate("libGDHL_gt_HeroLostVikingsVikingBriberyNPCProcListener_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyNPCProcListener, false);
libGame_gf_HeroParticipatedInNPCTakedown(libGDHL_gt_HeroLostVikingsVikingBriberyNPCProcListener);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Viking Bribery Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsVikingBriberyUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_vikingUnit;
// Automatic Variable Declarations
unitgroup auto03293D7A_g;
int auto03293D7A_u;
unit auto03293D7A_var;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_vikingUnit = libGame_gv_players[EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)].lv_heroUnit;
UnitCreateEffectUnit(lv_vikingUnit, "LostVikingsVikingBriberyRemoveStackBehavior", lv_vikingUnit);
auto03293D7A_g = libGame_gv_players[EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster)].lv_heroUnitGroup;
auto03293D7A_u = UnitGroupCount(auto03293D7A_g, c_unitCountAll);
for (;; auto03293D7A_u -= 1) {
auto03293D7A_var = UnitGroupUnitFromEnd(auto03293D7A_g, auto03293D7A_u);
if (auto03293D7A_var == null) { break; }
UnitCreateEffectUnit(auto03293D7A_var, "LostVikingsVikingBriberyDecreaseVisualTokenCounter", auto03293D7A_var);
}
PlayerScoreValueSetFromInt(EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), "LostVikingsVikingBriberyStackScore", UnitBehaviorCount(lv_vikingUnit, "LostVikingsVikingBriberyStacks"));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsVikingBriberyUsed_Init () {
libGDHL_gt_HeroLostVikingsVikingBriberyUsed = TriggerCreate("libGDHL_gt_HeroLostVikingsVikingBriberyUsed_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyUsed, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLostVikingsVikingBriberyUsed, c_playerAny, "LostVikingsVikingBriberySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Viking Bribery Score Reset
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsVikingBriberyScoreReset_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
PlayerScoreValueSetFromInt(UnitGetOwner(EventUnit()), "LostVikingsVikingBriberyStackScore", 0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsVikingBriberyScoreReset_Init () {
libGDHL_gt_HeroLostVikingsVikingBriberyScoreReset = TriggerCreate("libGDHL_gt_HeroLostVikingsVikingBriberyScoreReset_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyScoreReset, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLostVikingsVikingBriberyScoreReset, null, "LostVikingsVikingBriberyCarryBehavior", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Viking Bribery Add Stacks on Cooldown Reset
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsVikingBriberyAddStacksonCooldownReset_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((PlayerHasTalent(libGame_gf_SpecialCaseTalentCooldownResetPlayer(), "LostVikingsMasteryVikingBribery") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = libGame_gf_SpecialCaseTalentCooldownResetPlayer();
PlayerScoreValueSetFromInt(lv_player, "LostVikingsVikingBriberyStackScore", 100);
UnitBehaviorAdd(libGame_gv_players[lv_player].lv_heroUnit, "LostVikingsVikingBriberyStacks", libGame_gv_players[lv_player].lv_heroUnit, 100);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsVikingBriberyAddStacksonCooldownReset_Init () {
libGDHL_gt_HeroLostVikingsVikingBriberyAddStacksonCooldownReset = TriggerCreate("libGDHL_gt_HeroLostVikingsVikingBriberyAddStacksonCooldownReset_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingBriberyAddStacksonCooldownReset, false);
libGame_gf_SpecialCaseTalentCooldownReset(libGDHL_gt_HeroLostVikingsVikingBriberyAddStacksonCooldownReset);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Viking Hoard
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsVikingHoard_Func (bool testConds, bool runActions) {
// Variable Declarations
playergroup lv_itVikingsPlayerGroup;
unit lv_itRegenGlobeTarget;
int lv_itVikingsPlayer;
unit lv_itVikingPerPlayer;
// Automatic Variable Declarations
unitgroup autoD0FFDC0B_g;
int autoD0FFDC0B_u;
playergroup autoF761DB16_g;
unitgroup autoE5826E76_g;
int autoE5826E76_u;
// Variable Initialization
lv_itVikingsPlayerGroup = PlayerGroupEmpty();
// Actions
if (!runActions) {
return true;
}
autoD0FFDC0B_g = UnitGroupAlliance(EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget), c_unitAllianceAlly, RegionCircle(UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitTarget)), 12.0), libCore_gv_filtersHeroicAllyorPlayerandnotStasis, 0);
autoD0FFDC0B_u = UnitGroupCount(autoD0FFDC0B_g, c_unitCountAll);
for (;; autoD0FFDC0B_u -= 1) {
lv_itRegenGlobeTarget = UnitGroupUnitFromEnd(autoD0FFDC0B_g, autoD0FFDC0B_u);
if (lv_itRegenGlobeTarget == null) { break; }
if (((UnitGetType(lv_itRegenGlobeTarget) == "HeroErik") || (UnitGetType(lv_itRegenGlobeTarget) == "HeroOlaf") || (UnitGetType(lv_itRegenGlobeTarget) == "HeroBaleog"))) {
PlayerGroupAdd(lv_itVikingsPlayerGroup, UnitGetOwner(lv_itRegenGlobeTarget));
}
else {
if (((lv_itRegenGlobeTarget == libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_Vehicle) && ((UnitGetType(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_UnitInsideVehicle) == "HeroErik") || (UnitGetType(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_UnitInsideVehicle) == "HeroOlaf") || (UnitGetType(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_UnitInsideVehicle) == "HeroBaleog")))) {
PlayerGroupAdd(lv_itVikingsPlayerGroup, UnitGetOwner(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_Vehicle));
}
else {
if (((UnitIsValid(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_LinkedVehicle) == true) && (lv_itRegenGlobeTarget == libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_Vehicle) && ((UnitGetType(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_LinkedVehicle)].lv_unit_UnitInsideVehicle) == "HeroErik") || (UnitGetType(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_LinkedVehicle)].lv_unit_UnitInsideVehicle) == "HeroOlaf") || (UnitGetType(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_LinkedVehicle)].lv_unit_UnitInsideVehicle) == "HeroBaleog")))) {
PlayerGroupAdd(lv_itVikingsPlayerGroup, UnitGetOwner(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(lv_itRegenGlobeTarget)].lv_unit_LinkedVehicle));
}
}
}
}
autoF761DB16_g = lv_itVikingsPlayerGroup;
lv_itVikingsPlayer = -1;
while (true) {
lv_itVikingsPlayer = PlayerGroupNextPlayer(autoF761DB16_g, lv_itVikingsPlayer);
if (lv_itVikingsPlayer<0) { break; }
if ((UnitGetType(libGame_gv_players[lv_itVikingsPlayer].lv_heroUnit) == "HeroAbathur")) {
UnitCreateEffectUnit(libGame_gv_players[lv_itVikingsPlayer].lv_activeVehicle, "LostVikingsVikingHoardIncrementTokenCounter", libGame_gv_players[lv_itVikingsPlayer].lv_activeVehicle);
}
else {
autoE5826E76_g = libGame_gv_players[lv_itVikingsPlayer].lv_heroUnitGroup;
autoE5826E76_u = UnitGroupCount(autoE5826E76_g, c_unitCountAll);
for (;; autoE5826E76_u -= 1) {
lv_itVikingPerPlayer = UnitGroupUnitFromEnd(autoE5826E76_g, autoE5826E76_u);
if (lv_itVikingPerPlayer == null) { break; }
UnitCreateEffectUnit(lv_itVikingPerPlayer, "LostVikingsVikingHoardIncrementTokenCounter", lv_itVikingPerPlayer);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsVikingHoard_Init () {
libGDHL_gt_HeroLostVikingsVikingHoard = TriggerCreate("libGDHL_gt_HeroLostVikingsVikingHoard_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingHoard, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLostVikingsVikingHoard, c_playerAny, "LostVikingsVikingHoardDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Spin To Win
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsSpinToWin_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget);
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
if ((lv_player >= 1) && (lv_player <= 10) && (UnitGetType(lv_unit) != "HeroLostVikingsController")) {
UnitCreateEffectUnitWithSource(lv_unit, "LostVikingsSpinToWinSearch", lv_unit, c_gameCatalogAbil, "LostVikingsSpinToWin");
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsSpinToWin_Init () {
libGDHL_gt_HeroLostVikingsSpinToWin = TriggerCreate("libGDHL_gt_HeroLostVikingsSpinToWin_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsSpinToWin, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLostVikingsSpinToWin, c_playerAny, "LostVikingsSpinToWinVikingImpactSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Olaf The Stout
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsOlafTheStout_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup auto066E6ABE_g;
int auto066E6ABE_u;
unit auto066E6ABE_var;
// Conditions
if (testConds) {
if (!((PlayerHero(libGame_gf_HeroGainTalentPlayer()) == "LostVikings"))) {
return false;
}
if (!((PlayerHasTalent(libGame_gf_HeroGainTalentPlayer(), "LostVikingsMasteryOlafTheStout") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto066E6ABE_g = libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnitGroup;
auto066E6ABE_u = UnitGroupCount(auto066E6ABE_g, c_unitCountAll);
for (;; auto066E6ABE_u -= 1) {
auto066E6ABE_var = UnitGroupUnitFromEnd(auto066E6ABE_g, auto066E6ABE_u);
if (auto066E6ABE_var == null) { break; }
if ((UnitGetType(auto066E6ABE_var) == "HeroOlaf")) {
UnitBehaviorAdd(auto066E6ABE_var, "TalentBucketBlockChargedTarget", auto066E6ABE_var, 1);
break;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsOlafTheStout_Init () {
libGDHL_gt_HeroLostVikingsOlafTheStout = TriggerCreate("libGDHL_gt_HeroLostVikingsOlafTheStout_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsOlafTheStout, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroLostVikingsOlafTheStout);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Respawn Timer Expires
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsRespawnTimerExpires_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itLVPlayer;
// Automatic Variable Declarations
const int autoA538AB50_ae = libCore_gv_bALMaxPlayers;
const int autoA538AB50_ai = 1;
timer autoF35FEBDB_val;
// Variable Initialization
// Conditions
if (testConds) {
if (!((libGame_gv_gameOver == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_itLVPlayer = 1;
for ( ; ( (autoA538AB50_ai >= 0 && lv_itLVPlayer <= autoA538AB50_ae) || (autoA538AB50_ai < 0 && lv_itLVPlayer >= autoA538AB50_ae) ) ; lv_itLVPlayer += autoA538AB50_ai ) {
autoF35FEBDB_val = EventTimer();
if (autoF35FEBDB_val == libGDHL_gv_lostVikingsPlayer[lv_itLVPlayer].lv_erikDeathTimer) {
libGDHL_gf_VikingDownRespawnVikingforPlayer(libGDHL_gv_lostVikingsPlayer[lv_itLVPlayer].lv_erik);
break;
}
else if (autoF35FEBDB_val == libGDHL_gv_lostVikingsPlayer[lv_itLVPlayer].lv_baleogDeathTimer) {
libGDHL_gf_VikingDownRespawnVikingforPlayer(libGDHL_gv_lostVikingsPlayer[lv_itLVPlayer].lv_baleog);
break;
}
else if (autoF35FEBDB_val == libGDHL_gv_lostVikingsPlayer[lv_itLVPlayer].lv_olafDeathTimer) {
libGDHL_gf_VikingDownRespawnVikingforPlayer(libGDHL_gv_lostVikingsPlayer[lv_itLVPlayer].lv_olaf);
break;
}
else {
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsRespawnTimerExpires_Init () {
libGDHL_gt_HeroLostVikingsRespawnTimerExpires = TriggerCreate("libGDHL_gt_HeroLostVikingsRespawnTimerExpires_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, false);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[1].lv_erikDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[1].lv_baleogDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[1].lv_olafDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[2].lv_erikDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[2].lv_baleogDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[2].lv_olafDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[3].lv_erikDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[3].lv_baleogDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[3].lv_olafDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[4].lv_erikDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[4].lv_baleogDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[4].lv_olafDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[5].lv_erikDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[5].lv_baleogDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[5].lv_olafDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[6].lv_erikDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[6].lv_baleogDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[6].lv_olafDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[7].lv_erikDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[7].lv_baleogDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[7].lv_olafDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[8].lv_erikDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[8].lv_baleogDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[8].lv_olafDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[9].lv_erikDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[9].lv_baleogDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[9].lv_olafDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[10].lv_erikDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[10].lv_baleogDeathTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsRespawnTimerExpires, libGDHL_gv_lostVikingsPlayer[10].lv_olafDeathTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Spawn
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsSpawn_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_lVPlayer;
unit lv_lVController;
int lv_itLostVikingsPlayer;
// Automatic Variable Declarations
unitgroup auto9ACC1330_g;
int auto9ACC1330_u;
unit auto9ACC1330_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnitCreatedUnit()) == "HeroLostVikingsController"))) {
return false;
}
if (!((UnitGetOwner(EventUnitCreatedUnit()) >= 1))) {
return false;
}
if (!((UnitGetOwner(EventUnitCreatedUnit()) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_lVPlayer = UnitGetOwner(EventUnitCreatedUnit());
lv_lVController = EventUnitCreatedUnit();
AIRemovePlayerUnit(lv_lVController);
UISetSelectionTypeEnabled(PlayerGroupSingle(lv_lVPlayer), c_localSelectionTypeUnknown, true);
UISetDragSelectEnabled(PlayerGroupSingle(lv_lVPlayer), true);
UISetFrameVisible(PlayerGroupSingle(lv_lVPlayer), c_syncFrameTypeControlGroupPanel, true);
UnitControlGroupClear(lv_lVPlayer, 1);
UnitControlGroupClear(lv_lVPlayer, 2);
UnitControlGroupClear(lv_lVPlayer, 3);
UnitControlGroupClear(lv_lVPlayer, 4);
libNtve_gf_CreateUnitsAtPoint2(1, "HeroOlaf", 0, lv_lVPlayer, PointWithOffsetPolar(UnitGetPosition(lv_lVController), 1.5, 240.0), null);
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Add, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
UnitSetFacing(UnitLastCreated(), PointGetFacing(libGame_gv_players[lv_lVPlayer].lv_spawnPoint), 0.0);
UnitGroupAdd(libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup, UnitLastCreated());
AIAddPlayerUnit(UnitLastCreated());
UnitControlGroupAddUnit(lv_lVPlayer, 1, UnitLastCreated());
PathCreateForUnit(libCore_gv_playerGroupFromPlayer[lv_lVPlayer], UnitLastCreated());
PathSetVisible(PathLastCreated(), c_pathLocationWorld, false);
PathSetAbilClassFilter(PathLastCreated(), c_classIdCAbilEffectInstant, c_abilClassFilterExcluded);
PathSetAbilClassFilter(PathLastCreated(), c_classIdCAbilEffectTarget, c_abilClassFilterExcluded);
PathSetAbilClassFilter(PathLastCreated(), c_classIdCAbilArmMagazine, c_abilClassFilterExcluded);
PathSetLineTexture(PathLastCreated(), c_pathLocationAll, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafPath = PathLastCreated();
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olaf = UnitLastCreated();
libNtve_gf_CreateUnitsAtPoint2(1, "HeroBaleog", 0, lv_lVPlayer, PointWithOffsetPolar(UnitGetPosition(lv_lVController), 1.5, 120.0), null);
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Add, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
UnitSetFacing(UnitLastCreated(), PointGetFacing(libGame_gv_players[lv_lVPlayer].lv_spawnPoint), 0.0);
UnitGroupAdd(libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup, UnitLastCreated());
AIAddPlayerUnit(UnitLastCreated());
UnitControlGroupAddUnit(lv_lVPlayer, 2, UnitLastCreated());
PathCreateForUnit(libCore_gv_playerGroupFromPlayer[lv_lVPlayer], UnitLastCreated());
PathSetVisible(PathLastCreated(), c_pathLocationWorld, false);
PathSetAbilClassFilter(PathLastCreated(), c_classIdCAbilEffectInstant, c_abilClassFilterExcluded);
PathSetAbilClassFilter(PathLastCreated(), c_classIdCAbilEffectTarget, c_abilClassFilterExcluded);
PathSetAbilClassFilter(PathLastCreated(), c_classIdCAbilArmMagazine, c_abilClassFilterExcluded);
PathSetLineTexture(PathLastCreated(), c_pathLocationAll, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogPath = PathLastCreated();
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleog = UnitLastCreated();
libNtve_gf_CreateUnitsAtPoint2(1, "HeroErik", 0, lv_lVPlayer, PointWithOffsetPolar(UnitGetPosition(lv_lVController), 1.5, 0.0), null);
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Add, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
UnitSetFacing(UnitLastCreated(), PointGetFacing(libGame_gv_players[lv_lVPlayer].lv_spawnPoint), 0.0);
UnitGroupAdd(libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup, UnitLastCreated());
AIAddPlayerUnit(UnitLastCreated());
UnitControlGroupAddUnit(lv_lVPlayer, 3, UnitLastCreated());
UnitControlGroupAddUnits(lv_lVPlayer, 4, libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup);
UnitControlGroupRemoveUnit(lv_lVPlayer, 4, libGame_gv_players[lv_lVPlayer].lv_heroUnit);
PathCreateForUnit(libCore_gv_playerGroupFromPlayer[lv_lVPlayer], UnitLastCreated());
PathSetVisible(PathLastCreated(), c_pathLocationWorld, false);
PathSetAbilClassFilter(PathLastCreated(), c_classIdCAbilEffectInstant, c_abilClassFilterExcluded);
PathSetAbilClassFilter(PathLastCreated(), c_classIdCAbilEffectTarget, c_abilClassFilterExcluded);
PathSetAbilClassFilter(PathLastCreated(), c_classIdCAbilArmMagazine, c_abilClassFilterExcluded);
PathSetLineTexture(PathLastCreated(), c_pathLocationAll, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikPath = PathLastCreated();
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erik = UnitLastCreated();
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_player = lv_lVPlayer;
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_centerViking = UnitLastCreated();
libGame_gv_players[lv_lVPlayer].lv_cameraCurrentTargetGroup = null;
libGame_gv_players[lv_lVPlayer].lv_cameraPlayerUnitGroupToFocusOn = null;
libGame_gf_CameraUpdateCameraForPlayer(lv_lVPlayer);
libUIUI_gf_UIUnitStatusFramesHookupUnitStatusFramesForPlayer(lv_lVPlayer);
libUIUI_gf_UIPartyFrameSetVikingFrame(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olaf, lv_lVPlayer);
libUIUI_gf_UIPartyFrameSetVikingFrame(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleog, lv_lVPlayer);
libUIUI_gf_UIPartyFrameSetVikingFrame(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erik, lv_lVPlayer);
libUIUI_gf_UIHeroTrackerArrowHookupTrackerArrowsForPlayer(lv_lVPlayer);
libGDHL_gf_LostVikingsUISetupUIForPlayer(lv_lVPlayer);
libGDHL_gf_LostVikingsHeroConsoleUnitStatusBarsSetUnitForBars(lv_lVPlayer);
libGame_gv_players[lv_lVPlayer].lv_soundDeathAlertPrefix = "UI_HeroDeath_LostVikings_";
auto9ACC1330_g = libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup;
auto9ACC1330_u = UnitGroupCount(auto9ACC1330_g, c_unitCountAll);
for (;; auto9ACC1330_u -= 1) {
auto9ACC1330_var = UnitGroupUnitFromEnd(auto9ACC1330_g, auto9ACC1330_u);
if (auto9ACC1330_var == null) { break; }
libNtve_gf_SendActorMessageToUnit(auto9ACC1330_var, "Signal Respawn");
UnitGroupSelect(libNtve_gf_ConvertUnitToUnitGroup(auto9ACC1330_var), lv_lVPlayer, true);
}
UnitGroupSelect(libNtve_gf_ConvertUnitToUnitGroup(libGame_gv_players[lv_lVPlayer].lv_heroUnit), lv_lVPlayer, false);
TriggerEnable(libGDHL_gt_HeroLostVikingsUnitControllerUpdate, true);
TriggerEnable(libGDHL_gt_HeroLostVikingsCheckpointReachedTimerCountdown, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsSpawn_Init () {
libGDHL_gt_HeroLostVikingsSpawn = TriggerCreate("libGDHL_gt_HeroLostVikingsSpawn_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsSpawn, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroLostVikingsSpawn, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Debug Swap
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsDebugSwap_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_lVPlayer;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_lVPlayer = libGame_gf_DebugHeroSwappedPlayer();
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsDebugSwap_Init () {
libGDHL_gt_HeroLostVikingsDebugSwap = TriggerCreate("libGDHL_gt_HeroLostVikingsDebugSwap_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsDebugSwap, false);
libGame_gf_DebugHeroSwapped(libGDHL_gt_HeroLostVikingsDebugSwap);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Viking Dies
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsVikingDies_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_deadUnit;
unitgroup lv_vikingUnitGroupIgnoringController;
int lv_lVPlayer;
int lv_killingPlayer;
playergroup lv_killingTeamGroup;
playergroup lv_killingGroup;
string lv_downedBehavior;
string lv_vikingDeathIcon;
timer lv_vikingDeathTimer;
bool lv_allVikingsDown;
int lv_itViking;
unit lv_itLivingViking;
unitgroup lv_selectedUnits;
unit lv_nearestViking;
// Automatic Variable Declarations
string auto643616C6_val;
unitgroup auto78C4D867_g;
int auto78C4D867_u;
unit auto78C4D867_var;
unitgroup auto0B0A4470_g;
int auto0B0A4470_u;
unit auto0B0A4470_var;
unitgroup autoF6B19C6F_g;
int autoF6B19C6F_u;
const int auto48403D2E_ae = libUIUI_gv_uI_MaxHeroGroupStatusFrames;
const int auto48403D2E_ai = 1;
string auto825968C9_val;
unitgroup auto973DB6EB_g;
int auto973DB6EB_u;
unit auto973DB6EB_var;
// Variable Initialization
lv_deadUnit = EventUnit();
lv_vikingUnitGroupIgnoringController = UnitGroupEmpty();
lv_lVPlayer = EventPlayer();
lv_killingPlayer = libNtve_gf_KillingPlayer();
lv_killingTeamGroup = PlayerGroupEmpty();
lv_killingGroup = PlayerGroupEmpty();
lv_vikingDeathTimer = TimerCreate();
lv_allVikingsDown = true;
lv_selectedUnits = UnitGroupEmpty();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[UnitGetOwner(lv_deadUnit)].lv_heroUnit) != "HeroAbathur"))) {
return false;
}
if (!(((UnitGetType(lv_deadUnit) == "HeroBaleog") || (UnitGetType(lv_deadUnit) == "HeroOlaf") || (UnitGetType(lv_deadUnit) == "HeroErik")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_killingPlayer = libNtve_gf_KillingPlayer();
libGame_gf_SendEventHeroKilled(lv_killingPlayer, lv_deadUnit);
auto643616C6_val = UnitGetType(lv_deadUnit);
if (auto643616C6_val == "HeroErik") {
lv_downedBehavior = "LostVikingsErikDowned";
lv_vikingDeathTimer = libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikDeathTimer;
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_erikDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], "UnitDead");
libNtve_gf_CreateUnitsAtPoint2(1, "EriksGravestone", 0, lv_lVPlayer, PointWithOffsetPolar(libGame_gv_players[lv_lVPlayer].lv_spawnPoint, 1.5, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_respawnPolarOffset), lv_deadUnit);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikGravestone = UnitLastCreated();
UnitControlGroupAddUnit(lv_lVPlayer, 3, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikGravestone);
UnitControlGroupAddUnit(lv_lVPlayer, 4, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikGravestone);
libGDHL_gf_VikingDownGiveCarryBehaviorsToGravestone(lv_deadUnit, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikGravestone);
}
else if (auto643616C6_val == "HeroBaleog") {
lv_downedBehavior = "LostVikingsBaleogDowned";
lv_vikingDeathTimer = libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogDeathTimer;
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_baleogDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], "UnitDead");
libNtve_gf_CreateUnitsAtPoint2(1, "BaleogsGravestone", 0, lv_lVPlayer, PointWithOffsetPolar(libGame_gv_players[lv_lVPlayer].lv_spawnPoint, 1.5, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_respawnPolarOffset), lv_deadUnit);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogGravestone = UnitLastCreated();
UnitControlGroupAddUnit(lv_lVPlayer, 2, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogGravestone);
UnitControlGroupAddUnit(lv_lVPlayer, 4, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogGravestone);
libGDHL_gf_VikingDownGiveCarryBehaviorsToGravestone(lv_deadUnit, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogGravestone);
}
else if (auto643616C6_val == "HeroOlaf") {
lv_downedBehavior = "LostVikingsOlafDowned";
lv_vikingDeathTimer = libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafDeathTimer;
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_olafDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], "UnitDead");
libNtve_gf_CreateUnitsAtPoint2(1, "OlafsGravestone", 0, lv_lVPlayer, PointWithOffsetPolar(libGame_gv_players[lv_lVPlayer].lv_spawnPoint, 1.5, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_respawnPolarOffset), lv_deadUnit);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafGravestone = UnitLastCreated();
UnitControlGroupAddUnit(lv_lVPlayer, 1, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafGravestone);
UnitControlGroupAddUnit(lv_lVPlayer, 4, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafGravestone);
libGDHL_gf_VikingDownGiveCarryBehaviorsToGravestone(lv_deadUnit, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafGravestone);
}
else {
}
auto78C4D867_g = UnitGroupSelected(lv_lVPlayer);
auto78C4D867_u = UnitGroupCount(auto78C4D867_g, c_unitCountAll);
for (;; auto78C4D867_u -= 1) {
auto78C4D867_var = UnitGroupUnitFromEnd(auto78C4D867_g, auto78C4D867_u);
if (auto78C4D867_var == null) { break; }
if ((UnitIsAlive(auto78C4D867_var) == true) && ((auto78C4D867_var == libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olaf) || (auto78C4D867_var == libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erik) || (auto78C4D867_var == libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleog) || (auto78C4D867_var == libGame_gv_players[lv_lVPlayer].lv_activeVehicle))) {
if ((lv_nearestViking == null)) {
lv_nearestViking = auto78C4D867_var;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(auto78C4D867_var), CameraGetTarget(lv_lVPlayer)) < DistanceBetweenPoints(UnitGetPosition(lv_nearestViking), CameraGetTarget(lv_lVPlayer)))) {
lv_nearestViking = auto78C4D867_var;
}
}
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_centerViking = lv_nearestViking;
}
else {
if ((UnitIsSelected(lv_deadUnit, lv_lVPlayer) == true)) {
UnitSelect(UnitLastCreated(), lv_lVPlayer, true);
}
}
}
auto0B0A4470_g = libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup;
auto0B0A4470_u = UnitGroupCount(auto0B0A4470_g, c_unitCountAll);
for (;; auto0B0A4470_u -= 1) {
auto0B0A4470_var = UnitGroupUnitFromEnd(auto0B0A4470_g, auto0B0A4470_u);
if (auto0B0A4470_var == null) { break; }
if ((libNtve_gf_UnitGroupIsDead(libNtve_gf_ConvertUnitToUnitGroup(auto0B0A4470_var)) == false) && (UnitGetType(auto0B0A4470_var) != "HeroLostVikingsController")) {
lv_allVikingsDown = false;
}
}
if ((lv_allVikingsDown == false)) {
UnitGroupAddUnitGroup(lv_vikingUnitGroupIgnoringController, libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup);
UnitGroupRemove(lv_vikingUnitGroupIgnoringController, libGame_gv_players[lv_lVPlayer].lv_heroUnit);
if ((UnitGroupCount(lv_vikingUnitGroupIgnoringController, c_unitCountAlive) == 1)) {
autoF6B19C6F_g = lv_vikingUnitGroupIgnoringController;
autoF6B19C6F_u = UnitGroupCount(autoF6B19C6F_g, c_unitCountAll);
for (;; autoF6B19C6F_u -= 1) {
lv_itLivingViking = UnitGroupUnitFromEnd(autoF6B19C6F_g, autoF6B19C6F_u);
if (lv_itLivingViking == null) { break; }
if ((UnitIsAlive(lv_itLivingViking) == true)) {
libGame_gv_players[lv_lVPlayer].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_itLivingViking);
libGame_gf_CameraUpdateCameraForPlayer(lv_lVPlayer);
}
}
}
}
lv_itViking = 1;
for ( ; ( (auto48403D2E_ai >= 0 && lv_itViking <= auto48403D2E_ae) || (auto48403D2E_ai < 0 && lv_itViking >= auto48403D2E_ae) ) ; lv_itViking += auto48403D2E_ai ) {
if ((libUIUI_gv_uIHeroTrackerArrows.lv_unit[lv_itViking] == lv_deadUnit)) {
auto825968C9_val = UnitGetType(lv_deadUnit);
if (auto825968C9_val == "HeroErik") {
libNtve_gf_SetDialogItemImage(libUIUI_gv_uIHeroTrackerArrows.lv_portraitImage[lv_itViking], "Assets\\Textures\\storm_ui_hud_heromechanic_vikings_dead_erik.dds", libCore_gv_playerGroupFromPlayer[lv_lVPlayer]);
}
else if (auto825968C9_val == "HeroOlaf") {
libNtve_gf_SetDialogItemImage(libUIUI_gv_uIHeroTrackerArrows.lv_portraitImage[lv_itViking], "Assets\\Textures\\storm_ui_hud_heromechanic_vikings_dead_olaf.dds", libCore_gv_playerGroupFromPlayer[lv_lVPlayer]);
}
else if (auto825968C9_val == "HeroBaleog") {
libNtve_gf_SetDialogItemImage(libUIUI_gv_uIHeroTrackerArrows.lv_portraitImage[lv_itViking], "Assets\\Textures\\storm_ui_hud_heromechanic_vikings_dead_baleog.dds", libCore_gv_playerGroupFromPlayer[lv_lVPlayer]);
}
else {
}
break;
}
}
UnitBehaviorAdd(lv_deadUnit, "Dead", lv_deadUnit, 1);
UnitBehaviorAdd(lv_deadUnit, "DeadMechanics", lv_deadUnit, 1);
if ((TimerGetDuration(lv_vikingDeathTimer) > 0.0)) {
UnitBehaviorSetDuration(lv_deadUnit, "Dead", TimerGetRemaining(lv_vikingDeathTimer));
}
else {
UnitSetPropertyFixed(lv_deadUnit, c_unitPropLifePercent, 100.0);
UnitBehaviorSetDuration(lv_deadUnit, "Dead", 0.0);
}
auto973DB6EB_g = libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup;
auto973DB6EB_u = UnitGroupCount(auto973DB6EB_g, c_unitCountAll);
for (;; auto973DB6EB_u -= 1) {
auto973DB6EB_var = UnitGroupUnitFromEnd(auto973DB6EB_g, auto973DB6EB_u);
if (auto973DB6EB_var == null) { break; }
UnitBehaviorAdd(auto973DB6EB_var, lv_downedBehavior, lv_deadUnit, 1);
}
UnitBehaviorAdd(libGame_gv_players[lv_lVPlayer].lv_heroUnit, lv_downedBehavior, lv_deadUnit, 1);
libCore_gf_ClearAllNonpermanentBehaviorsonUnit(lv_deadUnit);
if ((lv_allVikingsDown == true)) {
libGame_gv_players[lv_lVPlayer].lv_isDead = true;
libUIUI_gf_FullscreenOverlaysShowHideDeathOverlay(true, lv_lVPlayer);
libGame_gf_HeroDeathCheckForTeamDominatedAnnouncement(libGame_gf_TeamNumberOfPlayer(lv_lVPlayer));
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_allDeathStatusFrame, libCore_gv_playerGroupFromPlayer[lv_lVPlayer], "UnitDead");
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Add, libGDHL_gv_aIHeroDelegateTokenValueAnyVikingAliveValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroDead);
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueAnyVikingAliveValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
}
lv_vikingDeathIcon = (CatalogFieldValueGet(c_gameCatalogActor, UnitGetType(lv_deadUnit), "HeroIcon", 0));
libUIUI_gf_UIPartyFrameVikingDies(lv_lVPlayer, lv_deadUnit, lv_vikingDeathTimer);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_respawnPolarOffset += 120.0;
if ((libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_checkpointReachedCairn != null)) {
UnitCreateEffectPoint(lv_deadUnit, "LostVikingsPlayAgainTeleport", PointWithOffsetPolar(UnitGetPosition(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_checkpointReachedCairn), 2.5, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_respawnPolarOffset));
Wait(0.0625, c_timeGame);
}
else {
libGDHL_gf_VikingDownStartRespawnTimer(lv_deadUnit, lv_vikingDeathTimer, false, 0.0, UnitGetType(lv_deadUnit));
Wait(0.5, c_timeGame);
if ((libNtve_gf_UnitGroupIsDead(libNtve_gf_ConvertUnitToUnitGroup(lv_deadUnit)) == true)) {
UnitSetPosition(lv_deadUnit, PointWithOffsetPolar(libGame_gv_players[lv_lVPlayer].lv_spawnPoint, 1.5, libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_respawnPolarOffset), false);
}
}
lv_selectedUnits = UnitGroupSelected(lv_lVPlayer);
if ((UnitGroupCount(lv_selectedUnits, c_unitCountAlive) <= 0)) {
if ((libGame_gv_players[lv_lVPlayer].lv_activeVehicle != null)) {
UnitSelect(libGame_gv_players[lv_lVPlayer].lv_activeVehicle, lv_lVPlayer, true);
}
else {
UnitSelect(libGame_gv_players[lv_lVPlayer].lv_heroUnit, lv_lVPlayer, true);
}
}
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Add, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroDead);
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsVikingDies_Init () {
libGDHL_gt_HeroLostVikingsVikingDies = TriggerCreate("libGDHL_gt_HeroLostVikingsVikingDies_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingDies, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroLostVikingsVikingDies, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Viking Removed
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsVikingRemoved_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_lVPlayer;
// Automatic Variable Declarations
string autoE2C695E8_val;
// Variable Initialization
lv_unit = EventUnit();
lv_lVPlayer = EventPlayer();
// Conditions
if (testConds) {
if (!(((UnitGetType(lv_unit) == "HeroBaleog") || (UnitGetType(lv_unit) == "HeroOlaf") || (UnitGetType(lv_unit) == "HeroErik")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoE2C695E8_val = UnitGetType(lv_unit);
if (autoE2C695E8_val == "HeroErik") {
PathDestroy(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikPath);
if ((TimerIsPaused(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikDeathTimer) == true)) {
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
}
else {
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroDead);
}
libNtve_gf_StopTimer(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikDeathTimer);
}
else if (autoE2C695E8_val == "HeroBaleog") {
PathDestroy(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogPath);
if ((TimerIsPaused(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogDeathTimer) == true)) {
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
}
else {
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroDead);
}
libNtve_gf_StopTimer(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogDeathTimer);
}
else if (autoE2C695E8_val == "HeroOlaf") {
PathDestroy(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafPath);
if ((TimerIsPaused(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafDeathTimer) == true)) {
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
}
else {
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueVikingValue, libGame_gf_TeamNumberOfPlayer(lv_lVPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroDead);
}
libNtve_gf_StopTimer(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafDeathTimer);
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsVikingRemoved_Init () {
libGDHL_gt_HeroLostVikingsVikingRemoved = TriggerCreate("libGDHL_gt_HeroLostVikingsVikingRemoved_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingRemoved, false);
TriggerAddEventUnitRemoved(libGDHL_gt_HeroLostVikingsVikingRemoved, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Under Attack Ping
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsUnderAttackPing_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
string autoD6AE5AC0_val;
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((lv_player > 0))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroLostVikingsController"))) {
return false;
}
if (!((UnitIsAlive(lv_unit) == true))) {
return false;
}
if (!((DistanceBetweenPoints(UnitGetPosition(lv_unit), CameraGetTarget(lv_player)) >= libGDHL_gv_data_LostVikingsUIWarningCameraDistance_C))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libNtve_gf_CreatePingFacingAngleWithType(libCore_gv_playerGroupFromPlayer[lv_player], "AssistMePingMinimap", UnitGetPosition(lv_unit), Color(100.00, 100.00, 100.00), 2.0, 270.0, -1, -1);
autoD6AE5AC0_val = UnitGetType(lv_unit);
if (autoD6AE5AC0_val == "HeroErik") {
SoundPlayForPlayer(SoundLink("ErikBase_AI_Caution", c_soundIndexAny), lv_player, libCore_gv_playerGroupFromPlayer[lv_player], 100.0, 0.0);
}
else if (autoD6AE5AC0_val == "HeroBaleog") {
SoundPlayForPlayer(SoundLink("BaleogBase_AI_Caution", c_soundIndexAny), lv_player, libCore_gv_playerGroupFromPlayer[lv_player], 100.0, 0.0);
}
else if (autoD6AE5AC0_val == "HeroOlaf") {
SoundPlayForPlayer(SoundLink("OlafBase_AI_Caution", c_soundIndexAny), lv_player, libCore_gv_playerGroupFromPlayer[lv_player], 100.0, 0.0);
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsUnderAttackPing_Init () {
libGDHL_gt_HeroLostVikingsUnderAttackPing = TriggerCreate("libGDHL_gt_HeroLostVikingsUnderAttackPing_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsUnderAttackPing, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLostVikingsUnderAttackPing, null, "LostVikingsAttackedPingResponse", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Under Attack UI
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsUnderAttackUI_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_sourcePlayer;
unit lv_sourceUnit;
// Automatic Variable Declarations
unit auto426DF74E_val;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_sourcePlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerSource);
lv_sourceUnit = EventPlayerEffectUsedUnit(c_effectUnitSource);
if (((UnitGetType(libGame_gv_players[lv_sourcePlayer].lv_heroUnit) != "HeroLostVikingsController") || (UnitIsAlive(lv_sourceUnit) == false) || (DistanceBetweenPoints(UnitGetPosition(lv_sourceUnit), CameraGetTarget(lv_sourcePlayer)) < libGDHL_gv_data_LostVikingsUIWarningCameraDistance_C))) {
return true;
}
auto426DF74E_val = lv_sourceUnit;
if (auto426DF74E_val == libGDHL_gv_lostVikingsPlayer[lv_sourcePlayer].lv_olaf) {
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_olafUnitStatusFrame, libCore_gv_playerGroupFromPlayer[lv_sourcePlayer], "HPWarningFlash");
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_olafUnselectedIconImage, libCore_gv_playerGroupFromPlayer[lv_sourcePlayer], "HPWarningFlash");
}
else if (auto426DF74E_val == libGDHL_gv_lostVikingsPlayer[lv_sourcePlayer].lv_baleog) {
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_baleogUnitStatusFrame, libCore_gv_playerGroupFromPlayer[lv_sourcePlayer], "HPWarningFlash");
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_baleogUnselectedIconImage, libCore_gv_playerGroupFromPlayer[lv_sourcePlayer], "HPWarningFlash");
}
else if (auto426DF74E_val == libGDHL_gv_lostVikingsPlayer[lv_sourcePlayer].lv_erik) {
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_erikUnitStatusFrame, libCore_gv_playerGroupFromPlayer[lv_sourcePlayer], "HPWarningFlash");
DialogControlSendAnimationEvent(libGDHL_gv_lostVikingsUI.lv_erikUnselectedIconImage, libCore_gv_playerGroupFromPlayer[lv_sourcePlayer], "HPWarningFlash");
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsUnderAttackUI_Init () {
libGDHL_gt_HeroLostVikingsUnderAttackUI = TriggerCreate("libGDHL_gt_HeroLostVikingsUnderAttackUI_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsUnderAttackUI, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLostVikingsUnderAttackUI, c_playerAny, "LostVikingsDamageResponseDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - XP Gain
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsXPGain_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
unitgroup lv_vikingGroup;
int lv_lVPlayer;
unit lv_lVController;
// Automatic Variable Declarations
unitgroup auto147025F9_g;
int auto147025F9_u;
unit auto147025F9_var;
// Variable Initialization
lv_unit = EventUnit();
lv_vikingGroup = UnitGroupEmpty();
lv_lVPlayer = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroLostVikingsController"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_lVPlayer = UnitGetOwner(lv_unit);
auto147025F9_g = libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup;
auto147025F9_u = UnitGroupCount(auto147025F9_g, c_unitCountAll);
for (;; auto147025F9_u -= 1) {
auto147025F9_var = UnitGroupUnitFromEnd(auto147025F9_g, auto147025F9_u);
if (auto147025F9_var == null) { break; }
if ((UnitGetType(auto147025F9_var) != "HeroLostVikingsController")) {
UnitXPAddXP(auto147025F9_var, null, EventUnitXPDelta());
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsXPGain_Init () {
libGDHL_gt_HeroLostVikingsXPGain = TriggerCreate("libGDHL_gt_HeroLostVikingsXPGain_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsXPGain, false);
TriggerAddEventUnitGainExperience(libGDHL_gt_HeroLostVikingsXPGain, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Behavior Talent Gained
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsBehaviorTalentGained_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_lVPlayer;
unit lv_lVController;
int lv_currentTier;
int lv_talentIndexSelected;
int lv_itPlayer;
int lv_itBehavior;
int lv_heroIndex;
unit lv_heroUnit;
int lv_abilityIndex;
int lv_itTier;
int lv_chosenTalentIndex;
// Automatic Variable Declarations
const int autoBE5385BE_ae = 1;
const int autoBE5385BE_ai = -1;
int auto4652AE1C_ae;
const int auto4652AE1C_ai = 1;
unitgroup autoE3580F03_g;
int autoE3580F03_u;
unit autoE3580F03_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnit) == "HeroLostVikingsController"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_lVPlayer = libGame_gf_HeroGainTalentPlayer();
lv_itTier = libCore_gv_talents_MaxTiers_C;
for ( ; ( (autoBE5385BE_ai >= 0 && lv_itTier <= autoBE5385BE_ae) || (autoBE5385BE_ai < 0 && lv_itTier >= autoBE5385BE_ae) ) ; lv_itTier += autoBE5385BE_ai ) {
if ((libGame_gv_talents_TalentChoices[lv_lVPlayer][lv_itTier].lv_selection != 0)) {
lv_currentTier = lv_itTier;
break;
}
}
lv_talentIndexSelected = libGame_gv_talents_TalentChoices[lv_lVPlayer][lv_currentTier].lv_selection;
auto4652AE1C_ae = libGame_gv_talents_TalentChoices[lv_lVPlayer][lv_currentTier].lv_talentData[lv_talentIndexSelected].lv_behaviorCount;
lv_itBehavior = 1;
for ( ; ( (auto4652AE1C_ai >= 0 && lv_itBehavior <= auto4652AE1C_ae) || (auto4652AE1C_ai < 0 && lv_itBehavior >= auto4652AE1C_ae) ) ; lv_itBehavior += auto4652AE1C_ai ) {
autoE3580F03_g = libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup;
autoE3580F03_u = UnitGroupCount(autoE3580F03_g, c_unitCountAll);
for (;; autoE3580F03_u -= 1) {
autoE3580F03_var = UnitGroupUnitFromEnd(autoE3580F03_g, autoE3580F03_u);
if (autoE3580F03_var == null) { break; }
UnitBehaviorAdd(autoE3580F03_var, libGame_gv_talents_TalentChoices[lv_lVPlayer][lv_currentTier].lv_talentData[lv_talentIndexSelected].lv_behaviors[lv_itBehavior], autoE3580F03_var, 1);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsBehaviorTalentGained_Init () {
libGDHL_gt_HeroLostVikingsBehaviorTalentGained = TriggerCreate("libGDHL_gt_HeroLostVikingsBehaviorTalentGained_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsBehaviorTalentGained, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroLostVikingsBehaviorTalentGained);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Unit Controller Update
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsUnitControllerUpdate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itViking;
int lv_itLostVikingsPlayer;
// Automatic Variable Declarations
int autoEF8275DB_ae;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
autoEF8275DB_ae = libCore_gv_bALMaxPlayers;
lv_itLostVikingsPlayer = 1;
for ( ; lv_itLostVikingsPlayer <= autoEF8275DB_ae ; lv_itLostVikingsPlayer += 1 ) {
if ((libGDHL_gv_lostVikingsPlayer[lv_itLostVikingsPlayer].lv_centerViking != null)) {
if ((UnitGetType(libGame_gv_players[lv_itLostVikingsPlayer].lv_heroUnit) == "HeroLostVikingsController")) {
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(lv_itLostVikingsPlayer) == false)) {
if ((UnitIsValid(libGDHL_gv_lostVikingsPlayer[lv_itLostVikingsPlayer].lv_boat) == true)) {
UnitSetPosition(libGame_gv_players[lv_itLostVikingsPlayer].lv_heroUnit, UnitGetPosition(libGDHL_gv_lostVikingsPlayer[lv_itLostVikingsPlayer].lv_boat), false);
continue;
}
if ((UnitIsAlive(libGDHL_gv_lostVikingsPlayer[lv_itLostVikingsPlayer].lv_centerViking) == false)) {
}
}
if ((DistanceBetweenPoints(UnitGetPosition(libGDHL_gv_lostVikingsPlayer[lv_itLostVikingsPlayer].lv_centerViking), UnitGetPosition(libGame_gv_players[lv_itLostVikingsPlayer].lv_heroUnit)) >= 4.0)) {
UnitSetPosition(libGame_gv_players[lv_itLostVikingsPlayer].lv_heroUnit, UnitGetPosition(libGDHL_gv_lostVikingsPlayer[lv_itLostVikingsPlayer].lv_centerViking), false);
}
else {
UnitSetPosition(libGame_gv_players[lv_itLostVikingsPlayer].lv_heroUnit, UnitGetPosition(libGDHL_gv_lostVikingsPlayer[lv_itLostVikingsPlayer].lv_centerViking), true);
}
}
else {
libGDHL_gv_lostVikingsPlayer[lv_itLostVikingsPlayer].lv_centerViking = null;
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsUnitControllerUpdate_Init () {
libGDHL_gt_HeroLostVikingsUnitControllerUpdate = TriggerCreate("libGDHL_gt_HeroLostVikingsUnitControllerUpdate_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsUnitControllerUpdate, false);
TriggerAddEventTimePeriodic(libGDHL_gt_HeroLostVikingsUnitControllerUpdate, 0.0625, c_timeGame);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Moonwell Redistribution
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsMoonwellRedistribution_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
unit lv_moonwell;
unit lv_itHeroUnit;
// Automatic Variable Declarations
unitgroup auto26A09CC5_g;
int auto26A09CC5_u;
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_moonwell = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Conditions
if (testConds) {
if (!(((UnitGetType(lv_unit) == "HeroOlaf") || (UnitGetType(lv_unit) == "HeroErik") || (UnitGetType(lv_unit) == "HeroBaleog")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto26A09CC5_g = libGame_gv_players[UnitGetOwner(lv_unit)].lv_heroUnitGroup;
auto26A09CC5_u = UnitGroupCount(auto26A09CC5_g, c_unitCountAll);
for (;; auto26A09CC5_u -= 1) {
lv_itHeroUnit = UnitGroupUnitFromEnd(auto26A09CC5_g, auto26A09CC5_u);
if (lv_itHeroUnit == null) { break; }
if ((lv_itHeroUnit == libGame_gv_players[UnitGetOwner(lv_unit)].lv_heroUnit)) {
UnitBehaviorAdd(lv_itHeroUnit, "HealingFountainCooldown", lv_moonwell, 1);
continue;
}
if ((lv_itHeroUnit != lv_unit)) {
UnitBehaviorAdd(lv_itHeroUnit, "HealingFountainCooldown", lv_moonwell, 1);
UnitCreateEffectUnit(lv_itHeroUnit, "FountainApplySet", lv_itHeroUnit);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsMoonwellRedistribution_Init () {
libGDHL_gt_HeroLostVikingsMoonwellRedistribution = TriggerCreate("libGDHL_gt_HeroLostVikingsMoonwellRedistribution_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsMoonwellRedistribution, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLostVikingsMoonwellRedistribution, c_playerAny, "MoonwellDrinkStartingSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Viking Enters Stasis
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsVikingEntersStasis_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_vikingsPlayer;
unitgroup lv_vikingsUnitGroup;
unit lv_vikingsUnit;
// Automatic Variable Declarations
unitgroup autoA22E935F_g;
int autoA22E935F_u;
// Variable Initialization
lv_vikingsUnitGroup = UnitGroupEmpty();
// Conditions
if (testConds) {
if (!((UnitIsAlive(EventUnit()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_vikingsPlayer = UnitGetOwner(EventUnit());
if ((lv_vikingsPlayer >= 1) && (lv_vikingsPlayer <= libCore_gv_bALMaxPlayers)) {
if ((libGDHL_gv_lostVikingsPlayer[lv_vikingsPlayer].lv_boat == EventUnit())) {
PlayerPauseAllCooldowns(lv_vikingsPlayer, true);
}
else {
UnitGroupAddUnitGroup(lv_vikingsUnitGroup, libGame_gv_players[lv_vikingsPlayer].lv_heroUnitGroup);
UnitGroupRemove(lv_vikingsUnitGroup, libGame_gv_players[lv_vikingsPlayer].lv_heroUnit);
autoA22E935F_g = lv_vikingsUnitGroup;
autoA22E935F_u = UnitGroupCount(autoA22E935F_g, c_unitCountAll);
for (;; autoA22E935F_u -= 1) {
lv_vikingsUnit = UnitGroupUnitFromEnd(autoA22E935F_g, autoA22E935F_u);
if (lv_vikingsUnit == null) { break; }
if ((libNtve_gf_UnitGroupIsDead(libNtve_gf_ConvertUnitToUnitGroup(lv_vikingsUnit)) == false) && ((UnitFilterMatch(lv_vikingsUnit, lv_vikingsPlayer, UnitFilter(0, 0, 0, (1 << (c_targetFilterStasis - 32)))) == true) || (UnitHasBehavior2(lv_vikingsUnit, "LostVikingsLongboatRaidPoofDisabler") == true) || (UnitHasBehavior2(lv_vikingsUnit, "LongboatRaidHideVikings") == true))) {
return true;
}
}
PlayerPauseAllCooldowns(lv_vikingsPlayer, true);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsVikingEntersStasis_Init () {
libGDHL_gt_HeroLostVikingsVikingEntersStasis = TriggerCreate("libGDHL_gt_HeroLostVikingsVikingEntersStasis_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingEntersStasis, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLostVikingsVikingEntersStasis, null, "LostVikingsStasisController", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Vikings Leaves Stasis
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsVikingsLeavesStasis_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_vikingsPlayer;
unitgroup lv_vikingsUnitGroup;
unit lv_vikingsUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_vikingsUnitGroup = UnitGroupEmpty();
// Actions
if (!runActions) {
return true;
}
lv_vikingsPlayer = UnitGetOwner(EventUnit());
PlayerPauseAllCooldowns(lv_vikingsPlayer, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsVikingsLeavesStasis_Init () {
libGDHL_gt_HeroLostVikingsVikingsLeavesStasis = TriggerCreate("libGDHL_gt_HeroLostVikingsVikingsLeavesStasis_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsVikingsLeavesStasis, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLostVikingsVikingsLeavesStasis, null, "LostVikingsStasisController", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Unit Selected
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsUnitSelected_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_lVPlayer;
unit lv_closestViking;
// Automatic Variable Declarations
unitgroup auto65617B0E_g;
int auto65617B0E_u;
unit auto65617B0E_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventUnit()) == EventPlayer()))) {
return false;
}
if (!((UnitGetType(EventUnit()) != "LongboatRaidBoat"))) {
return false;
}
if (!((UnitGetType(libGame_gv_players[EventPlayer()].lv_heroUnit) == "HeroLostVikingsController"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_lVPlayer = UnitGetOwner(EventUnit());
if ((UnitGroupCount(UnitGroupSelected(lv_lVPlayer), c_unitCountAll) == 1)) {
libGame_gv_players[lv_lVPlayer].lv_cameraPlayerUnitGroupToFocusOn = UnitGroupSelected(lv_lVPlayer);
libGame_gf_CameraUpdateCameraForPlayer(lv_lVPlayer);
}
else {
auto65617B0E_g = UnitGroupSelected(lv_lVPlayer);
auto65617B0E_u = UnitGroupCount(auto65617B0E_g, c_unitCountAll);
for (;; auto65617B0E_u -= 1) {
auto65617B0E_var = UnitGroupUnitFromEnd(auto65617B0E_g, auto65617B0E_u);
if (auto65617B0E_var == null) { break; }
if (((auto65617B0E_var == libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olaf) || (auto65617B0E_var == libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erik) || (auto65617B0E_var == libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleog) || (auto65617B0E_var == libGame_gv_players[lv_lVPlayer].lv_activeVehicle))) {
if ((lv_closestViking == null)) {
lv_closestViking = auto65617B0E_var;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(auto65617B0E_var), CameraGetTarget(lv_lVPlayer)) < DistanceBetweenPoints(UnitGetPosition(lv_closestViking), CameraGetTarget(lv_lVPlayer)))) {
lv_closestViking = auto65617B0E_var;
}
}
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_centerViking = lv_closestViking;
}
}
libGame_gv_players[lv_lVPlayer].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_centerViking);
libGame_gf_CameraUpdateCameraForPlayer(lv_lVPlayer);
}
if ((EventUnit() == libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_longboatCaptain)) {
UnitGroupSelect(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_longboatCrew, UnitGetOwner(EventUnit()), true);
libGame_gv_players[lv_lVPlayer].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_longboatCaptain);
libGame_gf_CameraUpdateCameraForPlayer(lv_lVPlayer);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsUnitSelected_Init () {
libGDHL_gt_HeroLostVikingsUnitSelected = TriggerCreate("libGDHL_gt_HeroLostVikingsUnitSelected_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsUnitSelected, false);
TriggerAddEventUnitSelected(libGDHL_gt_HeroLostVikingsUnitSelected, null, c_playerAny, true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Unit Deselected
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsUnitDeselected_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_closestViking;
// Automatic Variable Declarations
unitgroup auto16A42519_g;
int auto16A42519_u;
unit auto16A42519_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventUnit()) == EventPlayer()))) {
return false;
}
if (!((UnitGetType(EventUnit()) != "LongboatRaidBoat"))) {
return false;
}
if (!((UnitGetType(libGame_gv_players[EventPlayer()].lv_heroUnit) == "HeroLostVikingsController"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayer();
if ((UnitGroupCount(UnitGroupSelected(lv_player), c_unitCountAll) == 1)) {
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = UnitGroupSelected(lv_player);
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
}
else {
auto16A42519_g = UnitGroupSelected(lv_player);
auto16A42519_u = UnitGroupCount(auto16A42519_g, c_unitCountAll);
for (;; auto16A42519_u -= 1) {
auto16A42519_var = UnitGroupUnitFromEnd(auto16A42519_g, auto16A42519_u);
if (auto16A42519_var == null) { break; }
if (((auto16A42519_var == libGDHL_gv_lostVikingsPlayer[lv_player].lv_olaf) || (auto16A42519_var == libGDHL_gv_lostVikingsPlayer[lv_player].lv_erik) || (auto16A42519_var == libGDHL_gv_lostVikingsPlayer[lv_player].lv_baleog) || (auto16A42519_var == libGame_gv_players[lv_player].lv_activeVehicle))) {
if ((lv_closestViking == null)) {
lv_closestViking = auto16A42519_var;
}
else {
if ((DistanceBetweenPoints(UnitGetPosition(auto16A42519_var), CameraGetTarget(lv_player)) < DistanceBetweenPoints(UnitGetPosition(lv_closestViking), CameraGetTarget(lv_player)))) {
lv_closestViking = auto16A42519_var;
}
}
libGDHL_gv_lostVikingsPlayer[lv_player].lv_centerViking = auto16A42519_var;
}
}
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(libGDHL_gv_lostVikingsPlayer[lv_player].lv_centerViking);
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsUnitDeselected_Init () {
libGDHL_gt_HeroLostVikingsUnitDeselected = TriggerCreate("libGDHL_gt_HeroLostVikingsUnitDeselected_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsUnitDeselected, false);
TriggerAddEventUnitSelected(libGDHL_gt_HeroLostVikingsUnitDeselected, null, c_playerAny, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Use Transport
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsUseTransport_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_controlGroup;
int lv_lVPlayer;
unit lv_fakeSelectionVehicle;
unit lv_vikingCargoUnit;
// Automatic Variable Declarations
string auto7EEE3C94_val;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[libGame_gf_HeroEnteredTransportPlayerEntering()].lv_heroUnit) == "HeroLostVikingsController"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_lVPlayer = libGame_gf_HeroEnteredTransportPlayerEntering();
lv_vikingCargoUnit = libGame_gf_HeroEnteredTransportCargoUnit();
libNtve_gf_CreateUnitsWithDefaultFacing(1, "LostVikingsMedivacDummyUnit", 0, lv_lVPlayer, UnitGetPosition(lv_vikingCargoUnit), null);
lv_fakeSelectionVehicle = UnitLastCreated();
auto7EEE3C94_val = UnitGetType(lv_vikingCargoUnit);
if (auto7EEE3C94_val == "HeroOlaf") {
lv_controlGroup = 1;
}
else if (auto7EEE3C94_val == "HeroBaleog") {
lv_controlGroup = 2;
}
else if (auto7EEE3C94_val == "HeroErik") {
lv_controlGroup = 3;
}
else {
}
Wait(0.0625, c_timeGame);
UnitControlGroupAddUnit(lv_lVPlayer, lv_controlGroup, lv_fakeSelectionVehicle);
UnitControlGroupRemoveUnit(lv_lVPlayer, lv_controlGroup, lv_vikingCargoUnit);
UnitControlGroupRemoveUnit(lv_lVPlayer, 4, lv_vikingCargoUnit);
UnitControlGroupAddUnit(lv_lVPlayer, 4, lv_fakeSelectionVehicle);
while ((libNtve_gf_UnitIsInsideTransport(lv_vikingCargoUnit) == true)) {
UnitSetPosition(lv_fakeSelectionVehicle, UnitGetPosition(libGame_gf_HeroEnteredTransportTransport()), true);
Wait(0.0625, c_timeGame);
}
UnitControlGroupRemoveUnit(lv_lVPlayer, lv_controlGroup, lv_fakeSelectionVehicle);
UnitControlGroupAddUnit(lv_lVPlayer, lv_controlGroup, lv_vikingCargoUnit);
UnitControlGroupAddUnit(lv_lVPlayer, 4, lv_vikingCargoUnit);
UnitControlGroupRemoveUnit(lv_lVPlayer, 4, lv_fakeSelectionVehicle);
if ((UnitIsSelected(lv_fakeSelectionVehicle, lv_lVPlayer) == true)) {
UnitSelect(lv_vikingCargoUnit, lv_lVPlayer, true);
}
if ((UnitIsSelected(libGame_gf_HeroEnteredTransportTransport(), lv_lVPlayer) == true)) {
UnitSelect(lv_vikingCargoUnit, lv_lVPlayer, true);
}
UnitRemove(lv_fakeSelectionVehicle);
libGame_gv_players[lv_lVPlayer].lv_cameraCurrentTargetGroup = null;
libGame_gv_players[lv_lVPlayer].lv_cameraPlayerUnitGroupToFocusOn = null;
libGame_gf_CameraUpdateCameraForPlayer(lv_lVPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsUseTransport_Init () {
libGDHL_gt_HeroLostVikingsUseTransport = TriggerCreate("libGDHL_gt_HeroLostVikingsUseTransport_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsUseTransport, false);
libGame_gf_HeroEnteredTransport(libGDHL_gt_HeroLostVikingsUseTransport);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Rally Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsRallyCast_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_lVPlayer;
// Automatic Variable Declarations
string autoFA0FCA6E_val;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_lVPlayer = EventPlayer();
autoFA0FCA6E_val = UnitGetType(EventUnit());
if (autoFA0FCA6E_val == "OlafsGravestone") {
PathCreateForUnit(libCore_gv_playerGroupFromPlayer[lv_lVPlayer], EventUnit());
PathSetVisible(PathLastCreated(), c_pathLocationWorld, true);
PathSetLineTexture(PathLastCreated(), c_pathLocationAll, "Assets\\Textures\\storm_waypointline.dds");
if ((libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafRallyDisplayed == true)) {
PathDestroy(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafDeathRallyDisplay);
}
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafDeathRallyDisplay = PathLastCreated();
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafRallyDisplayed = true;
PathSetVisible(PathLastCreated(), c_pathLocationAll, true);
}
else if (autoFA0FCA6E_val == "EriksGravestone") {
PathCreateForUnit(libCore_gv_playerGroupFromPlayer[lv_lVPlayer], EventUnit());
PathSetVisible(PathLastCreated(), c_pathLocationWorld, true);
PathSetLineTexture(PathLastCreated(), c_pathLocationAll, "Assets\\Textures\\storm_waypointline.dds");
if ((libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikRallyDisplayed == true)) {
PathDestroy(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikDeathRallyDisplay);
}
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikDeathRallyDisplay = PathLastCreated();
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikRallyDisplayed = true;
PathSetVisible(PathLastCreated(), c_pathLocationAll, true);
}
else if (autoFA0FCA6E_val == "BaleogsGravestone") {
PathCreateForUnit(libCore_gv_playerGroupFromPlayer[lv_lVPlayer], EventUnit());
PathSetVisible(PathLastCreated(), c_pathLocationWorld, true);
PathSetLineTexture(PathLastCreated(), c_pathLocationAll, "Assets\\Textures\\storm_waypointline.dds");
if ((libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogRallyDisplayed == true)) {
PathDestroy(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogDeathRallyDisplay);
}
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogDeathRallyDisplay = PathLastCreated();
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogRallyDisplayed = true;
PathSetVisible(PathLastCreated(), c_pathLocationAll, true);
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsRallyCast_Init () {
libGDHL_gt_HeroLostVikingsRallyCast = TriggerCreate("libGDHL_gt_HeroLostVikingsRallyCast_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsRallyCast, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallyCast, null, AbilityCommand("LostVikingsRally", 0), c_unitAbilStageAll, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallyCast, null, AbilityCommand("LostVikingsBaleogRally", 0), c_unitAbilStageAll, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallyCast, null, AbilityCommand("LostVikingsErikRally", 0), c_unitAbilStageAll, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallyCast, null, AbilityCommand("LostVikingsOlafRally", 0), c_unitAbilStageAll, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Rally Finish/Cancel
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsRallyFinishCancel_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_lVPlayer;
// Automatic Variable Declarations
string auto0216BCA1_val;
// Variable Initialization
// Conditions
if (testConds) {
if (!(((UnitGetType(EventUnit()) == "HeroErik") || (UnitGetType(EventUnit()) == "HeroOlaf") || (UnitGetType(EventUnit()) == "HeroBaleog")))) {
return false;
}
if (!((EventUnitAbility() != AbilityCommand("LostVikingsRally", 0)))) {
return false;
}
if (!((EventUnitAbility() != AbilityCommand("LostVikingsBaleogRally", 0)))) {
return false;
}
if (!((EventUnitAbility() != AbilityCommand("LostVikingsOlafRally", 0)))) {
return false;
}
if (!((EventUnitAbility() != AbilityCommand("LostVikingsErikRally", 0)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_lVPlayer = UnitGetOwner(EventUnit());
auto0216BCA1_val = UnitGetType(EventUnit());
if (auto0216BCA1_val == "HeroOlaf") {
if ((libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafRallyDisplayed == true)) {
PathSetVisible(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafDeathRallyDisplay, c_pathLocationWorld, false);
PathDestroy(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafDeathRallyDisplay);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_olafRallyDisplayed = false;
}
}
else if (auto0216BCA1_val == "HeroErik") {
if ((libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikRallyDisplayed == true)) {
PathSetVisible(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikDeathRallyDisplay, c_pathLocationWorld, false);
PathDestroy(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikDeathRallyDisplay);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_erikRallyDisplayed = false;
}
}
else if (auto0216BCA1_val == "HeroBaleog") {
if ((libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogRallyDisplayed == true)) {
PathSetVisible(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogDeathRallyDisplay, c_pathLocationWorld, false);
PathDestroy(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogDeathRallyDisplay);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_baleogRallyDisplayed = false;
}
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsRallyFinishCancel_Init () {
libGDHL_gt_HeroLostVikingsRallyFinishCancel = TriggerCreate("libGDHL_gt_HeroLostVikingsRallyFinishCancel_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsRallyFinishCancel, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallyFinishCancel, null, null, c_unitAbilStageAll, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Rally Sounds
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsRallySounds_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((EventUnitTargetPoint() != null)) {
UnitCreateEffectPoint(EventUnit(), "LostVikingsRallyPointDummyEffectForSound", EventUnitTargetPoint());
}
else {
UnitCreateEffectUnit(EventUnit(), "LostVikingsRallyPointDummyEffectForSound", EventUnitTargetUnit());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsRallySounds_Init () {
libGDHL_gt_HeroLostVikingsRallySounds = TriggerCreate("libGDHL_gt_HeroLostVikingsRallySounds_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsRallySounds, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallySounds, null, AbilityCommand("LostVikingsOlafRally", 0), c_unitAbilStageExecute, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallySounds, null, AbilityCommand("LostVikingsErikRally", 0), c_unitAbilStageExecute, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallySounds, null, AbilityCommand("LostVikingsBaleogRally", 0), c_unitAbilStageExecute, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallySounds, null, AbilityCommand("LostVikingsOlafRally", 0), c_unitAbilStageQueue, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallySounds, null, AbilityCommand("LostVikingsErikRally", 0), c_unitAbilStageQueue, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroLostVikingsRallySounds, null, AbilityCommand("LostVikingsBaleogRally", 0), c_unitAbilStageQueue, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Play Again Complete
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsPlayAgainComplete_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_ghostErikPoint;
fixed lv_ghostErikFacing;
bool lv_ghostErikValidTeleport;
point lv_ghostOlafPoint;
fixed lv_ghostOlafFacing;
bool lv_ghostOlafValidTeleport;
point lv_ghostBaleogPoint;
fixed lv_ghostBaleogFacing;
bool lv_ghostBaleogValidTeleport;
int lv_lVPlayer;
int lv_itViking;
unit lv_summonerViking;
unit lv_cairn;
fixed lv_polarMove;
// Automatic Variable Declarations
unitgroup autoD2D78B82_g;
int autoD2D78B82_u;
unit autoD2D78B82_var;
unitgroup auto00C7DBE2_g;
int auto00C7DBE2_u;
unit auto00C7DBE2_var;
unitgroup auto0C1C0C15_g;
int auto0C1C0C15_u;
unit auto0C1C0C15_var;
unitgroup autoF53F4DE6_g;
int autoF53F4DE6_u;
unit autoF53F4DE6_var;
const int auto0981DBD7_ae = libUIUI_gv_uI_MaxHeroGroupStatusFrames;
const int auto0981DBD7_ai = 1;
unitgroup auto05EC66D6_g;
int auto05EC66D6_u;
unit auto05EC66D6_var;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_summonerViking = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_lVPlayer = UnitGetOwner(lv_summonerViking);
lv_cairn = UnitGroupUnit(UnitGroup("LostVikingsPlayAgainCairn", lv_lVPlayer, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1), 1);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_respawnPolarOffset = (UnitGetFacing(lv_summonerViking) - 180.0);
autoD2D78B82_g = UnitGroup("ErikPlayAgainGhost", lv_lVPlayer, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoD2D78B82_u = UnitGroupCount(autoD2D78B82_g, c_unitCountAll);
for (;; autoD2D78B82_u -= 1) {
autoD2D78B82_var = UnitGroupUnitFromEnd(autoD2D78B82_g, autoD2D78B82_u);
if (autoD2D78B82_var == null) { break; }
lv_ghostErikPoint = UnitGetPosition(autoD2D78B82_var);
lv_ghostErikFacing = UnitGetFacing(autoD2D78B82_var);
if ((UnitBehaviorCount(autoD2D78B82_var, "LostVikingsPlayAgainTeleportConfirmation") == 1) && (UnitBehaviorCount(autoD2D78B82_var, "LostVikingsPlayAgainSuppressResurrection") == 0)) {
lv_ghostErikValidTeleport = true;
}
}
auto00C7DBE2_g = UnitGroup("OlafPlayAgainGhost", lv_lVPlayer, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto00C7DBE2_u = UnitGroupCount(auto00C7DBE2_g, c_unitCountAll);
for (;; auto00C7DBE2_u -= 1) {
auto00C7DBE2_var = UnitGroupUnitFromEnd(auto00C7DBE2_g, auto00C7DBE2_u);
if (auto00C7DBE2_var == null) { break; }
lv_ghostOlafPoint = UnitGetPosition(auto00C7DBE2_var);
lv_ghostOlafFacing = UnitGetFacing(auto00C7DBE2_var);
if ((UnitBehaviorCount(auto00C7DBE2_var, "LostVikingsPlayAgainTeleportConfirmation") == 1) && (UnitBehaviorCount(auto00C7DBE2_var, "LostVikingsPlayAgainSuppressResurrection") == 0)) {
lv_ghostOlafValidTeleport = true;
}
}
auto0C1C0C15_g = UnitGroup("BaleogPlayAgainGhost", lv_lVPlayer, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto0C1C0C15_u = UnitGroupCount(auto0C1C0C15_g, c_unitCountAll);
for (;; auto0C1C0C15_u -= 1) {
auto0C1C0C15_var = UnitGroupUnitFromEnd(auto0C1C0C15_g, auto0C1C0C15_u);
if (auto0C1C0C15_var == null) { break; }
lv_ghostBaleogPoint = UnitGetPosition(auto0C1C0C15_var);
lv_ghostBaleogFacing = UnitGetFacing(auto0C1C0C15_var);
if ((UnitBehaviorCount(auto0C1C0C15_var, "LostVikingsPlayAgainTeleportConfirmation") == 1) && (UnitBehaviorCount(auto0C1C0C15_var, "LostVikingsPlayAgainSuppressResurrection") == 0)) {
lv_ghostBaleogValidTeleport = true;
}
}
if ((UnitBehaviorCount(lv_summonerViking, "LostVikingsCheckpointReachedCarry") >= 1)) {
UnitBehaviorAdd(lv_cairn, "LostVikingsPlayAgainCheckpointReachedCairnBehavior", lv_cairn, 1);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_checkpointReachedDeathTimerActive = true;
TimerStart(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_checkpointReachedCarinRespawnTimer, UnitBehaviorDuration(lv_cairn, "LostVikingsPlayAgainCheckpointReachedCairnBehavior"), false, c_timeGame);
TextTagCreate(IntToText(FixedToInt(TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_checkpointReachedCarinRespawnTimer))), 24, UnitGetPosition(lv_cairn), 1.0, true, true, PlayerGroupAll());
TextTagShow(TextTagLastCreated(), PlayerGroupAll(), true);
TextTagSetFogVisibility(TextTagLastCreated(), c_visTypeFog);
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_checkpointReachedCarinRespawnTextTag = TextTagLastCreated();
libGDHL_gv_lostVikingsPlayer[lv_lVPlayer].lv_checkpointReachedCairn = lv_cairn;
}
autoF53F4DE6_g = libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup;
autoF53F4DE6_u = UnitGroupCount(autoF53F4DE6_g, c_unitCountAll);
for (;; autoF53F4DE6_u -= 1) {
autoF53F4DE6_var = UnitGroupUnitFromEnd(autoF53F4DE6_g, autoF53F4DE6_u);
if (autoF53F4DE6_var == null) { break; }
if ((autoF53F4DE6_var != lv_summonerViking) && (autoF53F4DE6_var != libGame_gv_players[lv_lVPlayer].lv_heroUnit) && (UnitBehaviorCount(autoF53F4DE6_var, "LostVikingsPlayAgainSuppressResurrection") == 0)) {
lv_itViking = 1;
for ( ; ( (auto0981DBD7_ai >= 0 && lv_itViking <= auto0981DBD7_ae) || (auto0981DBD7_ai < 0 && lv_itViking >= auto0981DBD7_ae) ) ; lv_itViking += auto0981DBD7_ai ) {
if ((libUIUI_gv_uIHeroTrackerArrows.lv_unit[lv_itViking] == autoF53F4DE6_var)) {
libNtve_gf_SetDialogItemImage(libUIUI_gv_uIHeroTrackerArrows.lv_portraitImage[lv_itViking], (CatalogFieldValueGet(c_gameCatalogActor, UnitGetType(autoF53F4DE6_var), "HeroIcon", lv_lVPlayer)), libCore_gv_playerGroupFromPlayer[lv_lVPlayer]);
}
}
if ((UnitGetType(autoF53F4DE6_var) == "HeroErik") && (lv_ghostErikValidTeleport == true)) {
UnitCreateEffectUnit(autoF53F4DE6_var, "CleanseDebuffsUnstoppable", autoF53F4DE6_var);
UnitCreateEffectUnit(autoF53F4DE6_var, "LostVikingsPlayAgainCleanseDoTsAndBlinds", autoF53F4DE6_var);
libGDHL_gf_HeroLostVikingsPlayAgainTeleportViking(autoF53F4DE6_var, lv_ghostErikPoint);
UnitSetFacing(autoF53F4DE6_var, lv_ghostErikFacing, 0.0);
libNtve_gf_SendActorMessageToUnit(autoF53F4DE6_var, "AnimPlay Spell Spell,C 0 0.000000");
UnitIssueOrder(autoF53F4DE6_var, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
if ((libNtve_gf_UnitGroupIsDead(libNtve_gf_ConvertUnitToUnitGroup(autoF53F4DE6_var)) == true)) {
libGDHL_gf_VikingDownRespawnVikingforPlayer(autoF53F4DE6_var);
}
}
else if ((UnitGetType(autoF53F4DE6_var) == "HeroOlaf") && (lv_ghostOlafValidTeleport == true)) {
UnitCreateEffectUnit(autoF53F4DE6_var, "CleanseDebuffsUnstoppable", autoF53F4DE6_var);
UnitCreateEffectUnit(autoF53F4DE6_var, "LostVikingsPlayAgainCleanseDoTsAndBlinds", autoF53F4DE6_var);
libGDHL_gf_HeroLostVikingsPlayAgainTeleportViking(autoF53F4DE6_var, lv_ghostOlafPoint);
UnitSetFacing(autoF53F4DE6_var, lv_ghostOlafFacing, 0.0);
libNtve_gf_SendActorMessageToUnit(autoF53F4DE6_var, "AnimPlay Spell Spell,C 0 0.000000");
UnitIssueOrder(autoF53F4DE6_var, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
if ((libNtve_gf_UnitGroupIsDead(libNtve_gf_ConvertUnitToUnitGroup(autoF53F4DE6_var)) == true)) {
libGDHL_gf_VikingDownRespawnVikingforPlayer(autoF53F4DE6_var);
}
}
else if ((UnitGetType(autoF53F4DE6_var) == "HeroBaleog") && (lv_ghostBaleogValidTeleport == true)) {
UnitCreateEffectUnit(autoF53F4DE6_var, "CleanseDebuffsUnstoppable", autoF53F4DE6_var);
UnitCreateEffectUnit(autoF53F4DE6_var, "LostVikingsPlayAgainCleanseDoTsAndBlinds", autoF53F4DE6_var);
libGDHL_gf_HeroLostVikingsPlayAgainTeleportViking(autoF53F4DE6_var, lv_ghostBaleogPoint);
UnitSetFacing(autoF53F4DE6_var, lv_ghostBaleogFacing, 0.0);
libNtve_gf_SendActorMessageToUnit(autoF53F4DE6_var, "AnimPlay Spell Spell,C 0 0.000000");
UnitIssueOrder(autoF53F4DE6_var, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
if ((libNtve_gf_UnitGroupIsDead(libNtve_gf_ConvertUnitToUnitGroup(autoF53F4DE6_var)) == true)) {
libGDHL_gf_VikingDownRespawnVikingforPlayer(autoF53F4DE6_var);
}
}
}
if ((UnitBehaviorCount(autoF53F4DE6_var, "LostVikingsPlayAgainSuppressResurrection") == 0)) {
UnitSelect(autoF53F4DE6_var, lv_lVPlayer, true);
UnitBehaviorRemove(autoF53F4DE6_var, "LostVikingsErikDowned", 1);
UnitBehaviorRemove(autoF53F4DE6_var, "LostVikingsBaleogDowned", 1);
UnitBehaviorRemove(autoF53F4DE6_var, "LostVikingsOlafDowned", 1);
}
}
auto05EC66D6_g = libGame_gv_players[lv_lVPlayer].lv_heroUnitGroup;
auto05EC66D6_u = UnitGroupCount(auto05EC66D6_g, c_unitCountAll);
for (;; auto05EC66D6_u -= 1) {
auto05EC66D6_var = UnitGroupUnitFromEnd(auto05EC66D6_g, auto05EC66D6_u);
if (auto05EC66D6_var == null) { break; }
if ((UnitGetType(auto05EC66D6_var) != "HeroLostVikingsController") && (UnitBehaviorCount(auto05EC66D6_var, "LostVikingsPlayAgainSuppressResurrection") == 0)) {
UnitCreateEffectUnitWithSource(auto05EC66D6_var, "LostVikingsPlayAgainCreateHealer", auto05EC66D6_var, c_gameCatalogAbil, "LostVikingsPlayAgain");
}
}
libUIUI_gf_FullscreenOverlaysShowHideDeathOverlay(false, lv_lVPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsPlayAgainComplete_Init () {
libGDHL_gt_HeroLostVikingsPlayAgainComplete = TriggerCreate("libGDHL_gt_HeroLostVikingsPlayAgainComplete_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsPlayAgainComplete, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLostVikingsPlayAgainComplete, c_playerAny, "LostVikingsPlayAgainFinalSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Play Again Force Ghost Facing/Placement
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsPlayAgainForceGhostFacingPlacement_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_movePoint;
unit lv_cairn;
fixed lv_offsetAngle;
string lv_vikingType;
// Automatic Variable Declarations
unitgroup autoBE04F5F3_g;
int autoBE04F5F3_u;
unit autoBE04F5F3_var;
string auto76FD89A8_val;
// Variable Initialization
// Conditions
if (testConds) {
if (!(((UnitGetType(EventUnitCreatedUnit()) == "BaleogPlayAgainGhost") || (UnitGetType(EventUnitCreatedUnit()) == "ErikPlayAgainGhost") || (UnitGetType(EventUnitCreatedUnit()) == "OlafPlayAgainGhost")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoBE04F5F3_g = UnitGroup("LostVikingsPlayAgainCairn", UnitGetOwner(EventUnit()), RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1);
autoBE04F5F3_u = UnitGroupCount(autoBE04F5F3_g, c_unitCountAll);
for (;; autoBE04F5F3_u -= 1) {
autoBE04F5F3_var = UnitGroupUnitFromEnd(autoBE04F5F3_g, autoBE04F5F3_u);
if (autoBE04F5F3_var == null) { break; }
lv_cairn = autoBE04F5F3_var;
}
auto76FD89A8_val = UnitGetType(EventUnit());
if (auto76FD89A8_val == "HeroBaleog") {
if ((UnitGetType(EventUnitCreatedUnit()) == "OlafPlayAgainGhost")) {
lv_offsetAngle = 120.0;
lv_vikingType = "HeroOlaf";
}
else if ((UnitGetType(EventUnitCreatedUnit()) == "ErikPlayAgainGhost")) {
lv_offsetAngle = -120.0;
lv_vikingType = "HeroErik";
}
}
else if (auto76FD89A8_val == "HeroErik") {
if ((UnitGetType(EventUnitCreatedUnit()) == "BaleogPlayAgainGhost")) {
lv_offsetAngle = 120.0;
lv_vikingType = "HeroBaleog";
}
else if ((UnitGetType(EventUnitCreatedUnit()) == "OlafPlayAgainGhost")) {
lv_offsetAngle = -120.0;
lv_vikingType = "HeroOlaf";
}
}
else if (auto76FD89A8_val == "HeroOlaf") {
if ((UnitGetType(EventUnitCreatedUnit()) == "ErikPlayAgainGhost")) {
lv_offsetAngle = 120.0;
lv_vikingType = "HeroErik";
}
else if ((UnitGetType(EventUnitCreatedUnit()) == "BaleogPlayAgainGhost")) {
lv_offsetAngle = -120.0;
lv_vikingType = "HeroBaleog";
}
}
else {
}
lv_movePoint = PointWithOffsetPolar(UnitTypePlacementFromPoint(lv_vikingType, UnitGetOwner(EventUnit()), UnitGetPosition(lv_cairn), 3.0), DistanceBetweenPoints(UnitGetPosition(lv_cairn), UnitGetPosition(EventUnit())), (AngleBetweenPoints(UnitGetPosition(lv_cairn), UnitGetPosition(EventUnit())) + lv_offsetAngle));
libStEx_gf_MoveUnit(EventUnitCreatedUnit(), lv_movePoint, false);
libNtve_gf_MakeUnitFacePoint(EventUnitCreatedUnit(), UnitGetPosition(lv_cairn), 0.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsPlayAgainForceGhostFacingPlacement_Init () {
libGDHL_gt_HeroLostVikingsPlayAgainForceGhostFacingPlacement = TriggerCreate("libGDHL_gt_HeroLostVikingsPlayAgainForceGhostFacingPlacement_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsPlayAgainForceGhostFacingPlacement, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroLostVikingsPlayAgainForceGhostFacingPlacement, null, "LostVikingsPlayAgain", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Checkpoint Timer Pause in Time Stop
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsCheckpointTimerPauseinTimeStop_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
unit lv_cairn;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "LostVikingsPlayAgainCairn"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_cairn = EventUnit();
lv_itPlayer = UnitGetOwner(lv_cairn);
if ((EventUnitBehaviorChange() == c_unitBehaviorChangeActivate) && (TimerIsPaused(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCarinRespawnTimer) == false)) {
TimerPause(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCarinRespawnTimer, true);
}
if ((EventUnitBehaviorChange() == c_unitBehaviorChangeDeactivate) && (TimerIsPaused(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCarinRespawnTimer) == true)) {
TimerPause(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCarinRespawnTimer, false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsCheckpointTimerPauseinTimeStop_Init () {
libGDHL_gt_HeroLostVikingsCheckpointTimerPauseinTimeStop = TriggerCreate("libGDHL_gt_HeroLostVikingsCheckpointTimerPauseinTimeStop_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsCheckpointTimerPauseinTimeStop, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroLostVikingsCheckpointTimerPauseinTimeStop, null, c_behaviorCategoryTimeStop, c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroLostVikingsCheckpointTimerPauseinTimeStop, null, c_behaviorCategoryTimeStop, c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Checkpoint Reached Timer Countdown
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsCheckpointReachedTimerCountdown_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
const int autoF7D0772B_ae = libCore_gv_bALMaxPlayers;
const int autoF7D0772B_ai = 1;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_itPlayer = 1;
for ( ; ( (autoF7D0772B_ai >= 0 && lv_itPlayer <= autoF7D0772B_ae) || (autoF7D0772B_ai < 0 && lv_itPlayer >= autoF7D0772B_ae) ) ; lv_itPlayer += autoF7D0772B_ai ) {
if ((UnitGetType(libGame_gv_players[lv_itPlayer].lv_heroUnit) == "HeroLostVikingsController") && (libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedDeathTimerActive == true) && (libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCarinRespawnTextTag != c_textTagNone)) {
if ((TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCarinRespawnTimer) > 0.0)) {
TextTagSetText(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCarinRespawnTextTag, IntToText(FixedToInt(TimerGetRemaining(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCarinRespawnTimer))));
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsCheckpointReachedTimerCountdown_Init () {
libGDHL_gt_HeroLostVikingsCheckpointReachedTimerCountdown = TriggerCreate("libGDHL_gt_HeroLostVikingsCheckpointReachedTimerCountdown_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsCheckpointReachedTimerCountdown, false);
TriggerAddEventTimePeriodic(libGDHL_gt_HeroLostVikingsCheckpointReachedTimerCountdown, 1.0, c_timeGame);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Checkpoint Reach Timer Expires
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
int lv_itViking;
unit lv_cairn;
fixed lv_polarMove;
// Automatic Variable Declarations
const int autoE81687E9_ae = libCore_gv_bALMaxPlayers;
const int autoE81687E9_ai = 1;
unitgroup autoF6B97AA2_g;
int autoF6B97AA2_u;
unit autoF6B97AA2_var;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_itPlayer = 1;
for ( ; ( (autoE81687E9_ai >= 0 && lv_itPlayer <= autoE81687E9_ae) || (autoE81687E9_ai < 0 && lv_itPlayer >= autoE81687E9_ae) ) ; lv_itPlayer += autoE81687E9_ai ) {
if ((libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCarinRespawnTimer == EventTimer())) {
TextTagDestroy(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCarinRespawnTextTag);
autoF6B97AA2_g = libGame_gv_players[lv_itPlayer].lv_heroUnitGroup;
autoF6B97AA2_u = UnitGroupCount(autoF6B97AA2_g, c_unitCountAll);
for (;; autoF6B97AA2_u -= 1) {
autoF6B97AA2_var = UnitGroupUnitFromEnd(autoF6B97AA2_g, autoF6B97AA2_u);
if (autoF6B97AA2_var == null) { break; }
UnitBehaviorRemove(autoF6B97AA2_var, "LostVikingsVikingDowned", 1);
UnitBehaviorRemove(autoF6B97AA2_var, "LostVikingsErikDowned", 1);
UnitBehaviorRemove(autoF6B97AA2_var, "LostVikingsBaleogDowned", 1);
UnitBehaviorRemove(autoF6B97AA2_var, "LostVikingsOlafDowned", 1);
if ((libNtve_gf_UnitGroupIsDead(libNtve_gf_ConvertUnitToUnitGroup(autoF6B97AA2_var)) == true)) {
libGDHL_gf_VikingDownRespawnVikingforPlayer(autoF6B97AA2_var);
UnitSelect(autoF6B97AA2_var, lv_itPlayer, true);
}
UnitCreateEffectUnit(autoF6B97AA2_var, "LostVikingsCheckpointReachedCreateHealer", autoF6B97AA2_var);
}
TimerPause(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_olafDeathTimer, true);
TimerPause(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_erikDeathTimer, true);
TimerPause(libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_baleogDeathTimer, true);
libUIUI_gf_FullscreenOverlaysShowHideDeathOverlay(false, lv_itPlayer);
libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedCairn = null;
libGDHL_gv_lostVikingsPlayer[lv_itPlayer].lv_checkpointReachedDeathTimerActive = false;
break;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires_Init () {
libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires = TriggerCreate("libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, false);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, libGDHL_gv_lostVikingsPlayer[1].lv_checkpointReachedCarinRespawnTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, libGDHL_gv_lostVikingsPlayer[2].lv_checkpointReachedCarinRespawnTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, libGDHL_gv_lostVikingsPlayer[3].lv_checkpointReachedCarinRespawnTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, libGDHL_gv_lostVikingsPlayer[4].lv_checkpointReachedCarinRespawnTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, libGDHL_gv_lostVikingsPlayer[5].lv_checkpointReachedCarinRespawnTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, libGDHL_gv_lostVikingsPlayer[6].lv_checkpointReachedCarinRespawnTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, libGDHL_gv_lostVikingsPlayer[7].lv_checkpointReachedCarinRespawnTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, libGDHL_gv_lostVikingsPlayer[8].lv_checkpointReachedCarinRespawnTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, libGDHL_gv_lostVikingsPlayer[9].lv_checkpointReachedCarinRespawnTimer);
TriggerAddEventTimer(libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires, libGDHL_gv_lostVikingsPlayer[10].lv_checkpointReachedCarinRespawnTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Longboat Raid Selection
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsLongboatRaidSelection_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_erik;
bool lv_erikLoaded;
unit lv_baleog;
bool lv_baleogLoaded;
unit lv_olaf;
bool lv_olafLoaded;
unit lv_boat;
int lv_player;
// Automatic Variable Declarations
unitgroup auto3C20B553_g;
int auto3C20B553_u;
unit auto3C20B553_var;
unitgroup autoF93DF35C_g;
int autoF93DF35C_u;
unit autoF93DF35C_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "LongboatRaidBoat"))) {
return false;
}
if (!((UnitGetType(libGame_gv_players[UnitGetOwner(EventUnit())].lv_heroUnit) != "HeroAbathur"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_boat = EventUnit();
lv_player = UnitGetOwner(lv_boat);
libGDHL_gv_lostVikingsPlayer[lv_player].lv_boat = lv_boat;
UISetFrameVisible(libCore_gv_playerGroupFromPlayer[lv_player], c_syncFrameTypeControlGroupPanel, false);
libUIUI_gf_HeroConsoleUnitStatusBarsSetUnitForBars(lv_boat, lv_player);
libUIUI_gf_HeroConsoleUnitStatusBarsSetChannelBehaviorForBehaviorChannelBar(lv_player, EventUnitBehavior());
libUIUI_gf_UIUnitStatusFramesUpdateUnitStatusFramesForUnit(lv_player, lv_boat);
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_boat);
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
UnitGroupSelect(UnitGroupSelected(lv_player), lv_player, false);
UnitSelect(lv_boat, lv_player, true);
auto3C20B553_g = libGame_gv_players[lv_player].lv_heroUnitGroup;
auto3C20B553_u = UnitGroupCount(auto3C20B553_g, c_unitCountAll);
for (;; auto3C20B553_u -= 1) {
auto3C20B553_var = UnitGroupUnitFromEnd(auto3C20B553_g, auto3C20B553_u);
if (auto3C20B553_var == null) { break; }
if ((UnitBehaviorCount(auto3C20B553_var, "LostVikingsLongboatRaidPoofDisabler") == 1)) {
if ((UnitGetType(auto3C20B553_var) == "HeroOlaf")) {
lv_olafLoaded = true;
lv_olaf = auto3C20B553_var;
UnitGroupAdd(libGDHL_gv_lostVikingsPlayer[UnitGetOwner(EventUnit())].lv_longboatCrew, auto3C20B553_var);
}
else if ((UnitGetType(auto3C20B553_var) == "HeroErik")) {
lv_erikLoaded = true;
lv_erik = auto3C20B553_var;
UnitGroupAdd(libGDHL_gv_lostVikingsPlayer[UnitGetOwner(EventUnit())].lv_longboatCrew, auto3C20B553_var);
}
else if ((UnitGetType(auto3C20B553_var) == "HeroBaleog")) {
lv_baleogLoaded = true;
lv_baleog = auto3C20B553_var;
UnitGroupAdd(libGDHL_gv_lostVikingsPlayer[UnitGetOwner(EventUnit())].lv_longboatCrew, auto3C20B553_var);
}
}
else {
if ((UnitGetType(auto3C20B553_var) == "HeroOlaf")) {
lv_olaf = auto3C20B553_var;
}
else if ((UnitGetType(auto3C20B553_var) == "HeroErik")) {
lv_erik = auto3C20B553_var;
}
else if ((UnitGetType(auto3C20B553_var) == "HeroBaleog")) {
lv_baleog = auto3C20B553_var;
}
}
}
AIAddPlayerUnit(lv_boat);
if ((lv_olafLoaded == true)) {
AIRemovePlayerUnit(lv_olaf);
UnitControlGroupRemoveUnit(lv_player, 1, lv_olaf);
UnitControlGroupAddUnit(lv_player, 1, lv_boat);
UnitControlGroupAddUnit(lv_player, 4, lv_boat);
}
if ((lv_erikLoaded == true)) {
AIRemovePlayerUnit(lv_erik);
UnitControlGroupRemoveUnit(lv_player, 3, lv_erik);
UnitControlGroupAddUnit(lv_player, 3, lv_boat);
UnitControlGroupAddUnit(lv_player, 4, lv_boat);
}
if ((lv_baleogLoaded == true)) {
AIRemovePlayerUnit(lv_baleog);
UnitControlGroupRemoveUnit(lv_player, 2, lv_baleog);
UnitControlGroupAddUnit(lv_player, 2, lv_boat);
UnitControlGroupAddUnit(lv_player, 4, lv_boat);
}
if (((libCore_gf_ActorStoredForUnit(lv_erik, 1) != null) || (libCore_gf_ActorStoredForUnit(lv_olaf, 1) != null) || (libCore_gf_ActorStoredForUnit(lv_baleog, 1) != null))) {
libNtve_gf_AttachActorToUnit(lv_boat, "GenericHeroLight", "Ref_Origin");
libCore_gf_StoreActorForUnit(lv_boat, 1, libNtve_gf_ActorLastCreated());
}
autoF93DF35C_g = libGDHL_gv_lostVikingsPlayer[lv_player].lv_longboatCrew;
autoF93DF35C_u = UnitGroupCount(autoF93DF35C_g, c_unitCountAll);
for (;; autoF93DF35C_u -= 1) {
autoF93DF35C_var = UnitGroupUnitFromEnd(autoF93DF35C_g, autoF93DF35C_u);
if (autoF93DF35C_var == null) { break; }
UnitBehaviorAdd(autoF93DF35C_var, "LongboatIsActive", lv_boat, 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsLongboatRaidSelection_Init () {
libGDHL_gt_HeroLostVikingsLongboatRaidSelection = TriggerCreate("libGDHL_gt_HeroLostVikingsLongboatRaidSelection_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidSelection, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLostVikingsLongboatRaidSelection, null, "LongboatRaidTimedLife", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Longboat Raid Ends (Reset Control Groups)
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsLongboatRaidEndsResetControlGroups_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_boat;
int lv_lVPlayer;
unit lv_erik;
unit lv_olaf;
unit lv_baleog;
// Automatic Variable Declarations
unitgroup auto01DFE41C_g;
int auto01DFE41C_u;
unit auto01DFE41C_var;
string auto45D50667_val;
// Variable Initialization
// Conditions
if (testConds) {
if (!((EventPlayerEffectUsedUnit(c_effectUnitCaster) != null))) {
return false;
}
if (!((UnitGetType(libGame_gv_players[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))].lv_heroUnit) != "HeroAbathur"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_boat = EventPlayerEffectUsedUnit(c_effectUnitCaster);
AIRemovePlayerUnit(lv_boat);
lv_lVPlayer = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
auto01DFE41C_g = libGDHL_gv_lostVikingsPlayer[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))].lv_longboatCrew;
auto01DFE41C_u = UnitGroupCount(auto01DFE41C_g, c_unitCountAll);
for (;; auto01DFE41C_u -= 1) {
auto01DFE41C_var = UnitGroupUnitFromEnd(auto01DFE41C_g, auto01DFE41C_u);
if (auto01DFE41C_var == null) { break; }
auto45D50667_val = UnitGetType(auto01DFE41C_var);
if (auto45D50667_val == "HeroErik") {
lv_erik = auto01DFE41C_var;
UnitControlGroupAddUnit(lv_lVPlayer, 3, lv_erik);
UnitControlGroupRemoveUnit(lv_lVPlayer, 3, lv_boat);
AIAddPlayerUnit(lv_erik);
}
else if (auto45D50667_val == "HeroBaleog") {
lv_baleog = auto01DFE41C_var;
UnitControlGroupAddUnit(lv_lVPlayer, 2, lv_baleog);
UnitControlGroupRemoveUnit(lv_lVPlayer, 2, lv_boat);
AIAddPlayerUnit(lv_baleog);
}
else if (auto45D50667_val == "HeroOlaf") {
lv_olaf = auto01DFE41C_var;
UnitControlGroupAddUnit(lv_lVPlayer, 1, lv_olaf);
UnitControlGroupRemoveUnit(lv_lVPlayer, 1, lv_boat);
AIAddPlayerUnit(lv_olaf);
}
else {
}
}
UnitControlGroupRemoveUnit(lv_lVPlayer, 4, lv_boat);
Wait(0.25, c_timeGame);
libUIUI_gf_UIHeroTrackerArrowShowHideForPlayer(true, lv_lVPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsLongboatRaidEndsResetControlGroups_Init () {
libGDHL_gt_HeroLostVikingsLongboatRaidEndsResetControlGroups = TriggerCreate("libGDHL_gt_HeroLostVikingsLongboatRaidEndsResetControlGroups_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidEndsResetControlGroups, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLostVikingsLongboatRaidEndsResetControlGroups, c_playerAny, "LostVikingsLongboatRaidDeathDelay");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Longboat Raid Expiration
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsLongboatRaidExpiration_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_erik;
fixed lv_erikCurrentFace;
point lv_erikLaunchLoc;
unit lv_baleog;
fixed lv_baleogCurrentFace;
point lv_baleogLaunchLoc;
unit lv_olaf;
fixed lv_olafCurrentFace;
point lv_olafLaunchLoc;
unit lv_boat;
int lv_lVPlayer;
// Automatic Variable Declarations
unitgroup auto0A18325D_g;
int auto0A18325D_u;
unit auto0A18325D_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((EventPlayerEffectUsedUnit(c_effectUnitCaster) != null))) {
return false;
}
if (!((UnitGetType(libGame_gv_players[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))].lv_heroUnit) != "HeroAbathur"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_boat = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_lVPlayer = UnitGetOwner(lv_boat);
libGDHL_gv_lostVikingsPlayer[UnitGetOwner(lv_boat)].lv_boat = null;
UnitSelect(lv_boat, UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)), false);
auto0A18325D_g = libGDHL_gv_lostVikingsPlayer[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))].lv_longboatCrew;
auto0A18325D_u = UnitGroupCount(auto0A18325D_g, c_unitCountAll);
for (;; auto0A18325D_u -= 1) {
auto0A18325D_var = UnitGroupUnitFromEnd(auto0A18325D_g, auto0A18325D_u);
if (auto0A18325D_var == null) { break; }
if ((UnitGetType(auto0A18325D_var) == "HeroErik")) {
lv_erik = auto0A18325D_var;
if ((UnitIsAlive(lv_erik) == true)) {
UnitSetPosition(auto0A18325D_var, UnitGetPosition(lv_boat), false);
}
UnitCreateEffectUnit(lv_erik, "LostVikingsLongboatRaidTeleport", lv_erik);
UnitCreateEffectUnit(lv_erik, "LongboatRaidModifyCooldown", lv_erik);
UnitBehaviorAdd(lv_erik, "TLVLongboatRaidExitAbilityDisabler", lv_erik, 1);
UnitBehaviorRemove(lv_erik, "LongboatRaidHideVikings", 1);
UnitSelect(lv_erik, UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)), true);
UnitGroupRemove(libGDHL_gv_lostVikingsPlayer[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))].lv_longboatCrew, auto0A18325D_var);
UnitCreateEffectUnit(lv_erik, "LostVikingsSuppressClickActionSoundCreatePersistent", lv_erik);
if ((PlayerHasTalent(EventPlayer(), "LostVikingsMasterySpyGames") == true)) {
UnitBehaviorAdd(lv_erik, "SpyGamesCooldown", lv_erik, 1);
}
}
if ((UnitGetType(auto0A18325D_var) == "HeroBaleog")) {
lv_baleog = auto0A18325D_var;
if ((UnitIsAlive(lv_baleog) == true)) {
UnitSetPosition(auto0A18325D_var, UnitGetPosition(lv_boat), false);
}
UnitCreateEffectUnit(lv_baleog, "LostVikingsLongboatRaidTeleport", lv_baleog);
UnitBehaviorAdd(lv_baleog, "TLVLongboatRaidExitAbilityDisabler", lv_baleog, 1);
UnitBehaviorRemove(lv_baleog, "LongboatRaidHideVikings", 1);
UnitSelect(lv_baleog, UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)), true);
UnitGroupRemove(libGDHL_gv_lostVikingsPlayer[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))].lv_longboatCrew, auto0A18325D_var);
UnitCreateEffectUnit(lv_baleog, "LostVikingsSuppressClickActionSoundCreatePersistent", lv_baleog);
}
if ((UnitGetType(auto0A18325D_var) == "HeroOlaf")) {
lv_olaf = auto0A18325D_var;
if ((UnitIsAlive(lv_olaf) == true)) {
UnitSetPosition(auto0A18325D_var, UnitGetPosition(lv_boat), false);
}
UnitCreateEffectUnit(lv_olaf, "LostVikingsLongboatRaidTeleport", lv_olaf);
UnitBehaviorAdd(lv_olaf, "TLVLongboatRaidExitAbilityDisabler", lv_olaf, 1);
UnitBehaviorRemove(lv_olaf, "LongboatRaidHideVikings", 1);
UnitSelect(lv_olaf, UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)), true);
UnitGroupRemove(libGDHL_gv_lostVikingsPlayer[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))].lv_longboatCrew, auto0A18325D_var);
UnitCreateEffectUnit(lv_olaf, "LostVikingsSuppressClickActionSoundCreatePersistent", lv_olaf);
}
UISetFrameVisible(libCore_gv_playerGroupFromPlayer[EventPlayer()], c_syncFrameTypeControlGroupPanel, true);
}
libGame_gv_players[lv_lVPlayer].lv_cameraCurrentTargetGroup = null;
libGame_gv_players[lv_lVPlayer].lv_cameraPlayerUnitGroupToFocusOn = null;
libGame_gf_CameraUpdateCameraForPlayer(lv_lVPlayer);
libUIUI_gv_uIHeroStatusFrames[lv_lVPlayer].lv_unitCount -= 1;
Wait(0.25, c_timeGame);
libUIUI_gf_UIHeroTrackerArrowShowHideForPlayer(true, lv_lVPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsLongboatRaidExpiration_Init () {
libGDHL_gt_HeroLostVikingsLongboatRaidExpiration = TriggerCreate("libGDHL_gt_HeroLostVikingsLongboatRaidExpiration_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsLongboatRaidExpiration, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLostVikingsLongboatRaidExpiration, c_playerAny, "LongboatRaidExpirationDelayDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Hide Vikings On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsHideVikingsOn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
unit lv_boat;
int lv_itPlayer;
// Automatic Variable Declarations
unitgroup auto3DC5B74E_g;
int auto3DC5B74E_u;
unit auto3DC5B74E_var;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_unit = EventUnit();
lv_itPlayer = UnitGetOwner(EventUnit());
libUIUI_gf_UIHeroTrackerArrowShowHideForPlayer(false, lv_itPlayer);
auto3DC5B74E_g = UnitGroup("LongboatRaidBoat", UnitGetOwner(EventUnit()), RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1);
auto3DC5B74E_u = UnitGroupCount(auto3DC5B74E_g, c_unitCountAll);
for (;; auto3DC5B74E_u -= 1) {
auto3DC5B74E_var = UnitGroupUnitFromEnd(auto3DC5B74E_g, auto3DC5B74E_u);
if (auto3DC5B74E_var == null) { break; }
lv_boat = auto3DC5B74E_var;
}
libGame_gf_SendEventCheckUnitForAbilityRedirect(lv_unit, lv_boat, false, UnitGetPosition(lv_boat));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsHideVikingsOn_Init () {
libGDHL_gt_HeroLostVikingsHideVikingsOn = TriggerCreate("libGDHL_gt_HeroLostVikingsHideVikingsOn_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsHideVikingsOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLostVikingsHideVikingsOn, null, "LongboatRaidHideVikings", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings - Abathur Clone
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsAbathurClone_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
int lv_lVPlayer;
string lv_heroicCooldownLink;
// Automatic Variable Declarations
const int autoED12D7AD_ae = 10;
const int autoED12D7AD_ai = 1;
string auto0F54B8AF_val;
// Variable Initialization
lv_heroicCooldownLink = "";
// Conditions
if (testConds) {
if (!(((UnitGetType(EventUnit()) == "HeroErik") || (UnitGetType(EventUnit()) == "HeroBaleog") || (UnitGetType(EventUnit()) == "HeroOlaf")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_itPlayer = 1;
for ( ; ( (autoED12D7AD_ai >= 0 && lv_itPlayer <= autoED12D7AD_ae) || (autoED12D7AD_ai < 0 && lv_itPlayer >= autoED12D7AD_ae) ) ; lv_itPlayer += autoED12D7AD_ai ) {
if ((UnitGetType(libGame_gv_players[lv_itPlayer].lv_heroUnit) == "HeroLostVikingsController")) {
lv_lVPlayer = lv_itPlayer;
break;
}
}
auto0F54B8AF_val = UnitGetType(EventUnit());
if (auto0F54B8AF_val == "HeroErik") {
UnitBehaviorAdd(EventUnit(), "LostVikingsBaleogDowned", EventUnit(), 1);
UnitBehaviorAdd(EventUnit(), "LostVikingsOlafDowned", EventUnit(), 1);
}
else if (auto0F54B8AF_val == "HeroBaleog") {
UnitBehaviorAdd(EventUnit(), "LostVikingsErikDowned", EventUnit(), 1);
UnitBehaviorAdd(EventUnit(), "LostVikingsOlafDowned", EventUnit(), 1);
}
else if (auto0F54B8AF_val == "HeroOlaf") {
UnitBehaviorAdd(EventUnit(), "LostVikingsErikDowned", EventUnit(), 1);
UnitBehaviorAdd(EventUnit(), "LostVikingsBaleogDowned", EventUnit(), 1);
}
else {
}
UnitBehaviorAdd(EventUnit(), "LostVikings1VikingAlive", EventUnit(), 1);
UnitBehaviorAdd(EventUnit(), "UltimateEvolutionAlternateHero", EventUnit(), 1);
PlayerAddCooldown(UnitGetOwner(EventUnit()), CatalogFieldValueGet(c_gameCatalogAbil, "LostVikingsLongboatRaidNewer", "Cost[" + IntToString(0) + "].Cooldown.Link", UnitGetOwner(EventUnit())), 15.0);
PlayerAddCooldown(UnitGetOwner(EventUnit()), CatalogFieldValueGet(c_gameCatalogAbil, "LostVikingsPlayAgain", "Cost[" + IntToString(0) + "].Cooldown.Link", UnitGetOwner(EventUnit())), 15.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsAbathurClone_Init () {
libGDHL_gt_HeroLostVikingsAbathurClone = TriggerCreate("libGDHL_gt_HeroLostVikingsAbathurClone_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsAbathurClone, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLostVikingsAbathurClone, null, "UltimateEvolutionBuild", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings Clone - Longboat Raid Selection
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsCloneLongboatRaidSelection_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_erik;
bool lv_erikLoaded;
unit lv_baleog;
bool lv_baleogLoaded;
unit lv_olaf;
bool lv_olafLoaded;
unit lv_boat;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "LongboatRaidBoat"))) {
return false;
}
if (!((UnitGetType(libGame_gv_players[UnitGetOwner(EventUnit())].lv_heroUnit) == "HeroAbathur"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_boat = EventUnit();
lv_player = UnitGetOwner(lv_boat);
libUIUI_gf_HeroConsoleUnitStatusBarsSetUnitForBars(lv_boat, lv_player);
libUIUI_gf_HeroConsoleUnitStatusBarsSetChannelBehaviorForBehaviorChannelBar(lv_player, EventUnitBehavior());
UnitSelect(lv_boat, lv_player, true);
UnitBehaviorAdd(lv_boat, "UltimateEvolutionAlternateHero", libGame_gv_players[lv_player].lv_heroUnit, 1);
if ((UnitBehaviorCount(libGame_gv_players[lv_player].lv_activeVehicle, "LostVikingsLongboatRaidPoofDisabler") == 1)) {
UnitGroupAdd(libGDHL_gv_lostVikingsPlayer[lv_player].lv_longboatCrew, libGame_gv_players[lv_player].lv_activeVehicle);
}
libGame_gv_players[lv_player].lv_cameraPlayerHasControl = false;
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_boat);
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
libGame_gv_players[lv_player].lv_cameraPlayerHasControl = true;
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsCloneLongboatRaidSelection_Init () {
libGDHL_gt_HeroLostVikingsCloneLongboatRaidSelection = TriggerCreate("libGDHL_gt_HeroLostVikingsCloneLongboatRaidSelection_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsCloneLongboatRaidSelection, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroLostVikingsCloneLongboatRaidSelection, null, "LongboatRaidTimedLife", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Lost Vikings Clone - Longboat Raid Expiration
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroLostVikingsCloneLongboatRaidExpiration_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_viking;
unit lv_boat;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))].lv_heroUnit) == "HeroAbathur"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_boat = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
UnitSelect(lv_boat, UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)), false);
if ((UnitIsAlive(libGame_gv_players[lv_player].lv_activeVehicle) == true)) {
lv_viking = libGame_gv_players[lv_player].lv_activeVehicle;
UnitSetPosition(lv_viking, UnitGetPosition(lv_boat), false);
UnitCreateEffectUnit(lv_viking, "LostVikingsLongboatRaidTeleport", lv_viking);
UnitBehaviorRemove(lv_viking, "LongboatRaidHideVikings", 1);
UnitSelect(lv_viking, UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)), true);
UnitGroupRemove(libGDHL_gv_lostVikingsPlayer[UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster))].lv_longboatCrew, lv_viking);
libGame_gv_players[lv_player].lv_cameraPlayerHasControl = false;
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_viking);
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
libGame_gv_players[lv_player].lv_cameraPlayerHasControl = true;
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroLostVikingsCloneLongboatRaidExpiration_Init () {
libGDHL_gt_HeroLostVikingsCloneLongboatRaidExpiration = TriggerCreate("libGDHL_gt_HeroLostVikingsCloneLongboatRaidExpiration_Func");
TriggerEnable(libGDHL_gt_HeroLostVikingsCloneLongboatRaidExpiration, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroLostVikingsCloneLongboatRaidExpiration, c_playerAny, "LostVikingsLongboatRaidDeathDelay");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Lost Vikings UI Initialize
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LostVikingsUIInitialize_Func (bool testConds, bool runActions) {
int init_i;
// Variable Declarations
int[6] lv_panels;
int lv_currentPanelLayer;
// Automatic Variable Declarations
// Variable Initialization
for (init_i = 0; init_i <= 5; init_i += 1) {
lv_panels[init_i] = c_invalidDialogControlId;
}
// Actions
if (!runActions) {
return true;
}
DialogControlCreateInPanelFromTemplate(libUIUI_gv_heroSpecificStatusContainer, c_triggerControlTypePanel, "LostVikings/LostVikingsIconFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libGDHL_gv_lostVikingsUI.lv_lostVikingsIconFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "LostVikingsOlafIconDeselected");
libGDHL_gv_lostVikingsUI.lv_olafUnselectedIconImage = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "LostVikingsOlafIconSelected");
libGDHL_gv_lostVikingsUI.lv_olafSelectedIconImage = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "LostVikingsOlafIconDead");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libGDHL_gv_lostVikingsUI.lv_olafDeadImage = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "LostVikingsOlafDeadOverlayFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libGDHL_gv_lostVikingsUI.lv_lostOlafDeadImageOverlay = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "LostVikingsBaleogIconDeselected");
libGDHL_gv_lostVikingsUI.lv_baleogUnselectedIconImage = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "LostVikingsBaleogIconSelected");
libGDHL_gv_lostVikingsUI.lv_baleogSelectedIconImage = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "LostVikingsBaleogIconDead");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libGDHL_gv_lostVikingsUI.lv_baleogDeadImage = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "LostVikingsBaleogDeadOverlayFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libGDHL_gv_lostVikingsUI.lv_lostBaleogDeadImageOverlay = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "LostVikingsErikIconDeselected");
libGDHL_gv_lostVikingsUI.lv_erikUnselectedIconImage = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "LostVikingsErikIconSelected");
libGDHL_gv_lostVikingsUI.lv_erikSelectedIconImage = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "LostVikingsErikIconDead");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libGDHL_gv_lostVikingsUI.lv_erikDeadImage = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "LostVikingsErikDeadOverlayFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libGDHL_gv_lostVikingsUI.lv_lostErikDeadImageOverlay = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
DialogControlCreateInPanelFromTemplate(libUIUI_gv_heroSpecificFullUIModContainer, c_triggerControlTypePanel, "LostVikings/LostVikingsChannelFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
DialogControlSetObservedType(DialogControlLastCreated(), c_triggerObservedTypeObservedPlayerId);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libGDHL_gv_lostVikingsUI.lv_lostVikingsChannelFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "LostVikingsOlafCastChannelBarFrame");
libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafCastChannelBarFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "LostVikingsBaleogCastChannelBarFrame");
libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogCastChannelBarFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "LostVikingsErikCastChannelBarFrame");
libGDHL_gv_lostVikingsUI.lv_lostVikingsErikCastChannelBarFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "LostVikingsOlafBehaviorChannelBarFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
DialogControlSetObservedType(DialogControlLastCreated(), c_triggerObservedTypeObservedPlayerId);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafBehaviorChannelBarFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatusDurationBar, "LostVikingsBehaviorChannelBar");
DialogControlSetObservedType(DialogControlLastCreated(), c_triggerObservedTypeObservedPlayerId);
libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafBehaviorChannelBarDurationBar = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "LostVikingsBehaviorChannelBar/ChannelNameLabel");
DialogControlSetObservedType(DialogControlLastCreated(), c_triggerObservedTypeObservedPlayerId);
libGDHL_gv_lostVikingsUI.lv_lostVikingsOlafBehaviorChannelBarBehaviorLabel = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "LostVikingsBaleogBehaviorChannelBarFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
DialogControlSetObservedType(DialogControlLastCreated(), c_triggerObservedTypeObservedPlayerId);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogBehaviorChannelBarFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatusDurationBar, "LostVikingsBehaviorChannelBar");
DialogControlSetObservedType(DialogControlLastCreated(), c_triggerObservedTypeObservedPlayerId);
libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogBehaviorChannelBarDurationBar = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "LostVikingsBehaviorChannelBar/ChannelNameLabel");
DialogControlSetObservedType(DialogControlLastCreated(), c_triggerObservedTypeObservedPlayerId);
libGDHL_gv_lostVikingsUI.lv_lostVikingsBaleogBehaviorChannelBarBehaviorLabel = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "LostVikingsErikBehaviorChannelBarFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
DialogControlSetObservedType(DialogControlLastCreated(), c_triggerObservedTypeObservedPlayerId);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libGDHL_gv_lostVikingsUI.lv_lostVikingsErikBehaviorChannelBarFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatusDurationBar, "LostVikingsBehaviorChannelBar");
DialogControlSetObservedType(DialogControlLastCreated(), c_triggerObservedTypeObservedPlayerId);
libGDHL_gv_lostVikingsUI.lv_lostVikingsErikBehaviorChannelBarDurationBar = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "LostVikingsBehaviorChannelBar/ChannelNameLabel");
DialogControlSetObservedType(DialogControlLastCreated(), c_triggerObservedTypeObservedPlayerId);
libGDHL_gv_lostVikingsUI.lv_lostVikingsErikBehaviorChannelBarBehaviorLabel = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
lv_currentPanelLayer -= 1;
DialogControlCreateInPanelFromTemplate(libUIUI_gv_heroSpecificFullUIModContainer, c_triggerControlTypePanel, "LostVikings/LostVikingsHeroStatsFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libGDHL_gv_lostVikingsUI.lv_heroStatsFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "ErikUnitStatusFrame");
libGDHL_gv_lostVikingsUI.lv_erikUnitStatusFrame = DialogControlLastCreated();
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "UnitNameLabel/Label");
libGDHL_gv_lostVikingsUI.lv_erikNameLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "HealthBarLabel/StatusLabel");
libGDHL_gv_lostVikingsUI.lv_erikHPLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "DownedLabel");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libGDHL_gv_lostVikingsUI.lv_erikDownedLabel = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "BaleogUnitStatusFrame");
libGDHL_gv_lostVikingsUI.lv_baleogUnitStatusFrame = DialogControlLastCreated();
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "UnitNameLabel/Label");
libGDHL_gv_lostVikingsUI.lv_baleogNameLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "HealthBarLabel/StatusLabel");
libGDHL_gv_lostVikingsUI.lv_baleogHPLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "DownedLabel");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libGDHL_gv_lostVikingsUI.lv_baleogDownedLabel = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "OlafUnitStatusFrame");
libGDHL_gv_lostVikingsUI.lv_olafUnitStatusFrame = DialogControlLastCreated();
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "UnitNameLabel/Label");
libGDHL_gv_lostVikingsUI.lv_olafNameLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "HealthBarLabel/StatusLabel");
libGDHL_gv_lostVikingsUI.lv_olafHPLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "DownedLabel");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libGDHL_gv_lostVikingsUI.lv_olafDownedLabel = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
lv_currentPanelLayer -= 1;
DialogControlHookupStandard(c_triggerControlTypeImage, "UIContainer/ConsoleUIContainer/ControlGroupPanel/ControlGroupButton0/ControlGroupStatusFrame");
libGDHL_gv_lostVikingsUI.lv_olafDeathStatusFrame = DialogControlLastCreated();
DialogControlHookupStandard(c_triggerControlTypeImage, "UIContainer/ConsoleUIContainer/ControlGroupPanel/ControlGroupButton1/ControlGroupStatusFrame");
libGDHL_gv_lostVikingsUI.lv_baleogDeathStatusFrame = DialogControlLastCreated();
DialogControlHookupStandard(c_triggerControlTypeImage, "UIContainer/ConsoleUIContainer/ControlGroupPanel/ControlGroupButton2/ControlGroupStatusFrame");
libGDHL_gv_lostVikingsUI.lv_erikDeathStatusFrame = DialogControlLastCreated();
DialogControlHookupStandard(c_triggerControlTypeImage, "UIContainer/ConsoleUIContainer/ControlGroupPanel/ControlGroupButton3/ControlGroupStatusFrame");
libGDHL_gv_lostVikingsUI.lv_allDeathStatusFrame = DialogControlLastCreated();
TriggerEnable(libGDHL_gt_LostVikingsUIUpdate, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LostVikingsUIInitialize_Init () {
libGDHL_gt_LostVikingsUIInitialize = TriggerCreate("libGDHL_gt_LostVikingsUIInitialize_Func");
libCore_gf_IncludeModInitialization(libGDHL_gt_LostVikingsUIInitialize);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Lost Vikings UI Update
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LostVikingsUIUpdate_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itLostVikingsPlayer;
// Automatic Variable Declarations
int auto929639CD_ae;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
auto929639CD_ae = libCore_gv_bALMaxPlayers;
lv_itLostVikingsPlayer = 1;
for ( ; lv_itLostVikingsPlayer <= auto929639CD_ae ; lv_itLostVikingsPlayer += 1 ) {
if ((UnitGetType(libGame_gv_players[lv_itLostVikingsPlayer].lv_heroUnit) != "HeroLostVikingsController")) {
continue;
}
libGDHL_gf_LostVikingsUIUpdateAllSelectionDownedStatusForPlayer(lv_itLostVikingsPlayer);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LostVikingsUIUpdate_Init () {
libGDHL_gt_LostVikingsUIUpdate = TriggerCreate("libGDHL_gt_LostVikingsUIUpdate_Func");
TriggerEnable(libGDHL_gt_LostVikingsUIUpdate, false);
TriggerAddEventTimePeriodic(libGDHL_gt_LostVikingsUIUpdate, 0.0625, c_timeGame);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Lost Vikings UI Clean Up UI For Debug Hero Swap
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LostVikingsUICleanUpUIForDebugHeroSwap_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = libGame_gf_DebugHeroSwappedPlayer();
if ((libGame_gv_players[lv_player].lv_heroIndex != libCore_gf_GetHeroIndexForUnitType("HeroLostVikingsController"))) {
libGDHL_gf_LostVikingsUIUnSetupUIForPlayer(lv_player);
}
libAIAI_gf_HeroAILostVikingsClearDebuggingUI(lv_player);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LostVikingsUICleanUpUIForDebugHeroSwap_Init () {
libGDHL_gt_LostVikingsUICleanUpUIForDebugHeroSwap = TriggerCreate("libGDHL_gt_LostVikingsUICleanUpUIForDebugHeroSwap_Func");
libGame_gf_DebugHeroSwapped(libGDHL_gt_LostVikingsUICleanUpUIForDebugHeroSwap);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Lost Vikings Console Unit Status Bars Channel Behavior Added
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_LostVikingsConsoleUnitStatusBarsChannelBehaviorAdded_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_heroUnit;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((EventPlayer() >= 1))) {
return false;
}
if (!((EventPlayer() <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((CatalogFieldValueGetAsInt(c_gameCatalogBehavior, EventUnitBehavior(), "BehaviorCategories[Restorable]", c_playerAny) == 1))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayer();
if ((UnitGetType(EventUnit()) != "HeroErik") && (UnitGetType(EventUnit()) != "HeroBaleog") && (UnitGetType(EventUnit()) != "HeroOlaf")) {
return true;
}
libGDHL_gf_LostVikingsConsoleUnitStatusBarsSetChannelBehaviorForBehaviorChannelBar(lv_player, EventUnitBehavior(), EventUnit());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_LostVikingsConsoleUnitStatusBarsChannelBehaviorAdded_Init () {
libGDHL_gt_LostVikingsConsoleUnitStatusBarsChannelBehaviorAdded = TriggerCreate("libGDHL_gt_LostVikingsConsoleUnitStatusBarsChannelBehaviorAdded_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_LostVikingsConsoleUnitStatusBarsChannelBehaviorAdded, null, null, c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Malfurion - Twilight Dream - Silence Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMalfurionTwilightDreamSilenceTarget_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_targetUnit;
int lv_owner;
// Automatic Variable Declarations
// Variable Initialization
lv_targetUnit = EventUnit();
lv_owner = UnitGetOwner(lv_targetUnit);
// Conditions
if (testConds) {
if (!((lv_owner > 0))) {
return false;
}
if (!((lv_owner <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitTypeTestAttribute(UnitGetType(lv_targetUnit), c_unitAttributeHeroic) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libUIUI_gf_UILowHPSetSoundChannelsForSilence(lv_owner);
SoundPlayForPlayer(SoundLink("Malfurion_TwilightDream_Loop", -1), lv_owner, libCore_gv_playerGroupFromPlayer[lv_owner], 100.0, 0.0);
Wait(5.0, c_timeGame);
SoundStop(SoundLastPlayed(), true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMalfurionTwilightDreamSilenceTarget_Init () {
libGDHL_gt_HeroMalfurionTwilightDreamSilenceTarget = TriggerCreate("libGDHL_gt_HeroMalfurionTwilightDreamSilenceTarget_Func");
TriggerEnable(libGDHL_gt_HeroMalfurionTwilightDreamSilenceTarget, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMalfurionTwilightDreamSilenceTarget, null, "TwilightDreamSilence", c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMalfurionTwilightDreamSilenceTarget, null, "TwilightDreamSilence", c_unitBehaviorChangeRefresh);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Malfurion - Twilight Dream - Silence End
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMalfurionTwilightDreamSilenceEnd_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_targetUnit;
int lv_owner;
// Automatic Variable Declarations
// Variable Initialization
lv_targetUnit = EventUnit();
lv_owner = UnitGetOwner(EventUnit());
// Conditions
if (testConds) {
if (!((lv_owner > 0))) {
return false;
}
if (!((lv_owner <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitTypeTestAttribute(UnitGetType(lv_targetUnit), c_unitAttributeHeroic) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libUIUI_gf_UILowHPSetSoundChannelsForNormal(lv_owner);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMalfurionTwilightDreamSilenceEnd_Init () {
libGDHL_gt_HeroMalfurionTwilightDreamSilenceEnd = TriggerCreate("libGDHL_gt_HeroMalfurionTwilightDreamSilenceEnd_Func");
TriggerEnable(libGDHL_gt_HeroMalfurionTwilightDreamSilenceEnd, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMalfurionTwilightDreamSilenceEnd, null, "TwilightDreamSilence", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Malfurion - Innervate CDR
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMalfurionInnervateCDR_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_cDRAmount;
int lv_itAbility;
unit lv_hero;
int lv_heroIndex;
string lv_abilLink;
string lv_cooldownLink;
fixed lv_currentCooldownAmount;
fixed lv_newCooldownAmount;
string lv_chargeLink;
fixed lv_currentChargeAmount;
fixed lv_newChargeAmount;
// Automatic Variable Declarations
// Variable Initialization
lv_cDRAmount = -0.5;
lv_cooldownLink = "";
lv_chargeLink = "";
// Actions
if (!runActions) {
return true;
}
lv_hero = EventPlayerEffectUsedUnit(c_effectUnitTarget);
libGame_gf_StormUniversalModifyCooldownonUnitCDRforAbilities(lv_hero, lv_cDRAmount, false, false, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMalfurionInnervateCDR_Init () {
libGDHL_gt_HeroMalfurionInnervateCDR = TriggerCreate("libGDHL_gt_HeroMalfurionInnervateCDR_Func");
TriggerEnable(libGDHL_gt_HeroMalfurionInnervateCDR, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMalfurionInnervateCDR, c_playerAny, "MalfurionInnervateModifyUnitDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Malfurion - Tenacious Roots Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMalfurionTenaciousRootsProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "MalfurionMasteryTenaciousRootsEntanglingRoots") == true))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroMalfurion"))) {
return false;
}
if (!((UnitHasBehaviorWithCategoryFlag(lv_unit, c_behaviorCategoryBuffUnstoppable) == false))) {
return false;
}
if (!((UnitHasBehaviorWithCategoryFlag(lv_unit, c_behaviorCategoryInvulnerable) == false))) {
return false;
}
if (!((UnitIsAlive(lv_unit) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_unit, "MalfurionEntanglingRootsTenaciousRootsApplyCooldownBehavior", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMalfurionTenaciousRootsProc_Init () {
libGDHL_gt_HeroMalfurionTenaciousRootsProc = TriggerCreate("libGDHL_gt_HeroMalfurionTenaciousRootsProc_Func");
TriggerEnable(libGDHL_gt_HeroMalfurionTenaciousRootsProc, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroMalfurionTenaciousRootsProc, null, c_behaviorCategoryStun, c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroMalfurionTenaciousRootsProc, null, c_behaviorCategoryStun, c_unitBehaviorChangeRefresh);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Healing Beam UI Initialize
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HealingBeamUIInitialize_Func (bool testConds, bool runActions) {
int init_i;
// Variable Declarations
int[6] lv_panels;
int lv_currentPanelLayer;
// Automatic Variable Declarations
// Variable Initialization
for (init_i = 0; init_i <= 5; init_i += 1) {
lv_panels[init_i] = c_invalidDialogControlId;
}
// Actions
if (!runActions) {
return true;
}
DialogControlHookup(libUIUI_gv_heroSpecificStatusContainer, c_triggerControlTypeImage, "MedicFrame/UnitStatusFrame0/MechanicTexture");
libGDHL_gv_healingBeamUI.lv_healingBeamTargetPortrait = DialogControlLastCreated();
DialogControlHookup(libUIUI_gv_heroSpecificStatusContainer, c_triggerControlTypeLabel, "MedicFrame/UnitStatusFrame0/MedicHealingBeamName");
libGDHL_gv_healingBeamUI.lv_healingBeamTargetDisplayName = DialogControlLastCreated();
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HealingBeamUIInitialize_Init () {
libGDHL_gt_HealingBeamUIInitialize = TriggerCreate("libGDHL_gt_HealingBeamUIInitialize_Func");
libCore_gf_IncludeModInitialization(libGDHL_gt_HealingBeamUIInitialize);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Medic UI Initialize
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_MedicUIInitialize_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
DialogControlHookup(libUIUI_gv_fullscreenStatusPanel, c_triggerControlTypePanel, "MedivacAlert");
libGDHL_gv_medicUI.lv_medivacAlert = DialogControlLastCreated();
DialogControlHookup(libGDHL_gv_medicUI.lv_medivacAlert, c_triggerControlTypeLabel, "DepartSecondsLabel");
libGDHL_gv_medicUI.lv_medivacCountdownNumber = DialogControlLastCreated();
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_MedicUIInitialize_Init () {
libGDHL_gt_MedicUIInitialize = TriggerCreate("libGDHL_gt_MedicUIInitialize_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Stim Drone Fullscreen Overlay On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOn_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(EventPlayer(), libUIUI_ge_FullscreenOverlayPriorities_Invulnerable, "Cutscenes\\GameUI_MedicStimDroneOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOn_Init () {
libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOn = TriggerCreate("libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOn_Func");
TriggerEnable(libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOn, null, "MedicStimDroneAttackSpeedBuff", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Stim Drone Fullscreen Overlay Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOff_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(EventPlayer(), "Cutscenes\\GameUI_MedicStimDroneOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOff_Init () {
libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOff = TriggerCreate("libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOff_Func");
TriggerEnable(libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOff, null, "MedicStimDroneAttackSpeedBuff", c_unitBehaviorChangeDestroy);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOff, null, "MedicStimDroneAttackSpeedBuff", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Medivac Dropship Created
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicMedivacDropshipCreated_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_medic;
unit lv_dropship;
point lv_positionOfMedivac;
unit lv_dropshipBeacon;
point lv_positionOfBeacon;
int lv_medicPlayer;
int lv_medicPlayerTeam;
playergroup lv_alliedPlayersAnnouncementGroup;
int lv_localPathDisplay;
fixed lv_acceptingPassengersDuration;
// Automatic Variable Declarations
// Variable Initialization
lv_medic = EventUnit();
lv_dropship = EventUnitCreatedUnit();
lv_positionOfMedivac = UnitGetPosition(lv_dropship);
lv_medicPlayer = UnitGetOwner(lv_medic);
lv_medicPlayerTeam = libGame_gf_TeamNumberOfPlayer(lv_medicPlayer);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_dropship) == "MedicMedivacDropship"))) {
return false;
}
if (!((UnitIsAlive(lv_medic) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_dropshipBeacon = UnitGroupUnit(UnitGetTrackedUnitGroup(lv_dropship, "MedicMedivacBeaconTrackerBehavior"), 1);
lv_positionOfBeacon = UnitGetPosition(lv_dropshipBeacon);
lv_alliedPlayersAnnouncementGroup = libGame_gf_AlliedPlayerGroupOfPlayer(lv_medicPlayer);
PlayerGroupRemove(lv_alliedPlayersAnnouncementGroup, lv_medicPlayer);
if ((EventUnitCreatedAbil() == "MedicMedivacDropship")) {
UnitPutInTransport(lv_medic, lv_dropship);
}
libNtve_gf_MakeUnitFacePoint(lv_dropship, UnitGetPosition(lv_dropshipBeacon), 0.0);
if ((UnitHasBehavior2(lv_dropship, "MedicMedivacDropshipReinforcementsTalentDropshipBehavior") == false)) {
UnitSelect(lv_medic, lv_medicPlayer, false);
UnitSelect(lv_dropship, lv_medicPlayer, true);
libUIUI_gf_UIHeroConsoleSetUpForPlayer(lv_dropship, lv_medicPlayer);
libUIUI_gf_HeroConsoleUnitStatusBarsSetUnitForBars(lv_dropship, lv_medicPlayer);
UIDisplayMessage(lv_alliedPlayersAnnouncementGroup, c_messageAreaChat, StringExternal("Param/Value/lib_GDHL_8F5B2805"));
}
else {
UIDisplayMessage(lv_alliedPlayersAnnouncementGroup, c_messageAreaChat, StringExternal("Param/Value/lib_GDHL_E848DA65"));
}
libCore_gf_CreateMinimapPingStorm(libGame_gv_teams[lv_medicPlayerTeam].lv_teamPlayerGroupNoNPCPlayers, "MedivacAlert", lv_positionOfMedivac, Color(0.00, 0.00, 100.00), 2.0);
libCore_gf_CreateMinimapPingStorm(libGame_gv_teams[lv_medicPlayerTeam].lv_teamPlayerGroupNoNPCPlayers, "StormObjective", lv_positionOfBeacon, ColorWithAlpha(0,0,0,0), 8.0);
PathCreateForUnit(libGame_gv_teams[lv_medicPlayerTeam].lv_teamPlayerGroupNoNPCPlayers, lv_dropship);
lv_localPathDisplay = PathLastCreated();
PathSetDestinationPoint(lv_localPathDisplay, lv_positionOfBeacon);
PathSetVisible(PathLastCreated(), c_pathLocationWorld, false);
PathSetDestinationUnit(lv_localPathDisplay, lv_dropshipBeacon);
PathSetLineTexture(lv_localPathDisplay, c_pathLocationAll, "Assets\\Textures\\storm_waypointline.dds");
UIDisplayMessage(libGame_gv_teams[libGame_gf_EnemyTeamNumberOfPlayer(lv_medicPlayer)].lv_teamPlayerGroupNoNPCPlayers, c_messageAreaChat, StringExternal("Param/Value/lib_GDHL_14ED487B"));
AIAddPortal(libGame_gf_ComputerPlayerInFaction(libGame_gv_players[lv_medicPlayer].lv_faction), lv_dropship, lv_dropshipBeacon, 0.5, 9.0, "SmartCommandUnitInteraction", null);
while ((UnitIsAlive(lv_dropship) == true) && (UnitHasBehavior2(lv_dropship, "MedicMedivacDropshipFinalDepartureDelay") == false)) {
Wait(0.0625, c_timeGame);
}
PathDestroy(lv_localPathDisplay);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicMedivacDropshipCreated_Init () {
libGDHL_gt_HeroMedicMedivacDropshipCreated = TriggerCreate("libGDHL_gt_HeroMedicMedivacDropshipCreated_Func");
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipCreated, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroMedicMedivacDropshipCreated, null, "MedicMedivacDropship", null);
TriggerAddEventUnitCreated(libGDHL_gt_HeroMedicMedivacDropshipCreated, null, "MedicReinforcements", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Medivac Dropship En Route Orders
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicMedivacDropshipEnRouteOrders_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_dropship;
int lv_player;
point lv_medivacPoint;
unit lv_dropshipBeacon;
point lv_positionOfBeacon;
unit lv_itCargoUnit;
// Automatic Variable Declarations
unitgroup auto6F5F367E_g;
int auto6F5F367E_u;
// Variable Initialization
lv_dropship = EventUnit();
lv_player = UnitGetOwner(lv_dropship);
lv_medivacPoint = UnitGetPosition(lv_dropship);
lv_dropshipBeacon = UnitGroupUnit(UnitGetTrackedUnitGroup(lv_dropship, "MedicMedivacBeaconTrackerBehavior"), 1);
lv_positionOfBeacon = UnitGetPosition(lv_dropshipBeacon);
// Actions
if (!runActions) {
return true;
}
libNtve_gf_MakeUnitFacePoint(lv_dropship, UnitGetPosition(lv_dropshipBeacon), 0.0);
UnitCreateEffectPoint(lv_dropship, "MedicMedivacDropshipLaunchMissile", UnitGetPosition(lv_dropshipBeacon));
UnitBehaviorAdd(lv_dropship, "MedicMedivacDropshipUncommandable", lv_dropship, 1);
AIRemovePortal(lv_dropship);
if ((DistanceBetweenPoints(lv_medivacPoint, lv_positionOfBeacon) > 20.0)) {
libNtve_gf_SendActorMessageToUnit(lv_dropship, "AnimPlay Spell Spell,B NonLooping");
}
auto6F5F367E_g = UnitCargoGroup(lv_dropship);
auto6F5F367E_u = UnitGroupCount(auto6F5F367E_g, c_unitCountAll);
for (;; auto6F5F367E_u -= 1) {
lv_itCargoUnit = UnitGroupUnitFromEnd(auto6F5F367E_g, auto6F5F367E_u);
if (lv_itCargoUnit == null) { break; }
libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI(false, UnitGetOwner(lv_itCargoUnit));
}
UnitCreateEffectPoint(lv_dropship, "MedicMedivacDropshipDestinationDecelerationPersistent", lv_positionOfBeacon);
UnitCreateEffectUnit(lv_dropship, "MedicMedivacDropshipRemoveHonkClickResponse", lv_dropship);
while ((UnitIsAlive(lv_dropship) == true) && (UnitBehaviorCount(lv_dropship, "MedicMedivacDropshipEnRoute") == 1)) {
lv_medivacPoint = UnitGetPosition(lv_dropship);
if ((DistanceBetweenPoints(lv_medivacPoint, lv_positionOfBeacon) <= 5.0)) {
UnitBehaviorRemove(lv_dropship, "MedicMedivacDropshipDepartureAscent", 1);
}
if ((DistanceBetweenPoints(lv_medivacPoint, lv_positionOfBeacon) <= 1.0)) {
UnitBehaviorSetDurationRemaining(lv_dropship, "MedicMedivacDropshipDropoffLocationTimedLife", 0.0);
UnitBehaviorRemove(lv_dropship, "MedicMedivacDropshipEnRoute", 1);
}
Wait(0.0625, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicMedivacDropshipEnRouteOrders_Init () {
libGDHL_gt_HeroMedicMedivacDropshipEnRouteOrders = TriggerCreate("libGDHL_gt_HeroMedicMedivacDropshipEnRouteOrders_Func");
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipEnRouteOrders, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMedicMedivacDropshipEnRouteOrders, null, "MedicMedivacDropshipDepartureAscent", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Medivac Dropship Death Cleanup
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicMedivacDropshipDeathCleanup_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_dropship;
// Automatic Variable Declarations
// Variable Initialization
lv_dropship = EventUnit();
// Conditions
if (testConds) {
if (!((UnitGetType(lv_dropship) == "MedicMedivacDropship"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitGroupCount(UnitGetTrackedUnitGroup(lv_dropship, "MedicMedivacBeaconTrackerBehavior"), c_unitCountAlive) > 0)) {
UnitKill(UnitGroupUnit(UnitGetTrackedUnitGroup(lv_dropship, "MedicMedivacBeaconTrackerBehavior"), 1));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicMedivacDropshipDeathCleanup_Init () {
libGDHL_gt_HeroMedicMedivacDropshipDeathCleanup = TriggerCreate("libGDHL_gt_HeroMedicMedivacDropshipDeathCleanup_Func");
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipDeathCleanup, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroMedicMedivacDropshipDeathCleanup, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Medivac Dropship Load Event
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicMedivacDropshipLoadEvent_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_cargoUnit;
unit lv_medivac;
int lv_cargoAmt;
playergroup lv_pipPlayerGroup;
int lv_itPlayer;
int lv_itPip;
// Automatic Variable Declarations
unitgroup autoFD3CF396_g;
int autoFD3CF396_u;
unit autoFD3CF396_var;
playergroup auto76C240DB_g;
int auto94E6FF96_ae;
const int auto94E6FF96_ai = 1;
// Variable Initialization
lv_cargoUnit = EventUnitCargo();
lv_medivac = EventUnit();
lv_pipPlayerGroup = PlayerGroupEmpty();
// Conditions
if (testConds) {
if (!((UnitGetType(lv_medivac) == "MedicMedivacDropship"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGame_gf_SendEventHeroEnteredTransport(UnitGetOwner(lv_cargoUnit), lv_medivac, lv_cargoUnit);
if ((UnitGetType(libGame_gv_players[UnitGetOwner(lv_cargoUnit)].lv_heroUnit) != "HeroLostVikingsController")) {
libGame_gv_players[UnitGetOwner(lv_cargoUnit)].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_medivac);
libGame_gf_CameraUpdateCameraForPlayer(UnitGetOwner(lv_cargoUnit));
if ((UnitGetOwner(lv_medivac) != UnitGetOwner(lv_cargoUnit))) {
libNtve_gf_StoreUnitSelection(UnitGetOwner(lv_cargoUnit), libNtve_ge_UnitSelectionStoreOption_ClearUnitSelection);
}
else {
AIAddPlayerUnit(lv_medivac);
}
}
if (((libGame_gv_players[UnitGetOwner(lv_cargoUnit)].lv_activeVehicle != null) && (UnitGetType(libGame_gv_players[UnitGetOwner(lv_cargoUnit)].lv_heroUnit) == "HeroAbathur"))) {
TransmissionSendForPlayerSelect(PlayerGroupSingle(UnitGetOwner(lv_cargoUnit)), TransmissionSourceFromUnit(libGame_gv_players[UnitGetOwner(lv_cargoUnit)].lv_activeVehicle, false, true, ""), PortraitGetGame(), "", "Stand", null, StringExternal("Param/Value/lib_GDHL_4FE2EF61"), StringToText(""), 60.0, c_transmissionDurationAdd, false, c_maxPlayers, false);
libGDHL_gv_medivacTransmissionPortraitOverride[UnitGetOwner(lv_cargoUnit)] = TransmissionLastSent();
}
else {
TransmissionSendForPlayerSelect(PlayerGroupSingle(UnitGetOwner(lv_cargoUnit)), TransmissionSourceFromUnit(libGame_gv_players[UnitGetOwner(lv_cargoUnit)].lv_heroUnit, false, true, ""), PortraitGetGame(), "", "Stand", null, StringExternal("Param/Value/lib_GDHL_8F93019A"), StringToText(""), 60.0, c_transmissionDurationAdd, false, c_maxPlayers, false);
libGDHL_gv_medivacTransmissionPortraitOverride[UnitGetOwner(lv_cargoUnit)] = TransmissionLastSent();
}
lv_cargoAmt = UnitGroupCount(UnitCargoGroup(lv_medivac), c_unitCountAlive);
autoFD3CF396_g = UnitCargoGroup(lv_medivac);
autoFD3CF396_u = UnitGroupCount(autoFD3CF396_g, c_unitCountAll);
for (;; autoFD3CF396_u -= 1) {
autoFD3CF396_var = UnitGroupUnitFromEnd(autoFD3CF396_g, autoFD3CF396_u);
if (autoFD3CF396_var == null) { break; }
PlayerGroupAdd(lv_pipPlayerGroup, UnitGetOwner(autoFD3CF396_var));
}
auto76C240DB_g = lv_pipPlayerGroup;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto76C240DB_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
auto94E6FF96_ae = lv_cargoAmt;
lv_itPip = 1;
for ( ; ( (auto94E6FF96_ai >= 0 && lv_itPip <= auto94E6FF96_ae) || (auto94E6FF96_ai < 0 && lv_itPip >= auto94E6FF96_ae) ) ; lv_itPip += auto94E6FF96_ai ) {
DialogControlSendAnimationEvent(libGDHL_gv_medicUI.lv_medivacAlert, libCore_gv_playerGroupFromPlayer[lv_itPlayer], ("Pip" + IntToString(lv_itPip)));
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicMedivacDropshipLoadEvent_Init () {
libGDHL_gt_HeroMedicMedivacDropshipLoadEvent = TriggerCreate("libGDHL_gt_HeroMedicMedivacDropshipLoadEvent_Func");
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipLoadEvent, false);
TriggerAddEventUnitCargo(libGDHL_gt_HeroMedicMedivacDropshipLoadEvent, null, true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Medivac Dropship Unload Event
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicMedivacDropshipUnloadEvent_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_dropship;
unit lv_cargoUnit;
int lv_cargoPlayer;
string lv_typeOfCargoUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_dropship = EventUnit();
lv_cargoUnit = EventUnitCargo();
lv_cargoPlayer = UnitGetOwner(lv_cargoUnit);
lv_typeOfCargoUnit = UnitGetType(lv_cargoUnit);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_dropship) == "MedicMedivacDropship"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((lv_typeOfCargoUnit != "HeroLostVikingsController") && (lv_typeOfCargoUnit != "HeroSamuro")) {
libGame_gv_players[lv_cargoPlayer].lv_cameraPlayerUnitGroupToFocusOn = libGame_gv_players[lv_cargoPlayer].lv_heroUnitGroup;
libGame_gf_CameraUpdateCameraForPlayer(lv_cargoPlayer);
if (((lv_cargoUnit == libGame_gv_players[lv_cargoPlayer].lv_heroUnit) || (UnitGroupHasUnit(libGame_gv_players[lv_cargoPlayer].lv_heroUnitGroup, lv_cargoUnit) == true))) {
UnitSelect(lv_dropship, lv_cargoPlayer, false);
UnitSelect(libGame_gv_players[lv_cargoPlayer].lv_heroUnit, lv_cargoPlayer, true);
libNtve_gf_RestoreUnitSelection(lv_cargoPlayer);
}
else {
if ((lv_cargoUnit == libGame_gv_players[lv_cargoPlayer].lv_activeVehicle)) {
UnitSelect(lv_dropship, lv_cargoPlayer, false);
UnitSelect(libGame_gv_players[lv_cargoPlayer].lv_activeVehicle, lv_cargoPlayer, true);
}
}
if ((lv_cargoPlayer == UnitGetOwner(lv_dropship)) && (lv_typeOfCargoUnit == "HeroMedic")) {
libUIUI_gf_UIHeroConsoleSetUpForPlayer(libGame_gv_players[lv_cargoPlayer].lv_heroUnit, lv_cargoPlayer);
libUIUI_gf_HeroConsoleUnitStatusBarsSetUnitForBars(libGame_gv_players[lv_cargoPlayer].lv_heroUnit, lv_cargoPlayer);
libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI(false, lv_cargoPlayer);
AIRemovePlayerUnit(lv_dropship);
}
}
if ((libNtve_gf_UnitIsInsideTransport(libGame_gv_players[lv_cargoPlayer].lv_heroUnit) == true)) {
libGame_gv_players[lv_cargoPlayer].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(UnitTransport(libGame_gv_players[lv_cargoPlayer].lv_heroUnit));
libGame_gf_CameraUpdateCameraForPlayer(lv_cargoPlayer);
}
TransmissionClear(libGDHL_gv_medivacTransmissionPortraitOverride[lv_cargoPlayer]);
libGame_gf_SendEventHeroExitedTransport(lv_cargoPlayer, lv_dropship);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicMedivacDropshipUnloadEvent_Init () {
libGDHL_gt_HeroMedicMedivacDropshipUnloadEvent = TriggerCreate("libGDHL_gt_HeroMedicMedivacDropshipUnloadEvent_Func");
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipUnloadEvent, false);
TriggerAddEventUnitCargo(libGDHL_gt_HeroMedicMedivacDropshipUnloadEvent, null, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Medivac Dropship Rejoin Hide Medivac UI
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicMedivacDropshipRejoinHideMedivacUI_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = EventPlayer();
// Actions
if (!runActions) {
return true;
}
libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI(false, lv_player);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicMedivacDropshipRejoinHideMedivacUI_Init () {
libGDHL_gt_HeroMedicMedivacDropshipRejoinHideMedivacUI = TriggerCreate("libGDHL_gt_HeroMedicMedivacDropshipRejoinHideMedivacUI_Func");
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipRejoinHideMedivacUI, false);
TriggerAddEventPlayerJoin(libGDHL_gt_HeroMedicMedivacDropshipRejoinHideMedivacUI, c_playerAny);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Medivac Dropship Overlay
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicMedivacDropshipOverlay_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
int lv_ownerOfTransport;
string lv_triggeringBehavior;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
lv_ownerOfTransport = UnitGetOwner(UnitTransport(lv_unit));
lv_triggeringBehavior = EventUnitBehavior();
// Conditions
if (testConds) {
if (!((UnitTestState(lv_unit, c_unitStateHallucination) == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
SoundPlayForPlayer(SoundLink("Medic_MedivacDropship_2D_On", -1), c_maxPlayers, PlayerGroupSingle(lv_player), 100.0, 0.0);
SoundPlayForPlayer(SoundLink("Medic_MedivacDropship_2D_BG", -1), c_maxPlayers, PlayerGroupSingle(lv_player), 100.0, 0.0);
if (((PlayerSkin(lv_ownerOfTransport) == "MedicSkinLove") || (PlayerSkin(lv_ownerOfTransport) == "MedicSkinLoveVar1") || (PlayerSkin(lv_ownerOfTransport) == "MedicSkinLoveVar2"))) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(lv_player, libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_MedivacLoveOverlay.StormCutscene", lv_triggeringBehavior);
}
else if (((PlayerSkin(lv_ownerOfTransport) == "MedicEnforcerVar4") || (PlayerSkin(lv_ownerOfTransport) == "MedicEnforcer") || (PlayerSkin(lv_ownerOfTransport) == "MedicEnforcerVar3") || (PlayerSkin(lv_ownerOfTransport) == "MedicEnforcerVar1"))) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(lv_player, libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_MedivacEnforcerOverlay.StormCutscene", lv_triggeringBehavior);
}
else if (true) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(lv_player, libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_MedivacOverlay.StormCutscene", lv_triggeringBehavior);
}
libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI(true, lv_player);
while ((UnitHasBehavior2(lv_unit, "MedicInsideMedivacDropship") == true)) {
Wait(0.0625, c_timeGame);
}
SoundStop(SoundLastPlayed(), true);
SoundPlayForPlayer(SoundLink("Medic_MedivacDropship_2D_Off", -1), c_maxPlayers, PlayerGroupSingle(lv_player), 100.0, 0.0);
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(lv_player, "Cutscenes\\GameUI_MedivacEnforcerOverlay.StormCutscene", lv_triggeringBehavior);
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(lv_player, "Cutscenes\\GameUI_MedivacLoveOverlay.StormCutscene", lv_triggeringBehavior);
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(lv_player, "Cutscenes\\GameUI_MedivacOverlay.StormCutscene", lv_triggeringBehavior);
libGDHL_gf_UIHeroSpecificStatusFrameShowHideMedivacUI(false, lv_player);
if ((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) != "HeroLostVikingsController")) {
libGame_gf_CameraPanCameraForPlayerAndUpdateMapBoundsIfNecessary(lv_player, UnitGetPosition(lv_unit), 0.0, -1, 0.0, false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicMedivacDropshipOverlay_Init () {
libGDHL_gt_HeroMedicMedivacDropshipOverlay = TriggerCreate("libGDHL_gt_HeroMedicMedivacDropshipOverlay_Func");
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipOverlay, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMedicMedivacDropshipOverlay, null, "MedicInsideMedivacDropship", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Medivac Dropship Countdown Sound
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicMedivacDropshipCountdownSound_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itUnit;
playergroup lv_playersInVac;
string lv_triggeringEffect;
unit lv_dropship;
// Automatic Variable Declarations
unitgroup auto1F71FD26_g;
int auto1F71FD26_u;
// Variable Initialization
lv_playersInVac = PlayerGroupEmpty();
lv_triggeringEffect = EventPlayerEffectUsed();
lv_dropship = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
auto1F71FD26_g = UnitCargoGroup(lv_dropship);
auto1F71FD26_u = UnitGroupCount(auto1F71FD26_g, c_unitCountAll);
for (;; auto1F71FD26_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto1F71FD26_g, auto1F71FD26_u);
if (lv_itUnit == null) { break; }
if ((PlayerGroupHasPlayer(lv_playersInVac, UnitGetOwner(lv_itUnit)) == false)) {
PlayerGroupAdd(lv_playersInVac, UnitGetOwner(lv_itUnit));
}
}
if ((lv_triggeringEffect == "MedicMedivacDropshipCountdownSound")) {
SoundPlayForPlayer(SoundLink("Medic_MedivacDropship_2D_Warning_Beep_Regular", -1), c_maxPlayers, lv_playersInVac, 100.0, 0.0);
}
else {
SoundPlayForPlayer(SoundLink("Medic_MedivacDropship_2D_Warning_Beep_OneSecond", -1), c_maxPlayers, lv_playersInVac, 100.0, 0.0);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicMedivacDropshipCountdownSound_Init () {
libGDHL_gt_HeroMedicMedivacDropshipCountdownSound = TriggerCreate("libGDHL_gt_HeroMedicMedivacDropshipCountdownSound_Func");
TriggerEnable(libGDHL_gt_HeroMedicMedivacDropshipCountdownSound, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMedicMedivacDropshipCountdownSound, c_playerAny, "MedicMedivacDropshipCountdownSound");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMedicMedivacDropshipCountdownSound, c_playerAny, "MedicMedivacDropshipCountdownSoundFinal");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Medivac Being Boarded
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicMedivacBeingBoarded_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Conditions
if (testConds) {
if (!((UnitIsAlive(lv_caster) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(lv_caster, "MedicMedivacDropshipBoarding", EventPlayerEffectUsedUnit(c_effectUnitTarget), 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicMedivacBeingBoarded_Init () {
libGDHL_gt_HeroMedicMedivacBeingBoarded = TriggerCreate("libGDHL_gt_HeroMedicMedivacBeingBoarded_Func");
TriggerEnable(libGDHL_gt_HeroMedicMedivacBeingBoarded, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMedicMedivacBeingBoarded, c_playerAny, "MedicMedivacDropshipSmartCommandCreatePersistent");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Medivac Game Over Hide
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicMedivacGameOverHide_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
DialogControlSetVisible(libGDHL_gv_medicUI.lv_medivacAlert, PlayerGroupAll(), false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicMedivacGameOverHide_Init () {
libGDHL_gt_HeroMedicMedivacGameOverHide = TriggerCreate("libGDHL_gt_HeroMedicMedivacGameOverHide_Func");
TriggerEnable(libGDHL_gt_HeroMedicMedivacGameOverHide, false);
libGame_gf_ClearHeroSpecificUI(libGDHL_gt_HeroMedicMedivacGameOverHide);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Healing Beam Target Actions
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicHealingBeamTargetActions_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_medic;
unit lv_target;
// Automatic Variable Declarations
// Variable Initialization
lv_medic = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_target = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
if ((UnitFilterMatch(lv_target, UnitGetOwner(lv_target), UnitFilter((1 << c_targetFilterHeroic), 0, (1 << c_targetFilterEnemy) | (1 << c_targetFilterImmuneToFriendlyAbilities) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true)) {
libGDHL_gf_MedicUIHealingBeam(false, UnitGetOwner(lv_medic), lv_target);
}
else {
libGDHL_gf_MedicUIHealingBeam(true, UnitGetOwner(lv_medic), lv_target);
}
Wait(0.125, c_timeGame);
libNtve_gf_MakeUnitLookAtUnit(lv_medic, "RobotArmsOnly", lv_target, "Ref_Center");
while (!((UnitBehaviorCount(lv_medic, "MedicCastingHealingBeamBuff") == 0))) {
Wait(0.0625, c_timeGame);
}
libNtve_gf_SimpleLookAtStop(lv_medic, "RobotArmsOnly");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicHealingBeamTargetActions_Init () {
libGDHL_gt_HeroMedicHealingBeamTargetActions = TriggerCreate("libGDHL_gt_HeroMedicHealingBeamTargetActions_Func");
TriggerEnable(libGDHL_gt_HeroMedicHealingBeamTargetActions, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMedicHealingBeamTargetActions, c_playerAny, "MedicHealingBeamCreatePersistent");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Healing Beam UI Reset
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicHealingBeamUIReset_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_medic;
unit lv_target;
// Automatic Variable Declarations
// Variable Initialization
lv_medic = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_target = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
Wait(0.0625, c_timeGame);
if ((UnitBehaviorCount(lv_medic, "MedicCastingHealingBeamBuff") == 1)) {
}
else {
libGDHL_gf_MedicUIHealingBeam(true, UnitGetOwner(lv_medic), lv_target);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicHealingBeamUIReset_Init () {
libGDHL_gt_HeroMedicHealingBeamUIReset = TriggerCreate("libGDHL_gt_HeroMedicHealingBeamUIReset_Func");
TriggerEnable(libGDHL_gt_HeroMedicHealingBeamUIReset, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMedicHealingBeamUIReset, c_playerAny, "MedicHealingBeamFinalSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Hearth Cleanup
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicHearthCleanup_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_hearthingUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_hearthingUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_hearthingUnit, "MedicHealingBeamDestroyPersistent", lv_hearthingUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicHearthCleanup_Init () {
libGDHL_gt_HeroMedicHearthCleanup = TriggerCreate("libGDHL_gt_HeroMedicHearthCleanup_Func");
TriggerEnable(libGDHL_gt_HeroMedicHearthCleanup, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMedicHearthCleanup, c_playerAny, "HearthstoneTeleport");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Healing Beam Ally Range Visibility
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicHealingBeamAllyRangeVisibility_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(EventPlayerEffectUsedUnit(c_effectUnitTarget), "MedicHealingBeamApplyAllyRangeDisplayBuff", EventPlayerEffectUsedUnit(c_effectUnitCaster));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicHealingBeamAllyRangeVisibility_Init () {
libGDHL_gt_HeroMedicHealingBeamAllyRangeVisibility = TriggerCreate("libGDHL_gt_HeroMedicHealingBeamAllyRangeVisibility_Func");
TriggerEnable(libGDHL_gt_HeroMedicHealingBeamAllyRangeVisibility, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMedicHealingBeamAllyRangeVisibility, c_playerAny, "MedicHealingBeamApplyAllyRangeDisplayDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Medic - Safeguard Vanadium Plating Talent Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
unit lv_medic;
int lv_medicPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Conditions
if (testConds) {
if (!((UnitBehaviorCount(lv_unit, "MedicSafeguardBuff") >= 1))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_medic = UnitBehaviorEffectUnit(lv_unit, "MedicSafeguardBuff", c_effectUnitCaster, 0);
lv_medicPlayer = UnitGetOwner(lv_medic);
if ((PlayerHasTalent(lv_medicPlayer, "MedicVanadiumPlating") == true)) {
UnitCreateEffectUnit(lv_medic, "MedicSafeguardVanadiumPlatingTalentSet", lv_unit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc_Init () {
libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc = TriggerCreate("libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc_Func");
TriggerEnable(libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc, null, c_behaviorCategoryStun, c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc, null, c_behaviorCategoryStun, c_unitBehaviorChangeRefresh);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc, null, c_behaviorCategoryDebuffRoot, c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc, null, c_behaviorCategoryDebuffRoot, c_unitBehaviorChangeRefresh);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Monk - Sixth Sense Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMonkSixthSenseProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "MonkSixthSense") == true))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroMonk"))) {
return false;
}
if (!((UnitHasBehaviorWithCategoryFlag(lv_unit, c_behaviorCategoryBuffUnstoppable) == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_unit, "MonkSixthSenseApplyBlockBehavior", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMonkSixthSenseProc_Init () {
libGDHL_gt_HeroMonkSixthSenseProc = TriggerCreate("libGDHL_gt_HeroMonkSixthSenseProc_Func");
TriggerEnable(libGDHL_gt_HeroMonkSixthSenseProc, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroMonkSixthSenseProc, null, c_behaviorCategoryStun, c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroMonkSixthSenseProc, null, c_behaviorCategoryDebuffRoot, c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Monk - Deadly Reach Playstyle Update Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOff_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_khazimUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_khazimUnit = EventUnit();
// Conditions
if (testConds) {
if (!((libAIAI_gf_HeroAIIsPlayerActive(UnitGetOwner(EventUnit()), 0) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSetInt(c_gameCatalogUnit, UnitGetType(lv_khazimUnit), "HeroPlaystyleFlags[ChanneledAutoAttacker]", EventPlayer(), 0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOff_Init () {
libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOff = TriggerCreate("libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOff_Func");
TriggerEnable(libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOff, null, "MonkDeadlyReachCasterBehavior", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Monk - Deadly Reach Playstyle Update On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_khazimUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_khazimUnit = EventUnit();
// Conditions
if (testConds) {
if (!((libAIAI_gf_HeroAIIsPlayerActive(UnitGetOwner(EventUnit()), 0) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSetInt(c_gameCatalogUnit, UnitGetType(lv_khazimUnit), "HeroPlaystyleFlags[ChanneledAutoAttacker]", EventPlayer(), 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOn_Init () {
libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOn = TriggerCreate("libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOn_Func");
TriggerEnable(libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOn, null, "MonkDeadlyReachCasterBehavior", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero -Monk - Divine Palm - Set Life
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMonkDivinePalmSetLife_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
UnitSetPropertyFixed(EventUnit(), c_unitPropLife, 1.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMonkDivinePalmSetLife_Init () {
libGDHL_gt_HeroMonkDivinePalmSetLife = TriggerCreate("libGDHL_gt_HeroMonkDivinePalmSetLife_Func");
TriggerEnable(libGDHL_gt_HeroMonkDivinePalmSetLife, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMonkDivinePalmSetLife, null, "MonkDivinePalmProcBehavior", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Monk - Divine Palm Overlay On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMonkDivinePalmOverlayOn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Actions
if (!runActions) {
return true;
}
if ((UnitIsAlive(lv_unit) == true) && (UnitTestState(lv_unit, c_unitStateHallucination) == false) && (UnitHasBehavior2(lv_unit, "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(UnitGetOwner(lv_unit), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMonkDivinePalmOverlayOn_Init () {
libGDHL_gt_HeroMonkDivinePalmOverlayOn = TriggerCreate("libGDHL_gt_HeroMonkDivinePalmOverlayOn_Func");
TriggerEnable(libGDHL_gt_HeroMonkDivinePalmOverlayOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMonkDivinePalmOverlayOn, null, "MonkDivinePalmProcBehavior", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Monk - Divine Palm Overlay Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMonkDivinePalmOverlayOff_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(lv_unit, "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(lv_unit), "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMonkDivinePalmOverlayOff_Init () {
libGDHL_gt_HeroMonkDivinePalmOverlayOff = TriggerCreate("libGDHL_gt_HeroMonkDivinePalmOverlayOff_Func");
TriggerEnable(libGDHL_gt_HeroMonkDivinePalmOverlayOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMonkDivinePalmOverlayOff, null, "MonkDivinePalmProcBehavior", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Monk - Seven-Sided Strike Take Facing
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMonkSevenSidedStrikeTakeFacing_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroMonkFacing[UnitGetOwner(lv_unit)] = UnitGetFacing(lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMonkSevenSidedStrikeTakeFacing_Init () {
libGDHL_gt_HeroMonkSevenSidedStrikeTakeFacing = TriggerCreate("libGDHL_gt_HeroMonkSevenSidedStrikeTakeFacing_Func");
TriggerEnable(libGDHL_gt_HeroMonkSevenSidedStrikeTakeFacing, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroMonkSevenSidedStrikeTakeFacing, null, AbilityCommand("MonkSevenSidedStrike", 0), c_unitAbilStageAll, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Monk - Seven-Sided Strike Finish Set Facing
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMonkSevenSidedStrikeFinishSetFacing_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(lv_unit, "MonkSevenSidedStrikeIdle") == true)) {
UnitSetFacing(lv_unit, 270.0, 0.0);
}
else {
UnitSetFacing(lv_unit, libGDHL_gv_heroMonkFacing[UnitGetOwner(lv_unit)], 0.0);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMonkSevenSidedStrikeFinishSetFacing_Init () {
libGDHL_gt_HeroMonkSevenSidedStrikeFinishSetFacing = TriggerCreate("libGDHL_gt_HeroMonkSevenSidedStrikeFinishSetFacing_Func");
TriggerEnable(libGDHL_gt_HeroMonkSevenSidedStrikeFinishSetFacing, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMonkSevenSidedStrikeFinishSetFacing, c_playerAny, "MonkSevenSidedStrikeFinalTeleport");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMonkSevenSidedStrikeFinishSetFacing, c_playerAny, "MonkSevenSidedStrikeIdleTeleport");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Monk - Abathur Ultimate Evolution Clone
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMonkAbathurUltimateEvolutionClone_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_ownerofAbathur;
int lv_ownerofTarget;
// Automatic Variable Declarations
// Variable Initialization
lv_ownerofAbathur = libGDHL_gf_AbathurUltimateEvolutionHeroCopiedAbathurOwner();
lv_ownerofTarget = libGDHL_gf_AbathurUltimateEvolutionHeroCopiedTargetOwner();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_ownerofAbathur].lv_activeVehicle) == "HeroMonk"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(libGame_gv_players[lv_ownerofTarget].lv_heroUnit, "MonkTranscendenceCarryBehavior") == true)) {
UnitBehaviorAdd(libGame_gv_players[lv_ownerofAbathur].lv_activeVehicle, "MonkTranscendenceCarryBehavior", libGame_gv_players[lv_ownerofAbathur].lv_activeVehicle, 1);
}
if ((UnitHasBehavior2(libGame_gv_players[lv_ownerofTarget].lv_heroUnit, "MonkIronFistsCarryBehavior") == true)) {
UnitBehaviorAdd(libGame_gv_players[lv_ownerofAbathur].lv_activeVehicle, "MonkIronFistsCarryBehavior", libGame_gv_players[lv_ownerofAbathur].lv_activeVehicle, 1);
}
if ((UnitHasBehavior2(libGame_gv_players[lv_ownerofTarget].lv_heroUnit, "MonkInsightQuestToken") == true)) {
UnitBehaviorAdd(libGame_gv_players[lv_ownerofAbathur].lv_activeVehicle, "MonkInsightQuestToken", libGame_gv_players[lv_ownerofAbathur].lv_activeVehicle, 1);
UnitSetTokenCount(libGame_gv_players[lv_ownerofAbathur].lv_activeVehicle, "MonkInsightQuestToken", 1.0, libGame_gv_players[lv_ownerofAbathur].lv_activeVehicle);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMonkAbathurUltimateEvolutionClone_Init () {
libGDHL_gt_HeroMonkAbathurUltimateEvolutionClone = TriggerCreate("libGDHL_gt_HeroMonkAbathurUltimateEvolutionClone_Func");
libGDHL_gf_AbathurUltimateEvolutionHeroCopied(libGDHL_gt_HeroMonkAbathurUltimateEvolutionClone);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Muradin - Haymaker
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMuradinHaymaker_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_targetUnit;
unit lv_muradin;
fixed lv_abilityRange;
fixed lv_distanceFromMuradinToPlayerTargetPoint;
fixed lv_muradinRadius;
point lv_targetPoint;
point lv_actualTargetPoint;
fixed lv_modifiedDistance;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_muradin = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_targetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_abilityRange = libGDHL_gv_heroMuradinHaymakerLaunchDistance;
lv_targetPoint = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_targetUnit), lv_abilityRange, UnitGetPosition(lv_muradin));
lv_modifiedDistance = (lv_abilityRange + 0.0);
lv_actualTargetPoint = lv_targetPoint;
while ((PointPathingPassable(lv_actualTargetPoint) == false)) {
lv_modifiedDistance += 0.125;
lv_actualTargetPoint = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_targetUnit), lv_modifiedDistance, UnitGetPosition(lv_muradin));
if ((lv_modifiedDistance >= libGDHL_gv_heroMuradinHaymakerCutoffDistance)) {
return true;
}
}
if ((UnitBehaviorCount(lv_targetUnit, "Dead") == 0)) {
if ((UnitHasBehavior2(lv_muradin, "HaymakerGrandSlamCarryBehavior") == true)) {
UnitCreateEffectPoint(lv_targetUnit, "HaymakerGrandSlamLaunchTarget", lv_actualTargetPoint);
}
else {
UnitCreateEffectPoint(lv_targetUnit, "HaymakerLaunchTarget", lv_actualTargetPoint);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMuradinHaymaker_Init () {
libGDHL_gt_HeroMuradinHaymaker = TriggerCreate("libGDHL_gt_HeroMuradinHaymaker_Func");
TriggerEnable(libGDHL_gt_HeroMuradinHaymaker, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMuradinHaymaker, c_playerAny, "HaymakerImpactDelayPersistent");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Muradin - Avatar Apply Health Buff
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMuradinAvatarApplyHealthBuff_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSet(c_gameCatalogBehavior, "MuradinAvatarHealthBuff", "Modification.VitalMaxArray[" + IntToString(0) + "]", lv_player, CatalogFieldValueGet(c_gameCatalogBehavior, "MuradinAvatar", "Modification.VitalMaxArray[" + IntToString(0) + "]", lv_player));
UnitCreateEffectUnit(lv_unit, "MuradinAvatarApplyBehaviorsSet", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMuradinAvatarApplyHealthBuff_Init () {
libGDHL_gt_HeroMuradinAvatarApplyHealthBuff = TriggerCreate("libGDHL_gt_HeroMuradinAvatarApplyHealthBuff_Func");
TriggerEnable(libGDHL_gt_HeroMuradinAvatarApplyHealthBuff, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroMuradinAvatarApplyHealthBuff, null, AbilityCommand("MuradinAvatar", 0), c_abilEffectStageCast, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Muradin - Haymaker Grand Slam Talent Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMuradinHaymakerGrandSlamTalentProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_killedUnit;
int lv_killingPlayer;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_killedUnit = libGame_gf_HeroParticipatedInTakedownKilledHero();
lv_killingPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_killingPlayer, "MuradinMasteryHaymakerGrandSlam") == true))) {
return false;
}
if (!((UnitHasBehavior2(lv_killedUnit, "MuradinHaymakerGrandSlamTalentDeathMarker") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_unit = UnitBehaviorEffectUnit(lv_killedUnit, "MuradinHaymakerGrandSlamTalentDeathMarker", c_effectUnitCaster, 0);
UnitCreateEffectUnit(lv_unit, "MuradinHaymakerGrandSlamTalentModifyChargeCount", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMuradinHaymakerGrandSlamTalentProc_Init () {
libGDHL_gt_HeroMuradinHaymakerGrandSlamTalentProc = TriggerCreate("libGDHL_gt_HeroMuradinHaymakerGrandSlamTalentProc_Func");
TriggerEnable(libGDHL_gt_HeroMuradinHaymakerGrandSlamTalentProc, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroMuradinHaymakerGrandSlamTalentProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Muradin - It's Hammer Time On Death Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMuradinItsHammerTimeOnDeathProc_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_i;
unit lv_killedUnit;
int lv_killingPlayer;
unit[libCore_gv_bALMaxPlayersOnATeam + 1] lv_unit;
// Automatic Variable Declarations
const int auto534F8C5E_ae = 4;
const int auto534F8C5E_ai = 1;
// Variable Initialization
lv_killedUnit = libGame_gf_HeroParticipatedInTakedownKilledHero();
lv_killingPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
// Conditions
if (testConds) {
if (!((lv_killingPlayer >= 1))) {
return false;
}
if (!((lv_killingPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitHasBehavior2(lv_killedUnit, "MuradinStormBoltPerfectStormKillBonusBehavior") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_i = 0;
for ( ; ( (auto534F8C5E_ai >= 0 && lv_i <= auto534F8C5E_ae) || (auto534F8C5E_ai < 0 && lv_i >= auto534F8C5E_ae) ) ; lv_i += auto534F8C5E_ai ) {
lv_unit[lv_i] = UnitBehaviorEffectUnit(lv_killedUnit, "MuradinStormBoltPerfectStormKillBonusBehavior", c_effectUnitCaster, lv_i);
if ((UnitGetOwner(lv_unit[lv_i]) == lv_killingPlayer)) {
UnitCreateEffectUnit(lv_unit[lv_i], "MuradinStormboltPerfectStormKillCDReset", lv_unit[lv_i]);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMuradinItsHammerTimeOnDeathProc_Init () {
libGDHL_gt_HeroMuradinItsHammerTimeOnDeathProc = TriggerCreate("libGDHL_gt_HeroMuradinItsHammerTimeOnDeathProc_Func");
TriggerEnable(libGDHL_gt_HeroMuradinItsHammerTimeOnDeathProc, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroMuradinItsHammerTimeOnDeathProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Muradin - Free Piercing Stormbolt
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMuradinFreePiercingStormbolt_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroLevelUpPlayer();
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((libGame_gf_HeroLevelUpLevel() >= 10))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroMuradin"))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "MuradinStormBoltIt'sHammerTime") == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PlayerAddTalent(lv_player, "MuradinStormBoltIt'sHammerTime");
UnitCreateEffectUnit(lv_unit, "MuradinStormboltItsHammerTimeInstantComplete", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMuradinFreePiercingStormbolt_Init () {
libGDHL_gt_HeroMuradinFreePiercingStormbolt = TriggerCreate("libGDHL_gt_HeroMuradinFreePiercingStormbolt_Func");
libGame_gf_HeroLevelUp(libGDHL_gt_HeroMuradinFreePiercingStormbolt);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Muradin - Reset Free Piercing Stormbolt
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMuradinResetFreePiercingStormbolt_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroMuradin"))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "MuradinStormBoltIt'sHammerTime") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PlayerRemoveTalent(lv_player, "MuradinStormBoltIt'sHammerTime");
UnitCreateEffectUnit(lv_unit, "MuradinStormboltItsHammerTimeInstantReset", lv_unit);
Wait(0.125, c_timeGame);
if ((UnitBehaviorCount(EventUnit(), "HeroDummyVeterancy") >= 10)) {
PlayerAddTalent(lv_player, "MuradinStormBoltIt'sHammerTime");
UnitCreateEffectUnit(lv_unit, "MuradinStormboltItsHammerTimeInstantComplete", lv_unit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMuradinResetFreePiercingStormbolt_Init () {
libGDHL_gt_HeroMuradinResetFreePiercingStormbolt = TriggerCreate("libGDHL_gt_HeroMuradinResetFreePiercingStormbolt_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMuradinResetFreePiercingStormbolt, null, "MuradinItsHammerTimeTokenCounter", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Murky UI Initialize
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_MurkyUIInitialize_Func (bool testConds, bool runActions) {
int init_i;
// Variable Declarations
int[6] lv_panels;
int lv_currentPanelLayer;
// Automatic Variable Declarations
// Variable Initialization
for (init_i = 0; init_i <= 5; init_i += 1) {
lv_panels[init_i] = c_invalidDialogControlId;
}
// Actions
if (!runActions) {
return true;
}
DialogControlCreateInPanelFromTemplate(libUIUI_gv_heroSpecificStatusContainer, c_triggerControlTypePanel, "Murky/MurkyEggFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libGDHL_gv_murkyUI.lv_mainPanel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "MurkyEggOk");
libGDHL_gv_murkyUI.lv_eggOk = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "MurkyEggBroken");
libGDHL_gv_murkyUI.lv_eggBroken = DialogControlLastCreated();
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_MurkyUIInitialize_Init () {
libGDHL_gt_MurkyUIInitialize = TriggerCreate("libGDHL_gt_MurkyUIInitialize_Func");
libCore_gf_IncludeModInitialization(libGDHL_gt_MurkyUIInitialize);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Murky - Murky Egg Dies
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMurkyMurkyEggDies_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_eggOwnerPlayer;
int lv_eggOwnerPlayerTeam;
unit lv_murkyHeroUnit;
int lv_killingPlayer;
int lv_level;
int lv_enemyTeam;
fixed lv_revealDuration;
fixed lv_cooldownOnEgg;
fixed lv_cooldownToAdd;
playergroup lv_killingTeamGroup;
int lv_itPlayer;
playergroup lv_awardGroup;
fixed lv_xPGranted;
playergroup lv_killingGroup;
// Automatic Variable Declarations
// Variable Initialization
lv_killingTeamGroup = PlayerGroupEmpty();
lv_awardGroup = PlayerGroupEmpty();
lv_killingGroup = PlayerGroupEmpty();
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "MurkyRespawnEgg"))) {
return false;
}
if (!(((libGame_gv_heroDeathMurkyRespawnEggs[EventPlayer()] == EventUnit()) || (libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[EventPlayer()] == EventUnit())))) {
return false;
}
if (!((libCore_gv_sYSGameMode != libCore_ge_GameModes_ModeC))) {
return false;
}
if (!((UnitGetType(libGame_gv_players[EventPlayer()].lv_heroUnit) == "HeroMurky"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_eggOwnerPlayer = EventPlayer();
lv_eggOwnerPlayerTeam = libGame_gf_TeamNumberOfPlayer(lv_eggOwnerPlayer);
lv_murkyHeroUnit = libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit;
if ((UnitGetOwner(libNtve_gf_KillingUnit()) != lv_eggOwnerPlayer) && (PlayerHasTalent(lv_eggOwnerPlayer, "MurkyEggShell") == true)) {
UnitCreateEffectUnit(lv_murkyHeroUnit, "MurkyEggShellProcSet", lv_murkyHeroUnit);
}
if ((UnitIsValid(lv_murkyHeroUnit) == false)) {
libGame_gv_heroDeathMurkyRespawnEggs[lv_eggOwnerPlayer] = null;
libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lv_eggOwnerPlayer] = null;
return true;
}
if ((libGame_gv_heroDeathMurkyRespawnEggs[EventPlayer()] == EventUnit())) {
if ((libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[EventPlayer()] != null)) {
libGame_gv_heroDeathMurkyRespawnEggs[lv_eggOwnerPlayer] = libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lv_eggOwnerPlayer];
libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lv_eggOwnerPlayer] = null;
}
else {
libGame_gv_heroDeathMurkyRespawnEggs[lv_eggOwnerPlayer] = null;
}
}
if ((libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[EventPlayer()] == EventUnit())) {
libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lv_eggOwnerPlayer] = null;
}
libGame_gv_players[lv_eggOwnerPlayer].lv_soundDeathAlertPrefix = "UI_HeroDeath_Murky_";
lv_killingPlayer = libNtve_gf_KillingPlayer();
libGame_gv_heroDeathMurkyRespawnEggDeathTimeStamp[lv_eggOwnerPlayer] = TimerGetElapsed(libGame_gv_gameTimer);
if ((UnitHasBehavior2(libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit, "Dead") == true) && (libGame_gv_players[lv_eggOwnerPlayer].lv_isDead == true)) {
UnitSetPosition(libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit, libGame_gv_players[lv_eggOwnerPlayer].lv_spawnPoint, false);
lv_level = libGame_gf_GetCustomValueLevelofHeroUnit(lv_murkyHeroUnit);
if (((TimerGetElapsed(libGame_gv_players[lv_eggOwnerPlayer].lv_respawnTimer) > 0.0) || ((TimerGetElapsed(libGame_gv_players[lv_eggOwnerPlayer].lv_respawnTimer) == 0.0) && (TimerGetRemaining(libGame_gv_players[lv_eggOwnerPlayer].lv_respawnTimer) != libCore_gf_HeroDeathTime(lv_eggOwnerPlayer, lv_level))))) {
if ((libGDHL_gv_murkyDeathOverlayActive[lv_eggOwnerPlayer] == true) && (libGame_gv_heroDeathMurkyRespawnEggs[EventPlayer()] == null) && (libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[EventPlayer()] == null)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit), "Cutscenes\\GameUI_MedivacOverlay.StormCutscene", "MurkyDeathTimerDummy");
libGDHL_gv_murkyDeathOverlayActive[lv_eggOwnerPlayer] = false;
libUIUI_gf_FullscreenOverlaysShowHideDeathOverlay(true, lv_eggOwnerPlayer);
}
if ((libGame_gv_heroDeathMurkyRespawnEggs[EventPlayer()] == null) && (libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[EventPlayer()] == null)) {
libGame_gf_HeroDeathModifyRespawnTimer(lv_eggOwnerPlayer, (libCore_gf_HeroDeathTime(lv_eggOwnerPlayer, lv_level) - libCore_gv_bALMurkyWithEggDeathTime));
SoundPlayForPlayer(SoundLink("Murky_Death_NoEgg_Vox", -1), lv_eggOwnerPlayer, PlayerGroupAll(), 100.0, 0.0);
}
}
}
else {
if ((libGame_gv_heroDeathMurkyRespawnEggs[EventPlayer()] == null) && (libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[EventPlayer()] == null)) {
UnitBehaviorAdd(libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit, "MurkyDeadEggReveal", libNtve_gf_KillingUnit(), 1);
}
lv_enemyTeam = (3 - lv_eggOwnerPlayerTeam);
lv_revealDuration = CatalogFieldValueGetAsFixed(c_gameCatalogBehavior, "MurkyDeadEggReveal", "Duration", c_playerAny);
libGDHL_gv_murkyRevealPing[lv_eggOwnerPlayer] = PingLastCreated();
if ((UnitGetOwner(libNtve_gf_KillingUnit()) <= libCore_gv_bALMaxPlayers)) {
if ((PlayerHasTalent(lv_eggOwnerPlayer, "MurkyShellGame") == true)) {
TextExpressionSetToken("Param/Expression/lib_GDHL_39CFD00B", "A", UnitTypeGetName(UnitGetType(libGame_gv_players[UnitGetOwner(libNtve_gf_KillingUnit())].lv_heroUnit)));
TextExpressionSetToken("Param/Expression/lib_GDHL_39CFD00B", "B", FixedToText(libGDHL_gv_mURKY_BAL_EGG_DEATH_TALENT, 0));
UIDisplayMessage(libGame_gv_teams[lv_enemyTeam].lv_teamPlayerGroupNoNPCPlayers, c_messageAreaChat, TextExpressionAssemble("Param/Expression/lib_GDHL_39CFD00B"));
}
else {
TextExpressionSetToken("Param/Expression/lib_GDHL_886F69BD", "A", UnitTypeGetName(UnitGetType(libGame_gv_players[UnitGetOwner(libNtve_gf_KillingUnit())].lv_heroUnit)));
TextExpressionSetToken("Param/Expression/lib_GDHL_886F69BD", "B", FixedToText(libGDHL_gv_mURKY_BAL_EGG_DEATH_cd, 0));
UIDisplayMessage(libGame_gv_teams[lv_enemyTeam].lv_teamPlayerGroupNoNPCPlayers, c_messageAreaChat, TextExpressionAssemble("Param/Expression/lib_GDHL_886F69BD"));
}
}
else if (((UnitGetOwner(libNtve_gf_KillingUnit()) == libCore_gv_cOMPUTER_TeamOrder) || (UnitGetOwner(libNtve_gf_KillingUnit()) == libCore_gv_cOMPUTER_TeamChaos) || (libGame_gv_heroDeathMurkyRespawnEggs[EventPlayer()] != null) || (libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[EventPlayer()] != null))) {
if ((PlayerHasTalent(lv_eggOwnerPlayer, "MurkyShellGame") == true)) {
TextExpressionSetToken("Param/Expression/lib_GDHL_06884218", "A", StringExternal("Param/Value/lib_GDHL_B22AD03A"));
TextExpressionSetToken("Param/Expression/lib_GDHL_06884218", "B", FixedToText(libGDHL_gv_mURKY_BAL_EGG_DEATH_TALENT, 0));
UIDisplayMessage(libGame_gv_teams[lv_enemyTeam].lv_teamPlayerGroupNoNPCPlayers, c_messageAreaChat, TextExpressionAssemble("Param/Expression/lib_GDHL_06884218"));
}
else {
TextExpressionSetToken("Param/Expression/lib_GDHL_2F88A6C6", "A", StringExternal("Param/Value/lib_GDHL_A749A22B"));
TextExpressionSetToken("Param/Expression/lib_GDHL_2F88A6C6", "B", FixedToText(libGDHL_gv_mURKY_BAL_EGG_DEATH_cd, 0));
UIDisplayMessage(libGame_gv_teams[lv_enemyTeam].lv_teamPlayerGroupNoNPCPlayers, c_messageAreaChat, TextExpressionAssemble("Param/Expression/lib_GDHL_2F88A6C6"));
}
}
else if ((UnitGetOwner(libNtve_gf_KillingUnit()) == libCore_gv_cOMPUTER_Hostile) && (libGame_gv_heroDeathMurkyRespawnEggs[EventPlayer()] != null) && (libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[EventPlayer()] != null)) {
if ((PlayerHasTalent(lv_eggOwnerPlayer, "MurkyShellGame") == true)) {
TextExpressionSetToken("Param/Expression/lib_GDHL_2226FB00", "A", StringExternal("Param/Value/lib_GDHL_EB28EBD4"));
TextExpressionSetToken("Param/Expression/lib_GDHL_2226FB00", "B", FixedToText(libGDHL_gv_mURKY_BAL_EGG_DEATH_TALENT, 0));
UIDisplayMessage(libGame_gv_teams[lv_enemyTeam].lv_teamPlayerGroupNoNPCPlayers, c_messageAreaChat, TextExpressionAssemble("Param/Expression/lib_GDHL_2226FB00"));
}
else {
TextExpressionSetToken("Param/Expression/lib_GDHL_C06C1EB1", "A", StringExternal("Param/Value/lib_GDHL_D5FDD47E"));
TextExpressionSetToken("Param/Expression/lib_GDHL_C06C1EB1", "B", FixedToText(libGDHL_gv_mURKY_BAL_EGG_DEATH_cd, 0));
UIDisplayMessage(libGame_gv_teams[lv_enemyTeam].lv_teamPlayerGroupNoNPCPlayers, c_messageAreaChat, TextExpressionAssemble("Param/Expression/lib_GDHL_C06C1EB1"));
}
}
}
SoundPlayForPlayer(SoundLink("Murky_RespawnEgg_Death_Vox", -1), lv_eggOwnerPlayer, PlayerGroupSingle(lv_eggOwnerPlayer), 100.0, 0.0);
libGDHL_gf_UIHeroSpecificStatusFrameUpdateMurkyEggStatus(UnitGetOwner(EventUnit()));
lv_cooldownOnEgg = UnitGetCooldown(libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit, CatalogFieldValueGet(c_gameCatalogAbil, "MurkyRespawnEgg", "Cost[" + IntToString(0) + "].Cooldown.Link", UnitGetOwner(libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit)));
UnitCreateEffectUnit(lv_murkyHeroUnit, "RespawnEggCancelOrder", lv_murkyHeroUnit);
if ((PlayerHasTalent(lv_eggOwnerPlayer, "MurkyShellGame") == false) && (lv_cooldownOnEgg <= libGDHL_gv_mURKY_BAL_EGG_DEATH_cd)) {
lv_cooldownToAdd = (libGDHL_gv_mURKY_BAL_EGG_DEATH_cd - lv_cooldownOnEgg);
UnitModifyCooldown(libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit, CatalogFieldValueGet(c_gameCatalogAbil, "MurkyRespawnEgg", "Cost[" + IntToString(0) + "].Cooldown.Link", UnitGetOwner(libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit)), lv_cooldownToAdd, c_cooldownOperationAdd);
TimerStart(libGDHL_gv_murkyEggDeathTimer[lv_eggOwnerPlayer], libGDHL_gv_mURKY_BAL_EGG_DEATH_cd, false, c_timeGame);
}
else {
if ((PlayerHasTalent(lv_eggOwnerPlayer, "MurkyShellGame") == true) && (lv_cooldownOnEgg <= libGDHL_gv_mURKY_BAL_EGG_DEATH_TALENT)) {
lv_cooldownToAdd = (libGDHL_gv_mURKY_BAL_EGG_DEATH_TALENT - lv_cooldownOnEgg);
UnitModifyCooldown(libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit, CatalogFieldValueGet(c_gameCatalogAbil, "MurkyRespawnEgg", "Cost[" + IntToString(0) + "].Cooldown.Link", UnitGetOwner(libGame_gv_players[lv_eggOwnerPlayer].lv_heroUnit)), lv_cooldownToAdd, c_cooldownOperationAdd);
TimerStart(libGDHL_gv_murkyEggDeathTimer[lv_eggOwnerPlayer], libGDHL_gv_mURKY_BAL_EGG_DEATH_TALENT, false, c_timeGame);
}
else {
if ((PlayerHasTalent(lv_eggOwnerPlayer, "MurkyShellGame") == true)) {
TimerStart(libGDHL_gv_murkyEggDeathTimer[lv_eggOwnerPlayer], libGDHL_gv_mURKY_BAL_EGG_DEATH_TALENT, false, c_timeGame);
}
else {
TimerStart(libGDHL_gv_murkyEggDeathTimer[lv_eggOwnerPlayer], libGDHL_gv_mURKY_BAL_EGG_DEATH_cd, false, c_timeGame);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMurkyMurkyEggDies_Init () {
libGDHL_gt_HeroMurkyMurkyEggDies = TriggerCreate("libGDHL_gt_HeroMurkyMurkyEggDies_Func");
TriggerEnable(libGDHL_gt_HeroMurkyMurkyEggDies, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroMurkyMurkyEggDies, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Murky - Murky Dies
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMurkyMurkyDies_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_deadUnit;
int lv_deadPlayer;
int lv_killingPlayer;
playergroup lv_killingTeamGroup;
playergroup lv_killingGroup;
int lv_i;
fixed lv_respawnTime;
// Automatic Variable Declarations
// Variable Initialization
lv_killingTeamGroup = PlayerGroupEmpty();
lv_killingGroup = PlayerGroupEmpty();
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroMurky"))) {
return false;
}
if (!((EventUnit() == libGame_gv_players[UnitGetOwner(EventUnit())].lv_heroUnit))) {
return false;
}
if (!((UnitHasBehavior2(EventUnit(), "AbnormalDeath") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_deadUnit = EventUnit();
lv_deadPlayer = EventPlayer();
lv_killingPlayer = libNtve_gf_KillingPlayer();
PingDestroy(libGDHL_gv_murkyRevealPing[lv_deadPlayer]);
libGame_gv_players[lv_deadPlayer].lv_isDead = true;
libGame_gf_SendEventHeroKilled(lv_killingPlayer, lv_deadUnit);
lv_killingTeamGroup = libGame_gf_EnemyPlayerGroupOfPlayer(lv_deadPlayer);
lv_killingGroup = libGame_gf_HeroDeathGetKillingGroupFromKillingTeamGroupAndDeadUnit(lv_killingTeamGroup, lv_killingPlayer, lv_deadUnit);
if (((UnitIsAlive(libGame_gv_heroDeathMurkyRespawnEggs[lv_deadPlayer]) == false) || (libGame_gv_heroDeathMurkyRespawnEggs[lv_deadPlayer] == null))) {
libNtve_gf_CreateUnitsWithDefaultFacing(1, "DeadUnitCameraTarget", 0, lv_deadPlayer, UnitGetPosition(lv_deadUnit), null);
libGame_gv_players[lv_deadPlayer].lv_cameraDeadUnitCameraTarget = UnitLastCreated();
libGame_gv_players[lv_deadPlayer].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(libGame_gv_players[lv_deadPlayer].lv_cameraDeadUnitCameraTarget);
libGame_gf_HeroDeathUpdateUIElementsForDeath(true, true, true, lv_deadPlayer, lv_killingPlayer);
lv_respawnTime = libCore_gf_HeroDeathTime(lv_deadPlayer, UnitLevel(libGame_gv_players[lv_deadPlayer].lv_heroUnit));
}
else {
UnitBehaviorAdd(libGame_gv_heroDeathMurkyRespawnEggs[lv_deadPlayer], "MurkyEggAnimDelay", libGame_gv_players[lv_deadPlayer].lv_heroUnit, 1);
UnitBehaviorAdd(libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[lv_deadPlayer], "MurkyEggAnimDelay", libGame_gv_players[lv_deadPlayer].lv_heroUnit, 1);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "DeadUnitCameraTarget", 0, lv_deadPlayer, UnitGetPosition(lv_deadUnit), null);
libGame_gv_players[lv_deadPlayer].lv_cameraDeadUnitCameraTarget = UnitLastCreated();
if ((libCore_gv_sYSGameMode != libCore_ge_GameModes_Tutorial1Deprecated)) {
libGame_gv_players[lv_deadPlayer].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(libGame_gv_players[lv_deadPlayer].lv_cameraDeadUnitCameraTarget);
}
libGame_gv_players[lv_deadPlayer].lv_cameraCameraLockInterrupt = true;
libGame_gf_HeroDeathUpdateUIElementsForDeath(false, true, false, lv_deadPlayer, lv_killingPlayer);
libUIUI_gf_FullscreenOverlayAddItemForPlayer(lv_deadPlayer, libUIUI_ge_FullscreenOverlayPriorities_Death, "Cutscenes\\GameUI_MurkyRespawnOverlay.StormCutscene", "MurkyDeathTimerDummy");
libGDHL_gv_murkyDeathOverlayActive[lv_deadPlayer] = true;
lv_respawnTime = libCore_gv_bALMurkyWithEggDeathTime;
}
libGame_gf_CameraUpdateCameraForPlayer(lv_deadPlayer);
SoundPlayForPlayer(SoundLink("Murky_Death_NoEgg_Vox", -1), lv_deadPlayer, lv_killingGroup, 100.0, 0.0);
libGame_gf_HeroDeathStartRespawnTimer(lv_deadPlayer, lv_respawnTime);
if ((libGDHL_gv_murkyEggDeathTimer[lv_deadPlayer] != null)) {
}
libGame_gf_HeroDeathPortHeroBackAndSetDeathState(lv_deadPlayer, libGame_gv_players[lv_deadPlayer].lv_spawnPoint);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMurkyMurkyDies_Init () {
libGDHL_gt_HeroMurkyMurkyDies = TriggerCreate("libGDHL_gt_HeroMurkyMurkyDies_Func");
TriggerEnable(libGDHL_gt_HeroMurkyMurkyDies, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroMurkyMurkyDies, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Murky - Revive While Egg Is Alive
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMurkyReviveWhileEggIsAlive_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_respawningPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_respawningPlayer = libGame_gf_HeroRespawnPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_respawningPlayer].lv_heroUnit) == "HeroMurky"))) {
return false;
}
if (!((libGDHL_gv_murkyDeathOverlayActive[lv_respawningPlayer] == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_murkyDeathOverlayActive[lv_respawningPlayer] = false;
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(libGame_gv_players[lv_respawningPlayer].lv_heroUnit), "Cutscenes\\GameUI_MedivacOverlay.StormCutscene", "MurkyDeathTimerDummy");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMurkyReviveWhileEggIsAlive_Init () {
libGDHL_gt_HeroMurkyReviveWhileEggIsAlive = TriggerCreate("libGDHL_gt_HeroMurkyReviveWhileEggIsAlive_Func");
TriggerEnable(libGDHL_gt_HeroMurkyReviveWhileEggIsAlive, false);
libGame_gf_HeroRespawn(libGDHL_gt_HeroMurkyReviveWhileEggIsAlive);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Murky - Create Egg On Spawn
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMurkyCreateEggOnSpawn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_egg;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((libCore_gv_sYSGameMode != libCore_ge_GameModes_ModeC))) {
return false;
}
if (!((UnitGetType(libGame_gv_players[libGame_gf_HeroSpawnPlayer()].lv_heroUnit) == "HeroMurky"))) {
return false;
}
if (!((libGame_gv_heroDeathMurkyRespawnEggs[libGame_gf_HeroSpawnPlayer()] == null))) {
return false;
}
if (!((libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[libGame_gf_HeroSpawnPlayer()] == null))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gf_HeroMurkyCreateEggAtBaseforPlayer(libGame_gf_HeroSpawnPlayer());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMurkyCreateEggOnSpawn_Init () {
libGDHL_gt_HeroMurkyCreateEggOnSpawn = TriggerCreate("libGDHL_gt_HeroMurkyCreateEggOnSpawn_Func");
TriggerEnable(libGDHL_gt_HeroMurkyCreateEggOnSpawn, false);
libGame_gf_HeroSpawn(libGDHL_gt_HeroMurkyCreateEggOnSpawn);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Murky - Egg Spawns, Change Death Sound
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMurkyEggSpawnsChangeDeathSound_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_eggUnit;
int lv_murkyPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_eggUnit = EventUnitCreatedUnit();
// Conditions
if (testConds) {
if (!((UnitGetType(lv_eggUnit) == "MurkyRespawnEgg"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_murkyPlayer = UnitGetOwner(lv_eggUnit);
libGame_gv_players[lv_murkyPlayer].lv_soundDeathAlertPrefix = "UI_HeroDeath_Murky_Short_";
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMurkyEggSpawnsChangeDeathSound_Init () {
libGDHL_gt_HeroMurkyEggSpawnsChangeDeathSound = TriggerCreate("libGDHL_gt_HeroMurkyEggSpawnsChangeDeathSound_Func");
TriggerEnable(libGDHL_gt_HeroMurkyEggSpawnsChangeDeathSound, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroMurkyEggSpawnsChangeDeathSound, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Murky - Clean Up Egg UI For Debug Hero Swap
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMurkyCleanUpEggUIForDebugHeroSwap_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = libGame_gf_DebugHeroSwappedPlayer();
if ((libGame_gv_players[lv_player].lv_heroIndex != libCore_gf_GetHeroIndexForUnitType("HeroMurky"))) {
DialogControlSetVisible(libGDHL_gv_murkyUI.lv_mainPanel, libCore_gv_playerGroupFromPlayer[lv_player], false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMurkyCleanUpEggUIForDebugHeroSwap_Init () {
libGDHL_gt_HeroMurkyCleanUpEggUIForDebugHeroSwap = TriggerCreate("libGDHL_gt_HeroMurkyCleanUpEggUIForDebugHeroSwap_Func");
libGame_gf_DebugHeroSwapped(libGDHL_gt_HeroMurkyCleanUpEggUIForDebugHeroSwap);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Murky - A Fishy Deal Variables
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMurkyAFishyDealVariables_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGame_gv_players[lv_player].lv_bribeTokenLink = "MurkyAFishyDealTokenCounter";
libGame_gv_players[lv_player].lv_bribeChargeStackRequirement = libGDHL_gv_heroMurkyAFishyDealStackCountRequirement;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMurkyAFishyDealVariables_Init () {
libGDHL_gt_HeroMurkyAFishyDealVariables = TriggerCreate("libGDHL_gt_HeroMurkyAFishyDealVariables_Func");
TriggerEnable(libGDHL_gt_HeroMurkyAFishyDealVariables, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMurkyAFishyDealVariables, null, "MurkyAFishyDealTokenCounter", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Murky - A Fishy Deal Charge Count Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMurkyAFishyDealChargeCountProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Actions
if (!runActions) {
return true;
}
UnitAddChargeUsed(lv_caster, "Abil/MurkyAFishyDeal", -1.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMurkyAFishyDealChargeCountProc_Init () {
libGDHL_gt_HeroMurkyAFishyDealChargeCountProc = TriggerCreate("libGDHL_gt_HeroMurkyAFishyDealChargeCountProc_Func");
TriggerEnable(libGDHL_gt_HeroMurkyAFishyDealChargeCountProc, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroMurkyAFishyDealChargeCountProc, c_playerAny, "MurkyAFishyDealIncreaseChargeCountDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Murky - Fish Eye Dynamic Application
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMurkyFishEyeDynamicApplication_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup autoE8972419_g;
int autoE8972419_u;
unit autoE8972419_var;
// Actions
if (!runActions) {
return true;
}
autoE8972419_g = UnitGroup("MurkyRespawnEgg", UnitGetOwner(EventUnit()), RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoE8972419_u = UnitGroupCount(autoE8972419_g, c_unitCountAll);
for (;; autoE8972419_u -= 1) {
autoE8972419_var = UnitGroupUnitFromEnd(autoE8972419_g, autoE8972419_u);
if (autoE8972419_var == null) { break; }
UnitBehaviorAdd(autoE8972419_var, "MurkySpawnEggFishEyeTalentBuff", EventUnit(), 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMurkyFishEyeDynamicApplication_Init () {
libGDHL_gt_HeroMurkyFishEyeDynamicApplication = TriggerCreate("libGDHL_gt_HeroMurkyFishEyeDynamicApplication_Func");
TriggerEnable(libGDHL_gt_HeroMurkyFishEyeDynamicApplication, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroMurkyFishEyeDynamicApplication, null, "MurkySpawnEggFishEyeTalentCarryBehavior", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Murky - Respawn Egg Created
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroMurkyRespawnEggCreated_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup auto20EC3322_g;
int auto20EC3322_u;
unit auto20EC3322_var;
// Actions
if (!runActions) {
return true;
}
if ((PlayerHasTalent(UnitGetOwner(EventUnit()), "MurkyShellGame") == true)) {
libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[UnitGetOwner(EventUnit())] = libGame_gv_heroDeathMurkyRespawnEggs[UnitGetOwner(EventUnit())];
libGame_gv_heroDeathMurkyRespawnEggPoint2[UnitGetOwner(EventUnit())] = libGame_gv_heroDeathMurkyRespawnEggPoint[UnitGetOwner(EventUnit())];
}
libGame_gv_heroDeathMurkyRespawnEggs[UnitGetOwner(EventUnit())] = EventUnitCreatedUnit();
libGame_gv_heroDeathMurkyRespawnEggPoint[UnitGetOwner(EventUnit())] = UnitGetPosition(EventUnitCreatedUnit());
libGDHL_gf_UIHeroSpecificStatusFrameUpdateMurkyEggStatus(UnitGetOwner(EventUnitCreatedUnit()));
auto20EC3322_g = UnitGroup("MurkyRespawnEgg", UnitGetOwner(EventUnit()), RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto20EC3322_u = UnitGroupCount(auto20EC3322_g, c_unitCountAll);
for (;; auto20EC3322_u -= 1) {
auto20EC3322_var = UnitGroupUnitFromEnd(auto20EC3322_g, auto20EC3322_u);
if (auto20EC3322_var == null) { break; }
if ((auto20EC3322_var != libGame_gv_heroDeathMurkyRespawnEggs[UnitGetOwner(EventUnit())]) && (auto20EC3322_var != libGame_gv_heroDeathMurkyRespawnEgg2FromTalent[UnitGetOwner(EventUnit())])) {
UnitCreateEffectUnit(auto20EC3322_var, "TimedLifeFate", auto20EC3322_var);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroMurkyRespawnEggCreated_Init () {
libGDHL_gt_HeroMurkyRespawnEggCreated = TriggerCreate("libGDHL_gt_HeroMurkyRespawnEggCreated_Func");
TriggerEnable(libGDHL_gt_HeroMurkyRespawnEggCreated, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroMurkyRespawnEggCreated, null, "MurkyRespawnEgg", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Necromancer - Skeleton Mastery Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNecromancerSkeletonMasteryProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_playerHero;
unit lv_playerVehicle;
int lv_player;
unit lv_minion;
point lv_positionofMinion;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!(((UnitGetType(libGame_gf_HeroParticipatedInNPCTakedownMinion()) == "FootmanMinion") || (UnitGetType(libGame_gf_HeroParticipatedInNPCTakedownMinion()) == "RangedMinion") || (UnitBehaviorCount(libGame_gf_HeroParticipatedInNPCTakedownMinion(), "IsCatapultMinionOrCatapultReplacement") > 0) || (UnitGetType(libGame_gf_HeroParticipatedInNPCTakedownMinion()) == "WizardMinion") || ((libCore_gv_sYSGameMode == libCore_ge_GameModes_ModeC) && (UnitFilterMatch(libGame_gf_HeroParticipatedInNPCTakedownMinion(), libCore_gv_cOMPUTER_TeamChaos, UnitFilter((1 << c_targetFilterMinion), 0, 0, 0)) == true))))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = libGame_gf_HeroParticipatedInNPCTakedownKillingPlayer();
lv_minion = libGame_gf_HeroParticipatedInNPCTakedownMinion();
lv_positionofMinion = UnitGetPosition(lv_minion);
lv_playerHero = libGame_gv_players[lv_player].lv_heroUnit;
lv_playerVehicle = libGame_gv_players[lv_player].lv_activeVehicle;
if ((UnitGetType(lv_playerHero) == "HeroNecromancer")) {
if ((UnitIsAlive(lv_playerHero) == true) && (lv_playerVehicle == null) && (DistanceBetweenPoints(UnitGetPosition(lv_playerHero), lv_positionofMinion) <= libGDHL_gv_heroNecromancerSkeletonMasteryRange) && (UnitFilterMatch(lv_playerHero, lv_player, UnitFilter(0, (1 << (c_targetFilterStasis - 32)), 0, 0)) == false)) {
UnitCreateEffectPointWithSource(lv_playerHero, "NecromancerRaiseSkeletonCreationPersistent", lv_positionofMinion, c_gameCatalogAbil, "NecromancerRaiseSkeletonDisplayAbility");
}
}
else {
if ((UnitGetType(lv_playerVehicle) == "HeroNecromancer")) {
if ((UnitIsAlive(lv_playerVehicle) == true) && (DistanceBetweenPoints(UnitGetPosition(lv_playerVehicle), lv_positionofMinion) <= libGDHL_gv_heroNecromancerSkeletonMasteryRange) && (UnitFilterMatch(lv_playerVehicle, lv_player, UnitFilter(0, (1 << (c_targetFilterStasis - 32)), 0, 0)) == false)) {
UnitCreateEffectPointWithSource(lv_playerVehicle, "NecromancerRaiseSkeletonCreationPersistent", lv_positionofMinion, c_gameCatalogAbil, "NecromancerRaiseSkeletonDisplayAbility");
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNecromancerSkeletonMasteryProc_Init () {
libGDHL_gt_HeroNecromancerSkeletonMasteryProc = TriggerCreate("libGDHL_gt_HeroNecromancerSkeletonMasteryProc_Func");
TriggerEnable(libGDHL_gt_HeroNecromancerSkeletonMasteryProc, false);
libGame_gf_HeroParticipatedInNPCTakedown(libGDHL_gt_HeroNecromancerSkeletonMasteryProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Necromancer - Skeleton Mastery Spawned
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNecromancerSkeletonMasterySpawned_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_u;
unit lv_lowestUnit;
fixed lv_lowestHP;
int lv_unitGroup;
unit lv_skeleton;
int lv_player;
// Automatic Variable Declarations
unitgroup autoCA2FE564_g;
int autoCA2FE564_u;
unit autoCA2FE564_var;
// Variable Initialization
lv_lowestHP = 10000.0;
lv_skeleton = EventUnit();
lv_player = UnitGetOwner(lv_skeleton);
// Actions
if (!runActions) {
return true;
}
UnitGroupAdd(libGDHL_gv_heroNecromancerSkeletonMasteryUnitGroup[lv_player], lv_skeleton);
if ((UnitGroupCount(libGDHL_gv_heroNecromancerSkeletonMasteryUnitGroup[lv_player], c_unitCountAlive) > libGDHL_gv_heroNecromancerSkeletonMasteryMaxUnits)) {
autoCA2FE564_g = libGDHL_gv_heroNecromancerSkeletonMasteryUnitGroup[lv_player];
autoCA2FE564_u = UnitGroupCount(autoCA2FE564_g, c_unitCountAll);
for (;; autoCA2FE564_u -= 1) {
autoCA2FE564_var = UnitGroupUnitFromEnd(autoCA2FE564_g, autoCA2FE564_u);
if (autoCA2FE564_var == null) { break; }
lv_u = autoCA2FE564_var;
if ((UnitGetPropertyFixed(lv_u, c_unitPropLife, c_unitPropCurrent) < lv_lowestHP)) {
lv_lowestHP = UnitGetPropertyFixed(lv_u, c_unitPropLife, c_unitPropCurrent);
lv_lowestUnit = lv_u;
}
}
UnitKill(lv_lowestUnit);
}
lv_unitGroup = UnitGroupCount(libGDHL_gv_heroNecromancerSkeletonMasteryUnitGroup[lv_player], c_unitCountAlive);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNecromancerSkeletonMasterySpawned_Init () {
libGDHL_gt_HeroNecromancerSkeletonMasterySpawned = TriggerCreate("libGDHL_gt_HeroNecromancerSkeletonMasterySpawned_Func");
TriggerEnable(libGDHL_gt_HeroNecromancerSkeletonMasterySpawned, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroNecromancerSkeletonMasterySpawned, null, "NecromancerRaiseSkeletonTimedLife", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Necromancer - Skeleton Mastery Max Count Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNecromancerSkeletonMasteryMaxCountProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_u;
unit lv_lowestUnit;
fixed lv_lowestHP;
int lv_unitGroup;
unit lv_skeleton;
int lv_player;
// Automatic Variable Declarations
unitgroup auto95A7A4B4_g;
int auto95A7A4B4_u;
unit auto95A7A4B4_var;
// Variable Initialization
lv_lowestHP = 10000.0;
// Actions
if (!runActions) {
return true;
}
lv_player = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
auto95A7A4B4_g = libGDHL_gv_heroNecromancerSkeletonMasteryUnitGroup[lv_player];
auto95A7A4B4_u = UnitGroupCount(auto95A7A4B4_g, c_unitCountAll);
for (;; auto95A7A4B4_u -= 1) {
auto95A7A4B4_var = UnitGroupUnitFromEnd(auto95A7A4B4_g, auto95A7A4B4_u);
if (auto95A7A4B4_var == null) { break; }
lv_u = auto95A7A4B4_var;
if ((UnitGetPropertyFixed(lv_u, c_unitPropLife, c_unitPropCurrent) < lv_lowestHP)) {
lv_lowestHP = UnitGetPropertyFixed(lv_u, c_unitPropLife, c_unitPropCurrent);
lv_lowestUnit = lv_u;
}
}
UnitKill(lv_lowestUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNecromancerSkeletonMasteryMaxCountProc_Init () {
libGDHL_gt_HeroNecromancerSkeletonMasteryMaxCountProc = TriggerCreate("libGDHL_gt_HeroNecromancerSkeletonMasteryMaxCountProc_Func");
TriggerEnable(libGDHL_gt_HeroNecromancerSkeletonMasteryMaxCountProc, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroNecromancerSkeletonMasteryMaxCountProc, c_playerAny, "NecromancerRaiseSkeletonPeriodicDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Necromancer - Track Mortal Wounds Damage Reduction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNecromancerTrackMortalWoundsDamageReduction_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_ownerOfUnit;
fixed lv_healAmountPrevented;
fixed lv_healAmount;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_ownerOfUnit = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((lv_ownerOfUnit <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitBehaviorCount(lv_unit, "NecromancerSpectralScytheMasteryMortalWoundDebuff") == 1))) {
return false;
}
if (!((UnitFilterMatch(lv_unit, lv_ownerOfUnit, libCore_gv_filtersHeroic) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_healAmount = EventUnitHealAmount();
lv_healAmountPrevented = (lv_healAmount * 3.0);
libGDHL_gv_heroNecromancerMortalWoundsNumbers[lv_ownerOfUnit] += lv_healAmountPrevented;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNecromancerTrackMortalWoundsDamageReduction_Init () {
libGDHL_gt_HeroNecromancerTrackMortalWoundsDamageReduction = TriggerCreate("libGDHL_gt_HeroNecromancerTrackMortalWoundsDamageReduction_Func");
TriggerEnable(libGDHL_gt_HeroNecromancerTrackMortalWoundsDamageReduction, false);
TriggerAddEventUnitHealed(libGDHL_gt_HeroNecromancerTrackMortalWoundsDamageReduction, null, c_unitVitalLife, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Necromancer - Mortal Wounds Debuff Controller
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNecromancerMortalWoundsDebuffController_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
unit lv_target;
int lv_ownerofTarget;
fixed lv_horizOffset;
fixed lv_vertOffset;
// Automatic Variable Declarations
// Variable Initialization
lv_target = EventUnit();
lv_ownerofTarget = UnitGetOwner(lv_target);
lv_horizOffset = RandomFixed(-0.4, -0.6);
lv_vertOffset = 2.0;
// Conditions
if (testConds) {
if (!((lv_ownerofTarget <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitFilterMatch(lv_target, lv_ownerofTarget, libCore_gv_filtersHeroic) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((EventUnitBehaviorChange() == c_unitBehaviorChangeActivate)) {
lv_caster = UnitBehaviorEffectUnit(lv_target, "NecromancerSpectralScytheMasteryMortalWoundDebuff", c_effectUnitCaster, 0);
libGDHL_gv_heroNecromancerMortalWoundsCasterOwner[lv_ownerofTarget] = UnitGetOwner(lv_caster);
}
else if ((EventUnitBehaviorChange() == c_unitBehaviorChangeRefresh)) {
lv_caster = UnitBehaviorEffectUnit(lv_target, "NecromancerSpectralScytheMasteryMortalWoundDebuff", c_effectUnitCaster, 0);
libGDHL_gv_heroNecromancerMortalWoundsCasterOwner[lv_ownerofTarget] = UnitGetOwner(lv_caster);
if ((libGDHL_gv_heroNecromancerMortalWoundsNumbers[lv_ownerofTarget] > 0.0)) {
libUIUI_gf_UIFloatingCombatTextCreateTextTag(libGDHL_gv_heroNecromancerMortalWoundsCasterOwner[lv_ownerofTarget], libUIUI_gv_floatingCombatTextMediumDuration, (StringExternal("Param/Value/lib_GDHL_C4E4A123") + FixedToText(libGDHL_gv_heroNecromancerMortalWoundsNumbers[lv_ownerofTarget], 0)), lv_target, lv_vertOffset, lv_horizOffset, libCore_ge_FloatingTextType_InsaneDamage, true);
}
libGDHL_gv_heroNecromancerMortalWoundsNumbers[lv_ownerofTarget] = 0.0;
}
else if ((EventUnitBehaviorChange() == c_unitBehaviorChangeDeactivate)) {
if ((libGDHL_gv_heroNecromancerMortalWoundsNumbers[lv_ownerofTarget] > 0.0)) {
libUIUI_gf_UIFloatingCombatTextCreateTextTag(libGDHL_gv_heroNecromancerMortalWoundsCasterOwner[lv_ownerofTarget], libUIUI_gv_floatingCombatTextMediumDuration, (StringExternal("Param/Value/lib_GDHL_36589B6A") + FixedToText(libGDHL_gv_heroNecromancerMortalWoundsNumbers[lv_ownerofTarget], 0)), lv_target, lv_vertOffset, lv_horizOffset, libCore_ge_FloatingTextType_InsaneDamage, true);
}
libGDHL_gv_heroNecromancerMortalWoundsNumbers[lv_ownerofTarget] = 0.0;
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNecromancerMortalWoundsDebuffController_Init () {
libGDHL_gt_HeroNecromancerMortalWoundsDebuffController = TriggerCreate("libGDHL_gt_HeroNecromancerMortalWoundsDebuffController_Func");
TriggerEnable(libGDHL_gt_HeroNecromancerMortalWoundsDebuffController, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroNecromancerMortalWoundsDebuffController, null, "NecromancerSpectralScytheMasteryMortalWoundDebuff", c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroNecromancerMortalWoundsDebuffController, null, "NecromancerSpectralScytheMasteryMortalWoundDebuff", c_unitBehaviorChangeRefresh);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroNecromancerMortalWoundsDebuffController, null, "NecromancerSpectralScytheMasteryMortalWoundDebuff", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Nova - Covert Mission Takedown
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNovaCovertMissionTakedown_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_i;
int lv_stacksGranted;
int lv_player;
unit lv_nova;
// Automatic Variable Declarations
int auto1E7F2B54_ae;
const int auto1E7F2B54_ai = 1;
// Variable Initialization
lv_stacksGranted = 10;
lv_player = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_nova = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "NovaCovertMission") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto1E7F2B54_ae = lv_stacksGranted;
lv_i = 1;
for ( ; ( (auto1E7F2B54_ai >= 0 && lv_i <= auto1E7F2B54_ae) || (auto1E7F2B54_ai < 0 && lv_i >= auto1E7F2B54_ae) ) ; lv_i += auto1E7F2B54_ai ) {
UnitCreateEffectUnit(lv_nova, "TalentBribeAdd1Token", lv_nova);
if ((ModI(UnitBehaviorCount(lv_nova, libGame_gv_players[lv_player].lv_bribeTokenLink), libGame_gv_players[lv_player].lv_bribeChargeStackRequirement) == 0)) {
UnitAddChargeUsed(lv_nova, "Abil/TalentBucketBribe", -1.0);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNovaCovertMissionTakedown_Init () {
libGDHL_gt_HeroNovaCovertMissionTakedown = TriggerCreate("libGDHL_gt_HeroNovaCovertMissionTakedown_Func");
TriggerEnable(libGDHL_gt_HeroNovaCovertMissionTakedown, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroNovaCovertMissionTakedown);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Nova - Covert Mission Variables
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNovaCovertMissionVariables_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGame_gv_players[lv_player].lv_bribeTokenLink = "NovaCovertMissionTokenCounter";
libGame_gv_players[lv_player].lv_bribeChargeStackRequirement = libGDHL_gv_heroNovaCovertMissionStackCountRequirement;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNovaCovertMissionVariables_Init () {
libGDHL_gt_HeroNovaCovertMissionVariables = TriggerCreate("libGDHL_gt_HeroNovaCovertMissionVariables_Func");
TriggerEnable(libGDHL_gt_HeroNovaCovertMissionVariables, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroNovaCovertMissionVariables, null, "NovaCovertMissionTokenCounter", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Nova - Triple Tap Ability Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNovaTripleTapAbilityUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_targetUnit;
unit lv_itUnit;
int lv_novaPlayer;
point lv_currentPositionOfTarget;
// Automatic Variable Declarations
unitgroup auto3426D486_g;
int auto3426D486_u;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_novaPlayer = UnitGetOwner(EventUnit());
lv_targetUnit = EventUnitTargetUnit();
libGDHL_gv_novaTripleTapCaster[lv_novaPlayer] = EventUnit();
libGDHL_gv_novaTripleTapTarget[lv_novaPlayer] = lv_targetUnit;
libGDHL_gv_novaTripleTapTargetLastPoint[lv_novaPlayer] = UnitGetPosition(lv_targetUnit);
libGDHL_gv_novaTripleTappingBoolean[lv_novaPlayer] = true;
while ((libGDHL_gv_novaTripleTappingBoolean[lv_novaPlayer] == true)) {
if (((UnitIsAlive(libGDHL_gv_novaTripleTapTarget[lv_novaPlayer]) == false) || (DistanceBetweenPoints(UnitGetPosition(libGDHL_gv_novaTripleTapTarget[lv_novaPlayer]), libGDHL_gv_novaTripleTapTargetLastPoint[lv_novaPlayer]) >= libGDHL_gv_novaTripleTapDisjointDistanceThreshold))) {
libGDHL_gv_novaTripleTappingBoolean[lv_novaPlayer] = false;
UnitBehaviorAdd(libGDHL_gv_novaTripleTapTarget[lv_novaPlayer], "TripleTapDummyRemove", libGDHL_gv_novaTripleTapCaster[lv_novaPlayer], 1);
break;
}
lv_currentPositionOfTarget = UnitGetPosition(libGDHL_gv_novaTripleTapTarget[lv_novaPlayer]);
if ((DistanceBetweenPoints(lv_currentPositionOfTarget, libGDHL_gv_novaTripleTapTargetLastPoint[lv_novaPlayer]) > libGDHL_gv_novaTripleTapRedirectDistanceThreshold) && (DistanceBetweenPoints(lv_currentPositionOfTarget, libGDHL_gv_novaTripleTapTargetLastPoint[lv_novaPlayer]) < libGDHL_gv_novaTripleTapDisjointDistanceThreshold)) {
auto3426D486_g = libGDHL_gv_novaTripleTapMissileGroup[lv_novaPlayer];
auto3426D486_u = UnitGroupCount(auto3426D486_g, c_unitCountAll);
for (;; auto3426D486_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto3426D486_g, auto3426D486_u);
if (lv_itUnit == null) { break; }
UnitCreateEffectUnit(lv_itUnit, "NovaTripleTapMissileRedirect", libGDHL_gv_novaTripleTapTarget[lv_novaPlayer]);
}
}
libGDHL_gv_novaTripleTapTargetLastPoint[lv_novaPlayer] = lv_currentPositionOfTarget;
Wait(0.0625, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNovaTripleTapAbilityUsed_Init () {
libGDHL_gt_HeroNovaTripleTapAbilityUsed = TriggerCreate("libGDHL_gt_HeroNovaTripleTapAbilityUsed_Func");
TriggerEnable(libGDHL_gt_HeroNovaTripleTapAbilityUsed, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroNovaTripleTapAbilityUsed, null, AbilityCommand("NovaTripleTap", 0), c_abilEffectStageCast, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Nova - Triple Tap Missiles
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNovaTripleTapMissiles_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnitCreatedUnit()) == "TripleTapArrowMissile"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = UnitGetOwner(EventUnitCreatedUnit());
if ((libGDHL_gv_novaTripleTappingBoolean[lv_player] == false)) {
UnitCreateEffectPoint(EventUnitCreatedUnit(), "NovaTripleTapMissileRedirectPoint", libGDHL_gv_novaTripleTapTargetLastPoint[lv_player]);
return true;
}
UnitGroupAdd(libGDHL_gv_novaTripleTapMissileGroup[lv_player], EventUnitCreatedUnit());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNovaTripleTapMissiles_Init () {
libGDHL_gt_HeroNovaTripleTapMissiles = TriggerCreate("libGDHL_gt_HeroNovaTripleTapMissiles_Func");
TriggerEnable(libGDHL_gt_HeroNovaTripleTapMissiles, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroNovaTripleTapMissiles, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Nova - Triple Tap Missile Cleanup
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNovaTripleTapMissileCleanup_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_heroNovaUnit;
int lv_player;
unitgroup lv_missileUnitGroup;
// Automatic Variable Declarations
// Variable Initialization
lv_missileUnitGroup = UnitGroupEmpty();
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayer();
lv_missileUnitGroup = libGDHL_gv_novaTripleTapMissileGroup[lv_player];
if (((UnitGroupCount(lv_missileUnitGroup, c_unitCountAlive) == 0) && (UnitHasBehavior2(libGDHL_gv_novaTripleTapCaster[lv_player], "TripleTapInventoryDisableBehavior") == false))) {
libGDHL_gv_novaTripleTappingBoolean[lv_player] = false;
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNovaTripleTapMissileCleanup_Init () {
libGDHL_gt_HeroNovaTripleTapMissileCleanup = TriggerCreate("libGDHL_gt_HeroNovaTripleTapMissileCleanup_Func");
TriggerEnable(libGDHL_gt_HeroNovaTripleTapMissileCleanup, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroNovaTripleTapMissileCleanup, c_playerAny, "TripleTapSuicideRemove");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Nova - Holo Clone Spawned
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNovaHoloCloneSpawned_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_creatingUnit;
unit lv_createdUnit;
int lv_ownerOfCreatedUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_createdUnit = EventUnitCreatedUnit();
// Conditions
if (testConds) {
if (!((UnitGetType(lv_createdUnit) == "NovaHoloClone"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_ownerOfCreatedUnit = UnitGetOwner(lv_createdUnit);
if ((UnitGetType(libGame_gv_players[lv_ownerOfCreatedUnit].lv_heroUnit) == "HeroAbathur")) {
UnitBehaviorAdd(lv_createdUnit, "UltimateEvolutionAlternateHero", lv_createdUnit, 1);
lv_creatingUnit = libGame_gv_players[lv_ownerOfCreatedUnit].lv_activeVehicle;
}
else {
lv_creatingUnit = libGame_gv_players[lv_ownerOfCreatedUnit].lv_heroUnit;
}
UnitBehaviorAdd(lv_createdUnit, "MapMechanicStack", lv_creatingUnit, UnitBehaviorCount(lv_creatingUnit, "MapMechanicStack"));
UISetSelectionTypeEnabled(PlayerGroupSingle(lv_ownerOfCreatedUnit), c_localSelectionTypeWorldPanelHero, false);
UnitSetFacing(lv_createdUnit, UnitGetFacing(lv_creatingUnit), 0.0);
UnitSetPropertyFixed(lv_createdUnit, c_unitPropXP, UnitXPTotal(lv_creatingUnit));
UnitSetPropertyFixed(lv_createdUnit, c_unitPropLifeMax, UnitGetPropertyFixed(lv_creatingUnit, c_unitPropLifeMax, c_unitPropCurrent));
UnitSetPropertyFixed(lv_createdUnit, c_unitPropLife, UnitGetPropertyFixed(lv_creatingUnit, c_unitPropLife, c_unitPropCurrent));
UnitSetPropertyFixed(lv_createdUnit, c_unitPropEnergyMax, UnitGetPropertyFixed(lv_creatingUnit, c_unitPropEnergyMax, c_unitPropCurrent));
UnitSetPropertyFixed(lv_createdUnit, c_unitPropEnergy, UnitGetPropertyFixed(lv_creatingUnit, c_unitPropEnergy, c_unitPropCurrent));
UnitIssueOrder(lv_createdUnit, OrderTargetingPoint(AbilityCommand("attack", 0), UnitGetPosition(lv_createdUnit)), c_orderQueueReplace);
UnitGroupAdd(libGame_gv_players[lv_ownerOfCreatedUnit].lv_altClickPartyFrameAnnouncementUnitGroup, lv_createdUnit);
while ((UnitIsAlive(lv_createdUnit) == true)) {
Wait(0.125, c_timeGame);
}
UISetSelectionTypeEnabled(PlayerGroupSingle(lv_ownerOfCreatedUnit), c_localSelectionTypeWorldPanelHero, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNovaHoloCloneSpawned_Init () {
libGDHL_gt_HeroNovaHoloCloneSpawned = TriggerCreate("libGDHL_gt_HeroNovaHoloCloneSpawned_Func");
TriggerEnable(libGDHL_gt_HeroNovaHoloCloneSpawned, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroNovaHoloCloneSpawned, null, "NovaHoloDecoy", null);
TriggerAddEventUnitCreated(libGDHL_gt_HeroNovaHoloCloneSpawned, null, "NovaGhostProtocol", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Nova - Holo Clone Damage Duplication
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNovaHoloCloneDamageDuplication_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_damage;
unit lv_image;
int lv_imageOwner;
unit lv_caster;
// Automatic Variable Declarations
// Variable Initialization
lv_damage = (EventUnitDamageBehaviorShield() + EventUnitDamageAmount());
lv_image = EventUnit();
lv_imageOwner = UnitGetOwner(lv_image);
lv_caster = EventUnitDamageSourceUnit();
// Conditions
if (testConds) {
if (!((EventUnitDamageEffect() != "HeroGenericFakeHeroDuplicationDamage"))) {
return false;
}
if (!((UnitGetType(lv_image) == "NovaHoloClone"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitIsValid(libGame_gv_teams[libGame_gf_EnemyTeamNumberOfPlayer(lv_imageOwner)].lv_core) == true)) {
UnitDamage(libGame_gv_teams[libGame_gf_EnemyTeamNumberOfPlayer(lv_imageOwner)].lv_core, "HeroGenericFakeHeroDuplicationDamage", lv_image, lv_damage);
}
else {
UnitDamage(lv_caster, "HeroGenericFakeHeroDuplicationDamage", lv_image, lv_damage);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNovaHoloCloneDamageDuplication_Init () {
libGDHL_gt_HeroNovaHoloCloneDamageDuplication = TriggerCreate("libGDHL_gt_HeroNovaHoloCloneDamageDuplication_Func");
TriggerEnable(libGDHL_gt_HeroNovaHoloCloneDamageDuplication, false);
TriggerAddEventUnitDamaged(libGDHL_gt_HeroNovaHoloCloneDamageDuplication, null, c_unitDamageTypeAny, c_unitDamageNonFatal, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Nova - Anti-Armor Shells Attack Cooldown Controller
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroNovaAntiArmorShellsAttackCooldownController_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_nova;
// Automatic Variable Declarations
fixed auto4121A5FF_at;
// Variable Initialization
lv_nova = EventUnit();
// Actions
if (!runActions) {
return true;
}
auto4121A5FF_at = 0;
while (!((UnitWeaponPeriodRemaining(lv_nova, 2) == 0.0)) && auto4121A5FF_at <= 3.0) {
Wait(0.0625, c_timeGame);
auto4121A5FF_at = auto4121A5FF_at + 0.0625;
}
UnitBehaviorRemove(lv_nova, "NovaAntiArmorShellsWeaponSuppression", 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroNovaAntiArmorShellsAttackCooldownController_Init () {
libGDHL_gt_HeroNovaAntiArmorShellsAttackCooldownController = TriggerCreate("libGDHL_gt_HeroNovaAntiArmorShellsAttackCooldownController_Func");
TriggerEnable(libGDHL_gt_HeroNovaAntiArmorShellsAttackCooldownController, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroNovaAntiArmorShellsAttackCooldownController, null, "NovaAntiArmorShellsWeaponSuppression", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Raynor - Raynor's Banshee Fly In
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRaynorRaynorsBansheeFlyIn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
int lv_player;
point lv_dropPoint;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_caster);
lv_dropPoint = EventPlayerEffectUsedPoint(c_effectLocationCasterPoint);
// Actions
if (!runActions) {
return true;
}
libNtve_gf_CreateUnitsAtPoint2(1, "RaynorRaynorsBanshee", 0, lv_player, libNtve_gf_PointOffsetTowardsPoint(lv_dropPoint, 4.0, libGame_gv_players[lv_player].lv_spawnPoint), lv_caster);
UnitCreateEffectUnit(lv_caster, "RaynorBansheeApplyTimeoutBehavior", UnitLastCreated());
UnitGroupAdd(libGame_gv_players[lv_player].lv_summonedUnitGroup, UnitLastCreated());
UnitCreateEffectUnit(lv_caster, "RaynorRaynorsRaidersRetargetBansheesPersistent", EventPlayerEffectUsedUnit(c_effectUnitTarget));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRaynorRaynorsBansheeFlyIn_Init () {
libGDHL_gt_HeroRaynorRaynorsBansheeFlyIn = TriggerCreate("libGDHL_gt_HeroRaynorRaynorsBansheeFlyIn_Func");
TriggerEnable(libGDHL_gt_HeroRaynorRaynorsBansheeFlyIn, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRaynorRaynorsBansheeFlyIn, c_playerAny, "RaynorRaynorsRaidersCreationDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Raynor - Raynor's Banshee Fly Out
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRaynorRaynorsBansheeFlyOut_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
point lv_flyAway;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
lv_flyAway = UnitGetPosition(lv_unit);
UnitIssueOrder(lv_unit, OrderTargetingPoint(AbilityCommand("move", 0), libNtve_gf_PointOffsetTowardsPoint(lv_flyAway, 20.0, libGame_gv_players[lv_player].lv_spawnPoint)), c_orderQueueReplace);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRaynorRaynorsBansheeFlyOut_Init () {
libGDHL_gt_HeroRaynorRaynorsBansheeFlyOut = TriggerCreate("libGDHL_gt_HeroRaynorRaynorsBansheeFlyOut_Func");
TriggerEnable(libGDHL_gt_HeroRaynorRaynorsBansheeFlyOut, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRaynorRaynorsBansheeFlyOut, null, "RaynorRaynorsBansheeAscend", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Raynor - Banshees Command
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRaynorBansheesCommand_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_p;
unit lv_u;
unit lv_itBanshee;
unitgroup lv_raynorsRaidersBanshees;
unit lv_bansheeTargetUnit;
// Automatic Variable Declarations
unitgroup auto91691D68_g;
int auto91691D68_u;
// Variable Initialization
lv_raynorsRaidersBanshees = UnitGroupEmpty();
// Actions
if (!runActions) {
return true;
}
lv_raynorsRaidersBanshees = UnitGetTrackedUnitGroup(EventPlayerEffectUsedUnit(c_effectUnitCaster), "RaynorRaynorsRaidersUnitTracker");
lv_bansheeTargetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
auto91691D68_g = lv_raynorsRaidersBanshees;
auto91691D68_u = UnitGroupCount(auto91691D68_g, c_unitCountAll);
for (;; auto91691D68_u -= 1) {
lv_itBanshee = UnitGroupUnitFromEnd(auto91691D68_g, auto91691D68_u);
if (lv_itBanshee == null) { break; }
if ((UnitIsAlive(lv_itBanshee) == true)) {
if ((lv_bansheeTargetUnit == null)) {
UnitIssueOrder(lv_itBanshee, OrderTargetingPoint(AbilityCommand("move", 0), EventPlayerEffectUsedPoint(c_effectLocationTargetPoint)), c_orderQueueReplace);
}
else {
if ((EventPlayerEffectUsed() == "RaynorRaynorsRaidersRetargetSummonedUnitSpecialCaseInteractionDummy")) {
UnitIssueOrder(lv_itBanshee, OrderTargetingUnit(AbilityCommand("HeroGenericSummonedUnitSpecialCaseInteraction", 0), lv_bansheeTargetUnit), c_orderQueueReplace);
}
else {
UnitIssueOrder(lv_itBanshee, OrderTargetingUnit(AbilityCommand("attack", 0), lv_bansheeTargetUnit), c_orderQueueReplace);
}
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRaynorBansheesCommand_Init () {
libGDHL_gt_HeroRaynorBansheesCommand = TriggerCreate("libGDHL_gt_HeroRaynorBansheesCommand_Func");
TriggerEnable(libGDHL_gt_HeroRaynorBansheesCommand, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRaynorBansheesCommand, c_playerAny, "RaynorRaynorsRaidersRetargetBansheesPersistent");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRaynorBansheesCommand, c_playerAny, "RaynorRaynorsRaidersRetargetSummonedUnitSpecialCaseInteractionDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Raynor - Banshee Teleport
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRaynorBansheeTeleport_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
unitgroup autoD0FD4CB9_g;
int autoD0FD4CB9_u;
unit autoD0FD4CB9_var;
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = EventPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroRaynor"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoD0FD4CB9_g = UnitGetTrackedUnitGroup(lv_unit, "RaynorRaynorsRaidersUnitTracker");
autoD0FD4CB9_u = UnitGroupCount(autoD0FD4CB9_g, c_unitCountAll);
for (;; autoD0FD4CB9_u -= 1) {
autoD0FD4CB9_var = UnitGroupUnitFromEnd(autoD0FD4CB9_g, autoD0FD4CB9_u);
if (autoD0FD4CB9_var == null) { break; }
if ((UnitGetType(autoD0FD4CB9_var) == "RaynorRaynorsBanshee")) {
UnitSetPosition(autoD0FD4CB9_var, UnitGetPosition(libGame_gv_players[lv_player].lv_heroUnit), false);
if ((EventPlayerEffectUsed() == "HearthstoneTeleport")) {
UnitCreateEffectUnit(autoD0FD4CB9_var, "HearthstoneHealthCreateHealer", autoD0FD4CB9_var);
}
UnitCreateEffectUnit(lv_unit, "RaynorRaynorsRaidersLeashTrackedUnits", lv_unit);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRaynorBansheeTeleport_Init () {
libGDHL_gt_HeroRaynorBansheeTeleport = TriggerCreate("libGDHL_gt_HeroRaynorBansheeTeleport_Func");
TriggerEnable(libGDHL_gt_HeroRaynorBansheeTeleport, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRaynorBansheeTeleport, c_playerAny, "HearthstoneTeleport");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRaynorBansheeTeleport, c_playerAny, "UnderworldTeleport");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Raynor - Remove Banshee On Enter Vehicle
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRaynorRemoveBansheeOnEnterVehicle_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
unitgroup autoEE8FA48C_g;
int autoEE8FA48C_u;
unit autoEE8FA48C_var;
// Variable Initialization
lv_unit = libGame_gf_UseVehiclePassengerHero();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "RaynorHeroicAbilityRaynorsRaiders") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoEE8FA48C_g = UnitGetTrackedUnitGroup(lv_unit, "RaynorRaynorsRaidersUnitTracker");
autoEE8FA48C_u = UnitGroupCount(autoEE8FA48C_g, c_unitCountAll);
for (;; autoEE8FA48C_u -= 1) {
autoEE8FA48C_var = UnitGroupUnitFromEnd(autoEE8FA48C_g, autoEE8FA48C_u);
if (autoEE8FA48C_var == null) { break; }
UnitBehaviorAdd(autoEE8FA48C_var, "RaynorRaynorsBansheeAscend", autoEE8FA48C_var, 1);
UnitBehaviorAdd(autoEE8FA48C_var, "RaynorRaynorsRaidersSuppressFinalCooldown", autoEE8FA48C_var, 1);
UnitCreateEffectUnit(lv_unit, "RaynorRaynorsRaidersResetCooldown", lv_unit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRaynorRemoveBansheeOnEnterVehicle_Init () {
libGDHL_gt_HeroRaynorRemoveBansheeOnEnterVehicle = TriggerCreate("libGDHL_gt_HeroRaynorRemoveBansheeOnEnterVehicle_Func");
TriggerEnable(libGDHL_gt_HeroRaynorRemoveBansheeOnEnterVehicle, false);
libGame_gf_HeroEnteredVehicleInstant(libGDHL_gt_HeroRaynorRemoveBansheeOnEnterVehicle);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Raynor - A Card To Play - Talent Gained
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRaynorACardToPlayTalentGained_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((PlayerHasTalent(libGame_gf_HeroGainTalentPlayer(), "RaynorACardToPlay") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(libGDHL_gt_HeroRaynorACardToPlayHeroTakedown, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRaynorACardToPlayTalentGained_Init () {
libGDHL_gt_HeroRaynorACardToPlayTalentGained = TriggerCreate("libGDHL_gt_HeroRaynorACardToPlayTalentGained_Func");
TriggerEnable(libGDHL_gt_HeroRaynorACardToPlayTalentGained, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroRaynorACardToPlayTalentGained);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Raynor - A Card To Play - Hero Takedown
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRaynorACardToPlayHeroTakedown_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
fixed lv_cooldownReduction;
// Automatic Variable Declarations
const int auto7A59D43D_ae = libCore_gv_bALMaxPlayers;
const int auto7A59D43D_ai = 1;
// Variable Initialization
lv_cooldownReduction = -15.0;
// Actions
if (!runActions) {
return true;
}
lv_itPlayer = 1;
for ( ; ( (auto7A59D43D_ai >= 0 && lv_itPlayer <= auto7A59D43D_ae) || (auto7A59D43D_ai < 0 && lv_itPlayer >= auto7A59D43D_ae) ) ; lv_itPlayer += auto7A59D43D_ai ) {
if ((PlayerHasTalent(lv_itPlayer, "RaynorACardToPlay") == true)) {
UnitModifyCooldown(libGame_gv_players[lv_itPlayer].lv_heroUnit, CatalogFieldValueGet(c_gameCatalogAbil, "RaynorHyperion", "Cost[" + IntToString(0) + "].Cooldown.Link", lv_itPlayer), lv_cooldownReduction, c_cooldownOperationDefault);
UnitModifyCooldown(libGame_gv_players[lv_itPlayer].lv_heroUnit, CatalogFieldValueGet(c_gameCatalogAbil, "RaynorRaynorsBansheeTargeted", "Cost[" + IntToString(0) + "].Cooldown.Link", lv_itPlayer), lv_cooldownReduction, c_cooldownOperationDefault);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRaynorACardToPlayHeroTakedown_Init () {
libGDHL_gt_HeroRaynorACardToPlayHeroTakedown = TriggerCreate("libGDHL_gt_HeroRaynorACardToPlayHeroTakedown_Func");
TriggerEnable(libGDHL_gt_HeroRaynorACardToPlayHeroTakedown, false);
libGame_gf_HeroKilled(libGDHL_gt_HeroRaynorACardToPlayHeroTakedown);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Raynor - Execute Order - Death Timer Mod
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRaynorExecuteOrderDeathTimerMod_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_raynor;
int lv_player;
fixed lv_reductionAmount;
// Automatic Variable Declarations
fixed auto2762DC95_at;
// Variable Initialization
lv_raynor = libGame_gf_HeroKilledUnit();
lv_player = libGame_gf_HeroKilledPlayer();
lv_reductionAmount = CatalogFieldValueGetAsFixed(c_gameCatalogEffect, "RaynorExecuteOrdersDeathTimerReduction", "XP", lv_player);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "RaynorHyperionExecuteOrders") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto2762DC95_at = 0;
while (!((TimerGetDuration(libGame_gv_players[lv_player].lv_respawnTimer) > 1)) && auto2762DC95_at <= 10.0) {
Wait(0.125, c_timeGame);
auto2762DC95_at = auto2762DC95_at + 0.125;
}
libGame_gf_HeroDeathModifyRespawnTimer(lv_player, lv_reductionAmount);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRaynorExecuteOrderDeathTimerMod_Init () {
libGDHL_gt_HeroRaynorExecuteOrderDeathTimerMod = TriggerCreate("libGDHL_gt_HeroRaynorExecuteOrderDeathTimerMod_Func");
TriggerEnable(libGDHL_gt_HeroRaynorExecuteOrderDeathTimerMod, false);
libGame_gf_HeroKilled(libGDHL_gt_HeroRaynorExecuteOrderDeathTimerMod);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Raynor - Execute Order - Hyperion Activate
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRaynorExecuteOrderHyperionActivate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_raynor;
point lv_targetPoint;
// Automatic Variable Declarations
// Variable Initialization
lv_raynor = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_targetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectPointWithSource(lv_raynor, "ExecuteOrdersInitialCreatePersistent", lv_targetPoint, c_gameCatalogAbil, "RaynorHyperionExecuteOrders");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRaynorExecuteOrderHyperionActivate_Init () {
libGDHL_gt_HeroRaynorExecuteOrderHyperionActivate = TriggerCreate("libGDHL_gt_HeroRaynorExecuteOrderHyperionActivate_Func");
TriggerEnable(libGDHL_gt_HeroRaynorExecuteOrderHyperionActivate, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRaynorExecuteOrderHyperionActivate, c_playerAny, "RaynorExecuteOrdersDummyEffect");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rehgar - Tidal Waves Modify Cooldown
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRehgarTidalWavesModifyCooldown_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_rehgarUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_rehgarUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Actions
if (!runActions) {
return true;
}
UnitModifyCooldown(lv_rehgarUnit, CatalogReferenceGet("Abil,RehgarChainHeal,Cost[0].Cooldown.Link", UnitGetOwner(lv_rehgarUnit)), -1.0, c_cooldownOperationAdd);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRehgarTidalWavesModifyCooldown_Init () {
libGDHL_gt_HeroRehgarTidalWavesModifyCooldown = TriggerCreate("libGDHL_gt_HeroRehgarTidalWavesModifyCooldown_Func");
TriggerEnable(libGDHL_gt_HeroRehgarTidalWavesModifyCooldown, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRehgarTidalWavesModifyCooldown, c_playerAny, "RehgarChainHealTidalWavesModifyCooldownRehgarDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rehgar - Earthliving Enchant - Hot Apply
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_rehgarUnit;
unit lv_targetUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_rehgarUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_targetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(lv_targetUnit, "RehgarChainHealEarthlivingEnchantHeal", lv_rehgarUnit, 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply_Init () {
libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply = TriggerCreate("libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply_Func");
TriggerEnable(libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply, c_playerAny, "RehgarChainHealEarthlivingEnchantApplyHealBehaviorDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rehgar - Totemic Projection (Talent) - Save Totem
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRehgarTotemicProjectionTalentSaveTotem_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroRehgarTotemicProjectionTalentActiveTotem[EventPlayer()] = EventPlayerEffectUsedUnit(c_effectUnitTarget);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRehgarTotemicProjectionTalentSaveTotem_Init () {
libGDHL_gt_HeroRehgarTotemicProjectionTalentSaveTotem = TriggerCreate("libGDHL_gt_HeroRehgarTotemicProjectionTalentSaveTotem_Func");
TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionTalentSaveTotem, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRehgarTotemicProjectionTalentSaveTotem, c_playerAny, "RehgarEarthbindTotemSpawnSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rehgar - Totemic Projection (Talent) - Move Totem
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRehgarTotemicProjectionTalentMoveTotem_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectPoint(lv_unit, "TotemicProjectionDeathDummyEffect", UnitGetPosition(libGDHL_gv_heroRehgarTotemicProjectionTalentActiveTotem[lv_player]));
UnitSetPosition(libGDHL_gv_heroRehgarTotemicProjectionTalentActiveTotem[lv_player], EventPlayerEffectUsedPoint(c_effectLocationTargetPoint), false);
libNtve_gf_SendActorMessageToUnit(libGDHL_gv_heroRehgarTotemicProjectionTalentActiveTotem[lv_player], "Signal EarthbindTotemPlayBirth");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRehgarTotemicProjectionTalentMoveTotem_Init () {
libGDHL_gt_HeroRehgarTotemicProjectionTalentMoveTotem = TriggerCreate("libGDHL_gt_HeroRehgarTotemicProjectionTalentMoveTotem_Func");
TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionTalentMoveTotem, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRehgarTotemicProjectionTalentMoveTotem, c_playerAny, "RehgarTotemicProjectionTargetPoint");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rehgar - Totemic Projection Reset On Rewind Use
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_caster) == "HeroRehgar"))) {
return false;
}
if (!((UnitGetOwner(lv_caster) <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitHasBehavior2(lv_caster, "RehgarEarthbindTotemTotemicProjectionEnabler") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorRemove(lv_caster, "RehgarEarthbindTotemTotemicProjectionEnabler", 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse_Init () {
libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse = TriggerCreate("libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse_Func");
TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse, c_playerAny, "TalentRewindSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rehgar - Ghost Wolf After Port To Town
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroPortedBackToTownPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroRehgar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
Wait(0.25, c_timeGame);
UnitBehaviorAdd(libGame_gv_players[lv_player].lv_heroUnit, "RehgarGhostWolfBuff", libGame_gv_players[lv_player].lv_heroUnit, 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown_Init () {
libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown = TriggerCreate("libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown_Func");
TriggerEnable(libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown, false);
libGame_gf_HeroPortedBackToTown(libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rehgar - Ghost Wolf Mounting Special Case
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroSpecialCaseMountingPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroRehgar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(libGame_gv_players[lv_player].lv_heroUnit, "RehgarGhostWolfBuff", libGame_gv_players[lv_player].lv_heroUnit, 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase_Init () {
libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase = TriggerCreate("libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase_Func");
TriggerEnable(libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase, false);
libGame_gf_HeroSpecialCaseMounting(libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rehgar - Electric Charge - Add Leech
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRehgarElectricChargeAddLeech_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_damageAmount;
unit lv_rehgarUnit;
int lv_rehgarPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_rehgarUnit = EventUnitDamageSourceUnit();
lv_rehgarPlayer = UnitGetOwner(EventUnitDamageSourceUnit());
// Conditions
if (testConds) {
if (!((UnitTypeTestAttribute(UnitGetType(EventUnit()), c_unitAttributeHeroic) == true))) {
return false;
}
if (!((PlayerHasTalent(lv_rehgarPlayer, "RehgarLightningShieldElectricCharge") == true))) {
return false;
}
if (!((lv_rehgarPlayer >= 1))) {
return false;
}
if (!((lv_rehgarPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_damageAmount = ((EventUnitDamageAmount() + EventUnitDamageBehaviorShield()) * CatalogFieldValueGetAsFixed(c_gameCatalogEffect, EventUnitDamageEffect(), "LeechFraction[" + IntToString(c_unitVitalLife) + "]", lv_rehgarPlayer));
libGDHL_gv_heroRehgarElecrtricChargeLeechCombined[lv_rehgarPlayer] = (libGDHL_gv_heroRehgarElecrtricChargeLeechCombined[lv_rehgarPlayer] + lv_damageAmount);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRehgarElectricChargeAddLeech_Init () {
libGDHL_gt_HeroRehgarElectricChargeAddLeech = TriggerCreate("libGDHL_gt_HeroRehgarElectricChargeAddLeech_Func");
TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeAddLeech, false);
TriggerAddDamageEvent(libGDHL_gt_HeroRehgarElectricChargeAddLeech, "HeroRehgar", null, c_unitDamageTypeAbility, c_unitDamageEither, "RehgarLightningShieldDamage");
TriggerAddDamageEvent(libGDHL_gt_HeroRehgarElectricChargeAddLeech, "HeroRehgar", null, c_unitDamageTypeAbility, c_unitDamageEither, "RehgarLightningShieldElectricChargeTalentDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rehgar - Electric Charge - Leech Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRehgarElectricChargeLeechProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_rehgarUnit;
unit lv_sourceUnit;
int lv_rehgarPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_rehgarUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_sourceUnit = EventPlayerEffectUsedUnit(c_effectUnitSource);
lv_rehgarPlayer = UnitGetOwner(lv_rehgarUnit);
// Conditions
if (testConds) {
if (!((libGDHL_gv_heroRehgarElecrtricChargeLeechCombined[lv_rehgarPlayer] > 0.0))) {
return false;
}
if (!((lv_rehgarPlayer >= 1))) {
return false;
}
if (!((lv_rehgarPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSetFixed(c_gameCatalogEffect, "RehgarElectricChargeCreateHealer", "RechargeVitalRate", lv_rehgarPlayer, libGDHL_gv_heroRehgarElecrtricChargeLeechCombined[lv_rehgarPlayer]);
UnitCreateEffectUnit(lv_rehgarUnit, "RehgarElectricChargeCreateHealerSet", lv_sourceUnit);
libGDHL_gv_heroRehgarElecrtricChargeLeechCombined[lv_rehgarPlayer] = 0.0;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRehgarElectricChargeLeechProc_Init () {
libGDHL_gt_HeroRehgarElectricChargeLeechProc = TriggerCreate("libGDHL_gt_HeroRehgarElectricChargeLeechProc_Func");
TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeLeechProc, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRehgarElectricChargeLeechProc, c_playerAny, "RehgarLightningShieldLeechProcDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Rexxar UI Initialize
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_RexxarUIInitialize_Func (bool testConds, bool runActions) {
int init_i;
// Variable Declarations
int[6] lv_panels;
int lv_currentPanelLayer;
// Automatic Variable Declarations
// Variable Initialization
for (init_i = 0; init_i <= 5; init_i += 1) {
lv_panels[init_i] = c_invalidDialogControlId;
}
// Actions
if (!runActions) {
return true;
}
DialogControlCreateInPanelFromTemplate(libUIUI_gv_heroSpecificStatusContainer, c_triggerControlTypePanel, "Rexxar/RexxarMishaUnitStatusFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libGDHL_gv_rexxarUI.lv_mainPanel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatus, "HeroUnitStatusFrame");
libGDHL_gv_rexxarUI.lv_rexxarMishaUnitStatus = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeUnitStatusBar, "HeroUnitStatusFrame/HealthBar");
libGDHL_gv_rexxarUI.lv_rexxarMishaHealth = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "RexxarMishaDarkImage");
libGDHL_gv_rexxarUI.lv_rexxarMishaDarkImage = DialogControlLastCreated();
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "RexxarMishaSkullImage");
libGDHL_gv_rexxarUI.lv_rexxarMishaSkullImage = DialogControlLastCreated();
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_RexxarUIInitialize_Init () {
libGDHL_gt_RexxarUIInitialize = TriggerCreate("libGDHL_gt_RexxarUIInitialize_Func");
libCore_gf_IncludeModInitialization(libGDHL_gt_RexxarUIInitialize);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Rexxar UI Cleanup For Hero Swap
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_RexxarUICleanupForHeroSwap_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = libGame_gf_DebugHeroSwappedPlayer();
if ((libGame_gv_players[lv_player].lv_heroIndex != libCore_gf_GetHeroIndexForUnitType("HeroRexxar"))) {
libGDHL_gf_RexxarUICleanup(lv_player);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_RexxarUICleanupForHeroSwap_Init () {
libGDHL_gt_RexxarUICleanupForHeroSwap = TriggerCreate("libGDHL_gt_RexxarUICleanupForHeroSwap_Func");
libGame_gf_DebugHeroSwapped(libGDHL_gt_RexxarUICleanupForHeroSwap);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Clean Up - For Abathur Ultimate Evolution Clone
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarCleanUpForAbathurUltimateEvolutionClone_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(libGDHL_gf_AbathurUltimateEvolutionEndedClonedUnit()) == "HeroRexxar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gf_RexxarUICleanup(libGDHL_gf_AbathurUltimateEvolutionEndedAbathurPlayer());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarCleanUpForAbathurUltimateEvolutionClone_Init () {
libGDHL_gt_HeroRexxarCleanUpForAbathurUltimateEvolutionClone = TriggerCreate("libGDHL_gt_HeroRexxarCleanUpForAbathurUltimateEvolutionClone_Func");
libGDHL_gf_AbathurUltimateEvolutionEnded(libGDHL_gt_HeroRexxarCleanUpForAbathurUltimateEvolutionClone);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Unleash the Boars Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarUnleashtheBoarsCast_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_monitoredUnit;
unit lv_boarUnit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_boarUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_monitoredUnit = OrderGetTargetUnit(UnitOrder(lv_boarUnit, 0));
libGDHL_gf_HeroRexxarUnleashtheBoarsTeleportValidation(lv_boarUnit, lv_monitoredUnit, 15.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarUnleashtheBoarsCast_Init () {
libGDHL_gt_HeroRexxarUnleashtheBoarsCast = TriggerCreate("libGDHL_gt_HeroRexxarUnleashtheBoarsCast_Func");
TriggerEnable(libGDHL_gt_HeroRexxarUnleashtheBoarsCast, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRexxarUnleashtheBoarsCast, c_playerAny, "RexxarUnleashTheBoarsIssueAttackOrder");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha - Clear Pursuit Target on Unit Death
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_rexxarPlayer;
unit lv_target;
// Automatic Variable Declarations
const int auto500B7D6E_ae = libCore_gv_bALMaxPlayers;
const int auto500B7D6E_ai = 1;
// Variable Initialization
lv_target = EventUnit();
// Actions
if (!runActions) {
return true;
}
lv_rexxarPlayer = 1;
for ( ; ( (auto500B7D6E_ai >= 0 && lv_rexxarPlayer <= auto500B7D6E_ae) || (auto500B7D6E_ai < 0 && lv_rexxarPlayer >= auto500B7D6E_ae) ) ; lv_rexxarPlayer += auto500B7D6E_ai ) {
if ((lv_target == libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer])) {
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer] = null;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_rexxarPlayer] = null;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath_Init () {
libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath = TriggerCreate("libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[1]"));
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[2]"));
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[3]"));
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[4]"));
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[5]"));
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[6]"));
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[7]"));
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[8]"));
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[9]"));
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[10]"));
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[1]"), "Dead", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[2]"), "Dead", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[3]"), "Dead", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[4]"), "Dead", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[5]"), "Dead", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[6]"), "Dead", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[7]"), "Dead", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[8]"), "Dead", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[9]"), "Dead", c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath, UnitRefFromVariable("libGDHL_gv_heroRexxarMishaPursuitTarget[10]"), "Dead", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha - Set Pursuit Target From Misha, Focus!
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromMishaFocus_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_rexxar;
int lv_rexxarPlayer;
unit lv_target;
// Automatic Variable Declarations
// Variable Initialization
lv_rexxar = EventPlayerEffectUsedUnitLaunch();
lv_rexxarPlayer = UnitGetOwner(lv_rexxar);
lv_target = EventPlayerEffectUsedUnitImpact();
// Actions
if (!runActions) {
return true;
}
if ((libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer] != lv_target)) {
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer] = null;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_rexxarPlayer] = null;
if ((UnitTypeTestAttribute(UnitGetType(lv_target), c_unitAttributeStructure) == false) && (UnitGetType(lv_target) != UnitGetType(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer]))) {
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer] = lv_target;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_rexxarPlayer] = UnitGetPosition(lv_target);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromMishaFocus_Init () {
libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromMishaFocus = TriggerCreate("libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromMishaFocus_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromMishaFocus, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromMishaFocus, c_playerAny, "RexxarMishaFocusModifyUnit");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha - Clear Pursuit Target From Misha, Follow!
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaClearPursuitTargetFromMishaFollow_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_rexxar;
int lv_rexxarPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_rexxar = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_rexxarPlayer = UnitGetOwner(lv_rexxar);
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer] = null;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_rexxarPlayer] = null;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaClearPursuitTargetFromMishaFollow_Init () {
libGDHL_gt_HeroRexxarMishaClearPursuitTargetFromMishaFollow = TriggerCreate("libGDHL_gt_HeroRexxarMishaClearPursuitTargetFromMishaFollow_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaClearPursuitTargetFromMishaFollow, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRexxarMishaClearPursuitTargetFromMishaFollow, c_playerAny, "RexxaeMishaFollowFollowApply");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha - Set Pursuit Target From Attacks
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromAttacks_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_misha;
int lv_rexxarPlayer;
unit lv_target;
// Automatic Variable Declarations
// Variable Initialization
lv_misha = EventPlayerEffectUsedUnitLaunch();
lv_rexxarPlayer = UnitGetOwner(lv_misha);
lv_target = EventPlayerEffectUsedUnitImpact();
// Conditions
if (testConds) {
if (!((lv_rexxarPlayer >= 1))) {
return false;
}
if (!((lv_rexxarPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer] != lv_target)) {
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer] = null;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_rexxarPlayer] = null;
if ((UnitTypeTestAttribute(UnitGetType(lv_target), c_unitAttributeStructure) == false)) {
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer] = lv_target;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_rexxarPlayer] = UnitGetPosition(lv_target);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromAttacks_Init () {
libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromAttacks = TriggerCreate("libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromAttacks_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromAttacks, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromAttacks, c_playerAny, "RexxarMishaWeaponDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha, Focus! Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaFocusUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_rexxar;
int lv_rexxarPlayer;
unit lv_targetUnit;
point lv_targetPoint;
unit lv_misha;
// Automatic Variable Declarations
// Variable Initialization
lv_rexxar = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_rexxarPlayer = EventPlayer();
lv_targetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_targetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
lv_misha = libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer];
// Actions
if (!runActions) {
return true;
}
if (((UnitIsValid(lv_targetUnit) == true) || (PointPathingPassable(lv_targetPoint) == true))) {
}
else {
lv_targetPoint = UnitTypePlacementFromPoint(UnitGetType(lv_misha), lv_rexxarPlayer, lv_targetPoint, 500.0);
UnitCreateEffectPoint(lv_rexxar, "RexxarMishaFocusTargetSet", lv_targetPoint);
return true;
}
if ((UnitIsSelected(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], lv_rexxarPlayer) == true)) {
UnitSelect(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], lv_rexxarPlayer, false);
}
if ((UnitHasBehavior2(lv_rexxar, "RexxarMishaFollowRexxarCarry") == true)) {
UnitAbilityReset(lv_rexxar, AbilityCommand("RexxarMishaFollowCancel", 0), c_spendLocationUnit);
UnitIssueOrder(lv_rexxar, Order(AbilityCommand("RexxarMishaFollowCancel", 0)), c_orderQueueAddToFront);
}
if ((libGDHL_gv_commandMishaTargetUnit[lv_rexxarPlayer] != null)) {
UnitBehaviorRemovePlayer(libGDHL_gv_commandMishaTargetUnit[lv_rexxarPlayer], "RexxarMishaFocussedTargetUnit", lv_rexxarPlayer, 1);
UnitCreateEffectUnit(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocusTargetOff", libGDHL_gv_commandMishaTargetUnit[lv_rexxarPlayer]);
}
if ((libGDHL_gv_commandMishaTargetPoint[lv_rexxarPlayer] != null)) {
UnitCreateEffectPoint(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocusTargetOff", libGDHL_gv_commandMishaTargetPoint[lv_rexxarPlayer]);
}
if ((libGDHL_gv_commandMishaTargetMoonwell[lv_rexxarPlayer] != null)) {
UnitCreateEffectUnit(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocusTargetOff", libGDHL_gv_commandMishaTargetMoonwell[lv_rexxarPlayer]);
}
if ((lv_targetUnit != null) && (lv_targetUnit != lv_misha)) {
libGDHL_gv_commandMishaTargetPoint[lv_rexxarPlayer] = null;
if (((UnitFilterMatch(lv_targetUnit, EventPlayer(), UnitFilter((1 << c_targetFilterVisible), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true) || (UnitFilterMatch(lv_targetUnit, EventPlayer(), UnitFilter((1 << c_targetFilterStructure), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true))) {
libGDHL_gv_commandMishaTargetUnit[lv_rexxarPlayer] = lv_targetUnit;
UnitCreateEffectUnit(lv_rexxar, "RexxarApplyMishaFocusTargetBehavior", libGDHL_gv_commandMishaTargetUnit[lv_rexxarPlayer]);
UnitBehaviorRemove(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocussedOnPoint", 1);
UnitBehaviorAddPlayer(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocussedOnUnit", lv_rexxarPlayer, 1);
TransmissionSendForPlayerSelect(PlayerGroupSingle(lv_rexxarPlayer), TransmissionSourceFromUnit(libGame_gv_players[lv_rexxarPlayer].lv_heroUnit, false, true, ""), PortraitGetGame(), "", "Talk", SoundLink("RexxarBase_Misha_FocusUnit", c_soundIndexAny), StringToText(""), StringToText(""), 0.0, c_transmissionDurationAdd, false, lv_rexxarPlayer, false);
}
else {
if (((UnitGetType(lv_targetUnit) == "TownMoonwell") || (UnitGetType(lv_targetUnit) == "TownMoonwellL2") || (UnitGetType(lv_targetUnit) == "TownMoonwellL3"))) {
UnitBehaviorRemove(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocussedOnUnit", 1);
UnitBehaviorAdd(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocussedOnPoint", lv_rexxar, 1);
libGDHL_gv_commandMishaTargetMoonwell[lv_rexxarPlayer] = lv_targetUnit;
}
else {
UnitCreateEffectUnit(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocusTargetOff", lv_targetUnit);
libGDHL_gv_commandMishaTargetPoint[lv_rexxarPlayer] = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_targetUnit), 3.0, UnitGetPosition(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer]));
UnitCreateEffectPoint(lv_rexxar, "RexxarMishaFocusTargetOn", libGDHL_gv_commandMishaTargetPoint[lv_rexxarPlayer]);
libGDHL_gv_commandMishaTargetUnit[lv_rexxarPlayer] = null;
libGDHL_gv_commandMishaTargetMoonwell[lv_rexxarPlayer] = null;
UnitBehaviorRemove(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocussedOnUnit", 1);
UnitBehaviorAddPlayer(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocussedOnPoint", lv_rexxarPlayer, 1);
TransmissionSendForPlayer(PlayerGroupSingle(lv_rexxarPlayer), TransmissionSourceFromUnit(libGame_gv_players[lv_rexxarPlayer].lv_heroUnit, false, true, ""), PortraitGetGame(), "", "Talk", SoundLink("RexxarBase_Misha_FocusPoint", c_soundIndexAny), StringToText(""), StringToText(""), 0.0, c_transmissionDurationAdd, false, lv_rexxarPlayer);
}
}
}
else {
if ((lv_targetPoint != null)) {
libGDHL_gv_commandMishaTargetPoint[lv_rexxarPlayer] = lv_targetPoint;
libGDHL_gv_commandMishaTargetUnit[lv_rexxarPlayer] = null;
libGDHL_gv_commandMishaTargetMoonwell[lv_rexxarPlayer] = null;
UnitBehaviorRemove(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocussedOnUnit", 1);
UnitBehaviorAddPlayer(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocussedOnPoint", lv_rexxarPlayer, 1);
TransmissionSendForPlayer(PlayerGroupSingle(lv_rexxarPlayer), TransmissionSourceFromUnit(libGame_gv_players[lv_rexxarPlayer].lv_heroUnit, false, true, ""), PortraitGetGame(), "", "Talk", SoundLink("RexxarBase_Misha_FocusPoint", c_soundIndexAny), StringToText(""), StringToText(""), 0.0, c_transmissionDurationAdd, false, lv_rexxarPlayer);
}
if ((lv_targetUnit == lv_misha)) {
libGDHL_gv_commandMishaTargetPoint[lv_rexxarPlayer] = UnitGetPosition(lv_misha);
libGDHL_gv_commandMishaTargetUnit[lv_rexxarPlayer] = null;
libGDHL_gv_commandMishaTargetMoonwell[lv_rexxarPlayer] = null;
UnitBehaviorRemove(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocussedOnUnit", 1);
UnitBehaviorAddPlayer(libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer], "RexxarMishaFocussedOnPoint", lv_rexxarPlayer, 1);
TransmissionSendForPlayer(PlayerGroupSingle(lv_rexxarPlayer), TransmissionSourceFromUnit(libGame_gv_players[lv_rexxarPlayer].lv_heroUnit, false, true, ""), PortraitGetGame(), "", "Talk", SoundLink("RexxarBase_Misha_FocusPoint", c_soundIndexAny), StringToText(""), StringToText(""), 0.0, c_transmissionDurationAdd, false, lv_rexxarPlayer);
}
}
libGDHL_gf_HeroRexxarMishaThink(lv_rexxarPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaFocusUsed_Init () {
libGDHL_gt_HeroRexxarMishaFocusUsed = TriggerCreate("libGDHL_gt_HeroRexxarMishaFocusUsed_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaFocusUsed, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRexxarMishaFocusUsed, c_playerAny, "RexxarMishaFocusTargetOn");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Gains Map Mechanic Stack
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaGainsMapMechanicStack_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_mishaUnit;
int lv_rexxarPlayer;
unit lv_rexxarUnit;
int lv_mapMechanicCount;
// Automatic Variable Declarations
// Variable Initialization
lv_mishaUnit = EventUnit();
lv_rexxarPlayer = UnitGetOwner(lv_mishaUnit);
lv_rexxarUnit = libGame_gv_players[lv_rexxarPlayer].lv_heroUnit;
lv_mapMechanicCount = UnitBehaviorCount(lv_mishaUnit, "MapMechanicStack");
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "RexxarMisha"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(lv_rexxarUnit, "MapMechanicStack", lv_mishaUnit, lv_mapMechanicCount);
UnitBehaviorRemove(lv_mishaUnit, "MapMechanicStack", lv_mapMechanicCount);
if ((UnitBehaviorCount(lv_rexxarUnit, "MapMechanicStack") >= 100)) {
UnitBehaviorAdd(lv_mishaUnit, "RexxarMishaDisableMapMechanicItemPickup", lv_mishaUnit, 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaGainsMapMechanicStack_Init () {
libGDHL_gt_HeroRexxarMishaGainsMapMechanicStack = TriggerCreate("libGDHL_gt_HeroRexxarMishaGainsMapMechanicStack_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaGainsMapMechanicStack, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaGainsMapMechanicStack, null, "MapMechanicStack", c_unitBehaviorChangeIncrease);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Charge Disable
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaChargeDisable_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_rexxarPlayer;
unit lv_mishaUnit;
unit lv_rexxarUnit;
// Automatic Variable Declarations
fixed autoC7C43B8B_at;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "RexxarMisha"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_rexxarPlayer = UnitGetOwner(EventUnit());
lv_mishaUnit = EventUnit();
lv_rexxarUnit = libGame_gv_players[lv_rexxarPlayer].lv_heroUnit;
UnitBehaviorAdd(lv_rexxarUnit, "RexxarDisableCharge", lv_rexxarUnit, 1);
autoC7C43B8B_at = 0;
while (!((UnitHasBehavior2(lv_mishaUnit, EventUnitBehavior()) == false)) && autoC7C43B8B_at <= 20.0) {
Wait(0.0625, c_timeGame);
autoC7C43B8B_at = autoC7C43B8B_at + 0.0625;
}
UnitBehaviorRemove(lv_rexxarUnit, "RexxarDisableCharge", 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaChargeDisable_Init () {
libGDHL_gt_HeroRexxarMishaChargeDisable = TriggerCreate("libGDHL_gt_HeroRexxarMishaChargeDisable_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaChargeDisable, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroRexxarMishaChargeDisable, null, c_behaviorCategoryStun, c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroRexxarMishaChargeDisable, null, c_behaviorCategorySleeping, c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroRexxarMishaChargeDisable, null, c_behaviorCategoryDebuffStasis, c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroRexxarMishaChargeDisable, null, c_behaviorCategoryDebuffSilence, c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroRexxarMishaChargeDisable, null, c_behaviorCategoryDebuffRoot, c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaChargeDisable, null, "SylvanasMindControlTarget", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Mend Pet Disable
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaMendPetDisable_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_rexxarPlayer;
unit lv_mishaUnit;
unit lv_rexxarUnit;
// Automatic Variable Declarations
fixed auto5D78EC36_at;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "RexxarMisha"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_rexxarPlayer = UnitGetOwner(EventUnit());
lv_mishaUnit = EventUnit();
lv_rexxarUnit = libGame_gv_players[lv_rexxarPlayer].lv_heroUnit;
UnitBehaviorAdd(lv_rexxarUnit, "RexxarDisableMendPet", lv_rexxarUnit, 1);
auto5D78EC36_at = 0;
while (!((UnitHasBehavior2(lv_mishaUnit, EventUnitBehavior()) == false)) && auto5D78EC36_at <= 20.0) {
Wait(0.0625, c_timeGame);
auto5D78EC36_at = auto5D78EC36_at + 0.0625;
}
UnitBehaviorRemove(lv_rexxarUnit, "RexxarDisableMendPet", 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaMendPetDisable_Init () {
libGDHL_gt_HeroRexxarMishaMendPetDisable = TriggerCreate("libGDHL_gt_HeroRexxarMishaMendPetDisable_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaMendPetDisable, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroRexxarMishaMendPetDisable, null, c_behaviorCategoryDebuffStasis, c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Spawn
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaSpawn_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_rexxarPlayer;
unit lv_misha;
unit lv_rexxar;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnitCreatedUnit()) == "RexxarMisha"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_rexxarPlayer = UnitGetOwner(EventUnitCreatedUnit());
lv_misha = EventUnitCreatedUnit();
libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer] = EventUnitCreatedUnit();
lv_rexxar = libGame_gv_players[lv_rexxarPlayer].lv_heroUnit;
libGDHL_gv_commandMishaTargetPoint[lv_rexxarPlayer] = null;
libGDHL_gv_commandMishaTargetUnit[lv_rexxarPlayer] = null;
libGDHL_gv_mishaCurrentAIState[lv_rexxarPlayer] = libGDHL_ge_MishaState_Idle;
UnitBehaviorRemove(lv_misha, "RexxarMishaHold", 1);
libNtve_gf_MakeUnitFacePoint(lv_misha, PointWithOffset(UnitGetGoalPosition(lv_rexxar), 0.0, -5.0), 0.0);
if ((UnitGetType(libGame_gv_players[lv_rexxarPlayer].lv_heroUnit) == "HeroAbathur")) {
lv_rexxar = libGame_gv_players[lv_rexxarPlayer].lv_activeVehicle;
UnitBehaviorAdd(lv_misha, "UltimateEvolutionBuff", lv_rexxar, 1);
UnitBehaviorAdd(lv_misha, "AbathurUltimateEvolutionCleanupTarget", lv_rexxar, 1);
}
else {
if ((PlayerHasTalent(lv_rexxarPlayer, "RexxarHunterGatherer") == true)) {
UnitBehaviorAdd(lv_misha, "RexxarHunterGathererCarryBehavior", lv_misha, 1);
UnitBehaviorAdd(lv_misha, "RexxarHunterGathererMishaTokenCounter", lv_misha, 1);
CatalogFieldValueSetInt(c_gameCatalogEffect, "RexxarHunterGathererModifyDynamicMishaTokenCount", "Value", lv_rexxarPlayer, UnitBehaviorCount(lv_rexxar, "RexxarHunterGathererRexxarTokenCounter"));
UnitCreateEffectUnit(lv_rexxar, "RexxarHunterGathererModifyDynamicMishaTokenCount", lv_misha);
}
if ((PlayerHasTalent(lv_rexxarPlayer, "RexxarSpiritBondGrizzledFortitude") == true)) {
UnitBehaviorAdd(lv_misha, "TalentBucketBlockChargedTarget", lv_misha, 1);
}
if ((PlayerHasTalent(lv_rexxarPlayer, "RexxarSpiritBondWildfireBear") == true)) {
UnitBehaviorAdd(lv_misha, "RexxarSpiritBondWildfireBear", lv_misha, 1);
}
if ((PlayerHasTalent(lv_rexxarPlayer, "RexxarAnimalHusbandry") == true)) {
UnitBehaviorAdd(lv_misha, "RexxarAnimalHusbandryHealthBuffCarry", lv_misha, 1);
UnitBehaviorAdd(lv_misha, "RexxarAnimalHusbandryTokenCounter", lv_misha, 1);
CatalogFieldValueSetInt(c_gameCatalogEffect, "RexxarAnimalHusbandryDynamicModifyTokenCounter", "Value", lv_rexxarPlayer, (UnitBehaviorCount(lv_rexxar, "RexxarAnimalHusbandryTokenCounter") / 2));
UnitCreateEffectUnit(lv_rexxar, "RexxarAnimalHusbandryDynamicModifyTokenCounter", lv_misha);
}
if ((PlayerHasTalent(lv_rexxarPlayer, "RexxarSpiritBondPrimalIntimidation") == true)) {
UnitBehaviorAdd(lv_misha, "TalentImposingPresenceCarry", lv_misha, 1);
}
if ((PlayerHasTalent(lv_rexxarPlayer, "RexxarDireBeast") == true)) {
UnitBehaviorAdd(lv_misha, "RexxarDireBeastTokenCounter", lv_misha, 1);
}
}
if (((libGame_gv_players[lv_rexxarPlayer].lv_activeVehicle != null) && (UnitGetType(libGame_gv_players[lv_rexxarPlayer].lv_activeVehicle) != "HeroRexxar"))) {
UnitSetPosition(lv_misha, UnitGetPosition(libGame_gv_players[lv_rexxarPlayer].lv_heroUnit), false);
UnitBehaviorAdd(lv_misha, "UsingVehicle", lv_misha, 1);
UnitGroupRemove(libGame_gv_players[lv_rexxarPlayer].lv_heroUnitGroup, lv_misha);
}
UnitGroupAdd(libGame_gv_players[lv_rexxarPlayer].lv_heroUnitGroup, lv_misha);
AITrackUnitDanger(lv_misha);
libGDHL_gf_RexxarUISetup(lv_rexxarPlayer, lv_misha);
libUIUI_gf_UIUnitStatusFramesUpdateUnitStatusFramesForUnit(lv_rexxarPlayer, lv_misha);
if ((UnitHasBehavior2(lv_rexxar, "AbathurUltimateEvolutionControlBehavior") == false)) {
libUIUI_gf_UIPartyFrameSetPetFrame(lv_misha, lv_rexxarPlayer);
}
DialogControlSetVisible(libGDHL_gv_rexxarUI.lv_rexxarMishaDarkImage, libCore_gv_playerGroupFromPlayer[lv_rexxarPlayer], false);
DialogControlSetVisible(libGDHL_gv_rexxarUI.lv_rexxarMishaSkullImage, libCore_gv_playerGroupFromPlayer[lv_rexxarPlayer], false);
UnitCreateEffectUnit(lv_rexxar, "RexxarMishaCreateDummyPersistent", lv_misha);
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Add, libGDHL_gv_aIHeroDelegateTokenValueMishaValue, libGame_gf_TeamNumberOfPlayer(lv_rexxarPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueMishaValue, libGame_gf_TeamNumberOfPlayer(lv_rexxarPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroDead);
while ((UnitIsAlive(lv_misha) == true) && (UnitIsAlive(lv_rexxar) == true)) {
libGDHL_gf_HeroRexxarMishaThink(lv_rexxarPlayer);
Wait(0.0625, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaSpawn_Init () {
libGDHL_gt_HeroRexxarMishaSpawn = TriggerCreate("libGDHL_gt_HeroRexxarMishaSpawn_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaSpawn, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroRexxarMishaSpawn, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Dance
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaDance_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroRexxar"))) {
return false;
}
if (!((libGDHL_gv_rexxarMishaUnit[EventPlayer()] != null))) {
return false;
}
if (!((UnitIsAlive(libGDHL_gv_rexxarMishaUnit[EventPlayer()]) == true))) {
return false;
}
if (!((OrderGetAbilityCommand(UnitOrder(libGDHL_gv_rexxarMishaUnit[EventPlayer()], 0)) != AbilityCommand("stop", 3)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitIssueOrder(libGDHL_gv_rexxarMishaUnit[EventPlayer()], EventUnitOrder(), c_orderQueueAddToFront);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaDance_Init () {
libGDHL_gt_HeroRexxarMishaDance = TriggerCreate("libGDHL_gt_HeroRexxarMishaDance_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaDance, false);
TriggerAddEventUnitOrder(libGDHL_gt_HeroRexxarMishaDance, null, AbilityCommand("HoldFire", 3));
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Rexxar Dies
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarRexxarDies_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_rexxarPlayer;
unit lv_misha;
// Automatic Variable Declarations
unitgroup autoB87840D3_g;
int autoB87840D3_u;
unit autoB87840D3_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gf_HeroKilledUnit()) == "HeroRexxar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_rexxarPlayer = libGame_gf_HeroKilledPlayer();
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer] = null;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_rexxarPlayer] = null;
if ((UnitHasBehavior2(libGame_gf_HeroKilledUnit(), "RexxarMishaAlive") == true)) {
Wait(0.0625, c_timeGame);
autoB87840D3_g = libGame_gv_players[lv_rexxarPlayer].lv_heroUnitGroup;
autoB87840D3_u = UnitGroupCount(autoB87840D3_g, c_unitCountAll);
for (;; autoB87840D3_u -= 1) {
autoB87840D3_var = UnitGroupUnitFromEnd(autoB87840D3_g, autoB87840D3_u);
if (autoB87840D3_var == null) { break; }
if ((UnitGetType(autoB87840D3_var) == "RexxarMisha")) {
lv_misha = autoB87840D3_var;
UnitCreateEffectUnit(lv_misha, "RexxarAnimalHusbandryResetTokenCounter", lv_misha);
}
}
UnitKill(lv_misha);
UnitCreateEffectUnit(libGame_gv_players[lv_rexxarPlayer].lv_heroUnit, "RexxarSpiritBondRemoveMishaAliveTarget", libGame_gv_players[lv_rexxarPlayer].lv_heroUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarRexxarDies_Init () {
libGDHL_gt_HeroRexxarRexxarDies = TriggerCreate("libGDHL_gt_HeroRexxarRexxarDies_Func");
TriggerEnable(libGDHL_gt_HeroRexxarRexxarDies, false);
libGame_gf_HeroKilled(libGDHL_gt_HeroRexxarRexxarDies);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Rexxar Loses Map Mechanic Stacks
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarRexxarLosesMapMechanicStacks_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_rexxarUnit;
int lv_rexxarPlayer;
unit lv_mishaUnit;
int lv_mapMechanicCount;
// Automatic Variable Declarations
// Variable Initialization
lv_rexxarUnit = EventUnit();
lv_rexxarPlayer = UnitGetOwner(lv_rexxarUnit);
lv_mapMechanicCount = UnitBehaviorCount(lv_rexxarUnit, "MapMechanicStack");
// Conditions
if (testConds) {
if (!((lv_rexxarPlayer >= 1))) {
return false;
}
if (!((lv_rexxarPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitGetType(EventUnit()) == "HeroRexxar"))) {
return false;
}
if (!((lv_mapMechanicCount < 100))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_mishaUnit = libGDHL_gv_rexxarMishaUnit[lv_rexxarPlayer];
UnitBehaviorRemove(lv_mishaUnit, "RexxarMishaDisableMapMechanicItemPickup", 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarRexxarLosesMapMechanicStacks_Init () {
libGDHL_gt_HeroRexxarRexxarLosesMapMechanicStacks = TriggerCreate("libGDHL_gt_HeroRexxarRexxarLosesMapMechanicStacks_Func");
TriggerEnable(libGDHL_gt_HeroRexxarRexxarLosesMapMechanicStacks, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarRexxarLosesMapMechanicStacks, null, "MapMechanicStack", c_unitBehaviorChangeDecrease);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Remove Misha
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarRemoveMisha_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_rexxarPlayer;
// Automatic Variable Declarations
unitgroup auto39C2B936_g;
int auto39C2B936_u;
unit auto39C2B936_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroRexxar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_rexxarPlayer = UnitGetOwner(EventUnit());
auto39C2B936_g = UnitGroup("RexxarMisha", lv_rexxarPlayer, RegionEntireMap(), UnitFilter(0, 0, 0, 0), 0);
auto39C2B936_u = UnitGroupCount(auto39C2B936_g, c_unitCountAll);
for (;; auto39C2B936_u -= 1) {
auto39C2B936_var = UnitGroupUnitFromEnd(auto39C2B936_g, auto39C2B936_u);
if (auto39C2B936_var == null) { break; }
if ((TimerIsPaused(libGDHL_gv_mishaDeathTimer[lv_rexxarPlayer]) == true)) {
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueMishaValue, libGame_gf_TeamNumberOfPlayer(lv_rexxarPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
}
else {
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueMishaValue, libGame_gf_TeamNumberOfPlayer(lv_rexxarPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroDead);
}
libNtve_gf_StopTimer(libGDHL_gv_mishaDeathTimer[lv_rexxarPlayer]);
UnitRemove(auto39C2B936_var);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarRemoveMisha_Init () {
libGDHL_gt_HeroRexxarRemoveMisha = TriggerCreate("libGDHL_gt_HeroRexxarRemoveMisha_Func");
TriggerEnable(libGDHL_gt_HeroRexxarRemoveMisha, false);
TriggerAddEventUnitRemoved(libGDHL_gt_HeroRexxarRemoveMisha, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Rexxar Stasis Start (Includes Feign Death)
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarRexxarStasisStartIncludesFeignDeath_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_rexxarPlayer;
unit lv_misha;
// Automatic Variable Declarations
unitgroup autoCFD1E677_g;
int autoCFD1E677_u;
unit autoCFD1E677_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroRexxar"))) {
return false;
}
if (!((UnitHasBehavior2(EventUnit(), "RexxarFeignDeathInvulnerable") == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_rexxarIsInStasis[UnitGetOwner(EventUnit())] = true;
libGDHL_gv_rexxarStasisOrderCount[UnitGetOwner(EventUnit())] = UnitOrderCount(EventUnit());
libGDHL_gf_HeroRexxarMishaFocusOff(UnitGetOwner(EventUnit()));
if ((UnitHasBehavior2(EventUnit(), "RexxarMishaAlive") == true)) {
autoCFD1E677_g = libGame_gv_players[UnitGetOwner(EventUnit())].lv_heroUnitGroup;
autoCFD1E677_u = UnitGroupCount(autoCFD1E677_g, c_unitCountAll);
for (;; autoCFD1E677_u -= 1) {
autoCFD1E677_var = UnitGroupUnitFromEnd(autoCFD1E677_g, autoCFD1E677_u);
if (autoCFD1E677_var == null) { break; }
if ((UnitGetType(autoCFD1E677_var) == "RexxarMisha")) {
lv_misha = autoCFD1E677_var;
}
}
UnitSelect(lv_misha, UnitGetOwner(EventUnit()), true);
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(UnitGetOwner(EventUnit())) == true)) {
UnitCreateAIThinkTree(lv_misha);
}
}
UISetSelectionTypeEnabled(PlayerGroupSingle(lv_rexxarPlayer), c_localSelectionTypeWorldPanelHero, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarRexxarStasisStartIncludesFeignDeath_Init () {
libGDHL_gt_HeroRexxarRexxarStasisStartIncludesFeignDeath = TriggerCreate("libGDHL_gt_HeroRexxarRexxarStasisStartIncludesFeignDeath_Func");
TriggerEnable(libGDHL_gt_HeroRexxarRexxarStasisStartIncludesFeignDeath, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroRexxarRexxarStasisStartIncludesFeignDeath, null, c_behaviorCategoryDebuffStasis, c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Rexxar Stasis End (Included Feign Death)
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarRexxarStasisEndIncludedFeignDeath_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_rexxarPlayer;
unit lv_misha;
// Automatic Variable Declarations
unitgroup auto712D24ED_g;
int auto712D24ED_u;
unit auto712D24ED_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroRexxar"))) {
return false;
}
if (!((UnitHasBehavior2(EventUnit(), "RexxarFeignDeathInvulnerable") == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_rexxarIsInStasis[UnitGetOwner(EventUnit())] = false;
auto712D24ED_g = libGame_gv_players[UnitGetOwner(EventUnit())].lv_heroUnitGroup;
auto712D24ED_u = UnitGroupCount(auto712D24ED_g, c_unitCountAll);
for (;; auto712D24ED_u -= 1) {
auto712D24ED_var = UnitGroupUnitFromEnd(auto712D24ED_g, auto712D24ED_u);
if (auto712D24ED_var == null) { break; }
if ((UnitGetType(auto712D24ED_var) == "RexxarMisha")) {
lv_misha = auto712D24ED_var;
}
UnitSelect(lv_misha, UnitGetOwner(EventUnit()), false);
UnitDestroyAIThinkTree(lv_misha);
}
UISetSelectionTypeEnabled(PlayerGroupSingle(lv_rexxarPlayer), c_localSelectionTypeWorldPanelHero, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarRexxarStasisEndIncludedFeignDeath_Init () {
libGDHL_gt_HeroRexxarRexxarStasisEndIncludedFeignDeath = TriggerCreate("libGDHL_gt_HeroRexxarRexxarStasisEndIncludedFeignDeath_Func");
TriggerEnable(libGDHL_gt_HeroRexxarRexxarStasisEndIncludedFeignDeath, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroRexxarRexxarStasisEndIncludedFeignDeath, null, c_behaviorCategoryDebuffStasis, c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Dies
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaDies_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
int lv_killingPlayer;
int lv_rexxarPlayer;
unit lv_rexxarUnit;
unit lv_misha;
playergroup lv_killingTeamGroup;
playergroup lv_killingGroup;
// Automatic Variable Declarations
playergroup auto6A884D65_g;
// Variable Initialization
lv_killingTeamGroup = PlayerGroupEmpty();
lv_killingGroup = PlayerGroupEmpty();
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "RexxarMisha"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_rexxarPlayer = UnitGetOwner(EventUnit());
lv_misha = EventUnit();
lv_killingPlayer = libNtve_gf_KillingPlayer();
lv_killingTeamGroup = libGame_gf_EnemyPlayerGroupOfPlayer(lv_rexxarPlayer);
libGDHL_gv_heroRexxarMishaPursuitTarget[lv_rexxarPlayer] = null;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[lv_rexxarPlayer] = null;
UnitBehaviorAdd(lv_misha, "Dead", lv_misha, 1);
libGDHL_gf_HeroRexxarMishaFocusOff(lv_rexxarPlayer);
if ((UnitGetType(libGame_gv_players[EventPlayer()].lv_heroUnit) != "HeroAbathur")) {
lv_rexxarUnit = libGame_gv_players[lv_rexxarPlayer].lv_heroUnit;
lv_killingGroup = libGame_gf_HeroDeathGetKillingGroupFromKillingTeamGroupAndDeadUnit(lv_killingTeamGroup, libNtve_gf_KillingPlayer(), EventUnit());
libGame_gf_HeroDeathAwardXP(lv_killingPlayer, EventUnit(), lv_killingTeamGroup, lv_killingGroup, true);
if ((lv_killingPlayer == 16)) {
libGame_gf_SendEventHeroAllyKilled(lv_rexxarPlayer, lv_misha);
}
else {
libGame_gf_SendEventHeroAllyKilled(lv_killingPlayer, lv_misha);
libUIUI_gf_KillLogAnnounceKill(lv_killingPlayer, lv_misha);
}
auto6A884D65_g = lv_killingGroup;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto6A884D65_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
libGame_gf_ScoreValuesRecordXPContributionForPlayer(lv_itPlayer, (libCore_gf_DataXPXPForHero(lv_itPlayer, EventUnit()) / PlayerGroupCount(lv_killingGroup)), false);
libGame_gf_SendEventHeroParticipatedInTakedown(libNtve_gf_KillingPlayer(), lv_itPlayer, lv_rexxarPlayer, EventUnit(), UnitGetPosition(EventUnit()));
}
if ((UnitIsAlive(lv_rexxarUnit) == true)) {
TimerStart(libGDHL_gv_mishaDeathTimer[lv_rexxarPlayer], UnitBehaviorDurationTotal(lv_rexxarUnit, "RexxarSpiritBondCooldown"), false, c_timeGame);
libUIUI_gf_UIPartyFramePetDies(lv_rexxarPlayer, libGDHL_gv_mishaDeathTimer[lv_rexxarPlayer]);
}
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Remove, libGDHL_gv_aIHeroDelegateTokenValueMishaValue, libGame_gf_TeamNumberOfPlayer(lv_rexxarPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroAlive);
libAIAI_gf_AITeamDelegateModifyHeroStatusTokensforTeam(libAIAI_ge_AITeamDelegateAddRemoveLaneValue_Add, libGDHL_gv_aIHeroDelegateTokenValueMishaValue, libGame_gf_TeamNumberOfPlayer(lv_rexxarPlayer), libAIAI_ge_AITeamDelegateLivingDeadHeroStatusUpdates_HeroDead);
}
UnitSelect(EventUnit(), lv_rexxarPlayer, false);
libUIUI_gv_uIHeroStatusFrames[lv_rexxarPlayer].lv_unitCount -= 1;
DialogControlSetVisible(libGDHL_gv_rexxarUI.lv_rexxarMishaHealth, libCore_gv_playerGroupFromPlayer[lv_rexxarPlayer], false);
DialogControlSetVisible(libGDHL_gv_rexxarUI.lv_rexxarMishaDarkImage, libCore_gv_playerGroupFromPlayer[lv_rexxarPlayer], true);
DialogControlSetVisible(libGDHL_gv_rexxarUI.lv_rexxarMishaSkullImage, libCore_gv_playerGroupFromPlayer[lv_rexxarPlayer], true);
DialogControlSendAnimationEvent(libGDHL_gv_rexxarUI.lv_rexxarMishaSkullImage, libCore_gv_playerGroupFromPlayer[lv_rexxarPlayer], "ShrinkOverlay");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaDies_Init () {
libGDHL_gt_HeroRexxarMishaDies = TriggerCreate("libGDHL_gt_HeroRexxarMishaDies_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaDies, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroRexxarMishaDies, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Deselect Misha On Vehicle Enter
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarDeselectMishaOnVehicleEnter_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(EventUnit()) == "RexxarMisha")) {
UnitSelect(EventUnit(), UnitGetOwner(EventUnit()), false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarDeselectMishaOnVehicleEnter_Init () {
libGDHL_gt_HeroRexxarDeselectMishaOnVehicleEnter = TriggerCreate("libGDHL_gt_HeroRexxarDeselectMishaOnVehicleEnter_Func");
TriggerEnable(libGDHL_gt_HeroRexxarDeselectMishaOnVehicleEnter, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarDeselectMishaOnVehicleEnter, null, "UsingVehicle", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Select Misha On Vehicle Exit
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarSelectMishaOnVehicleExit_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(EventUnit()) == "RexxarMisha")) {
libGDHL_gv_heroRexxarMishaPursuitTarget[UnitGetOwner(EventUnit())] = null;
libGDHL_gv_heroRexxarMishaLastKnownTargetLocation[UnitGetOwner(EventUnit())] = null;
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarSelectMishaOnVehicleExit_Init () {
libGDHL_gt_HeroRexxarSelectMishaOnVehicleExit = TriggerCreate("libGDHL_gt_HeroRexxarSelectMishaOnVehicleExit_Func");
TriggerEnable(libGDHL_gt_HeroRexxarSelectMishaOnVehicleExit, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarSelectMishaOnVehicleExit, null, "UsingVehicle", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Gorge End
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarGorgeEnd_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_misha;
unit lv_rexxar;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!(((UnitGetType(EventUnit()) == "RexxarMisha") || (UnitGetType(EventUnit()) == "HeroRexxar")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = UnitGetOwner(EventUnit());
lv_rexxar = libGame_gv_players[lv_player].lv_heroUnit;
lv_misha = libGDHL_gv_rexxarMishaUnit[lv_player];
if ((libGame_gv_players[lv_player].lv_activeVehicle == null)) {
if ((UnitPathableToUnit(lv_misha, lv_rexxar, 0.0, 0.0) == false)) {
UnitSetPosition(lv_misha, UnitGetPosition(lv_rexxar), false);
}
}
else {
if ((UnitPathableToUnit(lv_misha, lv_rexxar, 0.0, 0.0) == false)) {
UnitSetPosition(lv_misha, UnitGetPosition(lv_rexxar), false);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarGorgeEnd_Init () {
libGDHL_gt_HeroRexxarGorgeEnd = TriggerCreate("libGDHL_gt_HeroRexxarGorgeEnd_Func");
TriggerEnable(libGDHL_gt_HeroRexxarGorgeEnd, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarGorgeEnd, null, "StitchesGorgePostGorgeTargetCleanup", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Teleport
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaTeleport_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
unitgroup autoFF82D22F_g;
int autoFF82D22F_u;
unit autoFF82D22F_var;
// Variable Initialization
lv_player = EventPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroRexxar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoFF82D22F_g = libGame_gv_players[lv_player].lv_heroUnitGroup;
autoFF82D22F_u = UnitGroupCount(autoFF82D22F_g, c_unitCountAll);
for (;; autoFF82D22F_u -= 1) {
autoFF82D22F_var = UnitGroupUnitFromEnd(autoFF82D22F_g, autoFF82D22F_u);
if (autoFF82D22F_var == null) { break; }
if ((UnitGetType(autoFF82D22F_var) == "RexxarMisha")) {
if ((EventPlayerEffectUsed() != "HearthstoneTeleport")) {
UnitCreateEffectUnit(autoFF82D22F_var, "RexxarMishaHoldIssueStopOrder", autoFF82D22F_var);
UnitSetPosition(autoFF82D22F_var, UnitGetPosition(libGame_gv_players[lv_player].lv_heroUnit), false);
}
Wait(0.0625, c_timeGame);
libGDHL_gf_HeroRexxarMishaStopMishaandResetThink(autoFF82D22F_var);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaTeleport_Init () {
libGDHL_gt_HeroRexxarMishaTeleport = TriggerCreate("libGDHL_gt_HeroRexxarMishaTeleport_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaTeleport, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRexxarMishaTeleport, c_playerAny, "HearthstoneTeleport");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRexxarMishaTeleport, c_playerAny, "UnderworldTeleport");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Underworld Gate Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaUnderworldGateUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_mishaUnit;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gf_MapHauntedMinesPlayerChangesPlaneHeroUnit()) == "RexxarMisha"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = libGame_gf_MapHauntedMinesPlayerUsesGatePlayer();
lv_mishaUnit = libGame_gf_MapHauntedMinesPlayerUsesGateHeroUnit();
if ((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroRexxar")) {
UnitSetPosition(lv_mishaUnit, UnitGetPosition(libGame_gv_players[lv_player].lv_heroUnit), false);
}
else {
UnitSetPosition(lv_mishaUnit, UnitGetPosition(libGame_gv_players[lv_player].lv_activeVehicle), false);
}
Wait(0.0625, c_timeGame);
libGDHL_gf_HeroRexxarMishaStopMishaandResetThink(lv_mishaUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaUnderworldGateUsed_Init () {
libGDHL_gt_HeroRexxarMishaUnderworldGateUsed = TriggerCreate("libGDHL_gt_HeroRexxarMishaUnderworldGateUsed_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaUnderworldGateUsed, false);
libGame_gf_MapHauntedMinesPlayerChangesPlane(libGDHL_gt_HeroRexxarMishaUnderworldGateUsed);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Vehicle Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaVehicleUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_rexxarPlayer;
// Automatic Variable Declarations
unitgroup autoEF981130_g;
int autoEF981130_u;
unit autoEF981130_var;
// Variable Initialization
lv_rexxarPlayer = libGame_gf_UseVehicleHeroPlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_rexxarPlayer].lv_heroUnit) == "HeroRexxar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gf_HeroRexxarMishaFocusOff(lv_rexxarPlayer);
autoEF981130_g = libGame_gv_players[lv_rexxarPlayer].lv_heroUnitGroup;
autoEF981130_u = UnitGroupCount(autoEF981130_g, c_unitCountAll);
for (;; autoEF981130_u -= 1) {
autoEF981130_var = UnitGroupUnitFromEnd(autoEF981130_g, autoEF981130_u);
if (autoEF981130_var == null) { break; }
if ((UnitGetType(autoEF981130_var) == "RexxarMisha")) {
while (((UnitFilterMatch(autoEF981130_var, UnitGetOwner(autoEF981130_var), UnitFilter(0, 0, (1 << c_targetFilterAlly) | (1 << c_targetFilterNeutral) | (1 << c_targetFilterEnemy) | (1 << c_targetFilterMissile), (1 << (c_targetFilterStasis - 32)))) != true) || (UnitHasBehavior2(autoEF981130_var, "StitchesGorgePostGorgeTargetCleanup") == true))) {
Wait(0.0625, c_timeGame);
if ((libGame_gv_players[UnitGetOwner(autoEF981130_var)].lv_activeVehicle == null)) {
return true;
}
}
UnitCreateEffectUnit(autoEF981130_var, "RexxarMishaCommandRemoveTargetPriorityBuffSearch", autoEF981130_var);
UnitSetPosition(autoEF981130_var, UnitGetPosition(libGame_gv_players[lv_rexxarPlayer].lv_heroUnit), false);
UnitBehaviorAdd(autoEF981130_var, "UsingVehicle", autoEF981130_var, 1);
break;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaVehicleUsed_Init () {
libGDHL_gt_HeroRexxarMishaVehicleUsed = TriggerCreate("libGDHL_gt_HeroRexxarMishaVehicleUsed_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaVehicleUsed, false);
libGame_gf_HeroEnteredVehicleInstant(libGDHL_gt_HeroRexxarMishaVehicleUsed);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Vehicle Done
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaVehicleDone_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_UnitStopsOccupyingVehiclePlayer();
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroRexxar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((lv_player > 0) && (lv_player <= libCore_gv_bALMaxPlayers)) {
Wait(0.0625, c_timeGame);
UnitSetPosition(libGDHL_gv_rexxarMishaUnit[lv_player], UnitGetPosition(libGame_gv_players[lv_player].lv_heroUnit), false);
UnitBehaviorRemove(libGDHL_gv_rexxarMishaUnit[lv_player], "UsingVehicle", 1);
Wait(0.0625, c_timeGame);
UnitCreateEffectUnit(libGame_gv_players[lv_player].lv_heroUnit, "RexxarMishaFollowInitialSet", libGame_gv_players[lv_player].lv_heroUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaVehicleDone_Init () {
libGDHL_gt_HeroRexxarMishaVehicleDone = TriggerCreate("libGDHL_gt_HeroRexxarMishaVehicleDone_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaVehicleDone, false);
libGame_gf_UnitStopsOccupyingVehicleInstant(libGDHL_gt_HeroRexxarMishaVehicleDone);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Stuff Misha Into Transport
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarStuffMishaIntoTransport_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup autoF44E8865_g;
int autoF44E8865_u;
unit autoF44E8865_var;
// Conditions
if (testConds) {
if (!(((UnitGetType(libGame_gv_players[libGame_gf_HeroEnteredTransportPlayerEntering()].lv_heroUnit) == "HeroRexxar") || (UnitGetType(libGame_gv_players[libGame_gf_HeroEnteredTransportPlayerEntering()].lv_activeVehicle) == "HeroRexxar")))) {
return false;
}
if (!((libGDHL_gv_rexxarMishaUnit[libGame_gf_HeroEnteredTransportPlayerEntering()] != null))) {
return false;
}
if (!((UnitIsAlive(libGDHL_gv_rexxarMishaUnit[libGame_gf_HeroEnteredTransportPlayerEntering()]) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoF44E8865_g = libGame_gv_players[libGame_gf_HeroEnteredTransportPlayerEntering()].lv_heroUnitGroup;
autoF44E8865_u = UnitGroupCount(autoF44E8865_g, c_unitCountAll);
for (;; autoF44E8865_u -= 1) {
autoF44E8865_var = UnitGroupUnitFromEnd(autoF44E8865_g, autoF44E8865_u);
if (autoF44E8865_var == null) { break; }
if ((UnitGetType(autoF44E8865_var) == "RexxarMisha")) {
while (((UnitFilterMatch(autoF44E8865_var, UnitGetOwner(autoF44E8865_var), UnitFilter(0, (1 << (c_targetFilterStasis - 32)), 0, (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true) || (UnitFilterMatch(autoF44E8865_var, UnitGetOwner(autoF44E8865_var), UnitFilter((1 << c_targetFilterMissile), 0, 0, (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true) || (UnitHasBehavior2(autoF44E8865_var, "StitchesGorgePostGorgeTargetCleanup") == true))) {
Wait(0.0625, c_timeGame);
}
if ((UnitFilterMatch(autoF44E8865_var, UnitGetOwner(autoF44E8865_var), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true) && (((libGame_gv_players[UnitGetOwner(autoF44E8865_var)].lv_activeVehicle != null) && (libNtve_gf_UnitIsInsideTransport(libGame_gv_players[libGame_gf_HeroEnteredTransportPlayerEntering()].lv_activeVehicle) == true)) || ((libGame_gv_players[UnitGetOwner(autoF44E8865_var)].lv_activeVehicle == null) && (libNtve_gf_UnitIsInsideTransport(libGame_gv_players[libGame_gf_HeroEnteredTransportPlayerEntering()].lv_heroUnit) == true)))) {
UnitCreateEffectUnit(autoF44E8865_var, "RexxarMishaCommandRemoveTargetPriorityBuffSearch", autoF44E8865_var);
UnitSetPosition(autoF44E8865_var, UnitGetPosition(libGame_gv_players[libGame_gf_HeroEnteredTransportPlayerEntering()].lv_heroUnit), false);
UnitBehaviorAdd(autoF44E8865_var, "UsingVehicle", autoF44E8865_var, 1);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarStuffMishaIntoTransport_Init () {
libGDHL_gt_HeroRexxarStuffMishaIntoTransport = TriggerCreate("libGDHL_gt_HeroRexxarStuffMishaIntoTransport_Func");
TriggerEnable(libGDHL_gt_HeroRexxarStuffMishaIntoTransport, false);
libGame_gf_HeroEnteredTransport(libGDHL_gt_HeroRexxarStuffMishaIntoTransport);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Kick Misha Out Of Transport
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarKickMishaOutOfTransport_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup auto38092D9F_g;
int auto38092D9F_u;
unit auto38092D9F_var;
// Conditions
if (testConds) {
if (!(((UnitGetType(libGame_gv_players[libGame_gf_HeroExitingTransportPlayerExiting()].lv_heroUnit) == "HeroRexxar") || (UnitGetType(libGame_gv_players[libGame_gf_HeroExitingTransportPlayerExiting()].lv_activeVehicle) == "HeroRexxar")))) {
return false;
}
if (!((libGDHL_gv_rexxarMishaUnit[libGame_gf_HeroExitingTransportPlayerExiting()] != null))) {
return false;
}
if (!((UnitIsAlive(libGDHL_gv_rexxarMishaUnit[libGame_gf_HeroExitingTransportPlayerExiting()]) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto38092D9F_g = libGame_gv_players[libGame_gf_HeroExitingTransportPlayerExiting()].lv_heroUnitGroup;
auto38092D9F_u = UnitGroupCount(auto38092D9F_g, c_unitCountAll);
for (;; auto38092D9F_u -= 1) {
auto38092D9F_var = UnitGroupUnitFromEnd(auto38092D9F_g, auto38092D9F_u);
if (auto38092D9F_var == null) { break; }
if ((UnitGetType(auto38092D9F_var) == "RexxarMisha") && (UnitHasBehavior2(auto38092D9F_var, "UsingVehicle") == true)) {
Wait(0.0625, c_timeGame);
UnitSetPosition(auto38092D9F_var, UnitGetPosition(libGame_gv_players[libGame_gf_HeroExitingTransportPlayerExiting()].lv_heroUnit), false);
UnitBehaviorRemove(auto38092D9F_var, "UsingVehicle", 1);
Wait(0.0625, c_timeGame);
UnitCreateEffectUnit(libGame_gv_players[libGame_gf_HeroExitingTransportPlayerExiting()].lv_heroUnit, "RexxarMishaFollowInitialSet", libGame_gv_players[libGame_gf_HeroExitingTransportPlayerExiting()].lv_heroUnit);
}
}
libGame_gv_players[libGame_gf_HeroExitingTransportPlayerExiting()].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(libGame_gv_players[libGame_gf_HeroExitingTransportPlayerExiting()].lv_heroUnit);
libGame_gv_players[libGame_gf_HeroExitingTransportPlayerExiting()].lv_cameraCurrentTargetGroup = libNtve_gf_ConvertUnitToUnitGroup(libGame_gv_players[libGame_gf_HeroExitingTransportPlayerExiting()].lv_heroUnit);
libGame_gf_CameraUpdateCameraForPlayer(libGame_gf_HeroExitingTransportPlayerExiting());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarKickMishaOutOfTransport_Init () {
libGDHL_gt_HeroRexxarKickMishaOutOfTransport = TriggerCreate("libGDHL_gt_HeroRexxarKickMishaOutOfTransport_Func");
TriggerEnable(libGDHL_gt_HeroRexxarKickMishaOutOfTransport, false);
libGame_gf_HeroExitedTransport(libGDHL_gt_HeroRexxarKickMishaOutOfTransport);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Misha Mounted Behavior Disabled
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarMishaMountedBehaviorDisabled_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "RexxarMisha"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(EventUnit(), "SummonedUnitMountBehaviorSuppressor", EventUnit(), 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarMishaMountedBehaviorDisabled_Init () {
libGDHL_gt_HeroRexxarMishaMountedBehaviorDisabled = TriggerCreate("libGDHL_gt_HeroRexxarMishaMountedBehaviorDisabled_Func");
TriggerEnable(libGDHL_gt_HeroRexxarMishaMountedBehaviorDisabled, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarMishaMountedBehaviorDisabled, null, "SummonedUnitMountBehavior", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Alive Misha Grizzled Fortitude
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarAliveMishaGrizzledFortitude_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup autoD003F0D9_g;
int autoD003F0D9_u;
unit autoD003F0D9_var;
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnit) == "HeroRexxar"))) {
return false;
}
if (!((PlayerHasTalent(libGame_gf_HeroGainTalentPlayer(), "RexxarSpiritBondGrizzledFortitude") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoD003F0D9_g = libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnitGroup;
autoD003F0D9_u = UnitGroupCount(autoD003F0D9_g, c_unitCountAll);
for (;; autoD003F0D9_u -= 1) {
autoD003F0D9_var = UnitGroupUnitFromEnd(autoD003F0D9_g, autoD003F0D9_u);
if (autoD003F0D9_var == null) { break; }
if (((UnitGetType(autoD003F0D9_var) == "RexxarMisha") || (UnitGetType(autoD003F0D9_var) == "HeroRexxar"))) {
UnitBehaviorAdd(autoD003F0D9_var, "TalentBucketBlockChargedTarget", autoD003F0D9_var, 1);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarAliveMishaGrizzledFortitude_Init () {
libGDHL_gt_HeroRexxarAliveMishaGrizzledFortitude = TriggerCreate("libGDHL_gt_HeroRexxarAliveMishaGrizzledFortitude_Func");
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaGrizzledFortitude, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroRexxarAliveMishaGrizzledFortitude);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Alive Misha Easy Prey
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarAliveMishaEasyPrey_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup auto8CA001CC_g;
int auto8CA001CC_u;
unit auto8CA001CC_var;
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnit) == "HeroRexxar"))) {
return false;
}
if (!((PlayerHasTalent(libGame_gf_HeroGainTalentPlayer(), "RexxarSpiritBondEasyPrey") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto8CA001CC_g = libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnitGroup;
auto8CA001CC_u = UnitGroupCount(auto8CA001CC_g, c_unitCountAll);
for (;; auto8CA001CC_u -= 1) {
auto8CA001CC_var = UnitGroupUnitFromEnd(auto8CA001CC_g, auto8CA001CC_u);
if (auto8CA001CC_var == null) { break; }
if ((UnitGetType(auto8CA001CC_var) == "RexxarMisha")) {
UnitBehaviorAdd(auto8CA001CC_var, "RexxarMishaEasyPreyDamageReduction", auto8CA001CC_var, 1);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarAliveMishaEasyPrey_Init () {
libGDHL_gt_HeroRexxarAliveMishaEasyPrey = TriggerCreate("libGDHL_gt_HeroRexxarAliveMishaEasyPrey_Func");
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaEasyPrey, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroRexxarAliveMishaEasyPrey);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Alive Misha Wildfire Bear
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarAliveMishaWildfireBear_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup autoEE0ABCAC_g;
int autoEE0ABCAC_u;
unit autoEE0ABCAC_var;
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnit) == "HeroRexxar"))) {
return false;
}
if (!((PlayerHasTalent(libGame_gf_HeroGainTalentPlayer(), "RexxarSpiritBondWildfireBear") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoEE0ABCAC_g = libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnitGroup;
autoEE0ABCAC_u = UnitGroupCount(autoEE0ABCAC_g, c_unitCountAll);
for (;; autoEE0ABCAC_u -= 1) {
autoEE0ABCAC_var = UnitGroupUnitFromEnd(autoEE0ABCAC_g, autoEE0ABCAC_u);
if (autoEE0ABCAC_var == null) { break; }
if ((UnitGetType(autoEE0ABCAC_var) == "RexxarMisha")) {
UnitBehaviorAdd(autoEE0ABCAC_var, "RexxarSpiritBondWildfireBear", autoEE0ABCAC_var, 1);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarAliveMishaWildfireBear_Init () {
libGDHL_gt_HeroRexxarAliveMishaWildfireBear = TriggerCreate("libGDHL_gt_HeroRexxarAliveMishaWildfireBear_Func");
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaWildfireBear, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroRexxarAliveMishaWildfireBear);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Alive Misha Animal Husbandry
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarAliveMishaAnimalHusbandry_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup auto3BFCD07E_g;
int auto3BFCD07E_u;
unit auto3BFCD07E_var;
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnit) == "HeroRexxar"))) {
return false;
}
if (!((PlayerHasTalent(libGame_gf_HeroGainTalentPlayer(), "RexxarAnimalHusbandry") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto3BFCD07E_g = libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnitGroup;
auto3BFCD07E_u = UnitGroupCount(auto3BFCD07E_g, c_unitCountAll);
for (;; auto3BFCD07E_u -= 1) {
auto3BFCD07E_var = UnitGroupUnitFromEnd(auto3BFCD07E_g, auto3BFCD07E_u);
if (auto3BFCD07E_var == null) { break; }
if ((UnitGetType(auto3BFCD07E_var) == "RexxarMisha")) {
UnitBehaviorAdd(auto3BFCD07E_var, "RexxarAnimalHusbandryHealthBuffCarry", auto3BFCD07E_var, 1);
UnitBehaviorAdd(auto3BFCD07E_var, "RexxarAnimalHusbandryTokenCounter", auto3BFCD07E_var, 1);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarAliveMishaAnimalHusbandry_Init () {
libGDHL_gt_HeroRexxarAliveMishaAnimalHusbandry = TriggerCreate("libGDHL_gt_HeroRexxarAliveMishaAnimalHusbandry_Func");
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaAnimalHusbandry, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroRexxarAliveMishaAnimalHusbandry);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Alive Misha Dire Beast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarAliveMishaDireBeast_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup auto08B50D48_g;
int auto08B50D48_u;
unit auto08B50D48_var;
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnit) == "HeroRexxar"))) {
return false;
}
if (!((PlayerHasTalent(libGame_gf_HeroGainTalentPlayer(), "RexxarDireBeast") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto08B50D48_g = libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnitGroup;
auto08B50D48_u = UnitGroupCount(auto08B50D48_g, c_unitCountAll);
for (;; auto08B50D48_u -= 1) {
auto08B50D48_var = UnitGroupUnitFromEnd(auto08B50D48_g, auto08B50D48_u);
if (auto08B50D48_var == null) { break; }
if ((UnitGetType(auto08B50D48_var) == "RexxarMisha")) {
UnitBehaviorAdd(auto08B50D48_var, "RexxarDireBeastTokenCounter", auto08B50D48_var, 1);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarAliveMishaDireBeast_Init () {
libGDHL_gt_HeroRexxarAliveMishaDireBeast = TriggerCreate("libGDHL_gt_HeroRexxarAliveMishaDireBeast_Func");
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaDireBeast, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroRexxarAliveMishaDireBeast);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Alive Misha Primal Intimidation
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarAliveMishaPrimalIntimidation_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup auto05C5E352_g;
int auto05C5E352_u;
unit auto05C5E352_var;
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroRexxar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto05C5E352_g = libGame_gv_players[UnitGetOwner(EventUnit())].lv_heroUnitGroup;
auto05C5E352_u = UnitGroupCount(auto05C5E352_g, c_unitCountAll);
for (;; auto05C5E352_u -= 1) {
auto05C5E352_var = UnitGroupUnitFromEnd(auto05C5E352_g, auto05C5E352_u);
if (auto05C5E352_var == null) { break; }
if ((UnitGetType(auto05C5E352_var) == "RexxarMisha")) {
UnitBehaviorAdd(auto05C5E352_var, "TalentImposingPresenceCarry", EventUnit(), 1);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarAliveMishaPrimalIntimidation_Init () {
libGDHL_gt_HeroRexxarAliveMishaPrimalIntimidation = TriggerCreate("libGDHL_gt_HeroRexxarAliveMishaPrimalIntimidation_Func");
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaPrimalIntimidation, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarAliveMishaPrimalIntimidation, null, "TalentImposingPresenceCarry", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Alive Misha Hunter-Gatherer
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarAliveMishaHunterGatherer_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
unitgroup autoD5C7FCC2_g;
int autoD5C7FCC2_u;
unit autoD5C7FCC2_var;
// Variable Initialization
lv_unit = EventUnit();
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) != "RexxarMisha"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoD5C7FCC2_g = libGame_gv_players[UnitGetOwner(lv_unit)].lv_heroUnitGroup;
autoD5C7FCC2_u = UnitGroupCount(autoD5C7FCC2_g, c_unitCountAll);
for (;; autoD5C7FCC2_u -= 1) {
autoD5C7FCC2_var = UnitGroupUnitFromEnd(autoD5C7FCC2_g, autoD5C7FCC2_u);
if (autoD5C7FCC2_var == null) { break; }
if ((UnitGetType(autoD5C7FCC2_var) == "RexxarMisha")) {
UnitBehaviorAdd(autoD5C7FCC2_var, "RexxarHunterGathererMishaTokenCounter", autoD5C7FCC2_var, 1);
UnitBehaviorAdd(autoD5C7FCC2_var, "RexxarHunterGathererCarryBehavior", autoD5C7FCC2_var, 1);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarAliveMishaHunterGatherer_Init () {
libGDHL_gt_HeroRexxarAliveMishaHunterGatherer = TriggerCreate("libGDHL_gt_HeroRexxarAliveMishaHunterGatherer_Func");
TriggerEnable(libGDHL_gt_HeroRexxarAliveMishaHunterGatherer, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarAliveMishaHunterGatherer, null, "RexxarHunterGathererCarryBehavior", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Hunter-Gatherer Controller
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarHunterGathererController_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
unitgroup auto943832EA_g;
int auto943832EA_u;
unit auto943832EA_var;
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget);
// Conditions
if (testConds) {
if (!((lv_player > 0))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((libGDHL_gv_hunterGathererGlobe[lv_player] != lv_unit))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "RexxarHunterGatherer") == true))) {
return false;
}
if (!((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroRexxar"))) {
return false;
}
if (!((UnitBehaviorCount(libGame_gv_players[lv_player].lv_heroUnit, "RexxarHunterGathererQuestCompleteCarry") == 0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_hunterGathererGlobe[lv_player] = lv_unit;
auto943832EA_g = libGame_gv_players[lv_player].lv_heroUnitGroup;
auto943832EA_u = UnitGroupCount(auto943832EA_g, c_unitCountAll);
for (;; auto943832EA_u -= 1) {
auto943832EA_var = UnitGroupUnitFromEnd(auto943832EA_g, auto943832EA_u);
if (auto943832EA_var == null) { break; }
UnitCreateEffectUnit(auto943832EA_var, "RexxarHunterGathererModifyTokenCount", auto943832EA_var);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarHunterGathererController_Init () {
libGDHL_gt_HeroRexxarHunterGathererController = TriggerCreate("libGDHL_gt_HeroRexxarHunterGathererController_Func");
TriggerEnable(libGDHL_gt_HeroRexxarHunterGathererController, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRexxarHunterGathererController, c_playerAny, "RexxarHunterGathererDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Thrill of the Hunt Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarThrilloftheHuntProc_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
// Conditions
if (testConds) {
if (!((UnitGetType(EventPlayerEffectUsedUnit(c_effectUnitCaster)) == "HeroRexxar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitIsAlive(libGDHL_gv_rexxarMishaUnit[lv_player]) == true)) {
UnitBehaviorAdd(libGDHL_gv_rexxarMishaUnit[lv_player], "RexxarThrilloftheHuntBuff", EventPlayerEffectUsedUnit(c_effectUnitCaster), 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarThrilloftheHuntProc_Init () {
libGDHL_gt_HeroRexxarThrilloftheHuntProc = TriggerCreate("libGDHL_gt_HeroRexxarThrilloftheHuntProc_Func");
TriggerEnable(libGDHL_gt_HeroRexxarThrilloftheHuntProc, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRexxarThrilloftheHuntProc, c_playerAny, "RexxarThrilloftheHuntProcSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Hardened Skin
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarHardenedSkin_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
// Conditions
if (testConds) {
if (!((UnitGetType(EventPlayerEffectUsedUnit(c_effectUnitCaster)) == "HeroRexxar"))) {
return false;
}
if (!((UnitIsAlive(libGDHL_gv_rexxarMishaUnit[lv_player]) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(libGDHL_gv_rexxarMishaUnit[lv_player], "RexxarHardenedSkinBuff", EventPlayerEffectUsedUnit(c_effectUnitCaster), 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarHardenedSkin_Init () {
libGDHL_gt_HeroRexxarHardenedSkin = TriggerCreate("libGDHL_gt_HeroRexxarHardenedSkin_Func");
TriggerEnable(libGDHL_gt_HeroRexxarHardenedSkin, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRexxarHardenedSkin, c_playerAny, "RexxarHardenedSkinCastSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Bestial Wrath Spirit Bond/Bear Necessities Heal Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarBestialWrathSpiritBondBearNecessitiesHealProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_mishaUnit;
unit lv_damagedUnit;
int lv_mishaPlayer;
fixed lv_healAmount;
fixed lv_spiritBondHealMod;
fixed lv_bearNecessitiesHealMod;
fixed lv_bearNecessitiesMendPetHealMod;
fixed lv_finalHealMod;
// Automatic Variable Declarations
// Variable Initialization
lv_mishaUnit = EventUnitDamageSourceUnit();
lv_damagedUnit = EventUnit();
lv_mishaPlayer = UnitGetOwner(lv_mishaUnit);
lv_spiritBondHealMod = 0.5;
lv_bearNecessitiesHealMod = 0.5;
lv_bearNecessitiesMendPetHealMod = 1.0;
// Conditions
if (testConds) {
if (!((((PlayerHasTalent(lv_mishaPlayer, "RexxarBearNecessitiesCharge") == true) && (UnitFilterMatch(lv_damagedUnit, lv_mishaPlayer, UnitFilter((1 << c_targetFilterMinion), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true)) || ((PlayerHasTalent(lv_mishaPlayer, "RexxarSpiritBond") == true) && (UnitBehaviorCount(EventUnitDamageSourceUnit(), "RexxarBestialWrathMishaBehavior") == 1))))) {
return false;
}
if (!((UnitIsAlive(libGame_gv_players[lv_mishaPlayer].lv_heroUnit) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((PlayerHasTalent(lv_mishaPlayer, "RexxarSpiritBond") == true) && (UnitBehaviorCount(lv_mishaUnit, "RexxarBestialWrathMishaBehavior") == 1)) {
lv_finalHealMod += lv_spiritBondHealMod;
}
if ((PlayerHasTalent(lv_mishaPlayer, "RexxarBearNecessitiesCharge") == true) && (UnitFilterMatch(lv_damagedUnit, lv_mishaPlayer, UnitFilter((1 << c_targetFilterMinion), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true)) {
if ((UnitBehaviorCount(lv_mishaUnit, "RexxarMendPet") == 1)) {
lv_finalHealMod += lv_bearNecessitiesMendPetHealMod;
}
else {
lv_finalHealMod += lv_bearNecessitiesHealMod;
}
}
lv_healAmount = ((EventUnitDamageAmount() + EventUnitDamageBehaviorShield()) * lv_finalHealMod);
CatalogFieldValueSetFixed(c_gameCatalogEffect, "RexxarMishaBasicAttackRexxarHealingCreateHealer", "RechargeVitalRate", lv_mishaPlayer, lv_healAmount);
UnitCreateEffectUnitWithSource(EventUnitDamageSourceUnit(), "RexxarMishaBasicAttackRexxarHealingCreateHealer", libGame_gv_players[lv_mishaPlayer].lv_heroUnit, c_gameCatalogAbil, "RexxarBestialWrath");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarBestialWrathSpiritBondBearNecessitiesHealProc_Init () {
libGDHL_gt_HeroRexxarBestialWrathSpiritBondBearNecessitiesHealProc = TriggerCreate("libGDHL_gt_HeroRexxarBestialWrathSpiritBondBearNecessitiesHealProc_Func");
TriggerEnable(libGDHL_gt_HeroRexxarBestialWrathSpiritBondBearNecessitiesHealProc, false);
TriggerAddEventUnitDamaged(libGDHL_gt_HeroRexxarBestialWrathSpiritBondBearNecessitiesHealProc, null, c_unitDamageTypeAny, c_unitDamageEither, "RexxarMishaWeaponDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Charge Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarChargeCast_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((libGDHL_gv_commandMishaTargetPoint[EventPlayer()] != null))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gf_HeroRexxarMishaFocusOff(EventPlayer());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarChargeCast_Init () {
libGDHL_gt_HeroRexxarChargeCast = TriggerCreate("libGDHL_gt_HeroRexxarChargeCast_Func");
TriggerEnable(libGDHL_gt_HeroRexxarChargeCast, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroRexxarChargeCast, null, AbilityCommand("RexxarMishaChargeRedirect", 0), c_abilEffectStageCast, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Feign Death Overlay On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarFeignDeathOverlayOn_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitIsAlive(EventUnit()) == true) && (UnitTestState(EventUnit(), c_unitStateHallucination) == false) && (UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(EventPlayer(), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarFeignDeathOverlayOn_Init () {
libGDHL_gt_HeroRexxarFeignDeathOverlayOn = TriggerCreate("libGDHL_gt_HeroRexxarFeignDeathOverlayOn_Func");
TriggerEnable(libGDHL_gt_HeroRexxarFeignDeathOverlayOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarFeignDeathOverlayOn, null, "RexxarFeignDeathInvulnerable", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Rexxar - Feign Death Overlay Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroRexxarFeignDeathOverlayOff_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(EventPlayer(), "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroRexxarFeignDeathOverlayOff_Init () {
libGDHL_gt_HeroRexxarFeignDeathOverlayOff = TriggerCreate("libGDHL_gt_HeroRexxarFeignDeathOverlayOff_Func");
TriggerEnable(libGDHL_gt_HeroRexxarFeignDeathOverlayOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroRexxarFeignDeathOverlayOff, null, "RexxarFeignDeathInvulnerable", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Complete Hearthstone
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerCompleteHearthstone_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroSgtHammer"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(EventUnit(), "SgtHammerHearthed", EventUnit(), 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerCompleteHearthstone_Init () {
libGDHL_gt_HeroSgtHammerCompleteHearthstone = TriggerCreate("libGDHL_gt_HeroSgtHammerCompleteHearthstone_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerCompleteHearthstone, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroSgtHammerCompleteHearthstone, null, AbilityCommand("Hearthstone", 0), c_abilEffectStageFinish, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroSgtHammerCompleteHearthstone, null, AbilityCommand("Hearthstone", 0), c_unitAbilStageComplete, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Siege Mode Update
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerSiegeModeUpdate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_sgtHammerUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_sgtHammerUnit = EventUnit();
// Conditions
if (testConds) {
if (!((UnitGetOwner(lv_sgtHammerUnit) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitAbilityReset(lv_sgtHammerUnit, AbilityCommand("SgtHammerSiegeMode", 0), c_spendLocationAll);
UnitAbilitySpendExplicit(lv_sgtHammerUnit, AbilityCommand("SgtHammerSiegeMode", 0), c_spendLocationAll, 0.0, 1.0, 1.0, 1.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerSiegeModeUpdate_Init () {
libGDHL_gt_HeroSgtHammerSiegeModeUpdate = TriggerCreate("libGDHL_gt_HeroSgtHammerSiegeModeUpdate_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerSiegeModeUpdate, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSgtHammerSiegeModeUpdate, null, "SiegeMode", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Blunt Force Gun - Prep Start
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerBluntForceGunPrepStart_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_casterPoint;
point lv_targetPoint;
// Automatic Variable Declarations
// Variable Initialization
lv_casterPoint = UnitGetPosition(EventUnit());
lv_targetPoint = EventUnitTargetPoint();
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectPoint(EventUnit(), "SgtHammerModifyUnitTankTurret", EventUnitTargetPoint());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerBluntForceGunPrepStart_Init () {
libGDHL_gt_HeroSgtHammerBluntForceGunPrepStart = TriggerCreate("libGDHL_gt_HeroSgtHammerBluntForceGunPrepStart_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunPrepStart, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroSgtHammerBluntForceGunPrepStart, null, AbilityCommand("SgtHammerBluntForceGun", 0), c_abilEffectStagePrep, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Blunt Force Gun - Target Calculation
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculation_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_casterPoint;
unit lv_sgtHammerCasterUnit;
int lv_sgtHammerCasterPlayer;
point lv_targetPoint;
fixed lv_targetAngle;
point lv_abilityTargetPoint;
point lv_originTargetPoint;
fixed lv_yPointOffset;
fixed lv_xPointOffsetDistance;
fixed lv_xofFoundPoint;
fixed lv_yofFoundPoint;
fixed lv_yTriangleOriginal;
fixed lv_yTriangleNew;
fixed lv_xTriangleOriginal;
fixed lv_xTriangleNew;
int lv_ping;
fixed lv_distanceBetweenPoints;
fixed lv_distanceBetweenPointsIncrement;
fixed lv_pingDistance;
int lv_pingLoop;
int lv_pingIncrement;
int lv_pingPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_casterPoint = UnitGetPosition(EventUnit());
lv_sgtHammerCasterUnit = EventUnit();
lv_sgtHammerCasterPlayer = EventPlayer();
lv_targetPoint = EventUnitTargetPoint();
// Conditions
if (testConds) {
if (!((libGDHL_gv_heroSgtHammerUseEffectForBFGTargetCalculation == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PathDestroy(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer]);
PathDestroy(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer]);
if ((UnitGetType(lv_sgtHammerCasterUnit) == "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
if ((EventUnitTargetPoint() != libGDHL_gv_heroSgtHammerOrbitalBFGTargetPoint[lv_sgtHammerCasterPlayer])) {
return true;
}
}
if ((libMapM_gf_MapMechanicExistsOnMap("HauntedMinesRework") == true)) {
if ((((UnitGetType(lv_sgtHammerCasterUnit) == "SgtHammerBluntForceGunInvisibleOrbitalDummy") && (libGDHL_gv_heroSgtHammerSgtHammerWasAboveGroundWhenSheCast[lv_sgtHammerCasterPlayer] == false)) || ((lv_sgtHammerCasterUnit == libGame_gv_players[lv_sgtHammerCasterPlayer].lv_heroUnit) && (libNtve_gf_UnitInRegion(libGame_gv_players[lv_sgtHammerCasterPlayer].lv_heroUnit, RegionFromName("Underworld Below")) == true)))) {
if ((EventUnit() == libGame_gv_players[lv_sgtHammerCasterPlayer].lv_heroUnit)) {
libGDHL_gv_heroSgtHammerSgtHammerWasAboveGroundWhenSheCast[lv_sgtHammerCasterPlayer] = false;
}
lv_abilityTargetPoint = libGDHL_gf_TargetCalculation(lv_targetPoint, lv_casterPoint, RegionEntireMap());
if ((UnitGetType(lv_sgtHammerCasterUnit) != "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
libGDHL_gv_heroSgtHammerOrbitalBFGTargetPoint[lv_sgtHammerCasterPlayer] = lv_abilityTargetPoint;
}
lv_targetAngle = AngleBetweenPoints(lv_casterPoint, lv_abilityTargetPoint);
if ((PointGetY(lv_abilityTargetPoint) >= 130.0)) {
lv_xofFoundPoint = PointGetX(lv_abilityTargetPoint);
lv_yofFoundPoint = PointGetY(lv_abilityTargetPoint);
if ((PointGetX(lv_abilityTargetPoint) > PointGetX(lv_casterPoint))) {
lv_yTriangleOriginal = (PointGetY(lv_casterPoint) - lv_yofFoundPoint);
lv_xTriangleOriginal = (PointGetX(lv_casterPoint) - lv_xofFoundPoint);
lv_yPointOffset = (130.0 - lv_yofFoundPoint);
lv_yTriangleNew = (PointGetY(lv_casterPoint) - 130.0);
if ((lv_yTriangleOriginal != 0.0)) {
lv_xTriangleNew = ((lv_yTriangleNew/lv_yTriangleOriginal) * lv_xTriangleOriginal);
}
lv_xPointOffsetDistance = (lv_xTriangleOriginal - lv_xTriangleNew);
lv_abilityTargetPoint = PointWithOffset(lv_abilityTargetPoint, lv_xPointOffsetDistance, lv_yPointOffset);
}
else {
if ((PointGetX(lv_abilityTargetPoint) < PointGetX(lv_casterPoint))) {
lv_yTriangleOriginal = (PointGetY(lv_casterPoint) - lv_yofFoundPoint);
lv_xTriangleOriginal = (lv_xofFoundPoint - PointGetX(lv_casterPoint));
lv_yPointOffset = (130.0 - lv_yofFoundPoint);
lv_yTriangleNew = (PointGetY(lv_casterPoint) - 130.0);
if ((lv_yTriangleOriginal != 0.0)) {
lv_xTriangleNew = ((lv_yTriangleNew/lv_yTriangleOriginal) * lv_xTriangleOriginal);
}
lv_xPointOffsetDistance = (lv_xTriangleOriginal - lv_xTriangleNew);
lv_xPointOffsetDistance = (-1.0 * lv_xPointOffsetDistance);
lv_abilityTargetPoint = PointWithOffset(lv_abilityTargetPoint, lv_xPointOffsetDistance, lv_yPointOffset);
}
}
}
lv_distanceBetweenPoints = DistanceBetweenPoints(lv_casterPoint, lv_abilityTargetPoint);
if ((lv_abilityTargetPoint != null)) {
lv_originTargetPoint = libGDHL_gf_TargetCalculation(PointWithOffsetPolar(lv_casterPoint, 1.0, (lv_targetAngle + 180)), lv_casterPoint, RegionFromName("Underworld Above"));
if ((PointGetY(lv_originTargetPoint) >= 130.0)) {
lv_xofFoundPoint = PointGetX(lv_originTargetPoint);
lv_yofFoundPoint = PointGetY(lv_originTargetPoint);
if ((PointGetX(lv_originTargetPoint) > PointGetX(lv_casterPoint))) {
lv_yTriangleOriginal = (PointGetY(lv_casterPoint) - lv_yofFoundPoint);
lv_xTriangleOriginal = (PointGetX(lv_casterPoint) - lv_xofFoundPoint);
lv_yPointOffset = (130.0 - lv_yofFoundPoint);
lv_yTriangleNew = (PointGetY(lv_casterPoint) - 130.0);
if ((lv_yTriangleOriginal != 0.0)) {
lv_xTriangleNew = ((lv_yTriangleNew/lv_yTriangleOriginal) * lv_xTriangleOriginal);
}
lv_xPointOffsetDistance = (lv_xTriangleOriginal - lv_xTriangleNew);
lv_originTargetPoint = PointWithOffset(lv_originTargetPoint, lv_xPointOffsetDistance, lv_yPointOffset);
}
else {
if ((PointGetX(lv_originTargetPoint) < PointGetX(lv_casterPoint))) {
lv_yTriangleOriginal = (PointGetY(lv_casterPoint) - lv_yofFoundPoint);
lv_xTriangleOriginal = (lv_xofFoundPoint - PointGetX(lv_casterPoint));
lv_yPointOffset = (130.0 - lv_yofFoundPoint);
lv_yTriangleNew = (PointGetY(lv_casterPoint) - 130.0);
if ((lv_yTriangleOriginal != 0.0)) {
lv_xTriangleNew = ((lv_yTriangleNew/lv_yTriangleOriginal) * lv_xTriangleOriginal);
}
lv_xPointOffsetDistance = (lv_xTriangleOriginal - lv_xTriangleNew);
lv_xPointOffsetDistance = (-1.0 * lv_xPointOffsetDistance);
lv_originTargetPoint = PointWithOffset(lv_originTargetPoint, lv_xPointOffsetDistance, lv_yPointOffset);
}
else {
if ((PointGetX(lv_originTargetPoint) == PointGetX(lv_casterPoint))) {
lv_originTargetPoint = PointWithOffset(lv_originTargetPoint, 0.0, lv_yPointOffset);
}
}
}
}
if ((UnitGetType(lv_sgtHammerCasterUnit) != "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
libGDHL_gv_heroSgtHammerOrbitalBFGOriginPoint[lv_sgtHammerCasterPlayer] = lv_originTargetPoint;
}
if ((UnitGetType(lv_sgtHammerCasterUnit) == "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
UnitCreateEffectPointWithSource(lv_sgtHammerCasterUnit, "BluntForceGunLaunchMissileOrbital", lv_abilityTargetPoint, c_gameCatalogAbil, "SgtHammerBluntForceGun");
}
else {
UnitCreateEffectPointWithSource(lv_sgtHammerCasterUnit, "BluntForceGunLaunchMissile", lv_abilityTargetPoint, c_gameCatalogAbil, "SgtHammerBluntForceGun");
}
}
}
else {
if ((EventUnit() == libGame_gv_players[lv_sgtHammerCasterPlayer].lv_heroUnit)) {
libGDHL_gv_heroSgtHammerSgtHammerWasAboveGroundWhenSheCast[lv_sgtHammerCasterPlayer] = true;
}
lv_abilityTargetPoint = libGDHL_gf_TargetCalculation(lv_targetPoint, lv_casterPoint, RegionFromName("Underworld Above"));
if ((UnitGetType(lv_sgtHammerCasterUnit) != "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
libGDHL_gv_heroSgtHammerOrbitalBFGTargetPoint[lv_sgtHammerCasterPlayer] = lv_abilityTargetPoint;
}
lv_targetAngle = AngleBetweenPoints(lv_casterPoint, lv_abilityTargetPoint);
if ((PointGetY(lv_abilityTargetPoint) <= 130.0)) {
lv_xofFoundPoint = PointGetX(lv_abilityTargetPoint);
lv_yofFoundPoint = PointGetY(lv_abilityTargetPoint);
if ((PointGetX(lv_abilityTargetPoint) > PointGetX(lv_casterPoint))) {
lv_yTriangleOriginal = (PointGetY(lv_casterPoint) - lv_yofFoundPoint);
lv_xTriangleOriginal = (PointGetX(lv_casterPoint) - lv_xofFoundPoint);
lv_yPointOffset = (130.0 - lv_yofFoundPoint);
lv_yTriangleNew = (PointGetY(lv_casterPoint) - 130.0);
if ((lv_yTriangleOriginal != 0.0)) {
lv_xTriangleNew = ((lv_yTriangleNew/lv_yTriangleOriginal) * lv_xTriangleOriginal);
}
lv_xPointOffsetDistance = (lv_xTriangleOriginal - lv_xTriangleNew);
lv_abilityTargetPoint = PointWithOffset(lv_abilityTargetPoint, lv_xPointOffsetDistance, lv_yPointOffset);
}
else {
if ((PointGetX(lv_abilityTargetPoint) < PointGetX(lv_casterPoint))) {
lv_yTriangleOriginal = (PointGetY(lv_casterPoint) - lv_yofFoundPoint);
lv_xTriangleOriginal = (lv_xofFoundPoint - PointGetX(lv_casterPoint));
lv_yPointOffset = (130.0 - lv_yofFoundPoint);
lv_yTriangleNew = (PointGetY(lv_casterPoint) - 130.0);
if ((lv_yTriangleOriginal != 0.0)) {
lv_xTriangleNew = ((lv_yTriangleNew/lv_yTriangleOriginal) * lv_xTriangleOriginal);
}
lv_xPointOffsetDistance = (lv_xTriangleOriginal - lv_xTriangleNew);
lv_xPointOffsetDistance = (-1.0 * lv_xPointOffsetDistance);
lv_abilityTargetPoint = PointWithOffset(lv_abilityTargetPoint, lv_xPointOffsetDistance, lv_yPointOffset);
}
}
}
lv_distanceBetweenPoints = DistanceBetweenPoints(lv_casterPoint, lv_abilityTargetPoint);
if ((lv_abilityTargetPoint != null)) {
lv_originTargetPoint = libGDHL_gf_TargetCalculation(PointWithOffsetPolar(lv_casterPoint, 1.0, (lv_targetAngle + 180)), lv_casterPoint, RegionFromName("Underworld Above"));
if ((PointGetY(lv_originTargetPoint) <= 130.0)) {
lv_xofFoundPoint = PointGetX(lv_originTargetPoint);
lv_yofFoundPoint = PointGetY(lv_originTargetPoint);
if ((PointGetX(lv_originTargetPoint) > PointGetX(lv_casterPoint))) {
lv_yTriangleOriginal = (PointGetY(lv_casterPoint) - lv_yofFoundPoint);
lv_xTriangleOriginal = (PointGetX(lv_casterPoint) - lv_xofFoundPoint);
lv_yPointOffset = (130.0 - lv_yofFoundPoint);
lv_yTriangleNew = (PointGetY(lv_casterPoint) - 130.0);
if ((lv_yTriangleOriginal != 0.0)) {
lv_xTriangleNew = ((lv_yTriangleNew/lv_yTriangleOriginal) * lv_xTriangleOriginal);
}
lv_xPointOffsetDistance = (lv_xTriangleOriginal - lv_xTriangleNew);
lv_originTargetPoint = PointWithOffset(lv_originTargetPoint, lv_xPointOffsetDistance, lv_yPointOffset);
}
else {
if ((PointGetX(lv_originTargetPoint) < PointGetX(lv_casterPoint))) {
lv_yTriangleOriginal = (PointGetY(lv_casterPoint) - lv_yofFoundPoint);
lv_xTriangleOriginal = (lv_xofFoundPoint - PointGetX(lv_casterPoint));
lv_yPointOffset = (130.0 - lv_yofFoundPoint);
lv_yTriangleNew = (PointGetY(lv_casterPoint) - 130.0);
if ((lv_yTriangleOriginal != 0.0)) {
lv_xTriangleNew = ((lv_yTriangleNew/lv_yTriangleOriginal) * lv_xTriangleOriginal);
}
lv_xPointOffsetDistance = (lv_xTriangleOriginal - lv_xTriangleNew);
lv_xPointOffsetDistance = (-1.0 * lv_xPointOffsetDistance);
lv_originTargetPoint = PointWithOffset(lv_originTargetPoint, lv_xPointOffsetDistance, lv_yPointOffset);
}
else {
if ((PointGetX(lv_originTargetPoint) == PointGetX(lv_casterPoint))) {
lv_originTargetPoint = PointWithOffset(lv_originTargetPoint, 0.0, lv_yPointOffset);
}
}
}
}
if ((UnitGetType(lv_sgtHammerCasterUnit) != "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
libGDHL_gv_heroSgtHammerOrbitalBFGOriginPoint[lv_sgtHammerCasterPlayer] = lv_originTargetPoint;
}
if ((UnitGetType(lv_sgtHammerCasterUnit) == "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
UnitCreateEffectPointWithSource(lv_sgtHammerCasterUnit, "BluntForceGunLaunchMissileOrbital", lv_abilityTargetPoint, c_gameCatalogAbil, "SgtHammerBluntForceGun");
}
else {
UnitCreateEffectPointWithSource(lv_sgtHammerCasterUnit, "BluntForceGunLaunchMissile", lv_abilityTargetPoint, c_gameCatalogAbil, "SgtHammerBluntForceGun");
}
}
}
}
else {
lv_abilityTargetPoint = libGDHL_gf_TargetCalculation(lv_targetPoint, lv_casterPoint, RegionPlayableMap());
if ((UnitGetType(lv_sgtHammerCasterUnit) != "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
libGDHL_gv_heroSgtHammerOrbitalBFGTargetPoint[lv_sgtHammerCasterPlayer] = lv_abilityTargetPoint;
}
lv_targetAngle = AngleBetweenPoints(lv_casterPoint, lv_targetPoint);
if ((lv_abilityTargetPoint != null)) {
if ((UnitGetType(lv_sgtHammerCasterUnit) == "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
UnitCreateEffectPointWithSource(lv_sgtHammerCasterUnit, "BluntForceGunLaunchMissileOrbital", lv_abilityTargetPoint, c_gameCatalogAbil, "SgtHammerBluntForceGun");
}
else {
UnitCreateEffectPointWithSource(lv_sgtHammerCasterUnit, "BluntForceGunLaunchMissile", lv_abilityTargetPoint, c_gameCatalogAbil, "SgtHammerBluntForceGun");
}
lv_originTargetPoint = libGDHL_gf_TargetCalculation(PointWithOffsetPolar(lv_casterPoint, 1.0, (lv_targetAngle + 180)), lv_casterPoint, RegionPlayableMap());
if ((UnitGetType(lv_sgtHammerCasterUnit) != "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
libGDHL_gv_heroSgtHammerOrbitalBFGOriginPoint[lv_sgtHammerCasterPlayer] = lv_originTargetPoint;
}
}
}
if ((UnitGetType(lv_sgtHammerCasterUnit) == "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
if ((PlayerGroupHasPlayer(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, lv_sgtHammerCasterPlayer) == true)) {
PathCreateForUnit(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false), lv_sgtHammerCasterUnit);
PathSetLineTexture(PathLastCreated(), c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer] = PathLastCreated();
PathSetColor(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], c_pathLocationMinimap, Color(0.00, 0.00, 100.00));
PathSetDestinationPoint(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], lv_abilityTargetPoint);
PathSetVisible(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], c_pathLocationWorld, false);
if ((PlayerGroupCount(libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers) > 0)) {
PathCreateForUnit(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false), lv_sgtHammerCasterUnit);
PathSetLineTexture(PathLastCreated(), c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer] = PathLastCreated();
PathSetColor(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], c_pathLocationMinimap, Color(100.00, 0.00, 0.00));
PathSetDestinationPoint(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], lv_abilityTargetPoint);
PathSetVisible(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], c_pathLocationWorld, false);
}
}
else {
PathCreateForUnit(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false), lv_sgtHammerCasterUnit);
PathSetLineTexture(PathLastCreated(), c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer] = PathLastCreated();
PathSetColor(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], c_pathLocationMinimap, Color(0.00, 0.00, 100.00));
PathSetDestinationPoint(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], lv_abilityTargetPoint);
PathSetVisible(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], c_pathLocationWorld, false);
if ((PlayerGroupCount(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers) > 0)) {
PathCreateForUnit(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false), lv_sgtHammerCasterUnit);
PathSetLineTexture(PathLastCreated(), c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer] = PathLastCreated();
PathSetColor(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], c_pathLocationMinimap, Color(100.00, 0.00, 0.00));
PathSetDestinationPoint(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], lv_abilityTargetPoint);
PathSetVisible(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], c_pathLocationWorld, false);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculation_Init () {
libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculation = TriggerCreate("libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculation_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculation, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculation, null, AbilityCommand("SgtHammerBluntForceGun", 0), c_abilEffectStageFinish, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Blunt Force Gun - Target Calculation (Via Effect)
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculationViaEffect_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_casterPoint;
unit lv_sgtHammerCasterUnit;
int lv_sgtHammerCasterPlayer;
point lv_targetPoint;
fixed lv_targetAngle;
point lv_abilityTargetPoint;
point lv_originTargetPoint;
fixed lv_yPointOffset;
fixed lv_xPointOffsetDistance;
fixed lv_xofFoundPoint;
fixed lv_yofFoundPoint;
fixed lv_yTriangleOriginal;
fixed lv_yTriangleNew;
fixed lv_xTriangleOriginal;
fixed lv_xTriangleNew;
int lv_ping;
fixed lv_distanceBetweenPoints;
fixed lv_distanceBetweenPointsIncrement;
fixed lv_pingDistance;
int lv_pingLoop;
int lv_pingIncrement;
int lv_pingPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_casterPoint = UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitCaster));
lv_sgtHammerCasterUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_sgtHammerCasterPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_targetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
// Conditions
if (testConds) {
if (!((libGDHL_gv_heroSgtHammerUseEffectForBFGTargetCalculation == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PathDestroy(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer]);
PathDestroy(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer]);
if ((UnitGetType(lv_sgtHammerCasterUnit) == "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
if ((lv_targetPoint != libGDHL_gv_heroSgtHammerOrbitalBFGTargetPoint[lv_sgtHammerCasterPlayer])) {
return true;
}
}
lv_abilityTargetPoint = libGDHL_gf_TargetCalculation(lv_targetPoint, lv_casterPoint, RegionPlayableMap());
if ((UnitGetType(lv_sgtHammerCasterUnit) != "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
libGDHL_gv_heroSgtHammerOrbitalBFGTargetPoint[lv_sgtHammerCasterPlayer] = lv_abilityTargetPoint;
}
lv_targetAngle = AngleBetweenPoints(lv_casterPoint, lv_targetPoint);
if ((lv_abilityTargetPoint != null)) {
if ((UnitGetType(lv_sgtHammerCasterUnit) == "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
UnitCreateEffectPointWithSource(lv_sgtHammerCasterUnit, "BluntForceGunLaunchMissileOrbital", lv_abilityTargetPoint, c_gameCatalogAbil, "SgtHammerBluntForceGun");
}
else {
UnitCreateEffectPointWithSource(lv_sgtHammerCasterUnit, "BluntForceGunLaunchMissile", lv_abilityTargetPoint, c_gameCatalogAbil, "SgtHammerBluntForceGun");
}
lv_originTargetPoint = libGDHL_gf_TargetCalculation(PointWithOffsetPolar(lv_casterPoint, 1.0, (lv_targetAngle + 180)), lv_casterPoint, RegionPlayableMap());
if ((UnitGetType(lv_sgtHammerCasterUnit) != "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
libGDHL_gv_heroSgtHammerOrbitalBFGOriginPoint[lv_sgtHammerCasterPlayer] = lv_originTargetPoint;
}
}
if ((UnitGetType(lv_sgtHammerCasterUnit) == "SgtHammerBluntForceGunInvisibleOrbitalDummy")) {
if ((PlayerGroupHasPlayer(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, lv_sgtHammerCasterPlayer) == true)) {
PathCreateForUnit(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false), lv_sgtHammerCasterUnit);
PathSetLineTexture(PathLastCreated(), c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer] = PathLastCreated();
PathSetColor(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], c_pathLocationMinimap, Color(0.00, 0.00, 100.00));
PathSetDestinationPoint(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], lv_abilityTargetPoint);
PathSetVisible(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], c_pathLocationWorld, false);
if ((PlayerGroupCount(libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers) > 0)) {
PathCreateForUnit(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false), lv_sgtHammerCasterUnit);
PathSetLineTexture(PathLastCreated(), c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer] = PathLastCreated();
PathSetColor(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], c_pathLocationMinimap, Color(100.00, 0.00, 0.00));
PathSetDestinationPoint(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], lv_abilityTargetPoint);
PathSetVisible(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], c_pathLocationWorld, false);
}
}
else {
PathCreateForUnit(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false), lv_sgtHammerCasterUnit);
PathSetLineTexture(PathLastCreated(), c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer] = PathLastCreated();
PathSetColor(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], c_pathLocationMinimap, Color(0.00, 0.00, 100.00));
PathSetDestinationPoint(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], lv_abilityTargetPoint);
PathSetVisible(libGDHL_gv_heroSgtHammerPathDisplay[lv_sgtHammerCasterPlayer], c_pathLocationWorld, false);
if ((PlayerGroupCount(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers) > 0)) {
PathCreateForUnit(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false), lv_sgtHammerCasterUnit);
PathSetLineTexture(PathLastCreated(), c_pathLocationMinimap, "Assets\\Textures\\storm_waypointline.dds");
libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer] = PathLastCreated();
PathSetColor(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], c_pathLocationMinimap, Color(100.00, 0.00, 0.00));
PathSetDestinationPoint(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], lv_abilityTargetPoint);
PathSetVisible(libGDHL_gv_heroSgtHammerPathDisplayEnemies[lv_sgtHammerCasterPlayer], c_pathLocationWorld, false);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculationViaEffect_Init () {
libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculationViaEffect = TriggerCreate("libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculationViaEffect_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculationViaEffect, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculationViaEffect, c_playerAny, "SgtHammerBluntForceGunInitialSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Blunt Force Gun Check For Location
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerBluntForceGunCheckForLocation_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_missile;
unit lv_dummy;
int lv_sgtHammerPlayer;
bool lv_dummyBoolean;
// Automatic Variable Declarations
fixed auto8AB055E4_at;
// Variable Initialization
lv_missile = EventUnit();
lv_sgtHammerPlayer = UnitGetOwner(lv_missile);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_sgtHammerPlayer, "SgtHammerMasteryOrbitalBFGBluntForceGun") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroSgtHammerOrbitalBFGUnit[lv_sgtHammerPlayer] = lv_missile;
auto8AB055E4_at = 0;
while (!((UnitIsAlive(lv_missile) == false)) && auto8AB055E4_at <= 30.0) {
Wait(0.0625, c_timeGame);
auto8AB055E4_at = auto8AB055E4_at + 0.0625;
}
Wait(5.0, c_timeGame);
if ((libGDHL_gv_heroSgtHammerOrbitalBFGUnit[lv_sgtHammerPlayer] == lv_missile)) {
libNtve_gf_UnitCreateFacingPoint(1, "SgtHammerBluntForceGunInvisibleOrbitalDummy", c_unitCreateIgnorePlacement, lv_sgtHammerPlayer, libGDHL_gv_heroSgtHammerOrbitalBFGOriginPoint[lv_sgtHammerPlayer], libGDHL_gv_heroSgtHammerOrbitalBFGTargetPoint[lv_sgtHammerPlayer], lv_missile);
lv_dummy = UnitLastCreated();
UnitIssueOrder(lv_dummy, OrderTargetingPoint(AbilityCommand("SgtHammerBluntForceGun", 0), libGDHL_gv_heroSgtHammerOrbitalBFGTargetPoint[lv_sgtHammerPlayer]), c_orderQueueReplace);
Wait(45.0, c_timeGame);
UnitRemove(lv_dummy);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerBluntForceGunCheckForLocation_Init () {
libGDHL_gt_HeroSgtHammerBluntForceGunCheckForLocation = TriggerCreate("libGDHL_gt_HeroSgtHammerBluntForceGunCheckForLocation_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunCheckForLocation, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSgtHammerBluntForceGunCheckForLocation, null, "BluntForceGunMissileScan", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Blunt Force Gun Apply Orbital Scan
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerBluntForceGunApplyOrbitalScan_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_sourceUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_sourceUnit = EventPlayerEffectUsedUnit(c_effectUnitSource);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_sourceUnit) == "SgtHammerBluntForceGunMissileOrbital"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnitWithSource(libGame_gv_players[UnitGetOwner(lv_sourceUnit)].lv_heroUnit, "BluntForceGunApplyMissileScanOrbital", lv_sourceUnit, c_gameCatalogAbil, "SgtHammerOrbitalBFGBluntForceGun");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerBluntForceGunApplyOrbitalScan_Init () {
libGDHL_gt_HeroSgtHammerBluntForceGunApplyOrbitalScan = TriggerCreate("libGDHL_gt_HeroSgtHammerBluntForceGunApplyOrbitalScan_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerBluntForceGunApplyOrbitalScan, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroSgtHammerBluntForceGunApplyOrbitalScan, c_playerAny, "BluntForceGunApplyMissileScanDelay");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Concussive Blast - Cancel
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerConcussiveBlastCancel_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_soundPoint;
// Automatic Variable Declarations
unitgroup autoC6B58B5B_g;
int autoC6B58B5B_u;
unit autoC6B58B5B_var;
unitgroup autoA8C37E68_g;
int autoA8C37E68_u;
unit autoA8C37E68_var;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
autoC6B58B5B_g = UnitGroup("SgtHammerConcussiveBlastScrap", EventPlayer(), RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoC6B58B5B_u = UnitGroupCount(autoC6B58B5B_g, c_unitCountAll);
for (;; autoC6B58B5B_u -= 1) {
autoC6B58B5B_var = UnitGroupUnitFromEnd(autoC6B58B5B_g, autoC6B58B5B_u);
if (autoC6B58B5B_var == null) { break; }
UnitKill(autoC6B58B5B_var);
}
autoA8C37E68_g = UnitGroup("SgtHammerConcussiveBlastScrapCenter", EventPlayer(), RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoA8C37E68_u = UnitGroupCount(autoA8C37E68_g, c_unitCountAll);
for (;; autoA8C37E68_u -= 1) {
autoA8C37E68_var = UnitGroupUnitFromEnd(autoA8C37E68_g, autoA8C37E68_u);
if (autoA8C37E68_var == null) { break; }
UnitKill(autoA8C37E68_var);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerConcussiveBlastCancel_Init () {
libGDHL_gt_HeroSgtHammerConcussiveBlastCancel = TriggerCreate("libGDHL_gt_HeroSgtHammerConcussiveBlastCancel_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerConcussiveBlastCancel, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroSgtHammerConcussiveBlastCancel, c_playerAny, "ConcussiveBlastScrapCancelDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Concussive Blast Forced Destruction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerConcussiveBlastForcedDestruction_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_target = EventPlayerEffectUsedUnitImpact();
lv_player = UnitGetOwner(lv_target);
// Conditions
if (testConds) {
if (!(((UnitGetType(lv_target) == "SgtHammerConcussiveBlastScrap") || (UnitGetType(lv_target) == "SgtHammerConcussiveBlastScrapCenter")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(libGame_gv_players[lv_player].lv_heroUnit, "ConcussiveBlastScrapCancelDummySet", libGame_gv_players[lv_player].lv_heroUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerConcussiveBlastForcedDestruction_Init () {
libGDHL_gt_HeroSgtHammerConcussiveBlastForcedDestruction = TriggerCreate("libGDHL_gt_HeroSgtHammerConcussiveBlastForcedDestruction_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerConcussiveBlastForcedDestruction, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroSgtHammerConcussiveBlastForcedDestruction, c_playerAny, "DestroyPathingBlockerDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Maelstrom Rounds Add Charge
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerMaelstromRoundsAddCharge_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((UnitGetOwner(lv_unit) > 0))) {
return false;
}
if (!((UnitGetOwner(lv_unit) <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "SgtHammerSiegeModeMaelstromRounds") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitAddChargeUsed(lv_unit, "Abil/SgtHammerSiegeModeDestructiveMunitions", -1.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerMaelstromRoundsAddCharge_Init () {
libGDHL_gt_HeroSgtHammerMaelstromRoundsAddCharge = TriggerCreate("libGDHL_gt_HeroSgtHammerMaelstromRoundsAddCharge_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerMaelstromRoundsAddCharge, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroSgtHammerMaelstromRoundsAddCharge, c_playerAny, "SgtHammerSiegeModeMaelstromRoundsDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - SgtHammer - Hearthstone Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSgtHammerHearthstoneUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_sgtHammerPlayer;
unit lv_sgtHammerUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_sgtHammerPlayer = libGame_gf_HeroPortedBackToTownPlayer();
lv_sgtHammerUnit = libGame_gv_players[lv_sgtHammerPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(lv_sgtHammerUnit, "SiegeMode") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_sgtHammerUnit, "SiegeModeRemoveSet", lv_sgtHammerUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSgtHammerHearthstoneUsed_Init () {
libGDHL_gt_HeroSgtHammerHearthstoneUsed = TriggerCreate("libGDHL_gt_HeroSgtHammerHearthstoneUsed_Func");
TriggerEnable(libGDHL_gt_HeroSgtHammerHearthstoneUsed, false);
libGame_gf_HeroPortedBackToTown(libGDHL_gt_HeroSgtHammerHearthstoneUsed);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Stitches - Gift From The Embalmer Death Timer Reduction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroStitchesGiftFromTheEmbalmerDeathTimerReduction_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_stitches;
int lv_stitchesOwner;
fixed lv_deathTimerMod;
fixed lv_tokenMod;
fixed lv_finalMod;
// Automatic Variable Declarations
fixed autoF8D4DFFC_at;
// Variable Initialization
lv_stitches = libGame_gf_HeroKilledUnit();
lv_stitchesOwner = libGame_gf_HeroKilledPlayer();
lv_deathTimerMod = 0.02;
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_stitchesOwner, "StitchesGiftFromTheEmbalmer") == true))) {
return false;
}
if (!((UnitGetTokenCount(lv_stitches, "StitchesPutridBileGiftFromTheEmbalmerTalentTokenCounter") > 0.0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoF8D4DFFC_at = 0;
while (!((TimerGetDuration(libGame_gv_players[lv_stitchesOwner].lv_respawnTimer) > 1)) && autoF8D4DFFC_at <= 10.0) {
Wait(1.0, c_timeGame);
autoF8D4DFFC_at = autoF8D4DFFC_at + 1.0;
}
lv_tokenMod = (UnitGetTokenCount(lv_stitches, "StitchesPutridBileGiftFromTheEmbalmerTalentTokenCounter") * lv_deathTimerMod);
lv_finalMod = (TimerGetRemaining(libGame_gv_players[lv_stitchesOwner].lv_respawnTimer) * lv_tokenMod);
libGame_gf_HeroDeathModifyRespawnTimer(lv_stitchesOwner, (-1.0 * lv_finalMod));
UnitCreateEffectUnit(lv_stitches, "StitchesPutridBileGiftFromTheEmbalmerTalentResetToken", lv_stitches);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroStitchesGiftFromTheEmbalmerDeathTimerReduction_Init () {
libGDHL_gt_HeroStitchesGiftFromTheEmbalmerDeathTimerReduction = TriggerCreate("libGDHL_gt_HeroStitchesGiftFromTheEmbalmerDeathTimerReduction_Func");
TriggerEnable(libGDHL_gt_HeroStitchesGiftFromTheEmbalmerDeathTimerReduction, false);
libGame_gf_HeroKilled(libGDHL_gt_HeroStitchesGiftFromTheEmbalmerDeathTimerReduction);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Stitches - Hook - Hook Vision
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroStitchesHookHookVision_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_stitches;
point lv_effectPoint;
int lv_stitchesTeam;
int lv_enemyTeam;
// Automatic Variable Declarations
// Variable Initialization
lv_stitches = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_effectPoint = EventPlayerEffectUsedPoint(c_effectLocationSourcePoint);
// Actions
if (!runActions) {
return true;
}
lv_stitchesTeam = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_stitches));
if ((lv_stitchesTeam == 1)) {
lv_enemyTeam = libCore_gv_cOMPUTER_TeamChaos;
}
else {
lv_enemyTeam = libCore_gv_cOMPUTER_TeamOrder;
}
if ((VisIsVisibleForPlayer(lv_enemyTeam, lv_effectPoint) == true)) {
PlayerCreateEffectUnit(lv_enemyTeam, "ApplyMissileSourceRevealer", lv_stitches);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroStitchesHookHookVision_Init () {
libGDHL_gt_HeroStitchesHookHookVision = TriggerCreate("libGDHL_gt_HeroStitchesHookHookVision_Func");
TriggerEnable(libGDHL_gt_HeroStitchesHookHookVision, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroStitchesHookHookVision, c_playerAny, "StitchesHookMissileSearch");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Stitches - Hook Launch Target Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroStitchesHookLaunchTargetUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_stitchesUnit;
unit lv_targetUnit;
point lv_currentPositionOfTarget;
bool lv_notTimeStopped;
unit lv_hookUnit;
// Automatic Variable Declarations
unitgroup auto23D1CC35_g;
int auto23D1CC35_u;
unit auto23D1CC35_var;
// Variable Initialization
lv_stitchesUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_targetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_notTimeStopped = true;
// Actions
if (!runActions) {
return true;
}
while ((UnitHasBehavior2(lv_targetUnit, "StitchesHooked") == true) && (UnitIsAlive(lv_targetUnit) == true) && (UnitIsAlive(lv_stitchesUnit) == true) && (lv_notTimeStopped == true)) {
if ((UnitHasBehaviorWithCategoryFlag(lv_targetUnit, c_behaviorCategoryTimeStop) == true)) {
if ((UnitHasBehaviorWithCategoryFlag(lv_stitchesUnit, c_behaviorCategoryTimeStop) == true)) {
auto23D1CC35_g = UnitGroup("StitchesHookLaunchUnitSecondaryMissile", UnitGetOwner(lv_stitchesUnit), RegionCircle(UnitGetPosition(lv_targetUnit), 5.0), UnitFilter((1 << c_targetFilterMissile), 0, (1 << c_targetFilterAlly) | (1 << c_targetFilterNeutral) | (1 << c_targetFilterEnemy), 0), 0);
auto23D1CC35_u = UnitGroupCount(auto23D1CC35_g, c_unitCountAll);
for (;; auto23D1CC35_u -= 1) {
auto23D1CC35_var = UnitGroupUnitFromEnd(auto23D1CC35_g, auto23D1CC35_u);
if (auto23D1CC35_var == null) { break; }
libNtve_gf_PauseUnit(auto23D1CC35_var, true);
lv_hookUnit = auto23D1CC35_var;
}
UnitCreateEffectUnit(lv_stitchesUnit, "StitchesHookPauseHookDummy", lv_stitchesUnit);
lv_notTimeStopped = false;
}
else {
UnitCreateEffectUnit(lv_stitchesUnit, "TimeStopMissileUnitRedirect", lv_targetUnit);
lv_notTimeStopped = false;
}
}
else {
if ((UnitHasBehaviorWithCategoryFlag(lv_stitchesUnit, c_behaviorCategoryTimeStop) == true)) {
UnitCreateEffectUnit(lv_stitchesUnit, "TimeStopMissileUnitRedirect", lv_targetUnit);
lv_notTimeStopped = false;
}
if ((UnitFilterMatch(lv_targetUnit, 1, UnitFilter(0, (1 << (c_targetFilterStasis - 32)), 0, 0)) == true)) {
UnitCreateEffectUnit(lv_stitchesUnit, "TimeStopMissileUnitRedirect", lv_targetUnit);
lv_notTimeStopped = false;
}
}
Wait(0.0625, c_timeGame);
}
while ((lv_hookUnit != null)) {
if ((UnitHasBehaviorWithCategoryFlag(lv_stitchesUnit, c_behaviorCategoryTimeStop) == false)) {
libNtve_gf_PauseUnit(lv_hookUnit, false);
lv_hookUnit = null;
}
else {
Wait(0.0625, c_timeGame);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroStitchesHookLaunchTargetUsed_Init () {
libGDHL_gt_HeroStitchesHookLaunchTargetUsed = TriggerCreate("libGDHL_gt_HeroStitchesHookLaunchTargetUsed_Func");
TriggerEnable(libGDHL_gt_HeroStitchesHookLaunchTargetUsed, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroStitchesHookLaunchTargetUsed, c_playerAny, "StitchesHookLaunchUnit");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Stitches - Gorge Decreases
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroStitchesGorgeDecreases_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitBehaviorCount(EventUnit(), "StitchesHookCurrentlyCasting") == 0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libNtve_gf_SendActorMessageToUnit(EventUnit(), "AnimPlay Spell Spell,D 0 -1.000000 -1.000000 1.000000 AsTimeScale");
libNtve_gf_SendActorMessageToUnit(EventUnit(), "AnimSetTime Spell 1.000000");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroStitchesGorgeDecreases_Init () {
libGDHL_gt_HeroStitchesGorgeDecreases = TriggerCreate("libGDHL_gt_HeroStitchesGorgeDecreases_Func");
TriggerEnable(libGDHL_gt_HeroStitchesGorgeDecreases, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroStitchesGorgeDecreases, null, "StitchesGorgeInitialCasterBehavior", c_unitBehaviorChangeDecrease);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Stitches - Gorge Activate
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroStitchesGorgeActivate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_stitches;
unit lv_eatenUnit;
int lv_stitchesPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_stitches = UnitBehaviorEffectUnit(EventUnit(), "StitchesGorgeTarget", c_effectUnitCaster, 0);
lv_eatenUnit = UnitBehaviorEffectUnit(EventUnit(), "StitchesGorgeTarget", c_effectUnitTarget, 0);
lv_stitchesPlayer = UnitGetOwner(lv_stitches);
// Actions
if (!runActions) {
return true;
}
if ((UnitTestState(lv_eatenUnit, c_unitStateHallucination) == false) && (UnitIsAlive(lv_eatenUnit) == true) && (UnitHasBehavior2(lv_eatenUnit, "HeroGenericIgnoreFullscreenOverlay") == false)) {
if ((PlayerSkin(lv_stitchesPlayer) == "StitchesToys18")) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(UnitGetOwner(lv_eatenUnit), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_GorgeToys18Overlay.StormCutscene", EventUnitBehavior());
}
else if ((PlayerSkin(lv_stitchesPlayer) == "StitchesToys18Var1")) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(UnitGetOwner(lv_eatenUnit), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_GorgeToys18Var1Overlay.StormCutscene", EventUnitBehavior());
}
else if ((PlayerSkin(lv_stitchesPlayer) == "StitchesToys18Var2")) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(UnitGetOwner(lv_eatenUnit), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_GorgeToys18Var2Overlay.StormCutscene", EventUnitBehavior());
}
else if ((PlayerSkin(lv_stitchesPlayer) == "StitchesToys18Var3")) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(UnitGetOwner(lv_eatenUnit), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_GorgeToys18Var3Overlay.StormCutscene", EventUnitBehavior());
}
else if ((PlayerSkin(lv_stitchesPlayer) == "StitchesToys18Var4")) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(UnitGetOwner(lv_eatenUnit), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_GorgeToys18Var4Overlay.StormCutscene", EventUnitBehavior());
}
else if ((PlayerSkin(lv_stitchesPlayer) == "StitchesToys18Var5")) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(UnitGetOwner(lv_eatenUnit), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_GorgeToys18Var5Overlay.StormCutscene", EventUnitBehavior());
}
else if (((PlayerSkin(lv_stitchesPlayer) == "StitchesOWC20") || (PlayerSkin(lv_stitchesPlayer) == "StitchesOWC20Var1") || (PlayerSkin(lv_stitchesPlayer) == "StitchesOWC20Var2"))) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(UnitGetOwner(lv_eatenUnit), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_GorgeOverlayOWC20.StormCutscene", EventUnitBehavior());
}
else if ((PlayerSkin(lv_stitchesPlayer) != "StitchesToys18Var1") && (PlayerSkin(lv_stitchesPlayer) != "StitchesToys18") && (PlayerSkin(lv_stitchesPlayer) != "StitchesToys18Var2") && (PlayerSkin(lv_stitchesPlayer) != "StitchesToys18Var3") && (PlayerSkin(lv_stitchesPlayer) != "StitchesToys18Var4") && (PlayerSkin(lv_stitchesPlayer) != "StitchesToys18Var5")) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(UnitGetOwner(lv_eatenUnit), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_GorgeOverlay.StormCutscene", EventUnitBehavior());
}
}
while ((UnitIsAlive(lv_stitches) == true) && (UnitHasBehavior2(lv_eatenUnit, "StitchesGorgeTarget") == true)) {
if (((libGame_gv_players[UnitGetOwner(lv_stitches)].lv_activeVehicle != null) || (UnitHasBehavior2(lv_stitches, "InCargo") == true))) {
break;
}
if ((UnitHasBehavior2(lv_eatenUnit, "StitchesGorgeDummyBehavior") == true)) {
UnitSetPosition(lv_eatenUnit, UnitGetPosition(lv_stitches), true);
}
Wait(0.0625, c_timeGame);
}
if ((UnitIsAlive(lv_eatenUnit) == true)) {
UnitBehaviorRemove(lv_stitches, "StitchesGorgeInitialCasterBehavior", 1);
if ((libGame_gv_players[UnitGetOwner(lv_stitches)].lv_activeVehicle != null)) {
lv_stitches = libGame_gv_players[UnitGetOwner(lv_stitches)].lv_activeVehicle;
}
UnitSetPosition(lv_eatenUnit, UnitGetPosition(lv_stitches), false);
UnitCreateEffectPoint(lv_eatenUnit, "StitchesGorgeLaunchTargetOut", PointWithOffsetPolar(UnitGetPosition(lv_stitches), 1.75, UnitGetFacing(lv_stitches)));
UnitBehaviorRemove(lv_eatenUnit, "StitchesGorgeTarget", 1);
UnitBehaviorRemove(lv_eatenUnit, "StitchesGorgeTargetTimer", 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroStitchesGorgeActivate_Init () {
libGDHL_gt_HeroStitchesGorgeActivate = TriggerCreate("libGDHL_gt_HeroStitchesGorgeActivate_Func");
TriggerEnable(libGDHL_gt_HeroStitchesGorgeActivate, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroStitchesGorgeActivate, null, "StitchesGorgeTarget", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Stitches - Gorge Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroStitchesGorgeOff_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(EventUnit()), "Cutscenes\\GameUI_GorgeOverlay.StormCutscene", EventUnitBehavior());
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(EventUnit()), "Cutscenes\\GameUI_GorgeToys18Overlay.StormCutscene", EventUnitBehavior());
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(EventUnit()), "Cutscenes\\GameUI_GorgeToys18Var1Overlay.StormCutscene", EventUnitBehavior());
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(EventUnit()), "Cutscenes\\GameUI_GorgeToys18Var2Overlay.StormCutscene", EventUnitBehavior());
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(EventUnit()), "Cutscenes\\GameUI_GorgeToys18Var3Overlay.StormCutscene", EventUnitBehavior());
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(EventUnit()), "Cutscenes\\GameUI_GorgeToys18Var4Overlay.StormCutscene", EventUnitBehavior());
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(EventUnit()), "Cutscenes\\GameUI_GorgeToys18Var5Overlay.StormCutscene", EventUnitBehavior());
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(UnitGetOwner(EventUnit()), "Cutscenes\\GameUI_GorgeOverlayOWC20.StormCutscene", EventUnitBehavior());
}
if ((UnitGetType(EventUnit()) != "HeroFalstad") && (UnitGetType(EventUnit()) != "HeroFaerieDragon")) {
UnitSetPropertyFixed(EventUnit(), c_unitPropHeight, 0.0);
return true;
}
if ((UnitGetType(EventUnit()) == "HeroFaerieDragon")) {
UnitSetPropertyFixed(EventUnit(), c_unitPropHeight, 1.0);
return true;
}
if ((UnitGetType(EventUnit()) == "HeroFalstad")) {
UnitSetPropertyFixed(EventUnit(), c_unitPropHeight, 2.0);
return true;
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroStitchesGorgeOff_Init () {
libGDHL_gt_HeroStitchesGorgeOff = TriggerCreate("libGDHL_gt_HeroStitchesGorgeOff_Func");
TriggerEnable(libGDHL_gt_HeroStitchesGorgeOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroStitchesGorgeOff, null, "StitchesGorgeTarget", c_unitBehaviorChangeDeactivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroStitchesGorgeOff, null, "StitchesGorgeTarget", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Stitches - Free Fishing Hook Talent
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroStitchesFreeFishingHookTalent_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
int lv_level;
int lv_max;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroLevelUpPlayer();
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
lv_level = libGame_gf_HeroLevelUpLevel();
lv_max = CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "StitchesHookExtendedHookTokenCounter", "Max", 0);
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroStitches"))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "StitchesFishingHook") == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitGetTokenCount(lv_unit, "StitchesHookExtendedHookTokenCounter") <= lv_max)) {
UnitSetTokenCount(lv_unit, "StitchesHookExtendedHookTokenCounter", lv_level, lv_unit);
}
if ((lv_level >= lv_max)) {
PlayerAddTalent(lv_player, "StitchesFishingHook");
UnitCreateEffectUnit(lv_unit, "StitchesHookLevel13ExtendedHookModifyPlayer", lv_unit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroStitchesFreeFishingHookTalent_Init () {
libGDHL_gt_HeroStitchesFreeFishingHookTalent = TriggerCreate("libGDHL_gt_HeroStitchesFreeFishingHookTalent_Func");
libGame_gf_HeroLevelUp(libGDHL_gt_HeroStitchesFreeFishingHookTalent);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Stitches - Reset Free Fishing Hook Talent
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroStitchesResetFreeFishingHookTalent_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
int lv_level;
int lv_max;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
lv_level = UnitGetOwner(EventUnit());
lv_max = CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "StitchesHookExtendedHookTokenCounter", "Max", 0);
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroStitches"))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "StitchesFishingHook") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PlayerRemoveTalent(lv_player, "StitchesFishingHook");
UnitCreateEffectUnit(lv_unit, "StitchesHookLevel13ExtendedHookResetPlayer", lv_unit);
Wait(0.125, c_timeGame);
lv_level = UnitBehaviorCount(EventUnit(), "HeroDummyVeterancy");
if ((lv_level >= lv_max)) {
PlayerAddTalent(lv_player, "StitchesFishingHook");
UnitCreateEffectUnit(lv_unit, "StitchesHookLevel13ExtendedHookModifyPlayer", lv_unit);
}
else {
if ((UnitGetTokenCount(lv_unit, "StitchesHookExtendedHookTokenCounter") < lv_max)) {
UnitSetTokenCount(lv_unit, "StitchesHookExtendedHookTokenCounter", lv_level, lv_unit);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroStitchesResetFreeFishingHookTalent_Init () {
libGDHL_gt_HeroStitchesResetFreeFishingHookTalent = TriggerCreate("libGDHL_gt_HeroStitchesResetFreeFishingHookTalent_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroStitchesResetFreeFishingHookTalent, null, "StitchesHookExtendedHookTokenCounter", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas - Mind Control - Target Select
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasMindControlTargetSelect_Func (bool testConds, bool runActions) {
// Variable Declarations
unitgroup lv_previousCameraUnitGroup;
int lv_targetPlayer;
playergroup lv_targetPlayerGroup;
int lv_casterPlayer;
unit lv_sylvanas;
unit lv_mindControlledUnit;
bool lv_mindControlledUnitIsPlayerHero;
// Automatic Variable Declarations
// Variable Initialization
lv_previousCameraUnitGroup = UnitGroupEmpty();
lv_targetPlayer = UnitGetOwner(EventUnit());
lv_targetPlayerGroup = PlayerGroupEmpty();
lv_casterPlayer = UnitGetOwner(UnitBehaviorEffectUnit(EventUnit(), EventUnitBehavior(), c_effectUnitCaster, 0));
lv_mindControlledUnit = EventUnit();
// Conditions
if (testConds) {
if (!(((lv_targetPlayer >= 1) && (lv_targetPlayer <= libCore_gv_bALMaxPlayers)))) {
return false;
}
if (!(((lv_casterPlayer >= 1) && (lv_casterPlayer <= libCore_gv_bALMaxPlayers)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_sylvanas = libGame_gv_players[lv_casterPlayer].lv_heroUnit;
lv_targetPlayerGroup = PlayerGroupSingle(lv_targetPlayer);
if ((lv_mindControlledUnit == libGame_gv_players[lv_targetPlayer].lv_heroUnit)) {
lv_mindControlledUnitIsPlayerHero = true;
}
if (((UnitBehaviorCount(lv_mindControlledUnit, "AbathurUltimateEvolutionControlBehavior") < 1) && (UnitTestState(lv_mindControlledUnit, c_unitStateHallucination) == true))) {
libAIAI_gf_MinionAIUnhookUnitFromMinionAI(lv_mindControlledUnit);
}
UnitCreateEffectUnit(lv_mindControlledUnit, "HeroGenericCancelMove", lv_mindControlledUnit);
UnitCreateEffectUnit(lv_mindControlledUnit, "HeroGenericIssueStopOrderTarget", lv_mindControlledUnit);
libNtve_gf_MakeUnitUncommandable(lv_mindControlledUnit, true);
if ((lv_mindControlledUnitIsPlayerHero == true)) {
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowButtons, false);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowHotkeys, false);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowInfoPanel, false);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowMinimap, false);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowModifiers, false);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowPings, false);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowQueue, false);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowSmartClick, false);
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(lv_targetPlayer) == true)) {
AISetUnitTacticalDisabled(lv_mindControlledUnit, true);
}
}
libGDHL_gv_heroSylvanasMindControlTargetUnit[lv_casterPlayer] = lv_mindControlledUnit;
libNtve_gf_ShareVisionofUnit(lv_mindControlledUnit, true, lv_casterPlayer);
libGame_gf_PlayerHeroDisplacementCameraLock(lv_mindControlledUnit, EventUnitBehavior());
libGDHL_gv_heroSylvanasActiveMindControlCounter += 1;
TriggerEnable(libGDHL_gt_HeroSylvanasMovementCommandForwarding, true);
if (((lv_mindControlledUnit == libGame_gv_players[lv_targetPlayer].lv_heroUnit) || (lv_mindControlledUnit == libGame_gv_players[lv_targetPlayer].lv_activeVehicle))) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(lv_targetPlayer, libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_SylvanasOverlay.StormCutscene", "SylvanasMindControlTarget");
}
while ((UnitHasBehavior2(lv_mindControlledUnit, "SylvanasMindControlTarget") == true)) {
if ((UnitHasBehaviorWithCategoryFlag(lv_mindControlledUnit, c_behaviorCategoryTimeStop) == true)) {
if ((UnitHasBehaviorWithCategoryFlag(lv_sylvanas, c_behaviorCategoryTimeStop) == true)) {
}
else {
UnitBehaviorRemove(lv_mindControlledUnit, "SylvanasMindControlTarget", 1);
}
}
else {
if ((UnitHasBehaviorWithCategoryFlag(lv_sylvanas, c_behaviorCategoryTimeStop) == true)) {
UnitBehaviorRemove(lv_mindControlledUnit, "SylvanasMindControlTarget", 1);
}
}
Wait(0.0625, c_timeGame);
}
if (((UnitBehaviorCount(lv_mindControlledUnit, "AbathurUltimateEvolutionControlBehavior") < 1) && (UnitTestState(lv_mindControlledUnit, c_unitStateHallucination) == true))) {
UnitCreateAIThinkTree(lv_mindControlledUnit);
}
if ((lv_mindControlledUnitIsPlayerHero == true)) {
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowButtons, true);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowHotkeys, true);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowInfoPanel, true);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowMinimap, true);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowModifiers, true);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowPings, true);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowQueue, true);
UISetCommandAllowed(lv_targetPlayerGroup, c_uiCommandAllowSmartClick, true);
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(lv_targetPlayer) == true)) {
AISetUnitTacticalDisabled(lv_mindControlledUnit, false);
}
}
libNtve_gf_MakeUnitUncommandable(lv_mindControlledUnit, false);
libGDHL_gv_heroSylvanasMindControlTargetUnit[lv_casterPlayer] = null;
libNtve_gf_ShareVisionofUnit(lv_mindControlledUnit, false, lv_casterPlayer);
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(lv_targetPlayer, "Cutscenes\\GameUI_SylvanasOverlay.StormCutscene", "SylvanasMindControlTarget");
libGDHL_gv_heroSylvanasActiveMindControlCounter -= 1;
if ((libGDHL_gv_heroSylvanasActiveMindControlCounter < 1)) {
libGDHL_gv_heroSylvanasActiveMindControlCounter = 0;
TriggerEnable(libGDHL_gt_HeroSylvanasMovementCommandForwarding, false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasMindControlTargetSelect_Init () {
libGDHL_gt_HeroSylvanasMindControlTargetSelect = TriggerCreate("libGDHL_gt_HeroSylvanasMindControlTargetSelect_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasMindControlTargetSelect, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasMindControlTargetSelect, null, "SylvanasMindControlTarget", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas - Movement Command Forwarding
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasMovementCommandForwarding_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_orderTargetPoint;
int lv_queueLocation;
// Automatic Variable Declarations
int autoA680DF96_val;
// Variable Initialization
lv_queueLocation = c_orderQueueReplace;
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "HeroSylvanas"))) {
return false;
}
if (!((UnitHasBehavior2(EventUnit(), "SylvanasMindControlCaster") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
autoA680DF96_val = OrderGetTargetType(EventUnitOrder());
if (autoA680DF96_val == c_orderTargetPoint) {
lv_orderTargetPoint = OrderGetTargetPoint(EventUnitOrder());
}
else if (autoA680DF96_val == c_orderTargetUnit) {
lv_orderTargetPoint = UnitGetPosition(OrderGetTargetUnit(EventUnitOrder()));
}
else {
TriggerEnable(TriggerGetCurrent(), true);
return true;
}
if ((OrderGetFlag(EventUnitOrder(), c_cmdQueued) == true)) {
lv_queueLocation = c_orderQueueAddToEnd;
}
else {
lv_queueLocation = c_orderQueueReplace;
}
UnitIssueOrder(libGDHL_gv_heroSylvanasMindControlTargetUnit[EventPlayer()], OrderTargetingPoint(AbilityCommand("move", 0), lv_orderTargetPoint), lv_queueLocation);
TriggerEnable(TriggerGetCurrent(), true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasMovementCommandForwarding_Init () {
libGDHL_gt_HeroSylvanasMovementCommandForwarding = TriggerCreate("libGDHL_gt_HeroSylvanasMovementCommandForwarding_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasMovementCommandForwarding, false);
TriggerAddEventUnitOrder(libGDHL_gt_HeroSylvanasMovementCommandForwarding, null, AbilityCommand("move", 0));
TriggerAddEventUnitOrder(libGDHL_gt_HeroSylvanasMovementCommandForwarding, null, AbilityCommand("move", 3));
TriggerAddEventUnitOrder(libGDHL_gt_HeroSylvanasMovementCommandForwarding, null, AbilityCommand("CaptureMacGuffin", 0));
TriggerAddEventUnitOrder(libGDHL_gt_HeroSylvanasMovementCommandForwarding, null, AbilityCommand("CaptureMacGuffinTwo", 0));
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas - Dark Lady's Call Talent Apply Ally Vision Suppression
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasDarkLadysCallTalentApplyAllyVisionSuppression_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_sylvanasPlayer;
unit lv_targethero;
int lv_targetplayer;
unitgroup lv_targetPlayerVisionGroup;
playergroup lv_AllyPlayerGroup;
int lv_p;
// Automatic Variable Declarations
playergroup autoF1683EB6_g;
// Variable Initialization
lv_sylvanasPlayer = UnitBehaviorEffectPlayer(EventUnit(), "SylvanasMindControlDarkLadysCallVisionReduction", c_effectPlayerSource, 0);
lv_targethero = EventUnit();
lv_targetplayer = UnitGetOwner(lv_targethero);
lv_targetPlayerVisionGroup = UnitGroupEmpty();
lv_AllyPlayerGroup = PlayerGroupEmpty();
// Conditions
if (testConds) {
if (!((lv_targetplayer > 0))) {
return false;
}
if (!((lv_targetplayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((lv_sylvanasPlayer > 0))) {
return false;
}
if (!((lv_sylvanasPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitTypeTestAttribute(UnitGetType(lv_targethero), c_unitAttributeHeroic) == true))) {
return false;
}
if (!(((lv_targethero == libGame_gv_players[lv_targetplayer].lv_heroUnit) || (lv_targethero == libAIAI_gv_aIHeroes[lv_targetplayer].lv_currentHeroUnit) || (UnitGetType(lv_targethero) == "HeroBaleog") || (UnitGetType(lv_targethero) == "HeroErik") || (UnitGetType(lv_targethero) == "HeroOlaf") || (UnitGetType(lv_targethero) == "HeroChenEarth") || (UnitGetType(lv_targethero) == "HeroChenFire") || (UnitGetType(lv_targethero) == "HeroChenStorm")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGame_gf_ShareUnshareVisionOfAlliesForPlayer(false, lv_targetplayer);
lv_AllyPlayerGroup = libGame_gf_AlliedPlayerGroupOfPlayer(lv_targetplayer);
autoF1683EB6_g = lv_AllyPlayerGroup;
lv_p = -1;
while (true) {
lv_p = PlayerGroupNextPlayer(autoF1683EB6_g, lv_p);
if (lv_p<0) { break; }
PlayerSetAlliance(lv_p, c_allianceIdSeekHelp, lv_targetplayer, false);
PlayerSetAlliance(lv_p, c_allianceIdGiveHelp, lv_targetplayer, false);
}
VisRevealerEnable(libGame_gv_baseRevealers[lv_targetplayer], false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasDarkLadysCallTalentApplyAllyVisionSuppression_Init () {
libGDHL_gt_HeroSylvanasDarkLadysCallTalentApplyAllyVisionSuppression = TriggerCreate("libGDHL_gt_HeroSylvanasDarkLadysCallTalentApplyAllyVisionSuppression_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasDarkLadysCallTalentApplyAllyVisionSuppression, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasDarkLadysCallTalentApplyAllyVisionSuppression, null, "SylvanasMindControlDarkLadysCallVisionReduction", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas - Dark Lady's Call Talent Reset Ally Vision Suppression
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasDarkLadysCallTalentResetAllyVisionSuppression_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_targetHero;
int lv_targetPlayer;
playergroup lv_allyPlayerGroup;
int lv_p;
// Automatic Variable Declarations
playergroup autoC255B45D_g;
// Variable Initialization
lv_targetHero = EventUnit();
lv_targetPlayer = UnitGetOwner(EventUnit());
lv_allyPlayerGroup = PlayerGroupEmpty();
// Conditions
if (testConds) {
if (!((UnitTypeTestAttribute(UnitGetType(EventUnit()), c_unitAttributeHeroic) == true))) {
return false;
}
if (!((lv_targetPlayer > 0))) {
return false;
}
if (!((lv_targetPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehaviorWithCategoryFlag(lv_targetHero, c_behaviorCategoryVisionRemoval) == false)) {
libGame_gf_ShareUnshareVisionOfAlliesForPlayer(true, lv_targetPlayer);
lv_allyPlayerGroup = libGame_gf_AlliedPlayerGroupOfPlayer(lv_targetPlayer);
autoC255B45D_g = lv_allyPlayerGroup;
lv_p = -1;
while (true) {
lv_p = PlayerGroupNextPlayer(autoC255B45D_g, lv_p);
if (lv_p<0) { break; }
PlayerSetAlliance(lv_p, c_allianceIdSeekHelp, lv_targetPlayer, true);
PlayerSetAlliance(lv_p, c_allianceIdGiveHelp, lv_targetPlayer, true);
}
VisRevealerEnable(libGame_gv_baseRevealers[lv_targetPlayer], true);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasDarkLadysCallTalentResetAllyVisionSuppression_Init () {
libGDHL_gt_HeroSylvanasDarkLadysCallTalentResetAllyVisionSuppression = TriggerCreate("libGDHL_gt_HeroSylvanasDarkLadysCallTalentResetAllyVisionSuppression_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasDarkLadysCallTalentResetAllyVisionSuppression, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasDarkLadysCallTalentResetAllyVisionSuppression, null, "SylvanasMindControlDarkLadysCallVisionReduction", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas- Mind Control- Camera Lock
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasMindControlCameraLock_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_targetPlayer;
int lv_itPlayer;
fixed lv_vertOffset;
fixed lv_horizOffset;
// Automatic Variable Declarations
const int auto77CC311C_ae = libCore_gv_bALMaxPlayers;
const int auto77CC311C_ai = 1;
// Variable Initialization
lv_targetPlayer = UnitGetOwner(EventUnit());
// Conditions
if (testConds) {
if (!(((UnitGetOwner(EventUnit()) >= 1) && (UnitGetOwner(EventUnit()) <= 10) && (EventUnit() == libGame_gv_players[lv_targetPlayer].lv_heroUnit) && (UnitIsAlive(EventUnit()) == true)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGame_gf_PlayerHeroDisplacementCameraLock(EventUnit(), EventUnitBehavior());
lv_itPlayer = 1;
for ( ; ( (auto77CC311C_ai >= 0 && lv_itPlayer <= auto77CC311C_ae) || (auto77CC311C_ai < 0 && lv_itPlayer >= auto77CC311C_ae) ) ; lv_itPlayer += auto77CC311C_ai ) {
lv_vertOffset = 1.5;
lv_horizOffset = RandomFixed(-0.4, -0.6);
libUIUI_gf_UIFloatingCombatTextCreateTextTag(lv_itPlayer, 2.0, StringExternal("Param/Value/lib_GDHL_950067B8"), EventUnit(), 0.0, 0.0, libCore_ge_FloatingTextType_InsaneDamage, true);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasMindControlCameraLock_Init () {
libGDHL_gt_HeroSylvanasMindControlCameraLock = TriggerCreate("libGDHL_gt_HeroSylvanasMindControlCameraLock_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasMindControlCameraLock, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasMindControlCameraLock, null, "SylvanasMindControlSlow", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas - Wailing Arrow - Silence Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasWailingArrowSilenceTarget_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_targetUnit;
int lv_owner;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventUnit()) > 0))) {
return false;
}
if (!((UnitGetOwner(EventUnit()) <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitTypeTestAttribute(UnitGetType(EventUnit()), c_unitAttributeHeroic) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_targetUnit = EventUnit();
lv_owner = UnitGetOwner(lv_targetUnit);
libUIUI_gf_UILowHPSetSoundChannelsForSilence(lv_owner);
SoundPlayForPlayer(SoundLink("Sylvanas_WailingArrow_SilenceLoop", -1), UnitGetOwner(lv_targetUnit), libCore_gv_playerGroupFromPlayer[UnitGetOwner(lv_targetUnit)], 100.0, 0.0);
Wait(2.5, c_timeGame);
SoundStop(SoundLastPlayed(), true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasWailingArrowSilenceTarget_Init () {
libGDHL_gt_HeroSylvanasWailingArrowSilenceTarget = TriggerCreate("libGDHL_gt_HeroSylvanasWailingArrowSilenceTarget_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasWailingArrowSilenceTarget, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasWailingArrowSilenceTarget, null, "SylvanasWailingArrowTarget", c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasWailingArrowSilenceTarget, null, "SylvanasWailingArrowTarget", c_unitBehaviorChangeRefresh);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas - Wailing Arrow - Deafening Blast Silence Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasWailingArrowDeafeningBlastSilenceTarget_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_targetUnit;
int lv_owner;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventUnit()) > 0))) {
return false;
}
if (!((UnitGetOwner(EventUnit()) <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitTypeTestAttribute(UnitGetType(EventUnit()), c_unitAttributeHeroic) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_targetUnit = EventUnit();
lv_owner = UnitGetOwner(lv_targetUnit);
libUIUI_gf_UILowHPSetSoundChannelsForSilence(lv_owner);
SoundPlayForPlayer(SoundLink("Sylvanas_WailingArrow_SilenceLoop", -1), UnitGetOwner(lv_targetUnit), libCore_gv_playerGroupFromPlayer[UnitGetOwner(lv_targetUnit)], 100.0, 0.0);
Wait(5.0, c_timeGame);
SoundStop(SoundLastPlayed(), true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasWailingArrowDeafeningBlastSilenceTarget_Init () {
libGDHL_gt_HeroSylvanasWailingArrowDeafeningBlastSilenceTarget = TriggerCreate("libGDHL_gt_HeroSylvanasWailingArrowDeafeningBlastSilenceTarget_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasWailingArrowDeafeningBlastSilenceTarget, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasWailingArrowDeafeningBlastSilenceTarget, null, "SylvanasWailingArrowDeafeningBlastTarget", c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasWailingArrowDeafeningBlastSilenceTarget, null, "SylvanasWailingArrowDeafeningBlastTarget", c_unitBehaviorChangeRefresh);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas - Wailing Arrow - Silence End
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasWailingArrowSilenceEnd_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_i;
unit lv_targetUnit;
int lv_owner;
fixed lv_cooldownTime;
fixed lv_modifiedCooldownTime;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventUnit()) > 0))) {
return false;
}
if (!((UnitGetOwner(EventUnit()) <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((UnitTypeTestAttribute(UnitGetType(EventUnit()), c_unitAttributeHeroic) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_targetUnit = EventUnit();
lv_owner = UnitGetOwner(lv_targetUnit);
libUIUI_gf_UILowHPSetSoundChannelsForNormal(lv_owner);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasWailingArrowSilenceEnd_Init () {
libGDHL_gt_HeroSylvanasWailingArrowSilenceEnd = TriggerCreate("libGDHL_gt_HeroSylvanasWailingArrowSilenceEnd_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasWailingArrowSilenceEnd, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasWailingArrowSilenceEnd, null, "SylvanasWailingArrowTarget", c_unitBehaviorChangeDeactivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasWailingArrowSilenceEnd, null, "SylvanasWailingArrowDeafeningBlastTarget", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas - Withering Fire Hero Kill Add Charge
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasWitheringFireHeroKillAddCharge_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_sylvanas;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!(((UnitGetType(libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_heroUnit) == "HeroSylvanas") || (UnitGetType(libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_activeVehicle) == "HeroSylvanas")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_heroUnit) == "HeroSylvanas")) {
lv_sylvanas = libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_heroUnit;
}
else {
lv_sylvanas = libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_activeVehicle;
}
UnitCreateEffectUnit(lv_sylvanas, "SylvanasWitheringFireHeroTakedownCooldownRefresh", lv_sylvanas);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasWitheringFireHeroKillAddCharge_Init () {
libGDHL_gt_HeroSylvanasWitheringFireHeroKillAddCharge = TriggerCreate("libGDHL_gt_HeroSylvanasWitheringFireHeroKillAddCharge_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasWitheringFireHeroKillAddCharge, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroSylvanasWitheringFireHeroKillAddCharge);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas - Possession Rewire
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasPossessionRewire_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_bribedUnit;
unit lv_greedUnit;
int lv_regenGlobeOwner;
fixed lv_xPGrantedFromUnit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_bribedUnit = EventUnit();
lv_greedUnit = UnitBehaviorEffectUnit(lv_bribedUnit, EventUnitBehavior(), c_effectUnitCaster, 0);
if ((UnitGetOwner(lv_bribedUnit) == libCore_gv_cOMPUTER_TeamOrder)) {
lv_regenGlobeOwner = libCore_gv_cOMPUTER_TeamChaos;
}
else {
lv_regenGlobeOwner = libCore_gv_cOMPUTER_TeamOrder;
}
if ((libGame_gv_oldXPCheat == true)) {
lv_xPGrantedFromUnit = UnitGetPropertyFixed(lv_bribedUnit, c_unitPropKillXP, c_unitPropCurrent);
libGame_gf_AwardXPForNPCKill(lv_bribedUnit, UnitGetOwner(lv_greedUnit), c_unitAttributeMinion, UnitGetOwner(lv_greedUnit), lv_xPGrantedFromUnit);
}
else {
if ((UnitGetType(lv_bribedUnit) == "WizardMinion")) {
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RegenGlobe", c_unitCreateIgnorePlacement, lv_regenGlobeOwner, UnitGetPosition(lv_bribedUnit), null);
}
else {
if ((UnitHasBehavior2(lv_bribedUnit, "IsCatapultMinionOrCatapultReplacement") == false)) {
UnitCreateEffectUnit(lv_bribedUnit, "ExperienceGlobeDummyImpactSetLastHit", lv_greedUnit);
}
}
}
libGame_gf_SendEventHeroMindControlsNPC(lv_bribedUnit, UnitGetOwner(lv_bribedUnit));
UnitSetOwner(lv_bribedUnit, lv_regenGlobeOwner, true);
UnitStatusBarClearOverride(lv_bribedUnit);
Wait(0.25, c_timeGame);
UnitStatusBarOverride(lv_bribedUnit, c_unitStatusGroupAll);
UnitIssueOrder(lv_bribedUnit, Order(libAIAI_gv_aIStopAbil), c_orderQueueReplace);
libGame_gf_CalculateSpawnedMinionGoalPoints(UnitGetOwner(lv_bribedUnit), UnitGetPosition(lv_bribedUnit));
libAIAI_gf_MinionAIStartMinionAI(-1, lv_bribedUnit, libGame_gv_spawnedMinionLane, libGame_gv_spawnedMinionFirstWaypointIndex, false, true, false, libGame_gf_EnemyTeam(libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_greedUnit))), false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasPossessionRewire_Init () {
libGDHL_gt_HeroSylvanasPossessionRewire = TriggerCreate("libGDHL_gt_HeroSylvanasPossessionRewire_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasPossessionRewire, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroSylvanasPossessionRewire, null, "SylvanasPossessionTarget", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Sylvanas - Possession Catapult Minion Modify Charge Count
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroSylvanasPossessionCatapultMinionModifyChargeCount_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Actions
if (!runActions) {
return true;
}
UnitAddChargeUsed(lv_caster, "Abil/SylvanasPossession", 2.0);
UnitAddChargeRegenRemaining(lv_caster, "Abil/SylvanasPossession", 0.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroSylvanasPossessionCatapultMinionModifyChargeCount_Init () {
libGDHL_gt_HeroSylvanasPossessionCatapultMinionModifyChargeCount = TriggerCreate("libGDHL_gt_HeroSylvanasPossessionCatapultMinionModifyChargeCount_Func");
TriggerEnable(libGDHL_gt_HeroSylvanasPossessionCatapultMinionModifyChargeCount, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroSylvanasPossessionCatapultMinionModifyChargeCount, c_playerAny, "SylvanasPossessionUse3ChargesOnCatapultMinions");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tassadar - Update Distortion Beam Period
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroTassadar"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libCore_gf_UpdateTassadarAbilityStats(lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod_Init () {
libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod = TriggerCreate("libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod_Func");
TriggerEnable(libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod, null, c_behaviorCategoryDebuffAutoattackDPS, c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod, null, c_behaviorCategoryDebuffAutoattackDPS, c_unitBehaviorChangeDeactivate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod, null, c_behaviorCategoryBuffAutoattackDPS, c_unitBehaviorChangeActivate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod, null, c_behaviorCategoryBuffAutoattackDPS, c_unitBehaviorChangeDeactivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod, null, "TassadarArchon", c_unitBehaviorChangeDeactivate);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod, null, "ArchonTwilightArchon", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tassadar - Force Wall Forced Destruction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTassadarForceWallForcedDestruction_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_target = EventPlayerEffectUsedUnitImpact();
lv_player = UnitGetOwner(lv_target);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_target) == "TassadarForceWall"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(libGame_gv_players[lv_player].lv_heroUnit, "TassadarForceWallCancelSearch", libGame_gv_players[lv_player].lv_heroUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTassadarForceWallForcedDestruction_Init () {
libGDHL_gt_HeroTassadarForceWallForcedDestruction = TriggerCreate("libGDHL_gt_HeroTassadarForceWallForcedDestruction_Func");
TriggerEnable(libGDHL_gt_HeroTassadarForceWallForcedDestruction, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroTassadarForceWallForcedDestruction, c_playerAny, "DestroyPathingBlockerDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tassadar - Shock Ray - Vision
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTassadarShockRayVision_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_tass;
point lv_effectPoint;
int lv_tassTeam;
int lv_enemyTeam;
// Automatic Variable Declarations
// Variable Initialization
lv_tass = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_effectPoint = EventPlayerEffectUsedPoint(c_effectLocationSourcePoint);
// Actions
if (!runActions) {
return true;
}
lv_tassTeam = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_tass));
if ((lv_tassTeam == 1)) {
lv_enemyTeam = libCore_gv_cOMPUTER_TeamChaos;
}
else {
lv_enemyTeam = libCore_gv_cOMPUTER_TeamOrder;
}
if ((VisIsVisibleForPlayer(lv_enemyTeam, lv_effectPoint) == true)) {
PlayerCreateEffectUnit(lv_enemyTeam, "ApplyMissileSourceRevealer", lv_tass);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTassadarShockRayVision_Init () {
libGDHL_gt_HeroTassadarShockRayVision = TriggerCreate("libGDHL_gt_HeroTassadarShockRayVision_Func");
TriggerEnable(libGDHL_gt_HeroTassadarShockRayVision, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroTassadarShockRayVision, c_playerAny, "TassadarShockRaySearch");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Thrall UI Initialize
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_ThrallUIInitialize_Func (bool testConds, bool runActions) {
int init_i;
// Variable Declarations
int[6] lv_panels;
int lv_currentPanelLayer;
int lv_itTraitStackFrame;
// Automatic Variable Declarations
const int auto0DDEF1BA_ae = libGDHL_gv_thrallTraitMaxStacks;
const int auto0DDEF1BA_ai = 1;
// Variable Initialization
for (init_i = 0; init_i <= 5; init_i += 1) {
lv_panels[init_i] = c_invalidDialogControlId;
}
// Actions
if (!runActions) {
return true;
}
DialogControlCreateInPanelFromTemplate(libUIUI_gv_heroSpecificStatusContainer, c_triggerControlTypePanel, "Thrall/ThrallTraitFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libGDHL_gv_thrallUI.lv_mainPanel = DialogControlLastCreated();
lv_itTraitStackFrame = 1;
for ( ; ( (auto0DDEF1BA_ai >= 0 && lv_itTraitStackFrame <= auto0DDEF1BA_ae) || (auto0DDEF1BA_ai < 0 && lv_itTraitStackFrame >= auto0DDEF1BA_ae) ) ; lv_itTraitStackFrame += auto0DDEF1BA_ai ) {
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "ThrallChargeFrame" + IntToString(lv_itTraitStackFrame) + "/ChargedTrait");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
libGDHL_gv_thrallUI.lv_counterImage[lv_itTraitStackFrame] = DialogControlLastCreated();
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_ThrallUIInitialize_Init () {
libGDHL_gt_ThrallUIInitialize = TriggerCreate("libGDHL_gt_ThrallUIInitialize_Func");
libCore_gf_IncludeModInitialization(libGDHL_gt_ThrallUIInitialize);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Thrall - Show Frostwolf Resilience UI
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_ThrallShowFrostwolfResilienceUI_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_unit);
DialogControlSetVisible(libGDHL_gv_thrallUI.lv_mainPanel, libCore_gv_playerGroupFromPlayer[lv_player], true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_ThrallShowFrostwolfResilienceUI_Init () {
libGDHL_gt_ThrallShowFrostwolfResilienceUI = TriggerCreate("libGDHL_gt_ThrallShowFrostwolfResilienceUI_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_ThrallShowFrostwolfResilienceUI, c_playerAny, "ThrallFrostwolfResilienceInitialDummy");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_ThrallShowFrostwolfResilienceUI, c_playerAny, "ThrallFrostwolfResilienceDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Thrall - Gets Stack Of Frostwolf Resilience
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_ThrallGetsStackOfFrostwolfResilience_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_unit);
libGDHL_gf_UIHeroSpecificStatusFrameUpdateThrallStatus(lv_player);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_ThrallGetsStackOfFrostwolfResilience_Init () {
libGDHL_gt_ThrallGetsStackOfFrostwolfResilience = TriggerCreate("libGDHL_gt_ThrallGetsStackOfFrostwolfResilience_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_ThrallGetsStackOfFrostwolfResilience, c_playerAny, "ThrallFrostwolfResilienceApplySwitch");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Thrall UI Clean Up UI For Debug Hero Swap
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_ThrallUICleanUpUIForDebugHeroSwap_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = libGame_gf_DebugHeroSwappedPlayer();
libGDHL_gf_UIClearThrallFrostwolfCount(lv_player);
if ((libGame_gv_players[lv_player].lv_heroIndex != libCore_gf_GetHeroIndexForUnitType("HeroThrall"))) {
DialogControlSetVisible(libGDHL_gv_thrallUI.lv_mainPanel, libCore_gv_playerGroupFromPlayer[lv_player], false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_ThrallUICleanUpUIForDebugHeroSwap_Init () {
libGDHL_gt_ThrallUICleanUpUIForDebugHeroSwap = TriggerCreate("libGDHL_gt_ThrallUICleanUpUIForDebugHeroSwap_Func");
libGame_gf_DebugHeroSwapped(libGDHL_gt_ThrallUICleanUpUIForDebugHeroSwap);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Thrall UI Clean Up UI For Abathur Ultimate Evolution Clone
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_ThrallUICleanUpUIForAbathurUltimateEvolutionClone_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(libGDHL_gf_AbathurUltimateEvolutionEndedClonedUnit()) == "HeroThrall")) {
DialogControlSetVisible(libGDHL_gv_thrallUI.lv_mainPanel, libCore_gv_playerGroupFromPlayer[libGDHL_gf_AbathurUltimateEvolutionEndedAbathurPlayer()], false);
libGDHL_gf_UIClearThrallFrostwolfCount(libGDHL_gf_AbathurUltimateEvolutionEndedAbathurPlayer());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_ThrallUICleanUpUIForAbathurUltimateEvolutionClone_Init () {
libGDHL_gt_ThrallUICleanUpUIForAbathurUltimateEvolutionClone = TriggerCreate("libGDHL_gt_ThrallUICleanUpUIForAbathurUltimateEvolutionClone_Func");
libGDHL_gf_AbathurUltimateEvolutionEnded(libGDHL_gt_ThrallUICleanUpUIForAbathurUltimateEvolutionClone);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Thrall Dies
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_ThrallDies_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gf_HeroKilledUnit()) == "HeroThrall"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gf_UIClearThrallFrostwolfCount(libGame_gf_HeroKilledPlayer());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_ThrallDies_Init () {
libGDHL_gt_ThrallDies = TriggerCreate("libGDHL_gt_ThrallDies_Func");
libGame_gf_HeroKilled(libGDHL_gt_ThrallDies);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Thrall - Ancestral Wrath Healing Dummy Update
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroThrallAncestralWrathHealingDummyUpdate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_thrall;
unit lv_target;
int lv_thrallOwner;
int lv_targetOwner;
fixed lv_scale;
// Automatic Variable Declarations
// Variable Initialization
lv_thrall = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_target = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_thrallOwner = UnitGetOwner(lv_thrall);
lv_targetOwner = UnitGetOwner(lv_target);
lv_scale = CatalogFieldValueGetAsFixed(c_gameCatalogEffect, "ThrallAncestralWrathDamage", "VitalFractionMax[" + IntToString(c_unitVitalLife) + "]", lv_thrallOwner);
// Conditions
if (testConds) {
if (!((UnitGetOwner(lv_target) >= 1))) {
return false;
}
if (!((UnitGetOwner(lv_target) <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSetFixed(c_gameCatalogEffect, "ThrallAncestralWrathDummyHealer", "RechargeVitalRate", lv_targetOwner, ((lv_scale * UnitGetPropertyFixed(lv_target, c_unitPropLifeMax, c_unitPropCurrent)) * 1.5));
UnitBehaviorAdd(lv_thrall, "ThrallAncestralWrathHealingDummy", lv_target, 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroThrallAncestralWrathHealingDummyUpdate_Init () {
libGDHL_gt_HeroThrallAncestralWrathHealingDummyUpdate = TriggerCreate("libGDHL_gt_HeroThrallAncestralWrathHealingDummyUpdate_Func");
TriggerEnable(libGDHL_gt_HeroThrallAncestralWrathHealingDummyUpdate, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroThrallAncestralWrathHealingDummyUpdate, c_playerAny, "ThrallAncestralWrathApplyDebuff");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Thrall - Ancestral Wrath Charge Count Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroThrallAncestralWrathChargeCountProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
// Actions
if (!runActions) {
return true;
}
UnitAddChargeUsed(lv_caster, "Abil/ThrallAncestralWrath", -1.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroThrallAncestralWrathChargeCountProc_Init () {
libGDHL_gt_HeroThrallAncestralWrathChargeCountProc = TriggerCreate("libGDHL_gt_HeroThrallAncestralWrathChargeCountProc_Func");
TriggerEnable(libGDHL_gt_HeroThrallAncestralWrathChargeCountProc, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroThrallAncestralWrathChargeCountProc, c_playerAny, "ThrallAncestralWrathModifyUnitDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Thrall - Earthquake Earthen Shield Mastery Shield Application
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroThrallEarthquakeEarthenShieldMasteryShieldApplication_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
unit lv_thrall;
fixed lv_maxHealth;
fixed lv_shieldHealthMod;
fixed lv_totalShield;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_thrall = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_shieldHealthMod = 0.15;
// Actions
if (!runActions) {
return true;
}
lv_maxHealth = UnitGetPropertyFixed(lv_unit, c_unitPropLifeMax, c_unitPropCurrent);
lv_totalShield = (lv_maxHealth * lv_shieldHealthMod);
CatalogFieldValueSetFixed(c_gameCatalogBehavior, "ThrallEarthenShield", "DamageResponse.ModifyLimit", UnitGetOwner(lv_thrall), lv_totalShield);
UnitCreateEffectUnit(lv_thrall, "ThrallEarthquakeApplyEarthenShieldsMasteryBuff", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroThrallEarthquakeEarthenShieldMasteryShieldApplication_Init () {
libGDHL_gt_HeroThrallEarthquakeEarthenShieldMasteryShieldApplication = TriggerCreate("libGDHL_gt_HeroThrallEarthquakeEarthenShieldMasteryShieldApplication_Func");
TriggerEnable(libGDHL_gt_HeroThrallEarthquakeEarthenShieldMasteryShieldApplication, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroThrallEarthquakeEarthenShieldMasteryShieldApplication, c_playerAny, "ThrallEarthquakeEarthenShieldMasteryImpactDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Thrall - World Breaker Forced Destruction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroThrallWorldBreakerForcedDestruction_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_target = EventPlayerEffectUsedUnitImpact();
lv_player = UnitGetOwner(lv_target);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_target) == "ThrallSunderingWorldbreakerPathingBlocker"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(libGame_gv_players[lv_player].lv_heroUnit, "ThrallSunderingWorldbreakerTalentRemoveActive", libGame_gv_players[lv_player].lv_heroUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroThrallWorldBreakerForcedDestruction_Init () {
libGDHL_gt_HeroThrallWorldBreakerForcedDestruction = TriggerCreate("libGDHL_gt_HeroThrallWorldBreakerForcedDestruction_Func");
TriggerEnable(libGDHL_gt_HeroThrallWorldBreakerForcedDestruction, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroThrallWorldBreakerForcedDestruction, c_playerAny, "DestroyPathingBlockerDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tinker - Focus Turrets! Set Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTinkerFocusTurretsSetTarget_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_owningPlayer;
unit lv_focusTarget;
// Automatic Variable Declarations
// Variable Initialization
lv_owningPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_focusTarget = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
if ((libGDHL_gv_heroTinkerFocusTurretsTarget[lv_owningPlayer] != null)) {
if ((libGDHL_gv_heroTinkerFocusTurretsTarget[lv_owningPlayer] == lv_focusTarget)) {
}
else {
UnitBehaviorRemove(libGDHL_gv_heroTinkerFocusTurretsTarget[lv_owningPlayer], "TinkerFocusTurretsTargetBuff", 1);
libGDHL_gv_heroTinkerFocusTurretsTarget[lv_owningPlayer] = lv_focusTarget;
}
}
else {
libGDHL_gv_heroTinkerFocusTurretsTarget[lv_owningPlayer] = lv_focusTarget;
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTinkerFocusTurretsSetTarget_Init () {
libGDHL_gt_HeroTinkerFocusTurretsSetTarget = TriggerCreate("libGDHL_gt_HeroTinkerFocusTurretsSetTarget_Func");
TriggerEnable(libGDHL_gt_HeroTinkerFocusTurretsSetTarget, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroTinkerFocusTurretsSetTarget, c_playerAny, "TinkerFocusTurretsApplyTargetBuff");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tychus - Relentless Soldier Talent Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTychusRelentlessSoldierTalentProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "TychusRelentlessSoldier") == true))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroTychus"))) {
return false;
}
if (!((UnitHasBehaviorWithCategoryFlag(lv_unit, c_behaviorCategoryBuffUnstoppable) == false))) {
return false;
}
if (!((UnitIsAlive(lv_unit) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_unit, "TychusRelentlessSoldierApplyResistantBehavior", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTychusRelentlessSoldierTalentProc_Init () {
libGDHL_gt_HeroTychusRelentlessSoldierTalentProc = TriggerCreate("libGDHL_gt_HeroTychusRelentlessSoldierTalentProc_Func");
TriggerEnable(libGDHL_gt_HeroTychusRelentlessSoldierTalentProc, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroTychusRelentlessSoldierTalentProc, null, c_behaviorCategoryStun, c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroTychusRelentlessSoldierTalentProc, null, c_behaviorCategoryStun, c_unitBehaviorChangeRefresh);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroTychusRelentlessSoldierTalentProc, null, c_behaviorCategoryDebuffRoot, c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroTychusRelentlessSoldierTalentProc, null, c_behaviorCategoryDebuffRoot, c_unitBehaviorChangeRefresh);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tychus - Master Assassin - Hero Takedown Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTychusMasterAssassinHeroTakedownProc_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_tychusPlayer;
unit lv_tychusUnit;
const int lv_masterAssassinMaxCount = 15;
// Automatic Variable Declarations
// Variable Initialization
lv_tychusPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_tychusUnit = libGame_gv_players[lv_tychusPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_tychusPlayer >= 1))) {
return false;
}
if (!((lv_tychusPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHasTalent(lv_tychusPlayer, "TychusMasterAssassin") == true))) {
return false;
}
if (!((UnitBehaviorCount(lv_tychusUnit, "TychusMasterAssassinQuestToken") < lv_masterAssassinMaxCount))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_tychusUnit, "TychusMasterAssassinQuestIncrementToken", lv_tychusUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTychusMasterAssassinHeroTakedownProc_Init () {
libGDHL_gt_HeroTychusMasterAssassinHeroTakedownProc = TriggerCreate("libGDHL_gt_HeroTychusMasterAssassinHeroTakedownProc_Func");
TriggerEnable(libGDHL_gt_HeroTychusMasterAssassinHeroTakedownProc, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroTychusMasterAssassinHeroTakedownProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tychus - That's The Stuff - On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTychusThatsTheStuffOn_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((PlayerHasTalent(UnitGetOwner(EventUnit()), "TychusThatsTheStuff") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffDamageTracker, true);
libGDHL_gv_heroTychusThatsTheStuffCastCount += 1;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTychusThatsTheStuffOn_Init () {
libGDHL_gt_HeroTychusThatsTheStuffOn = TriggerCreate("libGDHL_gt_HeroTychusThatsTheStuffOn_Func");
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTychusThatsTheStuffOn, null, "TychusMinigunActiveBuff", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tychus - That's The Stuff - Damage Tracker
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTychusThatsTheStuffDamageTracker_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_damageAmount;
const fixed lv_damageDealtHealingFraction = 1.0;
unit lv_itUnit;
int lv_itPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_itUnit = EventUnitDamageSourceUnit();
lv_itPlayer = UnitGetOwner(EventUnitDamageSourceUnit());
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(lv_itUnit, "TychusMinigunActiveBuff") == true))) {
return false;
}
if (!((PlayerHasTalent(lv_itPlayer, "TychusThatsTheStuff") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if (((lv_itPlayer > libCore_gv_bALMaxPlayers) || (lv_itPlayer <= 0))) {
return true;
}
lv_damageAmount = ((EventUnitDamageAmount() + EventUnitDamageBehaviorShield()) * lv_damageDealtHealingFraction);
libGDHL_gv_heroTychusThatsTheStuffCombinedHeal[lv_itPlayer] += lv_damageAmount;
libGDHL_gv_heroTychusThatsTheStuffHealPreviewCombinedDamage[UnitGetOwner(lv_itUnit)] += lv_damageAmount;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTychusThatsTheStuffDamageTracker_Init () {
libGDHL_gt_HeroTychusThatsTheStuffDamageTracker = TriggerCreate("libGDHL_gt_HeroTychusThatsTheStuffDamageTracker_Func");
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffDamageTracker, false);
TriggerAddDamageEvent(libGDHL_gt_HeroTychusThatsTheStuffDamageTracker, "HeroTychus", null, c_unitDamageTypeAny, c_unitDamageEither, "TychusMinigunDamage");
TriggerAddDamageEvent(libGDHL_gt_HeroTychusThatsTheStuffDamageTracker, "HeroTychus", null, c_unitDamageTypeAny, c_unitDamageEither, "TychusMinigunTheBiggerTheyAreDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tychus - That's The Stuff - Heal Preview Catalog
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTychusThatsTheStuffHealPreviewCatalog_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itUnit;
int lv_itPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_itUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_itPlayer = UnitGetOwner(lv_itUnit);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_itUnit) == "HeroTychus"))) {
return false;
}
if (!((UnitHasBehavior2(lv_itUnit, "TychusMinigunActiveBuff") == true))) {
return false;
}
if (!((PlayerHasTalent(lv_itPlayer, "TychusThatsTheStuff") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSetFixed(c_gameCatalogEffect, "TychusMinigunThatsTheStuffTalentDummyHealer", "RechargeVitalRate", lv_itPlayer, libGDHL_gv_heroTychusThatsTheStuffHealPreviewCombinedDamage[lv_itPlayer]);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTychusThatsTheStuffHealPreviewCatalog_Init () {
libGDHL_gt_HeroTychusThatsTheStuffHealPreviewCatalog = TriggerCreate("libGDHL_gt_HeroTychusThatsTheStuffHealPreviewCatalog_Func");
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffHealPreviewCatalog, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroTychusThatsTheStuffHealPreviewCatalog, c_playerAny, "TychusMinigunThatsTheStuffDamageResponseSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tychus - That's The Stuff - Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTychusThatsTheStuffOff_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itUnit;
int lv_itPlayer;
fixed lv_healAmount;
// Automatic Variable Declarations
// Variable Initialization
lv_itUnit = EventUnit();
lv_itPlayer = UnitGetOwner(lv_itUnit);
lv_healAmount = libGDHL_gv_heroTychusThatsTheStuffCombinedHeal[lv_itPlayer];
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_itPlayer, "TychusThatsTheStuff") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroTychusThatsTheStuffCastCount -= 1;
if ((libGDHL_gv_heroTychusThatsTheStuffCastCount == 0)) {
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffDamageTracker, false);
}
CatalogFieldValueSetFixed(c_gameCatalogEffect, "TychusMinigunThatsTheStuffTalentCreateHealer", "RechargeVitalRate", lv_itPlayer, lv_healAmount);
CatalogFieldValueSet(c_gameCatalogEffect, "TychusMinigunThatsTheStuffTalentDummyHealer", "RechargeVitalRate", lv_itPlayer, "0");
UnitCreateEffectUnitWithSource(lv_itUnit, "TychusMinigunThatsTheStuffTalentCreateHealer", lv_itUnit, c_gameCatalogAbil, "TychusMinigunActive");
libGDHL_gv_heroTychusThatsTheStuffCombinedHeal[lv_itPlayer] = 0.0;
libGDHL_gv_heroTychusThatsTheStuffHealPreviewCombinedDamage[lv_itPlayer] = 0.0;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTychusThatsTheStuffOff_Init () {
libGDHL_gt_HeroTychusThatsTheStuffOff = TriggerCreate("libGDHL_gt_HeroTychusThatsTheStuffOff_Func");
TriggerEnable(libGDHL_gt_HeroTychusThatsTheStuffOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTychusThatsTheStuffOff, null, "TychusMinigunActiveBuff", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tychus - Update Orders On Issue Order Ability
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTychusUpdateOrdersOnIssueOrderAbility_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
unitgroup autoB1D16965_g;
int autoB1D16965_u;
unit autoB1D16965_var;
// Actions
if (!runActions) {
return true;
}
autoB1D16965_g = UnitGroup("TychusLaserDrill", EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster), RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
autoB1D16965_u = UnitGroupCount(autoB1D16965_g, c_unitCountAll);
for (;; autoB1D16965_u -= 1) {
autoB1D16965_var = UnitGroupUnitFromEnd(autoB1D16965_g, autoB1D16965_u);
if (autoB1D16965_var == null) { break; }
UnitIssueOrder(autoB1D16965_var, OrderTargetingUnit(AbilityCommand("attack", 0), EventPlayerEffectUsedUnit(c_effectUnitTarget)), c_orderQueueReplace);
UnitBehaviorRemove(autoB1D16965_var, "LaserDrillDamageIncrease", 5);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTychusUpdateOrdersOnIssueOrderAbility_Init () {
libGDHL_gt_HeroTychusUpdateOrdersOnIssueOrderAbility = TriggerCreate("libGDHL_gt_HeroTychusUpdateOrdersOnIssueOrderAbility_Func");
TriggerEnable(libGDHL_gt_HeroTychusUpdateOrdersOnIssueOrderAbility, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroTychusUpdateOrdersOnIssueOrderAbility, c_playerAny, "LaserDrillAttackOrderCreatePersistent");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tychus - Overkill Targeted Retarget v.H16
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTychusOverkillTargetedRetargetvH16_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitIsAlive(EventPlayerEffectUsedUnit(c_effectUnitTarget)) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnitWithSource(EventPlayerEffectUsedUnit(c_effectUnitCaster), "OverkillTargetedRetargetInitialPersistent", EventPlayerEffectUsedUnit(c_effectUnitTarget), c_gameCatalogAbil, "TychusOverkillTargeted");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTychusOverkillTargetedRetargetvH16_Init () {
libGDHL_gt_HeroTychusOverkillTargetedRetargetvH16 = TriggerCreate("libGDHL_gt_HeroTychusOverkillTargetedRetargetvH16_Func");
TriggerEnable(libGDHL_gt_HeroTychusOverkillTargetedRetargetvH16, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroTychusOverkillTargetedRetargetvH16, c_playerAny, "OverkillTargetedRetargetDestroyPersistentSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tychus - Overkill Rolling Reload
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTychusOverkillRollingReload_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_tychus;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_tychus = EventPlayerEffectUsedUnit(c_effectUnitCaster);
if ((UnitHasBehavior2(lv_tychus, "TychusOverkillTargetedActive") == true) && (PlayerHasTalent(UnitGetOwner(lv_tychus), "TychusRunAndGunRollingReload") == true)) {
UnitBehaviorSetDurationRemaining(lv_tychus, "TychusOverkillTargetedActive", (UnitBehaviorDuration(lv_tychus, "TychusOverkillTargetedActive") + libGDHL_gv_tychus_RunAndGunRollingReload_DurationInc));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTychusOverkillRollingReload_Init () {
libGDHL_gt_HeroTychusOverkillRollingReload = TriggerCreate("libGDHL_gt_HeroTychusOverkillRollingReload_Func");
TriggerEnable(libGDHL_gt_HeroTychusOverkillRollingReload, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroTychusOverkillRollingReload, c_playerAny, "RunAndGunApplyBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tyrael - Sanctification Facing
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTyraelSanctificationFacing_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
// Actions
if (!runActions) {
return true;
}
libGame_gv_players[lv_player].lv_cameraCameraLockInterrupt = false;
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
UnitSetFacing(libGame_gv_players[lv_player].lv_heroUnit, 270.0, 0.05);
Wait(0.05, c_timeGame);
UnitSetFacing(libGame_gv_players[lv_player].lv_heroUnit, 270.0, 0.05);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTyraelSanctificationFacing_Init () {
libGDHL_gt_HeroTyraelSanctificationFacing = TriggerCreate("libGDHL_gt_HeroTyraelSanctificationFacing_Func");
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationFacing, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroTyraelSanctificationFacing, c_playerAny, "SanctificationInitialSet");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroTyraelSanctificationFacing, c_playerAny, "TyraelSanctificationPrepareSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tyrael - Sanctification Timer Start
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTyraelSanctificationTimerStart_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
// Actions
if (!runActions) {
return true;
}
TimerStart(libGDHL_gv_sanctifcationTimer[lv_player], CatalogFieldValueGetAsFixed(c_gameCatalogBehavior, "TyraelSanctificationDisplayBehavior", "Duration", lv_player), false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTyraelSanctificationTimerStart_Init () {
libGDHL_gt_HeroTyraelSanctificationTimerStart = TriggerCreate("libGDHL_gt_HeroTyraelSanctificationTimerStart_Func");
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationTimerStart, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroTyraelSanctificationTimerStart, c_playerAny, "TyraelSanctificationStationaryInitialSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tyrael - Archangel's Wrath Suppress Collision
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTyraelArchangelsWrathSuppressCollision_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSet(c_gameCatalogUnit, "HeroTyrael", "Collide[" + IntToString(1) + "]", UnitGetOwner(EventUnit()), "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroTyrael", "Collide[" + IntToString(12) + "]", UnitGetOwner(EventUnit()), "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroTyrael", "Collide[" + IntToString(8) + "]", UnitGetOwner(EventUnit()), "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroTyrael", "Collide[" + IntToString(10) + "]", UnitGetOwner(EventUnit()), "1");
while (!((UnitHasBehavior2(EventUnit(), "TyraelArchangelsWrathDeathActiveBuff") == false))) {
Wait(0.0625, c_timeGame);
}
CatalogFieldValueSet(c_gameCatalogUnit, "HeroTyrael", "Collide[" + IntToString(1) + "]", UnitGetOwner(EventUnit()), "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroTyrael", "Collide[" + IntToString(12) + "]", UnitGetOwner(EventUnit()), "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroTyrael", "Collide[" + IntToString(8) + "]", UnitGetOwner(EventUnit()), "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroTyrael", "Collide[" + IntToString(10) + "]", UnitGetOwner(EventUnit()), "0");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTyraelArchangelsWrathSuppressCollision_Init () {
libGDHL_gt_HeroTyraelArchangelsWrathSuppressCollision = TriggerCreate("libGDHL_gt_HeroTyraelArchangelsWrathSuppressCollision_Func");
TriggerEnable(libGDHL_gt_HeroTyraelArchangelsWrathSuppressCollision, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTyraelArchangelsWrathSuppressCollision, null, "TyraelArchangelsWrathDeathActiveBuff", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tyrael - Archangel's Wrath Death Timer Modification
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTyraelArchangelsWrathDeathTimerModification_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_i;
unit lv_tyrael;
int lv_tyraelOwner;
fixed lv_timerMod;
fixed lv_baseTimerValue;
fixed lv_existingTimer;
fixed lv_newTimer;
// Automatic Variable Declarations
// Variable Initialization
lv_tyrael = EventUnit();
lv_tyraelOwner = UnitGetOwner(lv_tyrael);
lv_timerMod = 0.1;
// Actions
if (!runActions) {
return true;
}
lv_baseTimerValue = libCore_gf_HeroDeathTime(lv_tyraelOwner, UnitLevel(lv_tyrael));
lv_existingTimer = TimerGetRemaining(libGame_gv_players[lv_tyraelOwner].lv_respawnTimer);
lv_newTimer = lv_existingTimer;
if ((lv_baseTimerValue > 1)) {
lv_newTimer -= (lv_baseTimerValue * lv_timerMod);
if ((lv_newTimer > 2.0)) {
libGame_gf_HeroDeathUpdateRespawnTimer(lv_tyraelOwner, lv_newTimer);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTyraelArchangelsWrathDeathTimerModification_Init () {
libGDHL_gt_HeroTyraelArchangelsWrathDeathTimerModification = TriggerCreate("libGDHL_gt_HeroTyraelArchangelsWrathDeathTimerModification_Func");
TriggerEnable(libGDHL_gt_HeroTyraelArchangelsWrathDeathTimerModification, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTyraelArchangelsWrathDeathTimerModification, null, "ArchangelsWrathDeathTimeStack", c_unitBehaviorChangeIncrease);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tyrael - Sanctification Fullscreen Overlay On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOn_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
string lv_sanctificationBehavior;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_sanctificationBehavior = EventUnitBehavior();
// Actions
if (!runActions) {
return true;
}
UnitBehaviorAdd(lv_unit, "TyraelSanctificationDisplayBehavior", UnitBehaviorEffectUnit(lv_unit, lv_sanctificationBehavior, c_effectUnitCaster, 0), 1);
UnitBehaviorSetDurationRemaining(lv_unit, "TyraelSanctificationDisplayBehavior", TimerGetRemaining(libGDHL_gv_sanctifcationTimer[UnitBehaviorEffectPlayer(lv_unit, lv_sanctificationBehavior, c_effectPlayerOrigin, 0)]));
if ((UnitTestState(lv_unit, c_unitStateHallucination) == false) && (UnitHasBehavior2(lv_unit, "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(EventPlayer(), libUIUI_ge_FullscreenOverlayPriorities_Invulnerable, "Cutscenes\\GameUI_InvulnerableOverlay.StormCutscene", lv_sanctificationBehavior);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOn_Init () {
libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOn = TriggerCreate("libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOn_Func");
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOn, null, "Sanctification", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tyrael - Sanctification Fullscreen Overlay Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOff_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
// Actions
if (!runActions) {
return true;
}
UnitBehaviorRemove(lv_unit, "TyraelSanctificationDisplayBehavior", 1);
if ((UnitHasBehavior2(lv_unit, "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(EventPlayer(), "Cutscenes\\GameUI_InvulnerableOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOff_Init () {
libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOff = TriggerCreate("libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOff_Func");
TriggerEnable(libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOff, null, "Sanctification", c_unitBehaviorChangeDestroy);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOff, null, "Sanctification", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tyrande - Elune's Chosen Set Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTyrandeElunesChosenSetTarget_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_target;
int lv_targetOwner;
int lv_tyrandePlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_target = EventUnit();
lv_targetOwner = UnitGetOwner(lv_target);
lv_tyrandePlayer = UnitGetOwner(UnitBehaviorEffectUnit(lv_target, "TyrandeElunesChosenAllyBuff", c_effectUnitCaster, 0));
// Conditions
if (testConds) {
if (!((lv_targetOwner >= 1))) {
return false;
}
if (!((lv_targetOwner <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroTyrandeElunesChosenTarget[lv_tyrandePlayer] = lv_target;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTyrandeElunesChosenSetTarget_Init () {
libGDHL_gt_HeroTyrandeElunesChosenSetTarget = TriggerCreate("libGDHL_gt_HeroTyrandeElunesChosenSetTarget_Func");
TriggerEnable(libGDHL_gt_HeroTyrandeElunesChosenSetTarget, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTyrandeElunesChosenSetTarget, null, "TyrandeElunesChosenAllyBuff", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tyrande - Elune's Chosen Damage Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTyrandeElunesChosenDamageProc_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_damageDealt;
fixed lv_damageScale;
unit lv_tyrande;
int lv_tyrandePlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_damageDealt = (EventUnitDamageAmount()+EventUnitDamageBehaviorShield());
lv_damageScale = 1.75;
lv_tyrande = EventUnitDamageSourceUnit();
lv_tyrandePlayer = UnitGetOwner(lv_tyrande);
// Conditions
if (testConds) {
if (!((lv_damageDealt > 0.0))) {
return false;
}
if (!((UnitBehaviorCount(lv_tyrande, "TyrandeElunesChosenSelfBuff") == 1))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSet(c_gameCatalogEffect, "TyrandeElunesChosenCreateHealer", "RechargeVitalRate", lv_tyrandePlayer, FixedToString((lv_damageDealt * lv_damageScale), c_fixedPrecisionAny));
UnitCreateEffectUnitWithSource(lv_tyrande, "TyrandeElunesChosenCreateHealer", libGDHL_gv_heroTyrandeElunesChosenTarget[lv_tyrandePlayer], c_gameCatalogAbil, "TyrandeElunesChosen");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTyrandeElunesChosenDamageProc_Init () {
libGDHL_gt_HeroTyrandeElunesChosenDamageProc = TriggerCreate("libGDHL_gt_HeroTyrandeElunesChosenDamageProc_Func");
TriggerEnable(libGDHL_gt_HeroTyrandeElunesChosenDamageProc, false);
TriggerAddEventUnitDamaged(libGDHL_gt_HeroTyrandeElunesChosenDamageProc, null, c_unitDamageTypeBasic, c_unitDamageEither, "TyrandeHeroWeaponDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Tyrande - Eyes Of The Huntress Activate
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroTyrandeEyesOfTheHuntressActivate_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_tyrande;
int lv_tyrandePlayer;
int lv_enemyTeam;
// Automatic Variable Declarations
playergroup auto3561D253_g;
int auto3561D253_var;
unitgroup auto8AB2AAC7_g;
int auto8AB2AAC7_u;
unit auto8AB2AAC7_var;
// Variable Initialization
lv_tyrande = EventUnit();
lv_tyrandePlayer = UnitGetOwner(lv_tyrande);
lv_enemyTeam = libGame_gf_EnemyTeamNumberOfPlayer(lv_tyrandePlayer);
// Conditions
if (testConds) {
if (!((UnitGetOwner(lv_tyrande) > 0))) {
return false;
}
if (!((UnitGetOwner(lv_tyrande) <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHasTalent(lv_tyrandePlayer, "TyrandeEyesOfTheHuntress") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto3561D253_g = libGame_gf_PlayersOnTeamHeroes(lv_enemyTeam, true);
auto3561D253_var = -1;
while (true) {
auto3561D253_var = PlayerGroupNextPlayer(auto3561D253_g, auto3561D253_var);
if (auto3561D253_var<0) { break; }
auto8AB2AAC7_g = libGame_gv_players[auto3561D253_var].lv_heroUnitGroup;
auto8AB2AAC7_u = UnitGroupCount(auto8AB2AAC7_g, c_unitCountAll);
for (;; auto8AB2AAC7_u -= 1) {
auto8AB2AAC7_var = UnitGroupUnitFromEnd(auto8AB2AAC7_g, auto8AB2AAC7_u);
if (auto8AB2AAC7_var == null) { break; }
UnitBehaviorAdd(auto8AB2AAC7_var, "TyrandeShadowstalkEyesOfTheHuntressTalentRevealer", lv_tyrande, 1);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroTyrandeEyesOfTheHuntressActivate_Init () {
libGDHL_gt_HeroTyrandeEyesOfTheHuntressActivate = TriggerCreate("libGDHL_gt_HeroTyrandeEyesOfTheHuntressActivate_Func");
TriggerEnable(libGDHL_gt_HeroTyrandeEyesOfTheHuntressActivate, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroTyrandeEyesOfTheHuntressActivate, null, "ShadowstalkCloak", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Witch Doctor - Zombie Prison - Kill Zombies
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWitchDoctorZombiePrisonKillZombies_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
int lv_player;
point lv_soundPoint;
// Automatic Variable Declarations
unitgroup auto3D6429A1_g;
int auto3D6429A1_u;
unit auto3D6429A1_var;
unitgroup auto340695BA_g;
int auto340695BA_u;
unit auto340695BA_var;
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_caster);
// Actions
if (!runActions) {
return true;
}
if ((PlayerHasTalent(lv_player, "WitchDoctorDeadRush") == true)) {
auto3D6429A1_g = UnitGroup("WitchDoctorZombieWallUnit", lv_player, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1);
auto3D6429A1_u = UnitGroupCount(auto3D6429A1_g, c_unitCountAll);
for (;; auto3D6429A1_u -= 1) {
auto3D6429A1_var = UnitGroupUnitFromEnd(auto3D6429A1_g, auto3D6429A1_u);
if (auto3D6429A1_var == null) { break; }
UnitCreateEffectUnit(lv_caster, "WitchDoctorZombieWallDeadRushTalentSearch", auto3D6429A1_var);
}
}
auto340695BA_g = UnitGroup("WitchDoctorZombieWallUnit", lv_player, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto340695BA_u = UnitGroupCount(auto340695BA_g, c_unitCountAll);
for (;; auto340695BA_u -= 1) {
auto340695BA_var = UnitGroupUnitFromEnd(auto340695BA_g, auto340695BA_u);
if (auto340695BA_var == null) { break; }
lv_soundPoint = UnitGetPosition(auto340695BA_var);
UnitCreateEffectUnit(auto340695BA_var, "WitchDoctorZombieWallCancelModifyTimedLifeDuration", auto340695BA_var);
}
PlayerCreateEffectPoint(UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)), "WitchDoctorZombieWallDeathSoundPersistent", lv_soundPoint);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWitchDoctorZombiePrisonKillZombies_Init () {
libGDHL_gt_HeroWitchDoctorZombiePrisonKillZombies = TriggerCreate("libGDHL_gt_HeroWitchDoctorZombiePrisonKillZombies_Func");
TriggerEnable(libGDHL_gt_HeroWitchDoctorZombiePrisonKillZombies, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroWitchDoctorZombiePrisonKillZombies, c_playerAny, "WitchDoctorZombiePrisonCancelDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Witch Doctor - Zombie Prison - Relic Zombies Spawned
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWitchDoctorZombiePrisonRelicZombiesSpawned_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_zombie;
int lv_ownerPlayer;
point lv_positionOfAbility;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_zombie = EventUnit();
lv_ownerPlayer = UnitGetOwner(lv_zombie);
lv_positionOfAbility = UnitGetPosition(lv_zombie);
UnitCreateAIThinkTree(lv_zombie);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWitchDoctorZombiePrisonRelicZombiesSpawned_Init () {
libGDHL_gt_HeroWitchDoctorZombiePrisonRelicZombiesSpawned = TriggerCreate("libGDHL_gt_HeroWitchDoctorZombiePrisonRelicZombiesSpawned_Func");
TriggerEnable(libGDHL_gt_HeroWitchDoctorZombiePrisonRelicZombiesSpawned, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroWitchDoctorZombiePrisonRelicZombiesSpawned, null, AbilityCommand("WitchDoctorZombieWallMorph", 0), c_unitAbilStageComplete, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Witch Doctor - Ravenous Spirit - Cast
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWitchDoctorRavenousSpiritCast_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_ravenousSpiritUnit;
string lv_ravenousSpiritBehavior;
fixed lv_ravenousSpiritDuration;
unit lv_controllerUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_ravenousSpiritBehavior = "";
// Actions
if (!runActions) {
return true;
}
lv_player = EventPlayerEffectUsedUnitOwner(c_effectUnitCaster);
if ((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroAbathur")) {
lv_controllerUnit = libGame_gv_players[lv_player].lv_activeVehicle;
}
else {
lv_controllerUnit = libGame_gv_players[lv_player].lv_heroUnit;
}
UnitSelect(EventPlayerEffectUsedUnit(c_effectUnitTarget), lv_player, true);
lv_ravenousSpiritUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_ravenousSpiritBehavior = CatalogFieldValueGet(c_gameCatalogEffect, (EventPlayerEffectUsed()), "Behavior", lv_player);
lv_ravenousSpiritDuration = CatalogFieldValueGetAsFixed(c_gameCatalogBehavior, lv_ravenousSpiritBehavior, "Duration", lv_player);
UnitBehaviorSetDuration(EventPlayerEffectUsedUnit(c_effectUnitCaster), "RavenousSoulsChannel", lv_ravenousSpiritDuration);
UnitBehaviorSetDurationRemaining(EventPlayerEffectUsedUnit(c_effectUnitCaster), "RavenousSoulsChannel", lv_ravenousSpiritDuration);
libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(lv_ravenousSpiritUnit);
libGame_gv_players[lv_player].lv_cameraCurrentTarget = lv_ravenousSpiritUnit;
libGame_gf_CameraUpdateCameraForPlayer(lv_player);
if ((libAIAI_gf_HeroAIIsAIEnabledForPlayer(lv_player) == true)) {
UnitCreateAIThinkTree(lv_ravenousSpiritUnit);
}
UnitBehaviorAdd(lv_controllerUnit, "DisableAIGoalAssignment", lv_controllerUnit, 1);
while ((UnitHasBehavior2(lv_controllerUnit, "RavenousSoulsChannel") == true)) {
Wait(0.0625, c_timeGame);
}
UnitKill(lv_ravenousSpiritUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWitchDoctorRavenousSpiritCast_Init () {
libGDHL_gt_HeroWitchDoctorRavenousSpiritCast = TriggerCreate("libGDHL_gt_HeroWitchDoctorRavenousSpiritCast_Func");
TriggerEnable(libGDHL_gt_HeroWitchDoctorRavenousSpiritCast, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroWitchDoctorRavenousSpiritCast, c_playerAny, "WitchDoctorRavenousSpiritApplyBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Witch Doctor - Ravenous Spirit - Expires
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWitchDoctorRavenousSpiritExpires_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "WitchDoctorRavenousSpiritUnit"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorRemove(libGame_gv_players[EventPlayer()].lv_heroUnit, "RavenousSoulsChannel", 1);
UnitBehaviorRemove(libGame_gv_players[EventPlayer()].lv_heroUnit, "DisableAIGoalAssignment", 1);
if ((UnitGetType(libGame_gv_players[UnitGetOwner(EventUnit())].lv_heroUnit) == "HeroAbathur")) {
if ((UnitIsAlive(libGame_gv_players[UnitGetOwner(EventUnit())].lv_activeVehicle) == true)) {
libGame_gv_players[EventPlayer()].lv_cameraPlayerUnitGroupToFocusOn = libNtve_gf_ConvertUnitToUnitGroup(libGame_gv_players[EventPlayer()].lv_activeVehicle);
}
else {
libGame_gv_players[EventPlayer()].lv_cameraPlayerUnitGroupToFocusOn = libGame_gv_players[EventPlayer()].lv_heroUnitGroup;
}
}
else {
libGame_gv_players[EventPlayer()].lv_cameraPlayerUnitGroupToFocusOn = libGame_gv_players[EventPlayer()].lv_heroUnitGroup;
}
libGame_gf_CameraUpdateCameraForPlayer(EventPlayer());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWitchDoctorRavenousSpiritExpires_Init () {
libGDHL_gt_HeroWitchDoctorRavenousSpiritExpires = TriggerCreate("libGDHL_gt_HeroWitchDoctorRavenousSpiritExpires_Func");
TriggerEnable(libGDHL_gt_HeroWitchDoctorRavenousSpiritExpires, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroWitchDoctorRavenousSpiritExpires, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Witch Doctor - Passive (Target)
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWitchDoctorPassiveTarget_Func (bool testConds, bool runActions) {
// Variable Declarations
string lv_debuff;
unit lv_witchDoctor;
unit lv_killedUnit;
int lv_wDPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_killedUnit = EventUnit();
// Conditions
if (testConds) {
if (!(((UnitBehaviorCount(lv_killedUnit, "WitchDoctorVoodooRitualDoT") == 1) || (UnitBehaviorCount(lv_killedUnit, "WitchDoctorVoodooRitualDeathRitualTalentDoT") == 1)))) {
return false;
}
if (!((UnitBehaviorCount(lv_killedUnit, "SylvanasPossessionTarget") == 0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitBehaviorCount(lv_killedUnit, "WitchDoctorVoodooRitualDoT") == 1)) {
lv_debuff = "WitchDoctorVoodooRitualDoT";
}
else {
lv_debuff = "WitchDoctorVoodooRitualDeathRitualTalentDoT";
}
lv_witchDoctor = libGame_gv_players[UnitBehaviorEffectPlayer(lv_killedUnit, lv_debuff, c_effectPlayerCaster, 0)].lv_heroUnit;
lv_wDPlayer = UnitGetOwner(lv_witchDoctor);
if ((UnitTypeTestAttribute(UnitGetType(lv_killedUnit), c_unitAttributeStructure) == false) && (UnitTypeTestAttribute(UnitGetType(lv_killedUnit), c_unitAttributeSummoned) == false) && (UnitTypeTestAttribute(UnitGetType(lv_killedUnit), c_unitAttributeCreep) == false) && (UnitTypeTestAttribute(UnitGetType(lv_killedUnit), c_unitAttributeMerc) == false) && (UnitTypeTestAttribute(UnitGetType(lv_killedUnit), c_unitAttributeMinion) == true)) {
UnitCreateEffectUnit(lv_witchDoctor, "WitchDoctorVoodooRitualProcSet", lv_witchDoctor);
}
if ((PlayerHasTalent(lv_wDPlayer, "WitchDoctorBloodRitual") == true)) {
UnitCreateEffectUnit(lv_witchDoctor, "WitchDoctorVoodooRitualBloodRitualSet", lv_witchDoctor);
}
UnitBehaviorRemove(EventUnit(), "WitchDoctorVoodooRitualDoT", 1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWitchDoctorPassiveTarget_Init () {
libGDHL_gt_HeroWitchDoctorPassiveTarget = TriggerCreate("libGDHL_gt_HeroWitchDoctorPassiveTarget_Func");
TriggerEnable(libGDHL_gt_HeroWitchDoctorPassiveTarget, false);
TriggerAddEventUnitDamaged(libGDHL_gt_HeroWitchDoctorPassiveTarget, null, c_unitDamageTypeBasic, c_unitDamageFatal, null);
TriggerAddEventUnitDamaged(libGDHL_gt_HeroWitchDoctorPassiveTarget, null, c_unitDamageTypeAbility, c_unitDamageFatal, null);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroWitchDoctorPassiveTarget, null, c_behaviorCategorySpecialDeathState, c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Witch Doctor - Blood Ritual - Hero Takedown Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWitchDoctorBloodRitualHeroTakedownProc_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_wDPlayer;
unit lv_wD;
// Automatic Variable Declarations
// Variable Initialization
lv_wDPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_wD = libGame_gv_players[lv_wDPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_wDPlayer >= 1))) {
return false;
}
if (!((lv_wDPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHasTalent(lv_wDPlayer, "WitchDoctorBloodRitual") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_wD, "WitchDoctorVoodooRitualBloodRitualTalentTakedownProcPersistent", lv_wD);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWitchDoctorBloodRitualHeroTakedownProc_Init () {
libGDHL_gt_HeroWitchDoctorBloodRitualHeroTakedownProc = TriggerCreate("libGDHL_gt_HeroWitchDoctorBloodRitualHeroTakedownProc_Func");
TriggerEnable(libGDHL_gt_HeroWitchDoctorBloodRitualHeroTakedownProc, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroWitchDoctorBloodRitualHeroTakedownProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Witch Doctor- Gargantuan - Created
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWitchDoctorGargantuanCreated_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_witchDoctorUnit;
unit lv_gargantuanUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_player = UnitGetOwner(EventUnit());
lv_witchDoctorUnit = libGame_gv_players[lv_player].lv_heroUnit;
lv_gargantuanUnit = EventUnitCreatedUnit();
// Actions
if (!runActions) {
return true;
}
UnitGroupAdd(libGame_gv_players[lv_player].lv_summonedUnitGroup, lv_gargantuanUnit);
UnitGroupClear(libGDHL_gv_heroWitchDoctorGargantuanAggroGroup[lv_player]);
UnitCreateEffectUnit(lv_gargantuanUnit, "WitchDoctorGargantuanApplyStompController", lv_witchDoctorUnit);
libGDHL_gf_HeroWitchDoctorGargantuanAI(lv_witchDoctorUnit, EventUnitCreatedUnit(), lv_player, UnitGetPosition(EventUnitCreatedUnit()));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWitchDoctorGargantuanCreated_Init () {
libGDHL_gt_HeroWitchDoctorGargantuanCreated = TriggerCreate("libGDHL_gt_HeroWitchDoctorGargantuanCreated_Func");
TriggerEnable(libGDHL_gt_HeroWitchDoctorGargantuanCreated, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroWitchDoctorGargantuanCreated, null, "WitchDoctorGargantuan", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Witch Doctor- Gargantuan - Stomp Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWitchDoctorGargantuanStompUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_originalOwner;
// Automatic Variable Declarations
// Variable Initialization
lv_originalOwner = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(libGame_gv_players[lv_originalOwner].lv_heroUnit, "WitchDoctorGargantuanModifyStompCommandCooldown", libGame_gv_players[lv_originalOwner].lv_heroUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWitchDoctorGargantuanStompUsed_Init () {
libGDHL_gt_HeroWitchDoctorGargantuanStompUsed = TriggerCreate("libGDHL_gt_HeroWitchDoctorGargantuanStompUsed_Func");
TriggerEnable(libGDHL_gt_HeroWitchDoctorGargantuanStompUsed, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroWitchDoctorGargantuanStompUsed, c_playerAny, "WitchDoctorGargantuanStompSearch");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Witch Doctor - Vile Infection Taken
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWitchDoctorVileInfectionTaken_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_hero;
string lv_talent;
// Automatic Variable Declarations
// Variable Initialization
lv_hero = libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnit;
lv_talent = libGame_gf_HeroGainTalentGainedTalent();
// Conditions
if (testConds) {
if (!((lv_talent == "WitchDoctorVileInfection"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitSetTokenCount(lv_hero, "WitchDoctorVoodooRitualVileInfection", UnitGetTokenCount(lv_hero, "WitchDoctorVoodooRitual"), lv_hero);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWitchDoctorVileInfectionTaken_Init () {
libGDHL_gt_HeroWitchDoctorVileInfectionTaken = TriggerCreate("libGDHL_gt_HeroWitchDoctorVileInfectionTaken_Func");
TriggerEnable(libGDHL_gt_HeroWitchDoctorVileInfectionTaken, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroWitchDoctorVileInfectionTaken);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Witch Doctor - Thing of the Deep Taken
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWitchDoctorThingoftheDeepTaken_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_hero;
string lv_talent;
// Automatic Variable Declarations
// Variable Initialization
lv_hero = libGame_gv_players[libGame_gf_HeroGainTalentPlayer()].lv_heroUnit;
lv_talent = libGame_gf_HeroGainTalentGainedTalent();
// Conditions
if (testConds) {
if (!((lv_talent == "WitchDoctorThingOfTheDeep"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitSetTokenCount(lv_hero, "WitchDoctorThingOfTheDeepQuestToken", UnitGetTokenCount(lv_hero, "WitchDoctorVoodooRitual"), lv_hero);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWitchDoctorThingoftheDeepTaken_Init () {
libGDHL_gt_HeroWitchDoctorThingoftheDeepTaken = TriggerCreate("libGDHL_gt_HeroWitchDoctorThingoftheDeepTaken_Func");
TriggerEnable(libGDHL_gt_HeroWitchDoctorThingoftheDeepTaken, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroWitchDoctorThingoftheDeepTaken);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Wizard - Critical Mass CD Reduction
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWizardCriticalMassCDReduction_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
unit lv_vehicle;
point lv_deadUnitPosition;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
lv_vehicle = libGame_gv_players[lv_player].lv_activeVehicle;
// Conditions
if (testConds) {
if (!((UnitIsAlive(lv_unit) == true))) {
return false;
}
if (!(((UnitGetType(lv_unit) == "HeroWizard") || (UnitGetType(lv_vehicle) == "HeroWizard")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_deadUnitPosition = UnitGetPosition(libGame_gf_HeroParticipatedInTakedownKilledHero());
if ((UnitGetType(lv_unit) == "HeroWizard")) {
UnitCreateEffectUnit(lv_unit, "WizardCriticalMassCooldownRefund", lv_unit);
UnitCreateEffectUnit(lv_unit, "WizardCriticalMassModifyPlayerCooldowns", lv_unit);
UnitCreateEffectPoint(lv_unit, "WizardCriticalMassDummyPersistent", lv_deadUnitPosition);
}
else {
UnitCreateEffectUnit(lv_vehicle, "WizardCriticalMassCooldownRefund", lv_vehicle);
UnitCreateEffectUnit(lv_vehicle, "WizardCriticalMassModifyPlayerCooldowns", lv_vehicle);
UnitCreateEffectPoint(lv_vehicle, "WizardCriticalMassDummyPersistent", lv_deadUnitPosition);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWizardCriticalMassCDReduction_Init () {
libGDHL_gt_HeroWizardCriticalMassCDReduction = TriggerCreate("libGDHL_gt_HeroWizardCriticalMassCDReduction_Func");
TriggerEnable(libGDHL_gt_HeroWizardCriticalMassCDReduction, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroWizardCriticalMassCDReduction);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Wizard - Dominance
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWizardDominance_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((UnitIsAlive(lv_unit) == true))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroWizard"))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "WizardDominance") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnitWithSource(lv_unit, "WizardDominanceSet", lv_unit, c_gameCatalogBehavior, "WizardDominanceDummySourceBehavior");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWizardDominance_Init () {
libGDHL_gt_HeroWizardDominance = TriggerCreate("libGDHL_gt_HeroWizardDominance_Func");
TriggerEnable(libGDHL_gt_HeroWizardDominance, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroWizardDominance);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Wizard - Illusionist - Damage Check
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroWizardIllusionistDamageCheck_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
fixed lv_damageTaken;
fixed lv_totalHealth;
fixed lv_percentDamageTaken;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroWizard"))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "WizardTeleportIllusionist") == true))) {
return false;
}
if (!((UnitHasBehavior2(lv_unit, "WizardIllusionistCooldown") == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_damageTaken = EventUnitDamageAmount();
lv_totalHealth = UnitGetPropertyFixed(lv_unit, c_unitPropLifeMax, c_unitPropCurrent);
lv_percentDamageTaken = (lv_damageTaken/lv_totalHealth);
if ((lv_percentDamageTaken > libGDHL_gv_illusionistProcPercentageConstant)) {
UnitCreateEffectUnit(lv_unit, "WizardIllusionistProcSet", lv_unit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroWizardIllusionistDamageCheck_Init () {
libGDHL_gt_HeroWizardIllusionistDamageCheck = TriggerCreate("libGDHL_gt_HeroWizardIllusionistDamageCheck_Func");
TriggerEnable(libGDHL_gt_HeroWizardIllusionistDamageCheck, false);
TriggerAddEventUnitDamaged(libGDHL_gt_HeroWizardIllusionistDamageCheck, null, c_unitDamageTypeAny, c_unitDamageEither, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Uther - Armor of Faith Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroUtherArmorofFaithProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnit();
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((UnitBehaviorCount(lv_unit, "UtherHolyLightArmorOfFaithCooldown") < 1))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "UtherEternalDevotionArmorOfFaith") == true))) {
return false;
}
if (!((UnitGetType(lv_unit) == "HeroUther"))) {
return false;
}
if (!((UnitHasBehaviorWithCategoryFlag(lv_unit, c_behaviorCategoryBuffUnstoppable) == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_unit, "UtherHolyLightArmorOfFaithProcSet", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroUtherArmorofFaithProc_Init () {
libGDHL_gt_HeroUtherArmorofFaithProc = TriggerCreate("libGDHL_gt_HeroUtherArmorofFaithProc_Func");
TriggerEnable(libGDHL_gt_HeroUtherArmorofFaithProc, false);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroUtherArmorofFaithProc, null, c_behaviorCategoryStun, c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroUtherArmorofFaithProc, null, c_behaviorCategoryDebuffRoot, c_unitBehaviorChangeCreate);
TriggerAddEventUnitBehaviorChangeFromCategory(libGDHL_gt_HeroUtherArmorofFaithProc, null, c_behaviorCategoryDebuffSilence, c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Uther - Blessed Champion Target Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroUtherBlessedChampionTargetProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
fixed lv_healAmount;
fixed lv_blessedChampionMod;
fixed lv_healAmountMod;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnitHealLaunchUnit();
lv_player = UnitGetOwner(lv_unit);
lv_healAmount = EventUnitHealAmount();
lv_blessedChampionMod = CatalogFieldValueGetAsFixed(c_gameCatalogEffect, "UtherBlessedChampionHealRatio", "XP", lv_player);
lv_healAmountMod = (lv_healAmount * lv_blessedChampionMod);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "UtherMasteryBlessedChampion") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroUtherBlessedChampionRegisteredHeals[lv_player] += 1;
libGDHL_gv_heroUtherBlessedChampionStoredHealing[lv_player][1] = lv_healAmountMod;
if ((libGDHL_gv_heroUtherBlessedChampionRegisteredHeals[lv_player] == 2)) {
libGDHL_gf_HeroUtherBlessedChampionSetHeal(lv_player);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroUtherBlessedChampionTargetProc_Init () {
libGDHL_gt_HeroUtherBlessedChampionTargetProc = TriggerCreate("libGDHL_gt_HeroUtherBlessedChampionTargetProc_Func");
TriggerEnable(libGDHL_gt_HeroUtherBlessedChampionTargetProc, false);
TriggerAddEventUnitHealed(libGDHL_gt_HeroUtherBlessedChampionTargetProc, null, c_unitVitalLife, "HolyLightCreateHealer");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Uther - Blessed Champion Self-Healing Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroUtherBlessedChampionSelfHealingProc_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
fixed lv_healAmount;
fixed lv_blessedChampionMod;
fixed lv_healAmountMod;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventUnitHealLaunchUnit();
lv_player = UnitGetOwner(lv_unit);
lv_healAmount = EventUnitHealAmount();
lv_blessedChampionMod = CatalogFieldValueGetAsFixed(c_gameCatalogEffect, "UtherBlessedChampionHealRatio", "XP", lv_player);
lv_healAmountMod = (lv_healAmount * lv_blessedChampionMod);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "UtherMasteryBlessedChampion") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroUtherBlessedChampionRegisteredHeals[lv_player] += 1;
libGDHL_gv_heroUtherBlessedChampionStoredHealing[lv_player][2] = lv_healAmountMod;
if ((libGDHL_gv_heroUtherBlessedChampionRegisteredHeals[lv_player] == 2)) {
libGDHL_gf_HeroUtherBlessedChampionSetHeal(lv_player);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroUtherBlessedChampionSelfHealingProc_Init () {
libGDHL_gt_HeroUtherBlessedChampionSelfHealingProc = TriggerCreate("libGDHL_gt_HeroUtherBlessedChampionSelfHealingProc_Func");
TriggerEnable(libGDHL_gt_HeroUtherBlessedChampionSelfHealingProc, false);
TriggerAddEventUnitHealed(libGDHL_gt_HeroUtherBlessedChampionSelfHealingProc, null, c_unitVitalLife, "HolyLightCreateSelfHealer");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Uther - Blessed Champion Dummy Procs
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroUtherBlessedChampionDummyProcs_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_unit);
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_player, "UtherMasteryBlessedChampion") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGDHL_gv_heroUtherBlessedChampionRegisteredHeals[lv_player] += 1;
if (((EventPlayerEffectUsed() == "HolyShockDamage") || (EventPlayerEffectUsed() == "UtherHolyLightBlessedChampionTalentTargetHealDummy"))) {
libGDHL_gv_heroUtherBlessedChampionStoredHealing[lv_player][1] = 0.0;
}
else {
libGDHL_gv_heroUtherBlessedChampionStoredHealing[lv_player][2] = 0.0;
}
if ((libGDHL_gv_heroUtherBlessedChampionRegisteredHeals[lv_player] == 2)) {
libGDHL_gf_HeroUtherBlessedChampionSetHeal(lv_player);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroUtherBlessedChampionDummyProcs_Init () {
libGDHL_gt_HeroUtherBlessedChampionDummyProcs = TriggerCreate("libGDHL_gt_HeroUtherBlessedChampionDummyProcs_Func");
TriggerEnable(libGDHL_gt_HeroUtherBlessedChampionDummyProcs, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroUtherBlessedChampionDummyProcs, c_playerAny, "UtherHolyLightBlessedChampionTalentSelfHealDummy");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroUtherBlessedChampionDummyProcs, c_playerAny, "UtherHolyLightBlessedChampionTalentTargetHealDummy");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroUtherBlessedChampionDummyProcs, c_playerAny, "HolyShockDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Uther - Spirit of Redemption Cooldown Reset
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroUtherSpiritofRedemptionCooldownReset_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_i;
unit lv_hero;
int lv_heroIndex;
string lv_abilLink;
string lv_cooldownLink;
fixed lv_currentCooldownAmount;
fixed lv_newCooldownAmount;
string lv_chargeLink;
fixed lv_currentChargeAmount;
fixed lv_newChargeAmount;
// Automatic Variable Declarations
const int auto5E5F8669_ae = libCore_gv_dataHeroesMaxAbilitiesPerHero;
const int auto5E5F8669_ai = 1;
// Variable Initialization
lv_hero = EventUnit();
lv_cooldownLink = "";
lv_chargeLink = "";
// Actions
if (!runActions) {
return true;
}
if ((EventUnitBehaviorChange() == c_unitBehaviorChangeActivate)) {
lv_heroIndex = libCore_gf_GetHeroIndexForUnitType(UnitGetType(lv_hero));
libNtve_gf_UnitRemoveCooldown(EventUnit(), "Abil/UtherHolyShock");
lv_i = 1;
for ( ; ( (auto5E5F8669_ai >= 0 && lv_i <= auto5E5F8669_ae) || (auto5E5F8669_ai < 0 && lv_i >= auto5E5F8669_ae) ) ; lv_i += auto5E5F8669_ai ) {
lv_abilLink = libGame_gv_players[lv_heroIndex].lv_heroData.lv_abilities[lv_i].lv_ability;
if ((lv_abilLink != null)) {
if ((lv_abilLink != "UtherDivineStorm") && (lv_abilLink != "UtherDivineIntervention")) {
lv_cooldownLink = CatalogFieldValueGet(c_gameCatalogAbil, lv_abilLink, "Cost[" + IntToString(0) + "].Cooldown.Link", UnitGetOwner(lv_hero));
libNtve_gf_UnitRemoveCooldown(lv_hero, lv_cooldownLink);
}
lv_chargeLink = CatalogFieldValueGet(c_gameCatalogAbil, lv_abilLink, "Cost[" + IntToString(0) + "].Charge.Link", UnitGetOwner(lv_hero));
UnitAddChargeUsed(lv_hero, lv_chargeLink, -1.0);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroUtherSpiritofRedemptionCooldownReset_Init () {
libGDHL_gt_HeroUtherSpiritofRedemptionCooldownReset = TriggerCreate("libGDHL_gt_HeroUtherSpiritofRedemptionCooldownReset_Func");
TriggerEnable(libGDHL_gt_HeroUtherSpiritofRedemptionCooldownReset, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroUtherSpiritofRedemptionCooldownReset, null, "SpiritOfRedemptionSpiritFormBuff", c_unitBehaviorChangeAny);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Uther - Eternal Devotion Suppress Collision
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroUtherEternalDevotionSuppressCollision_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSet(c_gameCatalogUnit, "HeroUther", "Collide[" + IntToString(1) + "]", UnitGetOwner(EventUnit()), "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroUther", "Collide[" + IntToString(12) + "]", UnitGetOwner(EventUnit()), "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroUther", "Collide[" + IntToString(8) + "]", UnitGetOwner(EventUnit()), "0");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroUther", "Collide[" + IntToString(10) + "]", UnitGetOwner(EventUnit()), "1");
while (!((UnitHasBehavior2(EventUnit(), "SpiritOfRedemptionSpiritFormBuff") == false))) {
Wait(0.0625, c_timeGame);
}
CatalogFieldValueSet(c_gameCatalogUnit, "HeroUther", "Collide[" + IntToString(1) + "]", UnitGetOwner(EventUnit()), "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroUther", "Collide[" + IntToString(12) + "]", UnitGetOwner(EventUnit()), "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroUther", "Collide[" + IntToString(8) + "]", UnitGetOwner(EventUnit()), "1");
CatalogFieldValueSet(c_gameCatalogUnit, "HeroUther", "Collide[" + IntToString(10) + "]", UnitGetOwner(EventUnit()), "0");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroUtherEternalDevotionSuppressCollision_Init () {
libGDHL_gt_HeroUtherEternalDevotionSuppressCollision = TriggerCreate("libGDHL_gt_HeroUtherEternalDevotionSuppressCollision_Func");
TriggerEnable(libGDHL_gt_HeroUtherEternalDevotionSuppressCollision, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroUtherEternalDevotionSuppressCollision, null, "SpiritOfRedemptionSpiritFormBuff", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Uther - Divine Shield Fullscreen Overlay On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOn_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(EventPlayer(), libUIUI_ge_FullscreenOverlayPriorities_Invulnerable, "Cutscenes\\GameUI_InvulnerableOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOn_Init () {
libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOn = TriggerCreate("libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOn_Func");
TriggerEnable(libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOn, null, "DivineInterventionInvulnerable", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Uther - Divine Shield Fullscreen Overlay Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOff_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(EventPlayer(), "Cutscenes\\GameUI_InvulnerableOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOff_Init () {
libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOff = TriggerCreate("libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOff_Func");
TriggerEnable(libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOff, null, "DivineInterventionInvulnerable", c_unitBehaviorChangeDestroy);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOff, null, "DivineInterventionInvulnerable", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Devouring Maw - Overlay On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraDevouringMawOverlayOn_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitIsAlive(EventUnit()) == true) && (UnitTestState(EventUnit(), c_unitStateHallucination) == false) && (UnitTypeTestAttribute(UnitGetType(EventUnit()), c_unitAttributeHeroic) == true) && (UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(EventPlayer(), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraDevouringMawOverlayOn_Init () {
libGDHL_gt_HeroZagaraDevouringMawOverlayOn = TriggerCreate("libGDHL_gt_HeroZagaraDevouringMawOverlayOn_Func");
TriggerEnable(libGDHL_gt_HeroZagaraDevouringMawOverlayOn, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroZagaraDevouringMawOverlayOn, null, "DevouringMawTargetBehavior", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Devouring Maw - Overlay Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraDevouringMawOverlayOff_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(EventPlayer(), "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraDevouringMawOverlayOff_Init () {
libGDHL_gt_HeroZagaraDevouringMawOverlayOff = TriggerCreate("libGDHL_gt_HeroZagaraDevouringMawOverlayOff_Func");
TriggerEnable(libGDHL_gt_HeroZagaraDevouringMawOverlayOff, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroZagaraDevouringMawOverlayOff, null, "DevouringMawTargetBehavior", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Exit Nydus Worm Used
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraExitNydusWormUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_nydusWormUnit;
unit lv_zagaraUnit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_player = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster));
lv_nydusWormUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
if ((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroZagara")) {
lv_zagaraUnit = libGame_gv_players[lv_player].lv_heroUnit;
}
else {
lv_zagaraUnit = libGame_gv_players[lv_player].lv_activeVehicle;
}
libGame_gf_CameraPanCameraForPlayerAndUpdateMapBoundsIfNecessary(UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)), UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitCaster)), 0.0, -1, 0.0, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraExitNydusWormUsed_Init () {
libGDHL_gt_HeroZagaraExitNydusWormUsed = TriggerCreate("libGDHL_gt_HeroZagaraExitNydusWormUsed_Func");
TriggerEnable(libGDHL_gt_HeroZagaraExitNydusWormUsed, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroZagaraExitNydusWormUsed, c_playerAny, "ZagaraExitNydusWormRemoveBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Nydus Worm Spawned
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraNydusWormSpawned_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_newWorm;
int lv_playerId;
unit lv_itUnit;
// Automatic Variable Declarations
unitgroup autoA03094B1_g;
int autoA03094B1_u;
// Variable Initialization
lv_newWorm = EventUnitCreatedUnit();
lv_playerId = UnitGetOwner(lv_newWorm);
// Conditions
if (testConds) {
if (!((UnitGetType(lv_newWorm) == "ZagaraNydusWorm"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoA03094B1_g = libGDHL_gv_heroZagaraNydusWormUnitGroup[lv_playerId];
autoA03094B1_u = UnitGroupCount(autoA03094B1_g, c_unitCountAll);
for (;; autoA03094B1_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(autoA03094B1_g, autoA03094B1_u);
if (lv_itUnit == null) { break; }
AIAddPortal(lv_playerId, lv_newWorm, lv_itUnit, 1.5, 0.0, "ZagaraEnterNydusWorm", "ZagaraExitNydusWorm");
AIAddPortal(lv_playerId, lv_itUnit, lv_newWorm, 1.5, 0.0, "ZagaraEnterNydusWorm", "ZagaraExitNydusWorm");
}
UnitGroupAdd(libGDHL_gv_heroZagaraNydusWormUnitGroup[lv_playerId], lv_newWorm);
libGDHL_gf_HeroZagaraUpdateNydusWormLineofSuccession(lv_playerId);
if (((UnitHasBehavior2(EventUnit(), "UltimateEvolutionBuff") == true) || (UnitHasBehavior2(EventUnit(), "UltimateEvolutionBuild") == true))) {
UnitBehaviorAdd(lv_newWorm, "AbathurUltimateEvolutionCleanupTarget", lv_newWorm, 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraNydusWormSpawned_Init () {
libGDHL_gt_HeroZagaraNydusWormSpawned = TriggerCreate("libGDHL_gt_HeroZagaraNydusWormSpawned_Func");
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormSpawned, false);
TriggerAddEventUnitCreated(libGDHL_gt_HeroZagaraNydusWormSpawned, null, "ZagaraSummonNydusWorm", null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Nydus Worm Targeting State
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraNydusWormTargetingState_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_wormUnit;
// Automatic Variable Declarations
unitgroup autoB9C44FF0_g;
int autoB9C44FF0_u;
unitgroup auto7CB34C57_g;
int auto7CB34C57_u;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitGroupCount(libGDHL_gv_heroZagaraNydusWormUnitGroup[EventPlayer()], c_unitCountAlive) == 10))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((EventTargetModeState() == c_targetModeStateOn)) {
auto7CB34C57_g = libGDHL_gv_heroZagaraNydusWormUnitGroup[EventPlayer()];
auto7CB34C57_u = UnitGroupCount(auto7CB34C57_g, c_unitCountAll);
for (;; auto7CB34C57_u -= 1) {
lv_wormUnit = UnitGroupUnitFromEnd(auto7CB34C57_g, auto7CB34C57_u);
if (lv_wormUnit == null) { break; }
UnitBehaviorAdd(lv_wormUnit, "ZagaraNydusWormOldestWorm", lv_wormUnit, 1);
break;
}
}
else {
autoB9C44FF0_g = libGDHL_gv_heroZagaraNydusWormUnitGroup[EventPlayer()];
autoB9C44FF0_u = UnitGroupCount(autoB9C44FF0_g, c_unitCountAll);
for (;; autoB9C44FF0_u -= 1) {
lv_wormUnit = UnitGroupUnitFromEnd(autoB9C44FF0_g, autoB9C44FF0_u);
if (lv_wormUnit == null) { break; }
UnitBehaviorRemove(lv_wormUnit, "ZagaraNydusWormOldestWorm", 1);
break;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraNydusWormTargetingState_Init () {
libGDHL_gt_HeroZagaraNydusWormTargetingState = TriggerCreate("libGDHL_gt_HeroZagaraNydusWormTargetingState_Func");
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormTargetingState, false);
TriggerAddEventTargetModeUpdate(libGDHL_gt_HeroZagaraNydusWormTargetingState, c_playerAny, AbilityCommand("ZagaraSummonNydusWorm", 0), c_targetModeStateOn);
TriggerAddEventTargetModeUpdate(libGDHL_gt_HeroZagaraNydusWormTargetingState, c_playerAny, AbilityCommand("ZagaraSummonNydusWorm", 0), c_targetModeStateOff);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Nydus Worm Dies
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraNydusWormDies_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_deadWorm;
int lv_playerId;
unit lv_zagaraUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_deadWorm = EventUnit();
// Conditions
if (testConds) {
if (!((UnitGetType(lv_deadWorm) == "ZagaraNydusWorm"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_playerId = UnitGetOwner(lv_deadWorm);
UnitGroupRemove(libGDHL_gv_heroZagaraNydusWormUnitGroup[lv_playerId], lv_deadWorm);
AIRemovePortal(lv_deadWorm);
if (((UnitHasBehavior2(libGame_gv_players[lv_playerId].lv_heroUnit, "ZagaraInsideNydusWorm") == true) || (UnitHasBehavior2(libGame_gv_players[lv_playerId].lv_activeVehicle, "ZagaraInsideNydusWorm") == true))) {
if ((UnitGetType(libGame_gv_players[lv_playerId].lv_heroUnit) == "HeroZagara")) {
lv_zagaraUnit = libGame_gv_players[lv_playerId].lv_heroUnit;
}
else {
lv_zagaraUnit = libGame_gv_players[lv_playerId].lv_activeVehicle;
}
if ((UnitGroupCount(libGDHL_gv_heroZagaraNydusWormUnitGroup[lv_playerId], c_unitCountAlive) < 1)) {
UnitSetPosition(lv_zagaraUnit, UnitGetPosition(lv_deadWorm), false);
UnitBehaviorRemove(lv_zagaraUnit, "ZagaraInsideNydusWorm", 1);
}
else {
UnitSetPosition(lv_zagaraUnit, UnitGetPosition(UnitGroupRandomUnit(libGDHL_gv_heroZagaraNydusWormUnitGroup[lv_playerId], c_unitCountAlive)), false);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraNydusWormDies_Init () {
libGDHL_gt_HeroZagaraNydusWormDies = TriggerCreate("libGDHL_gt_HeroZagaraNydusWormDies_Func");
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormDies, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroZagaraNydusWormDies, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Nydus Worm Dies - Update Line of Succession
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraNydusWormDiesUpdateLineofSuccession_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnit()) == "ZagaraNydusWorm"))) {
return false;
}
if (!((EventPlayer() > 0))) {
return false;
}
if (!((EventPlayer() <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
AIRemovePortal(EventUnit());
UnitGroupRemove(libGDHL_gv_heroZagaraNydusWormUnitGroup[UnitGetOwner(EventUnit())], EventUnit());
libGDHL_gf_HeroZagaraUpdateNydusWormLineofSuccession(UnitGetOwner(EventUnit()));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraNydusWormDiesUpdateLineofSuccession_Init () {
libGDHL_gt_HeroZagaraNydusWormDiesUpdateLineofSuccession = TriggerCreate("libGDHL_gt_HeroZagaraNydusWormDiesUpdateLineofSuccession_Func");
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormDiesUpdateLineofSuccession, false);
TriggerAddEventUnitDied(libGDHL_gt_HeroZagaraNydusWormDiesUpdateLineofSuccession, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Nydus Worm Exit Animation
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraNydusWormExitAnimation_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_nydusWormUnit;
unit lv_zagara;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_zagara = EventUnit();
lv_nydusWormUnit = EventUnitTargetUnit();
if ((UnitHasBehavior2(lv_nydusWormUnit, "ZagaraNydusWormBirth") == false)) {
libNtve_gf_SendActorMessageToUnit(lv_nydusWormUnit, "AnimPlay Spell Spell,B");
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraNydusWormExitAnimation_Init () {
libGDHL_gt_HeroZagaraNydusWormExitAnimation = TriggerCreate("libGDHL_gt_HeroZagaraNydusWormExitAnimation_Func");
TriggerEnable(libGDHL_gt_HeroZagaraNydusWormExitAnimation, false);
TriggerAddEventUnitAbility(libGDHL_gt_HeroZagaraNydusWormExitAnimation, null, AbilityCommand("ZagaraExitNydusWorm", 0), c_abilEffectStageFinish, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Baneling Barrage
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraBanelingBarrage_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_movementIncrement;
int lv_triggeringPlayer;
unit lv_zagara;
point lv_targetPoint;
unit lv_baneling;
point lv_lastPointChecked;
point lv_forwardPoint;
point lv_leftPoint;
point lv_rightPoint;
// Automatic Variable Declarations
// Variable Initialization
lv_movementIncrement = 1.0;
lv_triggeringPlayer = EventPlayer();
lv_zagara = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_targetPoint = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
lv_lastPointChecked = UnitGetPosition(lv_zagara);
// Actions
if (!runActions) {
return true;
}
libNtve_gf_UnitCreateFacingPoint(1, "ZagaraBaneling", c_unitCreateIgnorePlacement, lv_triggeringPlayer, libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_zagara), 0.75, lv_targetPoint), lv_targetPoint, lv_zagara);
lv_baneling = UnitLastCreated();
if ((EventPlayerEffectUsed() == "SummonBanelingsLaunchDummy")) {
UnitBehaviorAdd(lv_baneling, "ZagaraBanelingExplode", lv_zagara, 1);
}
else {
UnitBehaviorAdd(lv_baneling, "ZagaraBanelingExplodeBroodmother", lv_zagara, 1);
}
SoundPlayOnUnit(SoundLink("Zagara_BanelingEgg_Explode", -1), PlayerGroupAll(), lv_baneling, 0.0, 100.0, 0.0);
lv_forwardPoint = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_baneling), lv_movementIncrement, lv_targetPoint);
UnitIssueOrder(lv_baneling, OrderTargetingPoint(AbilityCommand("move", 0), lv_forwardPoint), c_orderQueueReplace);
UnitCreateEffectUnit(lv_zagara, "SummonBanelingsSpeedCheckApplyPersistent", lv_baneling);
while ((UnitIsAlive(lv_baneling) == true) && (DistanceBetweenPoints(UnitGetPosition(lv_baneling), lv_targetPoint) > lv_movementIncrement)) {
lv_forwardPoint = libNtve_gf_PointOffsetTowardsPoint(UnitGetPosition(lv_baneling), lv_movementIncrement, lv_targetPoint);
lv_leftPoint = PointWithOffsetPolar(lv_forwardPoint, 0.7, (AngleBetweenPoints(UnitGetPosition(lv_baneling), lv_targetPoint) + 70.0));
lv_rightPoint = PointWithOffsetPolar(lv_forwardPoint, 0.7, (AngleBetweenPoints(UnitGetPosition(lv_baneling), lv_targetPoint) - 70.0));
if (((PointPathingPassable(lv_forwardPoint) == true) || (PointPathingPassable(lv_leftPoint) == true) || (PointPathingPassable(lv_rightPoint) == true))) {
UnitIssueOrder(lv_baneling, OrderTargetingPoint(AbilityCommand("move", 0), lv_forwardPoint), c_orderQueueReplace);
lv_lastPointChecked = UnitGetPosition(lv_baneling);
Wait(0.125, c_timeGame);
}
else {
UnitKill(lv_baneling);
}
}
UnitKill(lv_baneling);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraBanelingBarrage_Init () {
libGDHL_gt_HeroZagaraBanelingBarrage = TriggerCreate("libGDHL_gt_HeroZagaraBanelingBarrage_Func");
TriggerEnable(libGDHL_gt_HeroZagaraBanelingBarrage, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroZagaraBanelingBarrage, c_playerAny, "SummonBanelingsLaunchDummy");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroZagaraBanelingBarrage, c_playerAny, "SummonBanelingsBroodmotherLaunchDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Hydralisk or Mutalisk Control
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraHydraliskorMutaliskControl_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_triggeringPlayer;
unit lv_zagara;
unit lv_targetUnit;
point lv_lastKnownLocation;
string lv_summonedPetType;
unit lv_summonedPet;
// Automatic Variable Declarations
// Variable Initialization
lv_triggeringPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_zagara = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_targetUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
// Actions
if (!runActions) {
return true;
}
if ((EventPlayerEffectUsed() == "SummonHydraliskPersistent")) {
lv_summonedPetType = "ZagaraHydralisk";
}
else {
lv_summonedPetType = "ZagaraMutalisk";
}
if ((UnitIsValid(lv_targetUnit) == true)) {
lv_lastKnownLocation = UnitGetPosition(EventPlayerEffectUsedUnit(c_effectUnitTarget));
libNtve_gf_UnitCreateFacingPoint(1, lv_summonedPetType, 0, lv_triggeringPlayer, PointWithOffsetPolar(UnitGetPosition(lv_zagara), 1.0, AngleBetweenPoints(UnitGetPosition(lv_zagara), UnitGetPosition(lv_targetUnit))), UnitGetPosition(lv_targetUnit), lv_zagara);
}
else {
UnitCreate(1, lv_summonedPetType, 0, lv_triggeringPlayer, PointWithOffsetPolar(UnitGetPosition(lv_zagara), 1.0, 0.0), 0.0, lv_zagara);
}
lv_summonedPet = UnitLastCreated();
UnitBehaviorAdd(lv_summonedPet, "ZagaraHydraliskAbilityController", lv_zagara, 1);
libAIAI_gf_MinionAIUnhookUnitFromMinionAI(lv_summonedPet);
while ((UnitIsValid(lv_targetUnit) == true) && (UnitIsAlive(lv_summonedPet) == true) && (UnitFilterMatch(lv_targetUnit, lv_triggeringPlayer, UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterStasis - 32)) | (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)))) == true) && ((libNtve_gf_UnitIsVisibleToPlayer(lv_targetUnit, lv_triggeringPlayer) == true) || (DistanceBetweenPoints(UnitGetPosition(lv_summonedPet), lv_lastKnownLocation) != 0.0))) {
if ((DistanceBetweenPoints(UnitGetPosition(lv_summonedPet), UnitGetPosition(lv_targetUnit)) > 30.0)) {
break;
}
if ((libNtve_gf_UnitIsVisibleToPlayer(lv_targetUnit, lv_triggeringPlayer) == true)) {
UnitIssueOrder(lv_summonedPet, OrderTargetingUnit(AbilityCommand("attack", 0), lv_targetUnit), c_orderQueueReplace);
lv_lastKnownLocation = PointWithOffsetPolar(UnitGetPosition(lv_targetUnit), 2.0, UnitGetFacing(lv_targetUnit));
}
else {
UnitIssueOrder(lv_summonedPet, OrderTargetingPoint(AbilityCommand("move", 0), lv_lastKnownLocation), c_orderQueueReplace);
}
Wait(0.125, c_timeGame);
}
if ((UnitIsAlive(lv_summonedPet) == true)) {
UnitCreateAIThinkTree(lv_summonedPet);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraHydraliskorMutaliskControl_Init () {
libGDHL_gt_HeroZagaraHydraliskorMutaliskControl = TriggerCreate("libGDHL_gt_HeroZagaraHydraliskorMutaliskControl_Func");
TriggerEnable(libGDHL_gt_HeroZagaraHydraliskorMutaliskControl, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroZagaraHydraliskorMutaliskControl, c_playerAny, "SummonHydraliskPersistent");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroZagaraHydraliskorMutaliskControl, c_playerAny, "SummonMutaliskPersistent");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Infested Drop Spawn Roach
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraInfestedDropSpawnRoach_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectPointWithSource(EventPlayerEffectUsedUnit(c_effectUnitCaster), "InfestedDropLaunchTriggeredRoachSpawnMissile", UnitTypePlacementFromPoint(UnitGetType(EventPlayerEffectUsedUnit(c_effectUnitCaster)), UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)), EventPlayerEffectUsedPoint(c_effectLocationTargetPoint), 15.0), c_gameCatalogAbil, "ZagaraInfestedDrop");
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraInfestedDropSpawnRoach_Init () {
libGDHL_gt_HeroZagaraInfestedDropSpawnRoach = TriggerCreate("libGDHL_gt_HeroZagaraInfestedDropSpawnRoach_Func");
TriggerEnable(libGDHL_gt_HeroZagaraInfestedDropSpawnRoach, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroZagaraInfestedDropSpawnRoach, c_playerAny, "InfestedDropRoachSpawnDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Infest Scaling
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraInfestScaling_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_rangedDamageDealtFraction;
int lv_player;
unit lv_zagara;
fixed lv_siegeScore;
fixed lv_modScore;
fixed lv_finalScore;
// Automatic Variable Declarations
// Variable Initialization
lv_rangedDamageDealtFraction = 1.0;
lv_player = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_zagara = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_siegeScore = PlayerScoreValueGetAsFixed(lv_player, "SiegeDamage");
lv_modScore = (lv_siegeScore / 1000.0);
lv_finalScore = (lv_rangedDamageDealtFraction + (Trunc(lv_modScore) / 100.0));
// Actions
if (!runActions) {
return true;
}
if ((CatalogFieldValueGet(c_gameCatalogBehavior, "ZagaraInfestBuff", "Modification.DamageDealtFraction[" + IntToString(c_unitDamageTypeBasic) + "]", lv_player) != FixedToString(lv_finalScore, c_fixedPrecisionAny))) {
CatalogFieldValueSetFixed(c_gameCatalogBehavior, "ZagaraInfestBuff", "Modification.DamageDealtFraction[" + IntToString(c_unitDamageTypeBasic) + "]", lv_player, lv_finalScore);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraInfestScaling_Init () {
libGDHL_gt_HeroZagaraInfestScaling = TriggerCreate("libGDHL_gt_HeroZagaraInfestScaling_Func");
TriggerEnable(libGDHL_gt_HeroZagaraInfestScaling, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroZagaraInfestScaling, c_playerAny, "ZagaraInfestSearch");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Tyrant Maw CDR on Death
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraTyrantMawCDRonDeath_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((PlayerHasTalent(libGame_gf_HeroParticipatedInTakedownKillingPlayer(), "ZagaraMasteryTyrantMaw") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_heroUnit, "DevouringMawTyrantMawMasteryModifyCooldown", libGame_gv_players[libGame_gf_HeroParticipatedInTakedownKillingPlayer()].lv_heroUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraTyrantMawCDRonDeath_Init () {
libGDHL_gt_HeroZagaraTyrantMawCDRonDeath = TriggerCreate("libGDHL_gt_HeroZagaraTyrantMawCDRonDeath_Func");
TriggerEnable(libGDHL_gt_HeroZagaraTyrantMawCDRonDeath, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroZagaraTyrantMawCDRonDeath);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Hunter Killer - Hydralisk Transfusion
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraHunterKillerHydraliskTransfusion_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_zagaraPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_zagaraPlayer = UnitGetOwner(EventUnitTarget());
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_zagaraPlayer, "ZagaraMasteryHydraliskTransfusion") == true))) {
return false;
}
if (!((UnitFilterMatch(EventUnit(), UnitGetOwner(EventUnit()), libCore_gv_filtersHeroic) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((PlayerHasTalent(lv_zagaraPlayer, "ZagaraMasteryGroovedSpines") == true)) {
UnitCreateEffectUnit(EventUnitTarget(), "ZagaraHunterKillerHydraliskTransfusionGroovedSpinesCreateHealer", libGame_gv_players[lv_zagaraPlayer].lv_heroUnit);
}
else {
UnitCreateEffectUnit(EventUnitTarget(), "ZagaraHunterKillerHydraliskTransfusionCreateHealer", libGame_gv_players[lv_zagaraPlayer].lv_heroUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraHunterKillerHydraliskTransfusion_Init () {
libGDHL_gt_HeroZagaraHunterKillerHydraliskTransfusion = TriggerCreate("libGDHL_gt_HeroZagaraHunterKillerHydraliskTransfusion_Func");
TriggerEnable(libGDHL_gt_HeroZagaraHunterKillerHydraliskTransfusion, false);
TriggerAddEventUnitAttacked2(libGDHL_gt_HeroZagaraHunterKillerHydraliskTransfusion, null, "ZagaraHydraliskMelee");
TriggerAddEventUnitAttacked2(libGDHL_gt_HeroZagaraHunterKillerHydraliskTransfusion, null, "ZagaraHydraliskRanged");
TriggerAddEventUnitAttacked2(libGDHL_gt_HeroZagaraHunterKillerHydraliskTransfusion, null, "ZagaraMutaliskWeapon");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zagara - Endless Creep Apply Behavior
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZagaraEndlessCreepApplyBehavior_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_zagaraPlayer;
// Automatic Variable Declarations
unitgroup autoF722F209_g;
int autoF722F209_u;
unit autoF722F209_var;
unitgroup autoF0412A21_g;
int autoF0412A21_u;
unit autoF0412A21_var;
// Variable Initialization
// Conditions
if (testConds) {
if (!((PlayerHasTalent(libGame_gf_HeroGainTalentPlayer(), "ZagaraMasteryEndlessCreep") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_zagaraPlayer = libGame_gf_HeroGainTalentPlayer();
autoF722F209_g = UnitGroup("ZagaraCreepTumorBurrowed", lv_zagaraPlayer, RegionEntireMap(), UnitFilter(0, 0, 0, 0), 0);
autoF722F209_u = UnitGroupCount(autoF722F209_g, c_unitCountAll);
for (;; autoF722F209_u -= 1) {
autoF722F209_var = UnitGroupUnitFromEnd(autoF722F209_g, autoF722F209_u);
if (autoF722F209_var == null) { break; }
if ((UnitHasBehavior2(autoF722F209_var, "ZagaraCreepTumorEndlessCreepLife") == false)) {
UnitCreateEffectUnit(libGame_gv_players[lv_zagaraPlayer].lv_heroUnit, "ZagaraCreepTumorEndlessCreepApplyBehavior", autoF722F209_var);
}
}
autoF0412A21_g = UnitGroup("ZagaraCreepTumor", lv_zagaraPlayer, RegionEntireMap(), UnitFilter(0, 0, 0, 0), 0);
autoF0412A21_u = UnitGroupCount(autoF0412A21_g, c_unitCountAll);
for (;; autoF0412A21_u -= 1) {
autoF0412A21_var = UnitGroupUnitFromEnd(autoF0412A21_g, autoF0412A21_u);
if (autoF0412A21_var == null) { break; }
if ((UnitHasBehavior2(autoF0412A21_var, "ZagaraCreepTumorEndlessCreepLife") == false)) {
UnitCreateEffectUnit(libGame_gv_players[lv_zagaraPlayer].lv_heroUnit, "ZagaraCreepTumorEndlessCreepApplyBehavior", autoF0412A21_var);
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZagaraEndlessCreepApplyBehavior_Init () {
libGDHL_gt_HeroZagaraEndlessCreepApplyBehavior = TriggerCreate("libGDHL_gt_HeroZagaraEndlessCreepApplyBehavior_Func");
TriggerEnable(libGDHL_gt_HeroZagaraEndlessCreepApplyBehavior, false);
libGame_gf_HeroGainTalent(libGDHL_gt_HeroZagaraEndlessCreepApplyBehavior);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zeratul - Shroud of Adun FCT
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZeratulShroudofAdunFCT_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_unit;
int lv_player;
fixed lv_shieldValue;
fixed lv_health;
fixed lv_healthPercentage;
// Automatic Variable Declarations
// Variable Initialization
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_player = UnitGetOwner(lv_unit);
lv_health = UnitGetPropertyFixed(lv_unit, c_unitPropLifeMax, c_unitPropCurrent);
lv_healthPercentage = (lv_health * 0.2);
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_shieldValue = UnitBehaviorDamageModifyRemaining(lv_unit, "ZeratulShroudofAdun");
if ((lv_shieldValue > 0.0)) {
FloatingCombatElementCreateTextAtUnit(PlayerGroupSingle(UnitGetOwner(lv_unit)), "FloatingCombatElements/FloatingCombatLesserAmountReceived", "ShieldState", lv_unit, FixedToText(lv_shieldValue, 0), libNtve_gv_FloatingCombatTextAutoRandomSeed);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZeratulShroudofAdunFCT_Init () {
libGDHL_gt_HeroZeratulShroudofAdunFCT = TriggerCreate("libGDHL_gt_HeroZeratulShroudofAdunFCT_Func");
TriggerEnable(libGDHL_gt_HeroZeratulShroudofAdunFCT, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroZeratulShroudofAdunFCT, c_playerAny, "ZeratulShroudofAdunApplyShield");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroZeratulShroudofAdunFCT, c_playerAny, "ZeratulShroudofAdunApply3Shield");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zeratul - Seeker In The Dark Structure Target
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZeratulSeekerInTheDarkStructureTarget_Func (bool testConds, bool runActions) {
// Variable Declarations
point lv_point;
unit lv_unit;
point lv_unitPoint;
int lv_player;
point lv_newPoint;
// Automatic Variable Declarations
// Variable Initialization
lv_point = EventPlayerEffectUsedPoint(c_effectLocationTargetUnit);
lv_unit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_unitPoint = UnitGetPosition(lv_unit);
lv_player = UnitGetOwner(lv_unit);
// Actions
if (!runActions) {
return true;
}
lv_point = libNtve_gf_PointOffsetTowardsPoint(lv_point, 2.0, lv_unitPoint);
lv_newPoint = UnitTypePlacementFromPoint(UnitGetType(lv_unit), lv_player, lv_point, 5.0);
UnitCreateEffectPoint(lv_unit, "ZeratulSingularitySpikeSeekerInTheDarkTalentTeleport", lv_newPoint);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZeratulSeekerInTheDarkStructureTarget_Init () {
libGDHL_gt_HeroZeratulSeekerInTheDarkStructureTarget = TriggerCreate("libGDHL_gt_HeroZeratulSeekerInTheDarkStructureTarget_Func");
TriggerEnable(libGDHL_gt_HeroZeratulSeekerInTheDarkStructureTarget, false);
TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroZeratulSeekerInTheDarkStructureTarget, c_playerAny, "ZeratulSingularitySpikeSeekerInTheDarkTalentTargetisStructureDummy");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zeratul - Grim Task Proc
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZeratulGrimTaskProc_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_zeratul;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_zeratul = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!((lv_player >= 1))) {
return false;
}
if (!((lv_player <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHasTalent(lv_player, "ZeratulGrimTask") == true))) {
return false;
}
if (!((UnitGetTokenCount(lv_zeratul, CatalogFieldValueGet(c_gameCatalogBehavior, "ZeratulGrimTaskQuestToken", "TokenId", c_playerAny)) < CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "ZeratulGrimTaskQuestToken", "Max", c_playerAny)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_zeratul, "ZeratulGrimTaskModifyQuestToken", lv_zeratul);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZeratulGrimTaskProc_Init () {
libGDHL_gt_HeroZeratulGrimTaskProc = TriggerCreate("libGDHL_gt_HeroZeratulGrimTaskProc_Func");
TriggerEnable(libGDHL_gt_HeroZeratulGrimTaskProc, false);
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_HeroZeratulGrimTaskProc);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zeratul - Void Prison Apply Stasis Overlay
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZeratulVoidPrisonApplyStasisOverlay_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_prisoner;
int lv_prisonerOwner;
// Automatic Variable Declarations
// Variable Initialization
lv_prisoner = EventUnit();
lv_prisonerOwner = UnitGetOwner(lv_prisoner);
// Actions
if (!runActions) {
return true;
}
if ((UnitIsAlive(lv_prisoner) == true) && (UnitTestState(lv_prisoner, c_unitStateHallucination) == false) && (UnitTypeTestAttribute(UnitGetType(lv_prisoner), c_unitAttributeHeroic) == true) && (UnitHasBehavior2(lv_prisoner, "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(lv_prisonerOwner, libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZeratulVoidPrisonApplyStasisOverlay_Init () {
libGDHL_gt_HeroZeratulVoidPrisonApplyStasisOverlay = TriggerCreate("libGDHL_gt_HeroZeratulVoidPrisonApplyStasisOverlay_Func");
TriggerEnable(libGDHL_gt_HeroZeratulVoidPrisonApplyStasisOverlay, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroZeratulVoidPrisonApplyStasisOverlay, null, "VoidPrison", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zeratul - Void Prison Remove Stasis Overlay
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_HeroZeratulVoidPrisonRemoveStasisOverlay_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_prisoner;
int lv_prisonerOwner;
// Automatic Variable Declarations
// Variable Initialization
lv_prisoner = EventUnit();
lv_prisonerOwner = UnitGetOwner(lv_prisoner);
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(lv_prisoner, "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(lv_prisonerOwner, "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_HeroZeratulVoidPrisonRemoveStasisOverlay_Init () {
libGDHL_gt_HeroZeratulVoidPrisonRemoveStasisOverlay = TriggerCreate("libGDHL_gt_HeroZeratulVoidPrisonRemoveStasisOverlay_Func");
TriggerEnable(libGDHL_gt_HeroZeratulVoidPrisonRemoveStasisOverlay, false);
TriggerAddEventUnitBehaviorChange(libGDHL_gt_HeroZeratulVoidPrisonRemoveStasisOverlay, null, "VoidPrison", c_unitBehaviorChangeDeactivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Overdrive Update Mana And AP
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentOverdriveUpdateManaAndAP_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!(((EventUnitBehaviorChange() == c_unitBehaviorChangeActivate) || (EventUnitBehaviorChange() == c_unitBehaviorChangeDeactivate)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGame_gf_UpdateHeroManaCosts(EventUnit());
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentOverdriveUpdateManaAndAP_Init () {
libGDHL_gt_TalentOverdriveUpdateManaAndAP = TriggerCreate("libGDHL_gt_TalentOverdriveUpdateManaAndAP_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_TalentOverdriveUpdateManaAndAP, null, "BucketOverdrive", c_unitBehaviorChangeAny);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Focused Attack Cooldown
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_FocusedAttackCooldown_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_hero;
fixed lv_currentCooldownAmount;
fixed lv_newCooldownAmount;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_hero = EventPlayerEffectUsedUnit(c_effectUnitCaster);
if ((UnitHasBehavior2(lv_hero, "TalentBucketMarksmanCooldown") == true) && (UnitHasBehavior2(lv_hero, "TalentBucketMarksman") == false)) {
lv_currentCooldownAmount = UnitBehaviorDuration(lv_hero, "TalentBucketMarksmanCooldown");
lv_newCooldownAmount = (lv_currentCooldownAmount - 1.0);
UnitBehaviorSetDurationRemaining(lv_hero, "TalentBucketMarksmanCooldown", MaxF(lv_newCooldownAmount, 0.1));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_FocusedAttackCooldown_Init () {
libGDHL_gt_FocusedAttackCooldown = TriggerCreate("libGDHL_gt_FocusedAttackCooldown_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_FocusedAttackCooldown, c_playerAny, "FocusedAttackCooldownReductionDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Ice Block - Overlay On
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentIceBlockOverlayOn_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitIsAlive(EventUnit()) == true) && (UnitTestState(EventUnit(), c_unitStateHallucination) == false) && (UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayAddItemForPlayer(EventPlayer(), libUIUI_ge_FullscreenOverlayPriorities_Stasis, "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentIceBlockOverlayOn_Init () {
libGDHL_gt_TalentIceBlockOverlayOn = TriggerCreate("libGDHL_gt_TalentIceBlockOverlayOn_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_TalentIceBlockOverlayOn, null, "TalentBucketIceBlock", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Ice Block - Overlay Off
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentIceBlockOverlayOff_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitHasBehavior2(EventUnit(), "HeroGenericIgnoreFullscreenOverlay") == false)) {
libUIUI_gf_FullscreenOverlayRemoveItemFromQueueForPlayer(EventPlayer(), "Cutscenes\\GameUI_StasisOverlay.StormCutscene", EventUnitBehavior());
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentIceBlockOverlayOff_Init () {
libGDHL_gt_TalentIceBlockOverlayOff = TriggerCreate("libGDHL_gt_TalentIceBlockOverlayOff_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_TalentIceBlockOverlayOff, null, "TalentBucketIceBlock", c_unitBehaviorChangeDestroy);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Rewind Activate
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentRewindActivate_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itAbility;
unit lv_hero;
int lv_heroIndex;
string lv_abilLink;
string lv_cooldownLink;
fixed lv_currentCooldownAmount;
fixed lv_newCooldownAmount;
string lv_chargeLink;
fixed lv_currentChargeAmount;
fixed lv_newChargeAmount;
// Automatic Variable Declarations
int auto17161144_ae;
const int auto17161144_ai = 1;
// Variable Initialization
lv_cooldownLink = "";
lv_chargeLink = "";
// Actions
if (!runActions) {
return true;
}
lv_hero = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_heroIndex = libCore_gf_GetHeroIndexForUnitType(UnitGetType(lv_hero));
auto17161144_ae = libGame_gv_players[lv_heroIndex].lv_heroData.lv_numberOfAbilities;
lv_itAbility = 1;
for ( ; ( (auto17161144_ai >= 0 && lv_itAbility <= auto17161144_ae) || (auto17161144_ai < 0 && lv_itAbility >= auto17161144_ae) ) ; lv_itAbility += auto17161144_ai ) {
if ((libGame_gv_players[lv_heroIndex].lv_heroData.lv_abilities[lv_itAbility].lv_isAffectedByCooldownReduction == true) && (libGame_gv_players[lv_heroIndex].lv_heroData.lv_abilities[lv_itAbility].lv_isHeroic == false) && (libGame_gv_players[lv_heroIndex].lv_heroData.lv_abilities[lv_itAbility].lv_isTrait == false) && (libGame_gv_players[lv_heroIndex].lv_heroData.lv_abilities[lv_itAbility].lv_isMountReplacement == false)) {
lv_abilLink = libGame_gv_players[lv_heroIndex].lv_heroData.lv_abilities[lv_itAbility].lv_ability;
lv_cooldownLink = CatalogFieldValueGet(c_gameCatalogAbil, lv_abilLink, "Cost[" + IntToString(0) + "].Cooldown.Link", UnitGetOwner(lv_hero));
UnitModifyCooldown(lv_hero, lv_cooldownLink, -60.0, c_cooldownOperationAdd);
if ((libGame_gv_players[lv_heroIndex].lv_heroData.lv_abilities[lv_itAbility].lv_usesCharges == true)) {
lv_chargeLink = CatalogFieldValueGet(c_gameCatalogAbil, lv_abilLink, "Cost[" + IntToString(0) + "].Charge.Link", UnitGetOwner(lv_hero));
UnitAddChargeUsed(lv_hero, lv_chargeLink, -1.0);
}
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentRewindActivate_Init () {
libGDHL_gt_TalentRewindActivate = TriggerCreate("libGDHL_gt_TalentRewindActivate_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_TalentRewindActivate, c_playerAny, "TalentRewindSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Follow Through
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentFollowThrough_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_i;
unit lv_hero;
int lv_heroIndex;
string lv_abilLink;
// Automatic Variable Declarations
const int auto98ECC35E_ae = libCore_gv_dataHeroesMaxAbilitiesPerHero;
const int auto98ECC35E_ai = 1;
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(EventUnit(), "TalentBucketFollowThroughCarryBehavior") == true))) {
return false;
}
if (!((AbilityCommandGetAbility(AbilityCommand("BarbarianShotofFury", 0)) != AbilityCommandGetAbility(EventUnitAbility())))) {
return false;
}
if (!((AbilityCommandGetAbility(AbilityCommand("BarbarianAncientSpear", 0)) != AbilityCommandGetAbility(EventUnitAbility())))) {
return false;
}
if (!((AbilityCommandGetAbility(AbilityCommand("L90ETCPowerslide", 0)) != AbilityCommandGetAbility(EventUnitAbility())))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_hero = EventUnit();
lv_heroIndex = libCore_gf_GetHeroIndexForUnitType(UnitGetType(lv_hero));
lv_i = 1;
for ( ; ( (auto98ECC35E_ai >= 0 && lv_i <= auto98ECC35E_ae) || (auto98ECC35E_ai < 0 && lv_i >= auto98ECC35E_ae) ) ; lv_i += auto98ECC35E_ai ) {
lv_abilLink = libGame_gv_players[lv_heroIndex].lv_heroData.lv_abilities[lv_i].lv_ability;
if ((lv_abilLink == AbilityCommandGetAbility(EventUnitAbility()))) {
UnitBehaviorAdd(lv_hero, "TalentBucketFollowThrough", lv_hero, 1);
break;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentFollowThrough_Init () {
libGDHL_gt_TalentFollowThrough = TriggerCreate("libGDHL_gt_TalentFollowThrough_Func");
TriggerAddEventUnitAbility(libGDHL_gt_TalentFollowThrough, null, null, c_abilEffectStageFinish, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Gathering Power Takedowns
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentGatheringPowerTakedowns_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_unit = libGame_gv_players[lv_player].lv_heroUnit;
// Actions
if (!runActions) {
return true;
}
if (((libGame_gv_players[lv_player].lv_isDead == true) || (UnitHasBehavior2(lv_unit, "TalentGatheringPowerCarry") == false))) {
return true;
}
if ((UnitIsAlive(lv_unit) == true)) {
UnitBehaviorAdd(lv_unit, "TalentGatheringPowerStack", lv_unit, 1);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentGatheringPowerTakedowns_Init () {
libGDHL_gt_TalentGatheringPowerTakedowns = TriggerCreate("libGDHL_gt_TalentGatheringPowerTakedowns_Func");
libGame_gf_HeroParticipatedInTakedown(libGDHL_gt_TalentGatheringPowerTakedowns);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Gathering Power Removal
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentGatheringPowerRemoval_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_killedHero;
int lv_gatheringPowerStacks;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(libGame_gf_HeroKilledUnit(), "TalentGatheringPowerCarry") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_killedHero = libGame_gf_HeroKilledUnit();
lv_gatheringPowerStacks = UnitBehaviorCount(lv_killedHero, "TalentGatheringPowerStack");
lv_gatheringPowerStacks /= 2;
UnitBehaviorRemove(lv_killedHero, "TalentGatheringPowerStack", c_unitBehaviorCountAll);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentGatheringPowerRemoval_Init () {
libGDHL_gt_TalentGatheringPowerRemoval = TriggerCreate("libGDHL_gt_TalentGatheringPowerRemoval_Func");
libGame_gf_HeroKilled(libGDHL_gt_TalentGatheringPowerRemoval);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Scouting Drone Self Revealer
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentScoutingDroneSelfRevealer_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitTarget)) >= 1))) {
return false;
}
if (!((UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitTarget)) <= 12))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(EventPlayerEffectUsedUnit(c_effectUnitTarget), "ScoutingDroneApplySelfRevealer", EventPlayerEffectUsedUnit(c_effectUnitCaster));
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentScoutingDroneSelfRevealer_Init () {
libGDHL_gt_TalentScoutingDroneSelfRevealer = TriggerCreate("libGDHL_gt_TalentScoutingDroneSelfRevealer_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_TalentScoutingDroneSelfRevealer, c_playerAny, "TalentScoutingDroneDummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Apply XP To MULE
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentApplyXPToMULE_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_mULEUnit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_mULEUnit = EventPlayerEffectUsedUnit(c_effectUnitTarget);
libGame_gf_UpdateScalingForUnit(lv_mULEUnit, libGame_gv_scalingTicks, 0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentApplyXPToMULE_Init () {
libGDHL_gt_TalentApplyXPToMULE = TriggerCreate("libGDHL_gt_TalentApplyXPToMULE_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_TalentApplyXPToMULE, c_playerAny, "CalldownMULEApplyTimedLifeBehavior");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Apply XP To Healing Ward
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentApplyXPToHealingWard_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_healingWardUnit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_healingWardUnit = EventUnit();
libGame_gf_UpdateScalingForUnit(lv_healingWardUnit, libGame_gv_scalingTicks, 0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentApplyXPToHealingWard_Init () {
libGDHL_gt_TalentApplyXPToHealingWard = TriggerCreate("libGDHL_gt_TalentApplyXPToHealingWard_Func");
TriggerAddEventUnitBehaviorChange(libGDHL_gt_TalentApplyXPToHealingWard, null, "HealingWardTimedLife", c_unitBehaviorChangeCreate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Bribe - Add Stacks on Cooldown Reset
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentBribeAddStacksonCooldownReset_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_playerHero;
// Automatic Variable Declarations
// Variable Initialization
lv_player = libGame_gf_SpecialCaseTalentCooldownResetPlayer();
lv_playerHero = libGame_gv_players[lv_player].lv_heroUnit;
// Conditions
if (testConds) {
if (!(((UnitHasBehavior2(libGame_gv_players[lv_player].lv_heroUnit, "TalentBribeTalentCarry") == true) || (PlayerHasTalent(libGame_gf_SpecialCaseTalentCooldownResetPlayer(), "BrightwingPixieCharm") == true)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_playerHero, "TalentBribeAdd100Token", lv_playerHero);
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentBribeAddStacksonCooldownReset_Init () {
libGDHL_gt_TalentBribeAddStacksonCooldownReset = TriggerCreate("libGDHL_gt_TalentBribeAddStacksonCooldownReset_Func");
libGame_gf_SpecialCaseTalentCooldownReset(libGDHL_gt_TalentBribeAddStacksonCooldownReset);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Talent - Bribe Camp Respawn Timer Modification
//--------------------------------------------------------------------------------------------------
bool libGDHL_gt_TalentBribeCampRespawnTimerModification_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_campIndex;
// Automatic Variable Declarations
// Variable Initialization
lv_campIndex = libMapM_gf_JungleGetJungleCampForUnit(EventPlayerEffectUsedUnit(c_effectUnitTarget));
// Actions
if (!runActions) {
return true;
}
libMapM_gv_jungleCreepCamps[lv_campIndex].lv_defenderDefendersBribedCount += 1;
return true;
}
//--------------------------------------------------------------------------------------------------
void libGDHL_gt_TalentBribeCampRespawnTimerModification_Init () {
libGDHL_gt_TalentBribeCampRespawnTimerModification = TriggerCreate("libGDHL_gt_TalentBribeCampRespawnTimerModification_Func");
TriggerAddEventPlayerEffectUsed(libGDHL_gt_TalentBribeCampRespawnTimerModification, c_playerAny, "TalentBribeTimeReductionDummy");
}
void libGDHL_InitTriggers () {
libGDHL_gt_IncludeGameDataHelper_Init();
libGDHL_gt_SummonedUnitAPApplication_Init();
libGDHL_gt_SummonedUnitImposingPresenceApplication_Init();
libGDHL_gt_SummonedUnitDamageDealtEnumTargetCasterHandled_Init();
libGDHL_gt_HeroGenericCameraShakeLightTarget_Init();
libGDHL_gt_HeroGenericCameraShakeMediumTarget_Init();
libGDHL_gt_HeroGenericCameraShakeHeavyTarget_Init();
libGDHL_gt_HeroGenericCameraShakeAutoCaster_Init();
libGDHL_gt_HeroGenericCameraShakeLightCaster_Init();
libGDHL_gt_HeroGenericCameraShakeMediumCaster_Init();
libGDHL_gt_HeroGenericCameraShakeHeavyCaster_Init();
libGDHL_gt_HeroGenericSpeedRibbonController_Init();
libGDHL_gt_HeroGenericSlowFXController_Init();
libGDHL_gt_HeroGenericRevealCloakedPeriodicDamageSource_Init();
libGDHL_gt_HeroGenericRevealCloakedOneOffDamageSource_Init();
libGDHL_gt_HeroGenericSuperStealthActivateDeactivate_Init();
libGDHL_gt_HeroAllHeroRespec_Init();
libGDHL_gt_HearthstoneTeleport_Init();
libGDHL_gt_HearthstoneChannelingBuffOn_Init();
libGDHL_gt_HearthstoneChannelingBuffOff_Init();
libGDHL_gt_HearthstoneChannelingBuffCanceled_Init();
libGDHL_gt_HeroicSummonsUnitGainsHeroicSummonBehavior_Init();
libGDHL_gt_HeroAbathurDeepTunnelPing_Init();
libGDHL_gt_HeroAbathurAbathurExitsTransport_Init();
libGDHL_gt_HeroAbathurSymbiote_Init();
libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes_Init();
libGDHL_gt_HeroAbathurSymbioteScreenEffect_Init();
libGDHL_gt_HeroAbathurStabFacer_Init();
libGDHL_gt_HeroAbathurVolatileMutationUltimateEvolution_Init();
libGDHL_gt_HeroAbathurUltimateEvolutionStartControl_Init();
libGDHL_gt_HeroAbathurUltimateEvolutionStopControl_Init();
libGDHL_gt_HeroAbathurUltimateEvolutionGameEnd_Init();
libGDHL_gt_HeroAbathurUltimateEvolutionUnitDead_Init();
libGDHL_gt_HeroAbathurLocustSpawned_Init();
libGDHL_gt_HeroAbathurLocustNestSetFacing_Init();
libGDHL_gt_HeroAbathurLocustNestCast_Init();
libGDHL_gt_HeroAbathurSymbioteHivemindSingleTarget_Init();
libGDHL_gt_HeroAbathurSymbioteHivemindStab_Init();
libGDHL_gt_HeroAbathurMonstrosityDeepTunnelPing_Init();
libGDHL_gt_HeroAbathurMonstrosityAddMinionKillStacks_Init();
libGDHL_gt_HeroAbathurMonstrositySymbioteendHooktoAI_Init();
libGDHL_gt_HeroAbathurMonstrosityDeselectedHooktoAI_Init();
libGDHL_gt_HeroAbathurMonstrosityUnhookAI_Init();
libGDHL_gt_HeroAbathurMonstrosityKillInitialTarget_Init();
libGDHL_gt_HeroAbathurMonstrosityAddSymbioteStacks_Init();
libGDHL_gt_HeroAbathurSymbiotedMonstrositySymbioted_Init();
libGDHL_gt_HeroAbathurSymbioteMinimapIcon_Init();
libGDHL_gt_HeroArtanisProtectorofAiurHeroTakedownProc_Init();
libGDHL_gt_HeroArtanisBladeDashPhasePrismCast_Init();
libGDHL_gt_HeroArtanisTwinBladesZealotChargeTargeting_Init();
libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamSetTarget_Init();
libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamUnitCreated_Init();
libGDHL_gt_HeroArtanisSpearofAdunPurifierBeamRedirectTarget2ElectricBoogaloo_Init();
libGDHL_gt_HeroArthasAntiMagicShellHeal_Init();
libGDHL_gt_HeroArthasArmyoftheDeadLegionofNorthrendTalentSpawn_Init();
libGDHL_gt_HeroArthasArmyoftheDeadNPCDeathProc_Init();
libGDHL_gt_HeroArthasArmyoftheDeadTakedownDeathProc_Init();
libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverDeath_Init();
libGDHL_gt_HeroArthasArmyoftheDeadMinionAITakeoverTransport_Init();
libGDHL_gt_HeroArthasArmyoftheDeadPortGhouls_Init();
libGDHL_gt_HeroArthasArmyoftheDeadGhoulSpawned_Init();
libGDHL_gt_HeroArthasDeathPactTalentTakedownTokenProc_Init();
libGDHL_gt_HeroAnubarakBurrowChargeSuppressCollision_Init();
libGDHL_gt_HeroAnubarakBurrowChargeMaxRange_Init();
libGDHL_gt_HeroAnubarakBurrowChargeCancel_Init();
libGDHL_gt_HeroAnubarakBurrowChargeUnpathableCheck_Init();
libGDHL_gt_HeroAnubarakBeetleJuicedMasterySpecialDeathStateProc_Init();
libGDHL_gt_HeroAnubarakCocoonUnitHit_Init();
libGDHL_gt_HeroAnubarakCocoonSpawned_Init();
libGDHL_gt_HeroAnubarakCocoonSoundEffect_Init();
libGDHL_gt_HeroAnubarakCocoonOn_Init();
libGDHL_gt_HeroAnubarakCocoonOff_Init();
libGDHL_gt_HeroAzmodanSpawned_Init();
libGDHL_gt_HeroAzmodanDemonicInvasionAddUnitstoUnitGroup_Init();
libGDHL_gt_HeroAzmodanDemonicInvasionUnpathableLocation_Init();
libGDHL_gt_HeroAzmodanDemonicInvasionRemoveExistingDemons_Init();
libGDHL_gt_HeroAzmodanAnnihilationStackScoreValues_Init();
libGDHL_gt_HeroAzmodanAnnihilationStackScoreValuesReset_Init();
libGDHL_gt_HeroAzmodanCustomKillVO_Init();
libGDHL_gt_HeroAzmodanGlobeTalentPicked_Init();
libGDHL_gt_HeroAzmodanDemonCreate_Init();
libGDHL_gt_HeroAzmodanDemonGeneralBirthFacing_Init();
libGDHL_gt_HeroSonyaWrathoftheBerserkerBuffDurationExtension_Init();
libGDHL_gt_HeroBarbarianAncientSpearLaunchBarbarianUsed_Init();
libGDHL_gt_HeroBarbarianLeap_Init();
libGDHL_gt_HeroBarbarianLeapRefactor_Init();
libGDHL_gt_HeroBarbarianLeapArreatCraterForcedDestruction_Init();
libGDHL_gt_HeroButcherRuthlessOnslaughtTargetAudioTelegraph_Init();
libGDHL_gt_HeroButcherRuthlessOnslaughtTravelValidation_Init();
libGDHL_gt_HeroButcherRuthlessOnslaughtCast_Init();
libGDHL_gt_HeroButcherRuthlessOnslaughtCancelAnimationHook_Init();
libGDHL_gt_HeroButcherButcherParticipatedInTakedown_Init();
libGDHL_gt_HeroButcherFreshMeatVehiclePickup_Init();
libGDHL_gt_HeroButcherFreshMeatVehicleOccupy_Init();
libGDHL_gt_HeroButcherFreshMeatUpdateStackCounter_Init();
libGDHL_gt_HeroChenWanderingKegActivate_Init();
libGDHL_gt_HeroChenWanderingKegDeactivate_Init();
libGDHL_gt_HeroChenStormEarthFireTimedLifeIncrease_Init();
libGDHL_gt_HeroChenStormEarthAndFireStasis_Init();
libGDHL_gt_HeroChenStormEarthAndFireTimestop_Init();
libGDHL_gt_HeroChenStormEarthAndFireStasisCleanup_Init();
libGDHL_gt_HeroChenStormEarthFireActivatedNew_Init();
libGDHL_gt_HeroChenElementDies_Init();
libGDHL_gt_HeroChenElementFatalDamageResponse_Init();
libGDHL_gt_HeroChenExpirationCleanup_Init();
libGDHL_gt_HeroChenStormEarthFireEarthAbility_Init();
libGDHL_gt_HeroChenSwiftReflexesTalentMissed_Init();
libGDHL_gt_HeroChenFreshestIngredientsTalentProc_Init();
libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModification_Init();
libGDHL_gt_HeroChenStaggerGiftOfTheOxTalentDamageModificationReset_Init();
libGDHL_gt_HeroChenStaggerDamageResponse_Init();
libGDHL_gt_HeroChenStaggerDisplayUpdate_Init();
libGDHL_gt_CrusaderFallingSwordTeleport_Init();
libGDHL_gt_CrusaderFallingSwordFinalSet_Init();
libGDHL_gt_CrusaderFallingSwordSuppressCollision_Init();
libGDHL_gt_HeroDiabloOverpowerSetFacing_Init();
libGDHL_gt_HeroDiabloInfernoBreathCast_Init();
libGDHL_gt_HeroDiabloInfernoBreathEnd_Init();
libGDHL_gt_HeroDiabloEternalSoulstoneRessurection_Init();
libGDHL_gt_HeroDiabloResetEternalSoulstoneRessurection_Init();
libGDHL_gt_HeroDiabloBlackSoulstoneStackTalentPicked_Init();
libGDHL_gt_HeroDemonHunterVaultDamageBuff_Init();
libGDHL_gt_HeroDemonHunterManticoreProc_Init();
libGDHL_gt_HeroDryadLeapingStrikeSetTargetVariable_Init();
libGDHL_gt_HeroDryadLeapingStrikeFindLandingLocation_Init();
libGDHL_gt_HeroDryadLeapingStrikeCreateAttackPersistent_Init();
libGDHL_gt_HeroDryadNaturesToxinHandleApplication_Init();
libGDHL_gt_HeroDryadWispDividingWispDuration_Init();
libGDHL_gt_HeroDryadDanceCancelOrders_Init();
libGDHL_gt_HeroDryadAbolishMagicBehaviorActivate_Init();
libGDHL_gt_HeroDryadAbolishMagicBehaviorDeactivate_Init();
libGDHL_gt_HeroDryadAbolishMagicCCRecognition_Init();
libGDHL_gt_HeroDryadActivateCameraSettings_Init();
libGDHL_gt_HeroDryadDeactivateCameraSettings_Init();
libGDHL_gt_HeroDryadActivateCameraforSymbiote_Init();
libGDHL_gt_HeroDryadLossofControlCamera_Init();
libGDHL_gt_HeroGreymaneGofortheThroatSpecialDeathProcs_Init();
libGDHL_gt_HeroGreymaneActorSoundSwaps_Init();
libGDHL_gt_HeroGreymaneTalentWizenedDuelistDeath_Init();
libGDHL_gt_HeroFaerieDragonPhaseShiftPing_Init();
libGDHL_gt_HeroFaerieDragonPhaseShiftCamera_Init();
libGDHL_gt_HeroFaerieDragonPixieCharmChargeCountProc_Init();
libGDHL_gt_HeroFalstadDishonorableDischargeHeroKillRefreshCooldown_Init();
libGDHL_gt_HeroFalstadFlightPing_Init();
libGDHL_gt_HeroFalstadFlightCameraHeightRestore_Init();
libGDHL_gt_HeroFalstadWingmanVariables_Init();
libGDHL_gt_HeroIllidanApplyFotBCooldownonInventoryUse_Init();
libGDHL_gt_HeroIllidanMetamorphosisAvatarApplyHealthBuff_Init();
libGDHL_gt_HeroIllidanTheHuntNowhereToHideTalentActivate_Init();
libGDHL_gt_HeroIllidanBladesOfAzzinothAddCharge_Init();
libGDHL_gt_HeroIllidanUnendingHatredHeroTakedown_Init();
libGDHL_gt_HeroIllidanUnendingHatredNPCKill_Init();
libGDHL_gt_HeroIllidanMetamorphisisUnendingHatredHearthstoneUsed_Init();
libGDHL_gt_HeroJainaWaterElementalCreated_Init();
libGDHL_gt_HeroJainaWaterElementalCommand_Init();
libGDHL_gt_HeroJainaWaterElementalSummonedUnitSpecialCaseInteraction_Init();
libGDHL_gt_HeroJainaFrostboltWintermuteCast_Init();
libGDHL_gt_HeroJainaConeofColdWintermuteCast_Init();
libGDHL_gt_HeroJainaBlizzardWintermuteCast_Init();
libGDHL_gt_HeroJainaWaterElementalVehicleInitial_Init();
libGDHL_gt_HeroJainaFrostbiteIceblockItem_Init();
libGDHL_gt_HeroJainaFrostbiteQuestReset_Init();
libGDHL_gt_HeroJainaChilledDamageResponse_Init();
libGDHL_gt_HeroJainaFrostbittenCompletionDummy_Init();
libGDHL_gt_HeroJainaImprovedIceBlockOverlayOn_Init();
libGDHL_gt_HeroJainaImprovedIceBlockOverlayOff_Init();
libGDHL_gt_HeroKaelthasPhoenixSpawnSelection_Init();
libGDHL_gt_HeroKaelthasTwinSpheresTalentPickCooldownReset_Init();
libGDHL_gt_HeroKaelthasPyroblastMissileCreated_Init();
libGDHL_gt_HeroKerriganUltraliskSummonUltralisk_Init();
libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbility_Init();
libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilitySummonedUnitSpecialCaseInteraction_Init();
libGDHL_gt_HeroKerriganUltraliskUpdateOrdersOnIssueOrderAbilityPoint_Init();
libGDHL_gt_HeroKerriganUltraliskDies_Init();
libGDHL_gt_HeroKerriganImpalingBladesKineticFulminationTokenTransfer_Init();
libGDHL_gt_HeroETCProgRockTalentRegenGlobeProc_Init();
libGDHL_gt_HeroL90ETCPowerslideTargetCheck_Init();
libGDHL_gt_HeroL90ETCStageDiveTeleportUnit_Init();
libGDHL_gt_HeroL90ETCStageDiveFinalSet_Init();
libGDHL_gt_HeroL90ETCMoshPitOn_Init();
libGDHL_gt_HeroLiLiCloudSerpentTurretSerpentSummonandSimplifiedAI_Init();
libGDHL_gt_HeroLiLiCloudSerpentSummonandSimplifiedAI_Init();
libGDHL_gt_HeroLiLiCloudSerpentAttackMimic_Init();
libGDHL_gt_LeoricSpawn_Init();
libGDHL_gt_HeroLeoricEntombForcedDestruction_Init();
libGDHL_gt_HeroLeoricWraithWalkDevouringMawSpecialCase_Init();
libGDHL_gt_HeroLeoricWraithWalkCast_Init();
libGDHL_gt_LeoricUndyingStart_Init();
libGDHL_gt_LeoricUndyingEnd_Init();
libGDHL_gt_LeoricSwappedDuringUndying_Init();
libGDHL_gt_LeoricUndyingHealingDeathTimerReduction_Init();
libGDHL_gt_LeoricUIInitialize_Init();
libGDHL_gt_LeoricUICleanUpUIForHeroSwap_Init();
libGDHL_gt_LeoricFealtyUntoDeathEnemyNPCProcListener_Init();
libGDHL_gt_LeoricFealtyUntoDeathAlliedNPCProcListener_Init();
libGDHL_gt_HeroLeoricOsseinRenewalTalentGlobeProc_Init();
libGDHL_gt_HeroLeoricShroudOfTheDeadKingFloatingText_Init();
libGDHL_gt_HeroLostVikingsVikingBriberyNPCProcListener_Init();
libGDHL_gt_HeroLostVikingsVikingBriberyUsed_Init();
libGDHL_gt_HeroLostVikingsVikingBriberyScoreReset_Init();
libGDHL_gt_HeroLostVikingsVikingBriberyAddStacksonCooldownReset_Init();
libGDHL_gt_HeroLostVikingsVikingHoard_Init();
libGDHL_gt_HeroLostVikingsSpinToWin_Init();
libGDHL_gt_HeroLostVikingsOlafTheStout_Init();
libGDHL_gt_HeroLostVikingsRespawnTimerExpires_Init();
libGDHL_gt_HeroLostVikingsSpawn_Init();
libGDHL_gt_HeroLostVikingsDebugSwap_Init();
libGDHL_gt_HeroLostVikingsVikingDies_Init();
libGDHL_gt_HeroLostVikingsVikingRemoved_Init();
libGDHL_gt_HeroLostVikingsUnderAttackPing_Init();
libGDHL_gt_HeroLostVikingsUnderAttackUI_Init();
libGDHL_gt_HeroLostVikingsXPGain_Init();
libGDHL_gt_HeroLostVikingsBehaviorTalentGained_Init();
libGDHL_gt_HeroLostVikingsUnitControllerUpdate_Init();
libGDHL_gt_HeroLostVikingsMoonwellRedistribution_Init();
libGDHL_gt_HeroLostVikingsVikingEntersStasis_Init();
libGDHL_gt_HeroLostVikingsVikingsLeavesStasis_Init();
libGDHL_gt_HeroLostVikingsUnitSelected_Init();
libGDHL_gt_HeroLostVikingsUnitDeselected_Init();
libGDHL_gt_HeroLostVikingsUseTransport_Init();
libGDHL_gt_HeroLostVikingsRallyCast_Init();
libGDHL_gt_HeroLostVikingsRallyFinishCancel_Init();
libGDHL_gt_HeroLostVikingsRallySounds_Init();
libGDHL_gt_HeroLostVikingsPlayAgainComplete_Init();
libGDHL_gt_HeroLostVikingsPlayAgainForceGhostFacingPlacement_Init();
libGDHL_gt_HeroLostVikingsCheckpointTimerPauseinTimeStop_Init();
libGDHL_gt_HeroLostVikingsCheckpointReachedTimerCountdown_Init();
libGDHL_gt_HeroLostVikingsCheckpointReachTimerExpires_Init();
libGDHL_gt_HeroLostVikingsLongboatRaidSelection_Init();
libGDHL_gt_HeroLostVikingsLongboatRaidEndsResetControlGroups_Init();
libGDHL_gt_HeroLostVikingsLongboatRaidExpiration_Init();
libGDHL_gt_HeroLostVikingsHideVikingsOn_Init();
libGDHL_gt_HeroLostVikingsAbathurClone_Init();
libGDHL_gt_HeroLostVikingsCloneLongboatRaidSelection_Init();
libGDHL_gt_HeroLostVikingsCloneLongboatRaidExpiration_Init();
libGDHL_gt_LostVikingsUIInitialize_Init();
libGDHL_gt_LostVikingsUIUpdate_Init();
libGDHL_gt_LostVikingsUICleanUpUIForDebugHeroSwap_Init();
libGDHL_gt_LostVikingsConsoleUnitStatusBarsChannelBehaviorAdded_Init();
libGDHL_gt_HeroMalfurionTwilightDreamSilenceTarget_Init();
libGDHL_gt_HeroMalfurionTwilightDreamSilenceEnd_Init();
libGDHL_gt_HeroMalfurionInnervateCDR_Init();
libGDHL_gt_HeroMalfurionTenaciousRootsProc_Init();
libGDHL_gt_HealingBeamUIInitialize_Init();
libGDHL_gt_MedicUIInitialize_Init();
libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOn_Init();
libGDHL_gt_HeroMedicStimDroneFullscreenOverlayOff_Init();
libGDHL_gt_HeroMedicMedivacDropshipCreated_Init();
libGDHL_gt_HeroMedicMedivacDropshipEnRouteOrders_Init();
libGDHL_gt_HeroMedicMedivacDropshipDeathCleanup_Init();
libGDHL_gt_HeroMedicMedivacDropshipLoadEvent_Init();
libGDHL_gt_HeroMedicMedivacDropshipUnloadEvent_Init();
libGDHL_gt_HeroMedicMedivacDropshipRejoinHideMedivacUI_Init();
libGDHL_gt_HeroMedicMedivacDropshipOverlay_Init();
libGDHL_gt_HeroMedicMedivacDropshipCountdownSound_Init();
libGDHL_gt_HeroMedicMedivacBeingBoarded_Init();
libGDHL_gt_HeroMedicMedivacGameOverHide_Init();
libGDHL_gt_HeroMedicHealingBeamTargetActions_Init();
libGDHL_gt_HeroMedicHealingBeamUIReset_Init();
libGDHL_gt_HeroMedicHearthCleanup_Init();
libGDHL_gt_HeroMedicHealingBeamAllyRangeVisibility_Init();
libGDHL_gt_HeroMedicSafeguardVanadiumPlatingTalentProc_Init();
libGDHL_gt_HeroMonkSixthSenseProc_Init();
libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOff_Init();
libGDHL_gt_HeroMonkDeadlyReachPlaystyleUpdateOn_Init();
libGDHL_gt_HeroMonkDivinePalmSetLife_Init();
libGDHL_gt_HeroMonkDivinePalmOverlayOn_Init();
libGDHL_gt_HeroMonkDivinePalmOverlayOff_Init();
libGDHL_gt_HeroMonkSevenSidedStrikeTakeFacing_Init();
libGDHL_gt_HeroMonkSevenSidedStrikeFinishSetFacing_Init();
libGDHL_gt_HeroMonkAbathurUltimateEvolutionClone_Init();
libGDHL_gt_HeroMuradinHaymaker_Init();
libGDHL_gt_HeroMuradinAvatarApplyHealthBuff_Init();
libGDHL_gt_HeroMuradinHaymakerGrandSlamTalentProc_Init();
libGDHL_gt_HeroMuradinItsHammerTimeOnDeathProc_Init();
libGDHL_gt_HeroMuradinFreePiercingStormbolt_Init();
libGDHL_gt_HeroMuradinResetFreePiercingStormbolt_Init();
libGDHL_gt_MurkyUIInitialize_Init();
libGDHL_gt_HeroMurkyMurkyEggDies_Init();
libGDHL_gt_HeroMurkyMurkyDies_Init();
libGDHL_gt_HeroMurkyReviveWhileEggIsAlive_Init();
libGDHL_gt_HeroMurkyCreateEggOnSpawn_Init();
libGDHL_gt_HeroMurkyEggSpawnsChangeDeathSound_Init();
libGDHL_gt_HeroMurkyCleanUpEggUIForDebugHeroSwap_Init();
libGDHL_gt_HeroMurkyAFishyDealVariables_Init();
libGDHL_gt_HeroMurkyAFishyDealChargeCountProc_Init();
libGDHL_gt_HeroMurkyFishEyeDynamicApplication_Init();
libGDHL_gt_HeroMurkyRespawnEggCreated_Init();
libGDHL_gt_HeroNecromancerSkeletonMasteryProc_Init();
libGDHL_gt_HeroNecromancerSkeletonMasterySpawned_Init();
libGDHL_gt_HeroNecromancerSkeletonMasteryMaxCountProc_Init();
libGDHL_gt_HeroNecromancerTrackMortalWoundsDamageReduction_Init();
libGDHL_gt_HeroNecromancerMortalWoundsDebuffController_Init();
libGDHL_gt_HeroNovaCovertMissionTakedown_Init();
libGDHL_gt_HeroNovaCovertMissionVariables_Init();
libGDHL_gt_HeroNovaTripleTapAbilityUsed_Init();
libGDHL_gt_HeroNovaTripleTapMissiles_Init();
libGDHL_gt_HeroNovaTripleTapMissileCleanup_Init();
libGDHL_gt_HeroNovaHoloCloneSpawned_Init();
libGDHL_gt_HeroNovaHoloCloneDamageDuplication_Init();
libGDHL_gt_HeroNovaAntiArmorShellsAttackCooldownController_Init();
libGDHL_gt_HeroRaynorRaynorsBansheeFlyIn_Init();
libGDHL_gt_HeroRaynorRaynorsBansheeFlyOut_Init();
libGDHL_gt_HeroRaynorBansheesCommand_Init();
libGDHL_gt_HeroRaynorBansheeTeleport_Init();
libGDHL_gt_HeroRaynorRemoveBansheeOnEnterVehicle_Init();
libGDHL_gt_HeroRaynorACardToPlayTalentGained_Init();
libGDHL_gt_HeroRaynorACardToPlayHeroTakedown_Init();
libGDHL_gt_HeroRaynorExecuteOrderDeathTimerMod_Init();
libGDHL_gt_HeroRaynorExecuteOrderHyperionActivate_Init();
libGDHL_gt_HeroRehgarTidalWavesModifyCooldown_Init();
libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply_Init();
libGDHL_gt_HeroRehgarTotemicProjectionTalentSaveTotem_Init();
libGDHL_gt_HeroRehgarTotemicProjectionTalentMoveTotem_Init();
libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse_Init();
libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown_Init();
libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase_Init();
libGDHL_gt_HeroRehgarElectricChargeAddLeech_Init();
libGDHL_gt_HeroRehgarElectricChargeLeechProc_Init();
libGDHL_gt_RexxarUIInitialize_Init();
libGDHL_gt_RexxarUICleanupForHeroSwap_Init();
libGDHL_gt_HeroRexxarCleanUpForAbathurUltimateEvolutionClone_Init();
libGDHL_gt_HeroRexxarUnleashtheBoarsCast_Init();
libGDHL_gt_HeroRexxarMishaClearPursuitTargetonUnitDeath_Init();
libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromMishaFocus_Init();
libGDHL_gt_HeroRexxarMishaClearPursuitTargetFromMishaFollow_Init();
libGDHL_gt_HeroRexxarMishaSetPursuitTargetFromAttacks_Init();
libGDHL_gt_HeroRexxarMishaFocusUsed_Init();
libGDHL_gt_HeroRexxarMishaGainsMapMechanicStack_Init();
libGDHL_gt_HeroRexxarMishaChargeDisable_Init();
libGDHL_gt_HeroRexxarMishaMendPetDisable_Init();
libGDHL_gt_HeroRexxarMishaSpawn_Init();
libGDHL_gt_HeroRexxarMishaDance_Init();
libGDHL_gt_HeroRexxarRexxarDies_Init();
libGDHL_gt_HeroRexxarRexxarLosesMapMechanicStacks_Init();
libGDHL_gt_HeroRexxarRemoveMisha_Init();
libGDHL_gt_HeroRexxarRexxarStasisStartIncludesFeignDeath_Init();
libGDHL_gt_HeroRexxarRexxarStasisEndIncludedFeignDeath_Init();
libGDHL_gt_HeroRexxarMishaDies_Init();
libGDHL_gt_HeroRexxarDeselectMishaOnVehicleEnter_Init();
libGDHL_gt_HeroRexxarSelectMishaOnVehicleExit_Init();
libGDHL_gt_HeroRexxarGorgeEnd_Init();
libGDHL_gt_HeroRexxarMishaTeleport_Init();
libGDHL_gt_HeroRexxarMishaUnderworldGateUsed_Init();
libGDHL_gt_HeroRexxarMishaVehicleUsed_Init();
libGDHL_gt_HeroRexxarMishaVehicleDone_Init();
libGDHL_gt_HeroRexxarStuffMishaIntoTransport_Init();
libGDHL_gt_HeroRexxarKickMishaOutOfTransport_Init();
libGDHL_gt_HeroRexxarMishaMountedBehaviorDisabled_Init();
libGDHL_gt_HeroRexxarAliveMishaGrizzledFortitude_Init();
libGDHL_gt_HeroRexxarAliveMishaEasyPrey_Init();
libGDHL_gt_HeroRexxarAliveMishaWildfireBear_Init();
libGDHL_gt_HeroRexxarAliveMishaAnimalHusbandry_Init();
libGDHL_gt_HeroRexxarAliveMishaDireBeast_Init();
libGDHL_gt_HeroRexxarAliveMishaPrimalIntimidation_Init();
libGDHL_gt_HeroRexxarAliveMishaHunterGatherer_Init();
libGDHL_gt_HeroRexxarHunterGathererController_Init();
libGDHL_gt_HeroRexxarThrilloftheHuntProc_Init();
libGDHL_gt_HeroRexxarHardenedSkin_Init();
libGDHL_gt_HeroRexxarBestialWrathSpiritBondBearNecessitiesHealProc_Init();
libGDHL_gt_HeroRexxarChargeCast_Init();
libGDHL_gt_HeroRexxarFeignDeathOverlayOn_Init();
libGDHL_gt_HeroRexxarFeignDeathOverlayOff_Init();
libGDHL_gt_HeroSgtHammerCompleteHearthstone_Init();
libGDHL_gt_HeroSgtHammerSiegeModeUpdate_Init();
libGDHL_gt_HeroSgtHammerBluntForceGunPrepStart_Init();
libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculation_Init();
libGDHL_gt_HeroSgtHammerBluntForceGunTargetCalculationViaEffect_Init();
libGDHL_gt_HeroSgtHammerBluntForceGunCheckForLocation_Init();
libGDHL_gt_HeroSgtHammerBluntForceGunApplyOrbitalScan_Init();
libGDHL_gt_HeroSgtHammerConcussiveBlastCancel_Init();
libGDHL_gt_HeroSgtHammerConcussiveBlastForcedDestruction_Init();
libGDHL_gt_HeroSgtHammerMaelstromRoundsAddCharge_Init();
libGDHL_gt_HeroSgtHammerHearthstoneUsed_Init();
libGDHL_gt_HeroStitchesGiftFromTheEmbalmerDeathTimerReduction_Init();
libGDHL_gt_HeroStitchesHookHookVision_Init();
libGDHL_gt_HeroStitchesHookLaunchTargetUsed_Init();
libGDHL_gt_HeroStitchesGorgeDecreases_Init();
libGDHL_gt_HeroStitchesGorgeActivate_Init();
libGDHL_gt_HeroStitchesGorgeOff_Init();
libGDHL_gt_HeroStitchesFreeFishingHookTalent_Init();
libGDHL_gt_HeroStitchesResetFreeFishingHookTalent_Init();
libGDHL_gt_HeroSylvanasMindControlTargetSelect_Init();
libGDHL_gt_HeroSylvanasMovementCommandForwarding_Init();
libGDHL_gt_HeroSylvanasDarkLadysCallTalentApplyAllyVisionSuppression_Init();
libGDHL_gt_HeroSylvanasDarkLadysCallTalentResetAllyVisionSuppression_Init();
libGDHL_gt_HeroSylvanasMindControlCameraLock_Init();
libGDHL_gt_HeroSylvanasWailingArrowSilenceTarget_Init();
libGDHL_gt_HeroSylvanasWailingArrowDeafeningBlastSilenceTarget_Init();
libGDHL_gt_HeroSylvanasWailingArrowSilenceEnd_Init();
libGDHL_gt_HeroSylvanasWitheringFireHeroKillAddCharge_Init();
libGDHL_gt_HeroSylvanasPossessionRewire_Init();
libGDHL_gt_HeroSylvanasPossessionCatapultMinionModifyChargeCount_Init();
libGDHL_gt_HeroTassadarUpdateDistortionBeamPeriod_Init();
libGDHL_gt_HeroTassadarForceWallForcedDestruction_Init();
libGDHL_gt_HeroTassadarShockRayVision_Init();
libGDHL_gt_ThrallUIInitialize_Init();
libGDHL_gt_ThrallShowFrostwolfResilienceUI_Init();
libGDHL_gt_ThrallGetsStackOfFrostwolfResilience_Init();
libGDHL_gt_ThrallUICleanUpUIForDebugHeroSwap_Init();
libGDHL_gt_ThrallUICleanUpUIForAbathurUltimateEvolutionClone_Init();
libGDHL_gt_ThrallDies_Init();
libGDHL_gt_HeroThrallAncestralWrathHealingDummyUpdate_Init();
libGDHL_gt_HeroThrallAncestralWrathChargeCountProc_Init();
libGDHL_gt_HeroThrallEarthquakeEarthenShieldMasteryShieldApplication_Init();
libGDHL_gt_HeroThrallWorldBreakerForcedDestruction_Init();
libGDHL_gt_HeroTinkerFocusTurretsSetTarget_Init();
libGDHL_gt_HeroTychusRelentlessSoldierTalentProc_Init();
libGDHL_gt_HeroTychusMasterAssassinHeroTakedownProc_Init();
libGDHL_gt_HeroTychusThatsTheStuffOn_Init();
libGDHL_gt_HeroTychusThatsTheStuffDamageTracker_Init();
libGDHL_gt_HeroTychusThatsTheStuffHealPreviewCatalog_Init();
libGDHL_gt_HeroTychusThatsTheStuffOff_Init();
libGDHL_gt_HeroTychusUpdateOrdersOnIssueOrderAbility_Init();
libGDHL_gt_HeroTychusOverkillTargetedRetargetvH16_Init();
libGDHL_gt_HeroTychusOverkillRollingReload_Init();
libGDHL_gt_HeroTyraelSanctificationFacing_Init();
libGDHL_gt_HeroTyraelSanctificationTimerStart_Init();
libGDHL_gt_HeroTyraelArchangelsWrathSuppressCollision_Init();
libGDHL_gt_HeroTyraelArchangelsWrathDeathTimerModification_Init();
libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOn_Init();
libGDHL_gt_HeroTyraelSanctificationFullscreenOverlayOff_Init();
libGDHL_gt_HeroTyrandeElunesChosenSetTarget_Init();
libGDHL_gt_HeroTyrandeElunesChosenDamageProc_Init();
libGDHL_gt_HeroTyrandeEyesOfTheHuntressActivate_Init();
libGDHL_gt_HeroWitchDoctorZombiePrisonKillZombies_Init();
libGDHL_gt_HeroWitchDoctorZombiePrisonRelicZombiesSpawned_Init();
libGDHL_gt_HeroWitchDoctorRavenousSpiritCast_Init();
libGDHL_gt_HeroWitchDoctorRavenousSpiritExpires_Init();
libGDHL_gt_HeroWitchDoctorPassiveTarget_Init();
libGDHL_gt_HeroWitchDoctorBloodRitualHeroTakedownProc_Init();
libGDHL_gt_HeroWitchDoctorGargantuanCreated_Init();
libGDHL_gt_HeroWitchDoctorGargantuanStompUsed_Init();
libGDHL_gt_HeroWitchDoctorVileInfectionTaken_Init();
libGDHL_gt_HeroWitchDoctorThingoftheDeepTaken_Init();
libGDHL_gt_HeroWizardCriticalMassCDReduction_Init();
libGDHL_gt_HeroWizardDominance_Init();
libGDHL_gt_HeroWizardIllusionistDamageCheck_Init();
libGDHL_gt_HeroUtherArmorofFaithProc_Init();
libGDHL_gt_HeroUtherBlessedChampionTargetProc_Init();
libGDHL_gt_HeroUtherBlessedChampionSelfHealingProc_Init();
libGDHL_gt_HeroUtherBlessedChampionDummyProcs_Init();
libGDHL_gt_HeroUtherSpiritofRedemptionCooldownReset_Init();
libGDHL_gt_HeroUtherEternalDevotionSuppressCollision_Init();
libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOn_Init();
libGDHL_gt_HeroUtherDivineShieldFullscreenOverlayOff_Init();
libGDHL_gt_HeroZagaraDevouringMawOverlayOn_Init();
libGDHL_gt_HeroZagaraDevouringMawOverlayOff_Init();
libGDHL_gt_HeroZagaraExitNydusWormUsed_Init();
libGDHL_gt_HeroZagaraNydusWormSpawned_Init();
libGDHL_gt_HeroZagaraNydusWormTargetingState_Init();
libGDHL_gt_HeroZagaraNydusWormDies_Init();
libGDHL_gt_HeroZagaraNydusWormDiesUpdateLineofSuccession_Init();
libGDHL_gt_HeroZagaraNydusWormExitAnimation_Init();
libGDHL_gt_HeroZagaraBanelingBarrage_Init();
libGDHL_gt_HeroZagaraHydraliskorMutaliskControl_Init();
libGDHL_gt_HeroZagaraInfestedDropSpawnRoach_Init();
libGDHL_gt_HeroZagaraInfestScaling_Init();
libGDHL_gt_HeroZagaraTyrantMawCDRonDeath_Init();
libGDHL_gt_HeroZagaraHunterKillerHydraliskTransfusion_Init();
libGDHL_gt_HeroZagaraEndlessCreepApplyBehavior_Init();
libGDHL_gt_HeroZeratulShroudofAdunFCT_Init();
libGDHL_gt_HeroZeratulSeekerInTheDarkStructureTarget_Init();
libGDHL_gt_HeroZeratulGrimTaskProc_Init();
libGDHL_gt_HeroZeratulVoidPrisonApplyStasisOverlay_Init();
libGDHL_gt_HeroZeratulVoidPrisonRemoveStasisOverlay_Init();
libGDHL_gt_TalentOverdriveUpdateManaAndAP_Init();
libGDHL_gt_FocusedAttackCooldown_Init();
libGDHL_gt_TalentIceBlockOverlayOn_Init();
libGDHL_gt_TalentIceBlockOverlayOff_Init();
libGDHL_gt_TalentRewindActivate_Init();
libGDHL_gt_TalentFollowThrough_Init();
libGDHL_gt_TalentGatheringPowerTakedowns_Init();
libGDHL_gt_TalentGatheringPowerRemoval_Init();
libGDHL_gt_TalentScoutingDroneSelfRevealer_Init();
libGDHL_gt_TalentApplyXPToMULE_Init();
libGDHL_gt_TalentApplyXPToHealingWard_Init();
libGDHL_gt_TalentBribeAddStacksonCooldownReset_Init();
libGDHL_gt_TalentBribeCampRespawnTimerModification_Init();
}
//--------------------------------------------------------------------------------------------------
// Library Initialization
//--------------------------------------------------------------------------------------------------
bool libGDHL_InitLib_completed = false;
void libGDHL_InitLib () {
if (libGDHL_InitLib_completed) {
return;
}
libGDHL_InitLib_completed = true;
libGDHL_InitLibraries();
libGDHL_InitVariables();
libGDHL_InitTriggers();
}
include "TriggerLibs/HeroesLib"
include "TriggerLibs/GameLib"
include "TriggerLibs/MapMechanicsLib"
include "TriggerLibs/AILib"
include "TriggerLibs/UILib"
include "TriggerLibs/StartingExperienceLib"
include "TriggerLibs/SoundLib"
include "TriggerLibs/SupportLib"