mirror of
https://github.com/morbalint/kemkas.git
synced 2026-07-17 19:03:46 +00:00
76 lines
2.2 KiB
TypeScript
76 lines
2.2 KiB
TypeScript
import {KarakterTulajdonsagok, TulajdonsagDefaults} from "./tulajdonsag2E";
|
|
import {Faj2E} from "./faj2E";
|
|
import {Osztaly2E} from "./osztaly2E";
|
|
import {KepzettsegId} from "./kepzettsegek2E";
|
|
import {JellemID} from "./jellem";
|
|
import {DefaultFelszereles, KarakterFelszereles} from "./felszereles";
|
|
import {Szintlepes} from "./szintlepes";
|
|
import {AllowedFegyver} from "./allowed-fegyver";
|
|
import {BaseHP} from "./masodlagos_ertekek";
|
|
import {dAny} from "../../shared/domain-models/kockak";
|
|
|
|
export interface Karakter2E {
|
|
name: string,
|
|
nem?: string,
|
|
kor: number,
|
|
isten?: string,
|
|
jellem: JellemID,
|
|
tulajdonsagok: KarakterTulajdonsagok
|
|
faj: Faj2E
|
|
osztaly: Osztaly2E
|
|
kepzettsegek: KepzettsegId[]
|
|
tolvajKepzettsegek?: KepzettsegId[]
|
|
szint: number,
|
|
felszereles: KarakterFelszereles,
|
|
szintlepesek: Szintlepes[]
|
|
}
|
|
|
|
export const DefaultKarakter: Karakter2E = {
|
|
name: 'Névtelen Kalandozó',
|
|
kor: 20,
|
|
jellem: 'S',
|
|
tulajdonsagok: TulajdonsagDefaults,
|
|
faj: Faj2E.Ember,
|
|
osztaly: Osztaly2E.Tengeresz,
|
|
kepzettsegek: [],
|
|
tolvajKepzettsegek: [],
|
|
szint: 1,
|
|
felszereles: DefaultFelszereles,
|
|
szintlepesek: [{
|
|
osztaly: Osztaly2E.Tengeresz,
|
|
HProll: 10,
|
|
}]
|
|
}
|
|
|
|
function setOsztalyForSzintLepes(szintlepes: Szintlepes, osztaly: Osztaly2E, szint: number): Szintlepes {
|
|
const base : Szintlepes = {
|
|
...szintlepes,
|
|
osztaly,
|
|
harcosFegyver: undefined,
|
|
kalozKritikus: undefined
|
|
}
|
|
|
|
if (osztaly === Osztaly2E.Harcos && szint % 2 === 1) {
|
|
base.harcosFegyver = AllowedFegyver(Osztaly2E.Harcos)[szint].Id
|
|
}
|
|
if (osztaly === Osztaly2E.Tengeresz && szint % 3 === 0) {
|
|
base.kalozKritikus = AllowedFegyver(Osztaly2E.Tengeresz)[szint].Id
|
|
}
|
|
const HD = BaseHP(osztaly)
|
|
if (szint === 1) {
|
|
base.HProll = HD
|
|
} else {
|
|
base.HProll = dAny(HD)
|
|
console.log(`Level ${szint} HP roll on d${HD} is: ${base.HProll} due to class change`)
|
|
}
|
|
return base
|
|
}
|
|
|
|
export function ChangeLvl1Osztaly(karakter: Karakter2E, osztaly: Osztaly2E): Karakter2E {
|
|
return {
|
|
...karakter,
|
|
osztaly,
|
|
szintlepesek: karakter.szintlepesek.map((l, idx) => setOsztalyForSzintLepes(l, osztaly, idx +1))
|
|
}
|
|
}
|