#1108 changed BuildingInfo.WaterBound to a list of terraintypes. makes it possible to have buildings with custom terrain requirements
This commit is contained in:
@@ -19,7 +19,6 @@ namespace OpenRA.FileFormats
|
|||||||
public class TerrainTypeInfo
|
public class TerrainTypeInfo
|
||||||
{
|
{
|
||||||
public string Type;
|
public string Type;
|
||||||
public bool Buildable = true;
|
|
||||||
public bool AcceptSmudge = true;
|
public bool AcceptSmudge = true;
|
||||||
public bool IsWater = false;
|
public bool IsWater = false;
|
||||||
public Color Color;
|
public Color Color;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace OpenRA.Mods.RA.Buildings
|
|||||||
public class BuildingInfo : ITraitInfo
|
public class BuildingInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
public readonly int Power = 0;
|
public readonly int Power = 0;
|
||||||
public readonly bool WaterBound = false;
|
public readonly string[] TerrainTypes = {};
|
||||||
public readonly int Adjacent = 2;
|
public readonly int Adjacent = 2;
|
||||||
public readonly string Footprint = "x";
|
public readonly string Footprint = "x";
|
||||||
public readonly int2 Dimensions = new int2(1, 1);
|
public readonly int2 Dimensions = new int2(1, 1);
|
||||||
|
|||||||
@@ -16,20 +16,17 @@ namespace OpenRA.Mods.RA.Buildings
|
|||||||
{
|
{
|
||||||
public static class BuildingUtils
|
public static class BuildingUtils
|
||||||
{
|
{
|
||||||
public static bool IsCellBuildable(this World world, int2 a, bool waterBound)
|
public static bool IsCellBuildable(this World world, int2 a, BuildingInfo bi)
|
||||||
{
|
{
|
||||||
return world.IsCellBuildable(a, waterBound, null);
|
return world.IsCellBuildable(a, bi, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsCellBuildable(this World world, int2 a, bool waterBound, Actor toIgnore)
|
public static bool IsCellBuildable(this World world, int2 a, BuildingInfo bi, Actor toIgnore)
|
||||||
{
|
{
|
||||||
if (world.WorldActor.Trait<BuildingInfluence>().GetBuildingAt(a) != null) return false;
|
if (world.WorldActor.Trait<BuildingInfluence>().GetBuildingAt(a) != null) return false;
|
||||||
if (world.ActorMap.GetUnitsAt(a).Any(b => b != toIgnore)) return false;
|
if (world.ActorMap.GetUnitsAt(a).Any(b => b != toIgnore)) return false;
|
||||||
|
|
||||||
if (waterBound)
|
return world.Map.IsInMap(a) && bi.TerrainTypes.Contains(world.GetTerrainType(a));
|
||||||
return world.Map.IsInMap(a.X,a.Y) && world.GetTerrainInfo(a).IsWater;
|
|
||||||
|
|
||||||
return world.Map.IsInMap(a.X, a.Y) && world.GetTerrainInfo(a).Buildable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool CanPlaceBuilding(this World world, string name, BuildingInfo building, int2 topLeft, Actor toIgnore)
|
public static bool CanPlaceBuilding(this World world, string name, BuildingInfo building, int2 topLeft, Actor toIgnore)
|
||||||
@@ -37,7 +34,7 @@ namespace OpenRA.Mods.RA.Buildings
|
|||||||
var res = world.WorldActor.Trait<ResourceLayer>();
|
var res = world.WorldActor.Trait<ResourceLayer>();
|
||||||
return FootprintUtils.Tiles(name, building, topLeft).All(
|
return FootprintUtils.Tiles(name, building, topLeft).All(
|
||||||
t => world.Map.IsInMap(t.X, t.Y) && res.GetResource(t) == null &&
|
t => world.Map.IsInMap(t.X, t.Y) && res.GetResource(t) == null &&
|
||||||
world.IsCellBuildable(t, building.WaterBound, toIgnore));
|
world.IsCellBuildable(t, building, toIgnore));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IEnumerable<int2> GetLineBuildCells(World world, int2 location, string name, BuildingInfo bi)
|
public static IEnumerable<int2> GetLineBuildCells(World world, int2 location, string name, BuildingInfo bi)
|
||||||
@@ -45,7 +42,7 @@ namespace OpenRA.Mods.RA.Buildings
|
|||||||
int range = Rules.Info[name].Traits.Get<LineBuildInfo>().Range;
|
int range = Rules.Info[name].Traits.Get<LineBuildInfo>().Range;
|
||||||
var topLeft = location; // 1x1 assumption!
|
var topLeft = location; // 1x1 assumption!
|
||||||
|
|
||||||
if (world.IsCellBuildable(topLeft, bi.WaterBound))
|
if (world.IsCellBuildable(topLeft, bi))
|
||||||
yield return topLeft;
|
yield return topLeft;
|
||||||
|
|
||||||
// Start at place location, search outwards
|
// Start at place location, search outwards
|
||||||
@@ -60,7 +57,7 @@ namespace OpenRA.Mods.RA.Buildings
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
int2 cell = topLeft + i * vecs[d];
|
int2 cell = topLeft + i * vecs[d];
|
||||||
if (world.IsCellBuildable(cell, bi.WaterBound))
|
if (world.IsCellBuildable(cell, bi))
|
||||||
continue; // Cell is empty; continue search
|
continue; // Cell is empty; continue search
|
||||||
|
|
||||||
// Cell contains an actor. Is it the type we want?
|
// Cell contains an actor. Is it the type we want?
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ namespace OpenRA.Mods.RA
|
|||||||
public readonly string Name = "Unnamed Bot";
|
public readonly string Name = "Unnamed Bot";
|
||||||
public readonly int SquadSize = 8;
|
public readonly int SquadSize = 8;
|
||||||
public readonly int AssignRolesInterval = 20;
|
public readonly int AssignRolesInterval = 20;
|
||||||
|
public readonly string RallypointTestBuilding = "fact"; // temporary hack to maintain previous rallypoint behavior.
|
||||||
|
|
||||||
string IBotInfo.Name { get { return this.Name; } }
|
string IBotInfo.Name { get { return this.Name; } }
|
||||||
|
|
||||||
@@ -64,6 +65,7 @@ namespace OpenRA.Mods.RA
|
|||||||
int ticks;
|
int ticks;
|
||||||
Player p;
|
Player p;
|
||||||
PowerManager playerPower;
|
PowerManager playerPower;
|
||||||
|
readonly BuildingInfo rallypointTestBuilding; // temporary hack
|
||||||
|
|
||||||
int2 baseCenter;
|
int2 baseCenter;
|
||||||
XRandom random = new XRandom(); //we do not use the synced random number generator.
|
XRandom random = new XRandom(); //we do not use the synced random number generator.
|
||||||
@@ -76,6 +78,8 @@ namespace OpenRA.Mods.RA
|
|||||||
public HackyAI(HackyAIInfo Info)
|
public HackyAI(HackyAIInfo Info)
|
||||||
{
|
{
|
||||||
this.Info = Info;
|
this.Info = Info;
|
||||||
|
// temporary hack.
|
||||||
|
this.rallypointTestBuilding = Rules.Info[Info.RallypointTestBuilding].Traits.Get<BuildingInfo>();
|
||||||
}
|
}
|
||||||
|
|
||||||
enum BuildState
|
enum BuildState
|
||||||
@@ -342,7 +346,9 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
bool IsRallyPointValid(int2 x)
|
bool IsRallyPointValid(int2 x)
|
||||||
{
|
{
|
||||||
return world.IsCellBuildable(x, false);
|
// this is actually WRONG as soon as HackyAI is building units with a variety of
|
||||||
|
// movement capabilities. (has always been wrong)
|
||||||
|
return world.IsCellBuildable(x, rallypointTestBuilding);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetRallyPointsForNewProductionBuildings(Actor self)
|
void SetRallyPointsForNewProductionBuildings(Actor self)
|
||||||
@@ -366,7 +372,7 @@ namespace OpenRA.Mods.RA
|
|||||||
//won't work for shipyards...
|
//won't work for shipyards...
|
||||||
int2 ChooseRallyLocationNear(int2 startPos)
|
int2 ChooseRallyLocationNear(int2 startPos)
|
||||||
{
|
{
|
||||||
var possibleRallyPoints = world.FindTilesInCircle(startPos, 8).Where(x => world.IsCellBuildable(x, false)).ToArray();
|
var possibleRallyPoints = world.FindTilesInCircle(startPos, 8).Where(IsRallyPointValid).ToArray();
|
||||||
if (possibleRallyPoints.Length == 0)
|
if (possibleRallyPoints.Length == 0)
|
||||||
{
|
{
|
||||||
Game.Debug("Bot Bug: No possible rallypoint near {0}", startPos);
|
Game.Debug("Bot Bug: No possible rallypoint near {0}", startPos);
|
||||||
|
|||||||
@@ -22,13 +22,14 @@ namespace OpenRA.Mods.RA.Orders
|
|||||||
readonly Actor Producer;
|
readonly Actor Producer;
|
||||||
readonly string Building;
|
readonly string Building;
|
||||||
readonly IEnumerable<Renderable> Preview;
|
readonly IEnumerable<Renderable> Preview;
|
||||||
BuildingInfo BuildingInfo { get { return Rules.Info[ Building ].Traits.Get<BuildingInfo>(); } }
|
readonly BuildingInfo BuildingInfo;
|
||||||
Sprite buildOk, buildBlocked;
|
Sprite buildOk, buildBlocked;
|
||||||
|
|
||||||
public PlaceBuildingOrderGenerator(Actor producer, string name)
|
public PlaceBuildingOrderGenerator(Actor producer, string name)
|
||||||
{
|
{
|
||||||
Producer = producer;
|
Producer = producer;
|
||||||
Building = name;
|
Building = name;
|
||||||
|
BuildingInfo = Rules.Info[Building].Traits.Get<BuildingInfo>();
|
||||||
|
|
||||||
Preview = Rules.Info[Building].Traits.Get<RenderBuildingInfo>()
|
Preview = Rules.Info[Building].Traits.Get<RenderBuildingInfo>()
|
||||||
.RenderPreview(Rules.Info[Building], producer.Owner);
|
.RenderPreview(Rules.Info[Building], producer.Owner);
|
||||||
@@ -97,7 +98,7 @@ namespace OpenRA.Mods.RA.Orders
|
|||||||
var res = world.WorldActor.Trait<ResourceLayer>();
|
var res = world.WorldActor.Trait<ResourceLayer>();
|
||||||
var isCloseEnough = BuildingInfo.IsCloseEnoughToBase(world, world.LocalPlayer, Building, topLeft);
|
var isCloseEnough = BuildingInfo.IsCloseEnoughToBase(world, world.LocalPlayer, Building, topLeft);
|
||||||
foreach (var t in FootprintUtils.Tiles(Building, BuildingInfo, topLeft))
|
foreach (var t in FootprintUtils.Tiles(Building, BuildingInfo, topLeft))
|
||||||
cells.Add( t, isCloseEnough && world.IsCellBuildable(t, BuildingInfo.WaterBound) && res.GetResource(t) == null );
|
cells.Add( t, isCloseEnough && world.IsCellBuildable(t, BuildingInfo) && res.GetResource(t) == null );
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach( var c in cells )
|
foreach( var c in cells )
|
||||||
|
|||||||
@@ -147,7 +147,6 @@ namespace OpenRA.TilesetBuilder
|
|||||||
var terraintype = new TerrainTypeInfo()
|
var terraintype = new TerrainTypeInfo()
|
||||||
{
|
{
|
||||||
Type = "Clear",
|
Type = "Clear",
|
||||||
Buildable = true,
|
|
||||||
AcceptSmudge = true,
|
AcceptSmudge = true,
|
||||||
IsWater = false,
|
IsWater = false,
|
||||||
Color = Color.White
|
Color = Color.White
|
||||||
|
|||||||
@@ -207,6 +207,7 @@
|
|||||||
Footprint: x
|
Footprint: x
|
||||||
BuildSounds: constru2.aud, hvydoor1.aud
|
BuildSounds: constru2.aud, hvydoor1.aud
|
||||||
SellSounds: cashturn.aud
|
SellSounds: cashturn.aud
|
||||||
|
TerrainTypes: Clear,Road
|
||||||
SoundOnDamageTransition:
|
SoundOnDamageTransition:
|
||||||
DamagedSound: xplos.aud
|
DamagedSound: xplos.aud
|
||||||
DestroyedSound: xplobig4.aud
|
DestroyedSound: xplobig4.aud
|
||||||
@@ -295,6 +296,7 @@
|
|||||||
Footprint: x
|
Footprint: x
|
||||||
BuildSounds: hvydoor1.aud
|
BuildSounds: hvydoor1.aud
|
||||||
Adjacent: 7
|
Adjacent: 7
|
||||||
|
TerrainTypes: Clear,Road
|
||||||
TargetableBuilding:
|
TargetableBuilding:
|
||||||
TargetTypes: Ground
|
TargetTypes: Ground
|
||||||
Wall:
|
Wall:
|
||||||
|
|||||||
@@ -7,58 +7,47 @@ General:
|
|||||||
Terrain:
|
Terrain:
|
||||||
TerrainType@Clear:
|
TerrainType@Clear:
|
||||||
Type: Clear
|
Type: Clear
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 134, 95, 69
|
Color: 134, 95, 69
|
||||||
TerrainType@Water:
|
TerrainType@Water:
|
||||||
Type: Water
|
Type: Water
|
||||||
IsWater: true
|
IsWater: true
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 93, 165, 206
|
Color: 93, 165, 206
|
||||||
TerrainType@Road:
|
TerrainType@Road:
|
||||||
Type: Road
|
Type: Road
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 168, 123, 83
|
Color: 168, 123, 83
|
||||||
TerrainType@Rock:
|
TerrainType@Rock:
|
||||||
Type: Rock
|
Type: Rock
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 116, 90, 63
|
Color: 116, 90, 63
|
||||||
TerrainType@Tree:
|
TerrainType@Tree:
|
||||||
Type: Tree
|
Type: Tree
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 28, 32, 36
|
Color: 28, 32, 36
|
||||||
TerrainType@River:
|
TerrainType@River:
|
||||||
Type: River
|
Type: River
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 111, 132, 139
|
Color: 111, 132, 139
|
||||||
TerrainType@Rough:
|
TerrainType@Rough:
|
||||||
Type: Rough
|
Type: Rough
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Wall:
|
TerrainType@Wall:
|
||||||
Type: Wall
|
Type: Wall
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 208, 192, 160
|
Color: 208, 192, 160
|
||||||
TerrainType@Beach:
|
TerrainType@Beach:
|
||||||
Type: Beach
|
Type: Beach
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 176, 156, 120
|
Color: 176, 156, 120
|
||||||
TerrainType@Tiberium:
|
TerrainType@Tiberium:
|
||||||
Type: Tiberium
|
Type: Tiberium
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 161, 226, 28
|
Color: 161, 226, 28
|
||||||
TerrainType@BlueTiberium:
|
TerrainType@BlueTiberium:
|
||||||
Type: BlueTiberium
|
Type: BlueTiberium
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 84, 252, 252
|
Color: 84, 252, 252
|
||||||
|
|
||||||
|
|||||||
@@ -7,58 +7,47 @@ General:
|
|||||||
Terrain:
|
Terrain:
|
||||||
TerrainType@Clear:
|
TerrainType@Clear:
|
||||||
Type: Clear
|
Type: Clear
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 40, 68, 40
|
Color: 40, 68, 40
|
||||||
TerrainType@Water:
|
TerrainType@Water:
|
||||||
Type: Water
|
Type: Water
|
||||||
IsWater: true
|
IsWater: true
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 92, 116, 164
|
Color: 92, 116, 164
|
||||||
TerrainType@Road:
|
TerrainType@Road:
|
||||||
Type: Road
|
Type: Road
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 88, 116, 116
|
Color: 88, 116, 116
|
||||||
TerrainType@Rock:
|
TerrainType@Rock:
|
||||||
Type: Rock
|
Type: Rock
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Tree:
|
TerrainType@Tree:
|
||||||
Type: Tree
|
Type: Tree
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 28, 32, 36
|
Color: 28, 32, 36
|
||||||
TerrainType@River:
|
TerrainType@River:
|
||||||
Type: River
|
Type: River
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 92, 140, 180
|
Color: 92, 140, 180
|
||||||
TerrainType@Rough:
|
TerrainType@Rough:
|
||||||
Type: Rough
|
Type: Rough
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Wall:
|
TerrainType@Wall:
|
||||||
Type: Wall
|
Type: Wall
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 208, 192, 160
|
Color: 208, 192, 160
|
||||||
TerrainType@Beach:
|
TerrainType@Beach:
|
||||||
Type: Beach
|
Type: Beach
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 176, 156, 120
|
Color: 176, 156, 120
|
||||||
TerrainType@Tiberium:
|
TerrainType@Tiberium:
|
||||||
Type: Tiberium
|
Type: Tiberium
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 161, 226, 28
|
Color: 161, 226, 28
|
||||||
TerrainType@BlueTiberium:
|
TerrainType@BlueTiberium:
|
||||||
Type: BlueTiberium
|
Type: BlueTiberium
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 84, 252, 252
|
Color: 84, 252, 252
|
||||||
|
|
||||||
|
|||||||
@@ -7,58 +7,47 @@ General:
|
|||||||
Terrain:
|
Terrain:
|
||||||
TerrainType@Clear:
|
TerrainType@Clear:
|
||||||
Type: Clear
|
Type: Clear
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 40, 68, 40
|
Color: 40, 68, 40
|
||||||
TerrainType@Water:
|
TerrainType@Water:
|
||||||
Type: Water
|
Type: Water
|
||||||
IsWater: true
|
IsWater: true
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 92, 116, 164
|
Color: 92, 116, 164
|
||||||
TerrainType@Road:
|
TerrainType@Road:
|
||||||
Type: Road
|
Type: Road
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 88, 116, 116
|
Color: 88, 116, 116
|
||||||
TerrainType@Rock:
|
TerrainType@Rock:
|
||||||
Type: Rock
|
Type: Rock
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Tree:
|
TerrainType@Tree:
|
||||||
Type: Tree
|
Type: Tree
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 28, 32, 36
|
Color: 28, 32, 36
|
||||||
TerrainType@River:
|
TerrainType@River:
|
||||||
Type: River
|
Type: River
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 92, 140, 180
|
Color: 92, 140, 180
|
||||||
TerrainType@Rough:
|
TerrainType@Rough:
|
||||||
Type: Rough
|
Type: Rough
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Wall:
|
TerrainType@Wall:
|
||||||
Type: Wall
|
Type: Wall
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 208, 192, 160
|
Color: 208, 192, 160
|
||||||
TerrainType@Beach:
|
TerrainType@Beach:
|
||||||
Type: Beach
|
Type: Beach
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 176, 156, 120
|
Color: 176, 156, 120
|
||||||
TerrainType@Tiberium:
|
TerrainType@Tiberium:
|
||||||
Type: Tiberium
|
Type: Tiberium
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 161, 226, 28
|
Color: 161, 226, 28
|
||||||
TerrainType@BlueTiberium:
|
TerrainType@BlueTiberium:
|
||||||
Type: BlueTiberium
|
Type: BlueTiberium
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 84, 252, 252
|
Color: 84, 252, 252
|
||||||
|
|
||||||
|
|||||||
@@ -174,6 +174,7 @@
|
|||||||
Building:
|
Building:
|
||||||
Dimensions: 1,1
|
Dimensions: 1,1
|
||||||
Footprint: x
|
Footprint: x
|
||||||
|
TerrainTypes: Clear,Road
|
||||||
GivesBuildableArea:
|
GivesBuildableArea:
|
||||||
Capturable:
|
Capturable:
|
||||||
SoundOnDamageTransition:
|
SoundOnDamageTransition:
|
||||||
@@ -205,6 +206,7 @@
|
|||||||
Footprint: x
|
Footprint: x
|
||||||
BuildSounds: placbldg.aud
|
BuildSounds: placbldg.aud
|
||||||
Adjacent: 7
|
Adjacent: 7
|
||||||
|
TerrainTypes: Clear,Road
|
||||||
SoundOnDamageTransition:
|
SoundOnDamageTransition:
|
||||||
DamagedSound: sandbag2.aud
|
DamagedSound: sandbag2.aud
|
||||||
DestroyedSound: sandbag2.aud
|
DestroyedSound: sandbag2.aud
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ SPEN:
|
|||||||
Footprint: xxx xxx xxx
|
Footprint: xxx xxx xxx
|
||||||
Dimensions: 3,3
|
Dimensions: 3,3
|
||||||
Adjacent: 8
|
Adjacent: 8
|
||||||
WaterBound: yes
|
TerrainTypes: Water
|
||||||
-GivesBuildableArea:
|
-GivesBuildableArea:
|
||||||
Health:
|
Health:
|
||||||
HP: 1000
|
HP: 1000
|
||||||
@@ -140,7 +140,7 @@ SYRD:
|
|||||||
Footprint: xxx xxx xxx
|
Footprint: xxx xxx xxx
|
||||||
Dimensions: 3,3
|
Dimensions: 3,3
|
||||||
Adjacent: 8
|
Adjacent: 8
|
||||||
WaterBound: yes
|
TerrainTypes: Water
|
||||||
-GivesBuildableArea:
|
-GivesBuildableArea:
|
||||||
Health:
|
Health:
|
||||||
HP: 1000
|
HP: 1000
|
||||||
@@ -1046,7 +1046,7 @@ SYRF:
|
|||||||
Footprint: xxx xxx xxx
|
Footprint: xxx xxx xxx
|
||||||
Dimensions: 3,3
|
Dimensions: 3,3
|
||||||
Adjacent: 8
|
Adjacent: 8
|
||||||
WaterBound: yes
|
TerrainTypes: Water
|
||||||
-GivesBuildableArea:
|
-GivesBuildableArea:
|
||||||
Health:
|
Health:
|
||||||
HP: 30
|
HP: 30
|
||||||
@@ -1066,7 +1066,7 @@ SPEF:
|
|||||||
Footprint: xxx xxx xxx
|
Footprint: xxx xxx xxx
|
||||||
Dimensions: 3,3
|
Dimensions: 3,3
|
||||||
Adjacent: 8
|
Adjacent: 8
|
||||||
WaterBound: yes
|
TerrainTypes: Water
|
||||||
-GivesBuildableArea:
|
-GivesBuildableArea:
|
||||||
Health:
|
Health:
|
||||||
HP: 30
|
HP: 30
|
||||||
|
|||||||
@@ -7,53 +7,43 @@ General:
|
|||||||
Terrain:
|
Terrain:
|
||||||
TerrainType@Clear:
|
TerrainType@Clear:
|
||||||
Type: Clear
|
Type: Clear
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 40, 68, 40
|
Color: 40, 68, 40
|
||||||
TerrainType@Water:
|
TerrainType@Water:
|
||||||
Type: Water
|
Type: Water
|
||||||
IsWater: true
|
IsWater: true
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 92, 116, 164
|
Color: 92, 116, 164
|
||||||
TerrainType@Road:
|
TerrainType@Road:
|
||||||
Type: Road
|
Type: Road
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 88, 116, 116
|
Color: 88, 116, 116
|
||||||
TerrainType@Rock:
|
TerrainType@Rock:
|
||||||
Type: Rock
|
Type: Rock
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Tree:
|
TerrainType@Tree:
|
||||||
Type: Tree
|
Type: Tree
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 28, 32, 36
|
Color: 28, 32, 36
|
||||||
TerrainType@River:
|
TerrainType@River:
|
||||||
Type: River
|
Type: River
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 92, 140, 180
|
Color: 92, 140, 180
|
||||||
TerrainType@Rough:
|
TerrainType@Rough:
|
||||||
Type: Rough
|
Type: Rough
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Wall:
|
TerrainType@Wall:
|
||||||
Type: Wall
|
Type: Wall
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 208, 192, 160
|
Color: 208, 192, 160
|
||||||
TerrainType@Beach:
|
TerrainType@Beach:
|
||||||
Type: Beach
|
Type: Beach
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 176, 156, 120
|
Color: 176, 156, 120
|
||||||
TerrainType@Ore:
|
TerrainType@Ore:
|
||||||
Type: Ore
|
Type: Ore
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 148, 128, 96
|
Color: 148, 128, 96
|
||||||
|
|
||||||
|
|||||||
@@ -7,53 +7,43 @@ General:
|
|||||||
Terrain:
|
Terrain:
|
||||||
TerrainType@Clear:
|
TerrainType@Clear:
|
||||||
Type: Clear
|
Type: Clear
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 196, 196, 196
|
Color: 196, 196, 196
|
||||||
TerrainType@Water:
|
TerrainType@Water:
|
||||||
Type: Water
|
Type: Water
|
||||||
IsWater: true
|
IsWater: true
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 92, 116, 164
|
Color: 92, 116, 164
|
||||||
TerrainType@Road:
|
TerrainType@Road:
|
||||||
Type: Road
|
Type: Road
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 88, 116, 116
|
Color: 88, 116, 116
|
||||||
TerrainType@Rock:
|
TerrainType@Rock:
|
||||||
Type: Rock
|
Type: Rock
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Tree:
|
TerrainType@Tree:
|
||||||
Type: Tree
|
Type: Tree
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 28, 32, 36
|
Color: 28, 32, 36
|
||||||
TerrainType@River:
|
TerrainType@River:
|
||||||
Type: River
|
Type: River
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 92, 140, 180
|
Color: 92, 140, 180
|
||||||
TerrainType@Rough:
|
TerrainType@Rough:
|
||||||
Type: Rough
|
Type: Rough
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Wall:
|
TerrainType@Wall:
|
||||||
Type: Wall
|
Type: Wall
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 208, 192, 160
|
Color: 208, 192, 160
|
||||||
TerrainType@Beach:
|
TerrainType@Beach:
|
||||||
Type: Beach
|
Type: Beach
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 176, 156, 120
|
Color: 176, 156, 120
|
||||||
TerrainType@Ore:
|
TerrainType@Ore:
|
||||||
Type: Ore
|
Type: Ore
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 148, 128, 96
|
Color: 148, 128, 96
|
||||||
|
|
||||||
|
|||||||
@@ -7,53 +7,43 @@ General:
|
|||||||
Terrain:
|
Terrain:
|
||||||
TerrainType@Clear:
|
TerrainType@Clear:
|
||||||
Type: Clear
|
Type: Clear
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 40, 68, 40
|
Color: 40, 68, 40
|
||||||
TerrainType@Water:
|
TerrainType@Water:
|
||||||
Type: Water
|
Type: Water
|
||||||
IsWater: true
|
IsWater: true
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 92, 116, 164
|
Color: 92, 116, 164
|
||||||
TerrainType@Road:
|
TerrainType@Road:
|
||||||
Type: Road
|
Type: Road
|
||||||
Buildable: True
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 88, 116, 116
|
Color: 88, 116, 116
|
||||||
TerrainType@Rock:
|
TerrainType@Rock:
|
||||||
Type: Rock
|
Type: Rock
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Tree:
|
TerrainType@Tree:
|
||||||
Type: Tree
|
Type: Tree
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 28, 32, 36
|
Color: 28, 32, 36
|
||||||
TerrainType@River:
|
TerrainType@River:
|
||||||
Type: River
|
Type: River
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 92, 140, 180
|
Color: 92, 140, 180
|
||||||
TerrainType@Rough:
|
TerrainType@Rough:
|
||||||
Type: Rough
|
Type: Rough
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 68, 68, 60
|
Color: 68, 68, 60
|
||||||
TerrainType@Wall:
|
TerrainType@Wall:
|
||||||
Type: Wall
|
Type: Wall
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 208, 192, 160
|
Color: 208, 192, 160
|
||||||
TerrainType@Beach:
|
TerrainType@Beach:
|
||||||
Type: Beach
|
Type: Beach
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: False
|
AcceptSmudge: False
|
||||||
Color: 176, 156, 120
|
Color: 176, 156, 120
|
||||||
TerrainType@Ore:
|
TerrainType@Ore:
|
||||||
Type: Ore
|
Type: Ore
|
||||||
Buildable: False
|
|
||||||
AcceptSmudge: True
|
AcceptSmudge: True
|
||||||
Color: 148, 128, 96
|
Color: 148, 128, 96
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user