proc-gen equipment drops from monsters can be picked up
[sketchy-heroes.git] / src / public / app / sections / overview.ts
1 import {Player} from "@prisma/client";
2 import $ from 'jquery';
3 import {maxExp, maxHp, maxStamina} from "../../../formulas";
4 import {progressBar} from "../components";
5 import {hasStaminaAgain, outOfStamina} from "../dom";
6
7 function renderStatText(id: string, value: number, incrementable: boolean) {
8   $(`#${id} .text`).html(value.toString());
9   if(incrementable) {
10     $(`#${id} .stat-increase`).removeClass('hidden');
11   }
12   else {
13     $(`#${id} .stat-increase`).addClass('hidden');
14   }
15 }
16
17 export function playerOverview(player: Player) {
18
19   const incrementable = player.statPoints > 0;
20
21   $('#name').html(`${player.username}, Level ${player.level}`);
22
23   renderStatText('pow', player.pow, incrementable);
24   renderStatText('zest', player.zest, incrementable);
25   renderStatText('woosh', player.woosh, incrementable);
26   renderStatText('aha', player.aha, incrementable);
27   renderStatText('luck', player.luck, incrementable);
28   renderStatText('wow', player.wow, incrementable);
29   renderStatText('stp', player.statPoints, incrementable);
30
31   $('#hit .progress-bar-wrapper').html(progressBar(player.hp, maxHp(player.level, player.zest), {
32     color: 'danger'
33   }));
34
35   $('#sta .progress-bar-wrapper').html(progressBar(player.stamina, maxStamina(player.level, player.woosh), {
36     color: 'success'
37   }));
38
39   $('#exp .progress-bar-wrapper').html(progressBar(player.exp, maxExp(player.level), {
40     color: 'info'
41   }));
42
43   if(player.stamina <= 0) {
44     outOfStamina();
45   }
46   else {
47     hasStaminaAgain();
48   }
49 }