Ejemplo n.º 1
0
        public void Main(String argument, UpdateType updateSource)
        {
            Echo("Next gen guided missiles");

            InitStationSystem();

            GetMissiles();

            foreach (Missile missile in m_missilesAvailable)
            {
                //Echo ( "Missile:" + missile.IsFunctional ());

                missile.ThrusterInfo();

                missile.GetForwardVector();
            }

            Echo(string.Format("{0} missile available and functional", m_missilesAvailable.Count));
            Echo(string.Format("{0} missile active and fighting", m_activeAvailable.Count));

            if (argument == "Fire")
            {
                shootCountdown = m_defaultShootCount;

                fireMissiles = true;

                Runtime.UpdateFrequency = UpdateFrequency.Update100;
            }
            else if (fireMissiles)
            {
                if (0 < shootCountdown)
                {
                    DestroyConveyorWithGatling();

                    shootCountdown--;
                }
                else
                {
                    Runtime.UpdateFrequency = UpdateFrequency.Update1;

                    Echo("Fire");

                    foreach (Missile missile in m_missilesAvailable)
                    {
                        Echo("Missile:" + missile.m_missileTag);

                        missile.PrepareForLaunch();

                        missile.Launch();

                        DestroyConveyorWithGatling();

                        m_activeAvailable.Add(missile);
                    }

                    foreach (Missile missile in m_activeAvailable)
                    {
                        m_missilesAvailable.Remove(missile);
                    }

                    fireMissiles = false;

                    //Stop ();
                }
            }

            bool bMissileInDangerRange = false;

            foreach (Missile missile in m_activeAvailable)
            {
                double distance = (m_projector.GetPosition() - missile.GetPosition()).Length();

                if (distance < 100)
                {
                    bMissileInDangerRange = true;
                }
            }

            if (fireMissiles || bMissileInDangerRange)
            {
                ToggleShipSystem(false);
            }
            else
            {
                ToggleShipSystem(true);
            }

            m_missileControl.Control();
        }
 public Vector3D GetPosition()
 {
     return(projector.GetPosition());
 }