Measure, weigh and name the European releases' own way (#84)
The French, German, Italian and Spanish releases store Magikarp's length in millimetres (and print a tenth of them), start the Magikarp house's record at their own length and holder, keep Pokédex heights in decimetres and weights in hectograms (printed in metres and kilograms), read the Heavy Ball's weight byte without converting it, and place the enemy's nickname before EnemyText (French, Italian) or the trainer's name before the class (French, Italian, Spanish). map-revision --symbols writes each release's symbol file, so the reference specs run against a release; specs that pin English data skip there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
627f87d8b5
commit
d3e3faff72
15 files changed
+246
-63
No files matched your search
@@ -6,7 +6,7 @@ import {
|
||||
Battle,
|
||||
applyTypeMatchups,
|
||||
calculateDamage,
|
||||
magikarpLength,
|
||||
magikarpLengthBytes,
|
||||
restoreHealth,
|
||||
restoredPP,
|
||||
sendOutText,
|
||||
@@ -708,8 +708,11 @@ test("native Magikarp lengths match CalcMagikarpLength", async ({ page }) => {
|
||||
cases.forEach((input, index) => {
|
||||
const { returned, ...original } = results[index];
|
||||
expect(returned, `case ${index} returned`).toBe(true);
|
||||
expect(magikarpLength(reader, input.dvs, input.id), JSON.stringify(input)).toEqual(original);
|
||||
// wMagikarpLength's bytes: feet and inches, or a European release's
|
||||
// millimetres.
|
||||
const [feet, inches] = magikarpLengthBytes(reader, input.dvs, input.id);
|
||||
expect({ feet, inches }, JSON.stringify(input)).toEqual(original);
|
||||
});
|
||||
const lengths = new Set(results.map(({ feet, inches }) => feet * 12 + inches));
|
||||
const lengths = new Set(results.map(({ feet, inches }) => feet * 256 + inches));
|
||||
expect(lengths.size).toBeGreaterThan(30);
|
||||
});
|
||||
Reference in new issue
Block a user