add felszereles eretek

This commit is contained in:
2024-05-21 22:48:38 +02:00
parent 1be4ecbfbf
commit 423a277e16
2 changed files with 34 additions and 13 deletions
@@ -1,7 +1,7 @@
import React from "react";
import {
AllFelszereles,
Fegyver, FelszerelesDto,
Fegyver, FelszerelesDto, FelszerelesErtekeAranyban,
GetFegyver, GetFelszereles, GetPajzs, GetPancel,
KarakterFelszereles,
PancelTypeLabel, Teherbiras, ViseltSize
@@ -37,6 +37,12 @@ function FegyverMaxCount(fegyver?: Fegyver): number {
return (fegyverSize < 1 && fegyverSize > 0) ? Math.round(1/fegyver!.Size) : 1;
}
function FormatCoins(gold: number): string {
const at = Math.floor(gold)
const et = Math.round((gold-at) * 10);
return `${at} at${et > 0 ? ` ${et} et` : ''}`
}
export function FelszerelesView(props: {felszereles: KarakterFelszereles, changeFelszereles: (felszereles: KarakterFelszereles) => void, osztalyok: Osztaly2E[], teherbiras: number}) {
const {felszereles, changeFelszereles, osztalyok, teherbiras} = props;
const viseltSize = ViseltSize(felszereles)
@@ -245,10 +251,6 @@ export function FelszerelesView(props: {felszereles: KarakterFelszereles, change
}).filter(x => x.targy != null);
const cipeltSize = cipeltFelszereles.reduce((acc, item) => acc + Math.ceil(item.targy?.size ?? 1), 0)
console.log('teherbiras: ', teherbiras)
console.log('cipelt size: ', cipeltSize)
console.log('viselt size: ', viseltSize)
const allowedCipelt = (selected?: FelszerelesDto) => AllFelszereles.filter(x => x.size > 0
&& Math.ceil(x.size) + cipeltSize - Math.ceil(selected?.size ?? 0) <= cipeltCapacity)
@@ -493,14 +495,14 @@ export function FelszerelesView(props: {felszereles: KarakterFelszereles, change
</button>
</div>}
</div>
))}
{cipeltSize < cipeltCapacity && (viseltSize + cipeltSize < teherbiras) && (<button
className='btn btn-outline-dark btn ms-2'
type='button'
onClick={addCipelt}
>
Cipelt felszerelés hozzáadása
</button>)}</>}
))}
{cipeltSize < cipeltCapacity && (viseltSize + cipeltSize < teherbiras) && (<button
className='btn btn-outline-dark btn ms-2'
type='button'
onClick={addCipelt}
>
Cipelt felszerelés hozzáadása
</button>)}</>}
<div className='row mt-4'>
<h6 className='col align-self-center'>Apróságok</h6>
</div>
@@ -544,6 +546,12 @@ export function FelszerelesView(props: {felszereles: KarakterFelszereles, change
>
Apróság hozzáadása
</button>)}
<div className='row mt-4'>
<h6 className='col align-self-center'>Pénz</h6>
</div>
<div className='row m-2'>
Felszerelés értéke: {FormatCoins(FelszerelesErtekeAranyban(felszereles))}
</div>
</>
}
@@ -121,6 +121,19 @@ export function ViseltSize(felszereles: KarakterFelszereles): number {
return sum;
}
export function FelszerelesErtekeAranyban(felszereles: KarakterFelszereles): number {
let sum = 0;
sum += GetPajzs(felszereles.pajzsID)?.Price ?? 0;
sum += GetPancel(felszereles.pancelID)?.Price ?? 0;
sum += felszereles.fegyverek.map(({id, count}) => ({fegyver: GetFegyver(id), count})).reduce((acc, {fegyver, count}) => acc + ((fegyver?.Price ?? 0) * count),0)
sum += felszereles.viselt.map(({id, count}) => ({targy: GetFelszereles(id), count})).reduce((acc, {targy, count}) => acc + (targy?.price ?? 0) * count,0)
sum += felszereles.cipelt.map(({id, count}) => ({targy: GetFelszereles(id), count})).reduce((acc, {targy, count}) => acc + (targy?.price ?? 0) * count,0)
sum += felszereles.aprosagok.map(({id, count}) => ({targy: GetFelszereles(id), count})).reduce((acc, {targy, count}) => acc + (targy?.price ?? 0) * count,0)
return sum;
}
export function PancelTypeLabel(type: PancelType): string {
let result: string
switch(type) {