//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);
 }
 //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;
         }
     }
 }
	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;
			}
		}
	}
    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;
	}
Exemple #12
0
 public ItemSlot(EUnitEqupmentSlot slotName)
 {
     _slotName = slotName;
     _itemKey  = EItemKey.None;
 }
 public void Equip(EUnitEqupmentSlot slotName, EItemKey itemKey)
 {
     Equip(SlotNameToId(slotName), itemKey);
 }
Exemple #14
0
 public ItemSlot(EUnitEqupmentSlot slotName, EItemKey itemKey)
 {
     _slotName = slotName;
     _itemKey  = itemKey;
 }
Exemple #15
0
    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;
	}
	public void Equip(EUnitEqupmentSlot slotName, EItemKey itemKey) {
		Equip(SlotNameToId(slotName), itemKey);
	}