changes to TypeDictionary's interface. (build-palette is broken, so hasn't been tested)

This commit is contained in:
Bob
2010-01-12 13:27:59 +13:00
parent e6e5275f05
commit 5a29dd6ee2
36 changed files with 96 additions and 74 deletions

View File

@@ -27,7 +27,7 @@ namespace OpenRa.Game.Traits.Activities
return new Move( Target, Range ) { NextActivity = this };
var desiredFacing = Util.GetFacing((Target.Location - self.Location).ToFloat2(), 0);
var renderUnit = self.traits.WithInterface<RenderUnit>().FirstOrDefault();
var renderUnit = self.traits.GetOrDefault<RenderUnit>();
var numDirs = (renderUnit != null)
? renderUnit.anim.CurrentSequence.Length : 8;
@@ -37,7 +37,7 @@ namespace OpenRa.Game.Traits.Activities
return new Turn( desiredFacing ) { NextActivity = this };
}
var attack = self.traits.WithInterface<AttackBase>().First();
var attack = self.traits.Get<AttackBase>();
attack.target = Target;
attack.DoAttack(self);
return this;

View File

@@ -19,7 +19,7 @@ namespace OpenRa.Game.Traits.Activities
if (target.Owner == self.Owner)
{
if (target.Health == target.Info.Traits.WithInterface<OwnedActorInfo>().First().HP)
if (target.Health == target.Info.Traits.Get<OwnedActorInfo>().HP)
return NextActivity;
target.InflictDamage(self, -EngineerCapture.EngineerDamage, Rules.WarheadInfo["Super"]);
}

View File

@@ -64,7 +64,7 @@ namespace OpenRa.Game.Traits.Activities
else if( unit.Facing != 64 )
return new Turn( 64 ) { NextActivity = this };
var renderUnit = self.traits.WithInterface<RenderUnit>().First();
var renderUnit = self.traits.Get<RenderUnit>();
if( renderUnit.anim.CurrentSequence.Name != "empty" )
renderUnit.PlayCustomAnimation( self, "empty",
() => isDone = true );

View File

@@ -33,7 +33,7 @@ namespace OpenRa.Game.Traits.Activities
{
var unit = self.traits.Get<Unit>();
var harv = self.traits.Get<Harvester>();
var renderUnit = self.traits.WithInterface<RenderUnit>().First(); /* better have one of these! */
var renderUnit = self.traits.Get<RenderUnit>(); /* better have one of these! */
var isGem = false;
if (!Rules.Map.ContainsResource(self.Location) ||

View File

@@ -24,7 +24,7 @@ namespace OpenRa.Game.Traits.Activities
if (isCanceled) return NextActivity;
var dest = ChooseHelipad(self);
var initialFacing = self.Info.Traits.WithInterface<OwnedActorInfo>().First().InitialFacing;
var initialFacing = self.Info.Traits.Get<OwnedActorInfo>().InitialFacing;
if (dest == null)
return Util.SequenceActivities(

View File

@@ -17,7 +17,7 @@ namespace OpenRa.Game.Traits.Activities
if (remainingTicks == 0)
{
var unitCost = self.Info.Traits.Get<BuildableInfo>().Cost;
var hp = self.Info.Traits.WithInterface<OwnedActorInfo>().First().HP;
var hp = self.Info.Traits.Get<OwnedActorInfo>().HP;
var costPerHp = (Rules.General.URepairPercent * unitCost) / hp;
var hpToRepair = Math.Min(Rules.General.URepairStep, hp - self.Health);

View File

@@ -14,7 +14,7 @@ namespace OpenRa.Game.Traits.Activities
void DoSell(Actor self)
{
var cost = self.Info.Traits.Get<BuildableInfo>().Cost;
var hp = self.Info.Traits.WithInterface<OwnedActorInfo>().First().HP;
var hp = self.Info.Traits.Get<OwnedActorInfo>().HP;
var refund = Rules.General.RefundPercent * self.Health * cost / hp;
self.Owner.GiveCash((int)refund);
@@ -30,7 +30,7 @@ namespace OpenRa.Game.Traits.Activities
{
if (!started)
{
var rb = self.traits.WithInterface<RenderBuilding>().First();
var rb = self.traits.Get<RenderBuilding>();
//var rb = self.traits.Get<RenderBuilding>();
rb.PlayCustomAnimBackwards(self, "make",
() => Game.world.AddFrameEndTask(w => DoSell(self)));

View File

@@ -44,7 +44,7 @@ namespace OpenRa.Game.Traits.Activities
if (cargo.IsEmpty(self))
return NextActivity;
var ru = self.traits.WithInterface<RenderUnit>().FirstOrDefault();
var ru = self.traits.GetOrDefault<RenderUnit>();
if (ru != null)
ru.PlayCustomAnimation(self, "unload", null);