Support additional render damage states for buildings.
This commit is contained in:
@@ -55,13 +55,9 @@ namespace OpenRA.Traits
|
|||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual string NormalizeSequence(Actor self, string baseSequence)
|
public string NormalizeSequence(Actor self, string baseSequence)
|
||||||
{
|
{
|
||||||
string damageState = self.GetDamageState() >= DamageState.Heavy ? "damaged-" : "";
|
return NormalizeSequence(anim, self.GetDamageState(), baseSequence);
|
||||||
if (anim.HasSequence(damageState + baseSequence))
|
|
||||||
return damageState + baseSequence;
|
|
||||||
else
|
|
||||||
return baseSequence;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayCustomAnim(Actor self, string name)
|
public void PlayCustomAnim(Actor self, string name)
|
||||||
|
|||||||
@@ -100,5 +100,21 @@ namespace OpenRA.Traits
|
|||||||
a.Animation.Tick();
|
a.Animation.Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string NormalizeSequence(Animation anim, DamageState state, string baseSequence)
|
||||||
|
{
|
||||||
|
var states = new Pair<DamageState, string>[]
|
||||||
|
{
|
||||||
|
Pair.New(DamageState.Critical, "critical-"),
|
||||||
|
Pair.New(DamageState.Heavy, "damaged-"),
|
||||||
|
Pair.New(DamageState.Medium, "scratched-"),
|
||||||
|
Pair.New(DamageState.Light, "scuffed-")
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var s in states)
|
||||||
|
if (state >= s.First && anim.HasSequence(s.Second+baseSequence))
|
||||||
|
return s.Second+baseSequence;
|
||||||
|
|
||||||
|
return baseSequence;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user