Add a lobby option to disable Concrete in D2k.
This commit is contained in:
committed by
abcdefg30
parent
7372da150a
commit
be88c33399
@@ -25,6 +25,9 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
[Desc("Terrain types that should show the 'unsafe' footprint tile.")]
|
[Desc("Terrain types that should show the 'unsafe' footprint tile.")]
|
||||||
public readonly HashSet<string> UnsafeTerrainTypes = new HashSet<string> { "Rock" };
|
public readonly HashSet<string> UnsafeTerrainTypes = new HashSet<string> { "Rock" };
|
||||||
|
|
||||||
|
[Desc("Only check for 'unsafe' footprint tiles when you have these prerequisites.")]
|
||||||
|
public readonly string[] RequiresPrerequisites = { };
|
||||||
|
|
||||||
protected override IPlaceBuildingPreview CreatePreview(WorldRenderer wr, ActorInfo ai, TypeDictionary init)
|
protected override IPlaceBuildingPreview CreatePreview(WorldRenderer wr, ActorInfo ai, TypeDictionary init)
|
||||||
{
|
{
|
||||||
return new D2kActorPreviewPlaceBuildingPreviewPreview(wr, ai, this, init);
|
return new D2kActorPreviewPlaceBuildingPreviewPreview(wr, ai, this, init);
|
||||||
@@ -41,6 +44,7 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
class D2kActorPreviewPlaceBuildingPreviewPreview : ActorPreviewPlaceBuildingPreviewPreview
|
class D2kActorPreviewPlaceBuildingPreviewPreview : ActorPreviewPlaceBuildingPreviewPreview
|
||||||
{
|
{
|
||||||
readonly D2kActorPreviewPlaceBuildingPreviewInfo info;
|
readonly D2kActorPreviewPlaceBuildingPreviewInfo info;
|
||||||
|
readonly bool checkUnsafeTiles;
|
||||||
readonly Sprite buildOk;
|
readonly Sprite buildOk;
|
||||||
readonly Sprite buildUnsafe;
|
readonly Sprite buildUnsafe;
|
||||||
readonly Sprite buildBlocked;
|
readonly Sprite buildBlocked;
|
||||||
@@ -54,6 +58,9 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
var world = wr.World;
|
var world = wr.World;
|
||||||
var sequences = world.Map.Rules.Sequences;
|
var sequences = world.Map.Rules.Sequences;
|
||||||
|
|
||||||
|
var techTree = init.Get<OwnerInit>().Value(world).PlayerActor.Trait<TechTree>();
|
||||||
|
checkUnsafeTiles = info.RequiresPrerequisites.Any() && techTree.HasPrerequisites(info.RequiresPrerequisites);
|
||||||
|
|
||||||
buildOk = sequences.GetSequence("overlay", "build-valid").GetSprite(0);
|
buildOk = sequences.GetSequence("overlay", "build-valid").GetSprite(0);
|
||||||
buildUnsafe = sequences.GetSequence("overlay", "build-unsafe").GetSprite(0);
|
buildUnsafe = sequences.GetSequence("overlay", "build-unsafe").GetSprite(0);
|
||||||
buildBlocked = sequences.GetSequence("overlay", "build-invalid").GetSprite(0);
|
buildBlocked = sequences.GetSequence("overlay", "build-invalid").GetSprite(0);
|
||||||
@@ -76,7 +83,7 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
var tile = HasFlag(c.Value, PlaceBuildingCellType.Invalid) ? buildBlocked :
|
var tile = HasFlag(c.Value, PlaceBuildingCellType.Invalid) ? buildBlocked :
|
||||||
candidateSafeTiles.Contains(c.Key) && info.UnsafeTerrainTypes.Contains(wr.World.Map.GetTerrainInfo(c.Key).Type)
|
(checkUnsafeTiles && candidateSafeTiles.Contains(c.Key) && info.UnsafeTerrainTypes.Contains(wr.World.Map.GetTerrainInfo(c.Key).Type))
|
||||||
? buildUnsafe : buildOk;
|
? buildUnsafe : buildOk;
|
||||||
|
|
||||||
var pal = HasFlag(c.Value, PlaceBuildingCellType.LineBuild) ? linePalette : cellPalette;
|
var pal = HasFlag(c.Value, PlaceBuildingCellType.LineBuild) ? linePalette : cellPalette;
|
||||||
|
|||||||
@@ -410,6 +410,7 @@
|
|||||||
TerrainTypes: Rock, Concrete
|
TerrainTypes: Rock, Concrete
|
||||||
BuildSounds: BUILD1.WAV
|
BuildSounds: BUILD1.WAV
|
||||||
D2kActorPreviewPlaceBuildingPreview:
|
D2kActorPreviewPlaceBuildingPreview:
|
||||||
|
RequiresPrerequisites: !global-auto-concrete
|
||||||
OverridePalette: placebuilding
|
OverridePalette: placebuilding
|
||||||
RequiresBuildableArea:
|
RequiresBuildableArea:
|
||||||
AreaTypes: building
|
AreaTypes: building
|
||||||
@@ -447,12 +448,20 @@
|
|||||||
SellSounds: BUILD1.WAV
|
SellSounds: BUILD1.WAV
|
||||||
Guardable:
|
Guardable:
|
||||||
Range: 3c0
|
Range: 3c0
|
||||||
|
GrantConditionOnPrerequisite@AUTOCONCRETE:
|
||||||
|
Condition: auto-concrete
|
||||||
|
Prerequisites: global-auto-concrete
|
||||||
DamagedByTerrain:
|
DamagedByTerrain:
|
||||||
|
RequiresCondition: !auto-concrete
|
||||||
Damage: 500
|
Damage: 500
|
||||||
DamageInterval: 100
|
DamageInterval: 100
|
||||||
Terrain: Rock
|
Terrain: Rock
|
||||||
DamageThreshold: 50
|
DamageThreshold: 50
|
||||||
StartOnThreshold: true
|
StartOnThreshold: true
|
||||||
|
LaysTerrain:
|
||||||
|
RequiresCondition: auto-concrete
|
||||||
|
TerrainTypes: Rock
|
||||||
|
Template: 88
|
||||||
ThrowsShrapnel:
|
ThrowsShrapnel:
|
||||||
Weapons: Debris, Debris2, Debris3, Debris4
|
Weapons: Debris, Debris2, Debris3, Debris4
|
||||||
Pieces: 2, 5
|
Pieces: 2, 5
|
||||||
|
|||||||
@@ -98,10 +98,17 @@ Player:
|
|||||||
CashTickUpNotification: CashTickUp
|
CashTickUpNotification: CashTickUp
|
||||||
CashTickDownNotification: CashTickDown
|
CashTickDownNotification: CashTickDown
|
||||||
DeveloperMode:
|
DeveloperMode:
|
||||||
CheckboxDisplayOrder: 7
|
CheckboxDisplayOrder: 8
|
||||||
BaseAttackNotifier:
|
BaseAttackNotifier:
|
||||||
Shroud:
|
Shroud:
|
||||||
FogCheckboxDisplayOrder: 3
|
FogCheckboxDisplayOrder: 3
|
||||||
|
LobbyPrerequisiteCheckbox@AUTOCONCRETE:
|
||||||
|
ID: autoconcrete
|
||||||
|
Label: Automatic Concrete
|
||||||
|
Description: Concrete foundations are automatically created beneath buildings
|
||||||
|
Enabled: False
|
||||||
|
DisplayOrder: 7
|
||||||
|
Prerequisites: global-auto-concrete
|
||||||
FrozenActorLayer:
|
FrozenActorLayer:
|
||||||
HarvesterAttackNotifier:
|
HarvesterAttackNotifier:
|
||||||
PlayerStatistics:
|
PlayerStatistics:
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ concretea:
|
|||||||
Cost: 20
|
Cost: 20
|
||||||
Buildable:
|
Buildable:
|
||||||
BuildPaletteOrder: 110
|
BuildPaletteOrder: 110
|
||||||
|
Prerequisites: ~!global-auto-concrete
|
||||||
BuildDuration: 62
|
BuildDuration: 62
|
||||||
BuildDurationModifier: 100
|
BuildDurationModifier: 100
|
||||||
|
|
||||||
@@ -48,7 +49,7 @@ concreteb:
|
|||||||
Cost: 50
|
Cost: 50
|
||||||
Buildable:
|
Buildable:
|
||||||
BuildPaletteOrder: 210
|
BuildPaletteOrder: 210
|
||||||
Prerequisites: upgrade.conyard
|
Prerequisites: upgrade.conyard, ~!global-auto-concrete
|
||||||
BuildDuration: 94
|
BuildDuration: 94
|
||||||
BuildDurationModifier: 100
|
BuildDurationModifier: 100
|
||||||
|
|
||||||
@@ -64,8 +65,7 @@ construction_yard:
|
|||||||
Dimensions: 3,3
|
Dimensions: 3,3
|
||||||
LocalCenterOffset: 0,-512,0
|
LocalCenterOffset: 0,-512,0
|
||||||
LaysTerrain:
|
LaysTerrain:
|
||||||
TerrainTypes: Rock
|
-RequiresCondition:
|
||||||
Template: 88
|
|
||||||
WithBuildingBib:
|
WithBuildingBib:
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 96,64
|
Bounds: 96,64
|
||||||
|
|||||||
Reference in New Issue
Block a user