include "TriggerLibs/HeroesLib"
//--------------------------------------------------------------------------------------------------
// Library: Zarya
//--------------------------------------------------------------------------------------------------
// Constants
const fixed libHZAR_gv_heroZaryaEnergyEnergytoDamageConversionRate = 2.0;
const fixed libHZAR_gv_heroZaryaEnergyHitMeModifier = 1.2;
const fixed libHZAR_gv_heroZaryaEnergyMaximumChargeThreshold = 50.0;
const fixed libHZAR_gv_heroZaryaEnergyTogetherWeAreStrongContributionCap = 40.0;
// Structures
struct libHZAR_gs_ZaryaUI {
int lv_mainPanel;
int lv_traitLabel;
};
// Variable Declarations
libHZAR_gs_ZaryaUI libHZAR_gv_zaryaUI;
unit[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_triggeringHeroZarya;
int libHZAR_gv_heroZaryaTriggerRegistrationVariable;
int[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_heroZaryaShieldCasterOwner;
fixed[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_heroZaryaShieldNumbers;
fixed[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_heroZaryaExpulsionZoneClearOutNumbers;
fixed libHZAR_gv_heroZaryaExpulsionZoneClearOutAmountPerStack;
int[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_heroZaryaGravitonSurgeCaster;
unitgroup[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_heroZaryaGravitonSurgeCameraTarget;
int[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_heroZaryaCurrentTintStage;
fixed libHZAR_gv_heroZaryaTintStage1EnergyMax;
fixed libHZAR_gv_heroZaryaTintStage2EnergyMax;
fixed libHZAR_gv_heroZaryaTintStage3EnergyMax;
fixed libHZAR_gv_heroZaryaTintStage4EnergyMax;
fixed libHZAR_gv_heroZaryaUnscaledDamagetoEnergyConversionRate;
fixed libHZAR_gv_heroZaryaTogetherWeAreStrongUnscaledDamagetoEnergyConversionRate;
fixed[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_heroZaryaCurrentDamagetoEnergyConversionRate;
fixed[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_heroZaryaEnergyTogetherWeAreStrongContributionRemaining;
trigger[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_heroZaryaEnergyTogetherWeAreStrongShieldedAllyTrigger;
int[libCore_gv_bALMaxPlayers + 1] libHZAR_gv_heroZaryaEnergyTogetherWeAreStrongShieldedAllyUnitCount;
fixed libHZAR_gv_heroZaryaBaseAttackPeriod;
// Function Declarations
void libHZAR_gf_HeroZaryaHeroSpecificStatusFrameUpdate (int lp_player, fixed lp_damageBoost);
void libHZAR_gf_HeroZaryaIncrementHeroCountFunction ();
void libHZAR_gf_HeroZaryaDecrementHeroCountFunction ();
void libHZAR_gf_HeroZaryaCustomFCT (unit lp_unit, int lp_player, fixed lp_amount, bool lp_isShield, bool lp_deepBurnOverride);
// Trigger Declarations
trigger libHZAR_gt_HeroZaryaPainIsTemporary;
trigger libHZAR_gt_HeroZaryaCustomKillVO;
trigger libHZAR_gt_HeroZaryaUIInitialize;
trigger libHZAR_gt_HeroZaryaUIActivate;
trigger libHZAR_gt_HeroZaryaRespawnUIShow;
trigger libHZAR_gt_HeroZaryaDeathUIHide;
trigger libHZAR_gt_HeroZaryaShieldingFCT;
trigger libHZAR_gt_HeroZaryaExpulsionZoneClearOutFCT;
trigger libHZAR_gt_HeroZaryaGravitonSurgeCameraTargetAcquisition;
trigger libHZAR_gt_HeroZaryaGravitonSurgeStunDisplayManager;
trigger libHZAR_gt_HeroZaryaGravityKillsTalentSilenceDisplay;
trigger libHZAR_gt_HeroZaryaGravitonSurgeCameraPan;
trigger libHZAR_gt_HeroZaryaGravitonSurgeTargetCache;
trigger libHZAR_gt_HeroZaryaGravitonSurgeTargetRelease;
trigger libHZAR_gt_HeroZaryaEnergyTogetherWeAreStrongTriggerCreate;
trigger libHZAR_gt_HeroZaryaEnergyTogetherWeAreStrongTriggerDestroy;
trigger libHZAR_gt_HeroZaryaEnergyTogetherWeAreStrongGain;
trigger libHZAR_gt_HeroZaryaEnergyTogetherWeAreStrongRelease;
trigger libHZAR_gt_HeroZaryaEnergyMaximumChargeFCT;
trigger libHZAR_gt_HeroZaryaEnergyDecay;
trigger libHZAR_gt_HeroZaryaEnergyGain;
trigger libHZAR_gt_HeroZaryaDeepBurnTalentEnergyGain;
trigger libHZAR_gt_HeroZaryaRefreshConversionRates;
trigger libHZAR_gt_HeroZaryaHeroGainsAttackSpeedBuff;
// Library Initialization
void libHZAR_InitVariables ();