fix spy crashing things when disguised as a unit with fewer idle anims
This commit is contained in:
@@ -8,8 +8,8 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using OpenRA.Mods.RA.Render;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Mods.RA.Render;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
@@ -20,7 +20,6 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new IdleAnimation(this); }
|
||||
}
|
||||
|
||||
// infantry prone behavior
|
||||
class IdleAnimation : ITick, INotifyIdle
|
||||
{
|
||||
enum IdleState
|
||||
@@ -53,8 +52,13 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
else if (delay > 0 && --delay == 0)
|
||||
{
|
||||
state = IdleState.Active;
|
||||
self.Trait<RenderInfantry>().anim.PlayThen(sequence, () => state = IdleState.None);
|
||||
state = IdleState.Active;
|
||||
var ri = self.TraitOrDefault<RenderInfantry>();
|
||||
|
||||
if (ri.anim.HasSequence(sequence))
|
||||
ri.anim.PlayThen(sequence, () => state = IdleState.None);
|
||||
else
|
||||
state = IdleState.None;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,13 +46,13 @@ namespace OpenRA.Mods.RA.Render
|
||||
{
|
||||
disguisedAsPlayer = target.Owner;
|
||||
disguisedAsSprite = target.Trait<RenderSimple>().GetImage(target);
|
||||
anim.ChangeImage(disguisedAsSprite);
|
||||
anim.ChangeImage(disguisedAsSprite, "stand");
|
||||
}
|
||||
else
|
||||
{
|
||||
disguisedAsPlayer = null;
|
||||
disguisedAsSprite = null;
|
||||
anim.ChangeImage(GetImage(self));
|
||||
anim.ChangeImage(GetImage(self), "stand");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user