Test repeated per-projectile player damage
This commit is contained in:
parent
564c6a82b5
commit
0755d0820c
@ -8,6 +8,7 @@ import {
|
|||||||
normalizePlayerDamage,
|
normalizePlayerDamage,
|
||||||
processQueuedPlayerHits,
|
processQueuedPlayerHits,
|
||||||
reducePlayerHitQueue,
|
reducePlayerHitQueue,
|
||||||
|
reducePlayerProjectileHits,
|
||||||
reducePlayerVolleyHits,
|
reducePlayerVolleyHits,
|
||||||
} from '../src/game-logic.js';
|
} 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.acceptedHits.length, 2);
|
||||||
assert.equal(result.ignoredHits.length, 0);
|
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