Only sync projectiles and future synced effects.

This commit is contained in:
Matthias Mailänder
2016-06-04 19:35:26 +02:00
parent 9def6b0f70
commit 71743b3b4a
11 changed files with 56 additions and 41 deletions

View File

@@ -19,7 +19,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.Common.Effects
{
public class NukeLaunch : IEffect
public class NukeLaunch : IProjectile
{
readonly Player firedBy;
readonly Animation anim;

View File

@@ -69,14 +69,14 @@ namespace OpenRA.Mods.Common.Projectiles
[Desc("Beam color is the player's color.")]
public readonly bool UsePlayerColor = false;
public IEffect Create(ProjectileArgs args)
public IProjectile Create(ProjectileArgs args)
{
var c = UsePlayerColor ? args.SourceActor.Owner.Color.RGB : Color;
return new AreaBeam(this, args, c);
}
}
public class AreaBeam : IEffect, ISync
public class AreaBeam : IProjectile, ISync
{
readonly AreaBeamInfo info;
readonly ProjectileArgs args;

View File

@@ -82,10 +82,10 @@ namespace OpenRA.Mods.Common.Projectiles
public readonly int ContrailDelay = 1;
public readonly WDist ContrailWidth = new WDist(64);
public IEffect Create(ProjectileArgs args) { return new Bullet(this, args); }
public IProjectile Create(ProjectileArgs args) { return new Bullet(this, args); }
}
public class Bullet : IEffect, ISync
public class Bullet : IProjectile, ISync
{
readonly BulletInfo info;
readonly ProjectileArgs args;

View File

@@ -39,10 +39,10 @@ namespace OpenRA.Mods.Common.Projectiles
[Desc("Value added to speed every tick.")]
public readonly WDist Acceleration = new WDist(15);
public IEffect Create(ProjectileArgs args) { return new GravityBomb(this, args); }
public IProjectile Create(ProjectileArgs args) { return new GravityBomb(this, args); }
}
public class GravityBomb : IEffect, ISync
public class GravityBomb : IProjectile, ISync
{
readonly GravityBombInfo info;
readonly Animation anim;

View File

@@ -47,14 +47,14 @@ namespace OpenRA.Mods.Common.Projectiles
[PaletteReference] public readonly string HitAnimPalette = "effect";
public IEffect Create(ProjectileArgs args)
public IProjectile Create(ProjectileArgs args)
{
var c = UsePlayerColor ? args.SourceActor.Owner.Color.RGB : Color;
return new LaserZap(args, this, c);
}
}
public class LaserZap : IEffect
public class LaserZap : IProjectile
{
readonly ProjectileArgs args;
readonly LaserZapInfo info;

View File

@@ -141,11 +141,11 @@ namespace OpenRA.Mods.Common.Projectiles
"not trigger fast enough, causing the missile to fly past the target.")]
public readonly WDist CloseEnough = new WDist(298);
public IEffect Create(ProjectileArgs args) { return new Missile(this, args); }
public IProjectile Create(ProjectileArgs args) { return new Missile(this, args); }
}
// TODO: double check square roots!!!
public class Missile : IEffect, ISync
public class Missile : IProjectile, ISync
{
enum States
{