Example #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();
        }
Example #2
0
 /// <summary>
 /// Gets an override value for killing an npc, should an override exist.
 /// </summary>
 /// <remarks>This is related to the GetBase*Value() methods, but works a bit differently in that it tries to find an override value only.
 /// If one cannot be found, null is returned.</remarks>
 /// <param name="npcGivenOrTypeName">Npc given or type name string.</param>
 /// <returns>Decimal value if override exists, null otherwise.</returns>
 public decimal?GetKillingValueOverride(string npcGivenOrTypeName)
 {
     if (KillingOverrides.TryGetValue(npcGivenOrTypeName, out var valueOverride))
     {
         return(valueOverride.Value);
     }
     else
     {
         return(null);
     }
 }