include "TriggerLibs/HeroesLib"



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

// Library: DVa

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

// Constants

const fixed libHDVA_gv_dVASelfDestructHealthpercentageneededtogenerate1charge = 4.0;

const fixed libHDVA_gv_dVaBringItOnChargeRateModifier = 0.3;

const fixed libHDVA_gv_dVaCallMechDefaultMaxCooldown = 45.0;

const fixed libHDVA_gv_dVaCallMechFullMetalCooldownChange = 0.0;



// Structures

struct libHDVA_gs_DVaUI {

    int lv_partyFrame;

    int lv_mainPanel;

    int lv_defenseMatrixLabel;

    int lv_defenseMatrixOffAnimation;

};



// Variable Declarations

int libHDVA_gv_heroDVaTriggerRegistrationCount;

libHDVA_gs_DVaUI libHDVA_gv_dVaUI;

fixed[libCore_gv_bALMaxPlayers + 1] libHDVA_gv_dVaDefenseMatrixTrackedValue;

fixed[libCore_gv_bALMaxPlayers + 1] libHDVA_gv_dVaDefensiveChargeRemainder;

fixed libHDVA_gv_dVaCallMechFullMetalHealthModifier;

unit[libCore_gv_bALMaxPlayers + 1] libHDVA_gv_dVaCallMechMechBeingSummoned;

fixed libHDVA_gv_dVaCallMechSummonedMechTargetPointOffset_C;

unit[libCore_gv_bALMaxPlayers + 1] libHDVA_gv_heroDVaCurrentAttackTarget;

point[libCore_gv_bALMaxPlayers + 1] libHDVA_gv_heroDVaAttackTargetPoint;

int[libCore_gv_bALMaxPlayers + 1] libHDVA_gv_heroDVaFusionGeneratorFCTNumbers;



// Function Declarations

void libHDVA_gf_HeroDVaIncrementHeroCountFunction ();

void libHDVA_gf_HeroDVaDecrementHeroCountFunction ();

void libHDVA_gf_HeroDVaUIInitialize ();

void libHDVA_gf_SpawnDVa (int lp_player, int lp_heroIndex, point lp_spawnLocation);

void libHDVA_gf_RespawnHeroDVa (unit lp_pilotUnit, int lp_player, point lp_spawnLocation, int lp_respawnedMechHealthPercentage);

void libHDVA_gf_DVaPilotUpdateEnergy (int lp_dVaPlayer);

void libHDVA_gf_DVaUpdatethePartyFrametoActiveUnit (int lp_dVaPlayer);

unit libHDVA_gf_HeroDVaActiveDVaUnit (int lp_playerID);



// Trigger Declarations

trigger libHDVA_gt_ModInitialization;

trigger libHDVA_gt_HeroDVaManualSpawn;

trigger libHDVA_gt_DVaRespawn;

trigger libHDVA_gt_DVaRespawnAurielLightSpeedSpecialCase;

trigger libHDVA_gt_DVaMoonwellRedistribution;

trigger libHDVA_gt_DVaCargoUnloadedSelectionControl;

trigger libHDVA_gt_DVaAbathurCreatesaDVaClone;

trigger libHDVA_gt_DVaAbathurClonedMechEnds;

trigger libHDVA_gt_HeroDVaPilotEjectedMoveCommandForwarding;

trigger libHDVA_gt_HeroDVaMechDiesviaFatalDamage;

trigger libHDVA_gt_HeroDVaMicroMissilesActive;

trigger libHDVA_gt_DVaBoostersEnemyHallofStorms;

trigger libHDVA_gt_DVaDefenseMatrixTracker;

trigger libHDVA_gt_DVaDefenseMatrixTrackerReportandReset;

trigger libHDVA_gt_DVaDamageTakenSelfDestructCharge;

trigger libHDVA_gt_DVaCallMech;

trigger libHDVA_gt_DVaCallMechInterrupted;

trigger libHDVA_gt_DVaCallMechMEKAfallCompleted;

trigger libHDVA_gt_DVaPilotUpdateEnergyTriggerconditions;

trigger libHDVA_gt_DVaPilotUpdateEnergyMechSelfDestructing;

trigger libHDVA_gt_HeroDVaHeroWeaponForceAcquireTargetTaunt;

trigger libHDVA_gt_HeroDVaHeroWeaponTargeting;

trigger libHDVA_gt_HeroDVaTargetAcquired;

trigger libHDVA_gt_HeroDVaHoldFireControllerHoldFireApply;

trigger libHDVA_gt_HeroDVaHoldFireControllerHoldFireRemove;

trigger libHDVA_gt_HeroDVaRemoveweapontargetfromData;

trigger libHDVA_gt_DVaLiquidCoolingCooldownSync;

trigger libHDVA_gt_DVaLiquidCoolingDurationFix;

trigger libHDVA_gt_HeroDVaFusionGeneratorFCTIncrement;

trigger libHDVA_gt_HeroDVaFusionGeneratorFCTFinal;

trigger libHDVA_gt_DVaAblativeArmorHealingConversion;

trigger libHDVA_gt_DVaTalentBehaviorAcquiredWhileCargoForwarding;

trigger libHDVA_gt_HeroDVaActorSoundSwaps;

trigger libHDVA_gt_DEBUGRefreshCooldownscdr;

trigger libHDVA_gt_DEBUGDVaXPEqualizer;



// Library Initialization

void libHDVA_InitVariables ();