Add total damage test
This commit is contained in:
@@ -147,5 +147,53 @@ namespace Content.IntegrationTests.Tests.Damageable
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public async Task TotalDamageTest()
|
||||||
|
{
|
||||||
|
var server = StartServerDummyTicker(new ServerContentIntegrationOption
|
||||||
|
{
|
||||||
|
ExtraPrototypes = Prototypes
|
||||||
|
});
|
||||||
|
|
||||||
|
await server.WaitIdleAsync();
|
||||||
|
|
||||||
|
var sEntityManager = server.ResolveDependency<IEntityManager>();
|
||||||
|
var sMapManager = server.ResolveDependency<IMapManager>();
|
||||||
|
|
||||||
|
IEntity sDamageableEntity;
|
||||||
|
IDamageableComponent sDamageableComponent = null;
|
||||||
|
|
||||||
|
await server.WaitPost(() =>
|
||||||
|
{
|
||||||
|
var mapId = sMapManager.NextMapId();
|
||||||
|
var coordinates = new MapCoordinates(0, 0, mapId);
|
||||||
|
sMapManager.CreateMap(mapId);
|
||||||
|
|
||||||
|
sDamageableEntity = sEntityManager.SpawnEntity(DamageableEntityId, coordinates);
|
||||||
|
sDamageableComponent = sDamageableEntity.GetComponent<IDamageableComponent>();
|
||||||
|
});
|
||||||
|
|
||||||
|
await server.WaitAssertion(() =>
|
||||||
|
{
|
||||||
|
var damageType = DamageClass.Brute;
|
||||||
|
var damage = 10;
|
||||||
|
|
||||||
|
Assert.True(sDamageableComponent.ChangeDamage(DamageClass.Brute, damage, true));
|
||||||
|
Assert.That(sDamageableComponent.TotalDamage, Is.EqualTo(10));
|
||||||
|
|
||||||
|
var totalTypeDamage = 0;
|
||||||
|
|
||||||
|
foreach (var type in damageType.ToTypes())
|
||||||
|
{
|
||||||
|
Assert.True(sDamageableComponent.TryGetDamage(type, out var typeDamage));
|
||||||
|
Assert.That(typeDamage, Is.LessThanOrEqualTo(damage));
|
||||||
|
|
||||||
|
totalTypeDamage += typeDamage;
|
||||||
|
}
|
||||||
|
|
||||||
|
Assert.That(totalTypeDamage, Is.EqualTo(damage));
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user