mirror of
https://github.com/morbalint/kemkas.git
synced 2026-07-18 03:13:46 +00:00
add felszereles domain models and combat data
This commit is contained in:
@@ -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')!
|
||||
Reference in New Issue
Block a user