add masodlagos ertekek at level 1 for 2E create character

This commit is contained in:
2024-01-14 10:59:47 +01:00
committed by Bálint Mórász
parent d56d7c9899
commit e9c4452908
19 changed files with 325 additions and 12 deletions
@@ -0,0 +1,91 @@
import {Mentok, MentokTotal} from "./mentok";
import {Osztaly2E} from "./osztaly2E";
import {Karakter2E} from "./karakter2E";
import {CelzoTB, KozelharciTB} from "./tamadas_bonusz";
import {Faj2E} from "./faj2E";
// import { GetPajzs, GetPancel, MaxAbilityVO } from "./felszereles";
import {Modifier} from "./tulajdonsag2E";
export interface MasodlagosErtekekView {
HP: number
VO: number
KozelharciTB: number[]
CelzoTB: number[]
Mentok: Mentok
}
export type KarakterpickForMasodlagosErtekek = Pick<Karakter2E, 'osztaly' | 'hpRolls' | 'tulajdonsagok' | 'szint' | 'faj'>
export function BaseHP(osztaly: Osztaly2E) {
let base = 4;
switch (osztaly){
case Osztaly2E.Barbar:
base = 12
break;
case Osztaly2E.Amazon:
case Osztaly2E.Ijasz:
case Osztaly2E.Tengeresz:
case Osztaly2E.Harcos:
case Osztaly2E.Vandor:
base = 10;
break
case Osztaly2E.Pap:
case Osztaly2E.Druida:
base = 8;
break;
case Osztaly2E.Tolvaj:
case Osztaly2E.Dalnok:
base = 6;
break;
case Osztaly2E.Varazslo:
case Osztaly2E.Illuzionista:
base = 4;
break;
}
return base
}
export function HP(karakter: Pick<Karakter2E, 'osztaly' | 'tulajdonsagok' | 'hpRolls'>): number {
const egeszsegModifier = Modifier(karakter.tulajdonsagok.t_egs)
return BaseHP(karakter.osztaly) + egeszsegModifier + karakter.hpRolls
// https://lfg.hu/forum/topic/15079-kard-es-magia/page/219/#comment-2218333
.map(hp => Math.max(1, hp + egeszsegModifier))
.reduce((sum, val) => sum + val, 0)
}
export function VO(karakter: Pick<Karakter2E, 'tulajdonsagok' | 'faj' | 'osztaly' | 'szint'>): number {
// const pancel = GetPancel(karakter.felszereles.pancelID)
// const pancelVO = pancel?.VO ?? 0
// const pajzsVO = GetPajzs(karakter.felszereles.pajzsID)?.VO ?? 0
// let vo = 10 + pajzsVO + pancelVO
let vo = 10
let abilityVO = Modifier(karakter.tulajdonsagok.t_ugy)
if (karakter.osztaly === Osztaly2E.Tengeresz) {
vo += Math.floor(karakter.szint / 3)
}
if (karakter.osztaly === Osztaly2E.Amazon) {
if (karakter.tulajdonsagok.t_kar > karakter.tulajdonsagok.t_ugy) {
abilityVO = Modifier(karakter.tulajdonsagok.t_kar)
}
vo += Math.floor(karakter.szint / 2)
}
if (karakter.faj === Faj2E.Felszerzet || karakter.faj === Faj2E.Gnom){
vo += 1
}
// if (pancel) {
// abilityVO = Math.min(MaxAbilityVO(pancel.Type), abilityVO)
// }
vo += abilityVO
return vo
}
export function CalculateMasodlagosErtekek(karakter: KarakterpickForMasodlagosErtekek): MasodlagosErtekekView {
return {
HP: HP(karakter),
VO: VO(karakter),
CelzoTB: CelzoTB(karakter),
KozelharciTB: KozelharciTB(karakter),
Mentok: MentokTotal(karakter)
}
}