Per-terrain color validation.

This commit is contained in:
Paul Chote
2016-01-25 22:38:37 +00:00
parent cc4ca839d9
commit dd963b75f5
14 changed files with 49 additions and 2 deletions

View File

@@ -53,6 +53,7 @@ namespace OpenRA
public readonly HashSet<string> AcceptsSmudgeType = new HashSet<string>();
public readonly bool IsWater = false; // TODO: Remove this
public readonly Color Color;
public readonly bool RestrictPlayerColor = false;
public readonly string CustomCursor;
// Private default ctor for serialization comparison

View File

@@ -291,7 +291,7 @@ namespace OpenRA.Mods.Common.Server
// Pick a random color for the bot
var validator = server.ModData.Manifest.Get<ColorValidator>();
var tileset = server.Map.Rules.TileSets[server.Map.Tileset];
var terrainColors = tileset.TerrainInfo.Select(ti => ti.Color);
var terrainColors = tileset.TerrainInfo.Where(ti => ti.RestrictPlayerColor).Select(ti => ti.Color);
var playerColors = server.LobbyInfo.Clients.Select(c => c.Color.RGB)
.Concat(server.MapPlayers.Players.Values.Select(p => p.Color.RGB));
bot.Color = bot.PreferredColor = validator.RandomValidColor(server.Random, terrainColors, playerColors);
@@ -975,7 +975,7 @@ namespace OpenRA.Mods.Common.Server
};
var tileset = server.Map.Rules.TileSets[server.Map.Tileset];
var terrainColors = tileset.TerrainInfo.Select(ti => ti.Color).ToList();
var terrainColors = tileset.TerrainInfo.Where(ti => ti.RestrictPlayerColor).Select(ti => ti.Color).ToList();
var playerColors = server.LobbyInfo.Clients.Where(c => c.Index != playerIndex).Select(c => c.Color.RGB)
.Concat(server.MapPlayers.Players.Values.Select(p => p.Color.RGB)).ToList();

View File

@@ -14,11 +14,13 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 54FCFC
RestrictPlayerColor: true
TerrainType@Clear:
Type: Clear
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 865F45
RestrictPlayerColor: true
TerrainType@River:
Type: River
TargetTypes: Ground
@@ -42,6 +44,7 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: A1E21C
RestrictPlayerColor: true
TerrainType@Tree:
Type: Tree
TargetTypes: Ground
@@ -56,6 +59,7 @@ Terrain:
TargetTypes: Water
IsWater: True
Color: 5DA5CE
RestrictPlayerColor: true
Templates:
Template@255:

View File

@@ -14,11 +14,13 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 54FCFC
RestrictPlayerColor: true
TerrainType@Clear:
Type: Clear
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 285C30
RestrictPlayerColor: true
TerrainType@River:
Type: River
TargetTypes: Ground
@@ -42,6 +44,7 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: A1E21C
RestrictPlayerColor: true
TerrainType@Tree:
Type: Tree
TargetTypes: Ground
@@ -56,6 +59,7 @@ Terrain:
TargetTypes: Water
IsWater: True
Color: 5C74A4
RestrictPlayerColor: true
Templates:
Template@255:

View File

@@ -14,11 +14,13 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 54FCFC
RestrictPlayerColor: true
TerrainType@Clear:
Type: Clear
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: C4C4C4
RestrictPlayerColor: true
TerrainType@River:
Type: River
TargetTypes: Ground
@@ -42,6 +44,7 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: A1E21C
RestrictPlayerColor: true
TerrainType@Tree:
Type: Tree
TargetTypes: Ground
@@ -56,6 +59,7 @@ Terrain:
TargetTypes: Water
IsWater: True
Color: 5C74A4
RestrictPlayerColor: true
Templates:
Template@255:

View File

@@ -14,11 +14,13 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 54FCFC
RestrictPlayerColor: true
TerrainType@Clear:
Type: Clear
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 284428
RestrictPlayerColor: true
TerrainType@River:
Type: River
TargetTypes: Ground
@@ -42,6 +44,7 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: A1E21C
RestrictPlayerColor: true
TerrainType@Tree:
Type: Tree
TargetTypes: Ground
@@ -56,6 +59,7 @@ Terrain:
TargetTypes: Water
IsWater: True
Color: 5C74A4
RestrictPlayerColor: true
Templates:
Template@255:

View File

@@ -14,11 +14,13 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 54FCFC
RestrictPlayerColor: true
TerrainType@Clear:
Type: Clear
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 284428
RestrictPlayerColor: true
TerrainType@River:
Type: River
TargetTypes: Ground
@@ -42,6 +44,7 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: A1E21C
RestrictPlayerColor: true
TerrainType@Tree:
Type: Tree
TargetTypes: Ground
@@ -56,6 +59,7 @@ Terrain:
TargetTypes: Water
IsWater: True
Color: 5C74A4
RestrictPlayerColor: true
Templates:
Template@255:

View File

@@ -33,6 +33,7 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: RockCrater
Color: CE8C42
RestrictPlayerColor: true
TerrainType@Rough:
Type: Rough
TargetTypes: Ground
@@ -43,10 +44,12 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: SandCrater
Color: D0C0A0
RestrictPlayerColor: true
TerrainType@Spice:
Type: Spice
TargetTypes: Ground
Color: EF944A
RestrictPlayerColor: true
TerrainType@Transition:
Type: Transition
TargetTypes: Ground

View File

@@ -24,16 +24,19 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 865F45
RestrictPlayerColor: true
TerrainType@Gems:
Type: Gems
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 8470FF
RestrictPlayerColor: true
TerrainType@Ore:
Type: Ore
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 948060
RestrictPlayerColor: true
TerrainType@River:
Type: River
TargetTypes: Ground
@@ -66,6 +69,7 @@ Terrain:
TargetTypes: Water
IsWater: True
Color: 5DA5CE
RestrictPlayerColor: true
Templates:
Template@255:

View File

@@ -19,11 +19,13 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 8470FF
RestrictPlayerColor: true
TerrainType@Ore:
Type: Ore
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 948060
RestrictPlayerColor: true
TerrainType@Tree:
Type: Tree
TargetTypes: Ground
@@ -32,6 +34,7 @@ Terrain:
Type: Wall
TargetTypes: Ground
Color: D0C0A0
RestrictPlayerColor: true
Templates:
Template@255:

View File

@@ -19,16 +19,19 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: C4C4C4
RestrictPlayerColor: true
TerrainType@Gems:
Type: Gems
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 8470FF
RestrictPlayerColor: true
TerrainType@Ore:
Type: Ore
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 948060
RestrictPlayerColor: true
TerrainType@River:
Type: River
TargetTypes: Ground
@@ -61,6 +64,7 @@ Terrain:
TargetTypes: Water
IsWater: True
Color: 5C74A4
RestrictPlayerColor: true
Templates:
Template@255:

View File

@@ -19,16 +19,19 @@ Terrain:
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 284428
RestrictPlayerColor: true
TerrainType@Gems:
Type: Gems
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 8470FF
RestrictPlayerColor: true
TerrainType@Ore:
Type: Ore
TargetTypes: Ground
AcceptsSmudgeType: Crater, Scorch
Color: 948060
RestrictPlayerColor: true
TerrainType@River:
Type: River
TargetTypes: Ground
@@ -61,6 +64,7 @@ Terrain:
TargetTypes: Water
IsWater: True
Color: 5C74A4
RestrictPlayerColor: true
Templates:
Template@255:

View File

@@ -13,6 +13,7 @@ Terrain:
AcceptsSmudgeType: SmallCrater, MediumCrater, LargeCrater, SmallScorch, MediumScorch, LargeScorch
Color: C7C9FA
TargetTypes: Ground
RestrictPlayerColor: true
TerrainType@Road:
Type: Road
Color: 2D2B28
@@ -30,6 +31,7 @@ Terrain:
Color: 3D4148
TargetTypes: Water
IsWater: True
RestrictPlayerColor: true
TerrainType@DirtRoad:
Type: DirtRoad
Color: 82838F
@@ -47,11 +49,13 @@ Terrain:
AcceptsSmudgeType: SmallCrater, MediumCrater, LargeCrater, SmallScorch, MediumScorch, LargeScorch
Color: 009000
TargetTypes: Ground
RestrictPlayerColor: true
TerrainType@BlueTiberium:
Type: BlueTiberium
AcceptsSmudgeType: SmallCrater, MediumCrater, LargeCrater, SmallScorch, MediumScorch, LargeScorch
Color: 202080
TargetTypes: Ground
RestrictPlayerColor: true
TerrainType@Veins:
Type: Veins
Color: 000000

View File

@@ -13,6 +13,7 @@ Terrain:
AcceptsSmudgeType: SmallCrater, MediumCrater, LargeCrater, SmallScorch, MediumScorch, LargeScorch
Color: 745537
TargetTypes: Ground
RestrictPlayerColor: true
TerrainType@Road:
Type: Road
Color: 745537
@@ -30,6 +31,7 @@ Terrain:
Color: 745537
TargetTypes: Water
IsWater: True
RestrictPlayerColor: true
TerrainType@DirtRoad:
Type: DirtRoad
Color: 745537
@@ -47,11 +49,13 @@ Terrain:
AcceptsSmudgeType: SmallCrater, MediumCrater, LargeCrater, SmallScorch, MediumScorch, LargeScorch
Color: 009000
TargetTypes: Ground
RestrictPlayerColor: true
TerrainType@BlueTiberium:
Type: BlueTiberium
AcceptsSmudgeType: SmallCrater, MediumCrater, LargeCrater, SmallScorch, MediumScorch, LargeScorch
Color: 202080
TargetTypes: Ground
RestrictPlayerColor: true
TerrainType@Veins:
Type: Veins
Color: 000000