コード例 #1
0
ファイル: ItemService.cs プロジェクト: KonH/BattlerGame
 void FillUnitItems(StateUnitModel unit, ClickAction <ItemModel> onClick, List <ItemModel> result)
 {
     foreach (var state in GetItemStates(unit))
     {
         result.Add(CreateModel(state, onClick));
     }
 }
コード例 #2
0
ファイル: ItemService.cs プロジェクト: KonH/BattlerGame
        public List <ItemModel> GetAllUnitItems(StateUnitModel unit, ClickAction <ItemModel> onItem, ClickAction <ItemModel> onPlaceholder)
        {
            var result = new List <ItemModel>();

            FillUnitItems(unit, onItem, result);
            FillUnitPlaceholders(unit, onPlaceholder, result);
            return(result);
        }
コード例 #3
0
ファイル: ItemService.cs プロジェクト: KonH/BattlerGame
        HashSet <ItemType> GetUsedTypes(StateUnitModel unit)
        {
            _usedTypes.Clear();
            var result = _usedTypes;

            foreach (var state in GetItemStates(unit))
            {
                var config = GetItemConfig(state);
                result.Add(config.Type);
            }
            return(result);
        }
コード例 #4
0
ファイル: ItemService.cs プロジェクト: KonH/BattlerGame
        void FillUnitPlaceholders(StateUnitModel unit, ClickAction <ItemModel> onClick, List <ItemModel> result)
        {
            var usedTypes = GetUsedTypes(unit);

            foreach (var type in _allItemTypes)
            {
                if (usedTypes.Contains(type))
                {
                    continue;
                }
                result.Add(CreatePlaceholder(type, onClick));
            }
        }
コード例 #5
0
        public void Init(
            GameStateUpdateService update, ItemService items, UnitService units,
            ItemFragment.Factory itemFragment, ItemsWindow.Factory itemsWindow,
            Canvas parent, StateUnitModel unit
            )
        {
            _update       = update;
            _items        = items;
            _units        = units;
            _itemFragment = itemFragment;
            _itemsWindow  = itemsWindow;
            _unit         = unit;

            update.AddHandler <EquipItemCommand>  (OnEquipItem);
            update.AddHandler <TakeOffItemCommand>(OnTakeOffItem);

            CloseButton.onClick.AddListener(Hide);

            CreateFragments();
            Refresh();

            ShowAt(parent);
        }
コード例 #6
0
ファイル: ItemService.cs プロジェクト: KonH/BattlerGame
        public void TakeOff(StateUnitModel unit, ItemModel item)
        {
            var stateItem = (StateItemModel)item;

            _runner.TryAddCommand(new TakeOffItemCommand(stateItem.State.Id, unit.State.Id));
        }
コード例 #7
0
ファイル: ItemService.cs プロジェクト: KonH/BattlerGame
        public void Equip(StateUnitModel unit, ItemModel item)
        {
            var stateItem = (StateItemModel)item;

            _runner.TryAddCommand(new EquipItemCommand(stateItem.State.Id, unit.State.Id));
        }
コード例 #8
0
ファイル: ItemService.cs プロジェクト: KonH/BattlerGame
        public ItemModel CreateModel(StateUnitModel unit, ulong itemId, ClickAction <ItemModel> onClick)
        {
            var state = GetItemState(unit, itemId);

            return(CreateModel(state, onClick));
        }
コード例 #9
0
ファイル: ItemService.cs プロジェクト: KonH/BattlerGame
 ItemState GetItemState(StateUnitModel unit, ulong itemId) => unit.State.Items.Find(it => it.Id == itemId);
コード例 #10
0
ファイル: ItemService.cs プロジェクト: KonH/BattlerGame
 List <ItemState> GetItemStates(StateUnitModel unit) => unit.State.Items;