include "TriggerLibs/HeroesLib"
//--------------------------------------------------------------------------------------------------
// Library: Auriel
//--------------------------------------------------------------------------------------------------
// Constants
const fixed libHAUR_gv_heroAurielBestowHopeEmpathicLinkStoredPercentage = 0.25;
const fixed libHAUR_gv_heroAurielRayofHeavenGlimmerofHopeStoredPercentage = 0.75;
const fixed libHAUR_gv_heroAurielRayofHeavenSearingLightFractionOfEnergyConvertedToDamage = 0.3;
const fixed libHAUR_gv_heroAurielResurrectShowRezPanelDuration = 2.0;
const fixed libHAUR_gv_heroAurielResurrectTargetUnresurrectableTime = 3.6;
const int libHAUR_gv_heroAurielResurrectVitalScale = 100;
const int libHAUR_gv_heroAurielResurrectEnergyPercentage = 100;
const fixed libHAUR_gv_heroAurielResurrectResurrectTime = 3.0;
// Structures
struct libHAUR_gs_AurielUI {
int lv_traitPanel;
int lv_traitLabel;
int lv_aurielBestowHopeTargetStatus;
int lv_aurielBestowHopeTargetDisplayName;
int lv_aurielBestowHopeTargetPortrait;
int lv_traitImageBar;
int lv_traitImageMaxBar;
};
struct libHAUR_gs_HeroAurielResurrectFrameRecord {
int lv_heroAurielResurrectTargetTeam;
int lv_heroAurielResurrectTargetFrameIndex;
timer lv_heroAurielResurrectProgressTimer;
};
struct libHAUR_gs_HeroAurielRessurectLostVikingsData {
unit lv_vikingUnit;
unit lv_spiritUnit;
};
// Variable Declarations
int libHAUR_gv_heroAurielTriggerRegistrationVariable;
libHAUR_gs_AurielUI libHAUR_gv_aurielUI;
fixed libHAUR_gv_heroAurielBestowHopeNonHeroicDamageStoredFraction;
fixed libHAUR_gv_heroAurielBestowHopeHeroicDamageStoredFraction;
unit[libCore_gv_bALMaxEnginePlayerCount + 1] libHAUR_gv_heroAurielBestowHopeProxy;
int[libCore_gv_bALMaxEnginePlayerCount + 1] libHAUR_gv_heroAurielBestowHopeProxyOwner;
int libHAUR_gv_heroAurielBestowHopeNumberofActiveProxies;
fixed libHAUR_gv_heroAurielRayofHeavenReservoirofHopeHealingPerStack;
fixed libHAUR_gv_heroAurielRayofHeavenNonHeroicDamageStoredFraction;
fixed libHAUR_gv_heroAurielRayofHeavenHeroicDamageStoredFraction;
int libHAUR_gv_heroAurielResurrectActiveSpirits;
unit[libCore_gv_bALMaxPlayers + 1] libHAUR_gv_heroAurielResurrectSpirit;
int[libCore_gv_bALMaxTeams + 1] libHAUR_gv_heroAurielResurrectRezzersOnTeam;
bool[libCore_gv_bALMaxPlayers + 1] libHAUR_gv_heroAurielResurrectShowSpiritTimer;
int[libCore_gv_bALMaxPlayers + 1][4] libHAUR_gv_heroAurielResurrectDeadPlayerSpiritTimerTextTag;
int[libCore_gv_bALMaxPlayers + 1][4] libHAUR_gv_heroAurielResurrectAurielSpiritTimerTextTag;
int[libCore_gv_bALMaxPlayers + 1] libHAUR_gv_heroAurielResurrectRevivingNotification;
int[libCore_gv_bALMaxPlayers + 1] libHAUR_gv_heroAurielResurrectCastingAuriel;
timer[libCore_gv_bALMaxPlayers + 1] libHAUR_gv_heroAurielResurrectCastingTimer;
int[libCore_gv_bALMaxPlayers + 1] libHAUR_gv_heroAurielResurrectRevivingDialog;
unit[11] libHAUR_gv_heroAurielResurrectLeoricUnit;
libHAUR_gs_HeroAurielResurrectFrameRecord[libCore_gv_bALMaxPlayers + 1] libHAUR_gv_heroAurielResurrectFrameRecords;
int libHAUR_gv_heroAurielResurrectTotalActiveResurrectActions;
libHAUR_gs_HeroAurielRessurectLostVikingsData[libCore_gv_bALMaxPlayers + 1][4] libHAUR_gv_heroAurielResurrectLostVikingsArray;
timer[libCore_gv_bALMaxPlayers + 1] libHAUR_gv_heroAurielResurrectNotifyTargetPlayerReviveInterruptedTimer;
// Function Declarations
void libHAUR_gf_HeroAurielIncrementHeroCountFunction ();
void libHAUR_gf_HeroAurielDecrementHeroCountFunction ();
string libHAUR_gf_BestowHopeGetPortraitPathforUnit (unit lp_unit);
void libHAUR_gf_AurielUIBestowHope (int lp_aurielPlayer, unit lp_bestowHopeTarget);
text libHAUR_gf_AurielUIUnitDisplayName (unit lp_unit);
void libHAUR_gf_HeroAurielRayofHeavenPopulateValuesfromData ();
void libHAUR_gf_HeroAurielResurrectRevealSpirittoAurielandDeadPlayer (int lp_deadPlayer, unit lp_deadHero);
void libHAUR_gf_HeroAurielResurrectCheckActiveSpirits (bool lp_targetHeroDead);
int libHAUR_gf_HeroAurielResurrectCreateDeadPlayerSpiritTimer (int lp_aurielPlayer, int lp_deadPlayer, int lp_vikingNumber);
// Trigger Declarations
trigger libHAUR_gt_AurielUIInitialize;
trigger libHAUR_gt_HeroAurielShieldofHopeSetShieldStrength;
trigger libHAUR_gt_HeroAurielBestowHopeBestowHopeCast;
trigger libHAUR_gt_HeroAurielBestowHopeSetProxy;
trigger libHAUR_gt_HeroAurielBestowHopeRemoveProxy;
trigger libHAUR_gt_HeroAurielBestowHopeToggleBestowHopeProxyDamageDealtTrigger;
trigger libHAUR_gt_HeroAurielBestowHopeHealingStoredFromProxyDamageDealt;
trigger libHAUR_gt_HeroAurielBestowHopeHealingStoredFromProxyDamageTaken;
trigger libHAUR_gt_HeroAurielBestowHopeProxyUnitSwapped;
trigger libHAUR_gt_HeroAurielRayofHeavenAbilityUsed;
trigger libHAUR_gt_HeroAurielCrystalAegisOverlayController;
trigger libHAUR_gt_HeroAurielResurrectPlayerUnlocksResurrect;
trigger libHAUR_gt_HeroAurielResurrectPlayerRespecs;
trigger libHAUR_gt_HeroAurielResurrectCreateSpirit;
trigger libHAUR_gt_HeroAurielResurrectMurkyEggDeathSpiritReveal;
trigger libHAUR_gt_HeroAurielResurrectLeoricSpiritFollow;
trigger libHAUR_gt_HeroAurielResurrectRevivePlayer;
trigger libHAUR_gt_HeroAurielResurrectPlayerRespawns;
trigger libHAUR_gt_HeroAurielResurrectLostVikingRespawns;
trigger libHAUR_gt_HeroAurielResurrectLostVikingsPlayAgainComplete;
trigger libHAUR_gt_HeroAurielResurrectLostVikingsPlayAgainStart;
trigger libHAUR_gt_HeroAurielResurrectNotifyTargetPlayerReviveStart;
trigger libHAUR_gt_HeroAurielResurrectNotifyTargetPlayerReviveInterrupted;
trigger libHAUR_gt_HeroAurielResurrectNotifyTargetPlayerReviveInterruptedTimerExpired;
trigger libHAUR_gt_HeroAurielResurrectSpiritTimerController;
trigger libHAUR_gt_HeroAurielResurrectEndofGameHideRevivingDialog;
// Library Initialization
void libHAUR_InitVariables ();