Beispiel #1
0
        protected void EquipOrDequipItem(Item item, int slotIndex)
        {
            if (item == null || item.item_name == null)
            {
                return;
            }
            Item itemEquipped = equipmentsData.GetItemFromEquipmentsAt(slotIndex);

            if (itemEquipped == null || itemEquipped.item_name == "")
            {
                if (item.slot == ItemSlot.Weapon && equipmentsData.isItemEquipped(item))
                {
                    int otherSlot = slotIndex == 0 ? 4 : 0;
                    UnEquipItem(equipmentsData.GetItemFromEquipmentsAt(otherSlot), otherSlot);
                }
                EquipItem(item, slotIndex);                                              //equip at Empty Place
            }
            else if (item.item_name != itemEquipped.item_name)                           //is item already in the same slot?
            {
                if (item.slot == ItemSlot.Weapon && equipmentsData.isItemEquipped(item)) //is item already equipped?
                {
                    int otherSlot = slotIndex == 0 ? 4 : 0;
                    EquipItem(itemEquipped, otherSlot);                     //equip item that is here in other hand
                }
                else if (itemEquipped != null)
                {
                    UnEquipItem(itemEquipped, slotIndex);                   //remove Item before Adding new one
                }
                EquipItem(item, slotIndex);                                 //Equip after Dequiping or swap
            }
            else
            {
                UnEquipItem(itemEquipped, slotIndex);                 //Dequip
            }

            equipmentsData.EquipmentsUpdated();
        }
Beispiel #2
0
        //public void ItemEquipped(ItemAndSlot item)
        //{
        //    if (item == null)
        //        return;
        //    AddStats(item.item, overAllStats);
        //    CalculateAdditionalStats(overAllStats);
        //    CalculateMythicalBoost(equipments.gears, overAllStats);
        //    UpdateUIValues();
        //}


        //public void ItemDequipped(ItemAndSlot item)
        //{
        //    if (item == null)
        //        return;
        //    SubstractStatsForItem(item.item, overAllStats);
        //    CalculateAdditionalStats(overAllStats);
        //    CalculateMythicalBoost(equipments.gears, overAllStats);
        //    UpdateUIValues();
        //}


        ItemData CalculatePreviewValues(Item item = null)
        {
            previewEquipments = equipments.gears.GetClone();

            //GetCurrentValues(tempOverAllStats);
            if (item != null)
            {
                switch (item.slot)              //switch corrosponding item with selected item
                {
                case ItemSlot.Weapon:
                    if (equipments.IsWeaponAlreadyEquipped(item.item_name) == 0)
                    {
                        if (previewStatsOnDequip && equipments.isItemEquipped(item))
                        {
                            previewEquipments.weapon2Gear = null;
                        }
                        else
                        {
                            previewEquipments.weapon2Gear = item;
                        }
                    }
                    else
                    {
                        if (previewStatsOnDequip && equipments.isItemEquipped(item))
                        {
                            previewEquipments.weapon1Gear = null;
                        }
                        else
                        {
                            previewEquipments.weapon1Gear = item;
                        }
                    }
                    break;

                case ItemSlot.Head:
                    if (previewStatsOnDequip && equipments.isItemEquipped(item))
                    {
                        previewEquipments.headGear = null;
                    }
                    else
                    {
                        previewEquipments.headGear = item;
                    }
                    break;

                case ItemSlot.Body:
                    if (previewStatsOnDequip && equipments.isItemEquipped(item))
                    {
                        previewEquipments.bodyGear = null;
                    }
                    else
                    {
                        previewEquipments.bodyGear = item;
                    }
                    break;

                case ItemSlot.Feet:
                    if (previewStatsOnDequip && equipments.isItemEquipped(item))
                    {
                        previewEquipments.LegsGear = null;
                    }
                    else
                    {
                        previewEquipments.LegsGear = item;
                    }
                    break;

                default:
                    break;
                }
            }
            else
            {
                return(null);
            }

            tempOverAllStats = new ItemData();
            UpdateStatsForSet(previewEquipments, tempOverAllStats);

            CalculateMythicalBoost(previewEquipments, tempOverAllStats);
            CalculateAdditionalStats(tempOverAllStats);
            return(tempOverAllStats);
        }