made muzzleflash a lot saner; implemented E4 for cnc

This commit is contained in:
Chris Forbes
2010-04-17 13:13:18 +12:00
parent ac449e4b66
commit 22494d7e8b
6 changed files with 150 additions and 115 deletions

View File

@@ -22,27 +22,37 @@ using OpenRA.Graphics;
namespace OpenRA.Traits namespace OpenRA.Traits
{ {
class RenderUnitMuzzleFlashInfo : RenderUnitInfo class WithMuzzleFlashInfo : ITraitInfo, ITraitPrerequisite<RenderSimpleInfo>
{ {
public override object Create(Actor self) { return new RenderUnitMuzzleFlash(self); } public object Create(Actor self) { return new WithMuzzleFlash(self); }
} }
class RenderUnitMuzzleFlash : RenderUnit class WithMuzzleFlash : INotifyAttack
{ {
public RenderUnitMuzzleFlash(Actor self) Animation muzzleFlash;
: base(self) bool isShowing;
public WithMuzzleFlash(Actor self)
{ {
var unit = self.traits.Get<Unit>(); var unit = self.traits.Get<Unit>();
var attack = self.traits.Get<AttackBase>(); var attack = self.traits.Get<AttackBase>();
var attackInfo = self.Info.Traits.Get<AttackBaseInfo>(); var attackInfo = self.Info.Traits.Get<AttackBaseInfo>();
var render = self.traits.Get<RenderSimple>();
var muzzleFlash = new Animation(GetImage(self), ()=>unit.Facing); muzzleFlash = new Animation(render.GetImage(self), () => unit.Facing);
muzzleFlash.PlayFetchIndex("muzzle", muzzleFlash.Play("muzzle");
() => (int)(attack.primaryRecoil * 5.9f)); var len = muzzleFlash.CurrentSequence.Length;
anims.Add( "muzzle", new AnimationWithOffset(
render.anims.Add("muzzle", new RenderSimple.AnimationWithOffset(
muzzleFlash, muzzleFlash,
() => attackInfo.PrimaryOffset.AbsOffset(), () => attackInfo.PrimaryOffset.AbsOffset(),
() => attack.primaryRecoil <= 0 ) ); () => !isShowing));
}
public void Attacking(Actor self)
{
isShowing = true;
muzzleFlash.PlayThen("muzzle", () => isShowing = false);
} }
} }
} }

View File

@@ -54,8 +54,31 @@ E3:
PrimaryWeapon: Rockets PrimaryWeapon: Rockets
PrimaryOffset: 0,0,0,-10 PrimaryOffset: 0,0,0,-10
FireDelay: 5 FireDelay: 5
TakeCover: TakeCover:
E4:
Inherits: ^Infantry
Buildable:
TechLevel: 5
Owner: nod
Cost: 200
Description: Flamethrower
LongDesc: Advanced Anti-infantry unit.\n Strong vs Infantry, Buildings\n Weak vs Vehicles
Icon: e4icnh
Selectable:
Bounds: 12,17,0,-6
Unit:
HP: 90
Speed: 4
AttackBase:
PrimaryWeapon: Flamethrower
PrimaryOffset: 0,0,0,-5
FireDelay: 3
TakeCover:
-RenderInfantry:
RenderInfantry:
WithMuzzleFlash:
C1: C1:
Inherits: ^Infantry Inherits: ^Infantry
Selectable: Selectable:

View File

@@ -56,6 +56,7 @@
<sequence name="die3" start="526" length="8" /> <sequence name="die3" start="526" length="8" />
<sequence name="die2" start="518" length="8" /> <sequence name="die2" start="518" length="8" />
<sequence name="die1" start="509" length="9" /> <sequence name="die1" start="509" length="9" />
<sequence name="muzzle" start="0" length="13" src="flame" facings="8" />
</unit> </unit>
<unit name="e5"> <unit name="e5">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
@@ -81,104 +82,104 @@
<sequence name="die2" start="154" length="8" /> <sequence name="die2" start="154" length="8" />
<sequence name="die1" start="145" length="9" /> <sequence name="die1" start="145" length="9" />
</unit> </unit>
<unit name="c1"> <unit name="c1">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
<sequence name="crawl" start="8" length="6" facings="8" /> <sequence name="crawl" start="8" length="6" facings="8" />
<sequence name="run" start="56" length="6" facings="8" /> <sequence name="run" start="56" length="6" facings="8" />
<sequence name="shoot" start="205" length="4" facings="8" /> <sequence name="shoot" start="205" length="4" facings="8" />
<sequence name="die1" start="329" length="8" /> <sequence name="die1" start="329" length="8" />
<sequence name="die4" start="357" length="18" /> <sequence name="die4" start="357" length="18" />
<sequence name="die2" start="337" length="8" /> <sequence name="die2" start="337" length="8" />
<sequence name="die3" start="345" length="12" /> <sequence name="die3" start="345" length="12" />
</unit> </unit>
<unit name="c2"> <unit name="c2">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
<sequence name="crawl" start="8" length="6" facings="8" /> <sequence name="crawl" start="8" length="6" facings="8" />
<sequence name="run" start="56" length="6" facings="8" /> <sequence name="run" start="56" length="6" facings="8" />
<sequence name="shoot" start="205" length="4" facings="8" /> <sequence name="shoot" start="205" length="4" facings="8" />
<sequence name="die1" start="329" length="8" /> <sequence name="die1" start="329" length="8" />
<sequence name="die4" start="357" length="18" /> <sequence name="die4" start="357" length="18" />
<sequence name="die2" start="337" length="8" /> <sequence name="die2" start="337" length="8" />
<sequence name="die3" start="345" length="12" /> <sequence name="die3" start="345" length="12" />
</unit> </unit>
<unit name="c3"> <unit name="c3">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
<sequence name="crawl" start="8" length="6" facings="8" /> <sequence name="crawl" start="8" length="6" facings="8" />
<sequence name="run" start="56" length="6" facings="8" /> <sequence name="run" start="56" length="6" facings="8" />
<sequence name="shoot" start="205" length="4" facings="8" /> <sequence name="shoot" start="205" length="4" facings="8" />
<sequence name="die1" start="329" length="8" /> <sequence name="die1" start="329" length="8" />
<sequence name="die4" start="357" length="18" /> <sequence name="die4" start="357" length="18" />
<sequence name="die2" start="337" length="8" /> <sequence name="die2" start="337" length="8" />
<sequence name="die3" start="345" length="12" /> <sequence name="die3" start="345" length="12" />
</unit> </unit>
<unit name="c4"> <unit name="c4">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
<sequence name="crawl" start="8" length="6" facings="8" /> <sequence name="crawl" start="8" length="6" facings="8" />
<sequence name="run" start="56" length="6" facings="8" /> <sequence name="run" start="56" length="6" facings="8" />
<sequence name="shoot" start="205" length="4" facings="8" /> <sequence name="shoot" start="205" length="4" facings="8" />
<sequence name="die1" start="329" length="8" /> <sequence name="die1" start="329" length="8" />
<sequence name="die4" start="357" length="18" /> <sequence name="die4" start="357" length="18" />
<sequence name="die2" start="337" length="8" /> <sequence name="die2" start="337" length="8" />
<sequence name="die3" start="345" length="12" /> <sequence name="die3" start="345" length="12" />
</unit> </unit>
<unit name="c5"> <unit name="c5">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
<sequence name="crawl" start="8" length="6" facings="8" /> <sequence name="crawl" start="8" length="6" facings="8" />
<sequence name="run" start="56" length="6" facings="8" /> <sequence name="run" start="56" length="6" facings="8" />
<sequence name="shoot" start="205" length="4" facings="8" /> <sequence name="shoot" start="205" length="4" facings="8" />
<sequence name="die1" start="329" length="8" /> <sequence name="die1" start="329" length="8" />
<sequence name="die4" start="357" length="18" /> <sequence name="die4" start="357" length="18" />
<sequence name="die2" start="337" length="8" /> <sequence name="die2" start="337" length="8" />
<sequence name="die3" start="345" length="12" /> <sequence name="die3" start="345" length="12" />
</unit> </unit>
<unit name="c6"> <unit name="c6">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
<sequence name="crawl" start="8" length="6" facings="8" /> <sequence name="crawl" start="8" length="6" facings="8" />
<sequence name="run" start="56" length="6" facings="8" /> <sequence name="run" start="56" length="6" facings="8" />
<sequence name="shoot" start="205" length="4" facings="8" /> <sequence name="shoot" start="205" length="4" facings="8" />
<sequence name="die1" start="329" length="8" /> <sequence name="die1" start="329" length="8" />
<sequence name="die4" start="357" length="18" /> <sequence name="die4" start="357" length="18" />
<sequence name="die2" start="337" length="8" /> <sequence name="die2" start="337" length="8" />
<sequence name="die3" start="345" length="12" /> <sequence name="die3" start="345" length="12" />
</unit> </unit>
<unit name="c7"> <unit name="c7">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
<sequence name="crawl" start="8" length="6" facings="8" /> <sequence name="crawl" start="8" length="6" facings="8" />
<sequence name="run" start="56" length="6" facings="8" /> <sequence name="run" start="56" length="6" facings="8" />
<sequence name="shoot" start="205" length="4" facings="8" /> <sequence name="shoot" start="205" length="4" facings="8" />
<sequence name="die1" start="329" length="8" /> <sequence name="die1" start="329" length="8" />
<sequence name="die4" start="357" length="18" /> <sequence name="die4" start="357" length="18" />
<sequence name="die2" start="337" length="8" /> <sequence name="die2" start="337" length="8" />
<sequence name="die3" start="345" length="12" /> <sequence name="die3" start="345" length="12" />
</unit> </unit>
<unit name="c8"> <unit name="c8">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
<sequence name="crawl" start="8" length="6" facings="8" /> <sequence name="crawl" start="8" length="6" facings="8" />
<sequence name="run" start="56" length="6" facings="8" /> <sequence name="run" start="56" length="6" facings="8" />
<sequence name="shoot" start="205" length="4" facings="8" /> <sequence name="shoot" start="205" length="4" facings="8" />
<sequence name="die1" start="329" length="8" /> <sequence name="die1" start="329" length="8" />
<sequence name="die4" start="357" length="18" /> <sequence name="die4" start="357" length="18" />
<sequence name="die2" start="337" length="8" /> <sequence name="die2" start="337" length="8" />
<sequence name="die3" start="345" length="12" /> <sequence name="die3" start="345" length="12" />
</unit> </unit>
<unit name="c9"> <unit name="c9">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
<sequence name="crawl" start="8" length="6" facings="8" /> <sequence name="crawl" start="8" length="6" facings="8" />
<sequence name="run" start="56" length="6" facings="8" /> <sequence name="run" start="56" length="6" facings="8" />
<sequence name="shoot" start="205" length="4" facings="8" /> <sequence name="shoot" start="205" length="4" facings="8" />
<sequence name="die1" start="329" length="8" /> <sequence name="die1" start="329" length="8" />
<sequence name="die4" start="357" length="18" /> <sequence name="die4" start="357" length="18" />
<sequence name="die2" start="337" length="8" /> <sequence name="die2" start="337" length="8" />
<sequence name="die3" start="345" length="12" /> <sequence name="die3" start="345" length="12" />
</unit> </unit>
<unit name="c10"> <unit name="c10">
<sequence name="stand" start="0" length="1" facings="8" /> <sequence name="stand" start="0" length="1" facings="8" />
<sequence name="crawl" start="8" length="6" facings="8" /> <sequence name="crawl" start="8" length="6" facings="8" />
<sequence name="run" start="56" length="6" facings="8" /> <sequence name="run" start="56" length="6" facings="8" />
<sequence name="shoot" start="205" length="4" facings="8" /> <sequence name="shoot" start="205" length="4" facings="8" />
<sequence name="die1" start="329" length="8" /> <sequence name="die1" start="329" length="8" />
<sequence name="die4" start="357" length="18" /> <sequence name="die4" start="357" length="18" />
<sequence name="die2" start="337" length="8" /> <sequence name="die2" start="337" length="8" />
<sequence name="die3" start="345" length="12" /> <sequence name="die3" start="345" length="12" />
</unit> </unit>
</sequences> </sequences>

View File

@@ -71,7 +71,8 @@ APC:
PrimaryWeapon: MachineGun PrimaryWeapon: MachineGun
PrimaryOffset: 0,0,0,-4 PrimaryOffset: 0,0,0,-4
MuzzleFlash: yes MuzzleFlash: yes
RenderUnitMuzzleFlash: RenderUnit:
WithMuzzleFlash:
AutoTarget: AutoTarget:
Cargo: Cargo:
PassengerTypes: Foot PassengerTypes: Foot

View File

@@ -141,7 +141,6 @@ Flamethrower:
Wood: yes Wood: yes
Verses: 90%,100%,60%,25%,50% Verses: 90%,100%,60%,25%,50%
InfDeath: 4 InfDeath: 4
Explosion: 3
ImpactSound: flamer2 ImpactSound: flamer2
SmudgeType: Scorch SmudgeType: Scorch
Damage: 35 Damage: 35

View File

@@ -326,7 +326,8 @@ APC:
PrimaryWeapon: M60mg PrimaryWeapon: M60mg
PrimaryOffset: 0,0,0,-4 PrimaryOffset: 0,0,0,-4
MuzzleFlash: yes MuzzleFlash: yes
RenderUnitMuzzleFlash: RenderUnit:
WithMuzzleFlash:
AutoTarget: AutoTarget:
Cargo: Cargo:
PassengerTypes: Foot PassengerTypes: Foot