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
{
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)
: base(self)
Animation muzzleFlash;
bool isShowing;
public WithMuzzleFlash(Actor self)
{
var unit = self.traits.Get<Unit>();
var attack = self.traits.Get<AttackBase>();
var attackInfo = self.Info.Traits.Get<AttackBaseInfo>();
var render = self.traits.Get<RenderSimple>();
var muzzleFlash = new Animation(GetImage(self), ()=>unit.Facing);
muzzleFlash.PlayFetchIndex("muzzle",
() => (int)(attack.primaryRecoil * 5.9f));
anims.Add( "muzzle", new AnimationWithOffset(
muzzleFlash = new Animation(render.GetImage(self), () => unit.Facing);
muzzleFlash.Play("muzzle");
var len = muzzleFlash.CurrentSequence.Length;
render.anims.Add("muzzle", new RenderSimple.AnimationWithOffset(
muzzleFlash,
() => 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
PrimaryOffset: 0,0,0,-10
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:
Inherits: ^Infantry
Selectable:

View File

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

View File

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

View File

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

View File

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