- Contest a Capture Point that rotates between three locations to earn the Triglav Protector.
- The Triglav Protector is a two-person mech: one Hero pilots, another mans the weapons.
- The Triglav Protector has a fixed 150-second timed life once awarded.
- The first point activates at 3:00 after a 30-second warning; later points activate 3:00 after the Protector is destroyed.
Objective Timers
| Event | Duration | Seconds | Source |
|---|---|---|---|
| First Capture Point Cooldown | 2:30 | 150s | libVLSK_gv_mechanicInitialSpawnTimerDuration_C |
| Capture Point Cooldown | 2:30 | 150s | libVLSK_gv_cooldownTimerDuration_C |
| Capture Warning | 0:30 | 30s | libVLSK_gv_warningTimerDuration |
| Protector Timed Life | 2:30 | 150s | — |
Units
Triglav Protector
Pilot
XML- HP
- 11500
- Speed
- 4
Scaling
- Life
- +575/min 1-5, +862.5/min 6-10, +1293.75/min 11-15, +1725/min 16-20, +2156.25/min 21+
- Basic damage
- +6.3/min 1-5, +9.45/min 6-10, +12.6/min 11-15, +15.75/min 16-20, +18.9/min 21+
Abilities
- QCharge
VolskayaVehicleChargeCharge a target and deal 225 damage in an area. Non-Heroes take 200% increased damage.
- WRocket Fist
VolskayaVehicleRocketFistLaunch a Rocket Fist that deals 200 damage to the first Hero or Structure in its path. The rocket pushes away and Stuns Heroes for 1.5 seconds and disables Structures for 4 seconds. Instantly kills Minions in its path.
- EShield Emitter
VolskayaVehicleTShieldGain 25 Armor and Shield nearby allied Heroes for 450. Lasts 3 seconds.
- DLeave Vehicle
VolskayaVehicleLeaveVehicleExit the Vehicle.
Gunner
XML- HP
- 10000
Abilities
- QParticle Cannon
VolskayaVehicleActivateParticleCannonFire the Particle Cannon, dealing 225 damage in an area.
- QParticle Cannon
VolskayaVehicleInitiateParticleCannonStart extending the range of the Particle Cannon. Reactivate to fire, dealing 225 damage in the target area.
- WDeactivate Gatling Cannon
VolskayaVehicleGatlingCannonCancelStop firing.
- WGatling Cannon
VolskayaVehicleTacticalStrikesToggle to fire missiles at the cursor's location. Each missile deals 45 damage but drains 1 Energy. Reactivate to stop firing. Deals 50% less damage to Structures.
- EScorching Laser
VolskayaVehicleSkyLaserVector Targeting Draw a line on the ground, dealing 75 damage. After 1 second, it explodes for 500 damage.
- DLeave Vehicle
VolskayaVehicleLeaveVehicleExit the Vehicle.
Capture Point
A team must take control of the Capture Point and hold it until capture progress reaches 100% to earn the Triglav Protector. Control progress can decay while the point is empty or being flipped, but capture progress toward 100% does not decay. Enemy Heroes contesting at 99% force overtime and delay the reward.
int init_i;
if (libVLSK_InitVariables_completed) {
return;
}
libVLSK_InitVariables_completed = true;
libVLSK_gv_capturePointContestTimeGoal_C = 3.0;
libVLSK_gv_capturePointVictoryTimeGoal_C = 45.0;
libVLSK_gv_capturePointDecayDelayTime_C = 5.0;
libVLSK_gv_capturePointContestFilter_C = UnitFilter((1 << c_targetFilterHeroic), 0, (1 << c_targetFilterAir) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterBenign - 32)));
for (init_i = 0; init_i <= libVLSK_gv_capturePointMaxCount_C; init_i += 1) {
libVLSK_gv_capturePoints[init_i].lv_state = libVLSK_ge_OverwatchCapturePoint_State_Empty;
}
libVLSK_gv_capturePointCooldownTimer = TimerCreate();
libVLSK_gv_capturePointWarningTimer = TimerCreate();
Pilot & Gunner Roles
The first player to enter the Triglav Protector becomes the pilot, the second becomes the gunner. Players can leave and another Hero can take an open seat, but the pilot and gunner roles can no longer be swapped via a Swap ability.
//--------------------------------------------------------------------------------------------------
// Trigger: Vehicle Entered
//--------------------------------------------------------------------------------------------------
bool libVLSK_gt_VehicleEntered_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
if ((UnitGetType(libGame_gf_UseVehicleVehicleUnit()) == "VolskayaVehicle")) {
libVLSK_gf_SetPilotPortrait(libGame_gf_UseVehiclePassengerHero());
}
else {
if ((UnitGetType(libGame_gf_UseVehicleVehicleUnit()) == "VolskayaVehicleGunner")) {
UnitCreateEffectUnit(libMapM_gv_vehicle[libMapM_gf_GetVehicleIndexOfUnit(libGame_gf_UseVehicleVehicleUnit())].lv_unit_LinkedVehicle, "AttachedVehicle_AddTrackedUnit", libGame_gf_UseVehiclePassengerHero());
libVLSK_gf_SetGunnerPortrait(libGame_gf_UseVehiclePassengerHero());
}
}
return true;
Fixed Protector Duration
The Triglav Protector's timed life is fixed at 150 seconds. It does not scale up with game time.
libVLSK_gf_SendEventVolskayaGiantRobotDies(lv_deathPosition, libGame_gf_TeamNumberOfPlayer(UnitGetOwner(EventUnit())));
libMapM_gf_JungleStopHibernateCamps();
TriggerEnable(libVLSK_gt_PilotEntersRobotDropBanner, false);
TriggerEnable(libVLSK_gt_GunnerEntersRobotDropBanner, false);
TriggerEnable(libVLSK_gt_PilotNeededTimerExpires, false);
TriggerEnable(libVLSK_gt_GunnerNeededTimerExpires, false);
TriggerEnable(libVLSK_gt_PilotEntersRobotStartGunnerReminderTimer, false);
TriggerEnable(libVLSK_gt_GunnerEntersRobotStopGunnerReminderTimer, false);
if ((UnitBehaviorDuration(EventUnit(), "VehicleDragonTimedLife") > 0.0)) {
libVLSK_gf_PlayVORobotDestroyed();
}
else {
libVLSK_gf_PlayVORobotTimedOut();
}
if ((libMapM_gv_mMMapMechanicDisabled == false)) {
libVLSK_gv_currentCapturePoint = libVLSK_gf_GetNextCapturePointIndex();
TimerStart(libVLSK_gv_mMVolskayaObjectivePreviewTimer, libVLSK_gv_mMVolskayaObjectivePreviewDelay_C, false, c_timeGame);
Timer Source
libvlsk_h.galaxy — constants
const fixed libVLSK_gv_cooldownTimerDuration_C = 150.0;
const fixed libVLSK_gv_mechanicInitialSpawnTimerDuration_C = 150.0;
const fixed libVLSK_gv_warningTimerDuration = 30.0;
libvlsk.galaxy — timer start
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
TimerStart(libVLSK_gv_capturePointWarningTimer, libVLSK_gv_warningTimerDuration, false, c_timeGame);
libVLSK_gf_SendEventVolskayaPointWarningCreated(libVLSK_gv_capturePoints[libVLSK_gv_currentCapturePoint].lv_region);
libVLSK_gf_PlayVOControlPointWarning();
libVLSK_gf_ShowCapturePointWarningSlideoutWithPing(libVLSK_gv_currentCapturePoint);
return true;
}
// ...
if ((libMapM_gv_mMMapMechanicDisabled == false)) {
libVLSK_gv_currentCapturePoint = libVLSK_gf_GetNextCapturePointIndex();
TimerStart(libVLSK_gv_mMVolskayaObjectivePreviewTimer, libVLSK_gv_mMVolskayaObjectivePreviewDelay_C, false, c_timeGame);
}
if ((libMapM_gv_mMMapMechanicDisabled == false)) {
TimerStart(libVLSK_gv_capturePointCooldownTimer, libVLSK_gv_mechanicInitialSpawnTimerDuration_C, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
// ...
else {
libVLSK_gf_PlayVORobotTimedOut();
}
if ((libMapM_gv_mMMapMechanicDisabled == false)) {
libVLSK_gv_currentCapturePoint = libVLSK_gf_GetNextCapturePointIndex();
TimerStart(libVLSK_gv_mMVolskayaObjectivePreviewTimer, libVLSK_gv_mMVolskayaObjectivePreviewDelay_C, false, c_timeGame);
TimerStart(libVLSK_gv_capturePointCooldownTimer, libVLSK_gv_cooldownTimerDuration_C, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
Source Files
- libvlsk.galaxy
- libvlsk_h.galaxy
- volskayamechanics.stormmod/behaviordata.xml
- volskayamechanics.stormmod/effectdata.xml
- volskayamechanics.stormmod/goaldata.xml
- volskayamechanics.stormmod/kineticdata.xml
- volskayamechanics.stormmod/statdata.xml
- volskayamechanics.stormmod/unitdata.xml
- volskayamechanics.stormmod/userdata.xml
- libvolv.galaxy
- libvolv_h.galaxy
- volskayadata.stormmod/abildata.xml
- volskayadata.stormmod/accumulatordata.xml
- volskayadata.stormmod/attachmethoddata.xml
- volskayadata.stormmod/behaviordata.xml
- volskayadata.stormmod/buttondata.xml
- volskayadata.stormmod/effectdata.xml
- volskayadata.stormmod/goaldata.xml
- volskayadata.stormmod/moverdata.xml
- volskayadata.stormmod/requirementdata.xml
- volskayadata.stormmod/requirementnodedata.xml
- volskayadata.stormmod/targetsortdata.xml
- volskayadata.stormmod/terrainobjectdata.xml
- volskayadata.stormmod/terraintexdata.xml
- volskayadata.stormmod/turretdata.xml
- volskayadata.stormmod/unitdata.xml
- volskayadata.stormmod/upgradedata.xml
- volskayadata.stormmod/userdata.xml
- volskayadata.stormmod/validatordata.xml
- volskayadata.stormmod/weapondata.xml