include "TriggerLibs/HeroesLib"



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

// Library: Cho'Gall

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

// Constants

const fixed libHCHO_gv_shadowBoltVolleyTurnDelay = 0.2;

const fixed libHCHO_gv_heroChoHourofTwilightTalentDeathTimerReductionScale = 0.5;

const fixed libHCHO_gv_heroGallPsychoticBreakRespawnTimerScale = -6.0;

const fixed libHCHO_gv_heroGallPsychoticBreakRespawnMinimumTimer = 10.0;



// Variable Declarations

int libHCHO_gv_heroChoGallTriggerRegistrationVariable;

int libHCHO_gv_shadowBoltVolleyActiveCasters;

point[libCore_gv_bALMaxPlayers + 1] libHCHO_gv_shadowBoltVolleyMousePosition;

fixed[libCore_gv_bALMaxPlayers + 1] libHCHO_gv_shadowBoltVolleyMouseAngle;

bool[libCore_gv_bALMaxPlayers + 1] libHCHO_gv_shadowBoltVolleyFlag;

point[libCore_gv_bALMaxPlayers + 1] libHCHO_gv_surgingFistMousePosition;

bool[libCore_gv_bALMaxPlayers + 1] libHCHO_gv_surgingFistActiveFlag;

int libHCHO_gv_surgingFistActiveCasters;

bool libHCHO_gv_tryMeChoGallIsSwapping;

bool libHCHO_gv_tryMeChoGallAIRequiresRestart;

int libHCHO_gv_tryMe_ChoGall_PairedPlayer_C;

int[8] libHCHO_gv_choGallSwapandRespawnSavedTalents;



// Function Declarations

void libHCHO_gf_HeroChoGallIncrementHeroCountFunction ();

void libHCHO_gf_HeroChoGallDecrementHeroCountFunction ();

void libHCHO_gf_GallRuneBombBeahviorTimerController (int lp_PlayerNumber, unit lp_OrbUnit);

void libHCHO_gf_ChoGallSwapandRespawnApplySavedTalents (int lp_playerID);

void libHCHO_gf_HeroChogallGallFollow (unit lp_gallUnit);

void libHCHO_gf_HeroGallStartAFKTimer (int lp_gallPlayer);



// Trigger Declarations

trigger libHCHO_gt_ForceIncludeDataMods;

trigger libHCHO_gt_ChoGallHearthstoneSpecialCase;

trigger libHCHO_gt_HeroGallShadowBoltVolleyCast;

trigger libHCHO_gt_HeroGallShadowBoltVolleyEnd;

trigger libHCHO_gt_HeroChoShadowBoltVolleyVehicleActorHook;

trigger libHCHO_gt_HeroGallShoveRootOn;

trigger libHCHO_gt_HeroGallShoveRootOff;

trigger libHCHO_gt_HeroChoHourofTwilightDeathTimerReduction;

trigger libHCHO_gt_HeroGallPsychoticBreakRespawnTimerAdjustmentBase;

trigger libHCHO_gt_HeroChoTheWillofChoHeroTakedownProc;

trigger libHCHO_gt_HeroChoTheWillofChoMinionTakedownProc;

trigger libHCHO_gt_HeroGallTheWillofGallTakedownProc;

trigger libHCHO_gt_HeroChoMoltenBlockOverlayOn;

trigger libHCHO_gt_HeroChoMoltenBlockOverlayOff;

trigger libHCHO_gt_HeroChoRuneBombRunicFeedbackDamageResponses;

trigger libHCHO_gt_HeroGallDreadOrbEnragedRegenerationDamageResponse;

trigger libHCHO_gt_SurgingFistFakeCastActivated;

trigger libHCHO_gt_SurgingFistMouseTracker;

trigger libHCHO_gt_SurgingFistExecuteChargetomouse;

trigger libHCHO_gt_HeroChoSurgingFistDistanceTracker;

trigger libHCHO_gt_SurgingFistRootsOnMonitor;

trigger libHCHO_gt_SurgingFistRootsOffMonitor;

trigger libHCHO_gt_GallRuneBombBehaviorTimerControllerTrigger;

trigger libHCHO_gt_ChoRuneBombSpawn;

trigger libHCHO_gt_GallRuneBombDetonationCooldownControl;

trigger libHCHO_gt_InitMiscModInitialization;

trigger libHCHO_gt_DEBUGChoGallVideoSwapCheat;

trigger libHCHO_gt_HeroChoGallTryMeModeSetLevelSpecialCase;

trigger libHCHO_gt_HeroChoGallSwapandRespawn;

trigger libHCHO_gt_HeroChogallChoSpawn;

trigger libHCHO_gt_HeroChogallGallSpawn;

trigger libHCHO_gt_HeroChogallChoSpawnedviaAbathurUltimateEvolution;

trigger libHCHO_gt_DEBUGShowGall;

trigger libHCHO_gt_DEBUGAIGall;

trigger libHCHO_gt_DEBUGSwapChoGallCheat;

trigger libHCHO_gt_CCRecognitionRoot;

trigger libHCHO_gt_CCRecognitionVoidPrisonStasisOverlay;

trigger libHCHO_gt_HeroChogallHauntedMinescameraplanechange;

trigger libHCHO_gt_HeroChogallChoDiesKillGall;

trigger libHCHO_gt_HeroChoGallChoRemovedRemoveGall;

trigger libHCHO_gt_HeroChogallChoRespawnsRespawnGall;

trigger libHCHO_gt_HeroChogallGallStunnedorSilencedStop;

trigger libHCHO_gt_HeroChogallGallAbilityPowerBehaviorForwardingOn;

trigger libHCHO_gt_HeroChogallGallAbilityPowerBehaviorForwardingOff;

trigger libHCHO_gt_HeroChogallStasisBehaviorForwarding;

trigger libHCHO_gt_HeroChogallMoltenBlock;

trigger libHCHO_gt_HeroChogallHealingFountainCooldownforGall;

trigger libHCHO_gt_HeroChogallChoEntersTransport;

trigger libHCHO_gt_HeroChogallChoExitsTransport;

trigger libHCHO_gt_HeroChogallVehicleStart;

trigger libHCHO_gt_HeroChogallVehicleStop;

trigger libHCHO_gt_HeroChoGallDeathRecapSpecialCaseforGallChoDies;



// Library Initialization

void libHCHO_InitVariables ();