- Neither team can directly attack the enemy Core. Core damage comes from Altars, Sappers, the Headless Horseman, and 6-cap Bell Tower bombardment.
- Capturing an Altar deals 1 Core damage, plus 1 more for each Bell Tower your team holds.
- Bell Towers start as Forts and become Keeps when the Waygates/Tunnels open, usually at 12:00.
- The central Headless Horseman boss camp, when captured, deals 4 damage to the enemy Core.
Objective Timers
| Event | Duration | Seconds | Source |
|---|---|---|---|
| First Altars | 3:00 | 180s | libMTOD_gv_mMToDScoringEventDelay_C |
| Altar Respawn | 1:50 | 110s | libMTOD_gv_mMToDAltarRespawnDelay_C |
| Altar Warning | 0:30 | 30s | libMTOD_gv_mMToDScoringAltarWarningTime_C |
| Phase 2 Activates | 12:00 | 720s | libMTOD_gv_mMToDPhaseTwoDelay_C |
Altar Captures Deal Core Damage
Neither team can directly attack the enemy Core. Capturing an Altar deals 1 Core damage, plus 1 more for each Bell Tower your team holds. Sappers, the Headless Horseman, and 6-cap Bell Tower bombardment can also damage the Core.
}
auto956A1EFD_g = libMTOD_gv_mMToDScoringAltarConfigs[lv_pointGroup];
lv_itAltar = -1;
while (true) {
lv_itAltar = PlayerGroupNextPlayer(auto956A1EFD_g, lv_itAltar);
if (lv_itAltar<0) { break; }
libNtve_gf_SendActorMessageToUnit(libMTOD_gv_mMToDScoringAltars[lv_itAltar].lv_unit, "MinimapIconTintColor 255,145,113,218");
libNtve_gf_SendActorMessageToUnit(libMTOD_gv_mMToDScoringAltars[lv_itAltar].lv_unit, "MinimapTooltip DOCSTR_NextActiveAltar");
libNtve_gf_SendActorMessageToUnit(libMTOD_gv_mMToDScoringAltars[lv_itAltar].lv_unit, "SetMinimapVisibility 1");
libNtve_gf_SendActorMessageToUnit(libMTOD_gv_mMToDScoringAltars[lv_itAltar].lv_unit, "SetMinimapVisibilityAlways 1");
}
libMTOD_gv_mMToDEventCurrentPointGroup = lv_pointGroup;
}
void libMTOD_gf_MMToDAltarFireCannons (int lp_teamScored) {
// Variable Declarations
unit lv_itTown;
// Automatic Variable Declarations
int autoB1EAAD11_val;
unitgroup auto8B70F9E1_g;
int auto8B70F9E1_u;
unitgroup autoCFA5C262_g;
int autoCFA5C262_u;
// Variable Initialization
// Implementation
autoB1EAAD11_val = lp_teamScored;
Waygates and Headless Horseman
Bell Towers start as Forts and become Keeps when the Waygates/Tunnels open, usually at 12:00. If Altars are active then, opening is delayed until after that objective phase ends. The central Headless Horseman boss camp, when captured, deals 4 damage to the enemy Core.
}
ActorScopeKill(ActorScopeFromActor(lv_actorRegion));
}
unit libMTOD_gf_MMToDGetTownFort (int lp_townIndex) {
// Automatic Variable Declarations
// Implementation
return libMTOD_gv_mMToDTowns[lp_townIndex].lv_fortUnit;
}
void libMTOD_gf_MMToDBossCampFireCannons (int lp_firingTeam) {
// Variable Declarations
revealer[libCore_gv_bALMaxTeams + 1] lv_revealers;
int lv_shotsFired;
int lv_enemyTeam;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
VisRevealerCreate(libCore_gv_cOMPUTER_TeamOrder, RegionCircle(UnitGetPosition(libMTOD_gv_mMToDHorsemanCannon), 2.0));
Timer Source
libmtod_h.galaxy — constants
const fixed libMTOD_gv_mMToDScoringEventDelay_C = 180.0;
const fixed libMTOD_gv_mMToDAltarRespawnDelay_C = 110.0;
const fixed libMTOD_gv_mMToDScoringAltarWarningTime_C = 30.0;
const fixed libMTOD_gv_mMToDPhaseTwoDelay_C = 720.0;
libmtod.galaxy — timer start
// Actions
if (!runActions) {
return true;
}
if ((libMTOD_gv_mMToDFirstEventSpawned == true)) {
TimerStart(libMTOD_gv_mMToDScoringAltarTimer, libMTOD_gv_mMToDAltarRespawnDelay_C, false, c_timeGame);
}
else {
libMTOD_gv_mMToDFirstEventSpawned = true;
TimerStart(libMTOD_gv_mMToDScoringAltarTimer, libMTOD_gv_mMToDScoringEventDelay_C, false, c_timeGame);
}
libNtve_gf_WaitForTimer(libMTOD_gv_mMToDScoringAltarTimer, libMTOD_gv_mMToDScoringAltarWarningTime_C, false);
if (((libMTOD_gv_mMToDMapEventDisabled == true) || (libGame_gv_gameOver == true))) {
return true;
}
// ...
// Actions
if (!runActions) {
return true;
}
TimerStart(libMTOD_gv_mMToDPhaseTwoTimer, libMTOD_gv_mMToDPhaseTwoDelay_C, false, c_timeGame);
libNtve_gf_WaitForTimer(libMTOD_gv_mMToDPhaseTwoTimer, libMTOD_gv_mMToDPhaseTwoWarningTime_C, false);
if ((libMTOD_gv_mMToDScoringAltarsActive == 0)) {
if ((TimerIsPaused(libMTOD_gv_mMToDScoringAltarTimer) == false) && (TimerGetRemaining(libMTOD_gv_mMToDScoringAltarTimer) <= libMTOD_gv_mMToDPhaseTwoWarningTime_C)) {
Wait((TimerGetRemaining(libMTOD_gv_mMToDScoringAltarTimer) + 1.0), c_timeGame);
}
}
// ...
if (!runActions) {
return true;
}
if ((TimerGetRemaining(libMTOD_gv_mMToDScoringAltarTimer) > 1)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MTOD_8BC9190F"), true);
TimerStart(libMTOD_gv_mMToDScoringAltarTimer, libMTOD_gv_mMToDScoringAltarWarningTime_C, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
Source Files
- libmtod.galaxy
- libmtod_h.galaxy
- towersofdoom.stormmod/abildata.xml
- towersofdoom.stormmod/behaviordata.xml
- towersofdoom.stormmod/buttondata.xml
- towersofdoom.stormmod/effectdata.xml
- towersofdoom.stormmod/goaldata.xml
- towersofdoom.stormmod/herodata.xml
- towersofdoom.stormmod/kineticdata.xml
- towersofdoom.stormmod/mapdata.xml
- towersofdoom.stormmod/moverdata.xml
- towersofdoom.stormmod/turretdata.xml
- towersofdoom.stormmod/unitdata.xml
- towersofdoom.stormmod/upgradedata.xml
- towersofdoom.stormmod/userdata.xml
- towersofdoom.stormmod/validatordata.xml
- towersofdoom.stormmod/weapondata.xml