allow invalid terrain targets for Air/Water bound weapons

made terrain targeting consistent with actors
This commit is contained in:
Matthias Mailänder
2014-01-03 13:18:53 +01:00
parent e3a2addca0
commit 3de1516747
14 changed files with 163 additions and 18 deletions

View File

@@ -18,8 +18,9 @@ namespace OpenRA.FileFormats
public class TerrainTypeInfo
{
public string Type;
public string[] TargetTypes = { };
public string[] AcceptsSmudgeType = { };
public bool IsWater = false;
public bool IsWater = false; // TODO: Remove this
public Color Color;
public string CustomCursor;

View File

@@ -179,6 +179,11 @@ namespace OpenRA.GameRules
if (!world.Map.IsInMap(cell))
return false;
var cellInfo = world.GetTerrainInfo(cell);
if (!ValidTargets.Intersect(cellInfo.TargetTypes).Any()
|| InvalidTargets.Intersect(cellInfo.TargetTypes).Any())
return false;
return true;
}

View File

@@ -159,6 +159,24 @@ namespace OpenRA.Utility
}
}
static void UpgradeTileset(int engineVersion, ref List<MiniYamlNode> nodes, MiniYamlNode parent, int depth)
{
var parentKey = parent != null ? parent.Key.Split('@').First() : null;
List<MiniYamlNode> addNodes = new List<MiniYamlNode>();
foreach (var node in nodes)
{
if (engineVersion < 20140104)
{
if (depth == 2 && parentKey == "TerrainType" && node.Key.Split('@').First() == "Type")
addNodes.Add(new MiniYamlNode("TargetTypes", node.Value.Value == "Water" ? "Water" : "Ground"));
}
UpgradeTileset(engineVersion, ref node.Value.Nodes, node, depth + 1);
}
nodes.AddRange(addNodes);
}
[Desc("MAP", "CURRENTENGINE", "Upgrade map rules to the latest engine version.")]
public static void UpgradeMap(string[] args)
{
@@ -201,6 +219,17 @@ namespace OpenRA.Utility
file.WriteLine(yaml.WriteToString());
}
Console.WriteLine("Processing Tilesets:");
foreach (var filename in Game.modData.Manifest.TileSets)
{
Console.WriteLine("\t" + filename);
var yaml = MiniYaml.FromFile(filename);
UpgradeTileset(engineDate, ref yaml, null, 0);
using (var file = new StreamWriter(filename))
file.WriteLine(yaml.WriteToString());
}
Console.WriteLine("Processing Maps:");
foreach (var map in Game.modData.FindMaps().Values)
{

View File

@@ -10,47 +10,58 @@ Terrain:
Type: Clear
AcceptsSmudgeType: Crater, Scorch
Color: 134, 95, 69
TargetTypes: Ground
TerrainType@Water:
Type: Water
IsWater: true
AcceptsSmudgeType:
Color: 93, 165, 206
TargetTypes: Water
TerrainType@Road:
Type: Road
AcceptsSmudgeType: Crater, Scorch
Color: 168, 123, 83
TargetTypes: Ground
TerrainType@Rock:
Type: Rock
AcceptsSmudgeType:
Color: 116, 90, 63
TargetTypes: Ground
TerrainType@Tree:
Type: Tree
AcceptsSmudgeType:
Color: 28, 32, 36
TargetTypes: Ground
TerrainType@River:
Type: River
AcceptsSmudgeType:
Color: 111, 132, 139
TargetTypes: Ground
TerrainType@Rough:
Type: Rough
AcceptsSmudgeType: Crater, Scorch
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Wall:
Type: Wall
AcceptsSmudgeType: Crater, Scorch
Color: 208, 192, 160
TargetTypes: Ground
TerrainType@Beach:
Type: Beach
AcceptsSmudgeType:
Color: 176, 156, 120
TargetTypes: Ground
TerrainType@Tiberium:
Type: Tiberium
AcceptsSmudgeType: Crater, Scorch
Color: 161, 226, 28
TargetTypes: Ground
TerrainType@BlueTiberium:
Type: BlueTiberium
AcceptsSmudgeType: Crater, Scorch
Color: 84, 252, 252
TargetTypes: Ground
Templates:
Template@255:

View File

@@ -10,47 +10,58 @@ Terrain:
Type: Clear
AcceptsSmudgeType: Crater, Scorch
Color: 196, 196, 196
TargetTypes: Ground
TerrainType@Water:
Type: Water
IsWater: true
AcceptsSmudgeType:
Color: 92, 116, 164
TargetTypes: Water
TerrainType@Road:
Type: Road
AcceptsSmudgeType: Crater, Scorch
Color: 88, 116, 116
TargetTypes: Ground
TerrainType@Rock:
Type: Rock
AcceptsSmudgeType:
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Tree:
Type: Tree
AcceptsSmudgeType:
Color: 28, 32, 36
TargetTypes: Ground
TerrainType@River:
Type: River
AcceptsSmudgeType:
Color: 92, 140, 180
TargetTypes: Ground
TerrainType@Rough:
Type: Rough
AcceptsSmudgeType: Crater, Scorch
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Wall:
Type: Wall
AcceptsSmudgeType: Crater, Scorch
Color: 208, 192, 160
TargetTypes: Ground
TerrainType@Beach:
Type: Beach
AcceptsSmudgeType:
Color: 176, 156, 120
TargetTypes: Ground
TerrainType@Tiberium:
Type: Tiberium
AcceptsSmudgeType: Crater, Scorch
Color: 161, 226, 28
TargetTypes: Ground
TerrainType@BlueTiberium:
Type: BlueTiberium
AcceptsSmudgeType: Crater, Scorch
Color: 84, 252, 252
TargetTypes: Ground
Templates:
Template@255:
@@ -1321,3 +1332,4 @@ Templates:
3: Water
4: River
6: Water

View File

@@ -10,47 +10,58 @@ Terrain:
Type: Clear
AcceptsSmudgeType: Crater, Scorch
Color: 40, 68, 40
TargetTypes: Ground
TerrainType@Water:
Type: Water
IsWater: true
AcceptsSmudgeType:
Color: 92, 116, 164
TargetTypes: Water
TerrainType@Road:
Type: Road
AcceptsSmudgeType: Crater, Scorch
Color: 88, 116, 116
TargetTypes: Ground
TerrainType@Rock:
Type: Rock
AcceptsSmudgeType:
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Tree:
Type: Tree
AcceptsSmudgeType:
Color: 28, 32, 36
TargetTypes: Ground
TerrainType@River:
Type: River
AcceptsSmudgeType:
Color: 92, 140, 180
TargetTypes: Ground
TerrainType@Rough:
Type: Rough
AcceptsSmudgeType: Crater, Scorch
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Wall:
Type: Wall
AcceptsSmudgeType: Crater, Scorch
Color: 208, 192, 160
TargetTypes: Ground
TerrainType@Beach:
Type: Beach
AcceptsSmudgeType:
Color: 176, 156, 120
TargetTypes: Ground
TerrainType@Tiberium:
Type: Tiberium
AcceptsSmudgeType: Crater, Scorch
Color: 161, 226, 28
TargetTypes: Ground
TerrainType@BlueTiberium:
Type: BlueTiberium
AcceptsSmudgeType: Crater, Scorch
Color: 84, 252, 252
TargetTypes: Ground
Templates:
Template@255:
@@ -1332,4 +1343,5 @@ Templates:
7: Tree
3: Tree
2: Tree
4: Tree
4: Tree

View File

@@ -10,47 +10,58 @@ Terrain:
Type: Clear
AcceptsSmudgeType: Crater, Scorch
Color: 40, 68, 40
TargetTypes: Ground
TerrainType@Water:
Type: Water
IsWater: true
AcceptsSmudgeType:
Color: 92, 116, 164
TargetTypes: Water
TerrainType@Road:
Type: Road
AcceptsSmudgeType: Crater, Scorch
Color: 88, 116, 116
TargetTypes: Ground
TerrainType@Rock:
Type: Rock
AcceptsSmudgeType:
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Tree:
Type: Tree
AcceptsSmudgeType:
Color: 28, 32, 36
TargetTypes: Ground
TerrainType@River:
Type: River
AcceptsSmudgeType:
Color: 92, 140, 180
TargetTypes: Ground
TerrainType@Rough:
Type: Rough
AcceptsSmudgeType: Crater, Scorch
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Wall:
Type: Wall
AcceptsSmudgeType: Crater, Scorch
Color: 208, 192, 160
TargetTypes: Ground
TerrainType@Beach:
Type: Beach
AcceptsSmudgeType:
Color: 176, 156, 120
TargetTypes: Ground
TerrainType@Tiberium:
Type: Tiberium
AcceptsSmudgeType: Crater, Scorch
Color: 161, 226, 28
TargetTypes: Ground
TerrainType@BlueTiberium:
Type: BlueTiberium
AcceptsSmudgeType: Crater, Scorch
Color: 84, 252, 252
TargetTypes: Ground
Templates:
Template@255:
@@ -1326,4 +1337,5 @@ Templates:
1: River
3: Water
4: River
6: Water
6: Water

View File

@@ -9,52 +9,62 @@ Terrain:
TerrainType@Clear: # TODO: workaround for the stupid WinForms editor
Type: Clear
Color: 0, 0, 0
TargetTypes: Ground
TerrainType@Sand:
Type: Sand
AcceptsSmudgeType: SandCrater
IsWater: False
Color: 255,208,192,160
TargetTypes: Ground
TerrainType@Transition:
Type: Transition
AcceptsSmudgeType:
IsWater: False
Color: 255,207,166,100
TargetTypes: Ground
TerrainType@Rock:
Type: Rock
AcceptsSmudgeType: RockCrater
IsWater: False
Color: 255,206,140,66
TargetTypes: Ground
TerrainType@Cliff:
Type: Cliff
AcceptsSmudgeType:
IsWater: False
Color: 255,74,41,16
TargetTypes: Ground
TerrainType@Rough:
Type: Rough
AcceptsSmudgeType:
IsWater: False
Color: 255,88,116,116
CustomCursor: move-rough
TargetTypes: Ground
TerrainType@Concrete:
Type: Concrete
AcceptsSmudgeType:
IsWater: False
Color: 255,208,192,160
TargetTypes: Ground
TerrainType@Dune:
Type: Dune
AcceptsSmudgeType:
IsWater: False
Color: 255,239,222,140
TargetTypes: Ground
TerrainType@Spice:
Type: Spice
AcceptsSmudgeType:
IsWater: False
Color: 255,239,148,74
TargetTypes: Ground
TerrainType@Ice:
Type: Ice
AcceptsSmudgeType:
IsWater: True
Color: 255,255,255,255
TargetTypes: Ground
Templates:
Template@0:

View File

@@ -13,65 +13,78 @@ Terrain:
Buildable: True
AcceptsSmudgeType: Crater, Scorch
Color: 134, 95, 69
TargetTypes: Ground
TerrainType@Water:
Type: Water
IsWater: true
Buildable: False
AcceptsSmudgeType:
Color: 93, 165, 206
TargetTypes: Water
TerrainType@Road:
Type: Road
Buildable: True
AcceptsSmudgeType: Crater, Scorch
Color: 168, 123, 83
TargetTypes: Ground
TerrainType@Bridge:
Type: Bridge
AcceptsSmudgeType: Crater, Scorch
Color: 96, 96, 96
TargetTypes: Ground, Bridge
TerrainType@Rock:
Type: Rock
Buildable: False
AcceptsSmudgeType:
Color: 116, 90, 63
TargetTypes: Ground
TerrainType@Tree:
Type: Tree
Buildable: False
AcceptsSmudgeType:
Color: 28, 32, 36
TargetTypes: Ground
TerrainType@Brush:
Type: Brush
Buildable: False
AcceptsSmudgeType:
Color: 28, 32, 36
TargetTypes: Ground
TerrainType@River:
Type: River
Buildable: False
AcceptsSmudgeType:
Color: 111, 132, 139
TargetTypes: Ground
TerrainType@Rough:
Type: Rough
Buildable: False
AcceptsSmudgeType: Crater, Scorch
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Wall:
Type: Wall
Buildable: False
AcceptsSmudgeType: Crater, Scorch
Color: 208, 192, 160
TargetTypes: Ground
TerrainType@Beach:
Type: Beach
Buildable: False
AcceptsSmudgeType:
Color: 176, 156, 120
TargetTypes: Ground
TerrainType@Ore:
Type: Ore
Buildable: False
AcceptsSmudgeType: Crater, Scorch
Color: 148, 128, 96
TargetTypes: Ground
TerrainType@Gems:
Type: Gems
AcceptsSmudgeType: Crater, Scorch
Color: 132, 112, 255
TargetTypes: Ground
Templates:
Template@255:
@@ -3105,3 +3118,4 @@ Templates:
12: Rock
13: Rock
14: Rock

View File

@@ -9,47 +9,58 @@ Terrain:
Type: Clear
AcceptsSmudgeType: Crater, Scorch
Color: 0, 0, 0
TargetTypes: Ground
TerrainType@Water:
Type: Water
IsWater: true
AcceptsSmudgeType:
Color: 92, 116, 164
TargetTypes: Water
TerrainType@Road:
Type: Road
AcceptsSmudgeType: Crater, Scorch
Color: 88, 116, 116
TargetTypes: Ground
TerrainType@Rock:
Type: Rock
AcceptsSmudgeType:
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Tree:
Type: Tree
AcceptsSmudgeType:
Color: 28, 32, 36
TargetTypes: Ground
TerrainType@River:
Type: River
AcceptsSmudgeType:
Color: 92, 140, 180
TargetTypes: Ground
TerrainType@Rough:
Type: Rough
AcceptsSmudgeType: Crater, Scorch
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Wall:
Type: Wall
AcceptsSmudgeType: Crater, Scorch
Color: 208, 192, 160
TargetTypes: Ground
TerrainType@Beach:
Type: Beach
AcceptsSmudgeType:
Color: 176, 156, 120
TargetTypes: Ground
TerrainType@Ore:
Type: Ore
AcceptsSmudgeType: Crater, Scorch
Color: 148, 128, 96
TargetTypes: Ground
TerrainType@Gems:
Type: Gems
AcceptsSmudgeType: Crater, Scorch
Color: 132, 112, 255
TargetTypes: Ground
Templates:
Template@255:

View File

@@ -10,51 +10,63 @@ Terrain:
Type: Clear
AcceptsSmudgeType: Crater, Scorch
Color: 196, 196, 196
TargetTypes: Ground
TerrainType@Water:
Type: Water
IsWater: true
AcceptsSmudgeType:
Color: 92, 116, 164
TargetTypes: Water
TerrainType@Road:
Type: Road
AcceptsSmudgeType: Crater, Scorch
Color: 88, 116, 116
TargetTypes: Ground
TerrainType@Bridge:
Type: Bridge
AcceptsSmudgeType: Crater, Scorch
Color: 96, 96, 96
TargetTypes: Ground, Bridge
TerrainType@Rock:
Type: Rock
AcceptsSmudgeType:
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Tree:
Type: Tree
AcceptsSmudgeType:
Color: 28, 32, 36
TargetTypes: Ground
TerrainType@River:
Type: River
AcceptsSmudgeType:
Color: 92, 140, 180
TargetTypes: Ground
TerrainType@Rough:
Type: Rough
AcceptsSmudgeType: Crater, Scorch
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Wall:
Type: Wall
AcceptsSmudgeType: Crater, Scorch
Color: 208, 192, 160
TargetTypes: Ground
TerrainType@Beach:
Type: Beach
AcceptsSmudgeType:
Color: 176, 156, 120
TargetTypes: Ground
TerrainType@Ore:
Type: Ore
AcceptsSmudgeType: Crater, Scorch
Color: 148, 128, 96
TargetTypes: Ground
TerrainType@Gems:
Type: Gems
AcceptsSmudgeType: Crater, Scorch
Color: 132, 112, 255
TargetTypes: Ground
Templates:
Template@255:
@@ -3141,3 +3153,4 @@ Templates:
Tiles:
0: Rock
1: Rock

View File

@@ -10,51 +10,63 @@ Terrain:
Type: Clear
AcceptsSmudgeType: Crater, Scorch
Color: 40, 68, 40
TargetTypes: Ground
TerrainType@Water:
Type: Water
IsWater: true
AcceptsSmudgeType:
Color: 92, 116, 164
TargetTypes: Water
TerrainType@Road:
Type: Road
AcceptsSmudgeType: Crater, Scorch
Color: 88, 116, 116
TargetTypes: Ground
TerrainType@Bridge:
Type: Bridge
AcceptsSmudgeType: Crater, Scorch
Color: 96, 96, 96
TargetTypes: Ground, Bridge
TerrainType@Rock:
Type: Rock
AcceptsSmudgeType:
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Tree:
Type: Tree
AcceptsSmudgeType:
Color: 28, 32, 36
TargetTypes: Ground
TerrainType@River:
Type: River
AcceptsSmudgeType:
Color: 92, 140, 180
TargetTypes: Ground
TerrainType@Rough:
Type: Rough
AcceptsSmudgeType: Crater, Scorch
Color: 68, 68, 60
TargetTypes: Ground
TerrainType@Wall:
Type: Wall
AcceptsSmudgeType: Crater, Scorch
Color: 208, 192, 160
TargetTypes: Ground
TerrainType@Beach:
Type: Beach
AcceptsSmudgeType:
Color: 176, 156, 120
TargetTypes: Ground
TerrainType@Ore:
Type: Ore
AcceptsSmudgeType: Crater, Scorch
Color: 148, 128, 96
TargetTypes: Ground
TerrainType@Gems:
Type: Gems
AcceptsSmudgeType: Crater, Scorch
Color: 132, 112, 255
TargetTypes: Ground
Templates:
Template@255:
@@ -3225,7 +3237,7 @@ Templates:
0: River
1: Road
2: River
3: River
3: River
4: Road
5: River
Category: Bridge
@@ -3237,7 +3249,7 @@ Templates:
0: River
1: Road
2: River
3: River
3: River
4: Road
5: River
Category: Bridge
@@ -3249,7 +3261,7 @@ Templates:
0: River
1: Rock
2: River
3: River
3: River
4: Rock
5: River
Category: Bridge
@@ -3345,7 +3357,7 @@ Templates:
6: Rock
7: Rock
Category: Bridge
Template@530
Template@530:
Id: 530
Image: sbridge4x
Size: 5,5
@@ -3365,7 +3377,7 @@ Templates:
23: Clear
24: Road
Category: Bridge
Template@531
Template@531:
Id: 531
Image: sbridge2
Size: 2,3
@@ -3377,7 +3389,7 @@ Templates:
4: Rock
5: Rock
Category: Bridge
Template@532
Template@532:
Id: 532
Image: sbridge2h
Size: 2,3
@@ -3389,7 +3401,7 @@ Templates:
4: Rock
5: Rock
Category: Bridge
Template@533
Template@533:
Id: 533
Image: sbridge2d
Size: 2,3
@@ -3401,7 +3413,7 @@ Templates:
4: River
5: River
Category: Bridge
Template@534
Template@534:
Id: 534
Image: sbridge2x
Size: 4,4
@@ -3533,7 +3545,7 @@ Templates:
Size: 1,1
Tiles:
0: Rough
Category: Debris
Category: Debris
Template@583:
Id: 583
Image: decc
@@ -3603,4 +3615,5 @@ Templates:
3: Rough
4: Rough
5: Clear
Category: Debris
Category: Debris

View File

@@ -120,7 +120,7 @@ Maverick:
Report: MISSILE7.AUD
Burst: 2
BurstDelay: 7
ValidTargets: Ground
ValidTargets: Ground, Water
Projectile: Missile
Speed: 256
Arm: 2
@@ -277,7 +277,7 @@ Dragon:
ROF: 50
Range: 5c0
Report: MISSILE6.AUD
ValidTargets: Ground
ValidTargets: Ground, Water
Projectile: Missile
Speed: 213
Arm: 2
@@ -310,7 +310,7 @@ HellfireAG:
Report: MISSILE6.AUD
Burst: 2
BurstDelay: 10
ValidTargets: Ground
ValidTargets: Ground, Water
Projectile: Missile
Speed: 256
Arm: 2
@@ -819,7 +819,7 @@ TorpTube:
ROF: 100
Range: 9c0
Report: TORPEDO1.AUD
ValidTargets: Water, Underwater
ValidTargets: Water, Underwater, Bridge
Palette: shadow
Burst: 2
BurstDelay: 20
@@ -1247,7 +1247,7 @@ ChronoTusk:
ROF: 60
Range: 6c0
Report: MISSILE6.AUD
ValidTargets: Ground
ValidTargets: Ground, Water
Projectile: Missile
Speed: 298
Arm: 2

View File

@@ -9,6 +9,7 @@ Terrain:
Type: Clear
AcceptsSmudgeType: Crater, Scorch
Color: 0, 0, 0
TargetTypes: Ground
Templates:
Template@255:
@@ -17,3 +18,4 @@ Templates:
Size: 1,1
Tiles:
0: Clear