//check if item can be equipped public bool CanEquipItem(EItemKey itemKey, EUnitEqupmentSlot slotKey) { BaseItem item = ItemsConfig.Instance.GetItem(itemKey); //check item data found if (item == null) { return(false); } //check slot is correct if (!_slotsConfig.ContainsKey(slotKey)) { return(false); } //no slot restrictions if (_slotsConfig[slotKey].Length == 0) { return(true); } //check item fits to slot for (int i = 0; i < _slotsConfig[slotKey].Length; i++) { if (_slotsConfig[slotKey][i] == item.Type) { return(true); } } return(false); }
//unequip item public void Unequip(EUnitEqupmentSlot itemSlot) { for (int i = 0; i < _equipment.Length; i++) { if (_equipment[i].SlotName == itemSlot) { Equip(i, EItemKey.None); break; } } }
public EItemKey GetItemInSlot(EUnitEqupmentSlot slotKey) { for (int i = 0; i < _equipment.Length; i++) { if (_equipment[i].SlotName == slotKey) { return _equipment[i].ItemKey; } } return EItemKey.None; }
public EItemKey GetBaseItemInSlot(EUnitEqupmentSlot slotName) { for (int i = 0; i < _baseEquipment.Length; i++) { if (_baseEquipment[i].SlotName == slotName) { return(_baseEquipment[i].ItemKey); } } return(EItemKey.None); }
//get slot id by slot name public int SlotNameToId(EUnitEqupmentSlot slotName) { for (int i = 0; i < _equipment.Length; i++) { if (_equipment[i].SlotName == slotName) { return(i); } } return(-1); }
private void OnItemEquip(BaseUnit unit, EUnitEqupmentSlot slot, EItemKey oldItemKey, EItemKey newItemKey) { if (UnitsConfig.Instance.IsHero(unit.Data.Key) && Global.Instance.Player.Heroes.HaveHero(unit.Data.Key)) { PlayerItem oldItem = GetItem(oldItemKey); if (oldItem != null) { oldItem.ItemCarrier = EUnitKey.Idle; oldItem.ItemSlot = EUnitEqupmentSlot.None; } PlayerItem newItem = GetItem(newItemKey); if (newItem != null) { newItem.ItemCarrier = unit.Data.Key; newItem.ItemSlot = slot; } } }
public BaseItem(EItemKey key, EItemType type, EUnitEqupmentSlot[] possibleSlots) { _key = key; _type = type; _possibleSlots = possibleSlots; }
public ItemSlot(EUnitEqupmentSlot slotName, EItemKey itemKey) { _slotName = slotName; _itemKey = itemKey; }
public ItemSlot(EUnitEqupmentSlot slotName) { _slotName = slotName; _itemKey = EItemKey.None; }
public void Equip(EUnitEqupmentSlot slotName, EItemKey itemKey) { Equip(SlotNameToId(slotName), itemKey); }
protected virtual void OnEquipmentUpdate(EUnitEqupmentSlot slot, EItemKey oldItemKey, EItemKey newItemKey) { RecalculateParams(); EventsAggregator.Units.Broadcast <BaseUnit, EUnitEqupmentSlot, EItemKey, EItemKey>(EUnitEvent.EquipmentUpdate, this, slot, oldItemKey, newItemKey); }
protected virtual void OnEquipmentUpdate(EUnitEqupmentSlot slot, EItemKey oldItemKey, EItemKey newItemKey) { RecalculateParams(); EventsAggregator.Units.Broadcast<BaseUnit, EUnitEqupmentSlot, EItemKey, EItemKey>(EUnitEvent.EquipmentUpdate, this, slot, oldItemKey, newItemKey); }
//check if item can be equipped public bool CanEquipItem(EItemKey itemKey, EUnitEqupmentSlot slotKey) { BaseItem item = ItemsConfig.Instance.GetItem(itemKey); //check item data found if (item == null) { return false; } //check slot is correct if (!_slotsConfig.ContainsKey(slotKey)) { return false; } //no slot restrictions if (_slotsConfig[slotKey].Length == 0) { return true; } //check item fits to slot for (int i = 0; i < _slotsConfig[slotKey].Length; i++) { if (_slotsConfig[slotKey][i] == item.Type) { return true; } } return false; }
//get slot id by slot name public int SlotNameToId(EUnitEqupmentSlot slotName) { for(int i = 0; i < _equipment.Length; i++) { if(_equipment[i].SlotName == slotName) { return i; } } return -1; }