예제 #1
0
            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>();
            }
예제 #2
0
        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!");
        }