CustomStatExtension
Eases sharing of stats created by modders.
Last updated | 2 years ago |
Total downloads | 3061 |
Total rating | 2 |
Categories | Utilities |
Dependency string | willuwontu-CustomStatExtension-0.0.1 |
Dependants | 1 other package depends on this package |
This mod requires the following mods to function
BepInEx-BepInExPack_ROUNDS
BepInEx pack for ROUNDS. Preconfigured and ready to use.
Preferred version: 5.4.1100README
Custom Stat Extension
Makes it easy to share custom stats between different mod creators without forcing them to add another mod as a dependency or to build a copy of the stat from the ground up.
Custom Stat Manager
This manager provides the various utilities needed for creating and utilizing custom stats.
By using CustomStatExtension.Utils.CustomStatManager.instance.RegisterStat()
it's possible to register a custom stat that will automatically be transferred from a card to a player in ApplyCardStats
.
In SetupCard
, statModifiers.GetCustomStats().stats
will access a Dictionary<string, object>
of all the registered custom stats. In OnAddCard
, characterStats.GetCustomStats().stats
functions similarly, save that it's the current value of each custom stat on the player.
Properties
instance
CustomStatManager instance { get; }
Description
Static reference of the class for accessiblity purposes.
RegisteredStats
ReadOnlyDictionary<string, object> RegisteredStats { get; }
Description
The currently registered stats and their default values.
Functions
RegisterStat()
bool RegisterStat(string name, object defaultValue, Func<object, object, object> applyStatsOperation)
Description
Registers a stat with the Custom Stat Manager for automated usage.
Returns true if the stat is added, or false if a stat with that name existed already.
Parameters
- string
name
the name of the stat. - object
defaultValue
the default value that the stat is initialized with. - Func<object, object, object>
applyStatsOperation
the function run inApplyCardStats
to transfer values from the card to the player.- object
currentValue
the current value on the player. - object
incomingValue
the current value on the card. - object
finalValue
the returned value that the player is set to.
- object
Example Usage
CustomStatExtension.Utils.CustomStatManager.instance.RegisterStat("Armor", 0f, ());
public object AddArmor(object start, object add)
{
return ((float) start + (float) add);
}