include "TriggerLibs/NativeLib"
include "TriggerLibs/HeroesLib"
include "TriggerLibs/GameLib"
include "TriggerLibs/MapMechanicsLib"
include "TriggerLibs/UILib"
include "TriggerLibs/SoundLib"
include "LibMSC2_h"
//--------------------------------------------------------------------------------------------------
// Library: Warhead Junction
//--------------------------------------------------------------------------------------------------
// External Library Initialization
void libMSC2_InitLibraries () {
libNtve_InitVariables();
libCore_InitVariables();
libGame_InitVariables();
libMapM_InitVariables();
libUIUI_InitVariables();
libSond_InitVariables();
}
// Variable Initialization
bool libMSC2_InitVariables_completed = false;
void libMSC2_InitVariables () {
int init_i;
int init_j;
int init_i1;
if (libMSC2_InitVariables_completed) {
return;
}
libMSC2_InitVariables_completed = true;
libMSC2_gv_mMSC2NukePickupRange_C = 2.0;
libMSC2_gv_mMSC2EventState = libMSC2_ge_MMSC2EventStates_NoEvent;
libMSC2_gv_mMSC2ThreeWarheadsSpawn = true;
libMSC2_gv_mMSC2TerrazineMainEventTimer = TimerCreate();
libMSC2_gv_mMSC2BuiltWarheadsActive = UnitGroupEmpty();
for (init_i = 0; init_i <= libMSC2_gv_mMSC2BuiltWarheadsCountMax_C; init_i += 1) {
libMSC2_gv_mMSC2BuiltWarheadsWarningPing[init_i] = c_invalidPingId;
}
for (init_i = 0; init_i <= libCore_gv_bALMaxPlayers; init_i += 1) {
for (init_j = 0; init_j <= 2; init_j += 1) {
libMSC2_gv_mMSC2NukeCalldownPiing[init_i][init_j] = c_invalidPingId;
}
}
libMSC2_gv_mMSC2WarheadEventFirstTime = true;
libMSC2_gv_mMSC2WarheadPickupReminderDelay_C = 20.0;
libMSC2_gv_mMSC2BuiltWarheadReminderTimer = TimerCreate();
libMSC2_gv_mMSC2ObjectivePreviewTimer = TimerCreate();
libMSC2_gv_mMSC2ObjectivePreviewDelay_C = 30.0;
libMSC2_gv_mMSC2NukeDamageScalingTimer = TimerCreate();
libMSC2_gv_mMSC2DroppedWarheadReminderTimer = TimerCreate();
libMSC2_gv_mMSC2DroppedWarheadsGroup = UnitGroupEmpty();
libMSC2_gv_mMSC2VOPlayingdelete = PlayerGroupEmpty();
libMSC2_gv_mMSC2VOSoundPlaying = PlayerGroupEmpty();
libMSC2_gv_mMSC2UIPanel.lv_capturePointsPanel = c_invalidDialogControlId;
libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeFrame = c_invalidDialogControlId;
libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeNameLabel = c_invalidDialogControlId;
libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeTimeLabel = c_invalidDialogControlId;
libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeQuantityLabel = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeFrame[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel2[init_i1] = c_invalidDialogControlId;
}
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseFrame = c_invalidDialogControlId;
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseInfoLabel = c_invalidDialogControlId;
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel = c_invalidDialogControlId;
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel2 = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxPlayersOnATeam; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel3[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxPlayersOnATeam; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel4[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxPlayersOnATeam; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel5[init_i1] = c_invalidDialogControlId;
}
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeam = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxPlayersOnATeam; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerIconBorders[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxPlayersOnATeam; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerIcons[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxPlayersOnATeam; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerTimer[init_i1] = c_invalidDialogControlId;
}
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameEnemyTeam = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxPlayersOnATeam; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameEnemyTeamPlayerIconBorders[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxPlayersOnATeam; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameEnemyTeamPlayerIcons[init_i1] = c_invalidDialogControlId;
}
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeam2 = c_invalidDialogControlId;
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeam3 = c_invalidDialogControlId;
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeam4 = c_invalidDialogControlId;
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_backgroundImageBlueLeft[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_backgroundImageBlueRight[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_backgroundImageRedLeft[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_backgroundImageRedRight[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageBlueLeft[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageBlueRight[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageRedLeft[init_i1] = c_invalidDialogControlId;
}
for (init_i1 = 0; init_i1 <= libCore_gv_bALMaxTeams; init_i1 += 1) {
libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageRedRight[init_i1] = c_invalidDialogControlId;
}
}
// Presets
// Functions
void libMSC2_gf_MMSC2AddWarheadSpawnLocation (int lp_lane, doodad lp_leftCanisterPointDoodad, point lp_leftCannisterPoint, doodad lp_middleCanisterPointDoodad, point lp_middleCanisterPoint, doodad lp_rightCanisterPointDoodad, point lp_rightCannisterPoint) {
// Automatic Variable Declarations
// Implementation
libMSC2_gv_mMSC2WarheadData[lp_lane].lv_leftCanisterDoodad = lp_leftCanisterPointDoodad;
libMSC2_gv_mMSC2WarheadData[lp_lane].lv_leftCanisterPoint = lp_leftCannisterPoint;
libMSC2_gv_mMSC2WarheadData[lp_lane].lv_middleCanisterDoodad = lp_middleCanisterPointDoodad;
libMSC2_gv_mMSC2WarheadData[lp_lane].lv_middleCanisterPoint = lp_middleCanisterPoint;
libMSC2_gv_mMSC2WarheadData[lp_lane].lv_rightCanisterDoodad = lp_rightCanisterPointDoodad;
libMSC2_gv_mMSC2WarheadData[lp_lane].lv_rightCanisterPoint = lp_rightCannisterPoint;
}
int libMSC2_gf_MMSC2DetermineDoubleWarheadSpawnLane () {
// Variable Declarations
playergroup lv_terrazineLaneGroup;
// Automatic Variable Declarations
// Variable Initialization
lv_terrazineLaneGroup = PlayerGroupEmpty();
// Implementation
PlayerGroupAdd(lv_terrazineLaneGroup, 1);
PlayerGroupAdd(lv_terrazineLaneGroup, 2);
PlayerGroupAdd(lv_terrazineLaneGroup, 3);
if ((libMSC2_gv_mMSC2ThreeWarheadsSpawn == true)) {
PlayerGroupRemove(lv_terrazineLaneGroup, libMSC2_gv_mMSC2LastDoubleWarheadLane);
}
else {
PlayerGroupRemove(lv_terrazineLaneGroup, libMSC2_gv_mMSC2LastEmptyWarheadLane);
}
return PlayerGroupPlayer(lv_terrazineLaneGroup, RandomInt(1, PlayerGroupCount(lv_terrazineLaneGroup)));
}
int libMSC2_gf_MMSC2CountofNukesForPlayer (int lp_playerIndex) {
// Variable Declarations
unit lv_heroUnit;
int lv_nukeCount;
// Automatic Variable Declarations
unitgroup auto538D59A7_g;
int auto538D59A7_u;
// Variable Initialization
// Implementation
auto538D59A7_g = libGame_gv_players[lp_playerIndex].lv_heroUnitGroup;
auto538D59A7_u = UnitGroupCount(auto538D59A7_g, c_unitCountAll);
for (;; auto538D59A7_u -= 1) {
lv_heroUnit = UnitGroupUnitFromEnd(auto538D59A7_g, auto538D59A7_u);
if (lv_heroUnit == null) { break; }
if ((UnitHasBehavior2(lv_heroUnit, "HasMapMechanicTargetAbility") == true) && (UnitTestState(lv_heroUnit, c_unitStateHallucination) == false)) {
lv_nukeCount += 1;
}
}
return lv_nukeCount;
}
void libMSC2_gf_MMSC2WarningStarts (int lp_specialLane) {
// Variable Declarations
int lv_itLane;
int lv_itPlayer;
// Automatic Variable Declarations
int autoF2A0A299_ae;
const int autoF2A0A299_ai = 1;
// Variable Initialization
// Implementation
libMSC2_gf_MMSC2ClearCanisterSpawningSignals();
SoundPlayForPlayer(SoundLink("UI_Game_Ping_Warhead_Nukes_Warning", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
libSond_gf_SoundtrackApplyNewDefaultSoundtrackForPlayerGroup("MX_WarheadJunction_EventSpawning", libCore_gv_allHeroPlayersPlusObserver);
autoF2A0A299_ae = libGame_gv_laneCount;
lv_itLane = 1;
for ( ; ( (autoF2A0A299_ai >= 0 && lv_itLane <= autoF2A0A299_ae) || (autoF2A0A299_ai < 0 && lv_itLane >= autoF2A0A299_ae) ) ; lv_itLane += autoF2A0A299_ai ) {
if ((lv_itLane == lp_specialLane)) {
if ((libMSC2_gv_mMSC2ThreeWarheadsSpawn == true)) {
libMSC2_gf_MMSC2CreateCanisterSpawningSignal(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_leftCanisterPoint);
libMSC2_gf_MMSC2CreateCanisterSpawningSignal(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_rightCanisterPoint);
libMSC2_gf_MMSC2CanisterPlaformPlayBirthAnimations(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_leftCanisterDoodad);
libMSC2_gf_MMSC2CanisterPlaformPlayBirthAnimations(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_rightCanisterDoodad);
}
}
else {
if ((libMSC2_gv_mMSC2ThreeWarheadsSpawn == true)) {
if ((ModI(libMSC2_gv_mMSC2EventTracker, 2) == 1)) {
if ((ModI(lv_itLane, 2) == 1)) {
libMSC2_gf_MMSC2CreateCanisterSpawningSignal(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterPoint);
libMSC2_gf_MMSC2CanisterPlaformPlayBirthAnimations(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterDoodad);
}
}
else {
if ((ModI(lv_itLane, 2) == 1)) {
}
else {
libMSC2_gf_MMSC2CreateCanisterSpawningSignal(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterPoint);
libMSC2_gf_MMSC2CanisterPlaformPlayBirthAnimations(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterDoodad);
}
}
}
else {
libMSC2_gf_MMSC2CreateCanisterSpawningSignal(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterPoint);
libMSC2_gf_MMSC2CanisterPlaformPlayBirthAnimations(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterDoodad);
}
}
}
}
void libMSC2_gf_MMSC2SetupandStartPreview (int lp_specialLane) {
// Variable Declarations
int lv_itLane;
int lv_itPlayer;
// Automatic Variable Declarations
int auto901C1127_ae;
const int auto901C1127_ai = 1;
// Variable Initialization
// Implementation
auto901C1127_ae = libGame_gv_laneCount;
lv_itLane = 1;
for ( ; ( (auto901C1127_ai >= 0 && lv_itLane <= auto901C1127_ae) || (auto901C1127_ai < 0 && lv_itLane >= auto901C1127_ae) ) ; lv_itLane += auto901C1127_ai ) {
if ((lv_itLane == lp_specialLane)) {
if ((libMSC2_gv_mMSC2ThreeWarheadsSpawn == true)) {
libMSC2_gf_MMSC2CreateCanisterPreview(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_leftCanisterPoint);
libMSC2_gf_MMSC2CreateCanisterPreview(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_rightCanisterPoint);
}
}
else {
if ((libMSC2_gv_mMSC2ThreeWarheadsSpawn == true)) {
if ((ModI(libMSC2_gv_mMSC2EventTracker, 2) == 1)) {
if ((ModI(lv_itLane, 2) == 1)) {
libMSC2_gf_MMSC2CreateCanisterPreview(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterPoint);
}
}
else {
if ((ModI(lv_itLane, 2) == 1)) {
}
else {
libMSC2_gf_MMSC2CreateCanisterPreview(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterPoint);
}
}
}
else {
libMSC2_gf_MMSC2CreateCanisterPreview(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterPoint);
}
}
}
}
void libMSC2_gf_MMSC2CreateCanisterPreview (point lp_location) {
// Automatic Variable Declarations
// Implementation
libNtve_gf_CreateUnitsWithDefaultFacing(1, "NukeTargetMinimapPreviewIconUnit", 0, 0, lp_location, null);
libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount += 1;
libMSC2_gv_mMSC2BuiltWarheadsPreviewUnits[libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount] = UnitLastCreated();
}
void libMSC2_gf_MMSC2CreateCanisterSpawningSignal (point lp_location) {
// Variable Declarations
fixed lv_pingDuration_C;
int lv_itPlayer;
// Automatic Variable Declarations
// Variable Initialization
lv_pingDuration_C = (libMSC2_gv_mMSC2EventWarningDelayGasCanister_C - 1.0);
// Implementation
if ((libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount >= libMSC2_gv_mMSC2BuiltWarheadsCountMax_C)) {
return ;
}
libNtve_gf_CreateModelAtPoint("RavenLordTributeWarning", lp_location);
ActorSend(libNtve_gf_ActorLastCreated(), "SetScaleAbsolute 0.500000");
ActorSend(libNtve_gf_ActorLastCreated(), "SetVisibility");
libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount += 1;
libMSC2_gv_mMSC2BuiltWarheadsWarningEffect[libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount] = libNtve_gf_ActorLastCreated();
VisRevealerCreate(libCore_gv_cOMPUTER_TeamOrder, RegionCircle(lp_location, 4.0));
libMSC2_gv_mMSC2BuiltWarheadsRevealer[libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount][1] = VisRevealerLastCreated();
VisRevealerCreate(libCore_gv_cOMPUTER_TeamChaos, RegionCircle(lp_location, 4.0));
libMSC2_gv_mMSC2BuiltWarheadsRevealer[libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount][2] = VisRevealerLastCreated();
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormWarning", lp_location, libCore_gv_cOLORNeutralColor, lv_pingDuration_C);
PingSetScale(PingLastCreated(), 0.4);
libMSC2_gv_mMSC2BuiltWarheadsWarningPing[libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount] = PingLastCreated();
AddPointOfInterest(lp_location, libMSC2_gv_mMSC2NukePickupRange_C, libMSC2_gv_mMSC2EventWarningDelayGasCanister_C, "Harvest", libNtve_ge_GoalTeam_Both, 0);
}
void libMSC2_gf_MMSC2ClearCanisterSpawningSignals () {
// Variable Declarations
int lv_itIndex;
int lv_itPlayer;
// Automatic Variable Declarations
int auto450CE7E6_ae;
const int auto450CE7E6_ai = 1;
// Variable Initialization
// Implementation
auto450CE7E6_ae = libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount;
lv_itIndex = 1;
for ( ; ( (auto450CE7E6_ai >= 0 && lv_itIndex <= auto450CE7E6_ae) || (auto450CE7E6_ai < 0 && lv_itIndex >= auto450CE7E6_ae) ) ; lv_itIndex += auto450CE7E6_ai ) {
if ((libMSC2_gv_mMSC2BuiltWarheadsWarningEffect[lv_itIndex] != null)) {
libNtve_gf_KillModel(libMSC2_gv_mMSC2BuiltWarheadsWarningEffect[lv_itIndex]);
libMSC2_gv_mMSC2BuiltWarheadsWarningEffect[lv_itIndex] = null;
}
if ((libMSC2_gv_mMSC2BuiltWarheadsWarningPing[lv_itIndex] != c_invalidPingId)) {
PingDestroy(libMSC2_gv_mMSC2BuiltWarheadsWarningPing[lv_itIndex]);
libMSC2_gv_mMSC2BuiltWarheadsWarningPing[lv_itIndex] = c_invalidPingId;
}
}
libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount = 0;
}
void libMSC2_gf_MMSC2ClearWarheadPreviews () {
// Variable Declarations
int lv_itIndex;
int lv_itPlayer;
// Automatic Variable Declarations
int auto1367A629_ae;
const int auto1367A629_ai = 1;
// Variable Initialization
// Implementation
auto1367A629_ae = libMSC2_gv_mMSC2BuiltWarheadsWarningEffectCount;
lv_itIndex = 1;
for ( ; ( (auto1367A629_ai >= 0 && lv_itIndex <= auto1367A629_ae) || (auto1367A629_ai < 0 && lv_itIndex >= auto1367A629_ae) ) ; lv_itIndex += auto1367A629_ai ) {
if ((libMSC2_gv_mMSC2BuiltWarheadsPreviewUnits[lv_itIndex] != null)) {
UnitKill(libMSC2_gv_mMSC2BuiltWarheadsPreviewUnits[lv_itIndex]);
libMSC2_gv_mMSC2BuiltWarheadsPreviewUnits[lv_itIndex] = null;
}
}
}
void libMSC2_gf_MMSC2SpawnNukeCanisters (int lp_specialSpawnLane) {
// Variable Declarations
int lv_itLane;
int lv_warheadsSpawned;
// Automatic Variable Declarations
int auto1B0D1057_ae;
const int auto1B0D1057_ai = 1;
// Variable Initialization
// Implementation
auto1B0D1057_ae = libGame_gv_laneCount;
lv_itLane = 1;
for ( ; ( (auto1B0D1057_ai >= 0 && lv_itLane <= auto1B0D1057_ae) || (auto1B0D1057_ai < 0 && lv_itLane >= auto1B0D1057_ae) ) ; lv_itLane += auto1B0D1057_ai ) {
if ((lv_itLane == lp_specialSpawnLane)) {
if ((libMSC2_gv_mMSC2ThreeWarheadsSpawn == true)) {
libMSC2_gf_MMSC2BuiltWarheadSpawned(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_leftCanisterPoint, libMSC2_gv_mMSC2TerrazineReward_C);
libMSC2_gf_MMSC2BuiltWarheadSpawned(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_rightCanisterPoint, libMSC2_gv_mMSC2TerrazineReward_C);
lv_warheadsSpawned = (lv_warheadsSpawned + 2);
}
}
else {
if ((libMSC2_gv_mMSC2ThreeWarheadsSpawn == true)) {
if ((ModI(libMSC2_gv_mMSC2EventTracker, 2) == 1)) {
if ((ModI(lv_itLane, 2) == 1)) {
libMSC2_gf_MMSC2BuiltWarheadSpawned(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterPoint, libMSC2_gv_mMSC2TerrazineReward_C);
lv_warheadsSpawned = (lv_warheadsSpawned + 1);
}
}
else {
if ((ModI(lv_itLane, 2) == 1)) {
}
else {
libMSC2_gf_MMSC2BuiltWarheadSpawned(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterPoint, libMSC2_gv_mMSC2TerrazineReward_C);
lv_warheadsSpawned = (lv_warheadsSpawned + 1);
}
}
}
else {
libMSC2_gf_MMSC2BuiltWarheadSpawned(libMSC2_gv_mMSC2WarheadData[lv_itLane].lv_middleCanisterPoint, libMSC2_gv_mMSC2TerrazineReward_C);
lv_warheadsSpawned = (lv_warheadsSpawned + 1);
}
}
}
SoundPlayForPlayer(SoundLink("UI_Game_Ping_Warhead_Nukes_Ready", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
libMSC2_gf_MMSC2UpdateNukeTextTagsForPlayers();
TimerStart(libMSC2_gv_mMSC2BuiltWarheadReminderTimer, libMSC2_gv_mMSC2WarheadPickupReminderDelay_C, false, c_timeGame);
StatEventCreate("WarheadJunctionNukesSpawned");
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventAddDataInt(StatEventLastCreated(), "NukeSpawnedCount", lv_warheadsSpawned);
StatEventSend(StatEventLastCreated());
}
trigger auto_libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer_Trigger = null;
int auto_libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer_lp_player;
void libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer (int lp_player) {
auto_libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer_lp_player = lp_player;
if (auto_libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer_Trigger == null) {
auto_libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer_TriggerFunc (bool testConds, bool runActions) {
int lp_player = auto_libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer_lp_player;
// Variable Declarations
int lv_itPlayer;
int lv_player;
playergroup lv_nukePlayerGroup;
// Automatic Variable Declarations
playergroup auto29EB8D88_g;
// Variable Initialization
lv_nukePlayerGroup = PlayerGroupEmpty();
// Implementation
UISetButtonFaceHighlighted(PlayerGroupSingle(lp_player), "MapMechanicNuke", true);
while (true) {
auto29EB8D88_g = lv_nukePlayerGroup;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto29EB8D88_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
if ((libMSC2_gf_MMSC2CountofNukesForPlayer(lv_itPlayer) == 0)) {
UISetButtonFaceHighlighted(libCore_gv_playerGroupFromPlayer[lv_itPlayer], "MapMechanicNuke", false);
PlayerGroupRemove(lv_nukePlayerGroup, lv_itPlayer);
}
}
if ((PlayerGroupCount(lv_nukePlayerGroup) == 0)) {
return true;
}
Wait(0.5, c_timeGame);
}
return true;
}
trigger auto_libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer_Trigger = null;
int auto_libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer_lp_player;
void libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer (int lp_player) {
auto_libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer_lp_player = lp_player;
if (auto_libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer_Trigger == null) {
auto_libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer_TriggerFunc (bool testConds, bool runActions) {
int lp_player = auto_libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer_lp_player;
// Automatic Variable Declarations
// Implementation
UISetButtonFaceHighlighted(libCore_gv_playerGroupFromPlayer[lp_player], "MapMechanicNuke", false);
return true;
}
void libMSC2_gf_MMSC2BuiltWarheadSpawned (point lp_canisterSpawnLocation, int lp_gasAmount) {
// Variable Declarations
string lv_canisterType;
text lv_tooltipText;
int lv_playerIndex;
unit lv_spawnedWarhead;
// Automatic Variable Declarations
const int auto1EF1ABC4_ae = libCore_gv_bALMaxPlayers;
const int auto1EF1ABC4_ai = 1;
// Variable Initialization
lv_canisterType = "WarheadSingle";
lv_tooltipText = TextExpressionAssemble("Param/Expression/lib_MSC2_0162F03E");
// Implementation
SoundtrackStopCurrent(libCore_gv_allHeroPlayersPlusObserver, c_soundtrackCategoryMusic, true);
libSond_gf_SoundtrackPlayMapSoundtrackAsDefaultSoundtrackForAllPlayers();
libNtve_gf_CreateUnitsAtPoint2(1, lv_canisterType, c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_Neutral, lp_canisterSpawnLocation, null);
lv_spawnedWarhead = UnitLastCreated();
libNtve_gf_SendActorMessageToUnit(lv_spawnedWarhead, "Signal Reveal");
UnitGroupAdd(libMSC2_gv_mMSC2BuiltWarheadsActive, lv_spawnedWarhead);
libMSC2_gv_mMSC2BuiltWarheads[UnitGroupCount(libMSC2_gv_mMSC2BuiltWarheadsActive, c_unitCountAlive)] = lv_spawnedWarhead;
RemovePointOfInterest(lp_canisterSpawnLocation, "Harvest", libNtve_ge_GoalTeam_Both);
AddUnitOfInterest(lv_spawnedWarhead, libMSC2_gv_mMSC2NukePickupRange_C, 0.0, "Harvest", libNtve_ge_GoalTeam_Both, 0);
TextTagCreate(lv_tooltipText, 24, UnitGetPosition(lv_spawnedWarhead), 2.0, true, true, PlayerGroupAll());
libCore_gf_StoreTextTagForUnit(lv_spawnedWarhead, 1, TextTagLastCreated());
TextTagAttachToUnit(TextTagLastCreated(), lv_spawnedWarhead, 4.0);
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlertSilent", lp_canisterSpawnLocation, ColorWithAlpha(0,0,0,0), 4.0);
PingSetScale(PingLastCreated(), 0.6);
lv_playerIndex = 1;
for ( ; ( (auto1EF1ABC4_ai >= 0 && lv_playerIndex <= auto1EF1ABC4_ae) || (auto1EF1ABC4_ai < 0 && lv_playerIndex >= auto1EF1ABC4_ae) ) ; lv_playerIndex += auto1EF1ABC4_ai ) {
libNtve_gf_ShareVisionofUnit(lv_spawnedWarhead, true, lv_playerIndex);
}
}
void libMSC2_gf_MMTodAddWaygate (int lp_waygateIndex, unit lp_waygateUnit, unit lp_topEntrance, unit lp_bottomEntrance) {
// Automatic Variable Declarations
// Implementation
if (((lp_waygateUnit == null) || (lp_topEntrance == null) || (lp_bottomEntrance == null))) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_6202B8D5"), true);
}
if ((lp_waygateIndex > libMSC2_gv_mMFieldofSlaughterWaygateMaxCount_C)) {
TextExpressionSetToken("Param/Expression/lib_MSC2_3695B24F", "A", IntToText(libMSC2_gv_mMFieldofSlaughterWaygateMaxCount_C));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MSC2_3695B24F"), true);
return ;
}
libMSC2_gv_mMToDWaygates[lp_waygateIndex].lv_topWaygate = lp_topEntrance;
libNtve_gf_CreateUnitsWithDefaultFacing(1, "WaygateEntranceMinimapIconActor", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_TeamOrder, UnitGetPosition(lp_topEntrance), null);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "WaygateEntranceMinimapIconActor", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_TeamChaos, UnitGetPosition(lp_topEntrance), null);
libMSC2_gv_mMToDWaygates[lp_waygateIndex].lv_bottomWaygate = lp_bottomEntrance;
libNtve_gf_CreateUnitsWithDefaultFacing(1, "WaygateEntranceMinimapIconActor", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_TeamOrder, UnitGetPosition(lp_bottomEntrance), null);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "WaygateEntranceMinimapIconActor", c_unitCreateIgnorePlacement, libCore_gv_cOMPUTER_TeamChaos, UnitGetPosition(lp_bottomEntrance), null);
}
void libMSC2_gf_MMToDActivateWaygates () {
// Variable Declarations
int lv_itWaygate;
// Automatic Variable Declarations
const int auto8005C6A1_ae = libMSC2_gv_mMFieldofSlaughterWaygateMaxCount_C;
const int auto8005C6A1_ai = 1;
const int auto22A05D4D_ae = libMSC2_gv_mMFieldofSlaughterWaygateMaxCount_C;
const int auto22A05D4D_ai = 1;
// Variable Initialization
// Implementation
lv_itWaygate = 1;
for ( ; ( (auto8005C6A1_ai >= 0 && lv_itWaygate <= auto8005C6A1_ae) || (auto8005C6A1_ai < 0 && lv_itWaygate >= auto8005C6A1_ae) ) ; lv_itWaygate += auto8005C6A1_ai ) {
if (true) {
libNtve_gf_SendActorMessageToUnit(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate, "Signal EntranceActive");
libNtve_gf_SendActorMessageToUnit(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate, "Signal EntranceActive");
}
}
libCore_gf_CreateMinimapPingStorm(libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers, "StormAlert", UnitGetPosition(libMSC2_gv_mMToDWaygates[1].lv_topWaygate), ColorWithAlpha(100.00, 100.00, 0.00, 0.00), 4.5);
libCore_gf_CreateMinimapPingStorm(libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers, "StormAlert", UnitGetPosition(libMSC2_gv_mMToDWaygates[1].lv_bottomWaygate), ColorWithAlpha(100.00, 100.00, 0.00, 0.00), 4.5);
libCore_gf_CreateMinimapPingStorm(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, "StormAlert", UnitGetPosition(libMSC2_gv_mMToDWaygates[1].lv_bottomWaygate), ColorWithAlpha(100.00, 100.00, 0.00, 0.00), 4.5);
libCore_gf_CreateMinimapPingStorm(libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, "StormAlert", UnitGetPosition(libMSC2_gv_mMToDWaygates[1].lv_topWaygate), ColorWithAlpha(100.00, 100.00, 0.00, 0.00), 4.5);
Wait(3.5, c_timeGame);
lv_itWaygate = 1;
for ( ; ( (auto22A05D4D_ai >= 0 && lv_itWaygate <= auto22A05D4D_ae) || (auto22A05D4D_ai < 0 && lv_itWaygate >= auto22A05D4D_ae) ) ; lv_itWaygate += auto22A05D4D_ai ) {
if (true) {
UnitSetState(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate, c_unitStateHighlightable, true);
UnitSetState(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate, c_unitStateTargetable, true);
UnitBehaviorAdd(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate, "MacguffinActivated", libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate, 1);
UnitBehaviorRemove(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate, "UnitCannotBePinged", 1);
UnitSetState(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate, c_unitStateHighlightable, true);
UnitSetState(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate, c_unitStateTargetable, true);
UnitBehaviorAdd(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate, "MacguffinActivated", libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate, 1);
UnitBehaviorRemove(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate, "UnitCannotBePinged", 1);
AIAddPortal(libCore_gv_cOMPUTER_TeamOrder, libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate, libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate, 2.0, 0.0, "CaptureMacGuffinTwo", null);
AIAddPortal(libCore_gv_cOMPUTER_TeamChaos, libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate, libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate, 2.0, 0.0, "CaptureMacGuffinTwo", null);
}
}
TextTagCreate(StringExternal("Param/Value/lib_MSC2_738BDC22"), 20, UnitGetPosition(libMSC2_gv_mMToDWaygates[1].lv_topWaygate), 1.0, true, false, libCore_gv_allHeroPlayersPlusObserver);
TextTagShow(TextTagLastCreated(), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], false);
TextTagCreate(StringExternal("Param/Value/lib_MSC2_2EC773A5"), 20, UnitGetPosition(libMSC2_gv_mMToDWaygates[1].lv_bottomWaygate), 1.0, true, false, libCore_gv_allHeroPlayersPlusObserver);
TextTagShow(TextTagLastCreated(), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], false);
Wait(1.5, c_timeGame);
}
int libMSC2_gf_MMSC2NukeCountforTeam (int lp_team) {
// Variable Declarations
int lv_itPlayer;
int lv_count;
// Automatic Variable Declarations
playergroup auto45FA20BC_g;
// Variable Initialization
// Implementation
auto45FA20BC_g = libGame_gf_PlayersOnTeamHeroes(lp_team, false);
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto45FA20BC_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
lv_count += libMSC2_gf_MMSC2CountofNukesForPlayer(lv_itPlayer);
}
return lv_count;
}
void libMSC2_gf_MMSC2UpdateNukeTextTagsForPlayers () {
// Variable Declarations
int lv_itPlayer;
// Automatic Variable Declarations
int auto67C561B1_ae;
// Variable Initialization
// Implementation
auto67C561B1_ae = libCore_gv_bALMaxPlayers;
lv_itPlayer = 1;
for ( ; lv_itPlayer <= auto67C561B1_ae ; lv_itPlayer += 1 ) {
if ((libMSC2_gf_MMSC2CountofNukesForPlayer(lv_itPlayer) > 0)) {
libMSC2_gf_MMSC2ShowHideNukeTextTagsForPlayer(false, lv_itPlayer);
}
}
}
void libMSC2_gf_MMSC2ShowHideNukeTextTagsForPlayer (bool lp_showHide, int lp_player) {
// Variable Declarations
unit lv_itUnit;
// Automatic Variable Declarations
unitgroup autoD415EA51_g;
int autoD415EA51_u;
// Variable Initialization
// Implementation
autoD415EA51_g = libMSC2_gv_mMSC2BuiltWarheadsActive;
autoD415EA51_u = UnitGroupCount(autoD415EA51_g, c_unitCountAll);
for (;; autoD415EA51_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(autoD415EA51_g, autoD415EA51_u);
if (lv_itUnit == null) { break; }
TextTagShow(libCore_gf_TextTagStoredForUnit(lv_itUnit, 1), PlayerGroupSingle(lp_player), lp_showHide);
}
}
void libMSC2_gf_MMSC2NukeDamageScalingOnPickup (int lp_playerIndex) {
// Variable Declarations
int lv_damageScalesForAlignment;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_damageScalesForAlignment = (libMSC2_gv_mMSC2NukeDamageScalesNeeded - libMSC2_gv_mMSC2NukeDamageScalesDone[lp_playerIndex]);
CatalogFieldValueModify(c_gameCatalogEffect, "NukeOuterImpactDamage", "Amount", lp_playerIndex, FixedToString((70.0 * lv_damageScalesForAlignment), c_fixedPrecisionAny), c_upgradeOperationAdd);
CatalogFieldValueModify(c_gameCatalogEffect, "NukeOuterImpactDamageStructure", "Amount", lp_playerIndex, FixedToString((70.0 * lv_damageScalesForAlignment), c_fixedPrecisionAny), c_upgradeOperationAdd);
CatalogFieldValueModify(c_gameCatalogEffect, "NukeStructureBurnPeriodicDamage", "Amount", lp_playerIndex, FixedToString((4.8 * lv_damageScalesForAlignment), c_fixedPrecisionAny), c_upgradeOperationAdd);
libMSC2_gv_mMSC2NukeDamageScalesDone[lp_playerIndex] += lv_damageScalesForAlignment;
}
trigger auto_libMSC2_gf_MMSC2ArmNukeForUnit_Trigger = null;
unit auto_libMSC2_gf_MMSC2ArmNukeForUnit_lp_unit;
void libMSC2_gf_MMSC2ArmNukeForUnit (unit lp_unit) {
auto_libMSC2_gf_MMSC2ArmNukeForUnit_lp_unit = lp_unit;
if (auto_libMSC2_gf_MMSC2ArmNukeForUnit_Trigger == null) {
auto_libMSC2_gf_MMSC2ArmNukeForUnit_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2ArmNukeForUnit_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2ArmNukeForUnit_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2ArmNukeForUnit_TriggerFunc (bool testConds, bool runActions) {
unit lp_unit = auto_libMSC2_gf_MMSC2ArmNukeForUnit_lp_unit;
// Variable Declarations
int lv_player;
int lv_allyTeam;
int lv_enemyTeam;
unit lv_varUnit;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_player = UnitGetOwner(lp_unit);
if ((UnitFilterMatch(lp_unit, lv_player, UnitFilter(0, (1 << (c_targetFilterHallucination - 32)), 0, 0)) == true)) {
lv_varUnit = libGame_gv_players[lv_player].lv_heroUnit;
}
else {
lv_varUnit = lp_unit;
}
lv_allyTeam = libGame_gf_TeamNumberOfPlayer(lv_player);
lv_enemyTeam = libGame_gf_EnemyTeam(lv_allyTeam);
UnitBehaviorAdd(lv_varUnit, "HasMapMechanicTargetAbility", lv_varUnit, 1);
UnitModifyCooldown(lv_varUnit, "Abil/MapMechanicNuke", libMSC2_gv_mMSC2NukeArmingDuration_C, c_cooldownOperationMax);
UnitModifyCooldown(lv_varUnit, "Abil/MapMechanicAbilityTarget", libMSC2_gv_mMSC2NukeArmingDuration_C, c_cooldownOperationMax);
libMSC2_gf_MMSC2ShowHideNukeTextTagsForPlayer(false, lv_player);
libMSC2_gf_MMSC2NukeButtonStartFlashingForPlayer(lv_player);
libMSC2_gf_MMSC2NukeDamageScalingOnPickup(lv_player);
libGame_gf_ScoreValuesReportIntegerValueAndLog(lv_player, "CarriedMechanic", 1);
libMSC2_gv_mMSC2_Nuke_Info.lv_playerNukeStateChanged[lv_player] = true;
libNtve_gf_SendActorMessageToUnit(libMSC2_gv_nukeSiloUnit[lv_allyTeam], "Signal Activate");
if ((libMSC2_gv_mMSC2_Nuke_Info.lv_teamHasNukes[lv_allyTeam] == true)) {
libMSC2_gf_MMSC2UIEnableNukeUIStateForPlayer(lv_player);
}
else {
libMSC2_gv_mMSC2_Nuke_Info.lv_teamHasNukes[lv_allyTeam] = true;
libMSC2_gf_MMSC2UIEnableNukeUIStateForPlayer(lv_player);
}
return true;
}
void libMSC2_gf_MMSC2PlayerUsesNuke (unit lp_unit) {
// Variable Declarations
int lv_nukesi;
int lv_player;
playergroup lv_allyPlayerGroup;
playergroup lv_enemyPlayerGroup;
int lv_allyTeam;
int lv_enemyTeam;
// Automatic Variable Declarations
unitgroup auto0D10A15E_g;
int auto0D10A15E_u;
unit auto0D10A15E_var;
int autoF6C2C763_val;
// Variable Initialization
lv_allyPlayerGroup = PlayerGroupEmpty();
lv_enemyPlayerGroup = PlayerGroupEmpty();
// Implementation
lv_player = UnitGetOwner(lp_unit);
lv_allyTeam = libGame_gf_TeamNumberOfPlayer(lv_player);
lv_allyPlayerGroup = GameAttributePlayersForTeam(lv_allyTeam);
PlayerGroupRemove(lv_allyPlayerGroup, lv_player);
lv_enemyTeam = libGame_gf_EnemyTeam(lv_allyTeam);
lv_enemyPlayerGroup = GameAttributePlayersForTeam(lv_enemyTeam);
libMSC2_gf_MMSC2TransmissionPlayerFiresNuke(lv_player);
libGame_gf_ScoreValuesReportIntegerValueAndLog(lv_player, "CarriedMechanic", 0);
libMSC2_gv_mMSC2_Nuke_Info.lv_playerNukeStateChanged[lv_player] = true;
if ((UnitGetType(libGame_gv_players[lv_player].lv_heroUnit) == "HeroLostVikingsController")) {
auto0D10A15E_g = libGame_gv_players[lv_player].lv_heroUnitGroup;
auto0D10A15E_u = UnitGroupCount(auto0D10A15E_g, c_unitCountAll);
for (;; auto0D10A15E_u -= 1) {
auto0D10A15E_var = UnitGroupUnitFromEnd(auto0D10A15E_g, auto0D10A15E_u);
if (auto0D10A15E_var == null) { break; }
if ((UnitBehaviorCount(auto0D10A15E_var, "HasMapMechanicTargetAbility") == 1)) {
lv_nukesi += 1;
}
}
}
if ((lv_nukesi == 0)) {
libNtve_gf_SetUpgradeLevelForPlayer(lv_player, "DisplayLockedMapMechanicAbility", 1);
}
libMSC2_gf_MMSC2UIDisableNukeUIStateForPlayer(lv_player);
libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer(lv_player);
libMSC2_gf_MMSC2ShowHideNukeTextTagsForPlayer(true, lv_player);
autoF6C2C763_val = lv_allyTeam;
if (autoF6C2C763_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel[lv_allyTeam], IntToText(libMSC2_gf_MMSC2NukeCountforTeam(lv_allyTeam)), PlayerGroupAll());
}
else if (autoF6C2C763_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel2[lv_allyTeam], IntToText(libMSC2_gf_MMSC2NukeCountforTeam(lv_allyTeam)), PlayerGroupAll());
}
else {
}
if ((libMSC2_gf_MMSC2NukeCountforTeam(lv_allyTeam) == 0)) {
libMSC2_gv_mMSC2_Nuke_Info.lv_teamHasNukes[lv_allyTeam] = false;
libNtve_gf_SendActorMessageToUnit(libMSC2_gv_nukeSiloUnit[lv_allyTeam], "Signal Deactivate");
}
StatEventCreate("WarheadJunctionNukeFired");
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventAddDataInt(StatEventLastCreated(), "OwningTeam", lv_allyTeam);
StatEventSend(StatEventLastCreated());
}
void libMSC2_gf_MMSC2CanisterPlaformPlayBirthAnimations (doodad lp_doodad) {
// Automatic Variable Declarations
// Implementation
if ((TimerGetRemaining(libMSC2_gv_mMSC2TerrazineMainEventTimer) > 5.0)) {
ActorSend(ActorFromDoodad(lp_doodad), "Signal SpawnNukeTimer");
}
else {
ActorSend(ActorFromDoodad(lp_doodad), "Signal SpawnNuke");
}
}
trigger auto_libMSC2_gf_MMSC2CanisterEventDone_Trigger = null;
void libMSC2_gf_MMSC2CanisterEventDone () {
if (auto_libMSC2_gf_MMSC2CanisterEventDone_Trigger == null) {
auto_libMSC2_gf_MMSC2CanisterEventDone_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2CanisterEventDone_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2CanisterEventDone_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2CanisterEventDone_TriggerFunc (bool testConds, bool runActions) {
// Variable Declarations
int lv_iLane;
// Automatic Variable Declarations
const int autoE982A65E_ae = 3;
const int autoE982A65E_ai = 1;
// Variable Initialization
// Implementation
Wait(3.5, c_timeGame);
lv_iLane = 1;
for ( ; ( (autoE982A65E_ai >= 0 && lv_iLane <= autoE982A65E_ae) || (autoE982A65E_ai < 0 && lv_iLane >= autoE982A65E_ae) ) ; lv_iLane += autoE982A65E_ai ) {
if ((libMSC2_gv_mMSC2WarheadData[lv_iLane].lv_leftCanisterDoodad != null)) {
ActorSend(ActorFromDoodad(libMSC2_gv_mMSC2WarheadData[lv_iLane].lv_leftCanisterDoodad), "Signal EventDone");
}
if ((libMSC2_gv_mMSC2WarheadData[lv_iLane].lv_rightCanisterDoodad != null)) {
ActorSend(ActorFromDoodad(libMSC2_gv_mMSC2WarheadData[lv_iLane].lv_rightCanisterDoodad), "Signal EventDone");
}
if ((libMSC2_gv_mMSC2WarheadData[lv_iLane].lv_middleCanisterDoodad != null)) {
ActorSend(ActorFromDoodad(libMSC2_gv_mMSC2WarheadData[lv_iLane].lv_middleCanisterDoodad), "Signal EventDone");
}
}
return true;
}
trigger auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_Trigger = null;
soundlink auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_lp_vOSound;
int auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_lp_player;
void libMSC2_gf_MMSC2PlayVOSoundforPlayer (soundlink lp_vOSound, int lp_player) {
auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_lp_vOSound = lp_vOSound;
auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_lp_player = lp_player;
if (auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_Trigger == null) {
auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_TriggerFunc (bool testConds, bool runActions) {
soundlink lp_vOSound = auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_lp_vOSound;
int lp_player = auto_libMSC2_gf_MMSC2PlayVOSoundforPlayer_lp_player;
// Automatic Variable Declarations
// Implementation
if (((libGame_gv_gameOver == true) || (libMSC2_gv_mMSC2GlobalConversationPlaying == true) || (PlayerGroupHasPlayer(libMSC2_gv_mMSC2VOSoundPlaying, lp_player) == true))) {
return true;
}
PlayerGroupAdd(libMSC2_gv_mMSC2VOSoundPlaying, lp_player);
SoundPlayForPlayer(lp_vOSound, c_maxPlayers, PlayerGroupSingle(lp_player), 100.0, 0.0);
SoundWait(SoundLastPlayed(), 0.0, c_soundOffsetEnd);
PlayerGroupRemove(libMSC2_gv_mMSC2VOSoundPlaying, lp_player);
return true;
}
trigger auto_libMSC2_gf_MMSC2TransmissionWarheadSpawnWarningQ_Trigger = null;
void libMSC2_gf_MMSC2TransmissionWarheadSpawnWarningQ () {
if (auto_libMSC2_gf_MMSC2TransmissionWarheadSpawnWarningQ_Trigger == null) {
auto_libMSC2_gf_MMSC2TransmissionWarheadSpawnWarningQ_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2TransmissionWarheadSpawnWarningQ_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2TransmissionWarheadSpawnWarningQ_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2TransmissionWarheadSpawnWarningQ_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
libMSC2_gv_mMSC2GlobalConversationPlaying = true;
while (!((PlayerGroupCount(libMSC2_gv_mMSC2VOSoundPlaying) == 0))) {
Wait(0.125, c_timeGame);
}
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "Uranium Warning", "Value", 1, 1);
ConversationDataRun("NukeVO", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
libMSC2_gv_mMSC2GlobalConversationPlaying = false;
TriggerQueueExit();
return true;
}
trigger auto_libMSC2_gf_MMSC2TransmissionWarheadsSpawnedQ_Trigger = null;
void libMSC2_gf_MMSC2TransmissionWarheadsSpawnedQ () {
if (auto_libMSC2_gf_MMSC2TransmissionWarheadsSpawnedQ_Trigger == null) {
auto_libMSC2_gf_MMSC2TransmissionWarheadsSpawnedQ_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2TransmissionWarheadsSpawnedQ_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2TransmissionWarheadsSpawnedQ_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2TransmissionWarheadsSpawnedQ_TriggerFunc (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Implementation
Wait(0.85, c_timeGame);
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
libMSC2_gv_mMSC2GlobalConversationPlaying = true;
while (!((PlayerGroupCount(libMSC2_gv_mMSC2VOSoundPlaying) == 0))) {
Wait(0.125, c_timeGame);
}
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "Uranium Spawned", "Value", 1, 1);
ConversationDataRun("NukeVO", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
libMSC2_gv_mMSC2GlobalConversationPlaying = false;
TriggerQueueExit();
return true;
}
trigger auto_libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke_Trigger = null;
int auto_libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke_lp_player;
void libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke (int lp_player) {
auto_libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke_lp_player = lp_player;
if (auto_libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke_Trigger == null) {
auto_libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke_TriggerFunc (bool testConds, bool runActions) {
int lp_player = auto_libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke_lp_player;
// Variable Declarations
int lv_randomInt;
// Automatic Variable Declarations
int auto0968BB4A_val;
// Variable Initialization
// Implementation
if (((libGame_gv_gameOver == true) || (libMSC2_gv_mMSC2GlobalConversationPlaying == true) || (PlayerGroupHasPlayer(libMSC2_gv_mMSC2VOSoundPlaying, lp_player) == true))) {
return true;
}
lv_randomInt = RandomInt(1, 3);
auto0968BB4A_val = lv_randomInt;
if (auto0968BB4A_val == 1) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_091", -1), lp_player);
}
else if (auto0968BB4A_val == 2) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_092", -1), lp_player);
}
else if (auto0968BB4A_val == 3) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_093", -1), lp_player);
}
else {
}
return true;
}
trigger auto_libMSC2_gf_MMSC2TransmissionPlayerNukeReady_Trigger = null;
int auto_libMSC2_gf_MMSC2TransmissionPlayerNukeReady_lp_player;
void libMSC2_gf_MMSC2TransmissionPlayerNukeReady (int lp_player) {
auto_libMSC2_gf_MMSC2TransmissionPlayerNukeReady_lp_player = lp_player;
if (auto_libMSC2_gf_MMSC2TransmissionPlayerNukeReady_Trigger == null) {
auto_libMSC2_gf_MMSC2TransmissionPlayerNukeReady_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2TransmissionPlayerNukeReady_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2TransmissionPlayerNukeReady_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2TransmissionPlayerNukeReady_TriggerFunc (bool testConds, bool runActions) {
int lp_player = auto_libMSC2_gf_MMSC2TransmissionPlayerNukeReady_lp_player;
// Variable Declarations
int lv_randomInt;
// Automatic Variable Declarations
int autoB021BBC9_val;
// Variable Initialization
// Implementation
if (((libGame_gv_gameOver == true) || (libMSC2_gv_mMSC2GlobalConversationPlaying == true) || (PlayerGroupHasPlayer(libMSC2_gv_mMSC2VOSoundPlaying, lp_player) == true))) {
return true;
}
lv_randomInt = RandomInt(1, 3);
autoB021BBC9_val = lv_randomInt;
if (autoB021BBC9_val == 1) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_094", -1), lp_player);
}
else if (autoB021BBC9_val == 2) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_095", -1), lp_player);
}
else if (autoB021BBC9_val == 3) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_096", -1), lp_player);
}
else {
}
return true;
}
trigger auto_libMSC2_gf_MMSC2TransmissionPlayerFiresNuke_Trigger = null;
int auto_libMSC2_gf_MMSC2TransmissionPlayerFiresNuke_lp_player;
void libMSC2_gf_MMSC2TransmissionPlayerFiresNuke (int lp_player) {
auto_libMSC2_gf_MMSC2TransmissionPlayerFiresNuke_lp_player = lp_player;
if (auto_libMSC2_gf_MMSC2TransmissionPlayerFiresNuke_Trigger == null) {
auto_libMSC2_gf_MMSC2TransmissionPlayerFiresNuke_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2TransmissionPlayerFiresNuke_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2TransmissionPlayerFiresNuke_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2TransmissionPlayerFiresNuke_TriggerFunc (bool testConds, bool runActions) {
int lp_player = auto_libMSC2_gf_MMSC2TransmissionPlayerFiresNuke_lp_player;
// Variable Declarations
int lv_team;
int lv_enemyTeam;
int lv_itPlayer;
playergroup lv_groupOrder;
playergroup lv_groupChaos;
playergroup lv_groupEnemies;
playergroup lv_observers;
playergroup lv_listeningPlayers;
int lv_randomInt;
// Automatic Variable Declarations
int autoF561B23D_val;
playergroup auto6C8DC4A2_g;
int auto77E832DC_val;
playergroup auto449A52E7_g;
int autoBDBF9CA4_val;
int auto9764D223_val;
// Variable Initialization
lv_groupOrder = PlayerGroupEmpty();
lv_groupChaos = PlayerGroupEmpty();
lv_groupEnemies = PlayerGroupEmpty();
lv_observers = PlayerGroupEmpty();
lv_listeningPlayers = PlayerGroupEmpty();
// Implementation
if (((libGame_gv_gameOver == true) || (libMSC2_gv_mMSC2GlobalConversationPlaying == true))) {
return true;
}
lv_team = libGame_gf_TeamNumberOfPlayer(lp_player);
lv_enemyTeam = libGame_gf_EnemyTeam(lv_team);
lv_groupEnemies = libGame_gf_PlayersOnTeamHeroes(lv_enemyTeam, false);
lv_observers = libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer];
if ((PlayerGroupHasPlayer(libMSC2_gv_mMSC2VOSoundPlaying, lp_player) == false)) {
lv_randomInt = RandomInt(1, 4);
autoF561B23D_val = lv_randomInt;
if (autoF561B23D_val == 1) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_144", -1), lp_player);
}
else if (autoF561B23D_val == 2) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_145", -1), lp_player);
}
else if (autoF561B23D_val == 3) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_146", -1), lp_player);
}
else if (autoF561B23D_val == 4) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_147", -1), lp_player);
}
else {
}
}
auto6C8DC4A2_g = lv_groupEnemies;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto6C8DC4A2_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
if ((PlayerGroupHasPlayer(libMSC2_gv_mMSC2VOSoundPlaying, lv_itPlayer) == false)) {
lv_randomInt = RandomInt(1, 4);
auto77E832DC_val = lv_randomInt;
if (auto77E832DC_val == 1) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_097", -1), lv_itPlayer);
}
else if (auto77E832DC_val == 2) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_098", -1), lv_itPlayer);
}
else if (auto77E832DC_val == 3) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_099", -1), lv_itPlayer);
}
else if (auto77E832DC_val == 4) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_100", -1), lv_itPlayer);
}
else {
}
}
}
auto449A52E7_g = lv_observers;
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto449A52E7_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
if ((PlayerGroupHasPlayer(libMSC2_gv_mMSC2VOSoundPlaying, lv_itPlayer) == false)) {
lv_randomInt = RandomInt(1, 2);
if ((lv_team == libGame_gv_teamOrderIndex_C)) {
auto9764D223_val = lv_randomInt;
if (auto9764D223_val == 1) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_121", -1), lv_itPlayer);
}
else if (auto9764D223_val == 2) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_122", -1), lv_itPlayer);
}
else {
}
}
else {
autoBDBF9CA4_val = lv_randomInt;
if (autoBDBF9CA4_val == 1) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_125", -1), lv_itPlayer);
}
else if (autoBDBF9CA4_val == 2) {
libMSC2_gf_MMSC2PlayVOSoundforPlayer(SoundLink("NukeVO_Adjutant_126", -1), lv_itPlayer);
}
else {
}
}
}
}
return true;
}
trigger auto_libMSC2_gf_MMSC2TransmissionAllNukesCollectedQ_Trigger = null;
void libMSC2_gf_MMSC2TransmissionAllNukesCollectedQ () {
if (auto_libMSC2_gf_MMSC2TransmissionAllNukesCollectedQ_Trigger == null) {
auto_libMSC2_gf_MMSC2TransmissionAllNukesCollectedQ_Trigger = TriggerCreate("auto_libMSC2_gf_MMSC2TransmissionAllNukesCollectedQ_TriggerFunc");
}
TriggerExecute(auto_libMSC2_gf_MMSC2TransmissionAllNukesCollectedQ_Trigger, false, false);
}
bool auto_libMSC2_gf_MMSC2TransmissionAllNukesCollectedQ_TriggerFunc (bool testConds, bool runActions) {
// Variable Declarations
playergroup lv_groupOrder;
playergroup lv_groupChaos;
playergroup lv_observers;
// Automatic Variable Declarations
// Variable Initialization
lv_groupOrder = PlayerGroupEmpty();
lv_groupChaos = PlayerGroupEmpty();
lv_observers = PlayerGroupEmpty();
// Implementation
if ((libGame_gv_gameOver == true)) {
return true;
}
TriggerQueueEnter();
libMSC2_gv_mMSC2GlobalConversationPlaying = true;
while (!((PlayerGroupCount(libMSC2_gv_mMSC2VOSoundPlaying) == 0))) {
Wait(0.125, c_timeGame);
}
UserDataResetType("MapVOEvent");
UserDataSetInt("MapVOEvent", "Nuke Collected - All", "Value", 1, 1);
ConversationDataRun("NukeVO", PlayerGroupAll(), c_conversationSkipNone, false);
libCore_gf_WaitForConversationToFinish();
libMSC2_gv_mMSC2GlobalConversationPlaying = false;
TriggerQueueExit();
return true;
}
void libMSC2_gf_MMSC2UIInit (int lp_parentPanel) {
int init_i;
// Variable Declarations
int[6] lv_panels;
int lv_currentPanelLayer;
int lv_enemyTeam;
int lv_itTeam;
int lv_itPlayerNukeUI;
int lv_itNukeImageIndex;
int lv_itPlayerNuke;
int lv_iNukePlayerSlot;
// Automatic Variable Declarations
const int auto2B82C4EA_ae = libCore_gv_bALMaxTeams;
const int auto2B82C4EA_ai = 1;
int auto7EB89CF5_val;
int autoBD30C97A_val;
int autoA9B5E424_val;
int auto930AC329_ae;
int auto2F789A31_ae;
// Variable Initialization
for (init_i = 0; init_i <= 5; init_i += 1) {
lv_panels[init_i] = c_invalidDialogControlId;
}
// Implementation
DialogControlSetAnimationState(libUIUI_gv_uIGameUIHandles.lv_gameUIContainer, PlayerGroupAll(), "SingleStackCarryBehavior", "True");
DialogControlCreateInPanelFromTemplate(lp_parentPanel, c_triggerControlTypePanel, "SCMap2/SC2Panel");
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMSC2_gv_mMSC2UIPanel.lv_capturePointsPanel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "TerrazineEruptionFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "EruptionInfoLabel");
libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeNameLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "EruptionTimerLabel");
libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeTimeLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "EruptionQuantityLabel");
libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeQuantityLabel = DialogControlLastCreated();
lv_currentPanelLayer -= 1;
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "TerrazineBuffFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseFrame = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "BuffInfoLabel");
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseInfoLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "BuffTimerLabel");
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "TimerImage");
DialogControlHookup(DialogControlLastCreated(), c_triggerControlTypeImage, "TimerImageSmall");
libNtve_gf_SetDialogItemAcceptMouse(DialogControlLastCreated(), true, PlayerGroupAll());
libNtve_gf_SetDialogItemTooltip(DialogControlLastCreated(), StringToText(""), PlayerGroupAll());
lv_currentPanelLayer -= 1;
lv_itTeam = 1;
for ( ; ( (auto2B82C4EA_ai >= 0 && lv_itTeam <= auto2B82C4EA_ae) || (auto2B82C4EA_ai < 0 && lv_itTeam >= auto2B82C4EA_ae) ) ; lv_itTeam += auto2B82C4EA_ai ) {
lv_enemyTeam = (3 - lv_itTeam);
auto7EB89CF5_val = lv_itTeam;
if (auto7EB89CF5_val == libGame_gv_teamOrderIndex_C) {
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "Team1TerrazineFrame");
}
else if (auto7EB89CF5_val == libGame_gv_teamChaosIndex_C) {
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "Team2TerrazineFrame");
}
else {
}
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeFrame[lv_itTeam] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "BackgroundBlue");
libMSC2_gv_mMSC2UIPanel.lv_backgroundImageBlueLeft[lv_itTeam] = DialogControlLastCreated();
if ((lv_itTeam == libGame_gv_teamChaosIndex_C)) {
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_backgroundImageBlueLeft[1], libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], true);
}
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "TerrazineIconBlue");
libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageBlueLeft[lv_itTeam] = DialogControlLastCreated();
if ((lv_itTeam == libGame_gv_teamChaosIndex_C)) {
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageBlueLeft[1], libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], true);
}
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "BackgroundRed");
libMSC2_gv_mMSC2UIPanel.lv_backgroundImageRedLeft[lv_itTeam] = DialogControlLastCreated();
if ((lv_itTeam == libGame_gv_teamOrderIndex_C)) {
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_backgroundImageRedLeft[1], libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], false);
}
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "TerrazineIconRed");
libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageRedLeft[lv_itTeam] = DialogControlLastCreated();
if ((lv_itTeam == libGame_gv_teamOrderIndex_C)) {
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageRedLeft[1], libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], false);
}
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "TerrazineCounter");
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel[lv_itTeam] = DialogControlLastCreated();
autoBD30C97A_val = lv_itTeam;
if (autoBD30C97A_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SetDialogItemStyle(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel[1], "Storm_MapMechanic_MechanicCounterRight_Blue", libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers);
libNtve_gf_SetDialogItemStyle(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel[1], "Storm_MapMechanic_MechanicCounterRight_Blue", libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer]);
}
else if (autoBD30C97A_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SetDialogItemStyle(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel[2], "Storm_MapMechanic_MechanicCounterRight_Red", libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers);
}
else {
}
lv_currentPanelLayer -= 1;
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "Team2TerrazineFrame");
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeFrame[lv_itTeam] = DialogControlLastCreated();
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "BackgroundBlue");
libMSC2_gv_mMSC2UIPanel.lv_backgroundImageBlueRight[lv_itTeam] = DialogControlLastCreated();
if ((lv_itTeam == libGame_gv_teamChaosIndex_C)) {
DialogControlSetVisible(DialogControlLastCreated(), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], false);
}
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "TerrazineIconBlue");
libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageBlueRight[lv_itTeam] = DialogControlLastCreated();
if ((lv_itTeam == libGame_gv_teamChaosIndex_C)) {
DialogControlSetVisible(DialogControlLastCreated(), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], false);
}
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "BackgroundRed");
libMSC2_gv_mMSC2UIPanel.lv_backgroundImageRedRight[lv_itTeam] = DialogControlLastCreated();
if ((lv_itTeam == libGame_gv_teamOrderIndex_C)) {
DialogControlSetVisible(DialogControlLastCreated(), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], true);
}
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, "TerrazineIconRed");
libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageRedRight[lv_itTeam] = DialogControlLastCreated();
if ((lv_itTeam == libGame_gv_teamOrderIndex_C)) {
DialogControlSetVisible(DialogControlLastCreated(), libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], true);
}
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, "TerrazineCounter");
libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel2[lv_itTeam] = DialogControlLastCreated();
autoA9B5E424_val = lv_itTeam;
if (autoA9B5E424_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SetDialogItemStyle(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel2[1], "Storm_MapMechanic_MechanicCounterLeft_Red", libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers);
libNtve_gf_SetDialogItemStyle(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel2[1], "Storm_MapMechanic_MechanicCounterLeft_Red", libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer]);
}
else if (autoA9B5E424_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SetDialogItemStyle(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel2[2], "Storm_MapMechanic_MechanicCounterLeft_Blue", libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers);
}
else {
}
lv_currentPanelLayer -= 1;
}
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_backgroundImageBlueLeft[1], libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers, true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_backgroundImageBlueLeft[2], libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, false);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageBlueLeft[1], libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers, true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageBlueLeft[2], libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, false);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_backgroundImageRedLeft[1], libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers, false);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_backgroundImageRedLeft[2], libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageRedLeft[1], libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers, false);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageRedLeft[2], libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_backgroundImageBlueRight[1], libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers, false);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_backgroundImageBlueRight[2], libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageBlueRight[1], libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers, false);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageBlueRight[2], libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_backgroundImageRedRight[1], libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers, true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_backgroundImageRedRight[2], libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, false);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageRedRight[1], libGame_gv_teams[libGame_gv_teamOrderIndex_C].lv_teamPlayerGroupNoNPCPlayers, true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_nukeIconImageRedRight[2], libGame_gv_teams[libGame_gv_teamChaosIndex_C].lv_teamPlayerGroupNoNPCPlayers, false);
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "NukeSiloFrame");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeam = DialogControlLastCreated();
auto930AC329_ae = libCore_gv_bALMaxPlayersOnATeam;
lv_iNukePlayerSlot = 1;
for ( ; lv_iNukePlayerSlot <= auto930AC329_ae ; lv_iNukePlayerSlot += 1 ) {
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, libNtve_gf_ConvertStringToUILayoutFrameName(("Nuke" + IntToString(lv_iNukePlayerSlot))));
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerIconBorders[lv_iNukePlayerSlot] = DialogControlLastCreated();
libNtve_gf_SetDialogItemColor(libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerIconBorders[lv_iNukePlayerSlot], Color(0.00, 100.00, 0.00), PlayerGroupSingle(libCore_gf_GetPlayerIDfromTeamSlot(lv_iNukePlayerSlot, 1)));
libNtve_gf_SetDialogItemColor(libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerIconBorders[lv_iNukePlayerSlot], Color(0.00, 100.00, 0.00), PlayerGroupSingle(libCore_gf_GetPlayerIDfromTeamSlot(lv_iNukePlayerSlot, 2)));
DialogControlSetEnabled(DialogControlLastCreated(), libCore_gv_allHeroPlayersPlusObserver, false);
DialogControlHookup(DialogControlLastCreated(), c_triggerControlTypeImage, libNtve_gf_ConvertStringToUILayoutFrameName(("CarrierIcon")));
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerIcons[lv_iNukePlayerSlot] = DialogControlLastCreated();
libNtve_gf_SetDialogItemImage(DialogControlLastCreated(), "Assets\\Textures\\blank.dds", libCore_gv_allHeroPlayersPlusObserver);
DialogControlSetEnabled(DialogControlLastCreated(), libCore_gv_allHeroPlayersPlusObserver, false);
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeLabel, libNtve_gf_ConvertStringToUILayoutFrameName(("CarrierTimer" + IntToString(lv_iNukePlayerSlot))));
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerTimer[lv_iNukePlayerSlot] = DialogControlLastCreated();
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
}
lv_currentPanelLayer -= 1;
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypePanel, "NukeSiloFrame2");
DialogControlSetVisible(DialogControlLastCreated(), PlayerGroupAll(), false);
lv_currentPanelLayer += 1;
lv_panels[lv_currentPanelLayer] = DialogControlLastCreated();
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameEnemyTeam = DialogControlLastCreated();
auto2F789A31_ae = libCore_gv_bALMaxPlayersOnATeam;
lv_iNukePlayerSlot = 1;
for ( ; lv_iNukePlayerSlot <= auto2F789A31_ae ; lv_iNukePlayerSlot += 1 ) {
DialogControlHookup(lv_panels[lv_currentPanelLayer], c_triggerControlTypeImage, libNtve_gf_ConvertStringToUILayoutFrameName(("Nuke" + IntToString(lv_iNukePlayerSlot))));
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameEnemyTeamPlayerIconBorders[lv_iNukePlayerSlot] = DialogControlLastCreated();
DialogControlSetEnabled(DialogControlLastCreated(), libCore_gv_allHeroPlayersPlusObserver, false);
DialogControlHookup(DialogControlLastCreated(), c_triggerControlTypeImage, libNtve_gf_ConvertStringToUILayoutFrameName(("CarrierIcon")));
libMSC2_gv_mMSC2UIPanel.lv_NukeFrameEnemyTeamPlayerIcons[lv_iNukePlayerSlot] = DialogControlLastCreated();
libNtve_gf_SetDialogItemImage(DialogControlLastCreated(), "Assets\\Textures\\blank.dds", libCore_gv_allHeroPlayersPlusObserver);
DialogControlSetEnabled(DialogControlLastCreated(), libCore_gv_allHeroPlayersPlusObserver, false);
}
lv_currentPanelLayer -= 1;
}
void libMSC2_gf_MMSC2UISetMode (int lp_mode) {
// Variable Declarations
int lv_cursedTeam;
int lv_enemyTeam;
// Automatic Variable Declarations
int auto72E8562F_val;
// Variable Initialization
// Implementation
auto72E8562F_val = lp_mode;
if (auto72E8562F_val == libMSC2_ge_MMSC2UIModes_NoEvent) {
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeFrame, PlayerGroupAll(), false);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseFrame, PlayerGroupAll(), false);
}
else if (auto72E8562F_val == libMSC2_ge_MMSC2UIModes_CanisterWarning) {
DialogControlSendAnimationEvent(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeQuantityLabel, PlayerGroupAll(), "MoveAnchor");
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeQuantityLabel, PlayerGroupAll(), false);
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeNameLabel, StringExternal("Param/Value/lib_MSC2_3C95646A"), PlayerGroupAll());
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeTimeLabel, PlayerGroupAll(), true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeFrame, PlayerGroupAll(), true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseFrame, PlayerGroupAll(), false);
}
else if (auto72E8562F_val == libMSC2_ge_MMSC2UIModes_NukesActive) {
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeNameLabel, StringExternal("Param/Value/lib_MSC2_696D42C5"), PlayerGroupAll());
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeTimeLabel, PlayerGroupAll(), true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeFrame, PlayerGroupAll(), true);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseFrame, PlayerGroupAll(), false);
}
else {
}
}
void libMSC2_gf_MMSC2UIUpdateNukeStateInitForPlayer (int lp_player) {
// Variable Declarations
int lv_nukeTeam;
int lv_itImageIndex;
int lv_itPlayerNuke;
string lv_heroUnitType;
// Automatic Variable Declarations
const int auto304DD256_ae = libCore_gv_bALMaxPlayersOnATeam;
const int auto304DD256_ai = 1;
// Variable Initialization
lv_heroUnitType = "";
// Implementation
if ((libGame_gf_TeamNumberIsValid(lv_nukeTeam) == false)) {
return ;
}
lv_itImageIndex = 1;
for ( ; ( (auto304DD256_ai >= 0 && lv_itImageIndex <= auto304DD256_ae) || (auto304DD256_ai < 0 && lv_itImageIndex >= auto304DD256_ae) ) ; lv_itImageIndex += auto304DD256_ai ) {
lv_itPlayerNuke = libMSC2_gv_mMSC2UINukeSiloPlayers[lp_player][lv_nukeTeam][lv_itImageIndex];
if (((lv_itPlayerNuke <= 0) || (lv_itPlayerNuke > libCore_gv_bALMaxPlayers))) {
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel3[lv_itImageIndex], PlayerGroupAll(), false);
continue;
}
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel3[lv_itImageIndex], PlayerGroupAll(), true);
lv_heroUnitType = (libGame_gv_players[lv_itPlayerNuke].lv_heroData.lv_unitType);
libNtve_gf_SetDialogItemImage(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel5[lv_itImageIndex], (CatalogFieldValueGet(c_gameCatalogActor, lv_heroUnitType, "MinimapIcon", c_playerAny)), libCore_gv_playerGroupFromPlayer[lp_player]);
if (((PlayerGroupHasPlayer(libGame_gf_PlayersOnTeamHeroes(lv_nukeTeam, false), lp_player) == true) || ((lp_player == libCore_gv_oBSERVER_ObserverUIPlayer) && (lv_nukeTeam == libGame_gv_teamOrderIndex_C)))) {
libNtve_gf_SetDialogItemColor(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel4[lv_itImageIndex], Color(0.00, 100.00, 0.00), libCore_gv_playerGroupFromPlayer[lp_player]);
}
else {
libNtve_gf_SetDialogItemColor(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel4[lv_itImageIndex], libCore_gv_cOLOREnemyColor, libCore_gv_playerGroupFromPlayer[lp_player]);
}
}
}
void libMSC2_gf_MMSC2UIUpdateNukeStateForPlayer (int lp_player) {
// Variable Declarations
int lv_nukeTeam;
int lv_itImageIndex;
int lv_itPlayerNuke;
string lv_heroUnitType;
// Automatic Variable Declarations
const int autoCED81254_ae = libCore_gv_bALMaxPlayersOnATeam;
const int autoCED81254_ai = 1;
// Variable Initialization
lv_heroUnitType = "";
// Implementation
if ((libGame_gf_TeamNumberIsValid(lv_nukeTeam) == false)) {
return ;
}
lv_itImageIndex = 1;
for ( ; ( (autoCED81254_ai >= 0 && lv_itImageIndex <= autoCED81254_ae) || (autoCED81254_ai < 0 && lv_itImageIndex >= autoCED81254_ae) ) ; lv_itImageIndex += autoCED81254_ai ) {
lv_itPlayerNuke = libMSC2_gv_mMSC2UINukeSiloPlayers[lp_player][lv_nukeTeam][lv_itImageIndex];
if (((lv_itPlayerNuke <= 0) || (lv_itPlayerNuke > libCore_gv_bALMaxPlayers))) {
continue;
}
if ((libMSC2_gf_MMSC2CountofNukesForPlayer(lp_player) > 0)) {
libNtve_gf_SetDialogItemImage(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel3[lv_itImageIndex], "Assets\\Textures\\storm_temp_btn-ability-terran-nuclearstrike-color.dds", libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemColor(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel3[lv_itImageIndex], Color(100.00, 100.00, 100.00), libCore_gv_playerGroupFromPlayer[lp_player]);
}
else {
libNtve_gf_SetDialogItemImage(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel3[lv_itImageIndex], "Assets\\Textures\\storm_temp_btn-ability-terran-nuclearstrike.dds", libCore_gv_playerGroupFromPlayer[lp_player]);
libNtve_gf_SetDialogItemColor(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtCurseTimerLabel3[lv_itImageIndex], Color(75.29, 75.29, 75.29), libCore_gv_playerGroupFromPlayer[lp_player]);
}
}
}
void libMSC2_gf_MMSC2UISetEruptionWarningTime (int lp_remainingSeconds) {
// Automatic Variable Declarations
// Implementation
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeTimeLabel, TextTimeFormat(StringToText("<mintotal/>:<sec2/>"), lp_remainingSeconds), PlayerGroupAll());
}
void libMSC2_gf_MMSC2UIEnableNukeUIStateForPlayer (int lp_player) {
// Variable Declarations
int lv_allyTeam;
int lv_enemyTeam;
int lv_slot;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_slot = libGame_gv_players[lp_player].lv_rosterSlot;
lv_allyTeam = libGame_gf_TeamNumberOfPlayer(lp_player);
if ((libGame_gv_players[lp_player].lv_rosterSlot > 5)) {
lv_slot = (libGame_gv_players[lp_player].lv_rosterSlot - 5);
}
lv_enemyTeam = libGame_gf_EnemyTeam(lv_allyTeam);
DialogControlSetEnabled(libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerIcons[lv_slot], libGame_gf_PlayersOnTeamHeroes(lv_allyTeam, false), true);
DialogControlSetEnabled(libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerIconBorders[lv_slot], libGame_gf_PlayersOnTeamHeroes(lv_allyTeam, false), true);
DialogControlSetEnabled(libMSC2_gv_mMSC2UIPanel.lv_NukeFrameEnemyTeamPlayerIcons[lv_slot], libGame_gf_PlayersOnTeamHeroes(lv_enemyTeam, false), true);
DialogControlSetEnabled(libMSC2_gv_mMSC2UIPanel.lv_NukeFrameEnemyTeamPlayerIconBorders[lv_slot], libGame_gf_PlayersOnTeamHeroes(lv_enemyTeam, false), true);
}
void libMSC2_gf_MMSC2UIDisableNukeUIStateForPlayer (int lp_player) {
// Variable Declarations
int lv_allyTeam;
int lv_enemyTeam;
int lv_slot;
// Automatic Variable Declarations
// Variable Initialization
// Implementation
lv_slot = libGame_gv_players[lp_player].lv_rosterSlot;
lv_allyTeam = libGame_gf_TeamNumberOfPlayer(lp_player);
lv_enemyTeam = libGame_gf_EnemyTeam(lv_allyTeam);
if ((libGame_gv_players[lp_player].lv_rosterSlot > 5)) {
lv_slot = (libGame_gv_players[lp_player].lv_rosterSlot - 5);
}
DialogControlSetEnabled(libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerIcons[lv_slot], libGame_gf_PlayersOnTeamHeroes(lv_allyTeam, false), false);
DialogControlSetEnabled(libMSC2_gv_mMSC2UIPanel.lv_NukeFrameAllyTeamPlayerIconBorders[lv_slot], libGame_gf_PlayersOnTeamHeroes(lv_allyTeam, false), false);
DialogControlSetEnabled(libMSC2_gv_mMSC2UIPanel.lv_NukeFrameEnemyTeamPlayerIcons[lv_slot], libGame_gf_PlayersOnTeamHeroes(lv_enemyTeam, false), false);
DialogControlSetEnabled(libMSC2_gv_mMSC2UIPanel.lv_NukeFrameEnemyTeamPlayerIconBorders[lv_slot], libGame_gf_PlayersOnTeamHeroes(lv_enemyTeam, false), false);
}
void libMSC2_gf_MMSC2UIUpdateNukeCountForTeam (int lp_count, int lp_team) {
// Automatic Variable Declarations
// Implementation
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel[lp_team], IntToText(libMSC2_gf_MMSC2NukeCountforTeam(lp_team)), PlayerGroupAll());
}
// Triggers
//--------------------------------------------------------------------------------------------------
// Trigger: #Include Warhead Junction
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_IncludeWarheadJunction_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_IncludeWarheadJunction_Init () {
libMSC2_gt_IncludeWarheadJunction = TriggerCreate("libMSC2_gt_IncludeWarheadJunction_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Init
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2Init_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_itTempleIndex;
int lv_itPlayer;
// Automatic Variable Declarations
playergroup autoF90BEC4C_g;
playergroup auto8DE2AF8D_g;
// Variable Initialization
// Conditions
if (testConds) {
if (!((libGame_gf_MapMechanicInitializationMechanicType() == libMSC2_gv_mMSC2MechanicName_C))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
ActorSend(libMapM_gv_mapMechanicControllerActor, "Signal MM1Off");
TriggerExecute(libMSC2_gt_InitNukeSilos, true, false);
libUIUI_gf_UIEnableMapMechanicButtonAllPlayers(true);
autoF90BEC4C_g = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamOrderIndex_C, false);
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(autoF90BEC4C_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
TechTreeUpgradeAddLevel(lv_itPlayer, "IsOrderPlayer", 1);
}
auto8DE2AF8D_g = libGame_gf_PlayersOnTeamHeroes(libGame_gv_teamChaosIndex_C, false);
lv_itPlayer = -1;
while (true) {
lv_itPlayer = PlayerGroupNextPlayer(auto8DE2AF8D_g, lv_itPlayer);
if (lv_itPlayer<0) { break; }
TechTreeUpgradeAddLevel(lv_itPlayer, "IsChaosPlayer", 1);
}
libGame_gf_SendMapSpecificAwardInitializeEventwithUserData(null, "Generic Instance");
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2Init_Init () {
libMSC2_gt_MMSC2Init = TriggerCreate("libMSC2_gt_MMSC2Init_Func");
libGame_gf_MapMechanicInitialization(libMSC2_gt_MMSC2Init);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Initialize Ping Data
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2InitializePingData_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libUIUI_gf_PingCreateNewPingTarget("SlimeBossDefender", false, StringExternal("Param/Value/lib_MSC2_53939EF3"), StringExternal("Param/Value/lib_MSC2_5633745D"), StringExternal("Param/Value/lib_MSC2_60CAAF90"), 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("SlimeBossPodlingDefender", false, StringExternal("Param/Value/lib_MSC2_0B790D50"), StringExternal("Param/Value/lib_MSC2_AB16673E"), StringExternal("Param/Value/lib_MSC2_BFD8415A"), 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("SlimeBossLaner", false, null, StringExternal("Param/Value/lib_MSC2_5FB25289"), StringExternal("Param/Value/lib_MSC2_8E57D195"), 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("SlimeBossPodlingLaner", false, null, StringExternal("Param/Value/lib_MSC2_13ABDFE1"), StringExternal("Param/Value/lib_MSC2_3C4CE2DE"), 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("WarheadDropped", false, StringExternal("Param/Value/lib_MSC2_E25218A7"), StringExternal("Param/Value/lib_MSC2_980C7878"), StringExternal("Param/Value/lib_MSC2_C838B986"), SoundLink("UI_Game_Ping_General", -1), SoundLink("UI_Game_Ping_General", -1));
libUIUI_gf_PingCreateNewPingTarget("WarheadSingle", false, StringExternal("Param/Value/lib_MSC2_D074B31F"), StringExternal("Param/Value/lib_MSC2_045F9DFB"), StringExternal("Param/Value/lib_MSC2_FE9CBBFF"), SoundLink("UI_Game_Ping_General", -1), SoundLink("UI_Game_Ping_General", -1));
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2InitializePingData_Init () {
libMSC2_gt_MMSC2InitializePingData = TriggerCreate("libMSC2_gt_MMSC2InitializePingData_Func");
libGame_gf_MapMechanicInitialization(libMSC2_gt_MMSC2InitializePingData);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Gates Opened
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2GatesOpened_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((libMapM_gv_mMMapMechanicDisabled == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMSC2_gv_mMSC2EventState = libMSC2_ge_MMSC2EventStates_NoEvent;
TimerStart(libMSC2_gv_mMSC2TerrazineMainEventTimer, libMSC2_gv_mMSC2FirstEventDelay_C, false, c_timeGame);
TimerStart(libMSC2_gv_mMSC2NukeDamageScalingTimer, libMSC2_gv_mMSC2NukeDamageScalingDelay_C, false, c_timeGame);
TriggerExecute(libMSC2_gt_MMSC2MainThread, true, false);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2GatesOpened_Init () {
libMSC2_gt_MMSC2GatesOpened = TriggerCreate("libMSC2_gt_MMSC2GatesOpened_Func");
TriggerAddEventTimer(libMSC2_gt_MMSC2GatesOpened, libGame_gv_openTheGatesTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Main Thread
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2MainThread_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libMSC2_gv_mMSC2SpecialSpawnLane = libMSC2_gf_MMSC2DetermineDoubleWarheadSpawnLane();
TimerStart(libMSC2_gv_mMSC2ObjectivePreviewTimer, libMSC2_gv_mMSC2ObjectivePreviewDelay_C, false, c_timeGame);
TriggerEnable(TriggerGetCurrent(), false);
libNtve_gf_WaitForTimer(libMSC2_gv_mMSC2TerrazineMainEventTimer, libMSC2_gv_mMSC2EventWarningDelayGasCanister_C, false);
TriggerExecute(libMSC2_gt_MMSC2UIHandler, true, false);
while (true) {
libMSC2_gv_mMSC2EventState = libMSC2_ge_MMSC2EventStates_CanisterWarning;
libMSC2_gf_MMSC2TransmissionWarheadSpawnWarningQ();
libMSC2_gf_MMSC2WarningStarts(libMSC2_gv_mMSC2SpecialSpawnLane);
libNtve_gf_WaitForTimer(libMSC2_gv_mMSC2TerrazineMainEventTimer, 0.0, false);
libMSC2_gf_MMSC2ClearWarheadPreviews();
libMSC2_gf_MMSC2ClearCanisterSpawningSignals();
libMSC2_gv_mMSC2EventState = libMSC2_ge_MMSC2EventStates_NukesActive;
libMSC2_gf_MMSC2SpawnNukeCanisters(libMSC2_gv_mMSC2SpecialSpawnLane);
if ((libMSC2_gv_mMSC2ThreeWarheadsSpawn == true)) {
libMSC2_gv_mMSC2LastDoubleWarheadLane = libMSC2_gv_mMSC2SpecialSpawnLane;
}
else {
libMSC2_gv_mMSC2LastEmptyWarheadLane = libMSC2_gv_mMSC2SpecialSpawnLane;
}
libMSC2_gv_mMSC2WarheadEventFirstTime = false;
libMSC2_gf_MMSC2TransmissionWarheadsSpawnedQ();
while (!((UnitGroupCount(libMSC2_gv_mMSC2BuiltWarheadsActive, c_unitCountAlive) == 0))) {
Wait(0.25, c_timeGame);
}
libMSC2_gv_mMSC2EventTracker = (libMSC2_gv_mMSC2EventTracker + 1);
TimerStart(libMSC2_gv_mMSC2TerrazineMainEventTimer, (libMSC2_gv_mMSC2RepeatEventDelay_C + libMSC2_gv_mMSC2EventWarningDelayGasCanister_C + libMSC2_gv_mMSC2NukeExpireDuration_C), false, c_timeGame);
if ((libMSC2_gv_mMSC2EventTracker == 3)) {
libMSC2_gv_mMSC2ThreeWarheadsSpawn = true;
}
else {
libMSC2_gv_mMSC2ThreeWarheadsSpawn = false;
}
libMSC2_gv_mMSC2EventState = libMSC2_ge_MMSC2EventStates_NoEvent;
libMSC2_gv_mMSC2SpecialSpawnLane = libMSC2_gf_MMSC2DetermineDoubleWarheadSpawnLane();
TimerStart(libMSC2_gv_mMSC2ObjectivePreviewTimer, libMSC2_gv_mMSC2ObjectivePreviewDelay_C, false, c_timeGame);
libNtve_gf_WaitForTimer(libMSC2_gv_mMSC2TerrazineMainEventTimer, libMSC2_gv_mMSC2EventWarningDelayGasCanister_C, false);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2MainThread_Init () {
libMSC2_gt_MMSC2MainThread = TriggerCreate("libMSC2_gt_MMSC2MainThread_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 - Objective Preview Timer Expires
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2ObjectivePreviewTimerExpires_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMSC2_gf_MMSC2SetupandStartPreview(libMSC2_gv_mMSC2SpecialSpawnLane);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2ObjectivePreviewTimerExpires_Init () {
libMSC2_gt_MMSC2ObjectivePreviewTimerExpires = TriggerCreate("libMSC2_gt_MMSC2ObjectivePreviewTimerExpires_Func");
TriggerAddEventTimer(libMSC2_gt_MMSC2ObjectivePreviewTimerExpires, libMSC2_gv_mMSC2ObjectivePreviewTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Activate Waygates
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2ActivateWaygates_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
Wait(2.0, c_timeGame);
libMSC2_gf_MMToDActivateWaygates();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2ActivateWaygates_Init () {
libMSC2_gt_MMSC2ActivateWaygates = TriggerCreate("libMSC2_gt_MMSC2ActivateWaygates_Func");
TriggerAddEventTimer(libMSC2_gt_MMSC2ActivateWaygates, libGame_gv_openTheGatesTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMToD Entered Waygate
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMToDEnteredWaygate_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_computerTeam;
unit lv_hero;
point lv_heroPreTeleportPosition;
unit lv_waygateEntrance;
int lv_itWaygate;
int lv_player;
string lv_mountCooldownLink;
int lv_teleportingUnitTypeIndex;
unit lv_teleportingUnit;
// Automatic Variable Declarations
const int auto2D8F4586_ae = libMSC2_gv_mMFieldofSlaughterWaygateMaxCount_C;
const int auto2D8F4586_ai = 1;
unit auto6BD862A7_val;
// Variable Initialization
lv_hero = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_heroPreTeleportPosition = UnitGetPosition(lv_hero);
lv_waygateEntrance = EventPlayerEffectUsedUnit(c_effectUnitTarget);
lv_player = UnitGetOwner(lv_hero);
lv_mountCooldownLink = "";
// Conditions
if (testConds) {
if (!((libGame_gf_UnitIsHero(lv_hero) == true))) {
return false;
}
if (!((UnitGetType(lv_waygateEntrance) == "WaygateEntrance"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_hero)) == 1)) {
lv_computerTeam = libCore_gv_cOMPUTER_TeamOrder;
}
else {
lv_computerTeam = libCore_gv_cOMPUTER_TeamChaos;
}
UnitCreateEffectPoint(lv_hero, "TeleportVisualDummyEffect", UnitGetPosition(lv_hero));
UnitIssueOrder(lv_hero, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
libNtve_gf_MakeUnitUncommandable(lv_hero, true);
libNtve_gf_SendActorMessageToUnit(lv_hero, "Signal InvisibleModel");
UnitSetState(lv_hero, c_unitStateTargetable, false);
UnitBehaviorAdd(lv_hero, "WaygateUnstoppable", lv_hero, 1);
if ((libGame_gv_players[lv_player].lv_remountHeroAfterTeleport == true)) {
libGame_gf_ApplyMountBehaviorToHero(lv_hero);
lv_mountCooldownLink = CatalogFieldValueGet(c_gameCatalogAbil, "Mount", "Cost[" + IntToString(0) + "].Cooldown.Link", lv_player);
libNtve_gf_UnitRemoveCooldown(lv_hero, lv_mountCooldownLink);
libNtve_gf_PlayerRemoveCooldown(lv_player, lv_mountCooldownLink);
}
lv_itWaygate = 1;
for ( ; ( (auto2D8F4586_ai >= 0 && lv_itWaygate <= auto2D8F4586_ae) || (auto2D8F4586_ai < 0 && lv_itWaygate >= auto2D8F4586_ae) ) ; lv_itWaygate += auto2D8F4586_ai ) {
if (((lv_waygateEntrance == libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate) || (lv_waygateEntrance == libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate))) {
break;
}
if (((libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate == null) || (libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate == null))) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_99E787AE"), true);
return true;
}
}
if (true) {
auto6BD862A7_val = lv_waygateEntrance;
if (auto6BD862A7_val == libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate) {
UnitSetPosition(lv_hero, UnitGetPosition(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate), false);
}
else if (auto6BD862A7_val == libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_bottomWaygate) {
UnitSetPosition(lv_hero, UnitGetPosition(libMSC2_gv_mMToDWaygates[lv_itWaygate].lv_topWaygate), false);
}
else {
}
}
else {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_099015DA"), true);
return true;
}
UnitCreateEffectUnit(lv_hero, "UnderworldTeleport", lv_hero);
if ((libGame_gv_gameOver == false) && (lv_hero == UnitGroupUnit(libGame_gv_players[lv_player].lv_cameraPlayerUnitGroupToFocusOn, 1))) {
libGame_gf_CameraPanCameraForPlayerAndUpdateMapBoundsIfNecessary(lv_player, UnitGetPosition(lv_hero), 0.0, -1, 0.0, false);
}
SoundPlayOnUnitForPlayer(SoundLink("Event_Mines_EnterMinesEnd", -1), c_maxPlayers, PlayerGroupAll(), lv_hero, 0.0, 100.0, 0.0);
Wait(0.125, c_timeGame);
libNtve_gf_MakeUnitUncommandable(lv_hero, false);
UnitSetState(lv_hero, c_unitStateTargetable, true);
UnitBehaviorRemove(lv_hero, "WaygateUnstoppable", 1);
UnitIssueOrder(lv_hero, Order(AbilityCommand("stop", 0)), c_orderQueueReplace);
libNtve_gf_SendActorMessageToUnit(lv_hero, "Signal RestoreModel");
PathSetSourceUnit(libGame_gv_players[lv_player].lv_pathDisplay, lv_hero);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMToDEnteredWaygate_Init () {
libMSC2_gt_MMToDEnteredWaygate = TriggerCreate("libMSC2_gt_MMToDEnteredWaygate_Func");
TriggerAddEventPlayerEffectUsed(libMSC2_gt_MMToDEnteredWaygate, c_playerAny, "CaptureMacGuffinTwoCastComplete");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Built Warhead Reminder Timer Expires
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2BuiltWarheadReminderTimerExpires_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itUnit;
// Automatic Variable Declarations
unitgroup auto2B76448B_g;
int auto2B76448B_u;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
SoundPlayForPlayer(SoundLink("UI_Game_Ping_Reminder1", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
auto2B76448B_g = libMSC2_gv_mMSC2BuiltWarheadsActive;
auto2B76448B_u = UnitGroupCount(auto2B76448B_g, c_unitCountAll);
for (;; auto2B76448B_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto2B76448B_g, auto2B76448B_u);
if (lv_itUnit == null) { break; }
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlertSilent", UnitGetPosition(lv_itUnit), ColorWithAlpha(0,0,0,0), 4.0);
PingSetScale(PingLastCreated(), 0.6);
}
TimerStart(libMSC2_gv_mMSC2BuiltWarheadReminderTimer, libMSC2_gv_mMSC2WarheadPickupReminderDelay_C, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2BuiltWarheadReminderTimerExpires_Init () {
libMSC2_gt_MMSC2BuiltWarheadReminderTimerExpires = TriggerCreate("libMSC2_gt_MMSC2BuiltWarheadReminderTimerExpires_Func");
TriggerAddEventTimer(libMSC2_gt_MMSC2BuiltWarheadReminderTimerExpires, libMSC2_gv_mMSC2BuiltWarheadReminderTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Nuke Damage Scaling
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2NukeDamageScaling_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMSC2_gv_mMSC2NukeDamageScalesNeeded += 1;
TimerStart(libMSC2_gv_mMSC2NukeDamageScalingTimer, libMSC2_gv_mMSC2NukeDamageScalingDelay_C, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2NukeDamageScaling_Init () {
libMSC2_gt_MMSC2NukeDamageScaling = TriggerCreate("libMSC2_gt_MMSC2NukeDamageScaling_Func");
TriggerAddEventTimer(libMSC2_gt_MMSC2NukeDamageScaling, libMSC2_gv_mMSC2NukeDamageScalingTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Built Warhead Channel Started
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2BuiltWarheadChannelStarted_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnitTargetUnit()) == "WarheadSingle"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((libNtve_gf_UnitGroupIsDead(libMSC2_gv_mMSC2BuiltWarheadsActive) == false)) {
TimerStart(libMSC2_gv_mMSC2BuiltWarheadReminderTimer, libMSC2_gv_mMSC2WarheadPickupReminderDelay_C, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2BuiltWarheadChannelStarted_Init () {
libMSC2_gt_MMSC2BuiltWarheadChannelStarted = TriggerCreate("libMSC2_gt_MMSC2BuiltWarheadChannelStarted_Func");
TriggerAddEventUnitAbility(libMSC2_gt_MMSC2BuiltWarheadChannelStarted, null, AbilityCommand("CaptureMacGuffin", 0), c_abilEffectStageCast, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Built Warhead Captured
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2BuiltWarheadCaptured_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_itUnit;
unit lv_casterUnit;
int lv_team;
point lv_heroLoc;
point lv_canisterLoc;
text lv_tagText;
int lv_itCanister;
// Automatic Variable Declarations
unitgroup auto8F96E2CF_g;
int auto8F96E2CF_u;
const int auto075181E6_ae = libMSC2_gv_mMSC2BuiltWarheadsCountMax_C;
const int auto075181E6_ai = 1;
int auto41DFD837_val;
// Variable Initialization
// Conditions
if (testConds) {
if (!((EventPlayerEffectUsedUnitType(c_effectUnitTarget) == "WarheadSingle"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
auto8F96E2CF_g = libMSC2_gv_mMSC2BuiltWarheadsActive;
auto8F96E2CF_u = UnitGroupCount(auto8F96E2CF_g, c_unitCountAll);
for (;; auto8F96E2CF_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto8F96E2CF_g, auto8F96E2CF_u);
if (lv_itUnit == null) { break; }
if ((EventPlayerEffectUsedUnit(c_effectUnitTarget) == lv_itUnit)) {
lv_casterUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_team = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_casterUnit));
if ((libGame_gf_TeamNumberIsValid(lv_team) == false)) {
return true;
}
lv_heroLoc = UnitGetPosition(lv_casterUnit);
lv_canisterLoc = UnitGetPosition(lv_itUnit);
libCore_gf_SendActorMessageToDoodadsInRegion("Signal CanisterTaken", RegionCircle(lv_canisterLoc, 1.0), "Storm_Doodad_SCZion_CanisterSpawnSplat");
lv_itCanister = 1;
for ( ; ( (auto075181E6_ai >= 0 && lv_itCanister <= auto075181E6_ae) || (auto075181E6_ai < 0 && lv_itCanister >= auto075181E6_ae) ) ; lv_itCanister += auto075181E6_ai ) {
if ((libMSC2_gv_mMSC2BuiltWarheads[lv_itCanister] == lv_itUnit)) {
VisRevealerDestroy(libMSC2_gv_mMSC2BuiltWarheadsRevealer[lv_itCanister][1]);
libMSC2_gv_mMSC2BuiltWarheadsRevealer[lv_itCanister][1] = null;
VisRevealerDestroy(libMSC2_gv_mMSC2BuiltWarheadsRevealer[lv_itCanister][2]);
libMSC2_gv_mMSC2BuiltWarheadsRevealer[lv_itCanister][2] = null;
break;
}
}
UnitGroupRemove(libMSC2_gv_mMSC2BuiltWarheadsActive, lv_itUnit);
RemoveUnitOfInterest(lv_itUnit, "Harvest", libNtve_ge_GoalTeam_Both);
UnitKill(lv_itUnit);
libMSC2_gf_MMSC2ArmNukeForUnit(lv_casterUnit);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "RegenGlobe", c_unitCreateIgnorePlacement, libGame_gf_ComputerPlayerInTeam(lv_team), PointWithOffset(lv_canisterLoc, 0.0, 0.0), null);
libGame_gf_DropLootBannerinSconce(UnitGroupUnit(UnitGroup("LootBannerSconce", c_playerAny, RegionCircle(lv_canisterLoc, 7.0), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 1), 1), libGame_gv_players[UnitGetOwner(lv_casterUnit)].lv_lootContent.lv_loot_Banner.lv_bannerID, UnitGetOwner(lv_casterUnit), true);
TextTagDestroy(libCore_gf_TextTagStoredForUnit(lv_itUnit, 1));
SoundPlayForPlayer(SoundLink("Event_Warhead_CollectUranium_Enemy", -1), c_maxPlayers, GameAttributePlayersForTeam(libGame_gf_EnemyTeam(lv_team)), 100.0, 0.0);
libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke(UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)));
auto41DFD837_val = lv_team;
if (auto41DFD837_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel[lv_team], IntToText(libMSC2_gf_MMSC2NukeCountforTeam(lv_team)), PlayerGroupAll());
}
else if (auto41DFD837_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel2[lv_team], IntToText(libMSC2_gf_MMSC2NukeCountforTeam(lv_team)), PlayerGroupAll());
}
else {
}
break;
}
}
if ((libNtve_gf_UnitGroupIsDead(libMSC2_gv_mMSC2BuiltWarheadsActive) == true)) {
libMSC2_gf_MMSC2TransmissionAllNukesCollectedQ();
libMSC2_gf_MMSC2CanisterEventDone();
TimerPause(libMSC2_gv_mMSC2BuiltWarheadReminderTimer, true);
}
else {
TimerStart(libMSC2_gv_mMSC2BuiltWarheadReminderTimer, libMSC2_gv_mMSC2WarheadPickupReminderDelay_C, false, c_timeGame);
}
StatEventCreate("WarheadJunctionNukeCollected");
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventAddDataInt(StatEventLastCreated(), "OwningTeam", lv_team);
StatEventSend(StatEventLastCreated());
Wait(libMSC2_gv_mMSC2NukeArmingDuration_C, c_timeGame);
if ((UnitHasBehavior2(EventPlayerEffectUsedUnit(c_effectUnitCaster), "HasMapMechanicTargetAbility") == true)) {
libMSC2_gf_MMSC2TransmissionPlayerNukeReady(UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2BuiltWarheadCaptured_Init () {
libMSC2_gt_MMSC2BuiltWarheadCaptured = TriggerCreate("libMSC2_gt_MMSC2BuiltWarheadCaptured_Func");
TriggerAddEventPlayerEffectUsed(libMSC2_gt_MMSC2BuiltWarheadCaptured, c_playerAny, "CaptureMacGuffinCastComplete");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Nuke Channeling Ping
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2NukeChannelingPing_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_calldownPlayer;
int lv_team;
int lv_enemyTeam;
point lv_target;
// Automatic Variable Declarations
int autoADA89900_val;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_calldownPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
if (((lv_calldownPlayer <= 0) || (lv_calldownPlayer > libCore_gv_bALMaxPlayers))) {
return true;
}
lv_team = libGame_gf_TeamNumberOfPlayer(lv_calldownPlayer);
lv_enemyTeam = libGame_gf_EnemyTeam(lv_team);
lv_target = EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);
libCore_gf_CreateMinimapPingStorm(GameAttributePlayersForTeam(lv_team), "NukeLaunchPing", lv_target, libCore_gv_cOLORAllyColor, 5.0);
if ((lv_team == libGame_gv_teamOrderIndex_C)) {
libCore_gf_CreateMinimapPingStorm(libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], "NukeLaunchPing", lv_target, libCore_gv_cOLORAllyColor, 5.0);
}
libMSC2_gv_mMSC2NukeCalldownPiing[lv_calldownPlayer][lv_team] = PingLastCreated();
libCore_gf_CreateMinimapPingStorm(GameAttributePlayersForTeam(lv_enemyTeam), "NukeLaunchPing", lv_target, libCore_gv_cOLOREnemyColor, 5.0);
if ((lv_team == libGame_gv_teamChaosIndex_C)) {
libCore_gf_CreateMinimapPingStorm(libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], "NukeLaunchPing", lv_target, libCore_gv_cOLOREnemyColor, 5.0);
}
libMSC2_gv_mMSC2NukeCalldownPiing[lv_calldownPlayer][lv_enemyTeam] = PingLastCreated();
autoADA89900_val = lv_team;
if (autoADA89900_val == libCore_gv_cOMPUTER_TeamOrder) {
libCore_gf_CreateMinimapPingStorm(libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], "StormWarning", lv_target, libCore_gv_cOLORAllyColor, 2.5);
libMSC2_gv_mMSC2NukeCalldownPiing[lv_calldownPlayer][0] = PingLastCreated();
}
else if (autoADA89900_val == libCore_gv_cOMPUTER_TeamChaos) {
libCore_gf_CreateMinimapPingStorm(libCore_gv_playerGroupFromPlayer[libCore_gv_oBSERVER_ObserverUIPlayer], "StormWarning", lv_target, libCore_gv_cOLOREnemyColor, 2.5);
libMSC2_gv_mMSC2NukeCalldownPiing[lv_calldownPlayer][0] = PingLastCreated();
}
else {
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2NukeChannelingPing_Init () {
libMSC2_gt_MMSC2NukeChannelingPing = TriggerCreate("libMSC2_gt_MMSC2NukeChannelingPing_Func");
TriggerAddEventPlayerEffectUsed(libMSC2_gt_MMSC2NukeChannelingPing, c_playerAny, "NukeInitialSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Nuke Canceling Ping
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2NukeCancelingPing_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_calldownPlayer;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_calldownPlayer = EventPlayerEffectUsedUnitOwner(c_effectPlayerCaster);
if (((lv_calldownPlayer <= 0) || (lv_calldownPlayer > libCore_gv_bALMaxPlayers))) {
return true;
}
PingDestroy(libMSC2_gv_mMSC2NukeCalldownPiing[lv_calldownPlayer][0]);
PingDestroy(libMSC2_gv_mMSC2NukeCalldownPiing[lv_calldownPlayer][1]);
PingDestroy(libMSC2_gv_mMSC2NukeCalldownPiing[lv_calldownPlayer][2]);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2NukeCancelingPing_Init () {
libMSC2_gt_MMSC2NukeCancelingPing = TriggerCreate("libMSC2_gt_MMSC2NukeCancelingPing_Func");
TriggerAddEventPlayerEffectUsed(libMSC2_gt_MMSC2NukeCancelingPing, c_playerAny, "NukeMinimapIconKillDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Nuke Interrupted
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2NukeInterrupted_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
UnitModifyCooldown(EventPlayerEffectUsedUnit(c_effectUnitCaster), "Abil/MapMechanicNuke", libMSC2_gv_mMSC2NukeInterruptDelay_C, c_cooldownOperationSet);
UnitModifyCooldown(EventPlayerEffectUsedUnit(c_effectUnitCaster), "Abil/MapMechanicAbilityTarget", libMSC2_gv_mMSC2NukeInterruptDelay_C, c_cooldownOperationSet);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2NukeInterrupted_Init () {
libMSC2_gt_MMSC2NukeInterrupted = TriggerCreate("libMSC2_gt_MMSC2NukeInterrupted_Func");
TriggerAddEventPlayerEffectUsed(libMSC2_gt_MMSC2NukeInterrupted, c_playerAny, "NukeCCedCooldownModifyUnit");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Nuke Used
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2NukeUsed_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_casterUnit;
// Automatic Variable Declarations
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
lv_casterUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
libNtve_gf_SendActorMessageToUnit(libMSC2_gv_nukeSiloUnit[libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_casterUnit))], "Signal Launch");
if (((UnitGetOwner(lv_casterUnit) <= 0) || (UnitGetOwner(lv_casterUnit) > libCore_gv_bALMaxPlayers))) {
}
else {
libGame_gf_ScoreValuesReportIntegerValueAndLog(UnitGetOwner(lv_casterUnit), "CarriedMechanic", 0);
libMSC2_gf_MMSC2PlayerUsesNuke(EventPlayerEffectUsedUnit(c_effectUnitCaster));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2NukeUsed_Init () {
libMSC2_gt_MMSC2NukeUsed = TriggerCreate("libMSC2_gt_MMSC2NukeUsed_Func");
TriggerAddEventPlayerEffectUsed(libMSC2_gt_MMSC2NukeUsed, c_playerAny, "NukeDroppingSet");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Nuke Damage Dealt
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2NukeDamageDealt_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_damagingPlayer;
fixed lv_damageAmount;
// Automatic Variable Declarations
// Variable Initialization
lv_damagingPlayer = EventUnitDamageSourcePlayer();
lv_damageAmount = EventUnitDamageAmount();
// Conditions
if (testConds) {
if (!((lv_damagingPlayer > 0))) {
return false;
}
if (!((lv_damagingPlayer <= libCore_gv_bALMaxPlayers))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
libGame_gf_SendMapSpecificAwardEvent(lv_damagingPlayer, lv_damageAmount, true);
libMSC2_gv_mMSC2NukeDamageDone[lv_damagingPlayer] += FixedToInt(lv_damageAmount);
libGame_gf_ScoreValuesReportIntegerValueAndLog(lv_damagingPlayer, "NukeDamageDone", libMSC2_gv_mMSC2NukeDamageDone[lv_damagingPlayer]);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2NukeDamageDealt_Init () {
libMSC2_gt_MMSC2NukeDamageDealt = TriggerCreate("libMSC2_gt_MMSC2NukeDamageDealt_Func");
TriggerAddEventUnitDamaged(libMSC2_gt_MMSC2NukeDamageDealt, null, c_unitDamageTypeAny, c_unitDamageEither, "NukeOuterImpactDamage");
TriggerAddEventUnitDamaged(libMSC2_gt_MMSC2NukeDamageDealt, null, c_unitDamageTypeAny, c_unitDamageEither, "NukeOuterImpactHeroDamage");
TriggerAddEventUnitDamaged(libMSC2_gt_MMSC2NukeDamageDealt, null, c_unitDamageTypeAny, c_unitDamageEither, "NukeOuterImpactDamageStructure");
TriggerAddEventUnitDamaged(libMSC2_gt_MMSC2NukeDamageDealt, null, c_unitDamageTypeAny, c_unitDamageEither, "NukeStructureBurnPeriodicDamage");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Player Dies with Nuke
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2PlayerDieswithNuke_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
unit lv_heroUnit;
int lv_allyTeam;
int lv_enemyTeam;
// Automatic Variable Declarations
int autoD9C5CF58_val;
// Variable Initialization
lv_player = libGame_gf_HeroKilledPlayer();
lv_heroUnit = libGame_gf_HeroKilledUnit();
lv_allyTeam = libGame_gf_TeamNumberOfPlayer(lv_player);
lv_enemyTeam = libGame_gf_EnemyTeam(lv_allyTeam);
// Conditions
if (testConds) {
if (!((UnitHasBehavior2(lv_heroUnit, "HasMapMechanicTargetAbility") == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
UnitBehaviorRemove(lv_heroUnit, "HasMapMechanicTargetAbility", 1);
libNtve_gf_CreateUnitsWithDefaultFacing(1, "WarheadDropped", 0, libCore_gv_cOMPUTER_Neutral, libGame_gf_HeroKilledLocation(), null);
autoD9C5CF58_val = lv_allyTeam;
if (autoD9C5CF58_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel[lv_allyTeam], IntToText(libMSC2_gf_MMSC2NukeCountforTeam(lv_allyTeam)), PlayerGroupAll());
}
else if (autoD9C5CF58_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel2[lv_allyTeam], IntToText(libMSC2_gf_MMSC2NukeCountforTeam(lv_allyTeam)), PlayerGroupAll());
}
else {
}
libGame_gf_ScoreValuesReportIntegerValueAndLog(lv_player, "CarriedMechanic", 0);
libMSC2_gv_mMSC2_Nuke_Info.lv_playerNukeStateChanged[lv_player] = true;
libNtve_gf_SetUpgradeLevelForPlayer(lv_player, "DisplayLockedMapMechanicAbility", 1);
libMSC2_gf_MMSC2UIDisableNukeUIStateForPlayer(lv_player);
libMSC2_gf_MMSC2NukeButtonStopFlashingForPlayer(lv_player);
libMSC2_gf_MMSC2ShowHideNukeTextTagsForPlayer(true, lv_player);
if ((libMSC2_gf_MMSC2NukeCountforTeam(lv_allyTeam) == 0)) {
libMSC2_gv_mMSC2_Nuke_Info.lv_teamHasNukes[lv_allyTeam] = false;
libNtve_gf_SendActorMessageToUnit(libMSC2_gv_nukeSiloUnit[lv_allyTeam], "Signal Deactivate");
}
StatEventCreate("WarheadJunctionNukeDropped");
StatEventAddDataFixed(StatEventLastCreated(), "GameTime", libUIUI_gf_HeroesGameTime());
StatEventAddDataInt(StatEventLastCreated(), "OwningTeam", lv_allyTeam);
StatEventSend(StatEventLastCreated());
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2PlayerDieswithNuke_Init () {
libMSC2_gt_MMSC2PlayerDieswithNuke = TriggerCreate("libMSC2_gt_MMSC2PlayerDieswithNuke_Func");
libGame_gf_HeroKilled(libMSC2_gt_MMSC2PlayerDieswithNuke);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Dropped Warhead Spawned
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2DroppedWarheadSpawned_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_warheadUnit;
point lv_positionOfWarhead;
text lv_tooltipText;
int lv_playerIndex;
// Automatic Variable Declarations
const int auto8A47867E_ae = libCore_gv_bALMaxPlayers;
const int auto8A47867E_ai = 1;
// Variable Initialization
lv_warheadUnit = EventPlayerEffectUsedUnit(c_effectUnitSource);
lv_positionOfWarhead = UnitGetPosition(lv_warheadUnit);
// Actions
if (!runActions) {
return true;
}
UnitGroupAdd(libMSC2_gv_mMSC2DroppedWarheadsGroup, lv_warheadUnit);
AddUnitOfInterest(lv_warheadUnit, libMSC2_gv_mMSC2NukePickupRange_C, 0.0, "Harvest", libNtve_ge_GoalTeam_Both, 0);
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlertSilent", lv_positionOfWarhead, ColorWithAlpha(0,0,0,0), 4.0);
PingSetScale(PingLastCreated(), 0.6);
lv_tooltipText = StringExternal("Param/Value/lib_MSC2_E1636F4D");
TextTagCreate(lv_tooltipText, 24, lv_positionOfWarhead, 2.0, true, true, PlayerGroupAll());
libCore_gf_StoreTextTagForUnit(lv_warheadUnit, 1, TextTagLastCreated());
TextTagAttachToUnit(TextTagLastCreated(), lv_warheadUnit, 4.0);
libMSC2_gf_MMSC2UpdateNukeTextTagsForPlayers();
lv_playerIndex = 1;
for ( ; ( (auto8A47867E_ai >= 0 && lv_playerIndex <= auto8A47867E_ae) || (auto8A47867E_ai < 0 && lv_playerIndex >= auto8A47867E_ae) ) ; lv_playerIndex += auto8A47867E_ai ) {
libNtve_gf_ShareVisionofUnit(lv_warheadUnit, true, lv_playerIndex);
}
TimerStart(libMSC2_gv_mMSC2DroppedWarheadReminderTimer, libMSC2_gv_mMSC2WarheadPickupReminderDelay_C, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2DroppedWarheadSpawned_Init () {
libMSC2_gt_MMSC2DroppedWarheadSpawned = TriggerCreate("libMSC2_gt_MMSC2DroppedWarheadSpawned_Func");
TriggerAddEventPlayerEffectUsed(libMSC2_gt_MMSC2DroppedWarheadSpawned, c_playerAny, "WarheadDroppedDummyEffect");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Dropped Warhead Channel Started
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2DroppedWarheadChannelStarted_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((UnitGetType(EventUnitTargetUnit()) == "WarheadDropped"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((UnitGroupCount(libMSC2_gv_mMSC2DroppedWarheadsGroup, c_unitCountAlive) > 0)) {
TimerStart(libMSC2_gv_mMSC2DroppedWarheadReminderTimer, libMSC2_gv_mMSC2WarheadPickupReminderDelay_C, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2DroppedWarheadChannelStarted_Init () {
libMSC2_gt_MMSC2DroppedWarheadChannelStarted = TriggerCreate("libMSC2_gt_MMSC2DroppedWarheadChannelStarted_Func");
TriggerAddEventUnitAbility(libMSC2_gt_MMSC2DroppedWarheadChannelStarted, null, AbilityCommand("CaptureMacGuffin", 0), c_abilEffectStageCast, false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Dropped Warhead Captured
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2DroppedWarheadCaptured_Func (bool testConds, bool runActions) {
// Variable Declarations
unit lv_warheadUnit;
unit lv_casterUnit;
int lv_team;
point lv_heroLoc;
point lv_canisterLoc;
text lv_tagText;
// Automatic Variable Declarations
unitgroup autoFEFAF450_g;
int autoFEFAF450_u;
int auto64AB9075_val;
// Variable Initialization
// Conditions
if (testConds) {
if (!((EventPlayerEffectUsedUnitType(c_effectUnitTarget) == "WarheadDropped"))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
autoFEFAF450_g = libMSC2_gv_mMSC2DroppedWarheadsGroup;
autoFEFAF450_u = UnitGroupCount(autoFEFAF450_g, c_unitCountAll);
for (;; autoFEFAF450_u -= 1) {
lv_warheadUnit = UnitGroupUnitFromEnd(autoFEFAF450_g, autoFEFAF450_u);
if (lv_warheadUnit == null) { break; }
if ((EventPlayerEffectUsedUnit(c_effectUnitTarget) == lv_warheadUnit)) {
lv_casterUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster);
lv_team = libGame_gf_TeamNumberOfPlayer(UnitGetOwner(lv_casterUnit));
if ((libGame_gf_TeamNumberIsValid(lv_team) == false)) {
return true;
}
lv_heroLoc = UnitGetPosition(lv_casterUnit);
lv_canisterLoc = UnitGetPosition(lv_warheadUnit);
UnitGroupRemove(libMSC2_gv_mMSC2DroppedWarheadsGroup, lv_warheadUnit);
RemoveUnitOfInterest(lv_warheadUnit, "Harvest", libNtve_ge_GoalTeam_Both);
UnitKill(lv_warheadUnit);
libMSC2_gf_MMSC2ArmNukeForUnit(lv_casterUnit);
TextTagDestroy(libCore_gf_TextTagStoredForUnit(lv_warheadUnit, 1));
SoundPlayForPlayer(SoundLink("Event_Warhead_CollectUranium_Enemy", -1), c_maxPlayers, GameAttributePlayersForTeam(libGame_gf_EnemyTeam(lv_team)), 100.0, 0.0);
libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke(UnitGetOwner(lv_casterUnit));
auto64AB9075_val = lv_team;
if (auto64AB9075_val == libGame_gv_teamOrderIndex_C) {
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel[lv_team], IntToText(libMSC2_gf_MMSC2NukeCountforTeam(lv_team)), PlayerGroupAll());
}
else if (auto64AB9075_val == libGame_gv_teamChaosIndex_C) {
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_ravenCourtTeamTributeCounterLabel2[lv_team], IntToText(libMSC2_gf_MMSC2NukeCountforTeam(lv_team)), PlayerGroupAll());
}
else {
}
break;
}
}
if ((UnitGroupCount(libMSC2_gv_mMSC2DroppedWarheadsGroup, c_unitCountAlive) == 0)) {
TimerPause(libMSC2_gv_mMSC2DroppedWarheadReminderTimer, true);
}
else {
TimerStart(libMSC2_gv_mMSC2DroppedWarheadReminderTimer, libMSC2_gv_mMSC2WarheadPickupReminderDelay_C, false, c_timeGame);
}
Wait(libMSC2_gv_mMSC2NukeArmingDuration_C, c_timeGame);
if ((UnitHasBehavior2(EventPlayerEffectUsedUnit(c_effectUnitCaster), "HasMapMechanicTargetAbility") == true)) {
libMSC2_gf_MMSC2TransmissionPlayerNukeReady(UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitCaster)));
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2DroppedWarheadCaptured_Init () {
libMSC2_gt_MMSC2DroppedWarheadCaptured = TriggerCreate("libMSC2_gt_MMSC2DroppedWarheadCaptured_Func");
TriggerAddEventPlayerEffectUsed(libMSC2_gt_MMSC2DroppedWarheadCaptured, c_playerAny, "CaptureMacGuffinCastComplete");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Dropped Warhead Reminder Timer Expired
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2DroppedWarheadReminderTimerExpired_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_unitIndex;
unit lv_warheadUnit;
// Automatic Variable Declarations
unitgroup autoDDA95259_g;
int autoDDA95259_u;
// Variable Initialization
// Actions
if (!runActions) {
return true;
}
SoundPlayForPlayer(SoundLink("UI_Game_Ping_Reminder1", -1), c_maxPlayers, PlayerGroupAll(), 100.0, 0.0);
autoDDA95259_g = libMSC2_gv_mMSC2DroppedWarheadsGroup;
autoDDA95259_u = UnitGroupCount(autoDDA95259_g, c_unitCountAll);
for (;; autoDDA95259_u -= 1) {
lv_warheadUnit = UnitGroupUnitFromEnd(autoDDA95259_g, autoDDA95259_u);
if (lv_warheadUnit == null) { break; }
libCore_gf_CreateMinimapPingStorm(PlayerGroupAll(), "StormAlertSilent", UnitGetPosition(lv_warheadUnit), ColorWithAlpha(0,0,0,0), 4.0);
PingSetScale(PingLastCreated(), 0.6);
}
TimerStart(libMSC2_gv_mMSC2DroppedWarheadReminderTimer, libMSC2_gv_mMSC2WarheadPickupReminderDelay_C, false, c_timeGame);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2DroppedWarheadReminderTimerExpired_Init () {
libMSC2_gt_MMSC2DroppedWarheadReminderTimerExpired = TriggerCreate("libMSC2_gt_MMSC2DroppedWarheadReminderTimerExpired_Func");
TriggerAddEventTimer(libMSC2_gt_MMSC2DroppedWarheadReminderTimerExpired, libMSC2_gv_mMSC2DroppedWarheadReminderTimer);
}
//--------------------------------------------------------------------------------------------------
// Trigger: Init Nuke Silos
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_InitNukeSilos_Func (bool testConds, bool runActions) {
// Variable Declarations
unitgroup lv_nukeSilos;
unit lv_itUnit;
// Automatic Variable Declarations
unitgroup auto80E0D7A3_g;
int auto80E0D7A3_u;
// Variable Initialization
lv_nukeSilos = UnitGroupEmpty();
// Actions
if (!runActions) {
return true;
}
lv_nukeSilos = UnitGroup("MapMechanicNukeSilo", c_playerAny, null, UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0);
auto80E0D7A3_g = lv_nukeSilos;
auto80E0D7A3_u = UnitGroupCount(auto80E0D7A3_g, c_unitCountAll);
for (;; auto80E0D7A3_u -= 1) {
lv_itUnit = UnitGroupUnitFromEnd(auto80E0D7A3_g, auto80E0D7A3_u);
if (lv_itUnit == null) { break; }
if ((UnitGetOwner(lv_itUnit) == libCore_gv_cOMPUTER_TeamOrder)) {
libMSC2_gv_nukeSiloUnit[libGame_gv_teamOrderIndex_C] = lv_itUnit;
continue;
}
if ((UnitGetOwner(lv_itUnit) == libCore_gv_cOMPUTER_TeamChaos)) {
libMSC2_gv_nukeSiloUnit[libGame_gv_teamChaosIndex_C] = lv_itUnit;
continue;
}
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_InitNukeSilos_Init () {
libMSC2_gt_InitNukeSilos = TriggerCreate("libMSC2_gt_InitNukeSilos_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Debug VOTest
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2DebugVOTest_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
if (!((StringCompare(StringWord(EventChatMessage(false), 1), EventChatMessage(true), c_stringNoCase) == 0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = StringToInt(StringWord(EventChatMessage(false), 2));
if ((lv_player == 0)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_5E8BD6F6"), true);
return true;
}
TextExpressionSetToken("Param/Expression/lib_MSC2_9F26C83F", "A", IntToText(lv_player));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MSC2_9F26C83F"), true);
libMSC2_gf_MMSC2TransmissionPlayerFiresNuke(lv_player);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2DebugVOTest_Init () {
libMSC2_gt_MMSC2DebugVOTest = TriggerCreate("libMSC2_gt_MMSC2DebugVOTest_Func");
TriggerAddEventChatMessage(libMSC2_gt_MMSC2DebugVOTest, c_playerAny, "VOTest", false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Debug VOCollect
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2DebugVOCollect_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
if (!((StringCompare(StringWord(EventChatMessage(false), 1), EventChatMessage(true), c_stringNoCase) == 0))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
lv_player = StringToInt(StringWord(EventChatMessage(false), 2));
if ((lv_player == 0)) {
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_78C7B008"), true);
return true;
}
TextExpressionSetToken("Param/Expression/lib_MSC2_2DC6332A", "A", IntToText(lv_player));
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MSC2_2DC6332A"), true);
libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke(lv_player);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2DebugVOCollect_Init () {
libMSC2_gt_MMSC2DebugVOCollect = TriggerCreate("libMSC2_gt_MMSC2DebugVOCollect_Func");
TriggerAddEventChatMessage(libMSC2_gt_MMSC2DebugVOCollect, c_playerAny, "VOCollect", false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Debug VOWarning
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2DebugVOWarning_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_player;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_MSC2_AC8062BA"), true);
libMSC2_gf_MMSC2TransmissionWarheadSpawnWarningQ();
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2DebugVOWarning_Init () {
libMSC2_gt_MMSC2DebugVOWarning = TriggerCreate("libMSC2_gt_MMSC2DebugVOWarning_Func");
TriggerAddEventChatMessage(libMSC2_gt_MMSC2DebugVOWarning, c_playerAny, "VOWarning", false);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Debug VOCheck
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2DebugVOCheck_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_FCC2DB33"), true);
libMSC2_gf_MMSC2TransmissionPlayerNukeReady(1);
Wait(0.5, c_timeGame);
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_55A376F8"), true);
libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke(6);
Wait(3.0, c_timeGame);
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_61E5ED95"), true);
libMSC2_gf_MMSC2TransmissionPlayerFiresNuke(1);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2DebugVOCheck_Init () {
libMSC2_gt_MMSC2DebugVOCheck = TriggerCreate("libMSC2_gt_MMSC2DebugVOCheck_Func");
TriggerAddEventChatMessage(libMSC2_gt_MMSC2DebugVOCheck, c_playerAny, "VOCheck", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Debug VOCheck 2
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2DebugVOCheck2_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_2E2D42C8"), true);
libMSC2_gf_MMSC2TransmissionPlayerNukeReady(6);
Wait(0.5, c_timeGame);
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_17F89FC9"), true);
libMSC2_gf_MMSC2TransmissionPlayerCollectsNuke(1);
Wait(3.0, c_timeGame);
TriggerDebugOutput(1, StringExternal("Param/Value/lib_MSC2_4DC2EDAB"), true);
libMSC2_gf_MMSC2TransmissionPlayerFiresNuke(6);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2DebugVOCheck2_Init () {
libMSC2_gt_MMSC2DebugVOCheck2 = TriggerCreate("libMSC2_gt_MMSC2DebugVOCheck2_Func");
TriggerAddEventChatMessage(libMSC2_gt_MMSC2DebugVOCheck2, c_playerAny, "VOCheck2", true);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 UI Mod Initialize
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2UIModInitialize_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Actions
if (!runActions) {
return true;
}
libMSC2_gf_MMSC2UIInit(libUIUI_gv_mapMechanicsPanel.lv_mainPanel);
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2UIModInitialize_Init () {
libMSC2_gt_MMSC2UIModInitialize = TriggerCreate("libMSC2_gt_MMSC2UIModInitialize_Func");
libCore_gf_IncludeModInitialization(libMSC2_gt_MMSC2UIModInitialize);
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 UI Handler
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2UIHandler_Func (bool testConds, bool runActions) {
// Variable Declarations
int lv_state;
int lv_lastState;
// Automatic Variable Declarations
// Variable Initialization
// Conditions
if (testConds) {
if (!((TriggerIsEnabled(TriggerGetCurrent()) == true))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
DialogControlSendAnimationEvent(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeTimeLabel, PlayerGroupAll(), "MoveAnchor");
TriggerEnable(TriggerGetCurrent(), false);
while (true) {
if ((libMSC2_gv_mMSC2EventState == libMSC2_ge_MMSC2EventStates_CanisterWarning)) {
lv_state = libMSC2_ge_MMSC2UIModes_CanisterWarning;
if ((lv_state != lv_lastState)) {
libMSC2_gf_MMSC2UISetMode(libMSC2_ge_MMSC2UIModes_CanisterWarning);
}
libMSC2_gf_MMSC2UISetEruptionWarningTime(FixedToInt(TimerGetRemaining(libMSC2_gv_mMSC2TerrazineMainEventTimer)));
lv_lastState = lv_state;
}
else if ((libNtve_gf_UnitGroupIsDead(libMSC2_gv_mMSC2BuiltWarheadsActive) == false)) {
lv_state = libMSC2_ge_MMSC2UIModes_NukesActive;
if ((lv_state != lv_lastState)) {
libMSC2_gf_MMSC2UISetMode(libMSC2_ge_MMSC2UIModes_NukesActive);
}
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeTimeLabel, PlayerGroupAll(), false);
DialogControlSetVisible(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeQuantityLabel, PlayerGroupAll(), true);
TextExpressionSetToken("Param/Expression/lib_MSC2_360C61A9", "A", IntToText(UnitGroupCount(libMSC2_gv_mMSC2BuiltWarheadsActive, c_unitCountAlive)));
libNtve_gf_SetDialogItemText(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeQuantityLabel, TextExpressionAssemble("Param/Expression/lib_MSC2_360C61A9"), PlayerGroupAll());
DialogControlSendAnimationEvent(libMSC2_gv_mMSC2UIPanel.lv_capturePointsTimerModeQuantityLabel, PlayerGroupAll(), "MoveAnchorBack");
lv_lastState = lv_state;
}
else if (true) {
lv_state = libMSC2_ge_MMSC2UIModes_NoEvent;
if ((lv_state != lv_lastState)) {
libMSC2_gf_MMSC2UISetMode(libMSC2_ge_MMSC2UIModes_NoEvent);
}
lv_lastState = lv_state;
}
Wait(0.25, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2UIHandler_Init () {
libMSC2_gt_MMSC2UIHandler = TriggerCreate("libMSC2_gt_MMSC2UIHandler_Func");
}
//--------------------------------------------------------------------------------------------------
// Trigger: MMSC2 Debug EventStart
//--------------------------------------------------------------------------------------------------
bool libMSC2_gt_MMSC2DebugEventStart_Func (bool testConds, bool runActions) {
// Automatic Variable Declarations
// Conditions
if (testConds) {
if (!((GameCheatsEnabled(c_gameCheatCategoryDevelopment) == true))) {
return false;
}
if (!((libMapM_gv_mMMapMechanicDisabled == false))) {
return false;
}
}
// Actions
if (!runActions) {
return true;
}
if ((TimerGetRemaining(libMSC2_gv_mMSC2TerrazineMainEventTimer) > libMSC2_gv_mMSC2EventWarningDelayGasCanister_C)) {
TimerStart(libMSC2_gv_mMSC2ObjectivePreviewTimer, 0.0625, false, c_timeGame);
Wait(0.125, c_timeGame);
TimerStart(libMSC2_gv_mMSC2TerrazineMainEventTimer, libMSC2_gv_mMSC2EventWarningDelayGasCanister_C, false, c_timeGame);
}
return true;
}
//--------------------------------------------------------------------------------------------------
void libMSC2_gt_MMSC2DebugEventStart_Init () {
libMSC2_gt_MMSC2DebugEventStart = TriggerCreate("libMSC2_gt_MMSC2DebugEventStart_Func");
TriggerAddEventChatMessage(libMSC2_gt_MMSC2DebugEventStart, c_playerAny, "EVENTSTART", false);
}
void libMSC2_InitTriggers () {
libMSC2_gt_IncludeWarheadJunction_Init();
libMSC2_gt_MMSC2Init_Init();
libMSC2_gt_MMSC2InitializePingData_Init();
libMSC2_gt_MMSC2GatesOpened_Init();
libMSC2_gt_MMSC2MainThread_Init();
libMSC2_gt_MMSC2ObjectivePreviewTimerExpires_Init();
libMSC2_gt_MMSC2ActivateWaygates_Init();
libMSC2_gt_MMToDEnteredWaygate_Init();
libMSC2_gt_MMSC2BuiltWarheadReminderTimerExpires_Init();
libMSC2_gt_MMSC2NukeDamageScaling_Init();
libMSC2_gt_MMSC2BuiltWarheadChannelStarted_Init();
libMSC2_gt_MMSC2BuiltWarheadCaptured_Init();
libMSC2_gt_MMSC2NukeChannelingPing_Init();
libMSC2_gt_MMSC2NukeCancelingPing_Init();
libMSC2_gt_MMSC2NukeInterrupted_Init();
libMSC2_gt_MMSC2NukeUsed_Init();
libMSC2_gt_MMSC2NukeDamageDealt_Init();
libMSC2_gt_MMSC2PlayerDieswithNuke_Init();
libMSC2_gt_MMSC2DroppedWarheadSpawned_Init();
libMSC2_gt_MMSC2DroppedWarheadChannelStarted_Init();
libMSC2_gt_MMSC2DroppedWarheadCaptured_Init();
libMSC2_gt_MMSC2DroppedWarheadReminderTimerExpired_Init();
libMSC2_gt_InitNukeSilos_Init();
libMSC2_gt_MMSC2DebugVOTest_Init();
libMSC2_gt_MMSC2DebugVOCollect_Init();
libMSC2_gt_MMSC2DebugVOWarning_Init();
libMSC2_gt_MMSC2DebugVOCheck_Init();
libMSC2_gt_MMSC2DebugVOCheck2_Init();
libMSC2_gt_MMSC2UIModInitialize_Init();
libMSC2_gt_MMSC2UIHandler_Init();
libMSC2_gt_MMSC2DebugEventStart_Init();
}
//--------------------------------------------------------------------------------------------------
// Library Initialization
//--------------------------------------------------------------------------------------------------
bool libMSC2_InitLib_completed = false;
void libMSC2_InitLib () {
if (libMSC2_InitLib_completed) {
return;
}
libMSC2_InitLib_completed = true;
libMSC2_InitLibraries();
libMSC2_InitVariables();
libMSC2_InitTriggers();
}