refactoring in progress checkpoint reached

goal: remove class by breaking it up into smaller functions
This commit is contained in:
2023-09-23 15:29:41 +02:00
parent 2f4cde091b
commit 960a5a7d92
10 changed files with 220 additions and 33 deletions
+47 -8
View File
@@ -1,3 +1,6 @@
import {Osztaly} from "./osztaly";
import {KarakterTulajdonsagok} from "./tulajdonsag";
export interface Mentok {
kitartas: number
reflex: number
@@ -6,19 +9,14 @@ export interface Mentok {
export type MentoTipus = keyof Mentok
export function MentoTipusLabel(tipus: MentoTipus): string {
let label: string | null = null
switch (tipus) {
case "akaratero":
label = "Akaraterő";
break;
return "Akaraterő";
case "kitartas":
label = "Kitartás";
break;
return "Kitartás";
case "reflex":
label = "Reflex";
break;
return "Reflex";
}
return label
}
export function ElsodlegesMento(szint: number): number {
@@ -27,4 +25,45 @@ export function ElsodlegesMento(szint: number): number {
export function MasodlagosMento(szint: number): number {
return Math.floor(szint / 3)
}
export function ElsodlegesMentok(osztaly: Osztaly) : MentoTipus[] {
let t: MentoTipus[] = []
switch (osztaly){
case Osztaly.Barbar:
case Osztaly.Amazon:
case Osztaly.Ijasz:
case Osztaly.Kaloz:
case Osztaly.Harcos:
t = ['kitartas'];
break;
case Osztaly.Pap:
t = ['kitartas', 'akaratero'];
break;
case Osztaly.Tolvaj:
t = ['reflex'];
break;
case Osztaly.Varazslo:
case Osztaly.Illuzionista:
t = ['akaratero']
break;
}
return t
}
export function MentokAlap(osztaly: Osztaly, szint: number = 1) {
const elsodlegesek = ElsodlegesMentok(osztaly)
return {
kitartas: elsodlegesek.includes('kitartas') ? ElsodlegesMento(szint) : MasodlagosMento(szint),
reflex: elsodlegesek.includes('reflex') ? ElsodlegesMento(szint) : MasodlagosMento(szint),
akaratero: elsodlegesek.includes('akaratero') ? ElsodlegesMento(szint) : MasodlagosMento(szint),
}
}
export function MentoModositok(tulajdonsagModositok: KarakterTulajdonsagok) {
return {
kitartas: tulajdonsagModositok.t_egs,
reflex: tulajdonsagModositok.t_ugy,
akaratero: tulajdonsagModositok.t_bol,
}
}