58 lines
1.7 KiB
C#
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 };
|
|
}
|