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}"); } }
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}"); } }
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; } }
/// <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); } }