AttackFrontal's FacingTolerance is now in effect

This commit is contained in:
forcecore
2017-06-20 10:04:29 -05:00
committed by abcdefg30
parent d949e17b88
commit d1328212c6
3 changed files with 24 additions and 9 deletions

View File

@@ -29,6 +29,7 @@ namespace OpenRA.Mods.Common.Activities
readonly IFacing facing;
readonly IPositionable positionable;
readonly bool forceAttack;
readonly int facingTolerance;
WDist minRange;
WDist maxRange;
@@ -36,11 +37,12 @@ namespace OpenRA.Mods.Common.Activities
Activity moveActivity;
AttackStatus attackStatus = AttackStatus.UnableToAttack;
public Attack(Actor self, Target target, bool allowMovement, bool forceAttack)
public Attack(Actor self, Target target, bool allowMovement, bool forceAttack, int facingTolerance)
{
Target = target;
this.forceAttack = forceAttack;
this.facingTolerance = facingTolerance;
attackTraits = self.TraitsImplementing<AttackBase>().ToArray();
facing = self.Trait<IFacing>();
@@ -117,7 +119,7 @@ namespace OpenRA.Mods.Common.Activities
var targetedPosition = attack.GetTargetPosition(pos, Target);
var desiredFacing = (targetedPosition - pos).Yaw.Facing;
if (facing.Facing != desiredFacing)
if (!Util.FacingWithinTolerance(facing.Facing, desiredFacing, facingTolerance))
{
attackStatus |= AttackStatus.NeedsToTurn;
turnActivity = ActivityUtils.SequenceActivities(new Turn(self, desiredFacing), this);