exploring/fighting is functional
[sketchy-heroes.git] / src / services / generate-monster.ts
1 import {Monster, Player} from "@prisma/client";
2 import {random } from 'lodash';
3 import {maxHp} from "../formulas";
4
5 function notNeg(num: number, alt: number): number {
6   if(num < 1) {
7     return alt;
8   }
9   return num;
10 }
11
12
13 export function generateMonster(player: Player, monster: Monster) {
14   const data = {
15     name: monster.name,
16     monsterId: monster.id,
17     level: random(notNeg(player.level - 2, 1), player.level + 2),
18     currency: 0,
19     pow: 0,
20     zest: 0,
21     woosh: 0,
22     luck: 0,
23     aha: 0,
24     wow: 0,
25     hp: 0,
26     exp: 0
27   };
28
29   if(player.level < 2) {
30     data.level = player.level;
31   }
32
33   data.currency = data.level * random(1,4);
34   data.pow = random(notNeg(player.pow - 5, 1), player.pow + 2);
35   data.zest = random(notNeg(player.zest - 5, 1), player.zest + 2);
36   data.woosh = random(notNeg(player.woosh - 5, 1), player.woosh + 2);
37   data.luck = random(notNeg(player.luck - 5, 1), player.luck + 2);
38   data.aha = random(notNeg(player.aha - 5, 2), player.aha + 2);
39   data.wow = random(notNeg(player.wow - 5, 1), player.wow + 2);
40
41
42   data.hp = maxHp(data.level, data.zest);
43   data.exp = random(data.level, player.level * 3);
44
45   return data;
46 }