Files
amayo/scripts/testRewardMods.ts

67 lines
1.9 KiB
TypeScript
Raw Normal View History

import {
initializeMobRepository,
getMobInstance,
listMobKeys,
} from "../src/game/mobs/mobData";
import { runMinigame } from "../src/game/minigames/service";
import { prisma } from "../src/core/database/prisma";
async function run() {
console.log("Initializing mob repository...");
await initializeMobRepository();
console.log("Available mob keys:", listMobKeys());
// Mock user/guild for smoke (these should exist in your test DB or the functions will create wallet entries etc.)
const userId = "test-user";
const guildId = "test-guild";
try {
console.log("Ensuring minimal game area 'mine.cavern' exists...");
// create minimal area and level if not present
let area = await prisma.gameArea.findFirst({
where: { key: "mine.cavern", OR: [{ guildId }, { guildId: null }] },
orderBy: [{ guildId: "desc" }],
});
if (!area) {
area = await prisma.gameArea.create({
data: {
key: "mine.cavern",
guildId: null,
name: "Cavern of Tests",
type: "MINE",
config: {},
metadata: {},
} as any,
});
}
let lvl = await prisma.gameAreaLevel.findFirst({
where: { areaId: area.id, level: 1 },
});
if (!lvl) {
lvl = await prisma.gameAreaLevel.create({
data: {
areaId: area.id,
level: 1,
requirements: {} as any,
rewards: {
draws: 1,
table: [{ type: "coins", amount: 5, weight: 1 }],
} as any,
mobs: { draws: 0, table: [] } as any,
} as any,
});
}
console.log("Running minigame mine.cavern level 1 as smoke test...");
const res = await runMinigame(userId, guildId, "mine.cavern", 1);
console.log("Minigame result:", JSON.stringify(res, null, 2));
} catch (e) {
console.error("runMinigame failed:", e);
}
}
run().catch((e) => {
console.error(e);
process.exit(1);
});