/// <summary>
    /// Select the specified component - shows the effect and updates GUI to reflect potential power cost
    /// </summary>
    /// <param name="component"></param>
    /// <param name="select"></param>
    private void SelectComponent(ShipComponent component, bool select)
    {
        if (select)
        {
            if (!selectedComponents.Contains(component))
            {
                //Debug.Log("select");
                if(selectedComponents.Count>0)
                {
                    //not the same component type as selected - restart selection
                    if(component.GetType() != selectedComponents[0].GetType())
                    {
                        UnSelectComponents(true);
                    }
                }
                if (CurrentPower - totalActivationCost - component.ActivationCost < 0)
                {
                    #if FULL_DEBUG
                    Debug.LogWarning("Not enough power");
                    #endif
                    combatInterface.SetPowerValid(false);
                    return;
                }
                selectedComponents.Add(component);
                component.Selected = true;
                TutorialSystem.Instance.ShowNextTutorial(TutorialSystem.TutorialType.ComponentSelection);
                if (!allowingEnemyTargeting) AllowEnemyTargeting(true);
                totalActivationCost += component.ActivationCost;
                combatInterface.UpdateStats(CurrentPower - totalActivationCost, MoveCost,true);

            }//selected component contains
        }
        else //de-select
        {
            if(selectedComponents.Contains(component))
            {
                selectedComponents.Remove(component);
                component.Selected = false;
                if(selectedComponents.Count==0)
                {
                    AllowEnemyTargeting(false);
                }
                totalActivationCost -= component.ActivationCost;
                combatInterface.UpdateStats(CurrentPower - totalActivationCost, MoveCost,true);
            }
        }
    }
 private void SelectComponent(ShipComponent component, bool select)
 {
     if (select)
     {
         //selected comp is not the same component type as selected - restart selection
         if (selectedComponents.Count > 0 && component.GetType() != selectedComponents[0].GetType())
         {
             UnSelectComponents();
         }
         //not enough power - return without selecting
         if ((CurrentPower - totalActivationCost - component.ActivationCost) < 0)
         {
     #if FULL_DEBUG
             Debug.LogWarning("Not enough power");
     #endif
             combatInterface.SetPowerValid(false);
             return;
         }
         //checks passed - select comp
         selectedComponents.Add(component);
         //tutorial next comp selection
         if (!allowingEnemyTargeting) AllowEnemyTargeting(true); ;
         totalActivationCost += component.ActivationCost;
     }//Select true
     else
     {
     #if FULL_DEBUG
         if (!selectedComponents.Contains(component))
         {
             Debug.LogError("Selected components doesn't contain " + component.componentName);
         }
     #endif
         selectedComponents.Remove(component);
         if (selectedComponents.Count == 0) AllowEnemyTargeting(false);
         totalActivationCost -= component.ActivationCost;
     }
     component.Selected = select;
     combatInterface.UpdateStats(CurrentPower - totalActivationCost, MoveCost, true);
 }