Files
Enigmos/Boards/PrimaryModuleBoard.cs
2024-07-29 17:24:31 +01:00

51 lines
1.1 KiB
C#

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<RootModule>("Root");
Engine = GetModule<EngineModule>("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;
}
}