more traitinfos

This commit is contained in:
Chris Forbes
2010-01-10 13:20:51 +13:00
parent 409a48b22a
commit fee63593d7
21 changed files with 101 additions and 4 deletions

View File

@@ -7,12 +7,12 @@ namespace OpenRa.Game.GameRules
{
static class FieldLoader
{
public static void Load( object self, IniSection ini )
public static void Load(object self, IniSection ini)
{
foreach( var x in ini )
foreach (var x in ini)
{
var field = self.GetType().GetField( x.Key.Trim() );
field.SetValue( self, GetValue( field.FieldType, x.Value.Trim() ) );
var field = self.GetType().GetField(x.Key.Trim());
field.SetValue(self, GetValue(field.FieldType, x.Value.Trim()));
}
}

View File

@@ -3,6 +3,8 @@ using OpenRa.Game.GameRules;
namespace OpenRa.Game.Traits
{
class AttackTurretedInfo : AttackBaseInfo { }
class AttackTurreted : AttackBase, INotifyBuildComplete
{
public AttackTurreted( Actor self ) : base(self) { self.traits.Get<Turreted>(); }

View File

@@ -14,6 +14,8 @@ namespace OpenRa.Game.Traits
public readonly int Cost = 0;
public readonly string Description = "";
public readonly string LongDesc = "";
public readonly string Icon = null;
public object Create(Actor self) { return new Buildable(self); }
}

View File

@@ -7,6 +7,13 @@ using OpenRa.Game.Traits.Activities;
namespace OpenRa.Game.Traits
{
class CargoInfo : ITraitInfo
{
public readonly UnitMovementType[] PassengerTypes = { };
public object Create(Actor self) { return new Cargo(self); }
}
class Cargo : IPips, IIssueOrder, IResolveOrder
{
List<Actor> cargo = new List<Actor>();

View File

@@ -2,6 +2,11 @@
namespace OpenRa.Game.Traits
{
class ExplodesInfo : ITraitInfo
{
public object Create(Actor self) { return new Explodes(self); }
}
class Explodes : INotifyDamage
{
public Explodes(Actor self) {}

View File

@@ -3,6 +3,11 @@ using OpenRa.Game.Traits.Activities;
namespace OpenRa.Game.Traits
{
class HarvesterInfo : ITraitInfo
{
public object Create(Actor self) { return new Harvester(self); }
}
class Harvester : IIssueOrder, IResolveOrder, IPips
{
[Sync]

View File

@@ -3,6 +3,11 @@ using OpenRa.Game.Effects;
namespace OpenRa.Game.Traits
{
class IronCurtainableInfo : ITraitInfo
{
public object Create(Actor self) { return new IronCurtain(self); }
}
class IronCurtainable : IResolveOrder, IDamageModifier, ITick
{
[Sync]

View File

@@ -2,6 +2,13 @@
namespace OpenRa.Game.Traits
{
class LimitedAmmoInfo : ITraitInfo
{
public readonly int Ammo = 0;
public object Create(Actor self) { return new LimitedAmmo(self); }
}
class LimitedAmmo : INotifyAttack, IPips
{
[Sync]

View File

@@ -3,6 +3,11 @@ using OpenRa.Game.Traits.Activities;
namespace OpenRa.Game.Traits
{
class McvDeployInfo : ITraitInfo
{
public object Create(Actor self) { return new McvDeploy(self); }
}
class McvDeploy : IIssueOrder, IResolveOrder
{
public McvDeploy(Actor self) { }

View File

@@ -1,6 +1,11 @@

namespace OpenRa.Game.Traits
{
class MineImmuneInfo : ITraitInfo
{
public object Create(Actor self) { return new MineImmune(self); }
}
class MineImmune
{
public MineImmune(Actor self) { }

View File

@@ -5,6 +5,11 @@ using System.Text;
namespace OpenRa.Game.Traits
{
class MinelayerInfo : ITraitInfo
{
public object Create(Actor self) { return new Minelayer(self); }
}
class Minelayer : IIssueOrder, IResolveOrder
{
public Minelayer(Actor self) { }

View File

@@ -6,6 +6,11 @@ using OpenRa.Game.Traits.Activities;
namespace OpenRa.Game.Traits
{
class PassengerInfo : ITraitInfo
{
public object Create(Actor self) { return new Passenger(self); }
}
class Passenger : IIssueOrder, IResolveOrder
{
public Passenger(Actor self) { }

View File

@@ -5,6 +5,11 @@ using OpenRa.Game.Effects;
namespace OpenRa.Game.Traits
{
class RenderBuildingInfo : RenderSimpleInfo
{
public override object Create(Actor self) { return new RenderBuilding(self); }
}
class RenderBuilding : RenderSimple, INotifyDamage, INotifySold
{
const int SmallBibStart = 1;

View File

@@ -5,6 +5,11 @@ using System.Text;
namespace OpenRa.Game.Traits
{
class RenderBuildingChargeInfo : RenderBuildingInfo
{
public override object Create(Actor self) { return new RenderBuildingCharge(self); }
}
/* used for tesla */
class RenderBuildingCharge : RenderBuilding, INotifyAttack
{

View File

@@ -2,6 +2,11 @@
namespace OpenRa.Game.Traits
{
class RenderBuildingOreInfo : RenderBuildingInfo
{
public override object Create(Actor self) { return new RenderBuildingOre(self); }
}
class RenderBuildingOre : RenderBuilding, INotifyBuildComplete
{
public RenderBuildingOre(Actor self)

View File

@@ -5,6 +5,13 @@ using OpenRa.Game.Graphics;
namespace OpenRa.Game.Traits
{
abstract class RenderSimpleInfo : ITraitInfo
{
public readonly string Image = null;
public abstract object Create(Actor self);
}
abstract class RenderSimple : IRender, ITick
{
public Dictionary<string, AnimationWithOffset> anims = new Dictionary<string, AnimationWithOffset>();

View File

@@ -5,6 +5,11 @@ using OpenRa.Game.GameRules;
namespace OpenRa.Game.Traits
{
class RenderUnitInfo : RenderSimpleInfo
{
public override object Create(Actor self) { return new RenderUnit(self); }
}
class RenderUnit : RenderSimple, INotifyDamage
{
public RenderUnit(Actor self)

View File

@@ -5,6 +5,11 @@ using OpenRa.Game.Graphics;
namespace OpenRa.Game.Traits
{
class RenderUnitMuzzleFlashInfo : RenderUnitInfo
{
public override object Create(Actor self) { return new RenderUnitMuzzleFlash(self); }
}
class RenderUnitMuzzleFlash : RenderUnit
{
public RenderUnitMuzzleFlash(Actor self)

View File

@@ -3,6 +3,11 @@ using OpenRa.Game.Graphics;
namespace OpenRa.Game.Traits
{
class RenderUnitSpinnerInfo : RenderUnitInfo
{
public override object Create(Actor self) { return new RenderUnitSpinner(self); }
}
class RenderUnitSpinner : RenderUnit
{
public Animation spinnerAnim;

View File

@@ -4,6 +4,8 @@ using OpenRa.Game.Graphics;
namespace OpenRa.Game.Traits
{
class RenderUnitTurretedInfo : RenderUnitInfo { }
class RenderUnitTurreted : RenderUnit
{
public Animation muzzleFlash;

View File

@@ -1,6 +1,11 @@

namespace OpenRa.Game.Traits
{
class TurretedInfo : ITraitInfo
{
public object Create(Actor self) { return new Turreted(self); }
}
class Turreted : ITick
{
[Sync]