include "TriggerLibs/NativeLib"

include "TriggerLibs/HeroesLib"

include "TriggerLibs/GameLib"

include "TriggerLibs/MapMechanicsLib"

include "TriggerLibs/UILib"



include "Lib566061C9_h"



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

// Library: MMSC

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

// External Library Initialization

void lib566061C9_InitLibraries () {

    libNtve_InitVariables();

    libCore_InitVariables();

    libGame_InitVariables();

    libMapM_InitVariables();

    libUIUI_InitVariables();

}



// Variable Initialization

bool lib566061C9_InitVariables_completed = false;



void lib566061C9_InitVariables () {

    if (lib566061C9_InitVariables_completed) {

        return;

    }



    lib566061C9_InitVariables_completed = true;



    lib566061C9_gv_mMSC_ScalingTime_C = 60.0;

    lib566061C9_gv_mMSC_TerranRavenSeekerMissileInnerDamageScaling_C = 32;

    lib566061C9_gv_mMSC_TerranRavenSeekerMissileMiddleDamageScaling_C = 16;

    lib566061C9_gv_mMSC_TerranRavenSeekerMissileOuterDamageScaling_C = 8;

    lib566061C9_gv_mMSC_WizardMinionHealingScaling_C = 2;

    lib566061C9_gv_mMSC_ScalingTimer = TimerCreate();

}



// Triggers

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

// Trigger: #Include MM SC

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

bool lib566061C9_gt_IncludeMMSC_Func (bool testConds, bool runActions) {

    // Automatic Variable Declarations

    // Actions

    if (!runActions) {

        return true;

    }



    TriggerExecute(lib566061C9_gt_MMSCInitializeMercCampData, true, false);

    TriggerExecute(lib566061C9_gt_MMSCInitializePingData, true, false);

    return true;

}



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

void lib566061C9_gt_IncludeMMSC_Init () {

    lib566061C9_gt_IncludeMMSC = TriggerCreate("lib566061C9_gt_IncludeMMSC_Func");

}



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

// Trigger: MM SC Initialize Map MVP Announcer Sounds

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

bool lib566061C9_gt_MMSCInitializeMapMVPAnnouncerSounds_Func (bool testConds, bool runActions) {

    // Variable Declarations

    int lv_player;



    // Automatic Variable Declarations

    int autoB38B751F_ae;



    // Variable Initialization



    // Actions

    if (!runActions) {

        return true;

    }



    autoB38B751F_ae = libCore_gv_bALMaxEnginePlayerCount;

    lv_player = 1;

    for ( ; lv_player <= autoB38B751F_ae ; lv_player += 1 ) {

        libGame_gv_players[lv_player].lv_lootContent.lv_loot_AnnouncerPack.lv_announcerVOLines[libCore_ge_AnnouncerVOEvents_MVP].lv_soundLink = "Adjutant_MVP";

        libGame_gv_players[lv_player].lv_lootContent.lv_loot_AnnouncerPack.lv_announcerVOLines[libCore_ge_AnnouncerVOEvents_MVP].lv_playAtGameEnd = true;

        libGame_gv_players[lv_player].lv_lootContent.lv_loot_AnnouncerPack.lv_announcerVOLines[libCore_ge_AnnouncerVOEvents_MVPVoteEpic].lv_soundLink = "Adjutant_Epic";

        libGame_gv_players[lv_player].lv_lootContent.lv_loot_AnnouncerPack.lv_announcerVOLines[libCore_ge_AnnouncerVOEvents_MVPVoteEpic].lv_playAtGameEnd = true;

        libGame_gv_players[lv_player].lv_lootContent.lv_loot_AnnouncerPack.lv_announcerVOLines[libCore_ge_AnnouncerVOEvents_MVPVoteLegendary].lv_soundLink = "Adjutant_Legendary";

        libGame_gv_players[lv_player].lv_lootContent.lv_loot_AnnouncerPack.lv_announcerVOLines[libCore_ge_AnnouncerVOEvents_MVPVoteLegendary].lv_playAtGameEnd = true;

    }

    return true;

}



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

void lib566061C9_gt_MMSCInitializeMapMVPAnnouncerSounds_Init () {

    lib566061C9_gt_MMSCInitializeMapMVPAnnouncerSounds = TriggerCreate("lib566061C9_gt_MMSCInitializeMapMVPAnnouncerSounds_Func");

    libCore_gf_IncludeModInitialization(lib566061C9_gt_MMSCInitializeMapMVPAnnouncerSounds);

}



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

// Trigger: MM SC Initialize Merc Camp Data

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

bool lib566061C9_gt_MMSCInitializeMercCampData_Func (bool testConds, bool runActions) {

    // Variable Declarations

    int lv_campType;



    // Automatic Variable Declarations

    // Variable Initialization



    // Actions

    if (!runActions) {

        return true;

    }



    libMapM_gf_InitializeHellbatMercType(libMapM_ge_JungleCampMercTypes_SiegeCamp1, StringExternal("Param/Value/lib_566061C9_92480D6A"), libMapM_gv_genericMercCampInitialSpawnDelay_C, 180.0, false);

    lv_campType = (libMapM_ge_JungleCampDefenderTypes_BruiserCamp1);

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campIsSoloable = true;

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defendersCoweronDeath = false;

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_initialSpawnDelay = libMapM_gv_genericMercCampInitialSpawnDelay_C;

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_respawnTime = 240.0;

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_numberOfCreeps = 4;

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_campTypeMinimapLabel = StringExternal("Param/Value/lib_566061C9_69460DDA");

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[1] = "TerranGoliathDefender";

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defenderCoweringUnit[1] = false;

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[2] = "TerranGoliathDefender";

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defenderCoweringUnit[2] = false;

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[3] = "TerranGoliathDefender";

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defenderCoweringUnit[3] = false;

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_creepUnitTypes[4] = "TerranRavenDefender";

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_defenderCoweringUnit[4] = false;

    libMapM_gv_dataJungleCampDefenderData[lv_campType].lv_xPAwardForCapture = libCore_gv_data_XP_OgreCapture_C;

    libMapM_gv_dataJungleCampMercData[lv_campType].lv_numberOfMinionsSpawned = 4;

    libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[1] = "TerranGoliath";

    libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[2] = "TerranGoliath";

    libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[3] = "TerranGoliath";

    libMapM_gv_dataJungleCampMercData[lv_campType].lv_spawnedMinionUnitTypes[4] = "TerranRaven";

    libMapM_gf_DataInitializeScalingDataForDefender(libMapM_ge_JungleCampDefenderTypes_BruiserCamp1, "TerranGoliathDefenderScaling");

    libMapM_gf_DataInitializeScalingDataForDefender(libMapM_ge_JungleCampDefenderTypes_BruiserCamp1, "TerranRavenDefenderScaling");

    libMapM_gf_DataInitializeScalingDataForMerc(libMapM_ge_JungleCampMercTypes_BruiserCamp1, "TerranGoliathScaling");

    libMapM_gf_DataInitializeScalingDataForMerc(libMapM_ge_JungleCampMercTypes_BruiserCamp1, "TerranRavenScaling");

    return true;

}



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

void lib566061C9_gt_MMSCInitializeMercCampData_Init () {

    lib566061C9_gt_MMSCInitializeMercCampData = TriggerCreate("lib566061C9_gt_MMSCInitializeMercCampData_Func");

}



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

// Trigger: MM SC Initialize Ping Data

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

bool lib566061C9_gt_MMSCInitializePingData_Func (bool testConds, bool runActions) {

    // Automatic Variable Declarations

    // Actions

    if (!runActions) {

        return true;

    }



    libUIUI_gf_PingCreateNewPingTarget("TerranHellbatDefender", false, StringExternal("Param/Value/lib_566061C9_EC742A8A"), StringExternal("Param/Value/lib_566061C9_C6954D83"), StringExternal("Param/Value/lib_566061C9_6F87910C"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));

    libUIUI_gf_PingSetHumanAISourceHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackMercCamp, libCore_ge_HeroVOEvents_AIMercCapture);

    libUIUI_gf_PingCreateNewPingTarget("TerranHellbat", false, null, StringExternal("Param/Value/lib_566061C9_83757717"), StringExternal("Param/Value/lib_566061C9_C368F2ED"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));

    libUIUI_gf_PingSetAllyEnemyTargetHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackHere, libCore_ge_HeroVOEvents_PingAttackHere);

    libUIUI_gf_PingCreateNewPingTarget("TerranGoliathDefender", false, StringExternal("Param/Value/lib_566061C9_5126E217"), StringExternal("Param/Value/lib_566061C9_A79BCF4E"), StringExternal("Param/Value/lib_566061C9_D3093C8D"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));

    libUIUI_gf_PingSetHumanAISourceHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackMercCamp, libCore_ge_HeroVOEvents_AIMercCapture);

    libUIUI_gf_PingCreateNewPingTarget("TerranRavenDefender", false, StringExternal("Param/Value/lib_566061C9_5AAF0D0A"), StringExternal("Param/Value/lib_566061C9_0F911F60"), StringExternal("Param/Value/lib_566061C9_DA332811"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));

    libUIUI_gf_PingSetHumanAISourceHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackMercCamp, libCore_ge_HeroVOEvents_AIMercCapture);

    libUIUI_gf_PingCreateNewPingTarget("TerranGoliath", false, null, StringExternal("Param/Value/lib_566061C9_4E3753DE"), StringExternal("Param/Value/lib_566061C9_A491ADB1"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));

    libUIUI_gf_PingSetAllyEnemyTargetHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackHere, libCore_ge_HeroVOEvents_PingAttackHere);

    libUIUI_gf_PingCreateNewPingTarget("TerranRaven", false, null, StringExternal("Param/Value/lib_566061C9_CCCB7BDE"), StringExternal("Param/Value/lib_566061C9_6968CCAD"), SoundLink("UI_Game_Ping_Attack", -1), SoundLink("UI_Game_Ping_Attack", -1));

    libUIUI_gf_PingSetAllyEnemyTargetHeroVOForPingTarget(libUIUI_gf_PingLastCreatedPingTarget(), libCore_ge_HeroVOEvents_PingAttackHere, libCore_ge_HeroVOEvents_PingAttackHere);

    return true;

}



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

void lib566061C9_gt_MMSCInitializePingData_Init () {

    lib566061C9_gt_MMSCInitializePingData = TriggerCreate("lib566061C9_gt_MMSCInitializePingData_Func");

    libGame_gf_MapMechanicInitialization(lib566061C9_gt_MMSCInitializePingData);

}



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

// Trigger: MM SC Merc Damage Tracking

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

bool lib566061C9_gt_MMSCMercDamageTracking_Func (bool testConds, bool runActions) {

    // Variable Declarations

    int lv_MercCamp;



    // Automatic Variable Declarations

    // Variable Initialization



    // Conditions

    if (testConds) {

        if (!((libCore_gv_dEBUGDebuggingEnabled == true))) {

            return false;

        }



        if (!((libGame_gv_gameOver == false))) {

            return false;

        }

    }



    // Actions

    if (!runActions) {

        return true;

    }



    lv_MercCamp = libMapM_gf_JungleGetMercCampForUnit(EventUnitDamageSourceUnit());

    libMapM_gf_JungleUpdateMercDamageTracker(lv_MercCamp, EventUnitDamageAmount());

    return true;

}



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

void lib566061C9_gt_MMSCMercDamageTracking_Init () {

    lib566061C9_gt_MMSCMercDamageTracking = TriggerCreate("lib566061C9_gt_MMSCMercDamageTracking_Func");

    TriggerAddEventUnitDamaged(lib566061C9_gt_MMSCMercDamageTracking, null, c_unitDamageTypeAny, c_unitDamageEither, "TerranHellbatWeaponDamage");

    TriggerAddEventUnitDamaged(lib566061C9_gt_MMSCMercDamageTracking, null, c_unitDamageTypeAny, c_unitDamageEither, "TerranGoliathGroundWeaponDamage");

    TriggerAddEventUnitDamaged(lib566061C9_gt_MMSCMercDamageTracking, null, c_unitDamageTypeAny, c_unitDamageEither, "TerranRavenSeekerMissileInnerDamage");

    TriggerAddEventUnitDamaged(lib566061C9_gt_MMSCMercDamageTracking, null, c_unitDamageTypeAny, c_unitDamageEither, "TerranRavenSeekerMissileMiddleDamage");

    TriggerAddEventUnitDamaged(lib566061C9_gt_MMSCMercDamageTracking, null, c_unitDamageTypeAny, c_unitDamageEither, "TerranRavenSeekerMissileOuterDamage");

}



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

// Trigger: MM SC Psi Relay Projectile Enters Map

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

bool lib566061C9_gt_MMSCPsiRelayProjectileEntersMap_Func (bool testConds, bool runActions) {

    // Variable Declarations

    unit lv_missile;

    int lv_pingBallOrder;

    int lv_pingBallChaos;

    int lv_pingTrail;

    point lv_missilePosition;

    int lv_owner;



    // Automatic Variable Declarations

    int auto49628890_val;

    int auto6E3375CB_val;



    // Variable Initialization

    lv_pingBallOrder = c_invalidPingId;

    lv_pingBallChaos = c_invalidPingId;

    lv_pingTrail = c_invalidPingId;



    // Conditions

    if (testConds) {

        if (!((UnitGetType(EventUnitCreatedUnit()) == "PsiRelay"))) {

            return false;

        }

    }



    // Actions

    if (!runActions) {

        return true;

    }



    Wait(0.0625, c_timeGame);

    lv_missile = EventUnitCreatedUnit();

    lv_owner = UnitGetOwner(EventUnitCreatedUnit());

    auto49628890_val = lv_owner;

    if (auto49628890_val == libCore_gv_cOMPUTER_TeamOrder) {

        libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, true), "PsiRelay", UnitGetPosition(lv_missile), ColorWithAlpha(0.00, 0.00, 100.00, 0.00), 0.0, UnitGetFacing(lv_missile), -1, -1);

        lv_pingBallOrder = PingLastCreated();

        PingSetScale(PingLastCreated(), 0.125);

        libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, true), "PsiRelay", UnitGetPosition(lv_missile), ColorWithAlpha(100.00, 0.00, 0.00, 0.00), 0.0, UnitGetFacing(lv_missile), -1, -1);

        lv_pingBallChaos = PingLastCreated();

        PingSetScale(PingLastCreated(), 0.125);

    }

    else if (auto49628890_val == libCore_gv_cOMPUTER_TeamChaos) {

        libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, true), "PsiRelay", UnitGetPosition(lv_missile), ColorWithAlpha(100.00, 0.00, 0.00, 0.00), 0.0, UnitGetFacing(lv_missile), -1, -1);

        lv_pingBallOrder = PingLastCreated();

        PingSetScale(PingLastCreated(), 0.1);

        libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, true), "PsiRelay", UnitGetPosition(lv_missile), ColorWithAlpha(0.00, 0.00, 100.00, 0.00), 0.0, UnitGetFacing(lv_missile), -1, -1);

        lv_pingBallChaos = PingLastCreated();

        PingSetScale(PingLastCreated(), 0.1);

    }

    else {

    }

    PingSetUnit(lv_pingBallChaos, lv_missile);

    PingSetUnit(lv_pingBallOrder, lv_missile);

    while (true) {

        if ((UnitIsAlive(lv_missile) == false)) {

            PingDestroy(lv_pingBallOrder);

            PingDestroy(lv_pingBallChaos);

            auto6E3375CB_val = lv_owner;

            if (auto6E3375CB_val == libCore_gv_cOMPUTER_TeamOrder) {

                libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, true), "NovaPinningShotImpact", lv_missilePosition, ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 0.0625, 270.0, -1, -1);

                PingSetScale(PingLastCreated(), 0.1);

                libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, true), "LightningBreathImpact", lv_missilePosition, ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 0.0625, 270.0, -1, -1);

                PingSetScale(PingLastCreated(), 0.1);

            }

            else if (auto6E3375CB_val == libCore_gv_cOMPUTER_TeamChaos) {

                libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, true), "LightningBreathImpact", lv_missilePosition, ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 0.0625, 270.0, -1, -1);

                PingSetScale(PingLastCreated(), 0.1);

                libNtve_gf_CreatePingFacingAngleWithType(libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, true), "NovaPinningShotImpact", lv_missilePosition, ColorWithAlpha(0.00, 0.00, 0.00, 0.00), 0.0625, 270.0, -1, -1);

                PingSetScale(PingLastCreated(), 0.1);

            }

            else {

            }

            return true;

        }



        lv_missilePosition = UnitGetPosition(lv_missile);

        Wait(0.0625, c_timeGame);

    }

    return true;

}



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

void lib566061C9_gt_MMSCPsiRelayProjectileEntersMap_Init () {

    lib566061C9_gt_MMSCPsiRelayProjectileEntersMap = TriggerCreate("lib566061C9_gt_MMSCPsiRelayProjectileEntersMap_Func");

    TriggerAddEventUnitCreated(lib566061C9_gt_MMSCPsiRelayProjectileEntersMap, null, null, null);

}



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

// Trigger: MM SC Defenders Spawned

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

bool lib566061C9_gt_MMSCDefendersSpawned_Func (bool testConds, bool runActions) {

    // Variable Declarations

    int lv_campType;



    // Automatic Variable Declarations

    // Variable Initialization

    lv_campType = libMapM_gv_jungleCreepCamps[libGame_gf_JungleCampSpawnedIndex()].lv_mapDataMercSpawnType;



    // Actions

    if (!runActions) {

        return true;

    }



    if (((lv_campType == libMapM_ge_JungleCampMercTypes_SiegeCamp1) || (lv_campType == libMapM_ge_JungleCampMercTypes_SiegeCamp2) || (lv_campType == libMapM_ge_JungleCampMercTypes_SiegeCamp3))) {

        SoundPlayAtPointForPlayer(SoundLink("Merc_SiegeCamp_Spawn", -1), c_maxPlayers, PlayerGroupAll(), libMapM_gv_jungleCreepCamps[libGame_gf_JungleCampSpawnedIndex()].lv_mapDataCampCaptainSpawnPoint, 0.0, 100.0, 0.0);

    }



    if (((lv_campType == libMapM_ge_JungleCampMercTypes_BruiserCamp1) || (lv_campType == libMapM_ge_JungleCampMercTypes_BruiserCamp2) || (lv_campType == libMapM_ge_JungleCampMercTypes_BruiserCamp3))) {

        SoundPlayAtPointForPlayer(SoundLink("Merc_BruiserCamp_Spawn", -1), c_maxPlayers, PlayerGroupAll(), libMapM_gv_jungleCreepCamps[libGame_gf_JungleCampSpawnedIndex()].lv_mapDataCampCaptainSpawnPoint, 0.0, 100.0, 0.0);

    }



    return true;

}



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

void lib566061C9_gt_MMSCDefendersSpawned_Init () {

    lib566061C9_gt_MMSCDefendersSpawned = TriggerCreate("lib566061C9_gt_MMSCDefendersSpawned_Func");

    libGame_gf_JungleCampSpawning(lib566061C9_gt_MMSCDefendersSpawned);

}



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

// Trigger: MM SC Laners Spawned

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

bool lib566061C9_gt_MMSCLanersSpawned_Func (bool testConds, bool runActions) {

    // Variable Declarations

    int lv_campType;



    // Automatic Variable Declarations

    // Variable Initialization

    lv_campType = libMapM_gv_jungleCreepCamps[libGame_gf_JungleCampSpawnedIndex()].lv_mapDataMercSpawnType;



    // Actions

    if (!runActions) {

        return true;

    }



    if (((lv_campType == libMapM_ge_JungleCampMercTypes_SiegeCamp1) || (lv_campType == libMapM_ge_JungleCampMercTypes_SiegeCamp2) || (lv_campType == libMapM_ge_JungleCampMercTypes_SiegeCamp3))) {

        SoundPlayAtPointForPlayer(SoundLink("Merc_SiegeCamp_Spawn", -1), c_maxPlayers, PlayerGroupAll(), libMapM_gv_jungleCreepCamps[libGame_gf_MercCampCapturedIndex()].lv_mapDataCampCaptainSpawnPoint, 0.0, 100.0, 0.0);

    }



    if (((lv_campType == libMapM_ge_JungleCampMercTypes_BruiserCamp1) || (lv_campType == libMapM_ge_JungleCampMercTypes_BruiserCamp2) || (lv_campType == libMapM_ge_JungleCampMercTypes_BruiserCamp3))) {

        SoundPlayAtPointForPlayer(SoundLink("Merc_BruiserCamp_Spawn", -1), c_maxPlayers, PlayerGroupAll(), libMapM_gv_jungleCreepCamps[libGame_gf_MercCampCapturedIndex()].lv_mapDataCampCaptainSpawnPoint, 0.0, 100.0, 0.0);

    }



    return true;

}



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

void lib566061C9_gt_MMSCLanersSpawned_Init () {

    lib566061C9_gt_MMSCLanersSpawned = TriggerCreate("lib566061C9_gt_MMSCLanersSpawned_Func");

    libGame_gf_MercCampCaptured(lib566061C9_gt_MMSCLanersSpawned);

}



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

// Trigger: MM SC Scaling Init

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

bool lib566061C9_gt_MMSCScalingInit_Func (bool testConds, bool runActions) {

    // Automatic Variable Declarations

    // Actions

    if (!runActions) {

        return true;

    }



    TimerStart(lib566061C9_gv_mMSC_ScalingTimer, lib566061C9_gv_mMSC_ScalingTime_C, false, c_timeGame);

    return true;

}



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

void lib566061C9_gt_MMSCScalingInit_Init () {

    lib566061C9_gt_MMSCScalingInit = TriggerCreate("lib566061C9_gt_MMSCScalingInit_Func");

    TriggerAddEventTimer(lib566061C9_gt_MMSCScalingInit, libGame_gv_openTheGatesTimer);

}



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

// Trigger: MM SC Scaling Timer Expired

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

bool lib566061C9_gt_MMSCScalingTimerExpired_Func (bool testConds, bool runActions) {

    // Automatic Variable Declarations

    // Actions

    if (!runActions) {

        return true;

    }



    lib566061C9_gv_mMSC_ScalingXP += 1.0;

    TimerStart(lib566061C9_gv_mMSC_ScalingTimer, lib566061C9_gv_mMSC_ScalingTime_C, false, c_timeGame);

    CatalogFieldValueSet(c_gameCatalogEffect, "TerranRavenSeekerMissileInnerDamage", "Amount", libCore_gv_cOMPUTER_TeamOrder, IntToString((CatalogFieldValueGetAsInt(c_gameCatalogEffect, "TerranRavenSeekerMissileInnerDamage", "Amount", libCore_gv_cOMPUTER_TeamOrder) + lib566061C9_gv_mMSC_TerranRavenSeekerMissileInnerDamageScaling_C)));

    CatalogFieldValueSet(c_gameCatalogEffect, "TerranRavenSeekerMissileMiddleDamage", "Amount", libCore_gv_cOMPUTER_TeamOrder, IntToString((CatalogFieldValueGetAsInt(c_gameCatalogEffect, "TerranRavenSeekerMissileMiddleDamage", "Amount", libCore_gv_cOMPUTER_TeamOrder) + lib566061C9_gv_mMSC_TerranRavenSeekerMissileMiddleDamageScaling_C)));

    CatalogFieldValueSet(c_gameCatalogEffect, "TerranRavenSeekerMissileOuterDamage", "Amount", libCore_gv_cOMPUTER_TeamOrder, IntToString((CatalogFieldValueGetAsInt(c_gameCatalogEffect, "TerranRavenSeekerMissileOuterDamage", "Amount", libCore_gv_cOMPUTER_TeamOrder) + lib566061C9_gv_mMSC_TerranRavenSeekerMissileOuterDamageScaling_C)));

    CatalogFieldValueSet(c_gameCatalogEffect, "TerranRavenSeekerMissileInnerDamage", "Amount", libCore_gv_cOMPUTER_TeamChaos, IntToString((CatalogFieldValueGetAsInt(c_gameCatalogEffect, "TerranRavenSeekerMissileInnerDamage", "Amount", libCore_gv_cOMPUTER_TeamChaos) + lib566061C9_gv_mMSC_TerranRavenSeekerMissileInnerDamageScaling_C)));

    CatalogFieldValueSet(c_gameCatalogEffect, "TerranRavenSeekerMissileMiddleDamage", "Amount", libCore_gv_cOMPUTER_TeamChaos, IntToString((CatalogFieldValueGetAsInt(c_gameCatalogEffect, "TerranRavenSeekerMissileMiddleDamage", "Amount", libCore_gv_cOMPUTER_TeamChaos) + lib566061C9_gv_mMSC_TerranRavenSeekerMissileMiddleDamageScaling_C)));

    CatalogFieldValueSet(c_gameCatalogEffect, "TerranRavenSeekerMissileOuterDamage", "Amount", libCore_gv_cOMPUTER_TeamChaos, IntToString((CatalogFieldValueGetAsInt(c_gameCatalogEffect, "TerranRavenSeekerMissileOuterDamage", "Amount", libCore_gv_cOMPUTER_TeamChaos) + lib566061C9_gv_mMSC_TerranRavenSeekerMissileOuterDamageScaling_C)));

    return true;

}



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

void lib566061C9_gt_MMSCScalingTimerExpired_Init () {

    lib566061C9_gt_MMSCScalingTimerExpired = TriggerCreate("lib566061C9_gt_MMSCScalingTimerExpired_Func");

    TriggerAddEventTimer(lib566061C9_gt_MMSCScalingTimerExpired, lib566061C9_gv_mMSC_ScalingTimer);

}



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

// Trigger: MM SC Raven Auto Turret Scaling

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

bool lib566061C9_gt_MMSCRavenAutoTurretScaling_Func (bool testConds, bool runActions) {

    // Automatic Variable Declarations

    // Conditions

    if (testConds) {

        if (!((UnitGetType(EventUnitCreatedUnit()) == "TerranAutoTurret"))) {

            return false;

        }

    }



    // Actions

    if (!runActions) {

        return true;

    }



    UnitXPAddXP(EventUnitCreatedUnit(), null, lib566061C9_gv_mMSC_ScalingXP);

    return true;

}



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

void lib566061C9_gt_MMSCRavenAutoTurretScaling_Init () {

    lib566061C9_gt_MMSCRavenAutoTurretScaling = TriggerCreate("lib566061C9_gt_MMSCRavenAutoTurretScaling_Func");

    TriggerAddEventUnitCreated(lib566061C9_gt_MMSCRavenAutoTurretScaling, null, null, null);

}



void lib566061C9_InitTriggers () {

    lib566061C9_gt_IncludeMMSC_Init();

    lib566061C9_gt_MMSCInitializeMapMVPAnnouncerSounds_Init();

    lib566061C9_gt_MMSCInitializeMercCampData_Init();

    lib566061C9_gt_MMSCInitializePingData_Init();

    lib566061C9_gt_MMSCMercDamageTracking_Init();

    lib566061C9_gt_MMSCPsiRelayProjectileEntersMap_Init();

    lib566061C9_gt_MMSCDefendersSpawned_Init();

    lib566061C9_gt_MMSCLanersSpawned_Init();

    lib566061C9_gt_MMSCScalingInit_Init();

    lib566061C9_gt_MMSCScalingTimerExpired_Init();

    lib566061C9_gt_MMSCRavenAutoTurretScaling_Init();

}



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

// Library Initialization

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

bool lib566061C9_InitLib_completed = false;



void lib566061C9_InitLib () {

    if (lib566061C9_InitLib_completed) {

        return;

    }



    lib566061C9_InitLib_completed = true;



    lib566061C9_InitLibraries();

    lib566061C9_InitVariables();

    lib566061C9_InitTriggers();

}