public static void Toggle(string input) //? Switch a module ON/OFF { void ToggleList() //! Write Activated/Desactivated IModules { foreach (IModule mod in Module.ModulesList) { if (mod.IsActivated) { Shell.WriteLine(ConsoleColor.Green, mod.GetType().Name); } else { Shell.WriteLine(ConsoleColor.Red, mod.GetType().Name); } } } string[] split = input.Split(' '); if (split.Length == 1 || (split.Length > 1 && split[1] == "list")) { ToggleList(); return; } if (split.Length < 2) { Shell.WriteLine("Invalid arguments, please try with \"toggle <module>\""); } foreach (string str in split) // Support toggling multiple modules at a time { if (str.Equals("toggle", StringComparison.OrdinalIgnoreCase)) { continue; } IModule m = Module.GetModule(str); if (m == null) { Shell.WriteLineError("Module " + str + " don't exist."); return; } if (!m.IsActivated) { m.IsActivated = true; m.Activate(); Shell.WriteLine(ConsoleColor.Cyan, "Module " + m.GetType().Name + " activated"); } else { m.IsActivated = false; m.Desactivate(); Shell.WriteLine(ConsoleColor.Cyan, "Module " + m.GetType().Name + " desactivated"); } } }
public static void UtilityPulse() { foreach (Module moduleObject in modules) { if (moduleObject is Module.TrackingComputer) { Module.TrackingComputer trackingComputerObject = moduleObject as Module.TrackingComputer; IModule module = Daedalus.myShip.Module(SlotType.MedSlot, trackingComputerObject.Slot_Index); if (!module.IsActive && module.IsOnline) { module.Activate(); } } } }
public static void PropulsionPulse() { foreach (Module moduleObject in modules) { if (moduleObject is Module.Afterburner) { Module.Afterburner afterburnerObject = moduleObject as Module.Afterburner; IModule module = Daedalus.myShip.Module(SlotType.MedSlot, afterburnerObject.Slot_Index); if (!module.IsActive && module.IsOnline) { module.Activate(); } } } }
private void Open(string _name) { Type _t = Type.GetType(_name, true); //判断继承接口 if (_t.GetInterface("IModule") == null) { return; } foreach (var _v in modules) { if (_v.Value.GetType() == _t) { _v.Value.Activate(); return; } } //遍历程序集 object _o = null; for (int i = 0; i < assembly.Count; i++) { _o = assembly[i].CreateInstance(_t.ToString(), true); if (_o != null) { break; } } if (_o == null) { Utility.LogError("没有找到名称为", _name, "的模块!"); return; } IModule _im = _o as IModule; modules.Add(_im.id, _im); _im.Init(idModel.GetLongId); _im.Activate(); }
public static void OffensePulse(Entity target) { foreach (Module moduleObject in modules) { if (moduleObject is Module.MissileLauncher) { Module.MissileLauncher missileLauncherObject = moduleObject as Module.MissileLauncher; IModule module = Daedalus.myShip.Module(missileLauncherObject.slotType, missileLauncherObject.slotIndex); if (module.IsValid && !module.IsActive && !module.IsReloadingAmmo && module.IsOnline) { double engageRange = (module.Charge.MaxFlightTime + module.Charge.MaxVelocity); double distanceToTarget = f_Entities.GetDistanceBetween(target); if (distanceToTarget < engageRange) { module.Activate(); } } } else if (moduleObject is Module.Turret) { Module.Turret turretObject = moduleObject as Module.Turret; IModule module = Daedalus.myShip.Module(turretObject.slotType, turretObject.slotIndex); if (module.IsValid && !module.IsActive && !module.IsReloadingAmmo && module.IsOnline) { double?falloffRange = (module.AccuracyFalloff * 1.5); double?optimalRange = module.OptimalRange; double?engageRange = (falloffRange + optimalRange); double distanceToTarget = f_Entities.GetDistanceBetween(target); if (distanceToTarget < engageRange) { module.Activate(); } } } } }
public static void Reload(string input) //? Reload Modules { string[] args = input.Split(' '); if (args.Length < 2) //! Reload all modules { foreach (IModule module in Module.ModulesList) { if (module.IsActivated) { module.Desactivate(); module.Activate(); } } Shell.Write(ConsoleColor.DarkCyan, "[Reload] "); Shell.WriteLine("All modules have been reloaded"); Log.SendLog("[Reload] All modules have been reloader"); } else //! Reload specified modules { foreach (string str in args.SubArray(1)) { IModule module = Module.GetModule(str); if (module != null && module.IsActivated) { module.Desactivate(); module.Activate(); Shell.Write(ConsoleColor.DarkCyan, "[Reload] "); Shell.WriteLine($"Module {module.GetType().Name} reloaded"); Log.SendLog($"[Reload] Module {module.GetType().Name} reloaded"); } } } }
public static void DefensePulse() { foreach (Module moduleObject in modules) { if (moduleObject is Module.ArmorHardener) { Module.ArmorHardener armorHardenerObject = moduleObject as Module.ArmorHardener; IModule module = Daedalus.myShip.Module(SlotType.LoSlot, armorHardenerObject.Slot_Index); if (!module.IsActive && module.IsOnline) { module.Activate(); } } else if (moduleObject is Module.ArmorRepairer) { Module.ArmorRepairer armorRepairerObject = moduleObject as Module.ArmorRepairer; IModule module = Daedalus.myShip.Module(SlotType.LoSlot, armorRepairerObject.Slot_Index); double currentArmor = c_Status.armorCurrent; double maximumArmor = c_Status.armorMaximum; double deficit = (maximumArmor - currentArmor); if (deficit > armorRepairerObject.Repair_Amount && !module.IsActive && !module.IsDeactivating && module.IsOnline) { module.Activate(); } else if (deficit < armorRepairerObject.Repair_Amount && module.IsActive && !module.IsDeactivating && module.IsOnline) { module.Deactivate(); } } else if (moduleObject is Module.BastionModule) { Module.BastionModule bastionModuleObject = moduleObject as Module.BastionModule; IModule module = Daedalus.myShip.Module(SlotType.HiSlot, bastionModuleObject.Slot_Index); if (!module.IsActive && module.IsOnline && bastionAppropriate) { module.Activate(); } else if (module.IsActive && !bastionAppropriate) { module.Deactivate(); } } else if (moduleObject is Module.ShieldBooster) { Module.ShieldBooster shieldBoosterObject = moduleObject as Module.ShieldBooster; IModule module = Daedalus.myShip.Module(SlotType.MedSlot, shieldBoosterObject.Slot_Index); double currentShield = c_Status.shieldCurrent; double maximumShield = c_Status.shieldMaximum; double deficit = (maximumShield - currentShield); if (deficit > shieldBoosterObject.Boost_Amount && !module.IsActive && !module.IsDeactivating && module.IsOnline) { module.Activate(); } else if (deficit < shieldBoosterObject.Boost_Amount && module.IsActive && !module.IsDeactivating && module.IsOnline) { module.Deactivate(); } } else if (moduleObject is Module.ShieldHardener) { Module.ShieldHardener shieldHardenerObject = moduleObject as Module.ShieldHardener; IModule module = Daedalus.myShip.Module(SlotType.MedSlot, shieldHardenerObject.Slot_Index); if (!module.IsActive && module.IsOnline) { module.Activate(); } } } }
private void SetCurrentModule(IModule module) { CurrentModule?.Deactivate(); CurrentModule = module; CurrentModule?.Activate(); }
public Shell() { // Commented below 2 lines as Logon function has been moved to ModuleSelectionPresenter.cs // Modified By JK on 01/09/12 //LogOnKioskResponse logonResponse = new LogOnKioskResponse(); //LogonServiceClient logonproxy = null; bool LoadApp = true; //this.ScrollerText = string.Empty; // System.Configuration.Configuration config; bool showCursor = (ConfigurationManager.AppSettings["ShowCursor"] == null) ? false : Convert.ToBoolean(ConfigurationManager.AppSettings["ShowCursor"]); if (showCursor) this.Cursor = System.Windows.Input.Cursors.Arrow; else this.Cursor = System.Windows.Input.Cursors.None; InitializeComponent(); //if (LoadApp) //{ // // Init cash acceptor device and printer devices. //DeviceAgent.GetInstance().Init(); //string result = Logger.GetRecentScrollers(); //if ((!string.IsNullOrEmpty(result)) && // (KioskAppConfig.Scrollers != result)) //{ // KioskAppConfig.Scrollers = result; //} moduleManager = ModuleManager.GetInstance(); currentModule = moduleManager.GetDefaultModule(); currentModule.ModuleLayoutUpdatedEvent += OnModuleLayoutUpdated; currentModule.ModuleSelectionChangedEvent += OnModuleSelectionChanged; currentModule.Activate(); this.BeginInit(); try { this.ccModule.Content = null; this.ccModule.Content = currentModule.ShellGrid; } finally { this.EndInit(); this.UpdateLayout(); } //} //else //{ // if (log.IsErrorEnabled) log.ErrorFormat("Logon not Successfull"); // Application.Current.Shutdown(1); //} }
private void OnModuleSelectionChanged(ModuleSelectionChangedEventArgs obj) { IModule newModule; newModule = ModuleManager.GetInstance().SwitchToModule(obj.NewModule); if (newModule != null) { textBlock.Text = KioskAppConfig.GetCurrentScrollerText(obj.NewModule.ToLower().Replace("module", string.Empty)); if (KioskAppConfig.ShowScroller) grScroller.Visibility = System.Windows.Visibility.Visible; else grScroller.Visibility = System.Windows.Visibility.Collapsed; currentModule.ModuleSelectionChangedEvent -= OnModuleSelectionChanged; currentModule.ModuleLayoutUpdatedEvent -= OnModuleLayoutUpdated; currentModule.Deactivate(); currentModule = newModule; currentModule.ModuleLayoutUpdatedEvent += OnModuleLayoutUpdated; currentModule.ModuleSelectionChangedEvent += OnModuleSelectionChanged; currentModule.Activate(obj.DispatcherAction); this.BeginInit(); try { this.ccModule.Content = currentModule.ShellGrid; } finally { this.EndInit(); this.UpdateLayout(); } } }