include "TriggerLibs/HeroesLib"



//--------------------------------------------------------------------------------------------------

// Library: Zul'jin

//--------------------------------------------------------------------------------------------------

// Structures

struct libHZUL_gs_ZuljinUI {

    int lv_mainPanel;

    int lv_traitPanel;

    int lv_berserkerValueLabel;

    int lv_guillotineDamageLabel;

};



// Variable Declarations

int libHZUL_gv_heroZuljinTriggerRegistrationVariable;

libHZUL_gs_ZuljinUI libHZUL_gv_zuljinUI;

fixed[libCore_gv_bALMaxPlayers + 1] libHZUL_gv_heroZuljinGuillotineTotalDamage;

unitgroup[libCore_gv_bALMaxPlayers + 1] libHZUL_gv_heroZuljinHeadhunterUnitGroupVictims;

unitgroup[libCore_gv_bALMaxPlayers + 1] libHZUL_gv_heroZuljinHeadhunterUnitGroupHitList;

fixed[libCore_gv_bALMaxPlayers + 1] libHZUL_gv_heroZuljinAmaniResilienceCombinedHeal;

fixed[libCore_gv_bALMaxPlayers + 1] libHZUL_gv_heroZuljinAmaniResilienceHealPreviewCombinedDamage;

int libHZUL_gv_heroZuljinAmaniResilienceCastCount;



// Function Declarations

void libHZUL_gf_HeroZuljinIncrementHeroCountFunction ();

void libHZUL_gf_HeroZuljinDecrementHeroCountFunction ();

void libHZUL_gf_HeroZuljinUpdateGuillotineStatusFrame (int lp_player, fixed lp_damage, fixed lp_healthPercentage);

void libHZUL_gf_ZuljinGuillotineDamageMonitor (int lp_player);

fixed libHZUL_gf_HeroZuljinGuillotineCalculateDamageBonus (int lp_player, fixed lp_life, fixed lp_guillotineBaseDamage);



// Trigger Declarations

trigger libHZUL_gt_HeroZuljinPlayerSetup;

trigger libHZUL_gt_HeroZuljinUIInitialize;

trigger libHZUL_gt_HeroZuljinUICleanUpGuillotine;

trigger libHZUL_gt_HeroZuljinYouWantAxeScoreValue;

trigger libHZUL_gt_HeroZuljinYouWantAxeScoreValueReset;

trigger libHZUL_gt_HeroZuljinBerserkerSetLifeTo1;

trigger libHZUL_gt_HeroZuljinYouWantAxeDeathReduction;

trigger libHZUL_gt_HeroZuljinGuillotineCastModifyDamage;

trigger libHZUL_gt_HeroZuljinGuillotineTalentSelected;

trigger libHZUL_gt_HeroZuljinGuillotineVODeadKill;

trigger libHZUL_gt_HeroZuljinAmaniRageCast;

trigger libHZUL_gt_HeroZuljinHeadhunterSelected;

trigger libHZUL_gt_HeroZuljinHeadhunterProgress;

trigger libHZUL_gt_HeroZuljinHeadhunterRespec;

trigger libHZUL_gt_HeroZuljinLetTheKillingBeginRefreshDuration;

trigger libHZUL_gt_HeroZuljinLetTheKillingBeginHeroTakedown;

trigger libHZUL_gt_HeroZuljinFerocityUpdateAccumulator;

trigger libHZUL_gt_HeroZuljinFerocityRespec;

trigger libHZUL_gt_HeroZuljinAmaniResilienceOn;

trigger libHZUL_gt_HeroZuljinAmaniResilienceDamageTracker;

trigger libHZUL_gt_HeroZuljinAmaniResilienceHealPreviewCatalog;

trigger libHZUL_gt_HeroZuljinAmaniResilienceOff;



// Library Initialization

void libHZUL_InitVariables ();