include "TriggerLibs/NativeLib"
include "TriggerLibs/HeroesLib"
include "TriggerLibs/GameLib"
include "TriggerLibs/UILib"
include "TriggerLibs/SoundLib"
include "LibHZUL_h"
//--------------------------------------------------------------------------------------------------
// Library: Zul'jin
//--------------------------------------------------------------------------------------------------
// External Library Initialization
void libHZUL_InitLibraries () {
libNtve_InitVariables();
libCore_InitVariables();
libGame_InitVariables();
libUIUI_InitVariables();
libSond_InitVariables();
}
// Variable Initialization
bool libHZUL_InitVariables_completed = false;
void libHZUL_InitVariables () {
int init_i;
if (libHZUL_InitVariables_completed) {
return;
}
libHZUL_InitVariables_completed = true;
libHZUL_gv_zuljinUI.lv_mainPanel = c_invalidDialogControlId;
libHZUL_gv_zuljinUI.lv_traitPanel = c_invalidDialogControlId;
libHZUL_gv_zuljinUI.lv_berserkerValueLabel = c_invalidDialogControlId;
libHZUL_gv_zuljinUI.lv_guillotineDamageLabel = c_invalidDialogControlId;
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libHZUL_gv_heroZuljinHeadhunterUnitGroupVictims[init_i] = UnitGroupEmpty();
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
libHZUL_gv_heroZuljinHeadhunterUnitGroupHitList[init_i] = UnitGroupEmpty();
}
}
// Functions
void libHZUL_gf_HeroZuljinIncrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libHZUL_gv_heroZuljinTriggerRegistrationVariable += 1;
if ((libHZUL_gv_heroZuljinTriggerRegistrationVariable == 1)) {
TriggerEnable(libHZUL_gt_HeroZuljinPlayerSetup, true);
TriggerEnable(libHZUL_gt_HeroZuljinUICleanUpGuillotine, true);
TriggerEnable(libHZUL_gt_HeroZuljinBerserkerSetLifeTo1, true);
TriggerEnable(libHZUL_gt_HeroZuljinGuillotineCastModifyDamage, true);
TriggerEnable(libHZUL_gt_HeroZuljinGuillotineTalentSelected, true);
TriggerEnable(libHZUL_gt_HeroZuljinGuillotineVODeadKill, true);
TriggerEnable(libHZUL_gt_HeroZuljinAmaniRageCast, true);
TriggerEnable(libHZUL_gt_HeroZuljinHeadhunterSelected, true);
TriggerEnable(libHZUL_gt_HeroZuljinHeadhunterProgress, true);
TriggerEnable(libHZUL_gt_HeroZuljinHeadhunterRespec, true);
TriggerEnable(libHZUL_gt_HeroZuljinLetTheKillingBeginRefreshDuration, true);
TriggerEnable(libHZUL_gt_HeroZuljinLetTheKillingBeginHeroTakedown, true);
TriggerEnable(libHZUL_gt_HeroZuljinFerocityUpdateAccumulator, true);
TriggerEnable(libHZUL_gt_HeroZuljinFerocityRespec, true);
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceOn, true);
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceHealPreviewCatalog, true);
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceOff, true);
TriggerEnable(libHZUL_gt_HeroZuljinYouWantAxeScoreValue, true);
TriggerEnable(libHZUL_gt_HeroZuljinYouWantAxeScoreValueReset, true);
TriggerEnable(libHZUL_gt_HeroZuljinYouWantAxeDeathReduction, true);
}
}
void libHZUL_gf_HeroZuljinDecrementHeroCountFunction () {
// Automatic Variable Declarations
// Implementation
libHZUL_gv_heroZuljinTriggerRegistrationVariable -= 1;
if ((libHZUL_gv_heroZuljinTriggerRegistrationVariable < 0)) {
libHZUL_gv_heroZuljinTriggerRegistrationVariable = 0;
}
if ((libHZUL_gv_heroZuljinTriggerRegistrationVariable == 0)) {
TriggerEnable(libHZUL_gt_HeroZuljinPlayerSetup, false);
TriggerEnable(libHZUL_gt_HeroZuljinUICleanUpGuillotine, false);
TriggerEnable(libHZUL_gt_HeroZuljinBerserkerSetLifeTo1, false);
TriggerEnable(libHZUL_gt_HeroZuljinGuillotineCastModifyDamage, false);
TriggerEnable(libHZUL_gt_HeroZuljinGuillotineTalentSelected, false);
TriggerEnable(libHZUL_gt_HeroZuljinGuillotineVODeadKill, false);
TriggerEnable(libHZUL_gt_HeroZuljinAmaniRageCast, false);
TriggerEnable(libHZUL_gt_HeroZuljinHeadhunterSelected, false);
TriggerEnable(libHZUL_gt_HeroZuljinHeadhunterProgress, false);
TriggerEnable(libHZUL_gt_HeroZuljinHeadhunterRespec, false);
TriggerEnable(libHZUL_gt_HeroZuljinLetTheKillingBeginRefreshDuration, false);
TriggerEnable(libHZUL_gt_HeroZuljinLetTheKillingBeginHeroTakedown, false);
TriggerEnable(libHZUL_gt_HeroZuljinFerocityUpdateAccumulator, false);
TriggerEnable(libHZUL_gt_HeroZuljinFerocityRespec, false);
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceOn, false);
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceHealPreviewCatalog, false);
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceOff, false);
TriggerEnable(libHZUL_gt_HeroZuljinYouWantAxeScoreValue, false);
TriggerEnable(libHZUL_gt_HeroZuljinYouWantAxeScoreValueReset, false);
TriggerEnable(libHZUL_gt_HeroZuljinYouWantAxeDeathReduction, false);
}
}
void libHZUL_gf_HeroZuljinUpdateGuillotineStatusFrame (int lp_player, fixed lp_damage, fixed lp_healthPercentage) {
// Variable Declarations
text lv_textStyle;
text lv_text;
// Automatic Variable Declarations
// Variable Initialization
lv_textStyle = StringExternal("Param/Value/lib_HZUL_F6EBF598");
lv_text = FixedToText(lp_damage, 0);
// Implementation
libNtve_gf_SetDialogItemText(libHZUL_gv_zuljinUI.lv_guillotineDamageLabel, (lv_textStyle + lv_text + StringExternal("Param/Value/lib_HZUL_57570935")), libCore_gv_playerGroupFromPlayer[lp_player]);
}
trigger auto_libHZUL_gf_ZuljinGuillotineDamageMonitor_Trigger = null;
int auto_libHZUL_gf_ZuljinGuillotineDamageMonitor_lp_player;
void libHZUL_gf_ZuljinGuillotineDamageMonitor (int lp_player) {
auto_libHZUL_gf_ZuljinGuillotineDamageMonitor_lp_player = lp_player;
if (auto_libHZUL_gf_ZuljinGuillotineDamageMonitor_Trigger == null) {
auto_libHZUL_gf_ZuljinGuillotineDamageMonitor_Trigger = TriggerCreate("auto_libHZUL_gf_ZuljinGuillotineDamageMonitor_TriggerFunc");
}
TriggerExecute(auto_libHZUL_gf_ZuljinGuillotineDamageMonitor_Trigger, false, false);
}
bool auto_libHZUL_gf_ZuljinGuillotineDamageMonitor_TriggerFunc (bool testConds, bool runActions) {
int lp_player = auto_libHZUL_gf_ZuljinGuillotineDamageMonitor_lp_player;
// Variable Declarations
fixed lv_zuljinLife;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
while (true) {
lv_zuljinLife = UnitGetPropertyFixed(libGame_gv_players[lp_player].lv_heroUnit, c_unitPropLifePercent, c_unitPropCurrent);
libHZUL_gv_heroZuljinGuillotineTotalDamage[lp_player] = libHZUL_gf_HeroZuljinGuillotineCalculateDamageBonus(lp_player, lv_zuljinLife, CatalogFieldValueGetAsFixed(c_gameCatalogEffect, "ZuljinGuillotineBaseDamage", "Amount", lp_player));
libHZUL_gf_HeroZuljinUpdateGuillotineStatusFrame(lp_player, libHZUL_gv_heroZuljinGuillotineTotalDamage[lp_player], lv_zuljinLife);
Wait(0.25, c_timeGame);
}
return true;
}
fixed libHZUL_gf_HeroZuljinGuillotineCalculateDamageBonus (int lp_player, fixed lp_life, fixed lp_guillotineBaseDamage) {
// Variable Declarations
fixed lv_maxDamageMultiplier;
fixed lv_minDamageMultiplier;
fixed lv_maxLifePercentage;
fixed lv_minLifePercentage;
fixed lv_leadingCoefficient;
fixed lv_quadraticEquation;
// Automatic Variable Declarations
// Variable Initialization
lv_maxDamageMultiplier = 3.0;
lv_minDamageMultiplier = 1.0;
lv_maxLifePercentage = 100.0;
// Implementation
if ((lp_life < lv_maxLifePercentage)) {
lv_leadingCoefficient = (lv_maxDamageMultiplier - lv_minDamageMultiplier);
lv_quadraticEquation = (((lv_leadingCoefficient * Pow((lp_life - lv_maxLifePercentage), 2.0)) / Pow((lv_minLifePercentage - lv_maxLifePercentage), 2.0)) + lv_minDamageMultiplier);
return (lp_guillotineBaseDamage * lv_quadraticEquation);
}
else {
return lp_guillotineBaseDamage;
}
}
// Triggers
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Player Setup
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinPlayerSetup_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(libGame_gv_players[libGame_gf_HeroSpawnPlayer()].lv_heroUnit) == "HeroZuljin"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libHZUL_gf_ZuljinGuillotineDamageMonitor(libGame_gf_HeroSpawnPlayer());
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinPlayerSetup_Init () {
libHZUL_gt_HeroZuljinPlayerSetup = TriggerCreate("libHZUL_gt_HeroZuljinPlayerSetup_Func");
TriggerEnable(libHZUL_gt_HeroZuljinPlayerSetup, false);
libGame_gf_HeroSpawn(libHZUL_gt_HeroZuljinPlayerSetup);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - UI Initialize
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinUIInitialize_Func (bool testConds, bool runActions) {
int init_i;
// Variable Declarations
int[6] lv_panel;
int lv_currentPanelLayer;
// Automatic Variable Declarations
// Variable Initialization
for (init_i = 0; init_i <= 5; init_i += 1) {
lv_panel[init_i] = c_invalidDialogControlId;
}
// Actions
if (!runActions) {
return true;
}
DialogControlHookup(libUIUI_gv_heroSpecificStatusContainer, c_triggerControlTypePanel, "ZuljinTraitFrame");
libHZUL_gv_zuljinUI.lv_mainPanel = DialogControlLastCreated();
lv_currentPanelLayer += 1;
lv_panel[lv_currentPanelLayer] = DialogControlLastCreated();
DialogControlHookup(lv_panel[lv_currentPanelLayer], c_triggerControlTypeLabel, "UnitStatusFrame0/ZuljinGuillotineValueLabel");
libHZUL_gv_zuljinUI.lv_guillotineDamageLabel = DialogControlLastCreated();
DialogControlSetVisible(libHZUL_gv_zuljinUI.lv_guillotineDamageLabel, PlayerGroupAll(), false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinUIInitialize_Init () {
libHZUL_gt_HeroZuljinUIInitialize = TriggerCreate("libHZUL_gt_HeroZuljinUIInitialize_Func");
libCore_gf_IncludeModInitialization(libHZUL_gt_HeroZuljinUIInitialize);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - UI Clean Up - Guillotine
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinUICleanUpGuillotine_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
DialogControlSetVisible(libHZUL_gv_zuljinUI.lv_guillotineDamageLabel, libCore_gv_playerGroupFromPlayer[libGame_gf_HeroRespecsTalentsPlayer()], false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinUICleanUpGuillotine_Init () {
libHZUL_gt_HeroZuljinUICleanUpGuillotine = TriggerCreate("libHZUL_gt_HeroZuljinUICleanUpGuillotine_Func");
TriggerEnable(libHZUL_gt_HeroZuljinUICleanUpGuillotine, false);
libGame_gf_HeroRespecsTalents(libHZUL_gt_HeroZuljinUICleanUpGuillotine);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - You Want Axe Score Value
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinYouWantAxeScoreValue_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_caster;
int lv_player;
fixed lv_scoreValue;
// Automatic Variable Declarations
// Variable Initialization
lv_caster = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_player = UnitGetOwner(lv_caster);
lv_scoreValue = ((UnitGetTokenCount(lv_caster, "ZuljinYouWantAxeQuestMainToken") * CatalogFieldValueGetAsFixed(c_gameCatalogBehavior, "ZuljinYouWantAxeQuestMiniProgressToken", "Max", lv_player)) + UnitGetTokenCount(lv_caster, "ZuljinYouWantAxeQuestMiniProgressToken"));
// Conditions
if (testConds) {
if (!((lv_scoreValue <= (CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "ZuljinYouWantAxeQuestMainToken", "ConditionalEvents[" + IntToString(1) + "].CompareValue", 0) * CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "ZuljinYouWantAxeQuestMiniProgressToken", "Max", 0))))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PlayerScoreValueSetFromFixed(lv_player, "ZuljinYouWantAxeScoreValue", lv_scoreValue);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinYouWantAxeScoreValue_Init () {
libHZUL_gt_HeroZuljinYouWantAxeScoreValue = TriggerCreate("libHZUL_gt_HeroZuljinYouWantAxeScoreValue_Func");
TriggerEnable(libHZUL_gt_HeroZuljinYouWantAxeScoreValue, false);
TriggerAddEventPlayerEffectUsed(libHZUL_gt_HeroZuljinYouWantAxeScoreValue, c_playerAny, "ZuljinYouWantAxeQuestIncrementMiniProgressToken");
TriggerAddEventPlayerEffectUsed(libHZUL_gt_HeroZuljinYouWantAxeScoreValue, c_playerAny, "ZuljinTwinCleaveWrongPlaceWrongTimeModifyToken");
TriggerAddEventPlayerEffectUsed(libHZUL_gt_HeroZuljinYouWantAxeScoreValue, c_playerAny, "YouWantAxeQuestDecreaseDeath");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - You Want Axe Score Value Reset
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinYouWantAxeScoreValueReset_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) == "HeroZuljin"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PlayerScoreValueSetFromFixed(lv_player, "ZuljinYouWantAxeScoreValue", 0.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinYouWantAxeScoreValueReset_Init () {
libHZUL_gt_HeroZuljinYouWantAxeScoreValueReset = TriggerCreate("libHZUL_gt_HeroZuljinYouWantAxeScoreValueReset_Func");
TriggerEnable(libHZUL_gt_HeroZuljinYouWantAxeScoreValueReset, false);
TriggerAddEventUnitCreated(libHZUL_gt_HeroZuljinYouWantAxeScoreValueReset, null, null, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Berserker - Set Life To 1
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinBerserkerSetLifeTo1_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_itUnit = libGame_gv_players[EventPlayer()].lv_heroUnit;
// Conditions
if (testConds) {
if (!((UnitGetPropertyFixed(lv_itUnit, c_unitPropLife, c_unitPropCurrent) < 5.0))) {
return false;
}
if (!((UnitHasBehavior2(lv_itUnit, "ZuljinBerserkerActive") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitSetPropertyFixed(lv_itUnit, c_unitPropLife, 1.0);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinBerserkerSetLifeTo1_Init () {
libHZUL_gt_HeroZuljinBerserkerSetLifeTo1 = TriggerCreate("libHZUL_gt_HeroZuljinBerserkerSetLifeTo1_Func");
TriggerEnable(libHZUL_gt_HeroZuljinBerserkerSetLifeTo1, false);
TriggerAddEventPlayerEffectUsed(libHZUL_gt_HeroZuljinBerserkerSetLifeTo1, c_playerAny, "ZuljinBerserkerSetLifeTo1DummySet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Trigger: Hero - Zul'jin - You Want Axe Death Reduction
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinYouWantAxeDeathReduction_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_heroKilledUnit;
fixed lv_youWantAxeMainStacks;
fixed lv_youWantAxeMiniStacks;
int lv_firstMilestoneValue;
int lv_secondMilestoneValue;
int lv_reductionPerDeath;
// Automatic Variable Declarations
// Variable Initialization
lv_heroKilledUnit = libGame_gf_HeroKilledUnit();
lv_firstMilestoneValue = CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "ZuljinYouWantAxeQuestMainToken", "ConditionalEvents[" + IntToString(0) + "].CompareValue", c_playerAny);
lv_secondMilestoneValue = CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "ZuljinYouWantAxeQuestMainToken", "ConditionalEvents[" + IntToString(1) + "].CompareValue", c_playerAny);
lv_reductionPerDeath = AbsI(CatalogFieldValueGetAsInt(c_gameCatalogEffect, "YouWantAxeQuestDecreaseDeath", "Value", c_playerAny));
// Conditions
if (testConds) {
if (!((UnitGetType(lv_heroKilledUnit) == "HeroZuljin"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_youWantAxeMainStacks = UnitGetTokenCount(lv_heroKilledUnit, "ZuljinYouWantAxeQuestMainToken");
lv_youWantAxeMiniStacks = UnitGetTokenCount(lv_heroKilledUnit, "ZuljinYouWantAxeQuestMiniProgressToken");
if ((((lv_youWantAxeMainStacks >= 0) && (lv_youWantAxeMainStacks <= (0 + (lv_reductionPerDeath - 1)))) || ((lv_youWantAxeMainStacks >= lv_firstMilestoneValue) && (lv_youWantAxeMainStacks <= (0 + (lv_reductionPerDeath - 1)))) || ((lv_youWantAxeMainStacks >= lv_secondMilestoneValue) && (lv_youWantAxeMainStacks <= (0 + (lv_reductionPerDeath - 1)))))) {
UnitCreateEffectUnit(lv_heroKilledUnit, "ZuljinYouWantAxeQuestResetMiniProgressToken", lv_heroKilledUnit);
}
UnitCreateEffectUnit(lv_heroKilledUnit, "YouWantAxeQuestDecreaseDeath", lv_heroKilledUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinYouWantAxeDeathReduction_Init () {
libHZUL_gt_HeroZuljinYouWantAxeDeathReduction = TriggerCreate("libHZUL_gt_HeroZuljinYouWantAxeDeathReduction_Func");
TriggerEnable(libHZUL_gt_HeroZuljinYouWantAxeDeathReduction, false);
libGame_gf_HeroKilled(libHZUL_gt_HeroZuljinYouWantAxeDeathReduction);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Guillotine - Cast Modify Damage
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinGuillotineCastModifyDamage_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_zuljinPlayer;
fixed lv_guillotineDamage;
// Automatic Variable Declarations
// Variable Initialization
lv_zuljinPlayer = EventPlayer();
lv_guillotineDamage = libHZUL_gv_heroZuljinGuillotineTotalDamage[lv_zuljinPlayer];
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSetFixed(c_gameCatalogEffect, "ZuljinGuillotineDamage", "Amount", lv_zuljinPlayer, lv_guillotineDamage);
CatalogFieldValueSetFixed(c_gameCatalogEffect, "ZuljinGuillotineBuzzsawDamage", "Amount", lv_zuljinPlayer, lv_guillotineDamage);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinGuillotineCastModifyDamage_Init () {
libHZUL_gt_HeroZuljinGuillotineCastModifyDamage = TriggerCreate("libHZUL_gt_HeroZuljinGuillotineCastModifyDamage_Func");
TriggerEnable(libHZUL_gt_HeroZuljinGuillotineCastModifyDamage, false);
TriggerAddEventPlayerEffectUsed(libHZUL_gt_HeroZuljinGuillotineCastModifyDamage, c_playerAny, "ZuljinGuillotineInitialSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Guillotine - Talent Selected
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinGuillotineTalentSelected_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((libGame_gf_HeroGainTalentGainedTalent() == "ZuljinGuillotine"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
DialogControlSetVisible(libHZUL_gv_zuljinUI.lv_guillotineDamageLabel, PlayerGroupSingle(libGame_gf_HeroGainTalentPlayer()), true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinGuillotineTalentSelected_Init () {
libHZUL_gt_HeroZuljinGuillotineTalentSelected = TriggerCreate("libHZUL_gt_HeroZuljinGuillotineTalentSelected_Func");
TriggerEnable(libHZUL_gt_HeroZuljinGuillotineTalentSelected, false);
libGame_gf_HeroGainTalent(libHZUL_gt_HeroZuljinGuillotineTalentSelected);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Guillotine - VO Dead Kill
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinGuillotineVODeadKill_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) == "HeroZuljin"))) {
return false;
}
if (!((libGame_gv_players[lv_killingPlayer].lv_isDead == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_killingEffect = libGame_gv_deathRecap_DeathData[lv_deadPlayer].lv_effectBars[1].lv_effect;
if (((lv_killingEffect == "ZuljinGuillotineDamage") || (lv_killingEffect == "ZuljinGuillotineBuzzsawDamage"))) {
lv_speakingPlayer = lv_killingPlayer;
lv_killLine = ("ZuljinBase_DeadGuillotine");
}
libSond_gf_HeroVOPlayKillLine((lv_killLine), lv_speakingPlayer, lv_killingPlayer);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinGuillotineVODeadKill_Init () {
libHZUL_gt_HeroZuljinGuillotineVODeadKill = TriggerCreate("libHZUL_gt_HeroZuljinGuillotineVODeadKill_Func");
TriggerEnable(libHZUL_gt_HeroZuljinGuillotineVODeadKill, false);
libGame_gf_CustomKillVO(libHZUL_gt_HeroZuljinGuillotineVODeadKill);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Amani Rage Cast
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinAmaniRageCast_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_zuljinPlayer;
unit lv_zuljinUnit;
fixed lv_currentHealth;
int lv_amaniRagePeriodCount;
// Automatic Variable Declarations
// Variable Initialization
lv_zuljinPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
lv_zuljinUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_currentHealth = (UnitGetPropertyFixed(lv_zuljinUnit, c_unitPropLife, c_unitPropCurrent) / 2.0);
lv_amaniRagePeriodCount = CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "ZuljinAmaniRageHealBuff", "PeriodCount", lv_zuljinPlayer);
// Actions
if (!runActions) {
return true;
}
UnitSetPropertyFixed(lv_zuljinUnit, c_unitPropLife, lv_currentHealth);
CatalogFieldValueModifyFixed(c_gameCatalogEffect, "ZuljinAmaniRageCreateHealer", "RechargeVitalRate", lv_zuljinPlayer, (lv_currentHealth / lv_amaniRagePeriodCount), c_upgradeOperationSet);
if ((UnitGetType(libGame_gv_players[lv_zuljinPlayer].lv_heroUnit) == "HeroZuljin")) {
libHZUL_gv_heroZuljinGuillotineTotalDamage[lv_zuljinPlayer] = libHZUL_gf_HeroZuljinGuillotineCalculateDamageBonus(lv_zuljinPlayer, UnitGetPropertyFixed(lv_zuljinUnit, c_unitPropLifePercent, c_unitPropCurrent), CatalogFieldValueGetAsFixed(c_gameCatalogEffect, "ZuljinGuillotineBaseDamage", "Amount", lv_zuljinPlayer));
libHZUL_gf_HeroZuljinUpdateGuillotineStatusFrame(lv_zuljinPlayer, libHZUL_gv_heroZuljinGuillotineTotalDamage[lv_zuljinPlayer], UnitGetPropertyFixed(lv_zuljinUnit, c_unitPropLifePercent, c_unitPropCurrent));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinAmaniRageCast_Init () {
libHZUL_gt_HeroZuljinAmaniRageCast = TriggerCreate("libHZUL_gt_HeroZuljinAmaniRageCast_Func");
TriggerEnable(libHZUL_gt_HeroZuljinAmaniRageCast, false);
TriggerAddEventPlayerEffectUsed(libHZUL_gt_HeroZuljinAmaniRageCast, c_playerAny, "ZuljinAmaniRageInitialSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Headhunter - Selected
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinHeadhunterSelected_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_zuljinPlayer;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((libGame_gf_HeroGainTalentGainedTalent() == "ZuljinHeadhunter"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_zuljinPlayer = libGame_gf_HeroGainTalentPlayer();
while ((TimerGetRemaining(libGame_gv_openTheGatesTimer) >= 30.0)) {
Wait(1.0, c_timeGame);
}
UnitGroupAddUnitGroup(libHZUL_gv_heroZuljinHeadhunterUnitGroupHitList[lv_zuljinPlayer], libGame_gv_players_Heroes_AllTrackedHeroesForTeam[libGame_gf_EnemyTeamNumberOfPlayer(lv_zuljinPlayer)]);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinHeadhunterSelected_Init () {
libHZUL_gt_HeroZuljinHeadhunterSelected = TriggerCreate("libHZUL_gt_HeroZuljinHeadhunterSelected_Func");
TriggerEnable(libHZUL_gt_HeroZuljinHeadhunterSelected, false);
libGame_gf_HeroGainTalent(libHZUL_gt_HeroZuljinHeadhunterSelected);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Headhunter - Progress
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinHeadhunterProgress_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_zuljinPlayer;
unit lv_unit;
int lv_zuljinEnemyTeam;
unit lv_killedHero;
int lv_itPlayer;
unit lv_itUnit;
int lv_itViking;
// Automatic Variable Declarations
unitgroup auto9A196AC6_g;
int auto9A196AC6_u;
// Variable Initialization
lv_zuljinPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_unit = libGame_gv_players[lv_zuljinPlayer].lv_heroUnit;
lv_zuljinEnemyTeam = libGame_gf_EnemyTeamNumberOfPlayer(lv_zuljinPlayer);
lv_killedHero = libGame_gf_HeroParticipatedInTakedownKilledHero();
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_zuljinPlayer, "ZuljinHeadhunter") == true))) {
return false;
}
if (!((UnitGroupHasUnit(libHZUL_gv_heroZuljinHeadhunterUnitGroupVictims[lv_zuljinPlayer], lv_killedHero) == false))) {
return false;
}
if (!((UnitGroupHasUnit(libGame_gv_players_Heroes_AllTrackedHeroesForTeam[lv_zuljinEnemyTeam], lv_killedHero) == true))) {
return false;
}
if (!((UnitGroupCount(libHZUL_gv_heroZuljinHeadhunterUnitGroupVictims[lv_zuljinPlayer], c_unitCountAll) != UnitGroupCount(libGame_gv_players_Heroes_AllTrackedHeroesForTeam[lv_zuljinEnemyTeam], c_unitCountAll)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitGroupRemove(libHZUL_gv_heroZuljinHeadhunterUnitGroupHitList[lv_zuljinPlayer], lv_killedHero);
UnitGroupAdd(libHZUL_gv_heroZuljinHeadhunterUnitGroupVictims[lv_zuljinPlayer], lv_killedHero);
if (((UnitGetType(lv_killedHero) == "HeroErik") || (UnitGetType(lv_killedHero) == "HeroBaleog") || (UnitGetType(lv_killedHero) == "HeroOlaf"))) {
auto9A196AC6_g = libHZUL_gv_heroZuljinHeadhunterUnitGroupVictims[lv_zuljinPlayer];
auto9A196AC6_u = UnitGroupCount(auto9A196AC6_g, c_unitCountAll);
for (;; auto9A196AC6_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto9A196AC6_g, auto9A196AC6_u);
if (lv_itUnit == null) { break; }
if (((UnitGetType(lv_itUnit) == "HeroErik") || (UnitGetType(lv_itUnit) == "HeroBaleog") || (UnitGetType(lv_itUnit) == "HeroOlaf"))) {
lv_itViking += 1;
}
}
if ((lv_itViking == 3)) {
UnitCreateEffectUnit(lv_unit, "ZuljinHeadhunterQuestIncrementToken", lv_unit);
}
}
else {
UnitCreateEffectUnit(lv_unit, "ZuljinHeadhunterQuestIncrementToken", lv_unit);
}
if ((UnitGetType(lv_killedHero) == "HeroCho")) {
UnitCreateEffectUnit(lv_unit, "ZuljinHeadhunterQuestIncrementToken", lv_unit);
}
if ((libCore_gv_sYSGameMode == libCore_ge_GameModes_TryMe) && (UnitGroupCount(libHZUL_gv_heroZuljinHeadhunterUnitGroupVictims[lv_zuljinPlayer], c_unitCountAll) == UnitGroupCount(libGame_gv_players_Heroes_AllTrackedHeroesForTeam[lv_zuljinEnemyTeam], c_unitCountAll))) {
UnitCreateEffectUnit(lv_unit, "ZuljinHeadhunterQuestIncrementToken", lv_unit);
UnitCreateEffectUnit(lv_unit, "ZuljinHeadhunterQuestIncrementToken", lv_unit);
UnitCreateEffectUnit(lv_unit, "ZuljinHeadhunterQuestIncrementToken", lv_unit);
UnitCreateEffectUnit(lv_unit, "ZuljinHeadhunterQuestIncrementToken", lv_unit);
UnitCreateEffectUnit(lv_unit, "ZuljinHeadhunterQuestIncrementToken", lv_unit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinHeadhunterProgress_Init () {
libHZUL_gt_HeroZuljinHeadhunterProgress = TriggerCreate("libHZUL_gt_HeroZuljinHeadhunterProgress_Func");
TriggerEnable(libHZUL_gt_HeroZuljinHeadhunterProgress, false);
libGame_gf_HeroParticipatedInTakedown(libHZUL_gt_HeroZuljinHeadhunterProgress);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Headhunter - Respec
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinHeadhunterRespec_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itPlayer;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_itPlayer = libGame_gf_HeroRespecsTalentsPlayer();
lv_unit = libGame_gv_players[lv_itPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroZuljin"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitGroupClear(libHZUL_gv_heroZuljinHeadhunterUnitGroupVictims[lv_itPlayer]);
UnitGroupClear(libHZUL_gv_heroZuljinHeadhunterUnitGroupHitList[lv_itPlayer]);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinHeadhunterRespec_Init () {
libHZUL_gt_HeroZuljinHeadhunterRespec = TriggerCreate("libHZUL_gt_HeroZuljinHeadhunterRespec_Func");
TriggerEnable(libHZUL_gt_HeroZuljinHeadhunterRespec, false);
libGame_gf_HeroRespecsTalents(libHZUL_gt_HeroZuljinHeadhunterRespec);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Let The Killing Begin - Refresh Duration
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinLetTheKillingBeginRefreshDuration_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_itUnit = libGame_gv_players[EventPlayer()].lv_heroUnit;
// Conditions
if (testConds) {
if (!((PlayerHasTalent(EventPlayer(), "ZuljinLetTheKillingBegin") == true))) {
return false;
}
if (!((UnitHasBehavior2(lv_itUnit, "ZuljinLetTheKillingBeginStack") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorSetDuration(lv_itUnit, "ZuljinLetTheKillingBeginStack", CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "ZuljinLetTheKillingBeginStack", "Duration", EventPlayer()));
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinLetTheKillingBeginRefreshDuration_Init () {
libHZUL_gt_HeroZuljinLetTheKillingBeginRefreshDuration = TriggerCreate("libHZUL_gt_HeroZuljinLetTheKillingBeginRefreshDuration_Func");
TriggerEnable(libHZUL_gt_HeroZuljinLetTheKillingBeginRefreshDuration, false);
TriggerAddEventPlayerEffectUsed(libHZUL_gt_HeroZuljinLetTheKillingBeginRefreshDuration, c_playerAny, "ZuljinLetTheKillingBeginDummyRefreshBehaviorDuration");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Let The Killing Begin - Hero Takedown
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinLetTheKillingBeginHeroTakedown_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_unit;
unit lv_vehicle;
// 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 (!((PlayerHasTalent(lv_player, "ZuljinLetTheKillingBegin") == true))) {
return false;
}
if (!(((UnitGetType(lv_unit) == "HeroZuljin") || (UnitGetType(lv_vehicle) == "HeroZuljin")))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_unit, "ZuljinLetTheKillingBeginApplyHeroStackBehavior", lv_unit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinLetTheKillingBeginHeroTakedown_Init () {
libHZUL_gt_HeroZuljinLetTheKillingBeginHeroTakedown = TriggerCreate("libHZUL_gt_HeroZuljinLetTheKillingBeginHeroTakedown_Func");
TriggerEnable(libHZUL_gt_HeroZuljinLetTheKillingBeginHeroTakedown, false);
libGame_gf_HeroParticipatedInTakedown(libHZUL_gt_HeroZuljinLetTheKillingBeginHeroTakedown);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Ferocity - Update Accumulator
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinFerocityUpdateAccumulator_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_zuljinPlayer;
unit lv_zuljinUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_zuljinPlayer = libGame_gf_HeroGainTalentPlayer();
lv_zuljinUnit = libGame_gv_players[lv_zuljinPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_zuljinPlayer, "ZuljinFerocity") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSet(c_gameCatalogBehavior, "ZuljinBerserkerPassive", "Modification.AdditiveAttackSpeedFactor.AccumulatorArray[" + IntToString(0) + "]", lv_zuljinPlayer, "ZuljinBerserkerFerocityHealthToAttackSpeed");
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinFerocityUpdateAccumulator_Init () {
libHZUL_gt_HeroZuljinFerocityUpdateAccumulator = TriggerCreate("libHZUL_gt_HeroZuljinFerocityUpdateAccumulator_Func");
TriggerEnable(libHZUL_gt_HeroZuljinFerocityUpdateAccumulator, false);
libGame_gf_HeroGainTalent(libHZUL_gt_HeroZuljinFerocityUpdateAccumulator);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Ferocity - Respec
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinFerocityRespec_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_zuljinPlayer;
unit lv_unit;
// Automatic Variable Declarations
// Variable Initialization
lv_zuljinPlayer = libGame_gf_HeroRespecsTalentsPlayer();
lv_unit = libGame_gv_players[lv_zuljinPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((UnitGetType(lv_unit) == "HeroZuljin"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
CatalogFieldValueSet(c_gameCatalogBehavior, "ZuljinBerserkerPassive", "Modification.AdditiveAttackSpeedFactor.AccumulatorArray[" + IntToString(0) + "]", lv_zuljinPlayer, "ZuljinBerserkerHealthToAttackSpeed");
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinFerocityRespec_Init () {
libHZUL_gt_HeroZuljinFerocityRespec = TriggerCreate("libHZUL_gt_HeroZuljinFerocityRespec_Func");
TriggerEnable(libHZUL_gt_HeroZuljinFerocityRespec, false);
libGame_gf_HeroRespecsTalents(libHZUL_gt_HeroZuljinFerocityRespec);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Amani Resilience - On
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinAmaniResilienceOn_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((PlayerHasTalent(UnitGetOwner(EventUnit()), "ZuljinAmaniResilience") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceDamageTracker, true);
libHZUL_gv_heroZuljinAmaniResilienceCastCount += 1;
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinAmaniResilienceOn_Init () {
libHZUL_gt_HeroZuljinAmaniResilienceOn = TriggerCreate("libHZUL_gt_HeroZuljinAmaniResilienceOn_Func");
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceOn, false);
TriggerAddEventUnitBehaviorChange(libHZUL_gt_HeroZuljinAmaniResilienceOn, null, "ZuljinTazdingoUnkillable", c_unitBehaviorChangeActivate);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Amani Resilience - Damage Tracker
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinAmaniResilienceDamageTracker_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_damageAmount;
const fixed lv_damageDealtHealingFraction = 0.5;
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, "ZuljinTazdingoUnkillable") == true))) {
return false;
}
if (!((PlayerHasTalent(lv_itPlayer, "ZuljinAmaniResilience") == 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);
libHZUL_gv_heroZuljinAmaniResilienceCombinedHeal[lv_itPlayer] += lv_damageAmount;
libHZUL_gv_heroZuljinAmaniResilienceHealPreviewCombinedDamage[UnitGetOwner(lv_itUnit)] += lv_damageAmount;
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinAmaniResilienceDamageTracker_Init () {
libHZUL_gt_HeroZuljinAmaniResilienceDamageTracker = TriggerCreate("libHZUL_gt_HeroZuljinAmaniResilienceDamageTracker_Func");
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceDamageTracker, false);
TriggerAddDamageEvent(libHZUL_gt_HeroZuljinAmaniResilienceDamageTracker, "HeroZuljin", null, c_unitDamageTypeAny, c_unitDamageEither, null);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Amani Resilience - Heal Preview Catalog
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinAmaniResilienceHealPreviewCatalog_Func (bool testConds, bool runActions) {
// Variable Declarations
fixed lv_duration;
unit lv_itUnit;
int lv_itPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_duration = 4.0;
lv_itUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_itPlayer = UnitGetOwner(lv_itUnit);
// Conditions
if (testConds) {
if (!((UnitGetType(EventPlayerEffectUsedUnit(c_effectUnitCaster)) == "HeroZuljin"))) {
return false;
}
if (!((UnitHasBehavior2(EventPlayerEffectUsedUnit(c_effectUnitCaster), "ZuljinTazdingoAmaniResilienceDamageTracker") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitBehaviorCount(lv_itUnit, "ZuljinTazdingoAmaniResilienceHealPreviewTracker") == 0)) {
UnitBehaviorAdd(lv_itUnit, "ZuljinTazdingoAmaniResilienceHealPreviewTracker", lv_itUnit, 1);
}
CatalogFieldValueSetFixed(c_gameCatalogEffect, "ZuljinTazdingoAmaniResilienceDummyTrackerCreateHealer", "RechargeVitalRate", lv_itPlayer, libHZUL_gv_heroZuljinAmaniResilienceHealPreviewCombinedDamage[lv_itPlayer]);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinAmaniResilienceHealPreviewCatalog_Init () {
libHZUL_gt_HeroZuljinAmaniResilienceHealPreviewCatalog = TriggerCreate("libHZUL_gt_HeroZuljinAmaniResilienceHealPreviewCatalog_Func");
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceHealPreviewCatalog, false);
TriggerAddEventPlayerEffectUsed(libHZUL_gt_HeroZuljinAmaniResilienceHealPreviewCatalog, c_playerAny, "ZuljinTazdingoAmaniResilienceDummyStartSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Hero - Zul'jin - Amani Resilience - Off
//--------------------------------------------------------------------------------------------------
bool libHZUL_gt_HeroZuljinAmaniResilienceOff_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 = libHZUL_gv_heroZuljinAmaniResilienceCombinedHeal[lv_itPlayer];
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_itPlayer, "ZuljinAmaniResilience") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libHZUL_gv_heroZuljinAmaniResilienceCastCount -= 1;
if ((libHZUL_gv_heroZuljinAmaniResilienceCastCount == 0)) {
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceDamageTracker, false);
}
CatalogFieldValueSetFixed(c_gameCatalogEffect, "ZuljinTazdingoAmaniResilienceCreateHealer", "RechargeVitalRate", lv_itPlayer, lv_healAmount);
CatalogFieldValueSet(c_gameCatalogEffect, "ZuljinTazdingoAmaniResilienceDummyTrackerCreateHealer", "RechargeVitalRate", lv_itPlayer, "0");
UnitCreateEffectUnit(lv_itUnit, "ZuljinTazdingoAmaniResilienceCreateHealer", lv_itUnit);
libHZUL_gv_heroZuljinAmaniResilienceCombinedHeal[lv_itPlayer] = 0.0;
libHZUL_gv_heroZuljinAmaniResilienceHealPreviewCombinedDamage[lv_itPlayer] = 0.0;
return true;
}
//--------------------------------------------------------------------------------------------------
void libHZUL_gt_HeroZuljinAmaniResilienceOff_Init () {
libHZUL_gt_HeroZuljinAmaniResilienceOff = TriggerCreate("libHZUL_gt_HeroZuljinAmaniResilienceOff_Func");
TriggerEnable(libHZUL_gt_HeroZuljinAmaniResilienceOff, false);
TriggerAddEventUnitBehaviorChange(libHZUL_gt_HeroZuljinAmaniResilienceOff, null, "ZuljinTazdingoAmaniResilienceDamageTracker", c_unitBehaviorChangeDeactivate);
}
void libHZUL_InitTriggers () {
libHZUL_gt_HeroZuljinPlayerSetup_Init();
libHZUL_gt_HeroZuljinUIInitialize_Init();
libHZUL_gt_HeroZuljinUICleanUpGuillotine_Init();
libHZUL_gt_HeroZuljinYouWantAxeScoreValue_Init();
libHZUL_gt_HeroZuljinYouWantAxeScoreValueReset_Init();
libHZUL_gt_HeroZuljinBerserkerSetLifeTo1_Init();
libHZUL_gt_HeroZuljinYouWantAxeDeathReduction_Init();
libHZUL_gt_HeroZuljinGuillotineCastModifyDamage_Init();
libHZUL_gt_HeroZuljinGuillotineTalentSelected_Init();
libHZUL_gt_HeroZuljinGuillotineVODeadKill_Init();
libHZUL_gt_HeroZuljinAmaniRageCast_Init();
libHZUL_gt_HeroZuljinHeadhunterSelected_Init();
libHZUL_gt_HeroZuljinHeadhunterProgress_Init();
libHZUL_gt_HeroZuljinHeadhunterRespec_Init();
libHZUL_gt_HeroZuljinLetTheKillingBeginRefreshDuration_Init();
libHZUL_gt_HeroZuljinLetTheKillingBeginHeroTakedown_Init();
libHZUL_gt_HeroZuljinFerocityUpdateAccumulator_Init();
libHZUL_gt_HeroZuljinFerocityRespec_Init();
libHZUL_gt_HeroZuljinAmaniResilienceOn_Init();
libHZUL_gt_HeroZuljinAmaniResilienceDamageTracker_Init();
libHZUL_gt_HeroZuljinAmaniResilienceHealPreviewCatalog_Init();
libHZUL_gt_HeroZuljinAmaniResilienceOff_Init();
}
//--------------------------------------------------------------------------------------------------
// Library Initialization
//--------------------------------------------------------------------------------------------------
bool libHZUL_InitLib_completed = false;
void libHZUL_InitLib () {
if (libHZUL_InitLib_completed) {
return;
}
libHZUL_InitLib_completed = true;
libHZUL_InitLibraries();
libHZUL_InitVariables();
libHZUL_InitTriggers();
}