public void AttemptedWireSlotting(WireBehaviour wire, PanelSystem panel)
 {
     if (panel.CurrentDamageState == DamageState.Malfunction)
     {
         if (panel.CanSlotWire(wire))
         {
             panel.SlotWire(wire);
         }
     }
 }
    internal void PanelDestroyed(PanelSystem panelSystem)
    {
        Instantiate(ObjectManager.Instance.Prefabs.particles_smoke, panelSystem.transform.position, Quaternion.identity);
        var allPanels          = FindObjectsOfType <PanelSystem>();
        var nonDestroyedPanels = allPanels.Count(panel => panel.CurrentDamageState != DamageState.Destroyed);

        if (nonDestroyedPanels == 0)
        {
            GameOver(false);
        }
    }
 // called by panel
 internal void PanelBroken(PanelSystem panelSystem)
 {
     panelSystem.DefaultEnergy(50);
 }
 internal void PanelMadeOperational(PanelSystem panelSystem)
 {
 }