Ejemplo n.º 1
0
        /// <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();
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }