Fix damaged-building artwork and don't show healthbar for dead units (cnc critical-building state)
This commit is contained in:
@@ -60,7 +60,7 @@ namespace OpenRA.Mods.RA
|
||||
return inRange
|
||||
.Where(a => a != self && self.Owner.Stances[ a.Owner ] == Stance.Ally)
|
||||
.Where(a => Combat.HasAnyValidWeapons(self, Target.FromActor(a)))
|
||||
.Where(a => a.traits.Contains<Health>() && a.GetExtendedDamageState() != ExtendedDamageState.Undamaged)
|
||||
.Where(a => a.traits.Contains<Health>() && a.GetExtendedDamageState() < ExtendedDamageState.Undamaged)
|
||||
.OrderBy(a => (a.Location - self.Location).LengthSquared)
|
||||
.FirstOrDefault();
|
||||
}
|
||||
|
||||
@@ -45,13 +45,13 @@ namespace OpenRA.Mods.RA
|
||||
public string VoicePhraseForOrder(Actor self, Order order)
|
||||
{
|
||||
return (order.OrderString == "EngineerRepair"
|
||||
&& order.TargetActor.GetExtendedDamageState() != ExtendedDamageState.Undamaged) ? "Attack" : null;
|
||||
&& order.TargetActor.GetExtendedDamageState() < ExtendedDamageState.Undamaged) ? "Attack" : null;
|
||||
}
|
||||
|
||||
public void ResolveOrder(Actor self, Order order)
|
||||
{
|
||||
if (order.OrderString == "EngineerRepair"
|
||||
&& order.TargetActor.GetExtendedDamageState() != ExtendedDamageState.Undamaged)
|
||||
&& order.TargetActor.GetExtendedDamageState() < ExtendedDamageState.Undamaged)
|
||||
{
|
||||
if (self.Owner == self.World.LocalPlayer)
|
||||
self.World.AddFrameEndTask(w =>
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace OpenRA.Mods.RA.Orders
|
||||
yield break;
|
||||
|
||||
if (underCursor.Info.Traits.Contains<RepairableBuildingInfo>()
|
||||
&& underCursor.GetExtendedDamageState() != ExtendedDamageState.Undamaged)
|
||||
&& underCursor.GetExtendedDamageState() < ExtendedDamageState.Undamaged)
|
||||
yield return new Order("Repair", underCursor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA.Render
|
||||
|
||||
string GetPrefix(Actor self)
|
||||
{
|
||||
return self.GetDamageState() == DamageState.Half ? "damaged-" : "";
|
||||
return self.GetExtendedDamageState() <= ExtendedDamageState.Half ? "damaged-" : "";
|
||||
}
|
||||
|
||||
public RenderWarFactory(Actor self)
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace OpenRA.Mods.RA
|
||||
bool CanRepair(Actor self)
|
||||
{
|
||||
var li = self.traits.GetOrDefault<LimitedAmmo>();
|
||||
return (Health.ExtendedDamageState != ExtendedDamageState.Undamaged || (li != null && !li.FullAmmo()) );
|
||||
return (Health.ExtendedDamageState < ExtendedDamageState.Undamaged || (li != null && !li.FullAmmo()) );
|
||||
}
|
||||
|
||||
public string CursorForOrder(Actor self, Order order)
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
if (underCursor.Owner == self.Owner &&
|
||||
self.Info.Traits.Get<RepairableNearInfo>().Buildings.Contains( underCursor.Info.Name ) &&
|
||||
self.GetExtendedDamageState() != ExtendedDamageState.Undamaged)
|
||||
self.GetExtendedDamageState() < ExtendedDamageState.Undamaged)
|
||||
return new Order("Enter", self, underCursor);
|
||||
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user