/// <summary>
        /// Triggers the failure controlled by the failure module
        /// </summary>
        public override void DoFailure()
        {
            base.DoFailure();
            if (engineStates == null)
            {
                engineStates = new Dictionary <int, CachedEngineState>();
            }
            engineStates.Clear();
            foreach (EngineHandler engine in engines)
            {
                int id = engine.engine.Module.GetInstanceID();
                CachedEngineState engineState = new CachedEngineState();
                engineState.allowShutdown = engine.engine.allowShutdown;
                engineState.numIgnitions  = engine.engine.GetIgnitionCount();
                engine.engine.Shutdown();
                var numIgnitionsToRemove = 1;
                if (severity.ToLowerInvariant() == "major")
                {
                    numIgnitionsToRemove = -1;

                    // For some reason, need to disable GUI as well
                    engine.engine.Events["Activate"].active    = false;
                    engine.engine.Events["Shutdown"].active    = false;
                    engine.engine.Events["Activate"].guiActive = false;
                    engine.engine.Events["Shutdown"].guiActive = false;
                }
                engineStates.Add(id, engineState);
                engine.engine.RemoveIgnitions(numIgnitionsToRemove);
            }
        }
 /// <summary>
 /// Triggers the failure controlled by the failure module
 /// </summary>
 public override void DoFailure()
 {
     base.DoFailure();
     if (engineStates == null)
         engineStates = new Dictionary<int, CachedEngineState>();
     engineStates.Clear();
     foreach (EngineHandler engine in engines)
     {
         int id = engine.engine.Module.GetInstanceID();
         CachedEngineState engineState = new CachedEngineState();
         engineState.allowShutdown = engine.engine.allowShutdown;
         engine.engine.Shutdown();
         engineStates.Add(id, engineState);
     }
 }
 /// <summary>
 /// Triggers the failure controlled by the failure module
 /// </summary>
 public override void DoFailure()
 {
     base.DoFailure();
     if (engineStates == null)
     {
         engineStates = new Dictionary <int, CachedEngineState>();
     }
     engineStates.Clear();
     foreach (EngineHandler engine in engines)
     {
         int id = engine.engine.Module.GetInstanceID();
         CachedEngineState engineState = new CachedEngineState();
         engineState.allowShutdown = engine.engine.allowShutdown;
         engine.engine.Shutdown();
         engineStates.Add(id, engineState);
     }
 }