include "TriggerLibs/HeroesLib_h"
include "TriggerLibs/GameLib_h"
//--------------------------------------------------------------------------------------------------
// Library: Support
//--------------------------------------------------------------------------------------------------
// Constants
const string libSprt_gv_performanceTestFPSLogFile = "FPS_Log";
const int libSprt_gv_dataMiningNumberOfManaBuckets = 10;
const int libSprt_gv_dataMiningMaxNumberOfDifferentManaRegenSources = 14;
const fixed libSprt_gv_dataMiningPeriodicSendPeriod = 60.0;
const fixed libSprt_gv_gPU2021ExtendedDurationXPGlobesDuration = 45.0;
const fixed libSprt_gv_gPU2021ExtendedDurationXPGlobesXPMod = 0.25;
// Structures
struct libSprt_gs_DataMiningPlayerData {
fixed lv_lastManaValue;
int[libSprt_gv_dataMiningNumberOfManaBuckets + 1] lv_timeSpentInEachManaBucket;
fixed[libSprt_gv_dataMiningMaxNumberOfDifferentManaRegenSources + 1] lv_manaRegenAmounts;
};
struct libSprt_gs_QACheatsControlsPanel {
int lv_mainDialog;
int lv_behaviorApplyButton;
int lv_behaviorRemoveButton;
int lv_behaviorCleanseButton;
int lv_behaviorListPulldown;
int lv_alliedControlCheckbox;
int lv_cooldownsCheckbox;
int lv_showMapCheckbox;
int lv_visionCheckbox;
int lv_gridCheckbox;
int lv_tVECheckbox;
int lv_freeCheckbox;
int lv_toggleSelectionCheckbox;
int lv_toggleWeaponsCheckbox;
int lv_speedCountEditbox;
int lv_executeSpeedButton;
int lv_spawnUnitListPulldown;
int lv_orderCheckbox;
int lv_chaosCheckbox;
int lv_neutralCheckbox;
int lv_spawnUnitButton;
int lv_closeButton;
int lv_debugKillButton;
int lv_refreshUnitButton;
int lv_moveUnitButton;
int lv_refreshCooldownsButton;
int lv_cameraAngleEditbox;
int lv_toggleDebugCameraCheckbox;
int lv_setCameraAngleButton;
int lv_debugRespawnButton;
int lv_spawnItemListPulldown;
int lv_itemCountEditbox;
int lv_spawnItemButton;
int lv_respawnStructuresButton;
int lv_killStructuresButton;
};
struct libSprt_gs_RS_Structure {
point lv_buildingPosition;
string lv_buildingType;
fixed lv_buildingFacing;
};
struct libSprt_gs_RS_Town {
libSprt_gs_RS_Structure[libGame_gv_townMaxStructureCount + 1] lv_structureArray;
};
// Variable Declarations
bool libSprt_gv_performanceTestPerformanceTestRunning;
bool[libCore_gv_bALMaxPlayers + 1] libSprt_gv_statTrackingOn;
fixed[libCore_gv_bALMaxPlayers + 1] libSprt_gv_statTrackingStartTime;
int libSprt_gv_statTrackingPlayers;
fixed libSprt_gv_dataMiningTimeStampofLastPeriodicTransmit;
timer libSprt_gv_dataMiningPeriodicTimer;
string[libSprt_gv_dataMiningMaxNumberOfDifferentManaRegenSources + 1] libSprt_gv_dataMiningManaRegenSourceNames;
libSprt_gs_DataMiningPlayerData[libCore_gv_bALMaxPlayers + 1] libSprt_gv_dataMining_PlayerData;
int libSprt_gv_heroMasteryRingsMaxRank;
unit libSprt_gv_qACheatsSelectedUnit;
bool libSprt_gv_qACheatsSeekingApplyTarget;
bool libSprt_gv_qACheatsSeekingRemoveTarget;
int libSprt_gv_qACheatsSelectedTeam;
unitgroup libSprt_gv_qACheatsSpawnedUnitsGroup;
int libSprt_gv_qACheatsSelectedBehavior;
int libSprt_gv_qACheatsSelectedSpawnUnit;
bool libSprt_gv_qACheatsWeaponsDisabled;
libSprt_gs_QACheatsControlsPanel libSprt_gv_qACheatsControlsPanel;
string[31] libSprt_gv_compiledBehaviorList;
string[31] libSprt_gv_qACheatsCompiledSpawnUnitsList;
string[6] libSprt_gv_qACheatsCompiledSpawnItemsList;
timer libSprt_gv_dEBUGBalanceProbeTimer;
fixed libSprt_gv_dEBUGBalanceProbeTimerDuration;
bool libSprt_gv_dEBUGDesignCamEnabled;
fixed libSprt_gv_soundRepeatDelay;
bool libSprt_gv_soundRepeatActive;
string libSprt_gv_soundRepeatCurrentAbility;
unit libSprt_gv_soundRepeatCasterUnit;
point libSprt_gv_soundRepeatTargetPoint;
unit libSprt_gv_soundRepeatTargetUnit;
int libSprt_gv_dEBUGXPPassiveBalancerTeam1Player;
int libSprt_gv_dEBUGXPPassiveBalancerTeam2Player;
bool libSprt_gv_dEBUGXPPassiveBalancerEnable;
bool libSprt_gv_dEBUGXPBoostEnable;
fixed libSprt_gv_dEBUGXPBoostMultiplier;
fixed libSprt_gv_dEBUGXPPassiveBoostMultiplier;
int libSprt_gv_dEBUGXPPassiveBoostTeam;
int libSprt_gv_dEBUGXPBoostTeam;
bool libSprt_gv_dEBUGXPTrickleOnly;
bool libSprt_gv_dEBUGXPSourceHero;
bool libSprt_gv_dEBUGXPSourceMinion;
bool libSprt_gv_dEBUGXPSourceStructure;
bool libSprt_gv_dEBUGXPSourceCreep;
bool libSprt_gv_dEBUGSelectionEnabled;
bool libSprt_gv_dEBUGTalentDebugEnabled;
bool libSprt_gv_dEBUGCombatTextEnabled;
bool libSprt_gv_dEBUGXPTextEnabled;
bool libSprt_gv_dEBUGHeroSelectWait;
bool libSprt_gv_dEBUGHeroMimic;
bool libSprt_gv_dEBUG60SecondPauseOnOff;
bool libSprt_gv_dEBUGDebugMessagesEnabled;
bool libSprt_gv_dEBUGCinematicsModeEnabled;
bool libSprt_gv_dEBUGMapTextEnabled;
bool libSprt_gv_dEBUGBonusMinionXP;
bool libSprt_gv_dEBUGNoRegen;
libSprt_gs_RS_Town[libGame_gv_townMaxTownCount + 1] libSprt_gv_rS_Towns;
fixed libSprt_gv_debug_GameTimeDelta;
unitgroup libSprt_gv_dEBUGDPSTrackerGroup;
fixed libSprt_gv_dEBUGDPSTrackerTotalDamage;
fixed libSprt_gv_dEBUGDPSTrackerTrackingInterval;
timer libSprt_gv_dEBUGDPSTrackerTimer;
fixed libSprt_gv_dEBUGDPSTrackerTime;
bool libSprt_gv_dEBUGSapperMinionsEnabled;
fixed libSprt_gv_dEBUGBaselineArmorValue;
fixed libSprt_gv_dEBUGBaselineSpellPowerValue;
bool libSprt_gv_gPU2021ExtendedDurationXPGlobesEnabled;
// Function Declarations
void libSprt_gf_PerformanceTestStartPerformanceTest (string lp_name);
void libSprt_gf_PerformanceTestStopPerformanceTest ();
void libSprt_gf_PerformanceTestHeroSelectScreen ();
void libSprt_gf_PerformanceTestHeroesIdleBeforeGame ();
void libSprt_gf_PerformanceTestHeroesIdleGameStart ();
void libSprt_gf_PerformanceTestHeroesIdleMinionsFighting ();
void libSprt_gf_PerformanceTestTwoHeroesActiveStart ();
void libSprt_gf_PerformanceTestTwoHeroesActiveInLane ();
void libSprt_gf_PerformanceTestSixHeroesActiveStart ();
void libSprt_gf_PerformanceTestSixHeroesActiveInLane ();
void libSprt_gf_PerformanceTestTenHeroesActiveStart ();
void libSprt_gf_PerformanceTestTenHeroesActiveInLane ();
void libSprt_gf_PerformanceTestChaosTeamDisabled ();
void libSprt_gf_PerformanceTestOrderTeamPushingUnopposed ();
int libSprt_gf_StatTrackingGetTrackedPlayerFromString (string lp_chatString);
void libSprt_gf_StatTrackingStartTrackingforPlayer (int lp_player);
void libSprt_gf_StatTrackingBreakTrackingforPlayer (int lp_player);
void libSprt_gf_StatTrackingStopTrackingforPlayer (int lp_player);
void libSprt_gf_StatTrackingReportStats (int lp_reportPlayer);
int libSprt_gf_DataMiningGetManaRegenSourceIndex (string lp_name);
void libSprt_gf_DataMiningPeriodicDataSend ();
void libSprt_gf_DataMiningLogManaRegenForPlayer (int lp_player, string lp_regenSourceName, fixed lp_amount);
void libSprt_gf_DataMiningTurnDataMiningTriggersOnOff (bool lp_onOff);
void libSprt_gf_DataMiningSendStartGameEvents ();
void libSprt_gf_DataMiningSendEndOfGameDigests (int lp_team);
void libSprt_gf_SetHeroMasteryRingLevel (int lp_player);
void libSprt_gf_ChoGallHeroMasteryRing (int lp_player);
void libSprt_gf_QACheatsUIInit ();
void libSprt_gf_QACheatsPopulateBehaviorPulldown ();
void libSprt_gf_QACheatsAddBehaviorButtons ();
void libSprt_gf_QACheatsAddToggleCheckboxes ();
void libSprt_gf_QACheatsAddSpeedControls ();
void libSprt_gf_QACheatsPopulateSpawnUnitsPulldown ();
void libSprt_gf_QACheatsAddTeamCheckboxes ();
void libSprt_gf_QACheatsAddUnitControlButtons ();
void libSprt_gf_QACheatsAddCameraControls ();
void libSprt_gf_QACheatsPopulateSpawnItemsPulldown ();
void libSprt_gf_QACheatsAddSpawnItemButton ();
void libSprt_gf_QACheatsAddStructureControlsButtons ();
void libSprt_gf_QACheatsAddDebugRespawnButton ();
void libSprt_gf_QACheatsCompileBehaviors ();
void libSprt_gf_QACheatsCompileSpawnUnits ();
void libSprt_gf_QACheatsCompileSpawnItems ();
void libSprt_gf_QACheatsCleanseAllEffects ();
void libSprt_gf_DEBUGSoundRepeatRepeatSound ();
void libSprt_gf_DEBUGStartGame ();
void libSprt_gf_DEBUGSpawnCreepCamps ();
void libSprt_gf_DEBUGToggleSelection ();
void libSprt_gf_DEBUGToggleSpawnatCameraorBaseSelection ();
void libSprt_gf_DEBUGToggleMinionSpawning ();
void libSprt_gf_DEBUGToggleTrickleXP ();
void libSprt_gf_DEBUGToggleCombatText ();
void libSprt_gf_DEBUGToggleAllCombatText ();
void libSprt_gf_DEBUGToggleSavedHeroCheckbox ();
void libSprt_gf_DEBUGRefreshCooldownsforUnit (int lp_player, unit lp_unit);
void libSprt_gf_DEBUGToggleUpdateDeathUIElements ();
void libSprt_gf_DEBUGIncrementAllQuests (int lp_player, int lp_count);
fixed libSprt_gf_DebugGameTimeDelta ();
void libSprt_gf_DEBUGTalentsRespec (int lp_player, int lp_tier);
void libSprt_gf_DEBUGAddDynamicStacksofBehaviortoUnit (fixed lp_rate, string lp_behavior, int lp_player, unit lp_unit);
// Trigger Declarations
trigger libSprt_gt_IncludeSupport;
trigger libSprt_gt_AISpawningTest;
trigger libSprt_gt_AutomatedBuildTest;
trigger libSprt_gt_PerformanceTestSpawnHeroesForHeroesPerformanceTestMap;
trigger libSprt_gt_PerformanceTestRunPerformanceTest;
trigger libSprt_gt_PerformanceTestSetHeroChoices;
trigger libSprt_gt_PerformanceTestGetFPS;
trigger libSprt_gt_PerformanceTestOutputFPSToFile;
trigger libSprt_gt_PerformanceTestMaintainHeroHealth;
trigger libSprt_gt_DEBUGStatTrackingStartforPlayer;
trigger libSprt_gt_DEBUGStatTrackingLogBreak;
trigger libSprt_gt_DEBUGStatTrackingStop;
trigger libSprt_gt_DEBUGStatTrackingStartTrackingforAllPlayers;
trigger libSprt_gt_DEBUGStatTrackingStopTrackingforAllPlayers;
trigger libSprt_gt_StatTrackingDamageTracking;
trigger libSprt_gt_StatTrackingHealingTracking;
trigger libSprt_gt_StatTrackingGameOver;
trigger libSprt_gt_DataMiningListenForRegenGlobes;
trigger libSprt_gt_DataMiningPeriodicDataSendPeriodicEventTrigger;
trigger libSprt_gt_DEBUGForceHeroMasteryRing0;
trigger libSprt_gt_DEBUGForceHeroMasteryRing1;
trigger libSprt_gt_DEBUGForceHeroMasteryRing2;
trigger libSprt_gt_DEBUGForceHeroMasteryRing3;
trigger libSprt_gt_DEBUGForceHeroMasteryRingRando;
trigger libSprt_gt_QACheatsInit;
trigger libSprt_gt_ToggleCheatsDialog;
trigger libSprt_gt_QACheatsCloseButtonClicked;
trigger libSprt_gt_QACheatsAlliedControlCheckboxClicked;
trigger libSprt_gt_QACheatsShowMapCheckboxClicked;
trigger libSprt_gt_QACheatsVisionCheckboxClicked;
trigger libSprt_gt_QACheatsCooldownsCheckboxClicked;
trigger libSprt_gt_QACheatsGridCheckboxClicked;
trigger libSprt_gt_QACheatsVisualizeEffectsCheckboxClicked;
trigger libSprt_gt_QACheatsToggleFreeCheckboxClicked;
trigger libSprt_gt_QACheatsToggleSelectionCheckboxClicked;
trigger libSprt_gt_QACheatsToggleDisableWeaponsCheckboxChecked;
trigger libSprt_gt_QACheatsDisableWeaponsOnSpawn;
trigger libSprt_gt_QACheatsDisableWeaponsOnChenUlt;
trigger libSprt_gt_QACheatsUnitSelected;
trigger libSprt_gt_QACheatsBehaviorDropdownSelectionChange;
trigger libSprt_gt_QACheatsBehaviorApplyButtonClicked;
trigger libSprt_gt_QACheatsBehaviorRemoveButtonClicked;
trigger libSprt_gt_QACheatsBehaviorCleanseButtonClicked;
trigger libSprt_gt_QACheatsExecuteSpeedButtonClicked;
trigger libSprt_gt_QACheatsSpawnUnitsDropdownSelectionChange;
trigger libSprt_gt_QACheatsTeamCheckboxesClicked;
trigger libSprt_gt_QACheatsSpawnUnitsButtonClicked;
trigger libSprt_gt_QACheatsDebugKillUnitButtonClicked;
trigger libSprt_gt_QACheatsRefreshUnitButtonClicked;
trigger libSprt_gt_QACheatsMoveUnitButtonClicked;
trigger libSprt_gt_QACheatsRefreshCooldownsButtonClicked;
trigger libSprt_gt_QACheatsSetCameraAngleButtonClicked;
trigger libSprt_gt_QACheatsToggleDebugCameraCheckboxChecked;
trigger libSprt_gt_QACheatsSpawnItemButtonClicked;
trigger libSprt_gt_QACheatsRespawnStructuresButtonClicked;
trigger libSprt_gt_QACheatsKillStructuresButtonClicked;
trigger libSprt_gt_QACheatsDebugRespawnButtonClicked;
trigger libSprt_gt_DEBUGIntroVOInteractorItemintrovotest;
trigger libSprt_gt_DEBUGIntroVOInteractorUsage;
trigger libSprt_gt_DEBUGInspectTheBalanceProbebalanceprobe;
trigger libSprt_gt_DEBUGResetTheBalanceProbebalancereset;
trigger libSprt_gt_DEBUGTimedBalanceProbebalancetimer;
trigger libSprt_gt_DEBUGBalanceProbeTimerExpires;
trigger libSprt_gt_DEBUGEnableSoundRepeat;
trigger libSprt_gt_DEBUGSoundRepeatAdjustDelay;
trigger libSprt_gt_DEBUGSoundRepeatAbilityUsed;
trigger libSprt_gt_DEBUGPassiveExpBalancerpassivebalance;
trigger libSprt_gt_DEBUGWhichplayersareAIwhoisai;
trigger libSprt_gt_DEBUGEqualizeExperienceeqxp;
trigger libSprt_gt_DEBUGBoostExperienceeqexpboost;
trigger libSprt_gt_DEBUGXPTrickleOnlyxptrickleonly;
trigger libSprt_gt_DEBUGSuppressDebugMessages;
trigger libSprt_gt_DEBUGXPHeroxphero;
trigger libSprt_gt_DEBUGXPMinionxpminion;
trigger libSprt_gt_DEBUGXPStructurexpstructure;
trigger libSprt_gt_DEBUGXPCreepxpcreep;
trigger libSprt_gt_DEBUGHelphelp;
trigger libSprt_gt_DEBUGPlayerNumberplayernum;
trigger libSprt_gt_DEBUGToggleSelectiontogselection;
trigger libSprt_gt_DEBUGToggleShowXPValuestogshowxpvalues;
trigger libSprt_gt_DEBUGStartGamestartgame;
trigger libSprt_gt_DEBUGDisablePingLimitfreepings;
trigger libSprt_gt_DEBUGPauseGameStartTimerpausestart;
trigger libSprt_gt_DEBUGTurnOnNormalCreepCampscreepcamp;
trigger libSprt_gt_DEBUGRespawnCreepCampsrespawncamps;
trigger libSprt_gt_DEBUGSpawnHerospawnhero;
trigger libSprt_gt_DEBUGRespawnHerodebugrespawn;
trigger libSprt_gt_DEBUGSelectHerodebugselect;
trigger libSprt_gt_DEBUGKillHerodebugkill;
trigger libSprt_gt_DEBUGAIHeroMimicheromimic;
trigger libSprt_gt_DEBUGAISetHerosethero;
trigger libSprt_gt_DEBUGAISetAllHerosetallheroes;
trigger libSprt_gt_DEBUGLogRandomHeroesForPlayer;
trigger libSprt_gt_DEBUGLevelAIHerosheroxp;
trigger libSprt_gt_DEBUGToggleFloatingCombatTexttogcombattext;
trigger libSprt_gt_DEBUGToggleMinionSpawningtogminionspawn;
trigger libSprt_gt_DEBUGToggleMinionSystemPausedtogminionpause;
trigger libSprt_gt_DEBUGToggleMinionSystemOnOfftogminionsystem;
trigger libSprt_gt_DEBUGToggleMinionBonusXPOnOff;
trigger libSprt_gt_DEBUGToggleTowerSystemOnOfftogtowersystem;
trigger libSprt_gt_DEBUGTowerSystemOntowerson;
trigger libSprt_gt_DEBUGTowerSystemOfftowersoff;
trigger libSprt_gt_DEBUGToggleXPTrickletogtrickle;
trigger libSprt_gt_DEBUGScalecatchupXPBonuscatchupxpbonus;
trigger libSprt_gt_DEBUGScalecatchupXPPenaltycatchupxppenalty;
trigger libSprt_gt_DEBUGToggleSoloXPtogsoloxp;
trigger libSprt_gt_DEBUGScaleCampscampscale;
trigger libSprt_gt_DEBUGHaveAITakeOverAI;
trigger libSprt_gt_DEBUGHaveAITakeOverAIAll;
trigger libSprt_gt_DEBUGHaveAITakeOverAIAllOff;
trigger libSprt_gt_DEBUGHaveAITakeOverAIAllOn;
trigger libSprt_gt_DEBUGAIShowTalentBuildaishowtalentbuild;
trigger libSprt_gt_DEBUGAICycleThroughAllHeroesailoadeveryhero;
trigger libSprt_gt_DEBUGDisplayHeroAIDebugInfoaidebug;
trigger libSprt_gt_DEBUGDisplayDefenderAIDebugInfodefenderdebug;
trigger libSprt_gt_DEBUGVictorydebugvictory;
trigger libSprt_gt_DEBUGStructures1ShotMinionskillerstructures;
trigger libSprt_gt_DEBUGIncreasedMinionDamagekillerminions;
trigger libSprt_gt_DEBUGRefreshCooldownscdr;
trigger libSprt_gt_DEBUGDefeatdebugdefeat;
trigger libSprt_gt_DEBUGUpvotedebugupvote;
trigger libSprt_gt_DEBUGTiedebugtie;
trigger libSprt_gt_DEBUGToggleHeroAItogheroai;
trigger libSprt_gt_DEBUGStopAIThinkTree;
trigger libSprt_gt_DEBUGStartAIThinkTree;
trigger libSprt_gt_DEBUGStopRegenstopregen;
trigger libSprt_gt_DEBUGStopHealthRegenForAllPlayersnoregen;
trigger libSprt_gt_DEBUGToggleCoreShieldMechanictogcoreshield;
trigger libSprt_gt_DEBUGToggleDebugOutputtogdebug;
trigger libSprt_gt_DEBUGToggleForCinematicstogcine;
trigger libSprt_gt_DEBUGToggleForMapTexttogmaptext;
trigger libSprt_gt_DEBUGTurnOffWeather;
trigger libSprt_gt_DEBUGTurnOnMinionSpellResist;
trigger libSprt_gt_DEBUGCompleteAllQuests;
trigger libSprt_gt_DEBUGProgressAllQuests;
trigger libSprt_gt_DEBUGTeamFightPerfTest;
trigger libSprt_gt_DEBUGToggleJungleCampDebugtogcampdebug;
trigger libSprt_gt_DEBUGTargetJungleCreepState;
trigger libSprt_gt_DEBUG60SecondPause;
trigger libSprt_gt_DEBUGTriggerASave;
trigger libSprt_gt_DEBUGHeroIsAlive;
trigger libSprt_gt_DEBUGShortHeroDeath;
trigger libSprt_gt_DEBUGInvulnerableStructures;
trigger libSprt_gt_DEBUGRespawnStructures;
trigger libSprt_gt_DEBUGKillStructures;
trigger libSprt_gt_DEBUGCollectStructureData;
trigger libSprt_gt_DEBUGGameTime;
trigger libSprt_gt_DEBUGChooseTalent;
trigger libSprt_gt_DEBUGXPRange;
trigger libSprt_gt_DEBUGAfkSystem;
trigger libSprt_gt_DEBUGStartDPSTracker;
trigger libSprt_gt_DEBUGDPSTracker;
trigger libSprt_gt_DEBUGClearDPSTrackerStats;
trigger libSprt_gt_DEBUGDPSTrackerTimerExpires;
trigger libSprt_gt_DEBUGTemp;
trigger libSprt_gt_DEBUGDontStart;
trigger libSprt_gt_DEBUGEnableBuildingScaling;
trigger libSprt_gt_DEBUGEnabletownhalldetection;
trigger libSprt_gt_DEBUGToggleEUPTLogging;
trigger libSprt_gt_DEBUGGetBaseUnitStats;
trigger libSprt_gt_DEBUGWizardtoSappers;
trigger libSprt_gt_DEBUGSapperHealthGlobes;
trigger libSprt_gt_DEBUGSapperSuicideDamage;
trigger libSprt_gt_DEBUGSapperAttackDamage;
trigger libSprt_gt_DEBUGSapperHealth;
trigger libSprt_gt_DEBUGApplyArmorValueChange;
trigger libSprt_gt_DEBUGApplySpellPowerValueChange;
// Library Initialization
void libSprt_InitVariables ();