Merge pull request #6488 from jonathanmiles/support-power-targetability

AI no longer calls support power on things it can't target
This commit is contained in:
Paul Chote
2014-09-27 23:13:14 +12:00

View File

@@ -74,7 +74,7 @@ namespace OpenRA.Mods.RA
var checkActors = world.FindActorsInCircle(pos, radiusToUse);
foreach (var scrutinized in checkActors)
answer += consideration.GetAttractiveness(scrutinized, firedBy.Stances[scrutinized.Owner]);
answer += consideration.GetAttractiveness(scrutinized, firedBy.Stances[scrutinized.Owner], firedBy);
}
return answer;
@@ -87,7 +87,7 @@ namespace OpenRA.Mods.RA
foreach (var consideration in Considerations)
foreach (var scrutinized in actors)
answer += consideration.GetAttractiveness(scrutinized, firedBy.Stances[scrutinized.Owner]);
answer += consideration.GetAttractiveness(scrutinized, firedBy.Stances[scrutinized.Owner], firedBy);
return answer;
}
@@ -120,7 +120,7 @@ namespace OpenRA.Mods.RA
}
///<summary>Evaluates a single actor according to the rules defined in this consideration</summary>
public int GetAttractiveness(Actor a, Stance stance)
public int GetAttractiveness(Actor a, Stance stance, Player firedBy)
{
if (stance != Against)
return 0;
@@ -132,6 +132,9 @@ namespace OpenRA.Mods.RA
if (targetable == null)
return 0;
if (!targetable.TargetableBy(a, firedBy.PlayerActor))
return 0;
if (Types.Intersect(targetable.TargetTypes).Any())
{
switch (TargetMetric)