This commit is contained in:
Chris Forbes
2009-11-08 13:40:19 +13:00
parent 3ab8ae1afc
commit 77b4673e7c
3 changed files with 26 additions and 21 deletions

View File

@@ -59,16 +59,16 @@ namespace OpenRa.Game.Traits
yield return Pair.New(anim.Image, 24f * (float2)self.Location);
}
public void Damaged(Actor self, DamageState state)
void INotifyDamage.Damaged(Actor self, DamageState state)
{
switch( state )
{
case DamageState.Normal:
anim.PlayRepeating("idle"); /* todo: make interaction?? this should only get called on half->ok */
anim.PlayRepeating("idle");
break;
case DamageState.Half:
anim.PlayRepeating("damaged-idle");
Game.PlaySound("kaboom1.aud", false); /* todo: maybe sep. sound stuff from visual ?? */
Game.PlaySound("kaboom1.aud", false);
break;
case DamageState.Dead:
DoBib(self, true);

View File

@@ -5,13 +5,32 @@ using System.Text;
namespace OpenRa.Game.Traits
{
class RenderBuildingTurreted : RenderBuilding
class RenderBuildingTurreted : RenderBuilding, INotifyDamage
{
public RenderBuildingTurreted(Actor self)
: base(self)
{
Make( () => anim.PlayFetchIndex( "idle",
() => self.traits.Get<Turreted>().turretFacing / 8 ) );
Make( () => PlayTurretAnim( self, "idle" ));
}
void PlayTurretAnim(Actor self, string a)
{
anim.PlayFetchIndex(a,
() => self.traits.Get<Turreted>().turretFacing / 8);
}
void INotifyDamage.Damaged(Actor self, DamageState ds)
{
switch (ds)
{
case DamageState.Normal:
PlayTurretAnim(self, "idle");
break;
case DamageState.Half:
PlayTurretAnim(self, "damaged-idle");
Game.PlaySound("kaboom1.aud", false);
break;
}
}
}
}