/// <summary> /// Performs necessary setup and preprocessing to use a Currency in-game. /// </summary> /// <param name="id"></param> internal void OnInitialize(int id) { Id = id; NamesToQuadrants = createNamesToQuadrants(); currencyConverter = new CurrencyConverter(this); //set defaults if (currencyConverter.TryParse(DefaultMiningValueString, out var parsedResult)) { DefaultMiningValue = parsedResult; } if (currencyConverter.TryParse(DefaultPlacingValueString, out parsedResult)) { DefaultPlacingValue = parsedResult; } if (currencyConverter.TryParse(DefaultFishingValueString, out parsedResult)) { DefaultFishingValue = parsedResult; } if (currencyConverter.TryParse(DefaultPlayingValueString, out parsedResult)) { DefaultPlayingValue = parsedResult; } //set overrides KillingOverrides.Initialize(this); MiningOverrides.Initialize(this); PlacingOverrides.Initialize(this); FishingOverrides.Initialize(this); //set group overrides for tiles var tileGroupOverrides = new List <GroupValueOverrides <TileKey> >() { GroupMiningOverrides, GroupPlacingOverrides }; foreach (var go in tileGroupOverrides) { foreach (var vol in go.Values) { vol.Initialize(this); } } //set group overrides for playing foreach (var vol in GroupPlayingOverrides.Values) { vol.Initialize(this); } InitializeDisplayString(); }
/// <summary> /// Computes the base value for catching items through fishing, that is, before multipliers or modifications. /// </summary> /// <param name="itemId">ItemId</param> /// <param name="prefix">Prefix</param> /// <returns>Base value in generic units.</returns> public decimal GetBaseFishingValue(int itemId, byte prefix) { var key = new ItemKey(itemId, prefix); if (FishingOverrides.TryGetValue(key, out var valueOverride)) { return(valueOverride.Value); } else { return(DefaultFishingValue); } }