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