Merge AttackPlane and AttackHeli into AttackAircraft

This commit is contained in:
reaperrr
2018-10-19 23:22:08 +02:00
committed by Paul Chote
parent 5899636e10
commit e42094625d
10 changed files with 116 additions and 66 deletions

View File

@@ -15,28 +15,31 @@ using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
{
public class AttackPlaneInfo : AttackFrontalInfo, Requires<AircraftInfo>
public class AttackAircraftInfo : AttackFrontalInfo, Requires<AircraftInfo>
{
[Desc("Delay, in game ticks, before turning to attack.")]
[Desc("Delay, in game ticks, before non-hovering aircraft turns to attack.")]
public readonly int AttackTurnDelay = 50;
public override object Create(ActorInitializer init) { return new AttackPlane(init.Self, this); }
public override object Create(ActorInitializer init) { return new AttackAircraft(init.Self, this); }
}
public class AttackPlane : AttackFrontal
public class AttackAircraft : AttackFrontal
{
public readonly AttackPlaneInfo AttackPlaneInfo;
public readonly AttackAircraftInfo AttackAircraftInfo;
readonly AircraftInfo aircraftInfo;
public AttackPlane(Actor self, AttackPlaneInfo info)
public AttackAircraft(Actor self, AttackAircraftInfo info)
: base(self, info)
{
AttackPlaneInfo = info;
AttackAircraftInfo = info;
aircraftInfo = self.Info.TraitInfo<AircraftInfo>();
}
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove, bool forceAttack)
{
if (aircraftInfo.CanHover)
return new HeliAttack(self, newTarget);
return new FlyAttack(self, newTarget);
}

View File

@@ -1,33 +0,0 @@
#region Copyright & License Information
/*
* Copyright 2007-2018 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion
using OpenRA.Activities;
using OpenRA.Mods.Common.Activities;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
{
public class AttackHeliInfo : AttackFrontalInfo
{
public override object Create(ActorInitializer init) { return new AttackHeli(init.Self, this); }
}
public class AttackHeli : AttackFrontal
{
public AttackHeli(Actor self, AttackHeliInfo info)
: base(self, info) { }
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove, bool forceAttack)
{
return new HeliAttack(self, newTarget);
}
}
}