public void FlyToward(Actor self, ShootableBallisticMissile sbm) { var pos = WPos.LerpQuadratic(initPos, targetPos, sbm.Info.LaunchAngle, ticks, length); sbm.SetPosition(self, pos); sbm.Facing = GetEffectiveFacing(); }
public ShootableBallisticMissileFly(Actor self, Target t, ShootableBallisticMissile sbm = null) { if (sbm == null) { this.sbm = self.Trait <ShootableBallisticMissile>(); } else { this.sbm = sbm; } initPos = self.CenterPosition; targetPos = t.CenterPosition; // fixed position == no homing length = Math.Max((targetPos - initPos).Length / this.sbm.Info.Speed, 1); facing = (targetPos - initPos).Yaw.Facing; }