include "TriggerLibs/HeroesLib"
//--------------------------------------------------------------------------------------------------
// Library: Samuro
//--------------------------------------------------------------------------------------------------
// Preset Declarations
const int libHSAM_ge_MirrorImageState_Leashing = 0;
const int libHSAM_ge_MirrorImageState_Idle = 1;
const int libHSAM_ge_MirrorImageState_Aggro = 2;
// Structures
struct libHSAM_gs_SamuroUI {
int lv_samuroControlGroupIcon0;
int lv_samuroControlGroupIcon1;
int lv_samuroControlGroupIcon2;
int lv_samuroControlGroupIcon3;
int lv_samuroControlGroupIconHealth1;
int lv_samuroControlGroupIconHealth2;
};
// Variable Declarations
int libHSAM_gv_heroSamuroTriggerRegistrationVariable;
unitgroup[libCore_gv_bALMaxPlayers + 1] libHSAM_gv_mirrorImageUnitGroup;
unitgroup[libCore_gv_bALMaxPlayers + 1] libHSAM_gv_mirrorImageUnitGroup2;
unitgroup[libCore_gv_bALMaxPlayers + 1] libHSAM_gv_mirrorImageUnitGroup3;
int libHSAM_gv_samuro_ControlGroupPanel;
libHSAM_gs_SamuroUI libHSAM_gv_samuroUI;
// Function Declarations
void libHSAM_gf_HeroSamuroIncrementHeroCountFunction ();
void libHSAM_gf_HeroSamuroDecrementHeroCountFunction ();
void libHSAM_gf_HeroSamuroMirrorImageAI (unit lp_samuro, unit lp_mirrorImage, int lp_samuroPlayer);
void libHSAM_gf_SamuroUISetup (unit lp_CreatedUnit);
void libHSAM_gf_SamuroMirrorImagesTransferDurations (unit lp_samuro, unit lp_mirrorImage);
void libHSAM_gf_SamuroMirrorImageAIActivationRetainOrderDelay (unit lp_mirrorImageUnit);
void libHSAM_gf_SamuroKawarimi (unit lp_imageUnit);
void libHSAM_gf_SamuroUIUnSetupUIForPlayer (int lp_player);
// Trigger Declarations
trigger libHSAM_gt_ForceIncludeDataMods;
trigger libHSAM_gt_SamuroSelectionChange;
trigger libHSAM_gt_SamuroRespawn;
trigger libHSAM_gt_SamuroPort;
trigger libHSAM_gt_SamuroDebugSwap;
trigger libHSAM_gt_SamuroRespecsTalents;
trigger libHSAM_gt_SamuroSamuroDies;
trigger libHSAM_gt_SamuroUsesTransport;
trigger libHSAM_gt_SamuroGainsMapMechanicStack;
trigger libHSAM_gt_SamuroMirrorImageSelectedOn;
trigger libHSAM_gt_SamuroMirrorImageSelectedOff;
trigger libHSAM_gt_SamuroMirrorImageSwap;
trigger libHSAM_gt_SamuroMirrorImageMountDismountPort;
trigger libHSAM_gt_SamuroMirrorImageCreated;
trigger libHSAM_gt_SamuroMirrorImageDies;
trigger libHSAM_gt_SamuroMirrorImageController;
trigger libHSAM_gt_SamuroMirrorImageIllusionMasterAIToggleOn;
trigger libHSAM_gt_SamuroMirrorImageIllusionMasterAIToggleOff;
trigger libHSAM_gt_SamuroMirrorImageAttackOrderRedirectAI;
trigger libHSAM_gt_SamuroMirrorImageDamageTakenDuplication;
trigger libHSAM_gt_SamuroCriticalStrike;
trigger libHSAM_gt_SamuroBladestorm;
trigger libHSAM_gt_SamuroWayofIllusion;
trigger libHSAM_gt_SamuroGainsWayofIllusion;
trigger libHSAM_gt_SamuroLosesWayofIllusion;
trigger libHSAM_gt_SamuroGainsThreeBladeStyleTalent;
trigger libHSAM_gt_SamuroGainsCrushingBlowTalent;
trigger libHSAM_gt_SamuroMirage;
trigger libHSAM_gt_SamuroGainsR2Talent;
trigger libHSAM_gt_SamuroControlGroupPanelInitialize;
trigger libHSAM_gt_SamuroUICleanUpUIForDebugHeroSwap;
trigger libHSAM_gt_SamuroUIInitialize;
trigger libHSAM_gt_SamuroControlGroupHighlightSelectionController;
trigger libHSAM_gt_SamuroMirrorImageHealthTrackerCreate;
trigger libHSAM_gt_SamuroMirrorImageHealthTrackerCreateTalentTaken;
trigger libHSAM_gt_SamuroMirrorImageHealthTrackerUpdate;
// Library Initialization
void libHSAM_InitVariables ();