Make EngineerRepairable conditional.
This commit is contained in:
committed by
atlimit8
parent
9e534f3804
commit
101843fbb7
@@ -108,11 +108,11 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
public override bool CanTargetActor(Actor self, Actor target, TargetModifiers modifiers, ref string cursor)
|
||||
{
|
||||
var engineerRepairable = target.Info.TraitInfoOrDefault<EngineerRepairableInfo>();
|
||||
if (engineerRepairable == null)
|
||||
var engineerRepairable = target.TraitOrDefault<EngineerRepairable>();
|
||||
if (engineerRepairable == null || engineerRepairable.IsTraitDisabled)
|
||||
return false;
|
||||
|
||||
if (!engineerRepairable.Types.IsEmpty && !engineerRepairable.Types.Overlaps(info.Types))
|
||||
if (!engineerRepairable.Info.Types.IsEmpty && !engineerRepairable.Info.Types.Overlaps(info.Types))
|
||||
return false;
|
||||
|
||||
if (!info.ValidStances.HasStance(self.Owner.Stances[target.Owner]))
|
||||
@@ -126,6 +126,10 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
public override bool CanTargetFrozenActor(Actor self, FrozenActor target, TargetModifiers modifiers, ref string cursor)
|
||||
{
|
||||
// TODO: FrozenActors don't yet have a way of caching conditions, so we can't filter disabled traits
|
||||
// This therefore assumes that all EngineerRepairable traits are enabled, which is probably wrong.
|
||||
// Actors with FrozenUnderFog should therefore not disable the EngineerRepairable trait if
|
||||
// ValidStances includes Enemy actors.
|
||||
var engineerRepairable = target.Info.TraitInfoOrDefault<EngineerRepairableInfo>();
|
||||
if (engineerRepairable == null)
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user