mirror of
https://github.com/morbalint/kemkas.git
synced 2026-07-17 19:03:46 +00:00
add teherbiras szabaly
and fix gorogtuz
This commit is contained in:
+1
-1
@@ -8,7 +8,7 @@ services:
|
|||||||
POSTGRES_PASSWORD: "kemkas-dev42"
|
POSTGRES_PASSWORD: "kemkas-dev42"
|
||||||
|
|
||||||
backend:
|
backend:
|
||||||
image: registry.digitalocean.com/kemkas/kemkas-be:e74196e6
|
image: registry.digitalocean.com/kemkas/kemkas-be:ebe5c333
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import {
|
|||||||
Fegyver, FelszerelesDto,
|
Fegyver, FelszerelesDto,
|
||||||
GetFegyver, GetFelszereles, GetPajzs, GetPancel,
|
GetFegyver, GetFelszereles, GetPajzs, GetPancel,
|
||||||
KarakterFelszereles,
|
KarakterFelszereles,
|
||||||
PancelTypeLabel, ViseltSize
|
PancelTypeLabel, Teherbiras, ViseltSize
|
||||||
} from "../domain-models/felszereles";
|
} from "../domain-models/felszereles";
|
||||||
import {Osztaly2E} from '../domain-models/osztaly2E'
|
import {Osztaly2E} from '../domain-models/osztaly2E'
|
||||||
import {AllowedPajzsTypes, AllowedPancelTypes} from '../domain-models/allowed-pancel-types'
|
import {AllowedPajzsTypes, AllowedPancelTypes} from '../domain-models/allowed-pancel-types'
|
||||||
@@ -17,12 +17,13 @@ import {characterSelector, setFelszereles} from "../domain-models/characterSlice
|
|||||||
import FelszerlesSelector from "../display-components/FelszerelesSelector";
|
import FelszerlesSelector from "../display-components/FelszerelesSelector";
|
||||||
|
|
||||||
export function Felszereles(){
|
export function Felszereles(){
|
||||||
const character = useSelector.withTypes<RootState>()(characterSelector)
|
const karakter = useSelector.withTypes<RootState>()(characterSelector)
|
||||||
const dispatch = useDispatch.withTypes<AppDispatch>()()
|
const dispatch = useDispatch.withTypes<AppDispatch>()()
|
||||||
const felszereles = character.felszereles
|
const felszereles = karakter.felszereles
|
||||||
const osztalyok = character.szintlepesek.map(x => x.osztaly)
|
const osztalyok = karakter.szintlepesek.map(x => x.osztaly)
|
||||||
const changeFelszereles = (f: KarakterFelszereles) => dispatch(setFelszereles(f))
|
const changeFelszereles = (f: KarakterFelszereles) => dispatch(setFelszereles(f))
|
||||||
return <FelszerelesView felszereles={felszereles} changeFelszereles={changeFelszereles} osztalyok={osztalyok} />
|
const teherbiras = Teherbiras(karakter);
|
||||||
|
return <FelszerelesView felszereles={felszereles} changeFelszereles={changeFelszereles} osztalyok={osztalyok} teherbiras={teherbiras} />
|
||||||
}
|
}
|
||||||
|
|
||||||
function ItemMaxCount(targy?: FelszerelesDto): number {
|
function ItemMaxCount(targy?: FelszerelesDto): number {
|
||||||
@@ -36,8 +37,8 @@ function FegyverMaxCount(fegyver?: Fegyver): number {
|
|||||||
return (fegyverSize < 1 && fegyverSize > 0) ? Math.round(1/fegyver!.Size) : 1;
|
return (fegyverSize < 1 && fegyverSize > 0) ? Math.round(1/fegyver!.Size) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function FelszerelesView(props: {felszereles: KarakterFelszereles, changeFelszereles: (felszereles: KarakterFelszereles) => void, osztalyok: Osztaly2E[]}) {
|
export function FelszerelesView(props: {felszereles: KarakterFelszereles, changeFelszereles: (felszereles: KarakterFelszereles) => void, osztalyok: Osztaly2E[], teherbiras: number}) {
|
||||||
const {felszereles, changeFelszereles, osztalyok} = props;
|
const {felszereles, changeFelszereles, osztalyok, teherbiras} = props;
|
||||||
const viseltSize = ViseltSize(felszereles)
|
const viseltSize = ViseltSize(felszereles)
|
||||||
const allowedPancel = AllowedPancelTypes(osztalyok)
|
const allowedPancel = AllowedPancelTypes(osztalyok)
|
||||||
.filter(x => felszereles.pancelID === x.Id || x.Size + viseltSize - (GetPancel(felszereles.pancelID)?.Size ?? 0) <= 8)
|
.filter(x => felszereles.pancelID === x.Id || x.Size + viseltSize - (GetPancel(felszereles.pancelID)?.Size ?? 0) <= 8)
|
||||||
@@ -244,6 +245,10 @@ export function FelszerelesView(props: {felszereles: KarakterFelszereles, change
|
|||||||
}).filter(x => x.targy != null);
|
}).filter(x => x.targy != null);
|
||||||
const cipeltSize = cipeltFelszereles.reduce((acc, item) => acc + Math.ceil(item.targy?.size ?? 1), 0)
|
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
|
const allowedCipelt = (selected?: FelszerelesDto) => AllFelszereles.filter(x => x.size > 0
|
||||||
&& Math.ceil(x.size) + cipeltSize - Math.ceil(selected?.size ?? 0) <= cipeltCapacity)
|
&& Math.ceil(x.size) + cipeltSize - Math.ceil(selected?.size ?? 0) <= cipeltCapacity)
|
||||||
|
|
||||||
@@ -384,7 +389,7 @@ export function FelszerelesView(props: {felszereles: KarakterFelszereles, change
|
|||||||
</div>}
|
</div>}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
{viseltSize < 8 && (<button
|
{viseltSize < 8 && (viseltSize + cipeltSize < teherbiras) && (<button
|
||||||
className='btn btn-outline-dark btn ms-2'
|
className='btn btn-outline-dark btn ms-2'
|
||||||
type='button'
|
type='button'
|
||||||
onClick={addFegyver}
|
onClick={addFegyver}
|
||||||
@@ -436,7 +441,7 @@ export function FelszerelesView(props: {felszereles: KarakterFelszereles, change
|
|||||||
</div>}
|
</div>}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
{viseltSize < 8 && (<button
|
{viseltSize < 8 && viseltSize + cipeltSize < teherbiras && (<button
|
||||||
className='btn btn-outline-dark btn ms-2'
|
className='btn btn-outline-dark btn ms-2'
|
||||||
type='button'
|
type='button'
|
||||||
onClick={addViselt}
|
onClick={addViselt}
|
||||||
@@ -489,7 +494,7 @@ export function FelszerelesView(props: {felszereles: KarakterFelszereles, change
|
|||||||
</div>}
|
</div>}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
{cipeltSize < cipeltCapacity && (<button
|
{cipeltSize < cipeltCapacity && (viseltSize + cipeltSize < teherbiras) && (<button
|
||||||
className='btn btn-outline-dark btn ms-2'
|
className='btn btn-outline-dark btn ms-2'
|
||||||
type='button'
|
type='button'
|
||||||
onClick={addCipelt}
|
onClick={addCipelt}
|
||||||
|
|||||||
@@ -504,7 +504,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "gorogtuz",
|
"id": "gorogtuz",
|
||||||
"nev": "gorogtuz",
|
"nev": "Görögtűz",
|
||||||
"size": 0.25,
|
"size": 0.25,
|
||||||
"price": 20,
|
"price": 20,
|
||||||
"type": "spec"
|
"type": "spec"
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ export interface FelszerelesItem {
|
|||||||
|
|
||||||
export type FelszerelesDto = FelszerelesItem | FelszerelesContainer;
|
export type FelszerelesDto = FelszerelesItem | FelszerelesContainer;
|
||||||
|
|
||||||
export function NumberOfSizedItems(karakter: Pick<Karakter2E, "tulajdonsagok" | "faj" | "szintlepesek">) {
|
export function Teherbiras(karakter: Pick<Karakter2E, "tulajdonsagok" | "faj" | "szintlepesek">) {
|
||||||
const tulajdonsagok = TulajdonsagokTotal(karakter)
|
const tulajdonsagok = TulajdonsagokTotal(karakter)
|
||||||
return 13 + Modifier(tulajdonsagok.t_ero)
|
return 13 + Modifier(tulajdonsagok.t_ero)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user