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;
        }