Test repeated per-projectile player damage
This commit is contained in:
parent
564c6a82b5
commit
0755d0820c
@ -8,6 +8,7 @@ import {
|
||||
normalizePlayerDamage,
|
||||
processQueuedPlayerHits,
|
||||
reducePlayerHitQueue,
|
||||
reducePlayerProjectileHits,
|
||||
reducePlayerVolleyHits,
|
||||
} from '../src/game-logic.js';
|
||||
|
||||
@ -202,3 +203,40 @@ test('different pirate volleys can both damage even when processed together', ()
|
||||
assert.equal(result.acceptedHits.length, 2);
|
||||
assert.equal(result.ignoredHits.length, 0);
|
||||
});
|
||||
|
||||
test('every new pirate projectile can damage once with no cross-shot suppression', () => {
|
||||
const first = reducePlayerProjectileHits({
|
||||
hull: 100,
|
||||
hits: [{ damage: 6 }],
|
||||
});
|
||||
|
||||
assert.equal(first.hull, 94);
|
||||
assert.equal(first.totalDamage, 6);
|
||||
assert.equal(first.appliedHits, 1);
|
||||
assert.equal(first.gameOver, false);
|
||||
|
||||
const second = reducePlayerProjectileHits({
|
||||
hull: first.hull,
|
||||
hits: [{ damage: 6 }],
|
||||
});
|
||||
|
||||
assert.equal(second.hull, 88);
|
||||
assert.equal(second.totalDamage, 6);
|
||||
assert.equal(second.appliedHits, 1);
|
||||
assert.equal(second.gameOver, false);
|
||||
});
|
||||
|
||||
test('multiple distinct pirate projectiles in the same frame all apply damage', () => {
|
||||
const result = reducePlayerProjectileHits({
|
||||
hull: 100,
|
||||
hits: [
|
||||
{ damage: 6 },
|
||||
{ damage: 6 },
|
||||
{ damage: 6 },
|
||||
],
|
||||
});
|
||||
|
||||
assert.equal(result.hull, 82);
|
||||
assert.equal(result.totalDamage, 18);
|
||||
assert.equal(result.appliedHits, 3);
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user