- Underground mines open periodically. Both teams descend to fight undead monsters and collect Cursed Skulls.
- Risen Miners drop 2 Cursed Skulls each; the underground Grave Golem drops up to 38 skulls across its HP thresholds.
- Each team is capped at 55 Cursed Skulls; the mine phase ends when either team reaches that cap.
- Both teams spawn a Grave Golem, whose strength scales with the number of skulls collected by its team.
- Later mine events begin after both lane Golems have died.
Objective Timers
| Event | Duration | Seconds | Source |
|---|---|---|---|
| First Mine Warning | 2:30 | 150s | libMHtM_gv_mMUnderworldStartTime_C |
| Mine Cooldown | 1:30 | 90s | libMHtM_gv_mMUnderworldEventCooldown_C |
| Prep Phase | 0:30 | 30s | libMHtM_gv_mMUnderworldPrepDuration_C |
| Golem Summon Delay | 0:30 | 30s | libMHtM_gv_mMUnderworldSummonedBossDuration_C |
Skull Collection
Heroes collect Cursed Skulls in the underground mine. Risen Miners drop 2 Cursed Skulls each; the underground Grave Golem drops skulls progressively at 75%, 50%, and 25% Health, then drops the rest on death. Each team is capped at 55 Cursed Skulls, and the mine phase ends as soon as either team reaches that cap.
int libMHtM_gf_MMUnderworldSkullCollected () {
// Variable Declarations
int lv_itGroupIndex;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
return (libMHtM_gv_mMUnderworldSkullCollected[1] + libMHtM_gv_mMUnderworldSkullCollected[2]);
}
bool libMHtM_gf_MMUnderworldCleared () {
// Variable Declarations
int lv_skullsCollectedTeam1;
int lv_skullsCollectedTeam2;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
if (((libMHtM_gv_mMUnderworldSkullCollected[1] >= libMHtM_gv_mMUnderworldTotalSkulls_C) || (libMHtM_gv_mMUnderworldSkullCollected[2] >= libMHtM_gv_mMUnderworldTotalSkulls_C))) {
return true;
}
else {
return false;
}
}
trigger auto_libMHtM_gf_MMUnderworldSpawnMonsters_Trigger = null;
// ...
TriggerExecute(libMHtM_gt_MMHMSummonedBossUIBar, true, false);
while (!(((UnitIsAlive(libMHtM_gv_mMUnderworldSummonedBoss[1]) == true) || (UnitIsAlive(libMHtM_gv_mMUnderworldSummonedBoss[2]) == true)))) {
Wait(0.0625, c_timeGame);
}
SoundtrackStop(PlayerGroupAll(), c_soundtrackCategoryMusic, true);
libSond_gf_SoundtrackApplyNewDefaultSoundtrackForPlayerGroup("Storm_Music_Mines_Golems_Event", PlayerGroupAll());
if ((libMHtM_gv_mMUnderworldSummonedBossRevive == false)) {
libMHtM_gv_mMUnderworldSummonedBossRevive = true;
if (((libMHtM_gv_mMUnderworldSkullCollected[1] - libMHtM_gv_mMUnderworldSkullCollected[2]) >= 5)) {
libMHtM_gf_MMUnderworldTransmissionGolemSummonedQ(1);
}
else if (((libMHtM_gv_mMUnderworldSkullCollected[1] - libMHtM_gv_mMUnderworldSkullCollected[2]) <= -5)) {
libMHtM_gf_MMUnderworldTransmissionGolemSummonedQ(2);
}
else if (true) {
libMHtM_gf_MMUnderworldTransmissionGolemSummonedQ(0);
}
}
else {
if (((libMHtM_gv_mMUnderworldSkullCollected[1] - libMHtM_gv_mMUnderworldSkullCollected[2]) >= 5)) {
libMHtM_gf_MMUnderworldTransmissionGolemRevivedQ(1);
}
else if (((libMHtM_gv_mMUnderworldSkullCollected[1] - libMHtM_gv_mMUnderworldSkullCollected[2]) <= -5)) {
libMHtM_gf_MMUnderworldTransmissionGolemRevivedQ(2);
}
else if (true) {
libMHtM_gf_MMUnderworldTransmissionGolemRevivedQ(0);
}
}
}
// ...
UnitSetState(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], c_unitStateTargetable, false);
libNtve_gf_MakeUnitInvulnerable(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], true);
UnitSetState(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], c_unitStateSelectable, false);
UnitSetState(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], c_unitStateStatusBar, false);
libMHtM_gf_MMUnderworldApplySummonedBossScaling(lp_team, false);
libGame_gf_SendEventMapHauntedMinesBossSummoned(UnitLastCreated());
StatEventCreate("HauntedMinesGolemsSpawned");
StatEventAddDataFixed(StatEventLastCreated(), "TeamID", lp_team);
StatEventAddDataFixed(StatEventLastCreated(), "SkullCount", libMHtM_gv_mMUnderworldSkullCollected[lp_team]);
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventSend(StatEventLastCreated());
Wait(1.0, c_timeGame);
if ((lv_effect != null)) {
libNtve_gf_KillModel(lv_effect);
}
Wait(1.0, c_timeGame);
// ...
else {
libMHtM_gf_MMUnderworldChangeAmbience("Ambient_Underworld_Mines", null, PlayerGroupSingle(lp_player));
}
}
bool libMHtM_gf_MMUnderworldSummonedBossBetter (int lp_team) {
// Automatic Variable Declarations
// Implementation
if ((libMHtM_gv_mMUnderworldSkullCollected[lp_team] >= ((libMHtM_gv_mMUnderworldSkullTotal + 0) / 2))) {
return true;
}
return false;
}
void libMHtM_gf_MMUnderworldApplySummonedBossScaling (int lp_team, bool lp_displayNumber) {
// Variable Declarations
// ...
// Variable Initialization
// Implementation
if ((libMHtM_gv_mMUnderworldScalingTick == 0)) {
libMHtM_gv_mMUnderworldScalingTick = libGame_gv_scalingTicks;
}
libGame_gf_UpdateScalingForUnit(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], libMHtM_gv_mMUnderworldScalingTick, 0);
UnitBehaviorAdd(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], "UnderworldBossSkullStacks", libMHtM_gv_mMUnderworldSummonedBoss[lp_team], FixedToInt((-0.0054*libMHtM_gv_mMUnderworldSkullCollected[lp_team]*libMHtM_gv_mMUnderworldSkullCollected[lp_team]+1.2913*libMHtM_gv_mMUnderworldSkullCollected[lp_team])));
lv_enemyTeam = libGame_gf_EnemyTeam(lp_team);
if ((libMHtM_gf_MMUnderworldSummonedBossBetter(lp_team) == true)) {
libNtve_gf_SendActorMessageToUnit(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], "ModelSwap UnderworldSummonedBossBetter 1");
lv_sizeScale = 120.0;
UnitSetScale(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], lv_sizeScale, lv_sizeScale, lv_sizeScale);
}
else {
if ((libMHtM_gf_MMUnderworldSummonedBossBetter(lv_enemyTeam) == true)) {
// ...
// Variable Declarations
int lv_indexTeam;
int lv_indexTeamEnemy;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
libUIUI_gf_MapMechanicsHauntedMinesSetSkullCountForTeam(libMHtM_gv_mMUnderworldSkullCollected[libGame_gv_teamOrderIndex_C], libGame_gv_teamOrderIndex_C);
libUIUI_gf_MapMechanicsHauntedMinesSetSkullCountForTeam(libMHtM_gv_mMUnderworldSkullCollected[libGame_gv_teamChaosIndex_C], libGame_gv_teamChaosIndex_C);
libUIUI_gf_MapMechanicsHauntedMinesSetSkullsRemaining((libMHtM_gv_mMUnderworldTotalSkulls_C));
}
trigger auto_libMHtM_gf_MMUnderworldTransmissionUnderworldOpeningFirstQ_Trigger = null;
void libMHtM_gf_MMUnderworldTransmissionUnderworldOpeningFirstQ () {
if (auto_libMHtM_gf_MMUnderworldTransmissionUnderworldOpeningFirstQ_Trigger == null) {
auto_libMHtM_gf_MMUnderworldTransmissionUnderworldOpeningFirstQ_Trigger = TriggerCreate("auto_libMHtM_gf_MMUnderworldTransmissionUnderworldOpeningFirstQ_TriggerFunc");
// ...
auto1F59D3D4_g = libMHtM_gv_mMUnderworldGatesAbove;
auto1F59D3D4_u = UnitGroupCount(auto1F59D3D4_g, c_unitCountAll);
for (;; auto1F59D3D4_u -= 1) {
lv_itGate = UnitGroupUnitFromEnd(auto1F59D3D4_g, auto1F59D3D4_u);
if (lv_itGate == null) { break; }
ActorCreate(ActorScopeFromUnit(lv_itGate), "UI_Game_Ping_Mines_Ready", null, null, null);
}
TriggerExecute(libMHtM_gt_MMHMPingGatesWhileEventinProgress, true, false);
libMHtM_gv_mMUnderworldSkullCollected[1] = 0;
libMHtM_gv_mMUnderworldSkullCollected[2] = 0;
libMHtM_gf_MMUnderworldSpawnMonsters();
TriggerEnable(libMHtM_gt_MMHMPlayerMovesCamera, true);
while (true) {
if ((libMHtM_gf_MMUnderworldCleared() == true)) {
TriggerExecute(libMHtM_gt_MMHMMinesCleared, true, false);
return true;
}
// ...
// Automatic Variable Declarations
// Variable Initialization
lv_dyingMonster = EventUnit();
lv_killingPlayer = libNtve_gf_KillingPlayer();
lv_groupIndex = libMHtM_gf_MMUnderworldMineMinionGroupIndex(lv_dyingMonster);
// Conditions
if (testConds) {
if (!((libMHtM_gv_mMUnderworldSkullCollected[1] < libMHtM_gv_mMUnderworldTotalSkulls_C))) {
return false;
}
if (!((libMHtM_gv_mMUnderworldSkullCollected[2] < libMHtM_gv_mMUnderworldTotalSkulls_C))) {
return false;
}
if (!(((UnitGetType(lv_dyingMonster) == "UnderworldMinion") || (UnitGetType(lv_dyingMonster) == "UnderworldRangedMinion") || (UnitGetType(lv_dyingMonster) == "UnderworldBoss")))) {
return false;
}
}
// ...
lv_collectingPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerTarget);
lv_textTagPlayers = PlayerGroupEmpty();
// Actions
if (!runActions) {
return true;
}
libMHtM_gv_mMUnderworldSkullCollected[libGame_gf_TeamNumberOfPlayer(lv_collectingPlayer)] += 1;
libMHtM_gv_mMUnderworldSkullCollected[libGame_gf_TeamNumberOfPlayer(lv_collectingPlayer)] = MinI(libMHtM_gv_mMUnderworldSkullCollected[libGame_gf_TeamNumberOfPlayer(lv_collectingPlayer)], libMHtM_gv_mMUnderworldTotalSkulls_C);
lv_alliedSkullCount = libMHtM_gv_mMUnderworldSkullCollected[libGame_gf_TeamNumberOfPlayer(lv_collectingPlayer)];
SoundPlayAtPointForPlayer(SoundLink("UI_Game_Skull_Pickup", -1), c_maxPlayers, PlayerGroupAll(), lv_collectingUnitPosition, 0.5, 100.0, 0.0);
libNtve_gf_AddPlayerGroupToPlayerGroup(libGame_gf_AlliedPlayerGroupOfPlayer(lv_collectingPlayer), lv_textTagPlayers);
PlayerGroupAdd(lv_textTagPlayers, libCore_gv_oBSERVER_ObserverUIPlayer);
TextTagCreate(StringExternal("Param/Value/lib_MHtM_B3F82875"), 24, lv_collectingUnitPosition, 1.0, true, true, lv_textTagPlayers);
TextTagSetVelocity(TextTagLastCreated(), 1.5, 90.0);
TextTagSetTime(TextTagLastCreated(), c_textTagTimeDuration, 3.0);
TextTagSetFogVisibility(TextTagLastCreated(), c_visTypeFog);
TextTagCreate(StringExternal("Param/Value/lib_MHtM_977047CE"), 24, lv_collectingUnitPosition, 1.0, true, true, libGame_gf_EnemyPlayerGroupOfPlayer(lv_collectingPlayer));
TextTagSetVelocity(TextTagLastCreated(), 1.5, 90.0);
TextTagSetTime(TextTagLastCreated(), c_textTagTimeDuration, 3.0);
TextTagSetFogVisibility(TextTagLastCreated(), c_visTypeFog);
libGame_gf_SendEventMapHauntedMinesSkullCollected(libMHtM_gv_mMUnderworldSkullCollected[1], libMHtM_gv_mMUnderworldSkullCollected[2], lv_collectingPlayer);
if (((libMHtM_gv_mMUnderworldSkullCollected[1] + libMHtM_gv_mMUnderworldSkullCollected[2]) >= libMHtM_gv_mMUnderworldSkullTotal) && (lv_alliedSkullCount >= 80)) {
Wait(6.0, c_timeGame);
libGame_gf_SendEventMapObjectiveCapturedByUnit(lv_collectingUnit);
}
return true;
}
//--------------------------------------------------------------------------------------------------
// ...
UnitRemove(libMHtM_gv_mMUnderworldBoss);
PingDestroy(libCore_gf_PingStoredForUnit(libMHtM_gv_mMUnderworldBoss, 1));
}
lv_team = libGame_gf_TeamNumberOfPlayer(EventPlayer());
if (((lv_team < 1) || (lv_team > 2))) {
lv_team = 1;
}
libMHtM_gv_mMUnderworldSkullCollected[lv_team] = StringToInt(StringWord(EventChatMessage(false), 2));
libMHtM_gv_mMUnderworldSkullCollected[libGame_gf_EnemyTeam(lv_team)] = (libMHtM_gv_mMUnderworldSkullTotal - libMHtM_gv_mMUnderworldSkullCollected[lv_team]);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMHtM_gt_MMHMDebugUnderworldClear_Init () {
libMHtM_gt_MMHMDebugUnderworldClear = TriggerCreate("libMHtM_gt_MMHMDebugUnderworldClear_Func");
TriggerEnable(libMHtM_gt_MMHMDebugUnderworldClear, false);
TriggerAddEventChatMessage(libMHtM_gt_MMHMDebugUnderworldClear, c_playerAny, "MINECLEAR", false);
// ...
return true;
}
libMHtM_gv_mMUnderworldSummonedBoss[1] = UnitGroupUnit(UnitGroupSelected(1), 1);
autoD805E682_ae = StringToInt(StringWord(EventChatMessage(false), 2));
lv_indexMin = 1;
for ( ; ( (autoD805E682_ai >= 0 && lv_indexMin <= autoD805E682_ae) || (autoD805E682_ai < 0 && lv_indexMin >= autoD805E682_ae) ) ; lv_indexMin += autoD805E682_ai ) {
}
libMHtM_gv_mMUnderworldSkullCollected[1] = StringToInt(StringWord(EventChatMessage(false), 3));
libMHtM_gv_mMUnderworldSkullCollected[2] = (100 - libMHtM_gv_mMUnderworldSkullCollected[1]);
libMHtM_gf_MMUnderworldApplySummonedBossScaling(1, true);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMHtM_gt_MMHMDebugSummonBossScaling_Init () {
libMHtM_gt_MMHMDebugSummonBossScaling = TriggerCreate("libMHtM_gt_MMHMDebugSummonBossScaling_Func");
TriggerEnable(libMHtM_gt_MMHMDebugSummonBossScaling, false);
// ...
UnitSetState(UnitLastCreated(), c_unitStateSelectable, false);
UnitSetState(UnitLastCreated(), c_unitStateHighlightable, false);
UnitSetState(UnitLastCreated(), c_unitStateDetectable, false);
UnitSetState(UnitLastCreated(), c_unitStateCursorable, false);
UnitSetPropertyFixed(UnitLastCreated(), c_unitPropLifeMax, 2000.0);
}
UnitSetPropertyFixed(lv_tempGolems[1], c_unitPropLifePercent, 0.1);
UnitSetPropertyFixed(lv_tempGolems[2], c_unitPropLifePercent, 0.1);
libUIUI_gf_MapMechanicsHauntedMinesSetUpGolemForTeam(lv_tempGolems[libGame_gv_teamOrderIndex_C], libMHtM_gv_mMUnderworldSkullCollected[libGame_gv_teamOrderIndex_C], libGame_gv_teamOrderIndex_C);
libUIUI_gf_MapMechanicsHauntedMinesSetUpGolemForTeam(lv_tempGolems[libGame_gv_teamChaosIndex_C], libMHtM_gv_mMUnderworldSkullCollected[libGame_gv_teamChaosIndex_C], libGame_gv_teamChaosIndex_C);
libUIUI_gf_MapMechanicsHauntedMinesSetUpGolemForObserver(lv_tempGolems[libGame_gv_teamOrderIndex_C], lv_tempGolems[libGame_gv_teamChaosIndex_C], libMHtM_gv_mMUnderworldSkullCollected[libGame_gv_teamOrderIndex_C], libMHtM_gv_mMUnderworldSkullCollected[libGame_gv_teamChaosIndex_C]);
libUIUI_gf_MapMechanicsHauntedMinesSetMode(libUIUI_ge_MapMechanicsHauntedMinesModes_Golem);
while (true) {
lv_current = (TimerGetElapsed(lv_summonTimer)*100/TimerGetDuration(lv_summonTimer));
if ((lv_current > 0.1)) {
UnitSetPropertyFixed(lv_tempGolems[1], c_unitPropLifePercent, lv_current);
UnitSetPropertyFixed(lv_tempGolems[2], c_unitPropLifePercent, lv_current);
}
// ...
if ((TimerGetRemaining(lv_summonTimer) == 0.0)) {
break;
}
}
while (!(((UnitIsAlive(libMHtM_gv_mMUnderworldSummonedBoss[1]) == true) && (UnitIsAlive(libMHtM_gv_mMUnderworldSummonedBoss[2]) == true)))) {
Wait(0.25, c_timeGame);
}
libUIUI_gf_MapMechanicsHauntedMinesSetUpGolemForTeam(libMHtM_gv_mMUnderworldSummonedBoss[libGame_gv_teamOrderIndex_C], libMHtM_gv_mMUnderworldSkullCollected[libGame_gv_teamOrderIndex_C], libGame_gv_teamOrderIndex_C);
libUIUI_gf_MapMechanicsHauntedMinesSetUpGolemForTeam(libMHtM_gv_mMUnderworldSummonedBoss[libGame_gv_teamChaosIndex_C], libMHtM_gv_mMUnderworldSkullCollected[libGame_gv_teamChaosIndex_C], libGame_gv_teamChaosIndex_C);
libUIUI_gf_MapMechanicsHauntedMinesSetUpGolemForObserver(libMHtM_gv_mMUnderworldSummonedBoss[libGame_gv_teamOrderIndex_C], libMHtM_gv_mMUnderworldSummonedBoss[libGame_gv_teamChaosIndex_C], libMHtM_gv_mMUnderworldSkullCollected[libGame_gv_teamOrderIndex_C], libMHtM_gv_mMUnderworldSkullCollected[libGame_gv_teamChaosIndex_C]);
UnitRemove(lv_tempGolems[1]);
UnitRemove(lv_tempGolems[2]);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMHtM_gt_MMHMSummonedBossUIBar_Init () {
libMHtM_gt_MMHMSummonedBossUIBar = TriggerCreate("libMHtM_gt_MMHMSummonedBossUIBar_Func");
Golem Power Scaling
Each team's Grave Golem scales with the number of Cursed Skulls that team collected.
// Automatic Variable Declarations
// Variable Initialization
// Implementation
if ((libMHtM_gv_mMUnderworldScalingTick == 0)) {
libMHtM_gv_mMUnderworldScalingTick = libGame_gv_scalingTicks;
}
libGame_gf_UpdateScalingForUnit(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], libMHtM_gv_mMUnderworldScalingTick, 0);
UnitBehaviorAdd(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], "UnderworldBossSkullStacks", libMHtM_gv_mMUnderworldSummonedBoss[lp_team], FixedToInt((-0.0054*libMHtM_gv_mMUnderworldSkullCollected[lp_team]*libMHtM_gv_mMUnderworldSkullCollected[lp_team]+1.2913*libMHtM_gv_mMUnderworldSkullCollected[lp_team])));
lv_enemyTeam = libGame_gf_EnemyTeam(lp_team);
if ((libMHtM_gf_MMUnderworldSummonedBossBetter(lp_team) == true)) {
libNtve_gf_SendActorMessageToUnit(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], "ModelSwap UnderworldSummonedBossBetter 1");
lv_sizeScale = 120.0;
UnitSetScale(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], lv_sizeScale, lv_sizeScale, lv_sizeScale);
}
else {
if ((libMHtM_gf_MMUnderworldSummonedBossBetter(lv_enemyTeam) == true)) {
lv_sizeScale = 90.0;
UnitSetScale(libMHtM_gv_mMUnderworldSummonedBoss[lp_team], lv_sizeScale, lv_sizeScale, lv_sizeScale);
Timer Source
libmhtm_h.galaxy — constants
const fixed libMHtM_gv_mMUnderworldStartTime_C = 150.0;
const fixed libMHtM_gv_mMUnderworldEventCooldown_C = 90.0;
const fixed libMHtM_gv_mMUnderworldPrepDuration_C = 30.0;
const fixed libMHtM_gv_mMUnderworldSummonedBossDuration_C = 30.0;
libmhtm.galaxy — timer start
libNtve_gf_CreateUnitsWithDefaultFacing(1, "UnderworldSummonedBossBody", c_unitCreateIgnorePlacement, libGame_gf_ComputerPlayerInTeam(libGame_gv_teamOrderIndex_C), libMHtM_gv_mMUnderworldSummonedBossLocation[libGame_gv_teamOrderIndex_C], null);
libMHtM_gv_mMUnderworldSummonedBossBody[libGame_gv_teamOrderIndex_C] = UnitLastCreated();
libNtve_gf_CreateUnitsWithDefaultFacing(1, "UnderworldSummonedBossBody", c_unitCreateIgnorePlacement, libGame_gf_ComputerPlayerInTeam(libGame_gv_teamChaosIndex_C), libMHtM_gv_mMUnderworldSummonedBossLocation[libGame_gv_teamChaosIndex_C], null);
libMHtM_gv_mMUnderworldSummonedBossBody[libGame_gv_teamChaosIndex_C] = UnitLastCreated();
}
TimerStart(libMHtM_gv_mMUnderworldPrepTimer, libMHtM_gv_mMUnderworldPrepDuration_C, false, c_timeGame);
}
unit libMHtM_gf_MMUnderworldPlayerHeroUnit (int lp_player) {
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_players[lp_player].lv_activeVehicle != null) && (UnitIsAlive(libGame_gv_players[lp_player].lv_activeVehicle) == true)) {
// ...
else if (auto65E2544A_val == 2) {
libCore_gf_CreateMinimapPingStorm(libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], "StormAlert", libMHtM_gv_mMUnderworldSummonedBossLocation[lp_team], libCore_gv_cOLOREnemyColor, 0.0);
lv_pingPreSpawnObserver = PingLastCreated();
}
else {
}
Wait(libMHtM_gv_mMUnderworldSummonedBossDuration_C, c_timeGame);
PingDestroy(lv_pingPreSpawn1);
PingDestroy(lv_pingPreSpawn2);
PingDestroy(lv_pingPreSpawnObserver);
UnitRemove(libMHtM_gv_mMUnderworldSummonedBossBody[lp_team]);
libMHtM_gv_mMUnderworldSummonedBossBody[lp_team] = null;
libNtve_gf_UnitCreateFacingPoint(1, "UnderworldSummonedBoss", c_unitCreateIgnorePlacement, libGame_gf_ComputerPlayerInTeam(lp_team), libMHtM_gv_mMUnderworldSummonedBossLocation[lp_team], UnitGetPosition(libGame_gv_teams[lv_enemyTeam].lv_core), null);
// ...
// Automatic Variable Declarations
// Implementation
SoundPlayAtPointForPlayer(SoundLink("Event_Mines_Boss_Summon_Start", -1), c_maxPlayers, PlayerGroupAll(), libMHtM_gv_mMUnderworldSummonedBossLocation[lp_team], 1.0, 100.0, 0.0);
Wait(SoundLengthSync(SoundLink("Event_Mines_Boss_Summon_Start", -1)), c_timeGame);
SoundPlayAtPointForPlayer(SoundLink("Event_Mines_Boss_Summon_Loop", -1), c_maxPlayers, PlayerGroupAll(), libMHtM_gv_mMUnderworldSummonedBossLocation[lp_team], 1.0, 100.0, 0.0);
Wait((libMHtM_gv_mMUnderworldSummonedBossDuration_C - SoundLengthSync(SoundLink("Event_Mines_Boss_Summon_Start", -1))), c_timeGame);
SoundStop(SoundLastPlayed(), true);
SoundPlayForPlayer(SoundLink("Event_Mines_Boss_Summon_End", -1), c_maxPlayers, libGame_gf_PlayersOnTeamHeroes(lp_team, false), 100.0, 0.0);
return true;
}
void libMHtM_gf_MMUnderworldChangeAmbience (string lp_ambience, string lp_reverb, playergroup lp_players) {
// ...
// Actions
if (!runActions) {
return true;
}
TriggerEnable(TriggerGetCurrent(), false);
Wait(libMHtM_gv_mMUnderworldStartTime_C, c_timeGame);
libMHtM_gf_MMUnderworldPrepare();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMHtM_gt_MMHMGatesOpened_Init () {
// ...
}
if ((UnitIsAlive(libMHtM_gv_mMUnderworldSummonedBoss[1]) == false) && (UnitIsAlive(libMHtM_gv_mMUnderworldSummonedBoss[2]) == false)) {
libMHtM_gf_MMUnderworldTransmissionGolemDefeatedQ();
SoundtrackStop(PlayerGroupAll(), c_soundtrackCategoryMusic, true);
libSond_gf_SoundtrackPlayMapSoundtrackAsDefaultSoundtrackForAllPlayers();
TimerStart(libMHtM_gv_mMHM_EventCooldownTimer, (libMHtM_gv_mMUnderworldEventCooldown_C - 12.0), false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
// ...
// Actions
if (!runActions) {
return true;
}
TimerStart(lv_summonTimer, libMHtM_gv_mMUnderworldSummonedBossDuration_C, false, c_timeGame);
lv_itTeam = 1;
for ( ; ( (auto7E879F4E_ai >= 0 && lv_itTeam <= auto7E879F4E_ae) || (auto7E879F4E_ai < 0 && lv_itTeam >= auto7E879F4E_ae) ) ; lv_itTeam += auto7E879F4E_ai ) {
libNtve_gf_CreateUnitsWithDefaultFacing(1, "UnderworldSummonedBoss", c_unitCreateIgnorePlacement, libGame_gf_ComputerPlayerInTeam(lv_itTeam), Point(0.0, 0.0), null);
lv_tempGolems[lv_itTeam] = UnitLastCreated();
libNtve_gf_ShowHideUnit(UnitLastCreated(), false);
libNtve_gf_MakeUnitInvulnerable(UnitLastCreated(), true);