include "TriggerLibs/HeroesLib"



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

// Library: Braxis Holdout

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

// Preset Declarations

const int libSCHO_ge_MMHO_BeaconSignals_Null = 0;

const int libSCHO_ge_MMHO_BeaconSignals_Start = 1;

const int libSCHO_ge_MMHO_BeaconSignals_Stop = 2;

const int libSCHO_ge_MMHOSpawnCageQuadrants_OrderTop = 0;

const int libSCHO_ge_MMHOSpawnCageQuadrants_ChaosTop = 1;

const int libSCHO_ge_MMHOSpawnCageQuadrants_OrderBottom = 2;

const int libSCHO_ge_MMHOSpawnCageQuadrants_ChaosBottom = 3;

const int libSCHO_ge_MMHOUIModes_Idle = 0;

const int libSCHO_ge_MMHOUIModes_ZergWarning = 1;

const int libSCHO_ge_MMHOUIModes_ZergAttacking = 2;

const int libSCHO_ge_MMHOUIModes_BeaconEvent = 3;



// Constants

const string libSCHO_gv_mMSC1MechanicName_C = "HoldOut";

const fixed libSCHO_gv_mMHO_AttackEventWarningDuration_C = 30.0;

const fixed libSCHO_gv_mMHO_FirstAttackEventDuration_C = 60.0;

const fixed libSCHO_gv_mMHO_AttackEventDuration_C = 100.0;

const fixed libSCHO_gv_mMHO_AttackWaveTimerDuration_C = 8.0;

const int libSCHO_gv_mMHO_ControlBeaconMaxCount_C = 2;

const fixed libSCHO_gv_mMHO_CapturePointCaptureTime_C = 3.0;

const fixed libSCHO_gv_mMHO_CapturePointRadius_C = 4.0;

const fixed libSCHO_gv_mMHO_ControlBeaconProgressIncrement_C = 2.0;

const fixed libSCHO_gv_mMHO_ControlBeaconProgressTime_C = 0.75;

const int libSCHO_gv_mMHO_TopBeaconIndex_C = 1;

const int libSCHO_gv_mMHO_BottomBeaconIndex_C = 2;

const fixed libSCHO_gv_mMHO_Factory_Anim_Headstart_C = 6.0;

const fixed libSCHO_gv_mMHO_Elevator_Anim_Headstart_C = 8.0;

const fixed libSCHO_gv_mMHO_ZerglingBanelingSubtractor_C = 10.0;

const fixed libSCHO_gv_mMHO_ZerglingBanelingConversionPoint_C = 0.0;

const fixed libSCHO_gv_mMHO_HydraliskSubtractor_C = 24.0;

const fixed libSCHO_gv_mMHO_UltraliskSubtractor_C = 45.0;

const fixed libSCHO_gv_mMHO_GuardianSubtractor_C = 30.0;

const fixed libSCHO_gv_zergDropPodCooldownTime_C = 13.0;

const fixed libSCHO_gv_zergDropPodMaximumDrops_C = 6.0;

const fixed libSCHO_gv_mMHO_RegenGlobeCoolupTime_C = 45.0;

const fixed libSCHO_gv_mMHO_UltraliskHealthWeighting = 0.5;

const fixed libSCHO_gv_mMHO_GuardianHealthWeighting = 2.0;



// Structures

struct libSCHO_gs_MMHO_HiveControlBeacons {

    unit lv_beaconUnit;

    region lv_captureRegion;

    int lv_controlBeaconIndex;

    bool lv_enabled;

    int lv_owner;

    int lv_pingModelOrder;

    int lv_pingModelChaos;

};



struct libSCHO_gs_MMHO_NorthSouth {

    unit lv_north;

    unit lv_south;

    region lv_northSoundRegion;

    region lv_southSoundRegion;

};



struct libSCHO_gs_MMHO_Factory_Info {

    timer lv_animationTimer;

    int lv_index;

};



struct libSCHO_gs_MMHO_SpawnProgressTracker {

    fixed lv_zerglingCount;

    fixed lv_banelingCount;

    fixed lv_hydraliskCount;

    fixed lv_guardianCount;

    fixed lv_ultraliskCount;

};



struct libSCHO_gs_MMHOSpawnCageRegions {

    region lv_frontSpawnRegion;

    region lv_middleSpawnRegion;

    region lv_backSpawnRegion;

};



struct libSCHO_gs_MMHO_Elevator {

    timer lv_elevatorInitialRaiseTimer;

    timer lv_elevatorRaiseTimer;

    timer lv_elevatorLowerTimer;

    bool lv_elevatorWasLowered;

};



struct libSCHO_gs_MMHOPanel {

    int lv_mainPanel;

    int lv_zergWarningFrame;

    int lv_zergWarningInfoFrame;

    int lv_zergWarningTimerLabel;

    int lv_zergAttackingFrame;

    int lv_zergAttackingInfoFrame;

    int lv_zergAttackingTimerLabel;

    int[3] lv_beaconProgressFrame;

    int[3][3] lv_beaconProgressHUD;

    int[3][3] lv_beaconProgressHPBar;

    int[3][3] lv_beaconProgressHPBarLabel;

    int[3][3] lv_beaconProgressHPBarAnimFrame;

    int lv_beaconStatusFrame;

    int[libCore_gv_bALMaxTeams + 1] lv_beaconStatusTopBeaconDisabledImage;

    int[libCore_gv_bALMaxTeams + 1] lv_dragonShireMoonShrineEnabledImage;

    int[libCore_gv_bALMaxTeams + 1] lv_dragonShireStarShrineDisabledImage;

    int[libCore_gv_bALMaxTeams + 1] lv_dragonShireStarShrineEnabledImage;

    int lv_beaconTopNeutral;

    int lv_beaconTopOrder;

    int lv_beaconTopChaos;

    int lv_beaconBottomNeutral;

    int lv_beaconBottomOrder;

    int lv_beaconBottomChaos;

    int lv_lightningLink1;

    int lv_lightningLink2;

    int lv_lightningLink3;

    int lv_lightningLink4;

    int[libCore_gv_bALMaxTeams + 1] lv_zergHudLeft;

    int[libCore_gv_bALMaxTeams + 1] lv_zergHudRight;

    int[libCore_gv_bALMaxTeams + 1] lv_alliedZergLabel;

    int[libCore_gv_bALMaxTeams + 1] lv_enemyZergLabel;

    int[libCore_gv_bALMaxTeams + 1] lv_beaconProgressLabel;

    int[libCore_gv_bALMaxTeams + 1] lv_eggIconImageLeft;

    int[libCore_gv_bALMaxTeams + 1] lv_eggIconImageRight;

    int lv_beaconTopRadarWave;

    int lv_beaconBottomRadarWave;

};



struct libSCHO_gs_MMHO_ZergIconUnitData {

    unit lv_iconUnit;

};



// Variable Declarations

timer libSCHO_gv_mMHO_AttackEventTimer;

timer libSCHO_gv_mMHO_AttackEventWarningTimer;

timer libSCHO_gv_mMHO_AttackWaveTimer;

int libSCHO_gv_mMHO_AttackLane;

int libSCHO_gv_mMHO_AttackLaneHPMiniMapController;

point[9][11] libSCHO_gv_mMHO_AttackPointsFort;

point[5][11] libSCHO_gv_mMHO_AttackPointsKeep;

point libSCHO_gv_mMHO_TopCaptureBeacon;

point libSCHO_gv_mMHO_BottomCaptureBeacon;

doodad libSCHO_gv_mMHO_TopCaptureSlab;

doodad libSCHO_gv_mMHO_BottomCaptureSlab;

region libSCHO_gv_mMHO_TopBeaconOwnershipRegion;

region libSCHO_gv_mMHO_BottomBeaconOwnershipRegion;

libSCHO_gs_MMHO_HiveControlBeacons[libSCHO_gv_mMHO_ControlBeaconMaxCount_C + 1] libSCHO_gv_mMHO_HiveControlBeacons;

int libSCHO_gv_mMHO_NumberOfEventsFired;

fixed[3] libSCHO_gv_mMHO_TeamProgress;

string[3] libSCHO_gv_mMHO_TeamZergTier;

bool libSCHO_gv_mMHO_HiveControlBeaconEventActive;

unit libSCHO_gv_beaconUnitTop;

unit libSCHO_gv_beaconUnitBottom;

actor libSCHO_gv_mMHO_BeamSoundRegion;

libSCHO_gs_MMHO_NorthSouth[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_HiveCages;

libSCHO_gs_MMHO_NorthSouth libSCHO_gv_mMHO_BeaconAntennae;

doodad[11] libSCHO_gv_mMHO_UpArrows;

doodad[11] libSCHO_gv_mMHO_DownArrows;

region libSCHO_gv_mMHO_TopCableRegion;

region libSCHO_gv_mMHO_BottomCableRegion;

doodad libSCHO_gv_mMHO_TopBeaconTopArrow;

doodad libSCHO_gv_mMHO_TopBeaconBottomArrow;

doodad libSCHO_gv_mMHO_BottomBeaconTopArrow;

doodad libSCHO_gv_mMHO_BottomBeaconBottomArrow;

doodad[7] libSCHO_gv_mMHO_CaptureCables;

libSCHO_gs_MMHO_Factory_Info[7] libSCHO_gv_mMHO_Factory_Timer;

doodad[7] libSCHO_gv_mMHO_FactoryMercCampDoodads;

int libSCHO_gv_mMHO_FreeZerglingCount_C;

int libSCHO_gv_mMHO_FreeBanelingCount_C;

int libSCHO_gv_mMHO_FreeHydraliskCount_C;

int libSCHO_gv_mMHO_FreeUltraliskCount_C;

int libSCHO_gv_mMHO_FreeGuardianCount_C;

region libSCHO_gv_mMHO_Chaos_TopSpawnRegion;

region libSCHO_gv_mMHO_Chaos_BottomSpawnRegion;

region libSCHO_gv_mMHO_Order_TopSpawnRegion;

region libSCHO_gv_mMHO_Order_BottomSpawnRegion;

region libSCHO_gv_mMHO_Order_TopHoldingPenRegion;

region libSCHO_gv_mMHO_Chaos_TopHoldingPenRegion;

region libSCHO_gv_mMHO_Order_BottomHoldingPenRegion;

region libSCHO_gv_mMHO_Chaos_BottomHoldingPenRegion;

point libSCHO_gv_mMHO_Order_TopHoldingPenPingPoint;

point libSCHO_gv_mMHO_Chaos_TopHoldingPenPingPoint;

point libSCHO_gv_mMHO_Order_BottomHoldingPenPingPoint;

point libSCHO_gv_mMHO_Chaos_BottomHoldingPenPingPoint;

point[3] libSCHO_gv_mMHO_Order_TopUltraliskPoints;

point[3] libSCHO_gv_mMHO_Chaos_TopUltraliskPoints;

point[3] libSCHO_gv_mMHO_Order_BottomUltraliskPoints;

point[3] libSCHO_gv_mMHO_Chaos_BottomUltraliskPoints;

libSCHO_gs_MMHO_SpawnProgressTracker[3] libSCHO_gv_mMHO_SpawnProgressTracker;

unitgroup libSCHO_gv_mMHO_ChaosUltralisks;

unitgroup libSCHO_gv_mMHO_OrderUltralisks;

string[6][5] libSCHO_gv_mMHO_AttackWaveType;

unitgroup[3][4] libSCHO_gv_mMHO_AttackGroups;

unitgroup libSCHO_gv_mMHO_ZergWaveGroup;

int libSCHO_gv_mMHO_WaveTracker;

int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ZergAICustomUnitValue;

libSCHO_gs_MMHOSpawnCageRegions[5] libSCHO_gv_mMHOSpawnCageRegions;

int[3] libSCHO_gv_mMHO_ZerglingCount;

int[3] libSCHO_gv_mMHO_BanelingCount;

unit libSCHO_gv_mMHO_ArchangelLaner;

unit libSCHO_gv_mMHO_ArchangelElevatorBlockerUnit;

point libSCHO_gv_mMHO_ArchangelSpawnLocationCenter;

point[3] libSCHO_gv_mMHO_ArchangelLanerStartPoints;

int libSCHO_gv_mMHO_ArchangelAICustomUnitValue;

int libSCHO_gv_mMHO_ArchangelCurrentPathIndex;

int libSCHO_gv_mMHO_ArchangelPathIndexMax;

int libSCHO_gv_mMHO_ArchangelWinningTeam;

int libSCHO_gv_mMHO_ArchangelLanerPathLine;

bool libSCHO_gv_mMHO_ArchangelLanerPathLineCreated;

point libSCHO_gv_mMHO_ArchangelLanerRallyPoint;

int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ArchangelLanerPing;

doodad libSCHO_gv_mMHO_ArchangelElevator;

region libSCHO_gv_mMHO_ArchangelElevatorRegion;

bool libSCHO_gv_mMHO_ArchangelElevator_ShouldBeLowered;

libSCHO_gs_MMHO_Elevator libSCHO_gv_mMHO_Elevator;

timer[libCore_gv_bALMaxTeams + 1] libSCHO_gv_zergDropPodCooldowns;

fixed[libCore_gv_bALMaxTeams + 1] libSCHO_gv_zergDropPodDropsRemaining;

fixed[libCore_gv_bALMaxPlayers + 1] libSCHO_gv_mMHOEndofMatchAwardZergCrusherValue;

int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ReminderTransmissions;

timer libSCHO_gv_mMHO_ScalingTimer;

fixed libSCHO_gv_mMHO_ScalingLevel;

libSCHO_gs_MMHOPanel libSCHO_gv_mMHOPanel;

unit libSCHO_gv_mMHO_OrderProgressUnit;

unit libSCHO_gv_mMHO_ChaosProgressUnit;

bool libSCHO_gv_mMHO_OrderPlayedAnimation;

bool libSCHO_gv_mMHO_ChaosPlayedAnimation;

libSCHO_gs_MMHO_ZergIconUnitData[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ZergIconUnit;

int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ZergPaths;

int[3] libSCHO_gv_mMHO_EnemyZergIcon;

int[3] libSCHO_gv_mMHO_AllyZergIcon;

fixed[3] libSCHO_gv_mMHO_TotalZergHP;

int[3] libSCHO_gv_mMHO_ObsZergPing;

int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ZergCurrentPathIndex;

int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ZergPathIndexMax;



// Function Declarations

void libSCHO_gf_MMHOEventWarningAnnouncement ();

void libSCHO_gf_MMHOInitializeHiveControlCapturePoints ();

void libSCHO_gf_MMHOCreateHiveControlPings ();

void libSCHO_gf_MMHODestroyHiveControlPings ();

void libSCHO_gf_MMHOHiveBeaconSpawnAnnouncement ();

int libSCHO_gf_MMHOGetHiveControlBeaconOwners ();

string libSCHO_gf_MMHOGetUserDataInstanceTier (int lp_team);

void libSCHO_gf_MMHOTurnOnHiveControlBeacons ();

void libSCHO_gf_MMHOHiveControlBeaconDoodadController (int lp_beaconIndex);

void libSCHO_gf_MMHOHiveCageFullyCharged ();

void libSCHO_gf_MMHOControlSlabAnimationsEventStartStop (int lp_startOrStop);

void libSCHO_gf_MMHOControlSlabAnimationOwnershipChange (int lp_team, int lp_beaconIndex);

void libSCHO_gf_MMHOControlSlabAnimationProgressReached100 ();

void libSCHO_gf_MMHOControlSlabAnimationsProgress (int lp_team);

void libSCHO_gf_MMHOTurnOnOffAntenna (bool lp_onOff);

void libSCHO_gf_MMHOBothBeaconsCapturedBeams (int lp_team);

void libSCHO_gf_MMHOBothBeaconsNoLongerCapturedBeams ();

void libSCHO_gf_SetUpRoadArrowTeamColorAndAnimations (int lp_team);

void libSCHO_gf_SetDownRoadArrowTeamColorAndAnimations (int lp_team);

void libSCHO_gf_ClearRoadArrowVisualsAndTeamColor ();

void libSCHO_gf_MMHOOpenCloseCaptureCages (bool lp_openClose, int lp_team);

void libSCHO_gf_MMHOOpenLeftRightUltraliskCages (int lp_team);

void libSCHO_gf_MMHOSetCableAnimationOwership (int lp_team);

void libSCHO_gf_MMHOSetSwitchAnimationOwnershipChanges (int lp_team, int lp_beaconIndex);

void libSCHO_gf_MMHOSetSwitchAnimationBothBeaconsCaptured (int lp_team);

void libSCHO_gf_MMHOSetSwitchAnimationBothBeaconsNoLongerCaptured ();

void libSCHO_gf_MMHOTurnCaptureCablesOnOffForTeam (bool lp_onOff, int lp_team);

void libSCHO_gf_MMHOTurnOnAlarmLightsForTeam (int lp_team);

void libSCHO_gf_MMHOClearAlarmLights ();

void libSCHO_gf_MakeSCVUnitsMoveAround (unit lp_sCV1, unit lp_sCV2, unit lp_sCV3, point lp_turnInPoint, point lp_mineralPatch1, point lp_mineralPatch2, point lp_mineralPatch3);

void libSCHO_gf_MMHODetermineAttackWavePath (int lp_waveIndex);

void libSCHO_gf_MMHOTeleportStuckZergFailsafe (int lp_waveIndex);

void libSCHO_gf_MMHOAttackWavePath (unitgroup lp_topGroup, unitgroup lp_botGroup);

void libSCHO_gf_MMHOSendAttackWave (unitgroup lp_waveUnits, point lp_wP1, int lp_teamToAttack);

void libSCHO_gf_MMHOZergAttackFinishedMonitorWait ();

void libSCHO_gf_MMHOSetupZergAttackWave ();

void libSCHO_gf_MMHOSpawnBeaconWave ();

void libSCHO_gf_MMHOSpawnBeaconUnits (int lp_attackLane, region lp_spawnRegion);

void libSCHO_gf_MMHOGrantFreeZergUnits (int lp_team);

void libSCHO_gf_MMHOPeriodicallySpawnZergUnits (int lp_team);

void libSCHO_gf_MMHOModifySpawnProgressVariables (int lp_team);

void libSCHO_gf_MMHODetermineSpawnCompositionBasedOnProgress (int lp_team, region lp_spawnRegion);

void libSCHO_gf_MMHOResetSpawnProgressVariables (int lp_team);

void libSCHO_gf_MMHOSpawnUltralisksForTeam (int lp_team);

void libSCHO_gf_MMHOActivateUltraliskForTeam (point lp_targetLocation, int lp_team);

void libSCHO_gf_MMHOCleanUpRemainingUltralisks ();

void libSCHO_gf_MMHORemoveStasisBehaviorFromZerg ();

void libSCHO_gf_MMHODetermineFreeZerglingBanelingCount ();

void libSCHO_gf_MMHOSpawnZerglingsBanelings (int lp_attackLane, int lp_team, region lp_spawnRegion);

void libSCHO_gf_MMHOSpawnLanerArchangel (int lp_team, int lp_campIndex);

void libSCHO_gf_MMHOSetArchangelLanerStartPoints (point lp_lane1, point lp_lane2, point lp_center);

void libSCHO_gf_MMHOCalculateArchangelRallyPoint ();

int libSCHO_gf_MMHODetermineArchangelPushingLane (int lp_team);

int libSCHO_gf_MMHOTownComparison (int lp_town1, int lp_town2, int lp_player);

fixed libSCHO_gf_MMHOTownHealth (int lp_town, int lp_player);

void libSCHO_gf_MMHOCreateArchangelPathLine (unit lp_unit, bool lp_new_Path);

void libSCHO_gf_MMHOElevatorAddRemoveUnpathable (bool lp_addRemove);

void libSCHO_gf_MMHODelayElevatorLowering ();

void libSCHO_gf_MMHOCreateDropPod (point lp_dropPodPosition, int lp_dropPodOwner);

void libSCHO_gf_MMHODisplayRegenGlobeGeneratorTimer (unit lp_unit);

void libSCHO_gf_MMHORegenGlobeCoolupTime ();

void libSCHO_gf_MMHOEndofMatchAwardZergCrusherModifyValuesandReport (int lp_player, fixed lp_damage);

void libSCHO_gf_MMHOTransmissionBeaconsActivating ();

void libSCHO_gf_MMHOTransmissionBeaconsActive ();

void libSCHO_gf_MMHOTransmissionZergAttacking ();

void libSCHO_gf_MMHOTransmissionAllZergDead ();

void libSCHO_gf_MMHOTransmissionBeaconsFullyCaptured (fixed lp_orderTeamProgress, fixed lp_chaosTeamProgress);

void libSCHO_gf_MMHOUpdateTerranScaling ();

void libSCHO_gf_MMHOCalculateZergTotalHP (bool lp_calculateMaximum);

void libSCHO_gf_MMHOChangeZergMinimapIconsBasedOnZergHealth (int lp_team, unit lp_unit);

void libSCHO_gf_MMHOUpdateZergMinimapIcons (int lp_team);

void libSCHO_gf_MMHOInitializeZergPath ();

void libSCHO_gf_MMHOCreateZergPath (int lp_team, bool lp_newPath);

int libSCHO_gf_MMHOCreateZergPing (playergroup lp_playerGroup, unit lp_unit, string lp_zergPingModel);

void libSCHO_gf_MMHOUIInit (int lp_parentPanel);

void libSCHO_gf_MMHOUIShowHidePanel (bool lp_showHide);

void libSCHO_gf_MMHOUISetMode (int lp_mode);

void libSCHO_gf_MMHOUISetZergWarningTime (int lp_progressUnit);

void libSCHO_gf_MMHOUISetZergAttackingTime (int lp_progressUnit);

void libSCHO_gf_MMHOUICreateProgressUnits ();

void libSCHO_gf_MMHOUISetProgressUnits ();

void libSCHO_gf_MMHOUISetZergSwarmKilled (int lp_mode);

void libSCHO_gf_MMHOUISetTopBeaconOwner (int lp_team);

void libSCHO_gf_MMHOUISetBottomBeaconOwner (int lp_team);

void libSCHO_gf_MMHOUIBeaconStatusMonitor ();

void libSCHO_gf_MMHOShowHideBeaconMinimapPings (bool lp_showHide);

void libSCHO_gf_MMHOSpawnSpecificAttackWave (region lp_attackRegion, point lp_point, string lp_attackWave);



// Trigger Declarations

trigger libSCHO_gt_IncludeHoldOut;

trigger libSCHO_gt_MMHOInitializeMercCampData;

trigger libSCHO_gt_MMHOInitializePingData;

trigger libSCHO_gt_MMHOInit;

trigger libSCHO_gt_MMHOGateOpen;

trigger libSCHO_gt_MMHOStartWarningTimer;

trigger libSCHO_gt_MMHOWarningTimerExpires;

trigger libSCHO_gt_MMHOSpawnAttackWaves;

trigger libSCHO_gt_MMHOHiveControlBeaconChangesOwner;

trigger libSCHO_gt_MMHOHiveControlBeaconMonitor;

trigger libSCHO_gt_MMHOAnimateFactory;

trigger libSCHO_gt_MMHOMercCampSpawned;

trigger libSCHO_gt_MMHOMercCampCleared;

trigger libSCHO_gt_MMHOArchangelIsCaptured;

trigger libSCHO_gt_MMHOArchangelDies;

trigger libSCHO_gt_MMHOArchangelDefenderSpawned;

trigger libSCHO_gt_MMHOArchangelUpdateMercPath;

trigger libSCHO_gt_MMHOAddUnpathableLocationAtStart;

trigger libSCHO_gt_MMHOElevatorInitialTimerExpires;

trigger libSCHO_gt_MMHOElevatorLowerTimerExpires;

trigger libSCHO_gt_MMHOElevatorRaiseTimerExpires;

trigger libSCHO_gt_MMHOZergAttacksEnemy;

trigger libSCHO_gt_MMHOScalingTimerExpires;

trigger libSCHO_gt_MMHOZergUnitTakesDamage;

trigger libSCHO_gt_MMHOZergIconUnitDies;

trigger libSCHO_gt_MMHOUpdateZergPath;

trigger libSCHO_gt_MMHOUIModInitialize;

trigger libSCHO_gt_MMHOUIHandler;

trigger libSCHO_gt_DebugEVENTSTART;

trigger libSCHO_gt_DebugEVENTSTARTFAST;

trigger libSCHO_gt_DebugRespawnCamps;

trigger libSCHO_gt_DebugTestWave;

trigger libSCHO_gt_DebugDisableEvent;



// Library Initialization

void libSCHO_InitVariables ();