add felszereles domain models and combat data

This commit is contained in:
2024-01-16 23:08:56 +01:00
committed by Bálint Mórász
parent e9c4452908
commit e0a4437d43
7 changed files with 1669 additions and 13 deletions
@@ -0,0 +1,115 @@
import pancelok from './pancel.json'
import pajzsok from './pajzs.json'
import fegyverek from './fegyver.json'
export type PancelType = 'konnyu' | 'nehez'
export const PancelTypes: PancelType[] = ['konnyu', 'nehez']
export interface Pancel {
Id: string,
Name: string,
Type: PancelType
VO: number,
Price: number,
Size: number
}
export interface Pajzs {
Id: string,
Name: string,
Type: 'pajzs'
VO: number,
Price: number,
Size: number
}
export interface Fegyver {
Id: string,
Name: string,
Type: 'kozelharci' | 'lofegyver',
Harcos: boolean,
CsakNemHarcos: boolean,
Masfelkezes: boolean,
Ketkezes: boolean,
KetkezesBonusz: boolean,
HarciManover: boolean,
Alakzat: boolean,
Hosszu: boolean,
Kabito: boolean,
LovasRoham: boolean,
PancelToro: boolean,
PajzsZuzo: boolean,
Rohamtoro: boolean,
EroBonusz: boolean,
Megterheltseg: boolean,
Megjegyzes: string | undefined | null,
Price: number,
DamageMultiplier: number,
DamageDice: number,
NumberOfDamageDice: number,
DamageBonusz: number,
CritRangeStart: number,
CritMultiplier: number,
Range: number,
Size: number
}
export interface KarakterFelszereles {
pancelID?: string
pajzsID?: string
fegyverIDk: string[]
}
export const DefaultFelszereles: KarakterFelszereles = {
fegyverIDk: [],
}
export function PancelTypeLabel(type: PancelType): string {
let result: string
switch(type) {
case 'konnyu':
result = 'Könnyű'
break
case 'nehez':
result = 'Nehéz'
break
default:
result = 'Egyéb páncél'
}
return result
}
export function GetPancel(id?: string): Pancel | undefined {
if (id == null) {
return undefined
}
const filteredPancel = pancelok['pancel'].filter(p => p.Id === id) as Pancel[]
return filteredPancel.length > 0 ? filteredPancel[0] : undefined
}
export function MaxAbilityVO(p: PancelType) {
switch(p){
case 'konnyu': return 9999;
case 'nehez': return 1;
default: return 9999;
}
}
export function GetPajzs(id?: string): Pajzs | undefined {
if (id == null) {
return undefined
}
const filtered = pajzsok['pajzs'].filter(p => p.Id === id) as Pajzs[]
return filtered.length > 0 ? filtered[0] : undefined
}
export function GetFegyver(id: string): Fegyver | undefined {
return fegyverek.data.find(f => f.Id === id) as Fegyver | undefined
}
export function GetFegyverek(ids: string[]): Fegyver[] {
return ids.map(GetFegyver).filter(x => x != null).map(x => x as Fegyver)
}
export const defaultFegyverID = 'okol'
export const defaultFegyver = GetFegyver('okol')!