more
This commit is contained in:
@@ -13,7 +13,7 @@ namespace OpenRa.Game
|
||||
public static IniFile AllRules;
|
||||
public static Dictionary<string, List<string>> Categories = new Dictionary<string, List<string>>();
|
||||
public static Dictionary<string, string> UnitCategory;
|
||||
public static InfoLoader<UnitInfo> UnitInfo;
|
||||
public static InfoLoader<LegacyUnitInfo> UnitInfo;
|
||||
public static InfoLoader<WeaponInfo> WeaponInfo;
|
||||
public static InfoLoader<WarheadInfo> WarheadInfo;
|
||||
public static InfoLoader<ProjectileInfo> ProjectileInfo;
|
||||
@@ -64,13 +64,13 @@ namespace OpenRa.Game
|
||||
"Plane");
|
||||
UnitCategory = Categories.SelectMany(x => x.Value.Select(y => new KeyValuePair<string, string>(y, x.Key))).ToDictionary(x => x.Key, x => x.Value);
|
||||
|
||||
UnitInfo = new InfoLoader<UnitInfo>(
|
||||
Pair.New<string, Func<string, UnitInfo>>("Building", s => new BuildingInfo(s)),
|
||||
Pair.New<string, Func<string, UnitInfo>>("Defense", s => new BuildingInfo(s)),
|
||||
Pair.New<string, Func<string, UnitInfo>>("Infantry", s => new InfantryInfo(s)),
|
||||
Pair.New<string, Func<string, UnitInfo>>("Vehicle", s => new VehicleInfo(s)),
|
||||
Pair.New<string, Func<string, UnitInfo>>("Ship", s => new VehicleInfo(s)),
|
||||
Pair.New<string, Func<string, UnitInfo>>("Plane", s => new VehicleInfo(s)));
|
||||
UnitInfo = new InfoLoader<LegacyUnitInfo>(
|
||||
Pair.New<string, Func<string, LegacyUnitInfo>>("Building", s => new BuildingInfo(s)),
|
||||
Pair.New<string, Func<string, LegacyUnitInfo>>("Defense", s => new BuildingInfo(s)),
|
||||
Pair.New<string, Func<string, LegacyUnitInfo>>("Infantry", s => new InfantryInfo(s)),
|
||||
Pair.New<string, Func<string, LegacyUnitInfo>>("Vehicle", s => new VehicleInfo(s)),
|
||||
Pair.New<string, Func<string, LegacyUnitInfo>>("Ship", s => new VehicleInfo(s)),
|
||||
Pair.New<string, Func<string, LegacyUnitInfo>>("Plane", s => new VehicleInfo(s)));
|
||||
|
||||
LoadCategories(
|
||||
"Weapon",
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace OpenRa.Game.GameRules
|
||||
{
|
||||
class TechTree
|
||||
{
|
||||
readonly Cache<string, List<UnitInfo>> producesIndex = new Cache<string, List<UnitInfo>>( x => new List<UnitInfo>() );
|
||||
readonly Cache<string, List<LegacyUnitInfo>> producesIndex = new Cache<string, List<LegacyUnitInfo>>( x => new List<LegacyUnitInfo>() );
|
||||
|
||||
public TechTree()
|
||||
{
|
||||
@@ -26,7 +26,7 @@ namespace OpenRa.Game.GameRules
|
||||
return ret;
|
||||
}
|
||||
|
||||
public bool CanBuild( UnitInfo unit, Player player, Cache<string, List<Actor>> playerBuildings )
|
||||
public bool CanBuild( LegacyUnitInfo unit, Player player, Cache<string, List<Actor>> playerBuildings )
|
||||
{
|
||||
if( unit.TechLevel == -1 )
|
||||
return false;
|
||||
@@ -59,7 +59,7 @@ namespace OpenRa.Game.GameRules
|
||||
.Where(x => Rules.UnitInfo[x].Owner.Contains(player.Race)); /* todo: fix for dual-race scenarios (captured buildings) */
|
||||
}
|
||||
|
||||
public IEnumerable<UnitInfo> UnitBuiltAt( UnitInfo info )
|
||||
public IEnumerable<LegacyUnitInfo> UnitBuiltAt( LegacyUnitInfo info )
|
||||
{
|
||||
if( info.BuiltAt.Length != 0 )
|
||||
return info.BuiltAt.Select( x => Rules.UnitInfo[ x.ToLowerInvariant() ] );
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace OpenRa.Game.GameRules
|
||||
concrete = 4,
|
||||
}
|
||||
|
||||
public class UnitInfo : ActorInfo
|
||||
public class LegacyUnitInfo : ActorInfo
|
||||
{
|
||||
public readonly string Name;
|
||||
|
||||
@@ -64,10 +64,10 @@ namespace OpenRa.Game.GameRules
|
||||
public readonly int[] PrimaryLocalOffset = { };
|
||||
public readonly int[] SecondaryLocalOffset = { };
|
||||
|
||||
public UnitInfo(string name) { Name = name; }
|
||||
public LegacyUnitInfo(string name) { Name = name; }
|
||||
}
|
||||
|
||||
public class LegacyMobileInfo : UnitInfo
|
||||
public class LegacyMobileInfo : LegacyUnitInfo
|
||||
{
|
||||
public readonly int Speed = 0;
|
||||
public readonly bool NoMovingFire = false;
|
||||
@@ -94,7 +94,7 @@ namespace OpenRa.Game.GameRules
|
||||
public VehicleInfo(string name) : base(name) { }
|
||||
}
|
||||
|
||||
public class BuildingInfo : UnitInfo
|
||||
public class BuildingInfo : LegacyUnitInfo
|
||||
{
|
||||
public readonly int2 Dimensions = new int2(1, 1);
|
||||
public readonly string Footprint = "x";
|
||||
|
||||
Reference in New Issue
Block a user