Use heightmap to get correct groundlevel, fix additional behavior

This commit is contained in:
teees
2015-12-03 10:13:18 +01:00
parent a673aee547
commit 9dba85def5
2 changed files with 20 additions and 6 deletions

View File

@@ -14,7 +14,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
{
public class AttackPlaneInfo : AttackFrontalInfo
public class AttackPlaneInfo : AttackFrontalInfo, Requires<AircraftInfo>
{
[Desc("Delay, in game ticks, before turning to attack.")]
public readonly int AttackTurnDelay = 50;
@@ -25,11 +25,13 @@ namespace OpenRA.Mods.Common.Traits
public class AttackPlane : AttackFrontal
{
public readonly AttackPlaneInfo AttackPlaneInfo;
readonly AircraftInfo aircraftInfo;
public AttackPlane(Actor self, AttackPlaneInfo info)
: base(self, info)
{
AttackPlaneInfo = info;
aircraftInfo = self.Info.TraitInfo<AircraftInfo>();
}
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove, bool forceAttack)
@@ -40,7 +42,9 @@ namespace OpenRA.Mods.Common.Traits
protected override bool CanAttack(Actor self, Target target)
{
// Don't fire while landed or when outside the map.
return base.CanAttack(self, target) && self.CenterPosition.Z > 0 && self.World.Map.Contains(self.Location);
return base.CanAttack(self, target)
&& self.World.Map.DistanceAboveTerrain(self.CenterPosition).Length >= aircraftInfo.MinAirborneAltitude
&& self.World.Map.Contains(self.Location);
}
}
}