| | | 1 | | using UnityEngine; |
| | | 2 | | |
| | | 3 | | // Base implementation of a launcher. |
| | | 4 | | // |
| | | 5 | | // A launcher is the source of interceptors and cannot be released by other interceptors. |
| | | 6 | | // Interceptors can be launched from naval vessels, shore batteries, or mobile platforms, for |
| | | 7 | | // example. |
| | | 8 | | public abstract class LauncherBase : CarrierBase { |
| | | 9 | | // Launchers cannot pursue threats. |
| | 0 | 10 | | public override bool IsPursuer => false; |
| | | 11 | | |
| | 0 | 12 | | protected override void Awake() { |
| | 0 | 13 | | base.Awake(); |
| | | 14 | | |
| | | 15 | | // TODO(titan): The predictor, launch angle planner, and launch planner should be defined in the |
| | | 16 | | // simulation configuration. |
| | 0 | 17 | | var launchAnglePlanner = new LaunchAngleCsvInterpolator(this); |
| | 0 | 18 | | var predictor = new LinearExtrapolator(hierarchical: null); |
| | 0 | 19 | | var planner = new IterativeLaunchPlanner(launchAnglePlanner, predictor); |
| | 0 | 20 | | ReleaseStrategy = new PlannerReleaseStrategy(this, planner); |
| | 0 | 21 | | } |
| | | 22 | | } |