using System.Collections.Generic;
using UnityEngine;

namespace Gyvr.Mythril2D
{
    [CreateAssetMenu(menuName = AssetMenuIndexer.Mythril2D_Skills + nameof(SkillAbilitySheet))]
    public class SkillAbilitySheet : Skill
    {
        [SerializeField] AbilitySheet[] abilities = null;

        [Header("Optional Settings")]
        [SerializeField] AbilitySheet replaceAbilities = null;

        public override void Learn()
        {
            if (replaceAbilities != null && GameManager.Player.HasAbility(replaceAbilities))
            {
                GameManager.Player.RemoveBonusAbility(replaceAbilities);
            }

            foreach (AbilitySheet ability in abilities)
            {
                if (ability != null)
                {
                    GameManager.Player.AddBonusAbility(ability);
                }
            }
            base.Learn();
        }

        public override void GenerateAdditionalDescriptionLines(List<SkillDescriptionLine> lines)
        {
            foreach (AbilitySheet ability in abilities)
            {
                if (ability != null) 
                {
                    List<AbilityDescriptionLine> ablines = new List<AbilityDescriptionLine>();
                    ability.GenerateAdditionalDescriptionLines(ablines); 

                    foreach (var desc in ablines)
                    {
                        lines.Add(new SkillDescriptionLine
                        {
                            header = desc.header,
                            content = desc.content
                        });
                    }
                }
            }
        }


    }
}
