void FillUnitItems(StateUnitModel unit, ClickAction <ItemModel> onClick, List <ItemModel> result) { foreach (var state in GetItemStates(unit)) { result.Add(CreateModel(state, onClick)); } }
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); }
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); }
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)); } }
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); }
public void TakeOff(StateUnitModel unit, ItemModel item) { var stateItem = (StateItemModel)item; _runner.TryAddCommand(new TakeOffItemCommand(stateItem.State.Id, unit.State.Id)); }
public void Equip(StateUnitModel unit, ItemModel item) { var stateItem = (StateItemModel)item; _runner.TryAddCommand(new EquipItemCommand(stateItem.State.Id, unit.State.Id)); }
public ItemModel CreateModel(StateUnitModel unit, ulong itemId, ClickAction <ItemModel> onClick) { var state = GetItemState(unit, itemId); return(CreateModel(state, onClick)); }
ItemState GetItemState(StateUnitModel unit, ulong itemId) => unit.State.Items.Find(it => it.Id == itemId);
List <ItemState> GetItemStates(StateUnitModel unit) => unit.State.Items;