using Enigmos.Modules.ControllingModules; using Enigmos.Modules.TerminalModules; using Nocturnis.Creatures; using Nocturnis.Enigmos.Boards; using Nocturnis.Enigmos.Modules; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Controls; namespace Enigmos.Boards; public partial class PrimaryModuleBoard : BaseBoard, IPrimaryModuleBoard { private IBaseCreature ManagedBy { get; set; } public IRootModule Root { get; set; } public IEngineModule Engine { get; set; } public void Init(IBaseCreature manager) { Init(); Root = GetModule("Root"); Engine = GetModule("Engine"); Root.ManagedBy = manager; ManagedBy = manager; } public void Start() { //Root.Timer = Stopwatch.StartNew(); Engine.Consume(); if (EnigmosControl.Instance.Energy < EnigmosControl.Instance.IdlePower) { Root!.ActionFinished = true; EnigmosControl.Instance.ShutDownEngine(); return; } Root.Start(); foreach (ITerminalModule tm in TerminalModules) tm.Consume(); } public double IdlePower => Modules.Count * 0.05; public override void Reset() { base.Reset(); Root.ActionFinished = true; } }