include "TriggerLibs/NativeLib"
include "TriggerLibs/HeroesLib"
include "TriggerLibs/GameLib"
include "TriggerLibs/SupportLib"
include "LibHVAR_h"
//--------------------------------------------------------------------------------------------------
// Library: Varian
//--------------------------------------------------------------------------------------------------
// External Library Initialization
void libHVAR_InitLibraries () {
libNtve_InitVariables();
libCore_InitVariables();
libGame_InitVariables();
libSprt_InitVariables();
}
// Variable Initialization
bool libHVAR_InitVariables_completed = false;
void libHVAR_InitVariables () {
if (libHVAR_InitVariables_completed) {
return;
}
libHVAR_InitVariables_completed = true;
}
// Functions
void libHVAR_gf_HeroVarianIncrementHeroCount () {
// Automatic Variable Declarations
// Implementation
libHVAR_gv_heroVarianTriggerRegistrationCount += 1;
if ((libHVAR_gv_heroVarianTriggerRegistrationCount == 1)) {
TriggerEnable(libHVAR_gt_VarianHighKingsQuestHeroTakedown, true);
TriggerEnable(libHVAR_gt_VarianParryBehaviorMonitor, true);
TriggerEnable(libHVAR_gt_VarianVictoryRushMinionTakedownReset, true);
TriggerEnable(libHVAR_gt_VarianVictoryRushMonsterTakedownReset, true);
TriggerEnable(libHVAR_gt_VarianUIFloatingCombatTextParried, true);
}
}
void libHVAR_gf_HeroVarianDecrementHeroCount () {
// Automatic Variable Declarations
// Implementation
libHVAR_gv_heroVarianTriggerRegistrationCount -= 1;
if ((libHVAR_gv_heroVarianTriggerRegistrationCount < 0)) {
libHVAR_gv_heroVarianTriggerRegistrationCount = 0;
}
if ((libHVAR_gv_heroVarianTriggerRegistrationCount == 0)) {
TriggerEnable(libHVAR_gt_VarianHighKingsQuestHeroTakedown, false);
TriggerEnable(libHVAR_gt_VarianParryBehaviorMonitor, false);
TriggerEnable(libHVAR_gt_VarianVictoryRushMinionTakedownReset, false);
TriggerEnable(libHVAR_gt_VarianVictoryRushMonsterTakedownReset, false);
TriggerEnable(libHVAR_gt_VarianUIFloatingCombatTextParried, false);
}
}
// Triggers
//--------------------------------------------------------------------------------------------------
// Trigger: Varian - High King's Quest - Hero Takedown
//--------------------------------------------------------------------------------------------------
bool libHVAR_gt_VarianHighKingsQuestHeroTakedown_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_killingPlayer;
unit lv_varianUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_killingPlayer = libGame_gf_HeroParticipatedInTakedownKillingPlayer();
lv_varianUnit = libGame_gv_players[lv_killingPlayer].lv_heroUnit;
// Conditions
if (testConds) {
if (!((PlayerHasTalent(lv_killingPlayer, "VarianHighKingsQuestQuest") == true))) {
return false;
}
if (!((UnitBehaviorCount(lv_varianUnit, "VarianHighKingsQuestHeroTakedownQuestToken") < CatalogFieldValueGetAsInt(c_gameCatalogBehavior, "VarianHighKingsQuestHeroTakedownQuestToken", "Max", 0)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_varianUnit, "VarianHighKingsQuestModifyHeroTakedownQuestToken", lv_varianUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHVAR_gt_VarianHighKingsQuestHeroTakedown_Init () {
libHVAR_gt_VarianHighKingsQuestHeroTakedown = TriggerCreate("libHVAR_gt_VarianHighKingsQuestHeroTakedown_Func");
TriggerEnable(libHVAR_gt_VarianHighKingsQuestHeroTakedown, false);
libGame_gf_HeroParticipatedInTakedown(libHVAR_gt_VarianHighKingsQuestHeroTakedown);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Varian - UI - Floating Combat Text - Parried
//--------------------------------------------------------------------------------------------------
bool libHVAR_gt_VarianUIFloatingCombatTextParried_Func (bool testConds, bool runActions) {
// Variable Declarations
playergroup lv_players;
// Automatic Variable Declarations
// Variable Initialization
lv_players = PlayerGroupEmpty();
// Conditions
if (testConds) {
if (!((libSprt_gv_dEBUGCombatTextEnabled == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
PlayerGroupAdd(lv_players, EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget));
PlayerGroupAdd(lv_players, EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster));
PlayerGroupAdd(lv_players, EventPlayerEffectUsedUnitOwner(c_effectPlayerSource));
FloatingCombatElementCreateTextAtUnit(lv_players, "FloatingCombatElements/FloatingCombatElementTemplate", "", EventPlayerEffectUsedUnit(c_effectUnitSource), StringExternal("Param/Value/lib_HVAR_1FAF1667"), libNtve_gv_FloatingCombatTextAutoRandomSeed);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHVAR_gt_VarianUIFloatingCombatTextParried_Init () {
libHVAR_gt_VarianUIFloatingCombatTextParried = TriggerCreate("libHVAR_gt_VarianUIFloatingCombatTextParried_Func");
TriggerEnable(libHVAR_gt_VarianUIFloatingCombatTextParried, false);
TriggerAddEventPlayerEffectUsed(libHVAR_gt_VarianUIFloatingCombatTextParried, c_playerAny, "VarianParryDummyDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: Varian - Parry Behavior Monitor
//--------------------------------------------------------------------------------------------------
bool libHVAR_gt_VarianParryBehaviorMonitor_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 libHVAR_gt_VarianParryBehaviorMonitor_Init () {
libHVAR_gt_VarianParryBehaviorMonitor = TriggerCreate("libHVAR_gt_VarianParryBehaviorMonitor_Func");
TriggerEnable(libHVAR_gt_VarianParryBehaviorMonitor, false);
TriggerAddEventUnitBehaviorChange(libHVAR_gt_VarianParryBehaviorMonitor, null, "VarianParryIncomingDamageReduction", c_unitBehaviorChangeRefresh);
TriggerAddEventUnitBehaviorChange(libHVAR_gt_VarianParryBehaviorMonitor, null, "VarianParryIncomingDamageReduction", c_unitBehaviorChangeDecrease);
TriggerAddEventUnitBehaviorChange(libHVAR_gt_VarianParryBehaviorMonitor, null, "VarianParryShieldWall", c_unitBehaviorChangeRefresh);
TriggerAddEventUnitBehaviorChange(libHVAR_gt_VarianParryBehaviorMonitor, null, "VarianParryShieldWall", c_unitBehaviorChangeDecrease);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Varian - Victory Rush - Minion Takedown Reset
//--------------------------------------------------------------------------------------------------
bool libHVAR_gt_VarianVictoryRushMinionTakedownReset_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_varianPlayer;
unit lv_varianUnit;
unit lv_nPCUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_varianPlayer = libGame_gf_HeroParticipatedInNPCTakedownKillingPlayer();
lv_varianUnit = libGame_gv_players[lv_varianPlayer].lv_heroUnit;
lv_nPCUnit = libGame_gf_HeroParticipatedInNPCTakedownMinion();
// Conditions
if (testConds) {
if (!((lv_varianPlayer >= 1))) {
return false;
}
if (!((lv_varianPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHero(libGame_gf_HeroParticipatedInNPCTakedownKillingPlayer()) == "Varian"))) {
return false;
}
if (!((PlayerHasTalent(lv_varianPlayer, "VarianVictoryRush") == true))) {
return false;
}
if (!(((UnitTypeTestAttribute(UnitGetType(lv_nPCUnit), c_unitAttributeMinion) == true) && (UnitFilterMatch(lv_nPCUnit, lv_varianPlayer, UnitFilter(0, 0, (1 << c_targetFilterCreep) | (1 << c_targetFilterMerc), 0)) == true)))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitCreateEffectUnit(lv_varianUnit, "VarianVictoryRushCasterReset", lv_varianUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHVAR_gt_VarianVictoryRushMinionTakedownReset_Init () {
libHVAR_gt_VarianVictoryRushMinionTakedownReset = TriggerCreate("libHVAR_gt_VarianVictoryRushMinionTakedownReset_Func");
TriggerEnable(libHVAR_gt_VarianVictoryRushMinionTakedownReset, false);
libGame_gf_HeroParticipatedInNPCTakedown(libHVAR_gt_VarianVictoryRushMinionTakedownReset);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Varian - Victory Rush - Monster Takedown Reset
//--------------------------------------------------------------------------------------------------
bool libHVAR_gt_VarianVictoryRushMonsterTakedownReset_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_varianPlayer;
unit lv_varianUnit;
unit lv_nPCUnit;
// Automatic Variable Declarations
// Variable Initialization
lv_varianPlayer = libGame_gf_HeroParticipatedInCreepTakedownKillingPlayer();
lv_nPCUnit = libGame_gf_HeroParticipatedInCreepTakedownCreep();
// Conditions
if (testConds) {
if (!((lv_varianPlayer >= 1))) {
return false;
}
if (!((lv_varianPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
if (!((PlayerHasTalent(lv_varianPlayer, "VarianVictoryRush") == true))) {
return false;
}
if (!((UnitTypeTestAttribute(UnitGetType(lv_nPCUnit), c_unitAttributeMapCreature) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_varianUnit = libGame_gv_players[lv_varianPlayer].lv_heroUnit;
UnitCreateEffectUnit(lv_varianUnit, "VarianVictoryRushCasterReset", lv_varianUnit);
return true;
}
//--------------------------------------------------------------------------------------------------
void libHVAR_gt_VarianVictoryRushMonsterTakedownReset_Init () {
libHVAR_gt_VarianVictoryRushMonsterTakedownReset = TriggerCreate("libHVAR_gt_VarianVictoryRushMonsterTakedownReset_Func");
TriggerEnable(libHVAR_gt_VarianVictoryRushMonsterTakedownReset, false);
libGame_gf_HeroParticipatedInCreepTakedown(libHVAR_gt_VarianVictoryRushMonsterTakedownReset);
}
void libHVAR_InitTriggers () {
libHVAR_gt_VarianHighKingsQuestHeroTakedown_Init();
libHVAR_gt_VarianUIFloatingCombatTextParried_Init();
libHVAR_gt_VarianParryBehaviorMonitor_Init();
libHVAR_gt_VarianVictoryRushMinionTakedownReset_Init();
libHVAR_gt_VarianVictoryRushMonsterTakedownReset_Init();
}
//--------------------------------------------------------------------------------------------------
// Library Initialization
//--------------------------------------------------------------------------------------------------
bool libHVAR_InitLib_completed = false;
void libHVAR_InitLib () {
if (libHVAR_InitLib_completed) {
return;
}
libHVAR_InitLib_completed = true;
libHVAR_InitLibraries();
libHVAR_InitVariables();
libHVAR_InitTriggers();
}