From 93b1ba6f504ada12340478588ef968ad2cd025ec Mon Sep 17 00:00:00 2001 From: Clay Date: Sun, 1 Feb 2026 04:41:35 -0500 Subject: [PATCH] 0.4.2: fix zombie decoding --- README.md | 2 +- deno.json | 2 +- modules/levels_io.ts | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0a8221d..0301d9c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# PVZM Backend ![v0.4.1](https://img.shields.io/badge/version-v0.2.2-darklime) +# PVZM Backend ![v0.4.2](https://img.shields.io/badge/version-v0.2.2-darklime) > A Deno-powered backend service for [Plants vs. Zombies: MODDED](https://github.com/roblnet13/pvz). This service provides APIs for uploading, downloading, listing, favoriting, and reporting user-created _I, Zombie_ levels. diff --git a/deno.json b/deno.json index a851d0d..dd87d11 100644 --- a/deno.json +++ b/deno.json @@ -1,5 +1,5 @@ { - "version": "0.4.1", + "version": "0.4.2", "tasks": { "dev": "deno run --watch -P=dev --env-file=.env main.ts", "start": "deno run -P --env-file=.env main.ts", diff --git a/modules/levels_io.ts b/modules/levels_io.ts index f54a5c4..d97426c 100644 --- a/modules/levels_io.ts +++ b/modules/levels_io.ts @@ -192,6 +192,14 @@ function tinyifyKeys(obj: any): any { continue; } + if (key === "selectedZombies" && Array.isArray(value)) { + result[mappedKey] = value.map((zombieName) => { + const index = iZombies.indexOf(zombieName); + return index !== -1 ? index : zombieName; + }); + continue; + } + result[mappedKey] = tinyifyKeys(value); } return result; @@ -209,6 +217,13 @@ function reverseKeys(obj: any): any { if (mapped === "plantName" && typeof v === "number") { result[mapped] = allPlantsStringArray[v] || v; + } else if (mapped === "selectedZombies" && Array.isArray(v)) { + result[mapped] = v.map((zombieIndex: unknown) => { + if (typeof zombieIndex === "number" && iZombies[zombieIndex]) { + return iZombies[zombieIndex]; + } + return zombieIndex; + }); } else { result[mapped] = reverseKeys(v); } @@ -227,6 +242,13 @@ function reverseKeys(obj: any): any { if (mapped === "plantName" && typeof value === "number") { result[mapped] = allPlantsStringArray[value] || value; + } else if (mapped === "selectedZombies" && Array.isArray(value)) { + result[mapped] = value.map((zombieIndex: unknown) => { + if (typeof zombieIndex === "number" && iZombies[zombieIndex]) { + return iZombies[zombieIndex]; + } + return zombieIndex; + }); } else { result[mapped] = reverseKeys(value); } -- knotmirror 0.0.1