Rename ExtendedDamageState -> DamageState
This commit is contained in:
@@ -78,7 +78,7 @@ namespace OpenRA.Traits
|
|||||||
|
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
{
|
{
|
||||||
self.World.WorldActor.traits.Get<ScreenShaker>().AddEffect(10, self.CenterLocation, 1);
|
self.World.WorldActor.traits.Get<ScreenShaker>().AddEffect(10, self.CenterLocation, 1);
|
||||||
Sound.Play(Info.DestroyedSound, self.CenterLocation);
|
Sound.Play(Info.DestroyedSound, self.CenterLocation);
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace OpenRA.Traits
|
|||||||
public virtual object Create(ActorInitializer init) { return new Health(init, this); }
|
public virtual object Create(ActorInitializer init) { return new Health(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ExtendedDamageState { Dead, Quarter, Half, ThreeQuarter, Normal, Undamaged };
|
public enum DamageState { Dead, Quarter, Half, ThreeQuarter, Normal, Undamaged };
|
||||||
|
|
||||||
public class Health
|
public class Health
|
||||||
{
|
{
|
||||||
@@ -53,26 +53,26 @@ namespace OpenRA.Traits
|
|||||||
public bool IsDead { get { return hp <= 0; } }
|
public bool IsDead { get { return hp <= 0; } }
|
||||||
public bool RemoveOnDeath = true;
|
public bool RemoveOnDeath = true;
|
||||||
|
|
||||||
public ExtendedDamageState ExtendedDamageState
|
public DamageState DamageState
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (hp <= 0)
|
if (hp <= 0)
|
||||||
return ExtendedDamageState.Dead;
|
return DamageState.Dead;
|
||||||
|
|
||||||
if (hp < MaxHP * 0.25f)
|
if (hp < MaxHP * 0.25f)
|
||||||
return ExtendedDamageState.Quarter;
|
return DamageState.Quarter;
|
||||||
|
|
||||||
if (hp < MaxHP * 0.5f)
|
if (hp < MaxHP * 0.5f)
|
||||||
return ExtendedDamageState.Half;
|
return DamageState.Half;
|
||||||
|
|
||||||
if (hp < MaxHP * 0.75f)
|
if (hp < MaxHP * 0.75f)
|
||||||
return ExtendedDamageState.ThreeQuarter;
|
return DamageState.ThreeQuarter;
|
||||||
|
|
||||||
if (hp == MaxHP)
|
if (hp == MaxHP)
|
||||||
return ExtendedDamageState.Undamaged;
|
return DamageState.Undamaged;
|
||||||
|
|
||||||
return ExtendedDamageState.Normal;
|
return DamageState.Normal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ namespace OpenRA.Traits
|
|||||||
{
|
{
|
||||||
if (IsDead) return; /* overkill! don't count extra hits as more kills! */
|
if (IsDead) return; /* overkill! don't count extra hits as more kills! */
|
||||||
|
|
||||||
var oldExtendedState = this.ExtendedDamageState;
|
var oldState = this.DamageState;
|
||||||
|
|
||||||
/* apply the damage modifiers, if we have any. */
|
/* apply the damage modifiers, if we have any. */
|
||||||
var modifier = (float)self.traits.WithInterface<IDamageModifier>()
|
var modifier = (float)self.traits.WithInterface<IDamageModifier>()
|
||||||
@@ -109,8 +109,8 @@ namespace OpenRA.Traits
|
|||||||
{
|
{
|
||||||
Attacker = attacker,
|
Attacker = attacker,
|
||||||
Damage = damage,
|
Damage = damage,
|
||||||
ExtendedDamageState = this.ExtendedDamageState,
|
DamageState = this.DamageState,
|
||||||
ExtendedDamageStateChanged = this.ExtendedDamageState != oldExtendedState,
|
DamageStateChanged = this.DamageState != oldState,
|
||||||
Warhead = warhead
|
Warhead = warhead
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -124,10 +124,10 @@ namespace OpenRA.Traits
|
|||||||
return (health == null) ? true : health.IsDead;
|
return (health == null) ? true : health.IsDead;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ExtendedDamageState GetExtendedDamageState(this Actor self)
|
public static DamageState GetDamageState(this Actor self)
|
||||||
{
|
{
|
||||||
var health = self.traits.GetOrDefault<Health>();
|
var health = self.traits.GetOrDefault<Health>();
|
||||||
return (health == null) ? ExtendedDamageState.Undamaged : health.ExtendedDamageState;
|
return (health == null) ? DamageState.Undamaged : health.DamageState;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InflictDamage(this Actor self, Actor attacker, int damage, WarheadInfo warhead)
|
public static void InflictDamage(this Actor self, Actor attacker, int damage, WarheadInfo warhead)
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ namespace OpenRA.Traits
|
|||||||
|
|
||||||
protected virtual string GetPrefix(Actor self)
|
protected virtual string GetPrefix(Actor self)
|
||||||
{
|
{
|
||||||
return self.GetExtendedDamageState() <= ExtendedDamageState.Half ? "damaged-" : "";
|
return self.GetDamageState() <= DamageState.Half ? "damaged-" : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayCustomAnim(Actor self, string name)
|
public void PlayCustomAnim(Actor self, string name)
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ namespace OpenRA.Traits
|
|||||||
|
|
||||||
self.World.AddFrameEndTask(w => w.Add(new RepairIndicator(self)));
|
self.World.AddFrameEndTask(w => w.Add(new RepairIndicator(self)));
|
||||||
self.InflictDamage(self, -hpToRepair, null);
|
self.InflictDamage(self, -hpToRepair, null);
|
||||||
if (Health.ExtendedDamageState == ExtendedDamageState.Undamaged)
|
if (Health.DamageState == DamageState.Undamaged)
|
||||||
{
|
{
|
||||||
isRepairing = false;
|
isRepairing = false;
|
||||||
return;
|
return;
|
||||||
|
|||||||
4
OpenRA.Game/Traits/Selectable.cs
Executable file → Normal file
4
OpenRA.Game/Traits/Selectable.cs
Executable file → Normal file
@@ -69,8 +69,8 @@ namespace OpenRA.Traits
|
|||||||
Game.Renderer.LineRenderer.DrawLine(xy + new float2(0, -2), xy + new float2(0, -4), c, c);
|
Game.Renderer.LineRenderer.DrawLine(xy + new float2(0, -2), xy + new float2(0, -4), c, c);
|
||||||
Game.Renderer.LineRenderer.DrawLine(Xy + new float2(0, -2), Xy + new float2(0, -4), c, c);
|
Game.Renderer.LineRenderer.DrawLine(Xy + new float2(0, -2), Xy + new float2(0, -4), c, c);
|
||||||
|
|
||||||
var healthColor = (health.ExtendedDamageState == ExtendedDamageState.Quarter) ? Color.Red :
|
var healthColor = (health.DamageState == DamageState.Quarter) ? Color.Red :
|
||||||
(health.ExtendedDamageState == ExtendedDamageState.Half) ? Color.Yellow : Color.LimeGreen;
|
(health.DamageState == DamageState.Half) ? Color.Yellow : Color.LimeGreen;
|
||||||
|
|
||||||
var healthColor2 = Color.FromArgb(
|
var healthColor2 = Color.FromArgb(
|
||||||
255,
|
255,
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ namespace OpenRA.Traits
|
|||||||
public Actor Attacker;
|
public Actor Attacker;
|
||||||
public WarheadInfo Warhead;
|
public WarheadInfo Warhead;
|
||||||
public int Damage;
|
public int Damage;
|
||||||
public ExtendedDamageState ExtendedDamageState;
|
public DamageState DamageState;
|
||||||
public bool ExtendedDamageStateChanged;
|
public bool DamageStateChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ITick { void Tick(Actor self); }
|
public interface ITick { void Tick(Actor self); }
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace OpenRA.Traits
|
|||||||
|
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
if (self.Owner == self.World.LocalPlayer)
|
if (self.Owner == self.World.LocalPlayer)
|
||||||
Sound.PlayVoice("Lost", self);
|
Sound.PlayVoice("Lost", self);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace OpenRA.Mods.Cnc
|
|||||||
|
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageStateChanged && e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageStateChanged && e.DamageState == DamageState.Dead)
|
||||||
{
|
{
|
||||||
self.traits.Get<RenderSimple>().anim.PlayRepeating("critical-idle");
|
self.traits.Get<RenderSimple>().anim.PlayRepeating("critical-idle");
|
||||||
self.World.AddFrameEndTask(
|
self.World.AddFrameEndTask(
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ namespace OpenRA.Mods.Cnc
|
|||||||
|
|
||||||
public void Damaged (Actor self, AttackInfo e)
|
public void Damaged (Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
CancelDock(self, dockedHarv);
|
CancelDock(self, dockedHarv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.InflictDamage(self, -hpToRepair, null);
|
self.InflictDamage(self, -hpToRepair, null);
|
||||||
if (health.ExtendedDamageState == ExtendedDamageState.Undamaged)
|
if (health.DamageState == DamageState.Undamaged)
|
||||||
return NextActivity;
|
return NextActivity;
|
||||||
|
|
||||||
if (host != null)
|
if (host != null)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
{
|
{
|
||||||
if (target == null || target.IsDead()) return NextActivity;
|
if (target == null || target.IsDead()) return NextActivity;
|
||||||
var health = target.traits.Get<Health>();
|
var health = target.traits.Get<Health>();
|
||||||
if (health.ExtendedDamageState == ExtendedDamageState.Undamaged)
|
if (health.DamageState == DamageState.Undamaged)
|
||||||
return NextActivity;
|
return NextActivity;
|
||||||
|
|
||||||
target.InflictDamage(self, -health.MaxHP, null);
|
target.InflictDamage(self, -health.MaxHP, null);
|
||||||
|
|||||||
2
OpenRA.Mods.RA/AttackBase.cs
Executable file → Normal file
2
OpenRA.Mods.RA/AttackBase.cs
Executable file → Normal file
@@ -223,7 +223,7 @@ namespace OpenRA.Mods.RA
|
|||||||
if (self.Owner.Stances[underCursor.Owner] != Stance.Ally && !forceFire) return null;
|
if (self.Owner.Stances[underCursor.Owner] != Stance.Ally && !forceFire) return null;
|
||||||
|
|
||||||
// don't allow healing of fully-healed stuff!
|
// don't allow healing of fully-healed stuff!
|
||||||
if (underCursor.GetExtendedDamageState() == ExtendedDamageState.Undamaged) return null;
|
if (underCursor.GetDamageState() == DamageState.Undamaged) return null;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace OpenRA.Mods.RA
|
|||||||
return true; // wandered off faster than we could follow
|
return true; // wandered off faster than we could follow
|
||||||
|
|
||||||
if (attack.target.IsActor
|
if (attack.target.IsActor
|
||||||
&& attack.target.Actor.GetExtendedDamageState() == ExtendedDamageState.Undamaged)
|
&& attack.target.Actor.GetDamageState() == DamageState.Undamaged)
|
||||||
return true; // fully healed
|
return true; // fully healed
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -60,7 +60,7 @@ namespace OpenRA.Mods.RA
|
|||||||
return inRange
|
return inRange
|
||||||
.Where(a => a != self && self.Owner.Stances[ a.Owner ] == Stance.Ally)
|
.Where(a => a != self && self.Owner.Stances[ a.Owner ] == Stance.Ally)
|
||||||
.Where(a => !a.IsDead())
|
.Where(a => !a.IsDead())
|
||||||
.Where(a => a.traits.Contains<Health>() && a.GetExtendedDamageState() < ExtendedDamageState.Undamaged)
|
.Where(a => a.traits.Contains<Health>() && a.GetDamageState() < DamageState.Undamaged)
|
||||||
.Where(a => Combat.HasAnyValidWeapons(self, Target.FromActor(a)))
|
.Where(a => Combat.HasAnyValidWeapons(self, Target.FromActor(a)))
|
||||||
.OrderBy(a => (a.Location - self.Location).LengthSquared)
|
.OrderBy(a => (a.Location - self.Location).LengthSquared)
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
|
|||||||
@@ -160,18 +160,18 @@ namespace OpenRA.Mods.RA
|
|||||||
void UpdateState()
|
void UpdateState()
|
||||||
{
|
{
|
||||||
// If this is a long bridge next to a destroyed shore piece, we need die to give clean edges to the break
|
// If this is a long bridge next to a destroyed shore piece, we need die to give clean edges to the break
|
||||||
if (Info.Long && Health.ExtendedDamageState != ExtendedDamageState.Dead &&
|
if (Info.Long && Health.DamageState != DamageState.Dead &&
|
||||||
((southNeighbour != null && Info.ShorePieces.Contains(southNeighbour.Type) && !IsIntact(southNeighbour)) ||
|
((southNeighbour != null && Info.ShorePieces.Contains(southNeighbour.Type) && !IsIntact(southNeighbour)) ||
|
||||||
(northNeighbour != null && Info.ShorePieces.Contains(northNeighbour.Type) && !IsIntact(northNeighbour))))
|
(northNeighbour != null && Info.ShorePieces.Contains(northNeighbour.Type) && !IsIntact(northNeighbour))))
|
||||||
{
|
{
|
||||||
self.Kill(self); // this changes the damagestate
|
self.Kill(self); // this changes the damagestate
|
||||||
}
|
}
|
||||||
|
|
||||||
var ds = Health.ExtendedDamageState;
|
var ds = Health.DamageState;
|
||||||
currentTemplate = (ds == ExtendedDamageState.Half && Info.DamagedTemplate > 0) ? Info.DamagedTemplate :
|
currentTemplate = (ds == DamageState.Half && Info.DamagedTemplate > 0) ? Info.DamagedTemplate :
|
||||||
(ds == ExtendedDamageState.Dead && Info.DestroyedTemplate > 0) ? Info.DestroyedTemplate : Info.Template;
|
(ds == DamageState.Dead && Info.DestroyedTemplate > 0) ? Info.DestroyedTemplate : Info.Template;
|
||||||
|
|
||||||
if (Info.Long && ds == ExtendedDamageState.Dead)
|
if (Info.Long && ds == DamageState.Dead)
|
||||||
{
|
{
|
||||||
// Long bridges have custom art for multiple segments being destroyed
|
// Long bridges have custom art for multiple segments being destroyed
|
||||||
bool waterToSouth = !IsIntact(southNeighbour);
|
bool waterToSouth = !IsIntact(southNeighbour);
|
||||||
@@ -185,7 +185,7 @@ namespace OpenRA.Mods.RA
|
|||||||
currentTemplate = Info.DestroyedPlusSouthTemplate;
|
currentTemplate = Info.DestroyedPlusSouthTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ds == ExtendedDamageState.Dead && !dead)
|
if (ds == DamageState.Dead && !dead)
|
||||||
{
|
{
|
||||||
dead = true;
|
dead = true;
|
||||||
KillUnitsOnBridge();
|
KillUnitsOnBridge();
|
||||||
@@ -198,7 +198,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageStateChanged)
|
if (e.DamageStateChanged)
|
||||||
{
|
{
|
||||||
UpdateState();
|
UpdateState();
|
||||||
if (northNeighbour != null) northNeighbour.UpdateState();
|
if (northNeighbour != null) northNeighbour.UpdateState();
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA
|
|||||||
// Fire primary on death
|
// Fire primary on death
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
Detonate(self, e.Attacker);
|
Detonate(self, e.Attacker);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageStateChanged && e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageStateChanged && e.DamageState == DamageState.Dead)
|
||||||
Emit(self);
|
Emit(self);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,19 +39,19 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
if (order.OrderString != "EngineerRepair") return null;
|
if (order.OrderString != "EngineerRepair") return null;
|
||||||
if (order.TargetActor == null) return null;
|
if (order.TargetActor == null) return null;
|
||||||
return (order.TargetActor.GetExtendedDamageState() == ExtendedDamageState.Undamaged) ? "goldwrench-blocked" : "goldwrench";
|
return (order.TargetActor.GetDamageState() == DamageState.Undamaged) ? "goldwrench-blocked" : "goldwrench";
|
||||||
}
|
}
|
||||||
|
|
||||||
public string VoicePhraseForOrder(Actor self, Order order)
|
public string VoicePhraseForOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
return (order.OrderString == "EngineerRepair"
|
return (order.OrderString == "EngineerRepair"
|
||||||
&& order.TargetActor.GetExtendedDamageState() < ExtendedDamageState.Undamaged) ? "Attack" : null;
|
&& order.TargetActor.GetDamageState() < DamageState.Undamaged) ? "Attack" : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResolveOrder(Actor self, Order order)
|
public void ResolveOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
if (order.OrderString == "EngineerRepair"
|
if (order.OrderString == "EngineerRepair"
|
||||||
&& order.TargetActor.GetExtendedDamageState() < ExtendedDamageState.Undamaged)
|
&& order.TargetActor.GetDamageState() < DamageState.Undamaged)
|
||||||
{
|
{
|
||||||
if (self.Owner == self.World.LocalPlayer)
|
if (self.Owner == self.World.LocalPlayer)
|
||||||
self.World.AddFrameEndTask(w =>
|
self.World.AddFrameEndTask(w =>
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
{
|
{
|
||||||
var weapon = ChooseWeaponForExplosion(self);
|
var weapon = ChooseWeaponForExplosion(self);
|
||||||
if (weapon != null)
|
if (weapon != null)
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
{
|
{
|
||||||
// Prevent TK from giving exp
|
// Prevent TK from giving exp
|
||||||
if (e.Attacker == null || e.Attacker.Owner.Stances[ self.Owner ] == Stance.Ally )
|
if (e.Attacker == null || e.Attacker.Owner.Stances[ self.Owner ] == Stance.Ally )
|
||||||
|
|||||||
2
OpenRA.Mods.RA/Harvester.cs
Executable file → Normal file
2
OpenRA.Mods.RA/Harvester.cs
Executable file → Normal file
@@ -164,7 +164,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
if (LinkedProc != null)
|
if (LinkedProc != null)
|
||||||
LinkedProc.traits.WithInterface<IAcceptOre>().FirstOrDefault().UnlinkHarvester(LinkedProc,self);
|
LinkedProc.traits.WithInterface<IAcceptOre>().FirstOrDefault().UnlinkHarvester(LinkedProc,self);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
self.World.AddFrameEndTask(w =>
|
self.World.AddFrameEndTask(w =>
|
||||||
{
|
{
|
||||||
var info = self.Info.Traits.Get<LeavesHuskInfo>();
|
var info = self.Info.Traits.Get<LeavesHuskInfo>();
|
||||||
|
|||||||
2
OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs
Executable file → Normal file
2
OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs
Executable file → Normal file
@@ -35,7 +35,7 @@ namespace OpenRA.Mods.RA.Orders
|
|||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
if (underCursor.Info.Traits.Contains<RepairableBuildingInfo>()
|
if (underCursor.Info.Traits.Contains<RepairableBuildingInfo>()
|
||||||
&& underCursor.GetExtendedDamageState() < ExtendedDamageState.Undamaged)
|
&& underCursor.GetDamageState() < DamageState.Undamaged)
|
||||||
yield return new Order("Repair", underCursor);
|
yield return new Order("Repair", underCursor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
OpenRA.Mods.RA/OreRefinery.cs
Executable file → Normal file
2
OpenRA.Mods.RA/OreRefinery.cs
Executable file → Normal file
@@ -92,7 +92,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public void Damaged (Actor self, AttackInfo e)
|
public void Damaged (Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
foreach (var harv in LinkedHarv)
|
foreach (var harv in LinkedHarv)
|
||||||
harv.traits.Get<Harvester> ().UnlinkProc(harv, self);
|
harv.traits.Get<Harvester> ().UnlinkProc(harv, self);
|
||||||
}
|
}
|
||||||
|
|||||||
10
OpenRA.Mods.RA/Render/RenderBuilding.cs
Executable file → Normal file
10
OpenRA.Mods.RA/Render/RenderBuilding.cs
Executable file → Normal file
@@ -58,19 +58,19 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
public virtual void Damaged(Actor self, AttackInfo e)
|
public virtual void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (!e.ExtendedDamageStateChanged)
|
if (!e.DamageStateChanged)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
switch( e.ExtendedDamageState )
|
switch( e.DamageState )
|
||||||
{
|
{
|
||||||
case ExtendedDamageState.ThreeQuarter: case ExtendedDamageState.Normal: case ExtendedDamageState.Undamaged:
|
case DamageState.ThreeQuarter: case DamageState.Normal: case DamageState.Undamaged:
|
||||||
anim.ReplaceAnim("idle");
|
anim.ReplaceAnim("idle");
|
||||||
break;
|
break;
|
||||||
case ExtendedDamageState.Half: case ExtendedDamageState.Quarter:
|
case DamageState.Half: case DamageState.Quarter:
|
||||||
anim.ReplaceAnim("damaged-idle");
|
anim.ReplaceAnim("damaged-idle");
|
||||||
Sound.Play(self.Info.Traits.Get<BuildingInfo>().DamagedSound, self.CenterLocation);
|
Sound.Play(self.Info.Traits.Get<BuildingInfo>().DamagedSound, self.CenterLocation);
|
||||||
break;
|
break;
|
||||||
case ExtendedDamageState.Dead:
|
case DamageState.Dead:
|
||||||
self.World.AddFrameEndTask(w => w.Add(new Explosion(w, self.CenterLocation.ToInt2(), "building", false)));
|
self.World.AddFrameEndTask(w => w.Add(new Explosion(w, self.CenterLocation.ToInt2(), "building", false)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
8
OpenRA.Mods.RA/Render/RenderBuildingTurreted.cs
Executable file → Normal file
8
OpenRA.Mods.RA/Render/RenderBuildingTurreted.cs
Executable file → Normal file
@@ -31,14 +31,14 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
public override void Damaged(Actor self, AttackInfo e)
|
public override void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (!e.ExtendedDamageStateChanged) return;
|
if (!e.DamageStateChanged) return;
|
||||||
|
|
||||||
switch( e.ExtendedDamageState )
|
switch( e.DamageState )
|
||||||
{
|
{
|
||||||
case ExtendedDamageState.ThreeQuarter: case ExtendedDamageState.Normal: case ExtendedDamageState.Undamaged:
|
case DamageState.ThreeQuarter: case DamageState.Normal: case DamageState.Undamaged:
|
||||||
anim.ReplaceAnim("idle");
|
anim.ReplaceAnim("idle");
|
||||||
break;
|
break;
|
||||||
case ExtendedDamageState.Half: case ExtendedDamageState.Quarter:
|
case DamageState.Half: case DamageState.Quarter:
|
||||||
anim.ReplaceAnim("damaged-idle");
|
anim.ReplaceAnim("damaged-idle");
|
||||||
Sound.Play(self.Info.Traits.Get<BuildingInfo>().DamagedSound, self.CenterLocation);
|
Sound.Play(self.Info.Traits.Get<BuildingInfo>().DamagedSound, self.CenterLocation);
|
||||||
break;
|
break;
|
||||||
|
|||||||
12
OpenRA.Mods.RA/Render/RenderBuildingWall.cs
Executable file → Normal file
12
OpenRA.Mods.RA/Render/RenderBuildingWall.cs
Executable file → Normal file
@@ -35,22 +35,22 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
{
|
{
|
||||||
var numStates = self.Info.Traits.Get<RenderBuildingWallInfo>().DamageStates;
|
var numStates = self.Info.Traits.Get<RenderBuildingWallInfo>().DamageStates;
|
||||||
|
|
||||||
if (!e.ExtendedDamageStateChanged) return;
|
if (!e.DamageStateChanged) return;
|
||||||
|
|
||||||
switch (e.ExtendedDamageState)
|
switch (e.DamageState)
|
||||||
{
|
{
|
||||||
case ExtendedDamageState.Normal:
|
case DamageState.Normal:
|
||||||
seqName = "idle";
|
seqName = "idle";
|
||||||
break;
|
break;
|
||||||
case ExtendedDamageState.ThreeQuarter:
|
case DamageState.ThreeQuarter:
|
||||||
if (numStates >= 4)
|
if (numStates >= 4)
|
||||||
seqName = "minor-damaged-idle";
|
seqName = "minor-damaged-idle";
|
||||||
break;
|
break;
|
||||||
case ExtendedDamageState.Half:
|
case DamageState.Half:
|
||||||
seqName = "damaged-idle";
|
seqName = "damaged-idle";
|
||||||
Sound.Play(self.Info.Traits.Get<BuildingInfo>().DamagedSound, self.CenterLocation);
|
Sound.Play(self.Info.Traits.Get<BuildingInfo>().DamagedSound, self.CenterLocation);
|
||||||
break;
|
break;
|
||||||
case ExtendedDamageState.Quarter:
|
case DamageState.Quarter:
|
||||||
if (numStates >= 3)
|
if (numStates >= 3)
|
||||||
{
|
{
|
||||||
seqName = "critical-idle";
|
seqName = "critical-idle";
|
||||||
|
|||||||
10
OpenRA.Mods.RA/Render/RenderBuildingWarFactory.cs
Executable file → Normal file
10
OpenRA.Mods.RA/Render/RenderBuildingWarFactory.cs
Executable file → Normal file
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
string GetPrefix(Actor self)
|
string GetPrefix(Actor self)
|
||||||
{
|
{
|
||||||
return self.GetExtendedDamageState() <= ExtendedDamageState.Half ? "damaged-" : "";
|
return self.GetDamageState() <= DamageState.Half ? "damaged-" : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public RenderWarFactory(Actor self)
|
public RenderWarFactory(Actor self)
|
||||||
@@ -53,14 +53,14 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (!e.ExtendedDamageStateChanged) return;
|
if (!e.DamageStateChanged) return;
|
||||||
|
|
||||||
switch( e.ExtendedDamageState )
|
switch( e.DamageState )
|
||||||
{
|
{
|
||||||
case ExtendedDamageState.ThreeQuarter: case ExtendedDamageState.Normal: case ExtendedDamageState.Undamaged:
|
case DamageState.ThreeQuarter: case DamageState.Normal: case DamageState.Undamaged:
|
||||||
roof.ReplaceAnim(roof.CurrentSequence.Name.Replace("damaged-",""));
|
roof.ReplaceAnim(roof.CurrentSequence.Name.Replace("damaged-",""));
|
||||||
break;
|
break;
|
||||||
case ExtendedDamageState.Half: case ExtendedDamageState.Quarter:
|
case DamageState.Half: case DamageState.Quarter:
|
||||||
roof.ReplaceAnim("damaged-" + roof.CurrentSequence.Name);
|
roof.ReplaceAnim("damaged-" + roof.CurrentSequence.Name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
2
OpenRA.Mods.RA/Render/RenderInfantry.cs
Executable file → Normal file
2
OpenRA.Mods.RA/Render/RenderInfantry.cs
Executable file → Normal file
@@ -78,7 +78,7 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState == ExtendedDamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
{
|
{
|
||||||
var death = e.Warhead != null ? e.Warhead.InfDeath : 0;
|
var death = e.Warhead != null ? e.Warhead.InfDeath : 0;
|
||||||
Sound.PlayVoice("Die", self);
|
Sound.PlayVoice("Die", self);
|
||||||
|
|||||||
2
OpenRA.Mods.RA/Render/RenderUnit.cs
Executable file → Normal file
2
OpenRA.Mods.RA/Render/RenderUnit.cs
Executable file → Normal file
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
public void Damaged(Actor self, AttackInfo e)
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (e.ExtendedDamageState > ExtendedDamageState.Half) return;
|
if (e.DamageState > DamageState.Half) return;
|
||||||
if (isSmoking) return;
|
if (isSmoking) return;
|
||||||
|
|
||||||
isSmoking = true;
|
isSmoking = true;
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace OpenRA.Mods.RA
|
|||||||
bool CanRepair(Actor self)
|
bool CanRepair(Actor self)
|
||||||
{
|
{
|
||||||
var li = self.traits.GetOrDefault<LimitedAmmo>();
|
var li = self.traits.GetOrDefault<LimitedAmmo>();
|
||||||
return (Health.ExtendedDamageState < ExtendedDamageState.Undamaged || (li != null && !li.FullAmmo()) );
|
return (Health.DamageState < DamageState.Undamaged || (li != null && !li.FullAmmo()) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public string CursorForOrder(Actor self, Order order)
|
public string CursorForOrder(Actor self, Order order)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
if (underCursor.Owner == self.Owner &&
|
if (underCursor.Owner == self.Owner &&
|
||||||
self.Info.Traits.Get<RepairableNearInfo>().Buildings.Contains( underCursor.Info.Name ) &&
|
self.Info.Traits.Get<RepairableNearInfo>().Buildings.Contains( underCursor.Info.Name ) &&
|
||||||
self.GetExtendedDamageState() < ExtendedDamageState.Undamaged)
|
self.GetDamageState() < DamageState.Undamaged)
|
||||||
return new Order("Enter", self, underCursor);
|
return new Order("Enter", self, underCursor);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user