Exemplo n.º 1
0
        private void setGenericItemUpgrades(UpgradeScroll s, int i)
        {
            for (int c = s.Grade == UpgradeScroll.GradeLevel.BLESSED ? 0 : 1; c < 2; c++)
            {
                Rate       sr = s.Rates[i];
                UpgradeRow r;
                switch (s.Type)
                {
                case UpgradeScroll.UpgradeType.REGULAR:
                    #region Generic Item Upgrades

                    string[] weaponUpgradeNames = { "", "Reduce", "Poison" };
                    int[]    weaponUpgradeIDs   = { 0, 30, 40 };
                    for (int n = 0; n < weaponUpgradeNames.Length; n++)
                    {
                        r = new UpgradeRow(CURRENT_WEAPON_INDEX++, s.Modifier, "Generic Weapon Upgrade" + (weaponUpgradeNames[n].Length > 0 ? " (" + weaponUpgradeNames[n] + ")" : ""), sr.Cost, "(+" + sr.Grade + " -> +" + (sr.Grade + 1) + ")");
                        if (c == 0)
                        {
                            r.RequiredItems[0] = TRINA_ID;
                            r.RequiredItems[1] = s.ID;
                        }
                        else
                        {
                            r.RequiredItems[0] = s.ID;
                        }

                        r.Item    = weaponUpgradeIDs[n] + sr.Grade;
                        r.Percent = c == 0 ? sr.TrinaPercent : sr.Percent;
                        upgradeRows.Add(r.Index, r);
                    }

                    string[] armorUpgradeNames = { "", "Strength", "Intelligence", "Magic Power", "Health", "Dexterity", "Intelligence", "Magic Power" };
                    int[]    armorUpgradeIDs   = { 0, 10, 20, 30, 500, 510, 520, 530 };

                    for (int n = 0; n < armorUpgradeNames.Length; n++)
                    {
                        r = new UpgradeRow(CURRENT_ARMOR_INDEX++, s.Modifier, "Generic Armor Upgrade" + (armorUpgradeNames[n].Length > 0 ? " (" + armorUpgradeNames[n] + ")" : ""), sr.Cost, "(+" + sr.Grade + " -> +" + (sr.Grade + 1) + ")");
                        if (c == 0)
                        {
                            r.RequiredItems[0] = TRINA_ID;
                            r.RequiredItems[1] = s.ID;
                        }
                        else
                        {
                            r.RequiredItems[0] = s.ID;
                        }
                        r.Item    = i + armorUpgradeIDs[n];
                        r.Percent = c == 0 ? sr.TrinaPercent : sr.Percent;
                        upgradeRows.Add(r.Index, r);
                        r       = r.Clone();
                        r.Index = CURRENT_HIGHARMOR_INDEX++;
                        upgradeRows.Add(r.Index, r);
                    }
                    #endregion
                    break;

                case UpgradeScroll.UpgradeType.ACCESSORYCOMPOUND:
                    #region Generic Accessories
                    int[] arr  = { 0, 10, 20, 30, 70 };
                    int[] arr2 = { 500, 510, 520, 530, 550, 560, 570, 580, 600, 610, 620, 630, 650, 660, 670, 680, 700, 710, 720, 730 };
                    for (int n = 0; n < arr.Length; n++)
                    {
                        r                  = new UpgradeRow(CURRENT_ACCESSORY_INDEX++, s.Modifier, "Generic Accessory Upgrade", sr.Cost, "(+" + sr.Grade + " -> +" + (sr.Grade + 1) + ")");
                        r.Item             = i + arr[n];
                        r.Percent          = sr.Percent;
                        r.RequiredItems[0] = s.ID;
                        upgradeRows.Add(r.Index, r);
                    }

                    sr = s.Rates[i + 10];

                    for (int n = 0; n < arr2.Length; n++)
                    {
                        r                  = new UpgradeRow(CURRENT_ACCESSORY_INDEX++, s.Modifier, "Generic Accessory Upgrade", sr.Cost, "(+" + sr.Grade + " -> +" + (sr.Grade + 1) + ")");
                        r.Item             = i + arr2[n];
                        r.Percent          = sr.Percent;
                        r.RequiredItems[0] = s.ID;
                        upgradeRows.Add(r.Index, r);
                    }
                    #endregion
                    break;

                case UpgradeScroll.UpgradeType.ACCESSORYENCHANT:
                    #region Accessory Enchants
                    Dictionary <int, int> items = new Dictionary <int, int>();
                    switch (s.ID)
                    {
                    case 379160000:
                        items.Add(20, 531);
                        items.Add(30, 571);
                        items.Add(40, 611);
                        items.Add(80, 621);
                        break;

                    case 379161000:
                        items.Add(10, 491);
                        items.Add(30, 581);
                        items.Add(40, 621);
                        items.Add(80, 631);
                        break;

                    case 379162000:
                        items.Add(10, 491);
                        items.Add(30, 581);
                        items.Add(40, 621);
                        items.Add(80, 631);
                        break;

                    case 379163000:
                        items.Add(10, 491);
                        items.Add(30, 581);
                        items.Add(40, 621);
                        items.Add(80, 631);
                        break;

                    case 379164000:
                        items.Add(10, 521);
                        items.Add(20, 561);
                        items.Add(30, 601);
                        items.Add(40, 641);
                        break;
                    }
                    foreach (KeyValuePair <int, int> kvp in items)
                    {
                        r = new UpgradeRow()
                        {
                            Index = CURRENT_ACCESSORY_INDEX++, Item = kvp.Key, Percent = sr.Percent, Modifier = kvp.Value, Name = "Generic Accessory Upgrade", Note = "(+" + sr.Grade + " -> +" + (sr.Grade + 1) + ")", Cost = sr.Cost, Extension = -1
                        };
                        r.RequiredItems[0] = s.ID;
                        upgradeRows.Add(r.Index, r);
                    }
                    #endregion
                    break;
                }
            }
        }
Exemplo n.º 2
0
        private void addUniqueUpgrade(Item i)
        {
            int id = getUnlockedID(i);

            if (id == -1)
            {
                return;
            }
            //Check if is accessory

            foreach (UpgradeScroll us in _scrolls.Values)
            {
                UpgradeRow r;
                Rate       sr = us.Rates[0];
                if (us.Type == UpgradeScroll.UpgradeType.ELEMENT || us.Type == UpgradeScroll.UpgradeType.ACCESSORYCOMPOUND)
                {
                    if (i.isAccessory)
                    {
                        r = new UpgradeRow(CURRENT_ACCESSORY_INDEX++, (id - i.ID), "Unique Accessory Elemental Unlock", sr.Cost, "(+" + sr.Grade + " -> +" + (sr.Grade + 1) + ")", i.Extension);
                    }
                    else
                    {
                        r = new UpgradeRow(CURRENT_WEAPON_INDEX++, (id - i.ID), "Unique Weapon Elemental Unlock", sr.Cost, "(+" + sr.Grade + " -> +" + (sr.Grade + 1) + ")", i.Extension);
                    }

                    r.RequiredItems[0] = us.ID;
                    r.Item             = i.ExtensionID;
                    r.Percent          = us.Rates[0].Percent;
                    upgradeRows.Add(r.Index, r);
                }

                if (us.Type == UpgradeScroll.UpgradeType.REGULAR || us.Type == UpgradeScroll.UpgradeType.ACCESSORYCOMPOUND)
                {
                    for (int c = 1; c < 11; c++)
                    {
                        sr = us.Rates[c];
                        if (i.isAccessory && us.Accessory)
                        {
                            r = new UpgradeRow(CURRENT_ACCESSORY_INDEX++, us.Modifier, "Unique Accessory Upgrade (" + i.Name.Replace("'", "''") + ")", sr.Cost, "(+" + sr.Grade + " -> +" + (sr.Grade + 1) + ")", i.Extension);
                        }
                        else
                        {
                            r = new UpgradeRow(CURRENT_WEAPON_INDEX++, us.Modifier, "Unique Weapon Upgrade (" + i.Name.Replace("'", "''") + ")", sr.Cost, "(+" + sr.Grade + " -> +" + (sr.Grade + 1) + ")", i.Extension);
                        }
                        r.RequiredItems[0] = us.ID;

                        r.Item    = (_items[id].ExtensionID + (c - 1));
                        r.Percent = us.Rates[c].Percent;
                        upgradeRows.Add(r.Index, r);

                        if (us.Grade == UpgradeScroll.GradeLevel.BLESSED)
                        {
                            r = r.Clone();
                            if (i.isAccessory)
                            {
                                r.Index = CURRENT_ACCESSORY_INDEX++;
                            }
                            else
                            {
                                r.Index = CURRENT_WEAPON_INDEX++;
                            }

                            r.Item             = (_items[id].ExtensionID + (c - 1));
                            r.RequiredItems[0] = TRINA_ID;
                            r.RequiredItems[1] = us.ID;
                            r.Percent          = us.Rates[c].TrinaPercent;
                            upgradeRows.Add(r.Index, r);
                        }
                    }
                }
            }
        }