acdream/tests/AcDream.Plugins.MossTank.Tests/VtankDamageDatabaseTests.cs

58 lines
1.7 KiB
C#

using AcDream.Plugin.Abstractions;
namespace AcDream.Plugins.MossTank.Tests;
public sealed class VtankDamageDatabaseTests
{
[Fact]
public void ExactMonsterOverrideWinsOverSpecies()
{
PluginCombatTarget target = Target("Magma Golem", 1);
Assert.Equal(
[
MonsterDamageType.Cold,
MonsterDamageType.Bludgeon,
MonsterDamageType.Pierce,
MonsterDamageType.Slash,
],
VtankDamageDatabase.Preferences(target));
}
[Fact]
public void CreatureTypeUsesOfficialOrderedSpeciesPreference()
{
PluginCombatTarget target = Target("Some Olthoi", 1);
Assert.Equal(MonsterDamageType.Bludgeon,
VtankDamageDatabase.Preferences(target)[0]);
Assert.True(
VtankDamageDatabase.PreferenceIndex(
target,
MonsterDamageType.Bludgeon)
< VtankDamageDatabase.PreferenceIndex(
target,
MonsterDamageType.Fire));
}
[Fact]
public void UnknownTargetUsesVtankFinalFallbackOrder()
{
PluginCombatTarget target = Target("New Server Creature", 0);
Assert.Equal(
[
MonsterDamageType.Pierce,
MonsterDamageType.Bludgeon,
MonsterDamageType.Slash,
MonsterDamageType.Acid,
MonsterDamageType.Electric,
MonsterDamageType.Cold,
MonsterDamageType.Fire,
],
VtankDamageDatabase.Preferences(target));
}
private static PluginCombatTarget Target(string name, int species) =>
new(10, name, 100, 5, 0, true, 1f) { SpeciesId = species };
}