Example #1
0
 public static void OnItemEquipped(int itemIndex)
 {
     if (ItemEquipped != null)
     {
         ItemEquipped.Invoke(itemIndex);
     }
 }
 public void Equip(IItem item)
 {
     // We don't want multiple items equipped at the same time
     UnequipActiveItem();
     // Place this item underneath our right hand
     HandleItemEquipped(item);
     // Invoke the Event if the Event is not null
     ActiveItemChanged?.Invoke(ActiveItem);
     ItemEquipped?.Invoke(item);
 }
Example #3
0
        public void SwapWeapon()
        {
            if (CombatEncounter.Active?.IsEntityTurn(gameObject) == false)
            {
                return;
            }

            var mh = Slots.First(s => s.Type == EquipmentSlotType.MainHand);
            var oh = Slots.First(s => s.Type == EquipmentSlotType.OffHand);

            if (mh.Item.IsAnySkillOnCooldown() || oh.Item.IsAnySkillOnCooldown())
            {
                throw new SkillIsOnCooldownException();
            }

            var current = new List <Item> {
                mh.Item, oh.Item
            };

            if (!mh.IsEmpty)
            {
                RemoveItemBonuses(mh.Item, mh);
                RemoveVisuals(mh.Item, mh);
            }

            if (!oh.IsEmpty)
            {
                RemoveItemBonuses(oh.Item, oh);
                RemoveVisuals(oh.Item, oh);
            }

            mh.Put(AltWeaponSet[0]);
            oh.Put(AltWeaponSet[1]);

            if (!mh.IsEmpty)
            {
                ApplyItemBonuses(mh.Item, mh);
                ApplyVisuals(mh.Item, mh);
            }

            if (!oh.IsEmpty)
            {
                ApplyItemBonuses(oh.Item, oh);
                ApplyVisuals(oh.Item, oh);
            }

            IsOnAltWeaponSet = !IsOnAltWeaponSet;

            SetAltWeaponSet(current);

            ItemEquipped?.Invoke(mh.Item);
            ItemEquipped?.Invoke(oh.Item);
        }
Example #4
0
        public void Equip(IItem item)
        {
            if (ActiveItem != null)
            {
                ActiveItem.transform.SetParent(_itemRoot);
                ActiveItem.gameObject.SetActive(false);
                ItemUnEquipped?.Invoke(ActiveItem);
            }
            Debug.Log($"Equipped Item: {item.gameObject.name}");

            item.transform.SetParent(rightHand);
            item.transform.localPosition = Vector3.zero;
            item.transform.localRotation = Quaternion.identity;

            ActiveItem = item;
            ActiveItem.gameObject.SetActive(true);
            ActiveItemChanged?.Invoke(ActiveItem);
            ItemEquipped?.Invoke(item);
        }
Example #5
0
        public void EquipIntoSlot(Item item, EquipmentSlot slot)
        {
            if (this.experience != null && item.RequiredLevel > this.experience.Experience.Level)
            {
                return;
            }

            if (item.IsEmpty)
            {
                Debug.LogError("Trying to equip empty item.");
                return;
            }

            if (!slot.CanEquip(item))
            {
                Debug.LogError($"Can't equip item {item.Name} into slot with type {slot.Type}");
                return;
            }

            if (IsEquipped(item))
            {
                Unequip(item);
            }

            if (!slot.IsEmpty)
            {
                Unequip(slot.Item);
            }

            item.Type.EquipmentStrategy.Prepare(item, slot, this);
            item.EquipmentSlot = slot;
            item.Equipment     = this;

            item.Inventory?.Remove(item);
            item.Inventory = this.inventory;

            slot.Put(item);

            ApplyItemBonuses(item, slot);
            ApplyVisuals(item, slot);

            ItemEquipped?.Invoke(item);
        }
 private void OnItemEquipped(EventData eventData)
 {
     ItemEquipped?.Invoke(eventData);
 }
Example #7
0
        private void OnItemEquipped(ItemInfo itemEquipped)
        {
            ItemEventArgs itemEventArgs = new ItemEventArgs(itemEquipped);

            ItemEquipped?.Invoke(this, itemEventArgs);
        }