Move IRenderInfantrySequenceModifier to mod code and require explicit...
implementation.
This commit is contained in:
@@ -321,12 +321,6 @@ namespace OpenRA.Traits
|
||||
public interface INotifyBecomingIdle { void OnBecomingIdle(Actor self); }
|
||||
public interface INotifyIdle { void TickIdle(Actor self); }
|
||||
|
||||
public interface IRenderInfantrySequenceModifier
|
||||
{
|
||||
bool IsModifyingSequence { get; }
|
||||
string SequencePrefix { get; }
|
||||
}
|
||||
|
||||
public interface IRenderAboveWorld { void RenderAboveWorld(Actor self, WorldRenderer wr); }
|
||||
public interface IRenderShroud { void RenderShroud(Shroud shroud, WorldRenderer wr); }
|
||||
public interface IRenderAboveShroud { IEnumerable<IRenderable> RenderAboveShroud(Actor self, WorldRenderer wr); }
|
||||
|
||||
@@ -38,8 +38,8 @@ namespace OpenRA.Mods.Common.Traits
|
||||
[Sync] int panicStartedTick;
|
||||
bool Panicking { get { return panicStartedTick > 0; } }
|
||||
|
||||
public bool IsModifyingSequence { get { return Panicking; } }
|
||||
public string SequencePrefix { get { return info.PanicSequencePrefix; } }
|
||||
bool IRenderInfantrySequenceModifier.IsModifyingSequence { get { return Panicking; } }
|
||||
string IRenderInfantrySequenceModifier.SequencePrefix { get { return info.PanicSequencePrefix; } }
|
||||
|
||||
public ScaredyCat(Actor self, ScaredyCatInfo info)
|
||||
{
|
||||
|
||||
@@ -45,8 +45,8 @@ namespace OpenRA.Mods.Common.Traits
|
||||
[Sync] int remainingProneTime = 0;
|
||||
bool IsProne { get { return remainingProneTime > 0; } }
|
||||
|
||||
public bool IsModifyingSequence { get { return IsProne; } }
|
||||
public string SequencePrefix { get { return info.ProneSequencePrefix; } }
|
||||
bool IRenderInfantrySequenceModifier.IsModifyingSequence { get { return IsProne; } }
|
||||
string IRenderInfantrySequenceModifier.SequencePrefix { get { return info.ProneSequencePrefix; } }
|
||||
|
||||
public TakeCover(ActorInitializer init, TakeCoverInfo info)
|
||||
: base(init, info)
|
||||
@@ -54,7 +54,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
this.info = info;
|
||||
}
|
||||
|
||||
public void Damaged(Actor self, AttackInfo e)
|
||||
void INotifyDamage.Damaged(Actor self, AttackInfo e)
|
||||
{
|
||||
if (e.Damage.Value <= 0 || !e.Damage.DamageTypes.Overlaps(info.DamageTriggers))
|
||||
return;
|
||||
@@ -78,7 +78,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
public int GetDamageModifier(Actor attacker, Damage damage)
|
||||
int IDamageModifier.GetDamageModifier(Actor attacker, Damage damage)
|
||||
{
|
||||
if (!IsProne)
|
||||
return 100;
|
||||
@@ -90,7 +90,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
return Util.ApplyPercentageModifiers(100, modifierPercentages);
|
||||
}
|
||||
|
||||
public int GetSpeedModifier()
|
||||
int ISpeedModifier.GetSpeedModifier()
|
||||
{
|
||||
return IsProne ? info.SpeedModifier : 100;
|
||||
}
|
||||
|
||||
@@ -195,4 +195,11 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
[RequireExplicitImplementation]
|
||||
public interface INotifyRearm { void Rearming(Actor host, Actor other); }
|
||||
|
||||
[RequireExplicitImplementation]
|
||||
public interface IRenderInfantrySequenceModifier
|
||||
{
|
||||
bool IsModifyingSequence { get; }
|
||||
string SequencePrefix { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.TS.Traits.Render
|
||||
@@ -29,15 +30,15 @@ namespace OpenRA.Mods.TS.Traits.Render
|
||||
|
||||
bool isInjured;
|
||||
|
||||
public bool IsModifyingSequence { get { return isInjured; } }
|
||||
public string SequencePrefix { get { return info.InjuredSequencePrefix; } }
|
||||
bool IRenderInfantrySequenceModifier.IsModifyingSequence { get { return isInjured; } }
|
||||
string IRenderInfantrySequenceModifier.SequencePrefix { get { return info.InjuredSequencePrefix; } }
|
||||
|
||||
public WithPermanentInjury(ActorInitializer init, WithPermanentInjuryInfo info)
|
||||
{
|
||||
this.info = info;
|
||||
}
|
||||
|
||||
public void Damaged(Actor self, AttackInfo e)
|
||||
void INotifyDamage.Damaged(Actor self, AttackInfo e)
|
||||
{
|
||||
if (e.DamageState == info.TriggeringDamageStage)
|
||||
isInjured = true;
|
||||
|
||||
Reference in New Issue
Block a user