public MissileCoordination(MissileManagement management, IMyTerminalBlock rc, ACPWrapper antennas, TargetFilter tFilter, int targetTimeOutSec = 15) { this.management = management; this.reference = rc; this.antennas = antennas; this.targetTimeOutSec = targetTimeOutSec; this.tFilter = tFilter; targets = new Dictionary <long, MyDetectedEntityInfo>(); missileStaging = new List <IEnumerator <bool> >(); firedMissiles = new Dictionary <long, MissileManagement.MissileInfo>(); firedAt = new Dictionary <long, DateTime>(); }
IEnumerator <bool> Initialize() { antennaComms = new ACPWrapper(this); yield return(true); missileManagement = new MissileManagement(antennaComms); missileManagement.OnMissileAdded += OnMissileAdded; missileManagement.OnMissileRemoved += OnMissileRemoved; yield return(true); MissileCoordination.TargetFilter filter = new MissileCoordination.TargetFilter(1, new MyDetectedEntityType[] { MyDetectedEntityType.LargeGrid, MyDetectedEntityType.SmallGrid }); missileCoordination = new MissileCoordination(missileManagement, Me, antennaComms, filter); yield return(true); turretMonitor = new TurretMonitor(this); turretMonitor.OnTargetDetected += OnTargetDetected; turretMonitor.OnTargetDetected += missileCoordination.OnTargetDetected; yield return(true); Echo("Initialized!"); }