Esempio n. 1
0
 public double GetRefineRate(RefineMethod method)
 {
     if (method == RefineMethod.Phracon && RefineLevel >= 0 && RefineLevel < 10)
     {
         return(Level1StandardRates[RefineLevel]);
     }
     else if (method == RefineMethod.EnrichedOridecon && RefineLevel >= 0 && RefineLevel < 10)
     {
         return(Level1PremiumRates[RefineLevel]);
     }
     else if (method == RefineMethod.WhitesmithOridecon && RefineLevel >= 0 && RefineLevel < 10)
     {
         return(Level1WhitesmithRates[RefineLevel]);
     }
     else if (method == RefineMethod.Bradium && RefineLevel >= 10 && RefineLevel < 20)
     {
         return(Level1StandardRates[RefineLevel]);
     }
     else if (method == RefineMethod.HDBradium && RefineLevel >= 10 && RefineLevel < 20)
     {
         return(Level1PremiumRates[RefineLevel]);
     }
     else
     {
         throw new ArgumentException($"Item of refine +{RefineLevel} cannot be refined with {method}");
     }
 }
Esempio n. 2
0
 public double GetRefineRate(RefineMethod method)
 {
     if (method == RefineMethod.Elunium && RefineLevel >= 0 && RefineLevel < 10)
     {
         return(ArmorStandardRates[RefineLevel]);
     }
     else if (method == RefineMethod.EnrichedElunium && RefineLevel >= 0 && RefineLevel < 10)
     {
         return(ArmorPremiumRates[RefineLevel]);
     }
     else if (method == RefineMethod.Carnium && RefineLevel >= 10 && RefineLevel < 20)
     {
         return(ArmorStandardRates[RefineLevel]);
     }
     else if (method == RefineMethod.HDCarnium && RefineLevel >= 10 && RefineLevel < 20)
     {
         return(ArmorPremiumRates[RefineLevel]);
     }
     else
     {
         throw new ArgumentException($"Item of refine +{RefineLevel} cannot be refined with {method}");
     }
 }
Esempio n. 3
0
        private void TickRefineCounts(RefineCounts counts, RefineMethod method, IRefinableItem item)
        {
            switch (method)
            {
            case RefineMethod.Phracon:
                counts.PhraconConsumed++;
                counts.PhraconServices++;
                break;

            case RefineMethod.WhitesmithPhracon:
                counts.PhraconConsumed++;
                break;

            case RefineMethod.Emveretarcon:
                counts.EmveretarconConsumed++;
                counts.EmveretarconServices++;
                break;

            case RefineMethod.WhitesmithEmveretarcon:
                counts.EmveretarconConsumed++;
                break;

            case RefineMethod.Oridecon:
                counts.OrideconConsumed++;
                if (item is LevelThreeWeapon)
                {
                    counts.Oridecon3Services++;
                }
                else if (item is LevelFourWeapon)
                {
                    counts.Oridecon4Services++;
                }
                break;

            case RefineMethod.WhitesmithOridecon:
                counts.OrideconConsumed++;
                break;

            case RefineMethod.Elunium:
                counts.EluniumConsumed++;
                counts.EluniumServices++;
                break;

            case RefineMethod.EnrichedOridecon:
                counts.EnrichedOrideconConsumed++;
                if (item is LevelThreeWeapon)
                {
                    counts.EnrichedOridecon3Services++;
                }
                else if (item is LevelFourWeapon)
                {
                    counts.EnrichedOridecon4Services++;
                }
                break;

            case RefineMethod.EnrichedElunium:
                counts.EnrichedEluniumConsumed++;
                counts.EnrichedEluniumServices++;
                break;

            case RefineMethod.Carnium:
                counts.CarniumConsumed++;
                counts.CarniumServices++;
                break;

            case RefineMethod.Bradium:
                counts.BradiumConsumed++;
                counts.BradiumServices++;
                break;

            case RefineMethod.HDCarnium:
                counts.HDCarniumConsumed++;
                counts.HDCarniumServices++;
                break;

            case RefineMethod.HDBradium:
                counts.HDBradiumConsumed++;
                counts.HDBradiumServices++;
                break;
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Ensures the given item can be refined with the specified method
        /// </summary>
        /// <returns>True if a valid refine interaction</returns>
        private bool IsValidRefineMethod(IRefinableItem item, RefineMethod method)
        {
            if (item.RefineLevel < 0 || item.RefineLevel >= 20)
            {
                return(false);
            }

            switch (item)
            {
            case LevelOneWeapon _:
                if (item.RefineLevel < 10 && method.EqualsAny(RefineMethod.Phracon, RefineMethod.WhitesmithPhracon))
                {
                    return(true);
                }
                else if (item.RefineLevel >= 10 && method.EqualsAny(RefineMethod.Bradium, RefineMethod.HDBradium))
                {
                    return(true);
                }
                return(false);

            case LevelTwoWeapon _:
                if (item.RefineLevel < 10 && method.EqualsAny(RefineMethod.Emveretarcon, RefineMethod.WhitesmithEmveretarcon))
                {
                    return(true);
                }
                else if (item.RefineLevel >= 10 && method.EqualsAny(RefineMethod.Bradium, RefineMethod.HDBradium))
                {
                    return(true);
                }
                return(false);

            case LevelThreeWeapon _:
                if (item.RefineLevel < 10 && method.EqualsAny(RefineMethod.Oridecon, RefineMethod.EnrichedOridecon, RefineMethod.WhitesmithOridecon))
                {
                    return(true);
                }
                else if (item.RefineLevel >= 10 && method.EqualsAny(RefineMethod.Bradium, RefineMethod.HDBradium))
                {
                    return(true);
                }
                return(false);

            case LevelFourWeapon _:
                if (item.RefineLevel < 10 && method.EqualsAny(RefineMethod.Oridecon, RefineMethod.EnrichedOridecon, RefineMethod.WhitesmithOridecon))
                {
                    return(true);
                }
                else if (item.RefineLevel >= 10 && method.EqualsAny(RefineMethod.Bradium, RefineMethod.HDBradium))
                {
                    return(true);
                }
                return(false);

            case Armor _:
                if (item.RefineLevel < 10 && method.EqualsAny(RefineMethod.Elunium, RefineMethod.EnrichedElunium))
                {
                    return(true);
                }
                else if (item.RefineLevel >= 10 && method.EqualsAny(RefineMethod.Carnium, RefineMethod.HDCarnium))
                {
                    return(true);
                }
                return(false);

            default:
                return(false);
            }
        }