Introduce WarheadArgs

- Passes additional arguments to warheads on impact
- Uses that to reduce parameter count of DoImpact by 1
This commit is contained in:
reaperrr
2019-05-12 23:29:35 +02:00
committed by teinarss
parent fdc0a6e2b9
commit 6220d7e62e
31 changed files with 127 additions and 44 deletions

View File

@@ -45,9 +45,18 @@ namespace OpenRA.Mods.Cnc.Effects
public void Tick(World world)
{
anim.Tick();
if (!impacted && weaponDelay-- <= 0)
{
weapon.Impact(target, firedBy.PlayerActor, Enumerable.Empty<int>());
var warheadArgs = new WarheadArgs
{
Weapon = weapon,
Source = target.CenterPosition,
SourceActor = firedBy.PlayerActor,
WeaponTarget = target
};
weapon.Impact(target, warheadArgs);
impacted = true;
}
}

View File

@@ -72,7 +72,7 @@ namespace OpenRA.Mods.Cnc.Projectiles
target = args.Weapon.TargetActorCenter ? args.GuidedTarget.CenterPosition : args.GuidedTarget.Positions.PositionClosestTo(args.Source);
if (damageDuration-- > 0)
args.Weapon.Impact(Target.FromPos(target), args.SourceActor, args.DamageModifiers);
args.Weapon.Impact(Target.FromPos(target), new WarheadArgs(args));
}
public IEnumerable<IRenderable> Render(WorldRenderer wr)