so far: faj2E, osztaly2E, kepzettsegek2E (with some bugs)
This commit is contained in:
2024-01-09 22:58:50 +01:00
committed by Bálint Mórász
parent e51bde66da
commit d56d7c9899
31 changed files with 1883 additions and 95 deletions
@@ -1,7 +1,8 @@
import {d6} from "./kockak";
import {Faj} from "./faj";
import {TulajdonsagokFajjal} from "./faj";
import {KarakterInputs} from "./karakter";
import {d6} from "../../shared/domain-models/kockak";
export enum Tulajdonsag {
Ero = 't_ero',
Ugyesseg = 't_ugy',
@@ -77,80 +78,10 @@ export function TulajdonsagModosito(tulajdonsagok: KarakterTulajdonsagok): Karak
return response
}
// noinspection OverlyComplexFunctionJS,FunctionTooLongJS
function tulajdonsagModositokPerFaj(tul: Tulajdonsag, faj: Faj) : number {
switch (faj) {
case Faj.Birodalmi: switch (tul) {
case Tulajdonsag.Egeszseg: return -1;
case Tulajdonsag.Intelligencia: return +1;
default: return 0;
}
case Faj.Eszaki: switch (tul) {
case Tulajdonsag.Ero: return +1;
case Tulajdonsag.Bolcsesseg: return -1;
default: return 0;
}
case Faj.Etuniai: switch (tul) {
case Tulajdonsag.Egeszseg: return +1;
case Tulajdonsag.Bolcsesseg: return -1;
default: return 0
}
case Faj.Osember: switch (tul) {
case Tulajdonsag.Ero: return +1;
case Tulajdonsag.Egeszseg: return +1;
case Tulajdonsag.Intelligencia: return -1;
case Tulajdonsag.Bolcsesseg: return -1;
default: return 0
}
case Faj.Elf: switch (tul) {
case Tulajdonsag.Egeszseg: return -1;
case Tulajdonsag.Ugyesseg: return +1;
default: return 0;
}
case Faj.Felork: switch (tul) {
case Tulajdonsag.Ero: return +1;
case Tulajdonsag.Egeszseg: return +1;
case Tulajdonsag.Karizma: return -2;
default: return 0;
}
case Faj.Felszerzet: switch (tul) {
case Tulajdonsag.Ero: return -1;
case Tulajdonsag.Ugyesseg: return +1;
default: return 0;
}
case Faj.Gnom: switch (tul) {
case Tulajdonsag.Ero: return -1;
case Tulajdonsag.Intelligencia: return +1;
default: return 0;
}
case Faj.Torpe: switch (tul) {
case Tulajdonsag.Egeszseg: return +1;
case Tulajdonsag.Karizma: return -1;
default: return 0;
}
default: return 0;
}
}
export function TulajdonsagModositokFajokra(tul: Tulajdonsag) {
return (faj: Faj) => tulajdonsagModositokPerFaj(tul, faj);
}
export function TulajdonsagokFajjal(tulajdonsagok: KarakterTulajdonsagok, faj: Faj): KarakterTulajdonsagok {
return {
[Tulajdonsag.Ero]: tulajdonsagok.t_ero + tulajdonsagModositokPerFaj(Tulajdonsag.Ero, faj),
[Tulajdonsag.Ugyesseg]: tulajdonsagok.t_ugy + tulajdonsagModositokPerFaj(Tulajdonsag.Ugyesseg, faj),
[Tulajdonsag.Egeszseg]: tulajdonsagok.t_egs + tulajdonsagModositokPerFaj(Tulajdonsag.Egeszseg, faj),
[Tulajdonsag.Intelligencia]: tulajdonsagok.t_int + tulajdonsagModositokPerFaj(Tulajdonsag.Intelligencia, faj),
[Tulajdonsag.Bolcsesseg]: tulajdonsagok.t_bol + tulajdonsagModositokPerFaj(Tulajdonsag.Bolcsesseg, faj),
[Tulajdonsag.Karizma]: tulajdonsagok.t_kar + tulajdonsagModositokPerFaj(Tulajdonsag.Karizma, faj),
}
}
export function TulajdonsagokTotal(karakter: Pick<KarakterInputs, 'tulajdonsagok' | 'faj' | 'tulajdonsagNovelesek'>): KarakterTulajdonsagok {
const response = TulajdonsagokFajjal(karakter.tulajdonsagok, karakter.faj)
for (const tulajdonsag of karakter.tulajdonsagNovelesek) {
// @ts-ignore // Trust me bro!
response[tulajdonsag] += 1
}
return response