//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); }
//equip item public void Equip(int slotId, EItemKey itemKey) { //check slotId if (slotId < 0 || _equipment.Length - 1 < slotId) { EventsAggregator.Items.Broadcast <int>(EItemEvent.WrongSlotId, slotId); return; } if (!CanEquipItem(itemKey, _equipment[slotId].SlotName)) { EventsAggregator.Items.Broadcast <int>(EItemEvent.WrongItem, slotId); return; } BaseItem item = ItemsConfig.Instance.GetItem(itemKey); EItemKey oldItemKey = GetItemInSlot(slotId); _equipment[slotId].ItemKey = item.Key; if (_onEquipmentUpdate != null) { _onEquipmentUpdate(_equipment[slotId].SlotName, oldItemKey, itemKey); } }
public virtual void SetWeaponType(EItemKey weaponRKey, EItemKey weaponLKey) { if (weaponRKey != EItemKey.None && weaponLKey != EItemKey.None) { //TODO: setup dual animation } else { EItemType weaponType = ItemsConfig.Instance.GetItem(weaponRKey != EItemKey.None ? weaponRKey : weaponLKey).Type; switch (weaponType) { case EItemType.W_Gun: _animRun = EUnitAnimationState.Run_Gun; _animAttack = EUnitAnimationState.Strike_Gun; _weaponStanceOffset = _gunStanceOffset; break; case EItemType.W_Rifle: _animRun = EUnitAnimationState.Run_Rifle; _animAttack = EUnitAnimationState.Strike_Rifle; _weaponStanceOffset = _rifleStanceOffset; break; } } }
public bool IsWeaponRanged(EItemKey itemKey) { if (IsWeapon(itemKey)) { return(itemKey == EItemKey.W_Gun || itemKey == EItemKey.W_Rifle); } return(false); }
public PlayerItem GetItem(EItemKey itemKey) { for (int i = 0; i < _items.Count; i++) { if (_items[i].ItemData.Key == itemKey) { return _items[i]; } } return null; }
private string GetItemResourcePath(EItemKey itemKey) { BaseItem itemData = ItemsConfig.Instance.GetItem(itemKey); if (itemData != null && !itemData.PrefabName.Equals(string.Empty)) { return(itemData.PrefabName); } return(itemKey.ToString()); }
public PlayerItem GetItem(EItemKey itemKey) { for (int i = 0; i < _items.Count; i++) { if (_items[i].ItemData.Key == itemKey) { return(_items[i]); } } return(null); }
public BaseItem GetItem(EItemKey itemKey) { for (int i = 0; i < _data.Length; i++) { if (_data[i].Key == itemKey) { return(_data[i]); } } return(null); }
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; } } }
//equip item public void Equip(int slotId, EItemKey itemKey) { //check slotId if (slotId < 0 || _equipment.Length - 1 < slotId) { EventsAggregator.Items.Broadcast<int>(EItemEvent.WrongSlotId, slotId); return; } if (!CanEquipItem(itemKey, _equipment[slotId].SlotName)) { EventsAggregator.Items.Broadcast<int>(EItemEvent.WrongItem, slotId); return; } BaseItem item = ItemsConfig.Instance.GetItem(itemKey); EItemKey oldItemKey = GetItemInSlot(slotId); _equipment[slotId].ItemKey = item.Key; if (_onEquipmentUpdate != null) { _onEquipmentUpdate(_equipment[slotId].SlotName, oldItemKey, itemKey); } }
public void Equip(EUnitEqupmentSlot slotName, EItemKey itemKey) { Equip(SlotNameToId(slotName), itemKey); }
public ItemSlot(EUnitEqupmentSlot slotName) { _slotName = slotName; _itemKey = EItemKey.None; }
public void Equip(BaseHero hero, int slotId, EItemKey itemKey) { hero.Inventory.Equip(slotId, itemKey); }
public override void SetWeaponType(EItemKey weaponRKey, EItemKey weaponLKey) { _animRun = EUnitAnimationState.Run_Gun; _animAttack = EUnitAnimationState.Strike_Gun; _weaponStanceOffset = _gunStanceOffset; }
protected virtual void OnEquipmentUpdate(EUnitEqupmentSlot slot, EItemKey oldItemKey, EItemKey newItemKey) { RecalculateParams(); EventsAggregator.Units.Broadcast<BaseUnit, EUnitEqupmentSlot, EItemKey, EItemKey>(EUnitEvent.EquipmentUpdate, this, slot, oldItemKey, newItemKey); }
public ItemSlot(EUnitEqupmentSlot slotName, EItemKey itemKey) { _slotName = slotName; _itemKey = itemKey; }
public static string GetLootIconResourcePath(EItemKey itemKey) { return(GetLootIconResourcePath(ItemsConfig.Instance.GetItem(itemKey).IconName)); }
public BaseItem(EItemKey key, EItemType type, EUnitEqupmentSlot[] possibleSlots) { _key = key; _type = type; _possibleSlots = possibleSlots; }
private void LoadItemsResources(Dictionary <EItemKey, GameObject[]> resourcesDic, EUnitKey unitKey, UnitModelView unitModelView, EItemKey weaponRKey, EItemKey weaponLKey, EItemKey armorKey) { if (unitModelView != null) { GameObject rhWeaponResource = null; GameObject lhWeaponResource = null; GameObject headArmorResource = null; GameObject bodyArmorResource = null; unitModelView.SetWeaponType(weaponRKey, weaponLKey); //right hand weapon if (!resourcesDic.ContainsKey(weaponRKey)) { GameObject[] weaponResources = new GameObject[1]; weaponResources[0] = Resources.Load(string.Format("{0}/{1}", GameConstants.Paths.ITEM_RESOURCES, GetItemResourcePath(weaponRKey))) as GameObject; resourcesDic.Add(weaponRKey, weaponResources); rhWeaponResource = weaponResources[0]; } else if (weaponRKey != EItemKey.None) { rhWeaponResource = resourcesDic[weaponRKey][0]; } //left hand weapon if (!resourcesDic.ContainsKey(weaponLKey)) { GameObject[] weaponResources = new GameObject[1]; weaponResources[0] = Resources.Load(string.Format("{0}/{1}", GameConstants.Paths.ITEM_RESOURCES, GetItemResourcePath(weaponLKey))) as GameObject; resourcesDic.Add(weaponLKey, weaponResources); lhWeaponResource = weaponResources[0]; } else if (weaponLKey != EItemKey.None) { lhWeaponResource = resourcesDic[weaponLKey][0]; } //armor if (armorKey == EItemKey.None) { //Debug.LogWarning(string.Format("No armor set for {0} unit", unitKey)); } else if (!resourcesDic.ContainsKey(armorKey)) { string armorResourcePath = GetItemResourcePath(armorKey); GameObject[] armorResources = new GameObject[2]; armorResources[0] = Resources.Load(string.Format("{0}/{1}_head", GameConstants.Paths.ITEM_RESOURCES, armorResourcePath)) as GameObject; armorResources[1] = Resources.Load(string.Format("{0}/{1}_body", GameConstants.Paths.ITEM_RESOURCES, armorResourcePath)) as GameObject; resourcesDic.Add(armorKey, armorResources); headArmorResource = armorResources[0]; bodyArmorResource = armorResources[1]; } else { headArmorResource = resourcesDic[armorKey][0]; bodyArmorResource = resourcesDic[armorKey][1]; } unitModelView.SetupGraphics(rhWeaponResource, lhWeaponResource, headArmorResource, bodyArmorResource); } }
public bool IsWeapon(EItemKey itemKey) { return((int)itemKey > 1000000 && (int)itemKey < 2000000); }
public static string GetLootIconResourcePath(EItemKey itemKey) { return GetLootIconResourcePath(ItemsConfig.Instance.GetItem(itemKey).IconName); }
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; }
public override void SetWeaponType(EItemKey weaponRKey, EItemKey weaponLKey) { _animRun = EUnitAnimationState.Run_Rifle; _animAttack = EUnitAnimationState.Strike_Rifle; _weaponStanceOffset = _rifleStanceOffset; }
public RequireCombineMaterialData(EItemKey eItemKey, int iItemCount) { this.eItemKey = eItemKey; this.iItemCount = iItemCount; }