Implements experience gain
All checks were successful
Build / Build (push) Successful in 1m49s

This commit is contained in:
2025-11-02 23:20:07 +01:00
parent f00453448f
commit 90eaeb1a72
7 changed files with 83 additions and 2 deletions

View File

@@ -19,6 +19,7 @@ public class ScriptRegistry
private IDamageCalculator? _damageCalculator;
private IMiscLibrary? _miscLibrary;
private ICaptureLibrary? _captureLibrary;
private IExperienceGainCalculator? _experienceGainCalculator;
/// <summary>
/// Automatically register all scripts in the given assembly that have the <see cref="ScriptAttribute"/>, and
@@ -110,11 +111,18 @@ public class ScriptRegistry
public void RegisterCaptureLibrary<T>(T captureLibrary) where T : ICaptureLibrary =>
_captureLibrary = captureLibrary;
/// <summary>
/// Register an experience gain calculator.
/// </summary>
public void RegisterExperienceGainCalculator<T>(T experienceGainCalculator) where T : IExperienceGainCalculator =>
_experienceGainCalculator = experienceGainCalculator;
internal IReadOnlyDictionary<(ScriptCategory category, StringKey name), Func<Script>> ScriptTypes => _scriptTypes;
internal IReadOnlyDictionary<StringKey, Func<IItem, ItemScript>> ItemScriptTypes => _itemScriptTypes;
internal IBattleStatCalculator? BattleStatCalculator => _battleStatCalculator;
internal IDamageCalculator? DamageCalculator => _damageCalculator;
internal IMiscLibrary? MiscLibrary => _miscLibrary;
internal ICaptureLibrary? CaptureLibrary => _captureLibrary;
internal IExperienceGainCalculator? ExperienceGainCalculator => _experienceGainCalculator;
public ExplicitAIHandlers ExplicitAIHandlers { get; } = new();
}