public void ResetSlot()
 {
     label.text  = "---";
     label.color = Color.white;
     modifier    = null;
     btn.color   = defaultColor;
 }
Пример #2
0
        private void LoadModifiers(Item item)
        {
            ModifiableItem mItem = item as ModifiableItem;

            for (int i = 0; i < modifierSlot.Count; i++)
            {
                if (mItem.modifiers.Count > i)
                {
                    ModifiableItem.Modifier mod = mItem.modifiers[i];
                    modifierSlot[i].SetModifier(mItem.modifiers[i]);
                }
                else
                {
                    modifierSlot[i].ResetSlot();
                }
            }
        }
Пример #3
0
        public void Reroll()
        {
            if (previouseSelectedSlot == null || previouseSelectedSlot.GetModifier() == null)
            {
                return;
            }

            //get mod and pay price
            ModifiableItem.Modifier mod = previouseSelectedSlot.GetModifier();
            int price = (itemSlot.item.rarity == Rank.Rare && mod.rarity == Rank.Normal) ? rerollPrices[1] : rerollPrices[(int)mod.rarity];
            int payed = playerInventory.GetGems(price);

            if (payed == 0)
            {
                return;
            }

            int index = (itemSlot.item as ModifiableItem).modifiers.IndexOf(mod);

            (itemSlot.item as ModifiableItem).modifiers.Remove(mod);

            //get baseModifier
            GenericItem      baseItem = GenericItem.GetFromID(itemSlot.item.itemID);
            ItemStatModifier baseMod;

            do
            {
                baseMod = baseItem.GetRandomModifier(mod.rarity);
            }while ((itemSlot.item as ModifiableItem).modifiers.Find(x => x.name == baseMod.name) != null);

            ModifiableItem.Modifier newMod = new ModifiableItem.Modifier(baseMod, baseItem.modifierQuality);

            //upgrade modifier if rerolled modifier was rare
            if (itemSlot.item.rarity == Rank.Rare && mod.rarity == Rank.Normal)
            {
                newMod.value *= 1 + PlayerInfo.GetGlobalParameters().rareValueImprovement;
            }



            (itemSlot.item as ModifiableItem).modifiers.Insert(index, newMod);
            LoadModifiers(itemSlot.item);
            FindObjectOfType <SavingSystem>().Save("PlayerData", SaveType.All);
        }
Пример #4
0
        public void SelectModifier(EnchantmentModifierSlot slot)
        {
            HandleSelectionColor(slot);

            ModifiableItem.Modifier mod = slot.GetModifier();

            if (mod == null)
            {
                rerollBtn.text = "Reroll for 0";
                return;
            }
            if (itemSlot.item.rarity == Rank.Rare && mod.rarity == Rank.Normal)
            {
                rerollBtn.text = "Reroll for " + rerollPrices[1];
            }
            else
            {
                rerollBtn.text = "Reroll for " + rerollPrices[(int)mod.rarity];
            }
        }
 public void SetModifier(ModifiableItem.Modifier mod)
 {
     modifier    = mod;
     label.text  = mod.GetDisplayText();
     label.color = ModifiableItem.GetRarityColor(mod.rarity);
 }