using Entitas;
using Game;
using System.Collections.Generic;
using Articy.Unity;
using Articy.Touhou;
/// 
/// 局内背包,局内掉落物品/货币/祝福 都在此管理
/// 
[Game]
public class BagComponent : IComponent
{
    public MetaDictionary AllBless = new MetaDictionary();    //所有祝福
    public List ChooseBless = new List(); //祝福选择界面备选项
}
namespace Game
{
    public abstract partial class Util
    {
        //添加祝福
        public static void AddBless(GameEntity entity, string blessId, int level = 1)
        {
            var bag = entity.bag;
            var cfg = Util.GetBlessConfig(blessId);
            bag.AllBless[blessId] = level;
        }
        //移除祝福
        public static void RemoveBless(GameEntity entity, string blessId)
        {
            var bag = entity.bag;
            var cfg = Util.GetBlessConfig(blessId);
        }
        //是否拥有祝福
        public static bool HasBless(GameEntity entity, string blessId)
        {
            var bag = entity.bag;
            return bag.AllBless.ContainsKey(blessId);
        }
        //获取次级祝福数量
        public static int GetSubBlessNum(GameEntity entity)
        {
            var bag = entity.bag;
            return bag.AllBless.Count;
        }
        //移除所有祝福
        public static void RemoveAllBless(GameEntity entity)
        {
            var bag = entity.bag;
            bag.AllBless.Clear();
        }
        private static bool CheckBlessGroup(GameEntity entity, ArticyObject groupObj)
        {
            if (groupObj == null)
            {
                return true;
            }
            var blessGroup = (groupObj as IObjectWithFeatureBlessGroup).GetFeatureBlessGroup();
            foreach (var blessObj in blessGroup.BlessGroup)
            {
                if (Util.HasBless(entity, blessObj.TechnicalName))
                {
                    return true;
                }
            }
            return false;
        }
    }
}