55 lines
1.7 KiB
C#
55 lines
1.7 KiB
C#
|
using PkmnLib.Static.Libraries;
|
||
|
|
||
|
namespace PkmnLib.Dynamic.Libraries;
|
||
|
|
||
|
/// <summary>
|
||
|
/// The dynamic library stores a static data library, as well as holding different libraries and
|
||
|
/// calculators that might be customized between different generations and implementations.
|
||
|
/// </summary>
|
||
|
public interface IDynamicLibrary
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// The static data is the immutable storage data for this library.
|
||
|
/// </summary>
|
||
|
IStaticLibrary StaticLibrary { get; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// The stat calculator deals with the calculation of flat and boosted stats, based on the
|
||
|
/// Pokémon's attributes.
|
||
|
/// </summary>
|
||
|
IBattleStatCalculator StatCalculator { get; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// The damage calculator deals with the calculation of things relating to damage.
|
||
|
/// </summary>
|
||
|
IDamageCalculator DamageCalculator { get; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// The Misc Library holds minor functions that do not fall in any of the other libraries and
|
||
|
/// calculators.
|
||
|
/// </summary>
|
||
|
IMiscLibrary MiscLibrary { get; }
|
||
|
}
|
||
|
|
||
|
public class DynamicLibraryImpl : IDynamicLibrary
|
||
|
{
|
||
|
public DynamicLibraryImpl(IStaticLibrary staticLibrary, IBattleStatCalculator statCalculator,
|
||
|
IDamageCalculator damageCalculator, IMiscLibrary miscLibrary)
|
||
|
{
|
||
|
StaticLibrary = staticLibrary;
|
||
|
StatCalculator = statCalculator;
|
||
|
DamageCalculator = damageCalculator;
|
||
|
MiscLibrary = miscLibrary;
|
||
|
}
|
||
|
|
||
|
public IStaticLibrary StaticLibrary { get; }
|
||
|
|
||
|
/// <inheritdoc />
|
||
|
public IBattleStatCalculator StatCalculator { get; }
|
||
|
|
||
|
/// <inheritdoc />
|
||
|
public IDamageCalculator DamageCalculator { get; }
|
||
|
|
||
|
/// <inheritdoc />
|
||
|
public IMiscLibrary MiscLibrary { get; }
|
||
|
}
|