Merge pull request #6964 from obrakmann/fix6589_add_short_game_option
Short Game option
This commit is contained in:
@@ -68,6 +68,7 @@ namespace OpenRA
|
||||
public string TechLevel;
|
||||
public bool ConfigurableStartingUnits = true;
|
||||
public string[] Difficulties = { };
|
||||
public bool? ShortGame;
|
||||
|
||||
public void UpdateServerSettings(Session.Global settings)
|
||||
{
|
||||
@@ -85,6 +86,8 @@ namespace OpenRA
|
||||
settings.StartingCash = StartingCash.Value;
|
||||
if (FragileAlliances.HasValue)
|
||||
settings.FragileAlliances = FragileAlliances.Value;
|
||||
if (ShortGame.HasValue)
|
||||
settings.ShortGame = ShortGame.Value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -186,6 +186,7 @@ namespace OpenRA.Network
|
||||
public int StartingCash = 5000;
|
||||
public string TechLevel = "none";
|
||||
public string StartingUnitsClass = "none";
|
||||
public bool ShortGame = true;
|
||||
public bool AllowVersionMismatch;
|
||||
public string GameUid;
|
||||
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
<Compile Include="Orders\DeployOrderTargeter.cs" />
|
||||
<Compile Include="Orders\EnterAlliedActorTargeter.cs" />
|
||||
<Compile Include="Orders\UnitOrderTargeter.cs" />
|
||||
<Compile Include="PlayerExtensions.cs" />
|
||||
<Compile Include="ServerTraits\ColorValidator.cs" />
|
||||
<Compile Include="ServerTraits\LobbyCommands.cs" />
|
||||
<Compile Include="ServerTraits\LobbySettingsNotification.cs" />
|
||||
@@ -128,16 +129,20 @@
|
||||
<Compile Include="Traits\Modifiers\DisabledOverlay.cs" />
|
||||
<Compile Include="Traits\Modifiers\HiddenUnderFog.cs" />
|
||||
<Compile Include="Traits\Modifiers\UpgradeOverlay.cs" />
|
||||
<Compile Include="Traits\MustBeDestroyed.cs" />
|
||||
<Compile Include="Traits\PaletteEffects\CloakPaletteEffect.cs" />
|
||||
<Compile Include="Traits\PaletteEffects\LightPaletteRotator.cs" />
|
||||
<Compile Include="Traits\PaletteEffects\MenuPaletteEffect.cs" />
|
||||
<Compile Include="Traits\PaletteEffects\NukePaletteEffect.cs" />
|
||||
<Compile Include="Traits\PaletteEffects\WaterPaletteRotation.cs" />
|
||||
<Compile Include="Traits\Player\ActorGroupProxy.cs" />
|
||||
<Compile Include="Traits\Player\ConquestVictoryConditions.cs" />
|
||||
<Compile Include="Traits\Player\GlobalUpgradeManager.cs" />
|
||||
<Compile Include="Traits\Player\MissionObjectives.cs" />
|
||||
<Compile Include="Traits\Player\PlaceBeacon.cs" />
|
||||
<Compile Include="Traits\Player\ProvidesCustomPrerequisite.cs" />
|
||||
<Compile Include="Traits\Player\ProvidesTechPrerequisite.cs" />
|
||||
<Compile Include="Traits\Player\StrategicVictoryConditions.cs" />
|
||||
<Compile Include="Traits\Player\TechTree.cs" />
|
||||
<Compile Include="Traits\Power\AffectedByPowerOutage.cs" />
|
||||
<Compile Include="Traits\Power\CanPowerDown.cs" />
|
||||
@@ -206,16 +211,16 @@
|
||||
<Compile Include="Warheads\HealthPercentageDamageWarhead.cs" />
|
||||
<Compile Include="Warheads\LeaveSmudgeWarhead.cs" />
|
||||
<Compile Include="Warheads\SpreadDamageWarhead.cs" />
|
||||
<Compile Include="Widgets\ColorMixerWidget.cs" />
|
||||
<Compile Include="Widgets\ColorPreviewManagerWidget.cs" />
|
||||
<Compile Include="Widgets\ConfirmationDialogs.cs" />
|
||||
<Compile Include="Widgets\HueSliderWidget.cs" />
|
||||
<Compile Include="Widgets\LabelWithTooltipWidget.cs" />
|
||||
<Compile Include="Widgets\LogicKeyListenerWidget.cs" />
|
||||
<Compile Include="Widgets\Logic\AssetBrowserLogic.cs" />
|
||||
<Compile Include="Widgets\ColorMixerWidget.cs" />
|
||||
<Compile Include="Widgets\LogicTickerWidget.cs" />
|
||||
<Compile Include="Widgets\Logic\AssetBrowserLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\ButtonTooltipLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\ColorPickerLogic.cs" />
|
||||
<Compile Include="Widgets\ColorPreviewManagerWidget.cs" />
|
||||
<Compile Include="Widgets\Logic\DisconnectWatcherLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\Ingame\IngameRadarDisplayLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\Ingame\LoadIngamePlayerOrObserverUILogic.cs" />
|
||||
@@ -223,6 +228,7 @@
|
||||
<Compile Include="Widgets\MenuButtonWidget.cs" />
|
||||
<Compile Include="Widgets\RadarWidget.cs" />
|
||||
<Compile Include="Widgets\ResourceBarWidget.cs" />
|
||||
<Compile Include="Widgets\StrategicProgressWidget.cs" />
|
||||
<Compile Include="SpriteLoaders\ShpTDLoader.cs" />
|
||||
<Compile Include="SpriteLoaders\ShpTSLoader.cs" />
|
||||
<Compile Include="SpriteLoaders\TmpRALoader.cs" />
|
||||
@@ -246,4 +252,4 @@ cd "$(SolutionDir)"</PostBuildEvent>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
@@ -9,15 +9,19 @@
|
||||
#endregion
|
||||
|
||||
using System.Linq;
|
||||
using OpenRA.Mods.RA;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
|
||||
namespace OpenRA
|
||||
namespace OpenRA.Mods.Common
|
||||
{
|
||||
public static class Extensions
|
||||
public static class PlayerExtensions
|
||||
{
|
||||
public static bool HasNoRequiredUnits(this Player player)
|
||||
{
|
||||
return player.World.ActorsWithTrait<MustBeDestroyed>().All(p => p.Actor.Owner != player);
|
||||
return !player.World.ActorsWithTrait<MustBeDestroyed>().Any(p =>
|
||||
{
|
||||
return p.Actor.Owner == player &&
|
||||
(player.World.LobbyInfo.GlobalSettings.ShortGame ? p.Trait.Info.RequiredForShortGame : p.Actor.IsInWorld);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
|
||||
if (requiresHost && !client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can do that");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can do that.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can start the game");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can start the game.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -195,7 +195,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
var occupantConn = server.Conns.FirstOrDefault(c => c.PlayerIndex == occupant.Index);
|
||||
if (occupantConn != null)
|
||||
{
|
||||
server.SendOrderTo(occupantConn, "ServerError", "Your slot was closed by the host");
|
||||
server.SendOrderTo(occupantConn, "ServerError", "Your slot was closed by the host.");
|
||||
server.DropClient(occupantConn);
|
||||
}
|
||||
}
|
||||
@@ -257,7 +257,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
// Invalid slot
|
||||
if (bot != null && bot.Bot == null)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Can't add bots to a slot with another client");
|
||||
server.SendOrderTo(conn, "Message", "Can't add bots to a slot with another client.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -310,13 +310,13 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can change the map");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can change the map.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.ModData.MapCache[s].Status != MapStatus.Available)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map was not found on server");
|
||||
server.SendOrderTo(conn, "Message", "Map was not found on server.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -373,13 +373,13 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.Map.Options.FragileAlliances.HasValue)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled alliance configuration");
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled alliance configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -396,13 +396,13 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.Map.Options.Cheats.HasValue)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled cheat configuration");
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled cheat configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -419,13 +419,13 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.Map.Options.Shroud.HasValue)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled shroud configuration");
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled shroud configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -442,13 +442,13 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.Map.Options.Fog.HasValue)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled fog configuration");
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled fog configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -465,7 +465,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -506,19 +506,19 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.Map.Options.Crates.HasValue)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled crate configuration");
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled crate configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool.TryParse(s, out server.LobbyInfo.GlobalSettings.Crates);
|
||||
server.SyncLobbyGlobalSettings();
|
||||
server.SendMessage("{0} {1} Crates Appear."
|
||||
server.SendMessage("{0} {1} Crates."
|
||||
.F(client.Name, server.LobbyInfo.GlobalSettings.Crates ? "enabled" : "disabled"));
|
||||
|
||||
return true;
|
||||
@@ -529,19 +529,19 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.Map.Options.AllyBuildRadius.HasValue)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled ally build radius configuration");
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled ally build radius configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool.TryParse(s, out server.LobbyInfo.GlobalSettings.AllyBuildRadius);
|
||||
server.SyncLobbyGlobalSettings();
|
||||
server.SendMessage("{0} {1} Build off Ally ConYards."
|
||||
server.SendMessage("{0} {1} Build off Allies' ConYards."
|
||||
.F(client.Name, server.LobbyInfo.GlobalSettings.AllyBuildRadius ? "enabled" : "disabled"));
|
||||
|
||||
return true;
|
||||
@@ -552,7 +552,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -575,13 +575,13 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!server.Map.Options.ConfigurableStartingUnits)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled start unit configuration");
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled start unit configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -601,13 +601,13 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.Map.Options.StartingCash.HasValue)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled cash configuration");
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled cash configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -623,13 +623,13 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.Map.Options.TechLevel != null)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled Tech configuration");
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled Tech configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -645,7 +645,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can kick players");
|
||||
server.SendOrderTo(conn, "Message", "Only the host can kick players.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -668,9 +668,9 @@ namespace OpenRA.Mods.Common.Server
|
||||
|
||||
var kickClient = server.GetClient(kickConn);
|
||||
|
||||
Log.Write("server", "Kicking client {0} as requested", kickClientID);
|
||||
Log.Write("server", "Kicking client {0}.", kickClientID);
|
||||
server.SendMessage("{0} kicked {1} from the server.".F(client.Name, kickClient.Name));
|
||||
server.SendOrderTo(kickConn, "ServerError", "You have been kicked from the server");
|
||||
server.SendOrderTo(kickConn, "ServerError", "You have been kicked from the server.");
|
||||
server.DropClient(kickConn);
|
||||
|
||||
bool tempBan;
|
||||
@@ -678,7 +678,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
|
||||
if (tempBan)
|
||||
{
|
||||
Log.Write("server", "Temporarily banning client {0} ({1}) as requested", kickClientID, kickClient.IpAddress);
|
||||
Log.Write("server", "Temporarily banning client {0} ({1}).", kickClientID, kickClient.IpAddress);
|
||||
server.SendMessage("{0} temporarily banned {1} from the server.".F(client.Name, kickClient.Name));
|
||||
server.TempBans.Add(kickClient.IpAddress);
|
||||
}
|
||||
@@ -692,7 +692,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
{ "name",
|
||||
s =>
|
||||
{
|
||||
Log.Write("server", "Player@{0} is now known as {1}", conn.socket.RemoteEndPoint, s);
|
||||
Log.Write("server", "Player@{0} is now known as {1}.", conn.socket.RemoteEndPoint, s);
|
||||
server.SendMessage("{0} is now known as {1}.".F(client.Name, s));
|
||||
client.Name = s;
|
||||
server.SyncLobbyClients();
|
||||
@@ -772,7 +772,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
|
||||
if (server.LobbyInfo.Clients.Where(cc => cc != client).Any(cc => (cc.SpawnPoint == spawnPoint) && (cc.SpawnPoint != 0)))
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "You can't be at the same spawn point as another player");
|
||||
server.SendOrderTo(conn, "Message", "You cannot occupy the same spawn point as another player.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -809,6 +809,29 @@ namespace OpenRA.Mods.Common.Server
|
||||
server.SyncLobbyClients();
|
||||
return true;
|
||||
}
|
||||
},
|
||||
{ "shortgame",
|
||||
s =>
|
||||
{
|
||||
if (!client.IsAdmin)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Only the host can set that option.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.Map.Options.ShortGame.HasValue)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Map has disabled short game configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool.TryParse(s, out server.LobbyInfo.GlobalSettings.ShortGame);
|
||||
server.SyncLobbyGlobalSettings();
|
||||
server.SendMessage("{0} {1} Short Game."
|
||||
.F(client.Name, server.LobbyInfo.GlobalSettings.ShortGame ? "enabled" : "disabled"));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -57,6 +57,9 @@ namespace OpenRA.Mods.Common.Server
|
||||
|
||||
if (server.LobbyInfo.GlobalSettings.TechLevel != defaults.TechLevel)
|
||||
server.SendOrderTo(conn, "Message", "Tech Level: {0}".F(server.LobbyInfo.GlobalSettings.TechLevel));
|
||||
|
||||
if (server.LobbyInfo.GlobalSettings.ShortGame != defaults.ShortGame)
|
||||
server.SendOrderTo(conn, "Message", "Short Game: {0}".F(server.LobbyInfo.GlobalSettings.ShortGame));
|
||||
}
|
||||
}
|
||||
}
|
||||
33
OpenRA.Mods.Common/Traits/MustBeDestroyed.cs
Normal file
33
OpenRA.Mods.Common/Traits/MustBeDestroyed.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.Common.Traits
|
||||
{
|
||||
[Desc("Actors with this trait must be destroyed for a game to end.")]
|
||||
public class MustBeDestroyedInfo : ITraitInfo
|
||||
{
|
||||
[Desc("In a short game only actors that have this value set to true need to be destroyed.")]
|
||||
public bool RequiredForShortGame = false;
|
||||
|
||||
public object Create(ActorInitializer init) { return new MustBeDestroyed(this); }
|
||||
}
|
||||
|
||||
public class MustBeDestroyed
|
||||
{
|
||||
public readonly MustBeDestroyedInfo Info;
|
||||
|
||||
public MustBeDestroyed(MustBeDestroyedInfo info)
|
||||
{
|
||||
Info = info;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@
|
||||
using System.Linq;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
namespace OpenRA.Mods.Common.Traits
|
||||
{
|
||||
public class ConquestVictoryConditionsInfo : ITraitInfo, Requires<MissionObjectivesInfo>
|
||||
{
|
||||
@@ -77,12 +77,8 @@ namespace OpenRA.Mods.RA
|
||||
Game.RunAfterDelay(info.NotificationDelay, () => Sound.PlayNotification(player.World.Map.Rules, player, "Speech", "Win", player.Country.Race));
|
||||
}
|
||||
|
||||
public void OnObjectiveAdded(Player player, int id) {}
|
||||
public void OnObjectiveCompleted(Player player, int id) {}
|
||||
public void OnObjectiveFailed(Player player, int id) {}
|
||||
public void OnObjectiveAdded(Player player, int id) { }
|
||||
public void OnObjectiveCompleted(Player player, int id) { }
|
||||
public void OnObjectiveFailed(Player player, int id) { }
|
||||
}
|
||||
|
||||
[Desc("Tag trait for things that must be destroyed for a short game to end.")]
|
||||
public class MustBeDestroyedInfo : TraitInfo<MustBeDestroyed> { }
|
||||
public class MustBeDestroyed { }
|
||||
}
|
||||
@@ -14,10 +14,10 @@ using System.Linq;
|
||||
using OpenRA.Primitives;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
namespace OpenRA.Mods.Common.Traits
|
||||
{
|
||||
public enum ObjectiveType { Primary, Secondary };
|
||||
public enum ObjectiveState { Incomplete, Completed, Failed };
|
||||
public enum ObjectiveType { Primary, Secondary }
|
||||
public enum ObjectiveState { Incomplete, Completed, Failed }
|
||||
|
||||
public class MissionObjective
|
||||
{
|
||||
@@ -233,9 +233,9 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public event Action<Player> ObjectiveAdded = player => { player.HasObjectives = true; };
|
||||
|
||||
public void OnObjectiveAdded(Player player, int id) {}
|
||||
public void OnObjectiveCompleted(Player player, int id) {}
|
||||
public void OnObjectiveFailed(Player player, int id) {}
|
||||
public void OnObjectiveAdded(Player player, int id) { }
|
||||
public void OnObjectiveCompleted(Player player, int id) { }
|
||||
public void OnObjectiveFailed(Player player, int id) { }
|
||||
|
||||
public void ResolveOrder(Actor self, Order order)
|
||||
{
|
||||
@@ -12,7 +12,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
namespace OpenRA.Mods.Common.Traits
|
||||
{
|
||||
[Desc("Used to mark a place that needs to be in possession for StrategicVictoryConditions.")]
|
||||
public class StrategicPointInfo : TraitInfo<StrategicPoint> { }
|
||||
@@ -80,7 +80,7 @@ namespace OpenRA.Mods.RA
|
||||
mo.MarkCompleted(player, objectiveID);
|
||||
|
||||
if (others.Any(p => p.WinState == WinState.Won))
|
||||
mo.MarkFailed(player, objectiveID);
|
||||
mo.MarkFailed(player, objectiveID);
|
||||
|
||||
// See if any of the conditions are met to increase the count
|
||||
if (Total > 0)
|
||||
@@ -122,8 +122,8 @@ namespace OpenRA.Mods.RA
|
||||
Game.RunAfterDelay(info.NotificationDelay, () => Sound.PlayNotification(player.World.Map.Rules, player, "Speech", "Win", player.Country.Race));
|
||||
}
|
||||
|
||||
public void OnObjectiveAdded(Player player, int id) {}
|
||||
public void OnObjectiveCompleted(Player player, int id) {}
|
||||
public void OnObjectiveFailed(Player player, int id) {}
|
||||
public void OnObjectiveAdded(Player player, int id) { }
|
||||
public void OnObjectiveCompleted(Player player, int id) { }
|
||||
public void OnObjectiveFailed(Player player, int id) { }
|
||||
}
|
||||
}
|
||||
@@ -690,6 +690,11 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
}
|
||||
|
||||
// Adjust MustBeDestroyed for short games
|
||||
if (engineVersion < 20141218)
|
||||
if (depth == 1 && node.Key == "MustBeDestroyed")
|
||||
node.Value.Nodes.Add(new MiniYamlNode("RequiredForShortGame", "true"));
|
||||
|
||||
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,14 +11,15 @@
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.RA.Widgets
|
||||
namespace OpenRA.Mods.Common.Widgets
|
||||
{
|
||||
public class StrategicProgressWidget : Widget
|
||||
{
|
||||
bool Initialised = false;
|
||||
readonly World world;
|
||||
bool initialised = false;
|
||||
|
||||
[ObjectCreator.UseCtor]
|
||||
public StrategicProgressWidget(World world)
|
||||
@@ -29,7 +30,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
|
||||
public override void Draw()
|
||||
{
|
||||
if (!Initialised)
|
||||
if (!initialised)
|
||||
Init();
|
||||
|
||||
if (!IsVisible()) return;
|
||||
@@ -99,7 +100,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
world.ActorsWithTrait<StrategicPoint>().Any();
|
||||
|
||||
IsVisible = () => visible;
|
||||
Initialised = true;
|
||||
initialised = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -166,7 +166,6 @@
|
||||
<Compile Include="CashTrickler.cs" />
|
||||
<Compile Include="Traits\PaletteEffects\ChronoshiftPaletteEffect.cs" />
|
||||
<Compile Include="Traits\Chronoshiftable.cs" />
|
||||
<Compile Include="ConquestVictoryConditions.cs" />
|
||||
<Compile Include="Crate.cs" />
|
||||
<Compile Include="CrateAction.cs" />
|
||||
<Compile Include="CrateSpawner.cs" />
|
||||
@@ -215,7 +214,6 @@
|
||||
<Compile Include="Player\ClassicProductionQueue.cs" />
|
||||
<Compile Include="Player\PlaceBuilding.cs" />
|
||||
<Compile Include="Player\ProductionQueue.cs" />
|
||||
<Compile Include="Player\MissionObjectives.cs" />
|
||||
<Compile Include="Traits\PortableChrono.cs" />
|
||||
<Compile Include="Scripting\Properties\GuardProperties.cs" />
|
||||
<Compile Include="Traits\World\DomainIndex.cs" />
|
||||
@@ -251,7 +249,6 @@
|
||||
<Compile Include="SpawnMPUnits.cs" />
|
||||
<Compile Include="Disguise.cs" />
|
||||
<Compile Include="StoresResources.cs" />
|
||||
<Compile Include="StrategicVictoryConditions.cs" />
|
||||
<Compile Include="Traits\SupplyTruck.cs" />
|
||||
<Compile Include="SupportPowers\AirstrikePower.cs" />
|
||||
<Compile Include="Traits\SupportPowers\ChronoshiftPower.cs" />
|
||||
@@ -326,7 +323,6 @@
|
||||
<Compile Include="Widgets\Logic\ServerCreationLogic.cs" />
|
||||
<Compile Include="Widgets\ObserverProductionIconsWidget.cs" />
|
||||
<Compile Include="Widgets\ObserverSupportPowerIconsWidget.cs" />
|
||||
<Compile Include="Widgets\StrategicProgressWidget.cs" />
|
||||
<Compile Include="Widgets\SupportPowerTimerWidget.cs" />
|
||||
<Compile Include="Widgets\WorldCommandWidget.cs" />
|
||||
<Compile Include="Player\BaseAttackNotifier.cs" />
|
||||
@@ -405,7 +401,6 @@
|
||||
<Compile Include="Widgets\Logic\DebugMenuLogic.cs" />
|
||||
<Compile Include="ProductionQueueFromSelection.cs" />
|
||||
<Compile Include="GainsStatUpgrades.cs" />
|
||||
<Compile Include="Player\Extensions.cs" />
|
||||
<Compile Include="Warheads\CreateResourceWarhead.cs" />
|
||||
<Compile Include="Warheads\DestroyResourceWarhead.cs" />
|
||||
<Compile Include="Warheads\PerCellDamageWarhead.cs" />
|
||||
|
||||
@@ -10,9 +10,10 @@
|
||||
|
||||
using System;
|
||||
using Eluant;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Mods.Common;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Scripting;
|
||||
using OpenRA.Mods.RA;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA.Scripting
|
||||
{
|
||||
@@ -108,7 +109,8 @@ namespace OpenRA.Mods.RA.Scripting
|
||||
}
|
||||
|
||||
[ScriptActorPropertyActivity]
|
||||
[Desc("Returns true if this player has lost all units/actors that have the MustBeDestroyed trait.")]
|
||||
[Desc("Returns true if this player has lost all units/actors that have" +
|
||||
"the MustBeDestroyed trait (according to the short game option).")]
|
||||
public bool HasNoRequiredUnits()
|
||||
{
|
||||
return player.HasNoRequiredUnits();
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Drawing;
|
||||
using OpenRA.Widgets;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Mods.RA;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
{
|
||||
|
||||
@@ -352,6 +352,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
"fragilealliance {0}".F(!orderManager.LobbyInfo.GlobalSettings.FragileAlliances)));
|
||||
}
|
||||
|
||||
var shortGame = optionsBin.GetOrNull<CheckboxWidget>("SHORTGAME_CHECKBOX");
|
||||
if (shortGame != null)
|
||||
{
|
||||
shortGame.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.ShortGame;
|
||||
shortGame.IsDisabled = () => Map.Status != MapStatus.Available || Map.Map.Options.ShortGame.HasValue || configurationDisabled();
|
||||
shortGame.OnClick = () => orderManager.IssueOrder(Order.Command(
|
||||
"shortgame {0}".F(!orderManager.LobbyInfo.GlobalSettings.ShortGame)));
|
||||
}
|
||||
|
||||
var difficulty = optionsBin.GetOrNull<DropDownButtonWidget>("DIFFICULTY_DROPDOWNBUTTON");
|
||||
if (difficulty != null)
|
||||
{
|
||||
|
||||
@@ -10,10 +10,11 @@
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using OpenRA.Mods.RA.Orders;
|
||||
using OpenRA.Widgets;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Mods.Common.Widgets;
|
||||
using OpenRA.Mods.RA.Orders;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
{
|
||||
|
||||
@@ -122,20 +122,27 @@ Background@LOBBY_OPTIONS_BIN:
|
||||
Font: Regular
|
||||
Text: Fog of War
|
||||
Checkbox@CRATES_CHECKBOX:
|
||||
X: 160
|
||||
X: 140
|
||||
Width: 230
|
||||
Height: 20
|
||||
Font: Regular
|
||||
Text: Crates Appear
|
||||
Text: Crates
|
||||
Checkbox@ALLYBUILDRADIUS_CHECKBOX:
|
||||
X: 160
|
||||
X: 140
|
||||
Y: 35
|
||||
Width: 230
|
||||
Height: 20
|
||||
Font: Regular
|
||||
Text: Build off Ally ConYards
|
||||
Text: Build off Allies' ConYards
|
||||
Checkbox@SHORTGAME_CHECKBOX:
|
||||
X: 365
|
||||
Width: 230
|
||||
Height: 20
|
||||
Font: Regular
|
||||
Text: Short Game
|
||||
Checkbox@ALLOWCHEATS_CHECKBOX:
|
||||
X: 325
|
||||
X: 365
|
||||
Y: 35
|
||||
Width: 230
|
||||
Height: 20
|
||||
Font: Regular
|
||||
|
||||
@@ -23,6 +23,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -445,24 +446,20 @@ Rules:
|
||||
MissionObjectives:
|
||||
EarlyGameOver: true
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Helicopter:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
SpawnViceroid:
|
||||
Probability: 0
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
@@ -486,8 +483,6 @@ Rules:
|
||||
GenericVisibility: Enemy, Ally, Neutral
|
||||
GenericStancePrefix: false
|
||||
ShowOwnerRow: false
|
||||
HARV:
|
||||
-MustBeDestroyed:
|
||||
PROC:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
@@ -515,7 +510,6 @@ Rules:
|
||||
GUN:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
MustBeDestroyed:
|
||||
GTWR:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
@@ -88,15 +88,6 @@ WorldLoaded = function()
|
||||
gdiObjective1 = player.AddPrimaryObjective("Eliminate all Nod forces in the area")
|
||||
gdiObjective2 = player.AddSecondaryObjective("Capture the Tiberium Refinery")
|
||||
|
||||
-- Work around limitations with the yaml merger that prevent MustBeDestroyed from working on the silos
|
||||
siloARemoved = false
|
||||
Trigger.OnCapture(SiloA, function() siloARemoved = true end)
|
||||
Trigger.OnKilled(SiloA, function() siloARemoved = true end)
|
||||
|
||||
siloBRemoved = false
|
||||
Trigger.OnCapture(SiloB, function() siloBRemoved = true end)
|
||||
Trigger.OnKilled(SiloB, function() siloBRemoved = true end)
|
||||
|
||||
Trigger.OnCapture(NodRefinery, function() player.MarkCompletedObjective(gdiObjective2) end)
|
||||
Trigger.OnKilled(NodRefinery, function() player.MarkFailedObjective(gdiObjective2) end)
|
||||
|
||||
@@ -107,7 +98,7 @@ Tick = function()
|
||||
if player.HasNoRequiredUnits() then
|
||||
enemy.MarkCompletedObjective(nodObjective)
|
||||
end
|
||||
if enemy.HasNoRequiredUnits() and siloARemoved and siloBRemoved then
|
||||
if enemy.HasNoRequiredUnits() then
|
||||
player.MarkCompletedObjective(gdiObjective1)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -23,6 +23,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -750,24 +751,20 @@ Rules:
|
||||
MissionObjectives:
|
||||
EarlyGameOver: true
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Helicopter:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
SpawnViceroid:
|
||||
Probability: 0
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
@@ -794,7 +791,6 @@ Rules:
|
||||
GenericStancePrefix: false
|
||||
ShowOwnerRow: false
|
||||
HARV:
|
||||
-MustBeDestroyed:
|
||||
Harvester:
|
||||
SearchFromProcRadius: 32
|
||||
SearchFromOrderRadius: 20
|
||||
@@ -802,7 +798,6 @@ Rules:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
SILO:
|
||||
MustBeDestroyed:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
WEAP:
|
||||
|
||||
@@ -23,6 +23,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -741,22 +742,18 @@ Rules:
|
||||
MissionObjectives:
|
||||
EarlyGameOver: true
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Helicopter:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
MustBeDestroyed:
|
||||
SpawnViceroid:
|
||||
Probability: 0
|
||||
Tooltip:
|
||||
@@ -784,8 +781,6 @@ Rules:
|
||||
GenericVisibility: Enemy, Ally, Neutral
|
||||
GenericStancePrefix: false
|
||||
ShowOwnerRow: false
|
||||
HARV:
|
||||
-MustBeDestroyed:
|
||||
WEAP:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
@@ -23,6 +23,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Cheats: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
@@ -565,12 +566,10 @@ Rules:
|
||||
MissionObjectives:
|
||||
EarlyGameOver: true
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
@@ -581,7 +580,6 @@ Rules:
|
||||
^Infantry:
|
||||
SpawnViceroid:
|
||||
Probability: 0
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
|
||||
@@ -23,6 +23,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -620,12 +621,10 @@ Rules:
|
||||
MissionObjectives:
|
||||
EarlyGameOver: true
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
@@ -636,7 +635,6 @@ Rules:
|
||||
^Infantry:
|
||||
SpawnViceroid:
|
||||
Probability: 0
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
|
||||
@@ -23,6 +23,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -884,24 +885,20 @@ Rules:
|
||||
MissionObjectives:
|
||||
EarlyGameOver: true
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Helicopter:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
SpawnViceroid:
|
||||
Probability: 0
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
@@ -925,8 +922,6 @@ Rules:
|
||||
GenericVisibility: Enemy, Ally, Neutral
|
||||
GenericStancePrefix: false
|
||||
ShowOwnerRow: false
|
||||
HARV:
|
||||
-MustBeDestroyed:
|
||||
^CivInfantry:
|
||||
Health:
|
||||
HP: 125
|
||||
|
||||
@@ -23,6 +23,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -296,22 +297,18 @@ Rules:
|
||||
^CivInfantry:
|
||||
MustBeDestroyed:
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Helicopter:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
@@ -335,8 +332,6 @@ Rules:
|
||||
GenericVisibility: Enemy, Ally, Neutral
|
||||
GenericStancePrefix: false
|
||||
ShowOwnerRow: false
|
||||
HARV:
|
||||
-MustBeDestroyed:
|
||||
|
||||
Sequences:
|
||||
|
||||
|
||||
@@ -77,13 +77,15 @@ WorldLoaded = function()
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if nod.HasNoRequiredUnits() then
|
||||
gdi.MarkCompletedObjective(GDIObjective1)
|
||||
end
|
||||
if villagers.HasNoRequiredUnits() then
|
||||
nod.MarkCompletedObjective(NodObjective2)
|
||||
end
|
||||
if gdi.HasNoRequiredUnits() then
|
||||
nod.MarkCompletedObjective(NodObjective3)
|
||||
if DateTime.GameTime > 2 then
|
||||
if nod.HasNoRequiredUnits() then
|
||||
gdi.MarkCompletedObjective(GDIObjective1)
|
||||
end
|
||||
if villagers.HasNoRequiredUnits() then
|
||||
nod.MarkCompletedObjective(NodObjective2)
|
||||
end
|
||||
if gdi.HasNoRequiredUnits() then
|
||||
nod.MarkCompletedObjective(NodObjective3)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -23,6 +23,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -540,24 +541,20 @@ Rules:
|
||||
ObjectivesPanel:
|
||||
PanelName: MISSION_OBJECTIVES
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Helicopter:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
SpawnViceroid:
|
||||
Probability: 0
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
@@ -581,8 +578,6 @@ Rules:
|
||||
GenericVisibility: Enemy, Ally, Neutral
|
||||
GenericStancePrefix: false
|
||||
ShowOwnerRow: false
|
||||
HARV:
|
||||
-MustBeDestroyed:
|
||||
HQ:
|
||||
AirstrikePower:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
@@ -66,10 +66,12 @@ WorldLoaded = function()
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if player.HasNoRequiredUnits() then
|
||||
enemy.MarkCompletedObjective(gdiObjective)
|
||||
end
|
||||
if enemy.HasNoRequiredUnits() then
|
||||
player.MarkCompletedObjective(nodObjective2)
|
||||
if DateTime.GameTime > 2 then
|
||||
if player.HasNoRequiredUnits() then
|
||||
enemy.MarkCompletedObjective(gdiObjective)
|
||||
end
|
||||
if enemy.HasNoRequiredUnits() then
|
||||
player.MarkCompletedObjective(nodObjective2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -23,6 +23,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -585,24 +586,20 @@ Rules:
|
||||
ObjectivesPanel:
|
||||
PanelName: MISSION_OBJECTIVES
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Helicopter:
|
||||
SpawnViceroid:
|
||||
Probability: 0
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
@@ -626,8 +623,6 @@ Rules:
|
||||
GenericVisibility: Enemy, Ally, Neutral
|
||||
GenericStancePrefix: false
|
||||
ShowOwnerRow: false
|
||||
HARV:
|
||||
-MustBeDestroyed:
|
||||
HQ:
|
||||
AirstrikePower:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
@@ -79,11 +79,13 @@ WorldLoaded = function()
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if player.HasNoRequiredUnits() then
|
||||
enemy.MarkCompletedObjective(gdiObjective)
|
||||
end
|
||||
if DateTime.GameTime > 2 then
|
||||
if player.HasNoRequiredUnits() then
|
||||
enemy.MarkCompletedObjective(gdiObjective)
|
||||
end
|
||||
|
||||
if enemy.HasNoRequiredUnits() then
|
||||
player.MarkCompletedObjective(nodObjective2)
|
||||
if enemy.HasNoRequiredUnits() then
|
||||
player.MarkCompletedObjective(nodObjective2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -229,6 +229,7 @@ Rules:
|
||||
RevealsShroud:
|
||||
Range: 40c0
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
-AttackMove:
|
||||
|
||||
Sequences:
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
MustBeDestroyed:
|
||||
|
||||
^Tank:
|
||||
AppearsOnRadar:
|
||||
@@ -106,6 +107,7 @@
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
MustBeDestroyed:
|
||||
|
||||
^Helicopter:
|
||||
AppearsOnRadar:
|
||||
@@ -149,6 +151,7 @@
|
||||
UpgradeManager:
|
||||
WithShadow:
|
||||
Hovers:
|
||||
MustBeDestroyed:
|
||||
|
||||
^Infantry:
|
||||
AppearsOnRadar:
|
||||
@@ -233,6 +236,7 @@
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
MustBeDestroyed:
|
||||
|
||||
^CivInfantry:
|
||||
Inherits: ^Infantry
|
||||
@@ -424,6 +428,7 @@
|
||||
^BaseBuilding:
|
||||
Inherits: ^Building
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
RepairableBuilding:
|
||||
RepairPercent: 40
|
||||
RepairStep: 14
|
||||
|
||||
@@ -198,7 +198,8 @@ SILO:
|
||||
-EmitInfantryOnSell:
|
||||
Power:
|
||||
Amount: -10
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
PYLE:
|
||||
Inherits: ^BaseBuilding
|
||||
@@ -616,7 +617,8 @@ GUN:
|
||||
Range: 3
|
||||
Power:
|
||||
Amount: -20
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
SAM:
|
||||
Inherits: ^BaseBuilding
|
||||
@@ -657,7 +659,8 @@ SAM:
|
||||
RenderRangeCircle:
|
||||
Power:
|
||||
Amount: -20
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
OBLI:
|
||||
Inherits: ^BaseBuilding
|
||||
@@ -704,7 +707,8 @@ OBLI:
|
||||
Range: 5
|
||||
Power:
|
||||
Amount: -150
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
GTWR:
|
||||
Inherits: ^BaseBuilding
|
||||
@@ -744,7 +748,8 @@ GTWR:
|
||||
ROT: 255
|
||||
Power:
|
||||
Amount: -10
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
ATWR:
|
||||
Inherits: ^BaseBuilding
|
||||
@@ -794,7 +799,8 @@ ATWR:
|
||||
RenderRangeCircle:
|
||||
Power:
|
||||
Amount: -40
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
SBAG:
|
||||
Inherits: ^Wall
|
||||
|
||||
@@ -28,6 +28,7 @@ MCV:
|
||||
NoTransformSounds: deploy1.aud
|
||||
RenderUnit:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
BaseBuilding:
|
||||
LeavesHusk:
|
||||
HuskActor: MCV.Husk
|
||||
@@ -548,6 +549,7 @@ STNK:
|
||||
TargetableUnit:
|
||||
LeavesHusk:
|
||||
HuskActor: STNK.Husk
|
||||
-MustBeDestroyed:
|
||||
|
||||
MHQ:
|
||||
Inherits: ^Vehicle
|
||||
|
||||
@@ -242,6 +242,7 @@ FREMEN:
|
||||
CloakDelay: 250
|
||||
CloakSound: STEALTH1.WAV
|
||||
UncloakSound: STEALTH2.WAV
|
||||
-MustBeDestroyed:
|
||||
|
||||
GRENADIER:
|
||||
Inherits: ^Infantry
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
TemporaryOwnerManager:
|
||||
MustBeDestroyed:
|
||||
|
||||
^Tank:
|
||||
AppearsOnRadar:
|
||||
@@ -99,6 +100,7 @@
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
TemporaryOwnerManager:
|
||||
MustBeDestroyed:
|
||||
|
||||
^Husk:
|
||||
Health:
|
||||
@@ -224,6 +226,7 @@
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
MustBeDestroyed:
|
||||
|
||||
^Plane:
|
||||
AppearsOnRadar:
|
||||
@@ -286,6 +289,7 @@
|
||||
EmitInfantryOnSell:
|
||||
ActorTypes: rifle,rifle,rifle,rifle,rifle,bazooka,bazooka,bazooka,engineer
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
GivesExperience:
|
||||
FrozenUnderFog:
|
||||
CaptureNotification:
|
||||
|
||||
@@ -197,6 +197,7 @@ STEALTHRAIDER:
|
||||
UncloakSound: STEALTH2.WAV
|
||||
AutoTarget:
|
||||
InitialStance: HoldFire
|
||||
-MustBeDestroyed:
|
||||
|
||||
CARRYALLO:
|
||||
Inherits: ^CARRYALL
|
||||
|
||||
@@ -228,6 +228,8 @@ CONCRETEB:
|
||||
-EmitInfantryOnSell:
|
||||
Power:
|
||||
Amount: -5
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
^LIGHT:
|
||||
Inherits: ^Building
|
||||
@@ -501,6 +503,8 @@ WALL:
|
||||
Types: turret
|
||||
Power:
|
||||
Amount: -20
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
^ROCKETTOWER:
|
||||
Inherits: ^Building
|
||||
@@ -554,6 +558,8 @@ WALL:
|
||||
Types: turret
|
||||
Power:
|
||||
Amount: -30
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
^REPAIR:
|
||||
Inherits: ^Building
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
RevealsShroud:
|
||||
Range: 8c0
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
BaseBuilding:
|
||||
Explodes:
|
||||
Weapon: UnitExplodeScale
|
||||
|
||||
@@ -97,7 +97,7 @@ Background@LOBBY_OPTIONS_BIN:
|
||||
Children:
|
||||
Label@TITLE:
|
||||
X: 0
|
||||
Y: 30
|
||||
Y: 5
|
||||
Width: PARENT_RIGHT
|
||||
Height: 25
|
||||
Font: Bold
|
||||
@@ -105,89 +105,94 @@ Background@LOBBY_OPTIONS_BIN:
|
||||
Text: Map Options
|
||||
Container:
|
||||
X: 30
|
||||
Y: 70
|
||||
Y: 50
|
||||
Width: PARENT_RIGHT-60
|
||||
Height: PARENT_BOTTOM-75
|
||||
Children:
|
||||
Checkbox@SHROUD_CHECKBOX:
|
||||
Width: 230
|
||||
Width: 140
|
||||
Height: 20
|
||||
Text: Shroud
|
||||
Checkbox@FOG_CHECKBOX:
|
||||
Y: 40
|
||||
Width: 230
|
||||
Y: 35
|
||||
Width: 140
|
||||
Height: 20
|
||||
Text: Fog of War
|
||||
Checkbox@SHORTGAME_CHECKBOX:
|
||||
X: 150
|
||||
Width: 140
|
||||
Height: 20
|
||||
Text: Short Game
|
||||
Checkbox@CRATES_CHECKBOX:
|
||||
X: 125
|
||||
Width: 230
|
||||
X: 150
|
||||
Y: 35
|
||||
Width: 140
|
||||
Height: 20
|
||||
Text: Crates Appear
|
||||
Text: Crates
|
||||
Checkbox@ALLYBUILDRADIUS_CHECKBOX:
|
||||
X: 125
|
||||
Y: 40
|
||||
Width: 230
|
||||
X: 290
|
||||
Width: 140
|
||||
Height: 20
|
||||
Text: Build off Ally ConYards
|
||||
Checkbox@ALLOWCHEATS_CHECKBOX:
|
||||
X: 320
|
||||
Width: 230
|
||||
Height: 20
|
||||
Text: Debug Menu
|
||||
Text: Build off Allies' ConYards
|
||||
Checkbox@FRAGILEALLIANCES_CHECKBOX:
|
||||
X: 320
|
||||
Y: 40
|
||||
Width: 220
|
||||
X: 290
|
||||
Y: 35
|
||||
Width: 140
|
||||
Height: 20
|
||||
Text: Diplomacy Changes
|
||||
Checkbox@ALLOWCHEATS_CHECKBOX:
|
||||
Y: 70
|
||||
Width: 140
|
||||
Height: 20
|
||||
Text: Debug Menu
|
||||
Label@STARTINGCASH_DESC:
|
||||
Y: 87
|
||||
Y: 110
|
||||
Width: 80
|
||||
Height: 25
|
||||
Text: Starting Cash:
|
||||
Align: Right
|
||||
DropDownButton@STARTINGCASH_DROPDOWNBUTTON:
|
||||
X: 85
|
||||
Y: 87
|
||||
Y: 110
|
||||
Width: 130
|
||||
Height: 25
|
||||
Font: Regular
|
||||
Text: $5000
|
||||
Label@STARTINGUNITS_DESC:
|
||||
X: PARENT_RIGHT - WIDTH - 145
|
||||
Y: 87
|
||||
Y: 110
|
||||
Width: 120
|
||||
Height: 25
|
||||
Text: Starting Units:
|
||||
Align: Right
|
||||
DropDownButton@STARTINGUNITS_DROPDOWNBUTTON:
|
||||
X: PARENT_RIGHT - WIDTH
|
||||
Y: 87
|
||||
Y: 110
|
||||
Width: 140
|
||||
Height: 25
|
||||
Font: Regular
|
||||
Label@DIFFICULTY_DESC:
|
||||
X: PARENT_RIGHT - WIDTH - 145
|
||||
Y: 122
|
||||
Y: 150
|
||||
Width: 120
|
||||
Height: 25
|
||||
Text: Mission Difficulty:
|
||||
Align: Right
|
||||
DropDownButton@DIFFICULTY_DROPDOWNBUTTON:
|
||||
X: PARENT_RIGHT - WIDTH
|
||||
Y: 122
|
||||
Y: 150
|
||||
Width: 140
|
||||
Height: 25
|
||||
Font: Regular
|
||||
DropDownButton@TECHLEVEL_DROPDOWNBUTTON:
|
||||
X: 85
|
||||
Y: 127
|
||||
Y: 150
|
||||
Width: 130
|
||||
Height: 25
|
||||
Font: Regular
|
||||
Text: 10
|
||||
Label@TECHLEVEL_DESC:
|
||||
Y: 127
|
||||
Y: 150
|
||||
Width: 80
|
||||
Height: 25
|
||||
Text: Tech Level:
|
||||
|
||||
@@ -23,6 +23,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -883,17 +884,14 @@ Rules:
|
||||
PanelName: MISSION_OBJECTIVES
|
||||
-StartGameNotification:
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
|
||||
@@ -21,6 +21,7 @@ UseAsShellmap: False
|
||||
Type: Campaign
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -1381,18 +1382,15 @@ Rules:
|
||||
PanelName: MISSION_OBJECTIVES
|
||||
-StartGameNotification:
|
||||
^Infantry:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
Demolishable:
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
|
||||
@@ -833,6 +833,7 @@ Rules:
|
||||
RenderUnit:
|
||||
Image: MNLY
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
Transforms:
|
||||
IntoActor: ftur
|
||||
Offset: 0,0
|
||||
@@ -848,6 +849,7 @@ Rules:
|
||||
Offset: 0,0
|
||||
Facing: 96
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
CashTrickler:
|
||||
Period: 150
|
||||
Amount: 30
|
||||
|
||||
@@ -331,6 +331,7 @@ Rules:
|
||||
RevealsShroud:
|
||||
Range: 40c0
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
-AttackMove:
|
||||
HARV:
|
||||
Tooltip:
|
||||
|
||||
@@ -249,6 +249,7 @@ Rules:
|
||||
WithMuzzleFlash@SECONDARY:
|
||||
Armament: secondary
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
-GivesBounty:
|
||||
PT:
|
||||
-GivesBounty:
|
||||
|
||||
@@ -226,6 +226,7 @@ Rules:
|
||||
RevealsShroud:
|
||||
Range: 40c0
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
-AttackMove:
|
||||
HARV:
|
||||
Tooltip:
|
||||
|
||||
@@ -21,6 +21,7 @@ UseAsShellmap: False
|
||||
Type: Minigame
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
AllyBuildRadius: False
|
||||
|
||||
@@ -201,12 +201,14 @@ SetupWorld = function()
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if soviets.Resources > soviets.ResourceCapacity * 0.75 then
|
||||
soviets.Resources = soviets.Resources - ((soviets.ResourceCapacity * 0.01) / 25)
|
||||
end
|
||||
if DateTime.GameTime > 2 then
|
||||
if soviets.Resources > soviets.ResourceCapacity * 0.75 then
|
||||
soviets.Resources = soviets.Resources - ((soviets.ResourceCapacity * 0.01) / 25)
|
||||
end
|
||||
|
||||
if player.HasNoRequiredUnits() then
|
||||
player.MarkFailedObjective(villageObjective)
|
||||
if player.HasNoRequiredUnits() then
|
||||
player.MarkFailedObjective(villageObjective)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ UseAsShellmap: False
|
||||
Type: Mission
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -2296,27 +2297,22 @@ Rules:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Plane:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Ship:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
|
||||
@@ -21,6 +21,7 @@ UseAsShellmap: False
|
||||
Type: Mission
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -2134,17 +2135,14 @@ Rules:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
|
||||
@@ -23,6 +23,7 @@ Type: Campaign
|
||||
PreviewVideo: soviet1.vqa
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -796,17 +797,14 @@ Rules:
|
||||
^CivBuilding:
|
||||
MustBeDestroyed:
|
||||
^Plane:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
@@ -820,7 +818,6 @@ Rules:
|
||||
GenericStancePrefix: false
|
||||
ShowOwnerRow: false
|
||||
PBOX:
|
||||
MustBeDestroyed:
|
||||
JEEP:
|
||||
Explodes:
|
||||
JamsRadar:
|
||||
@@ -849,4 +846,4 @@ Voices:
|
||||
|
||||
Notifications:
|
||||
|
||||
Translations:
|
||||
Translations:
|
||||
|
||||
@@ -21,6 +21,7 @@ UseAsShellmap: False
|
||||
Type: Mission
|
||||
|
||||
Options:
|
||||
ShortGame: False
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
@@ -1224,17 +1225,14 @@ Rules:
|
||||
ObjectivesPanel:
|
||||
PanelName: MISSION_OBJECTIVES
|
||||
^Infantry:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Tank:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Vehicle:
|
||||
MustBeDestroyed:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
TimedUpgradeBar:
|
||||
Upgrade: invulnerability
|
||||
MustBeDestroyed:
|
||||
|
||||
^Tank:
|
||||
AppearsOnRadar:
|
||||
@@ -145,6 +146,7 @@
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
TimedUpgradeBar:
|
||||
Upgrade: invulnerability
|
||||
MustBeDestroyed:
|
||||
|
||||
^Infantry:
|
||||
AppearsOnRadar:
|
||||
@@ -233,6 +235,7 @@
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
MustBeDestroyed:
|
||||
|
||||
^Ship:
|
||||
AppearsOnRadar:
|
||||
@@ -286,6 +289,7 @@
|
||||
TimedUpgradeBar:
|
||||
Upgrade: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
MustBeDestroyed:
|
||||
|
||||
^Plane:
|
||||
AppearsOnRadar:
|
||||
@@ -342,6 +346,7 @@
|
||||
TimedUpgradeBar:
|
||||
Upgrade: invulnerability
|
||||
WithShadow:
|
||||
MustBeDestroyed:
|
||||
|
||||
^Helicopter:
|
||||
Inherits: ^Plane
|
||||
@@ -377,6 +382,7 @@
|
||||
EmitInfantryOnSell:
|
||||
ActorTypes: e1,e1,e1,e1,e1,e1,e1,e1,e1,e1,e1,e1,e1,e1,e1,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,e6,e6,e6,e6,e6
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
GivesExperience:
|
||||
CaptureNotification:
|
||||
EditorAppearance:
|
||||
@@ -416,7 +422,8 @@
|
||||
Inherits: ^Building
|
||||
TargetableBuilding:
|
||||
TargetTypes: Ground, C4, DetonateAttack, Structure, Defense
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
^Wall:
|
||||
AppearsOnRadar:
|
||||
|
||||
@@ -520,6 +520,7 @@ SNIPER:
|
||||
UncloakOnMove: yes
|
||||
DetectCloaked:
|
||||
Range: 6
|
||||
-MustBeDestroyed:
|
||||
|
||||
Zombie:
|
||||
Inherits: ^Infantry
|
||||
|
||||
@@ -48,6 +48,7 @@ SS:
|
||||
Explodes:
|
||||
Weapon: UnitExplodeSubmarine
|
||||
EmptyWeapon: UnitExplodeSubmarine
|
||||
-MustBeDestroyed:
|
||||
|
||||
MSUB:
|
||||
Inherits: ^Ship
|
||||
@@ -99,6 +100,7 @@ MSUB:
|
||||
Explodes:
|
||||
Weapon: UnitExplodeSubmarine
|
||||
EmptyWeapon: UnitExplodeSubmarine
|
||||
-MustBeDestroyed:
|
||||
|
||||
DD:
|
||||
Inherits: ^Ship
|
||||
|
||||
@@ -43,7 +43,8 @@ MSLO:
|
||||
SupportPowerChargeBar:
|
||||
Power:
|
||||
Amount: -100
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
GAP:
|
||||
Inherits: ^Building
|
||||
@@ -77,7 +78,8 @@ GAP:
|
||||
RenderShroudCircle:
|
||||
Power:
|
||||
Amount: -60
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
SPEN:
|
||||
Inherits: ^Building
|
||||
@@ -228,7 +230,8 @@ IRON:
|
||||
SupportPowerChargeBar:
|
||||
Power:
|
||||
Amount: -200
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
PDOX:
|
||||
Inherits: ^Building
|
||||
@@ -272,7 +275,8 @@ PDOX:
|
||||
-AcceptsSupplies:
|
||||
Power:
|
||||
Amount: -200
|
||||
-MustBeDestroyed:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: false
|
||||
|
||||
TSLA:
|
||||
Inherits: ^Defense
|
||||
@@ -491,6 +495,7 @@ HBOX:
|
||||
PortCones: 86, 86, 86, 86, 86, 86
|
||||
Power:
|
||||
Amount: -15
|
||||
-MustBeDestroyed:
|
||||
|
||||
GUN:
|
||||
Inherits: ^Defense
|
||||
|
||||
@@ -311,6 +311,7 @@ MCV:
|
||||
NoTransformSounds: nodeply1.aud
|
||||
RenderUnit:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
BaseBuilding:
|
||||
LeavesHusk:
|
||||
HuskActor: MCV.Husk
|
||||
@@ -772,4 +773,5 @@ STNK:
|
||||
Explodes:
|
||||
Weapon: UnitExplodeSmall
|
||||
EmptyWeapon: UnitExplodeSmall
|
||||
-MustBeDestroyed:
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
RepairableBuilding:
|
||||
EngineerRepairable:
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
GivesExperience:
|
||||
CaptureNotification:
|
||||
EditorAppearance:
|
||||
@@ -92,6 +93,7 @@
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InitialDelay: 0
|
||||
CloakDelay: 90
|
||||
MustBeDestroyed:
|
||||
|
||||
^Infantry:
|
||||
AppearsOnRadar:
|
||||
@@ -174,6 +176,7 @@
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InitialDelay: 0
|
||||
CloakDelay: 90
|
||||
MustBeDestroyed:
|
||||
|
||||
^CivilianInfantry:
|
||||
Inherits: ^Infantry
|
||||
@@ -201,6 +204,7 @@
|
||||
Types: CivilianInfantry
|
||||
RenderInfantry:
|
||||
ScaredyCat:
|
||||
-MustBeDestroyed:
|
||||
|
||||
^Vehicle:
|
||||
AppearsOnRadar:
|
||||
@@ -280,6 +284,7 @@
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
InitialDelay: 0
|
||||
CloakDelay: 90
|
||||
MustBeDestroyed:
|
||||
|
||||
^Tank:
|
||||
AppearsOnRadar:
|
||||
@@ -359,6 +364,7 @@
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
InitialDelay: 0
|
||||
CloakDelay: 90
|
||||
MustBeDestroyed:
|
||||
|
||||
^Helicopter:
|
||||
AppearsOnRadar:
|
||||
@@ -406,6 +412,7 @@
|
||||
Guard:
|
||||
Guardable:
|
||||
UpgradeManager:
|
||||
MustBeDestroyed:
|
||||
|
||||
^BlossomTree:
|
||||
Tooltip:
|
||||
|
||||
@@ -23,6 +23,7 @@ MCV:
|
||||
RevealsShroud:
|
||||
Range: 4c0
|
||||
MustBeDestroyed:
|
||||
RequiredForShortGame: true
|
||||
BaseBuilding:
|
||||
Transforms:
|
||||
IntoActor: gacnst
|
||||
@@ -848,4 +849,5 @@ STNK:
|
||||
RenderSprites:
|
||||
RenderVoxels:
|
||||
WithVoxelBody:
|
||||
-MustBeDestroyed:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user