Import art/VFX asset packs + game-feel systems; normalize texture extensions to lowercase for LFS
Add BefourStudios SciFi environment packs, Gabriel Aguiar VFX, and the ShaderCrew Toon Shader embedded packages, plus combat/enemy/wave/death gameplay systems and supporting vault docs/screenshots. Rename 11 vendor textures from uppercase .PNG/.HDR to lowercase so the case-sensitive Git LFS filters (*.png/*.hdr) match on case-sensitive filesystems (Linux CI, case-sensitive macOS), not just locally where core.ignorecase=true masks the gap. Each .meta moved with its asset so GUID references are preserved. All ~1000 binaries tracked via LFS. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
using NUnit.Framework;
|
||||
using ProjectM.Simulation;
|
||||
|
||||
namespace ProjectM.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Pure-function tests for <see cref="RespawnMath"/> (no ECS world), mirroring PlayerSpawnRingTests /
|
||||
/// EnemyAIMathTests. Pins the deterministic player respawn-timer math.
|
||||
/// </summary>
|
||||
public class RespawnMathTests
|
||||
{
|
||||
[Test]
|
||||
public void RespawnTick_AddsDelay()
|
||||
{
|
||||
Assert.AreEqual(1180u, RespawnMath.RespawnTick(1000u, 180));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RespawnTick_ClampsDelayToAtLeastOne()
|
||||
{
|
||||
Assert.AreEqual(1001u, RespawnMath.RespawnTick(1000u, 0));
|
||||
Assert.AreEqual(1001u, RespawnMath.RespawnTick(1000u, -5));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RespawnTick_NeverReturnsZeroSentinel()
|
||||
{
|
||||
// A death exactly at tick 0 must still schedule a non-zero recovery tick.
|
||||
Assert.AreNotEqual(0u, RespawnMath.RespawnTick(0u, 1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsDue_FalseBefore_TrueAtOrAfter()
|
||||
{
|
||||
Assert.IsFalse(RespawnMath.IsDue(1100u, 1180u));
|
||||
Assert.IsTrue(RespawnMath.IsDue(1180u, 1180u));
|
||||
Assert.IsTrue(RespawnMath.IsDue(1200u, 1180u));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsDue_FalseWhenNoneScheduled()
|
||||
{
|
||||
Assert.IsFalse(RespawnMath.IsDue(99999u, 0u));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user