+import {Monster, Player} from "@prisma/client";
+import {random } from 'lodash';
+import {maxHp} from "../formulas";
+
+function notNeg(num: number, alt: number): number {
+ if(num < 1) {
+ return alt;
+ }
+ return num;
+}
+
+
+export function generateMonster(player: Player, monster: Monster) {
+ const data = {
+ name: monster.name,
+ monsterId: monster.id,
+ level: random(notNeg(player.level - 2, 1), player.level + 2),
+ currency: 0,
+ pow: 0,
+ zest: 0,
+ woosh: 0,
+ luck: 0,
+ aha: 0,
+ wow: 0,
+ hp: 0,
+ exp: 0
+ };
+
+ if(player.level < 2) {
+ data.level = player.level;
+ }
+
+ data.currency = data.level * random(1,4);
+ data.pow = random(notNeg(player.pow - 5, 1), player.pow + 2);
+ data.zest = random(notNeg(player.zest - 5, 1), player.zest + 2);
+ data.woosh = random(notNeg(player.woosh - 5, 1), player.woosh + 2);
+ data.luck = random(notNeg(player.luck - 5, 1), player.luck + 2);
+ data.aha = random(notNeg(player.aha - 5, 2), player.aha + 2);
+ data.wow = random(notNeg(player.wow - 5, 1), player.wow + 2);
+
+
+ data.hp = maxHp(data.level, data.zest);
+ data.exp = random(data.level, player.level * 3);
+
+ return data;
+}