- Moved `parseItemProps` function to `core/utils.ts` for reuse across modules. - Updated various services to import and utilize the centralized `parseItemProps`. - Introduced new utility functions for handling consumable cooldowns and healing calculations. - Enhanced mob management with a new repository system, allowing for dynamic loading and validation of mob definitions from the database. - Added admin functions for creating, updating, listing, and deleting mobs, with validation using Zod. - Implemented tests for mob management functionalities. - Improved error handling and logging throughout the mob and consumable services.
42 lines
1004 B
TypeScript
42 lines
1004 B
TypeScript
import {
|
|
createOrUpdateMob,
|
|
listMobs,
|
|
getMob,
|
|
deleteMob,
|
|
ensureMobRepoUpToDate,
|
|
} from "../src/game/mobs/admin";
|
|
|
|
async function run() {
|
|
console.log("Ensuring repo up-to-date...");
|
|
await ensureMobRepoUpToDate();
|
|
|
|
const testMob = {
|
|
key: "test.goblin",
|
|
name: "Goblin Test",
|
|
tier: 1,
|
|
base: { hp: 12, attack: 3 },
|
|
} as any;
|
|
|
|
console.log("Creating test mob...");
|
|
const created = await createOrUpdateMob(testMob);
|
|
console.log("Created:", created.key);
|
|
|
|
console.log("Listing mobs (sample):");
|
|
const all = await listMobs();
|
|
console.log(`Total mobs: ${all.length}`);
|
|
console.log(all.map((m) => m.key).join(", "));
|
|
|
|
console.log("Fetching test.mob...");
|
|
const fetched = await getMob("test.goblin");
|
|
console.log("Fetched:", !!fetched, fetched ? fetched : "(no data)");
|
|
|
|
console.log("Deleting test mob...");
|
|
const deleted = await deleteMob("test.goblin");
|
|
console.log("Deleted?", deleted);
|
|
}
|
|
|
|
run().catch((e) => {
|
|
console.error(e);
|
|
process.exit(1);
|
|
});
|