address review comments
This commit is contained in:
@@ -66,4 +66,92 @@ describe("LevelUps Harcos specialization indexing", () => {
|
|||||||
expect(stateAfter.szintlepesek[0]?.harcosFegyver).toBeUndefined();
|
expect(stateAfter.szintlepesek[0]?.harcosFegyver).toBeUndefined();
|
||||||
expect(stateAfter.szintlepesek[1]?.harcosFegyver).toBe(nextSpec);
|
expect(stateAfter.szintlepesek[1]?.harcosFegyver).toBe(nextSpec);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("does not render tulajdonsag selector at level 4 when all abilities are maxed", () => {
|
||||||
|
const maxedCharacter: Karakter2E = {
|
||||||
|
...DefaultKarakter,
|
||||||
|
szint: 1,
|
||||||
|
tulajdonsagok: {
|
||||||
|
t_ero: 18,
|
||||||
|
t_ugy: 18,
|
||||||
|
t_egs: 18,
|
||||||
|
t_int: 18,
|
||||||
|
t_bol: 18,
|
||||||
|
t_kar: 18,
|
||||||
|
},
|
||||||
|
szintlepesek: [{
|
||||||
|
osztaly: Osztaly2E.Pap,
|
||||||
|
HProll: 8,
|
||||||
|
}],
|
||||||
|
tolvajKepzettsegek: [],
|
||||||
|
varazslatok: [],
|
||||||
|
};
|
||||||
|
|
||||||
|
const level2 = applyLevelUp(maxedCharacter);
|
||||||
|
const level3 = applyLevelUp(level2);
|
||||||
|
const level4 = applyLevelUp(level3);
|
||||||
|
|
||||||
|
expect(level4.szintlepesek[3]?.tulajdonsagNoveles).toBeUndefined();
|
||||||
|
|
||||||
|
const store = configureStore({
|
||||||
|
reducer: {
|
||||||
|
user: userReducer,
|
||||||
|
character2E: characterReducer,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
store.dispatch(setCharacter(level4));
|
||||||
|
|
||||||
|
const sut = render(
|
||||||
|
<Provider store={store}>
|
||||||
|
<LevelUps
|
||||||
|
karakter={store.getState().character2E}
|
||||||
|
changeKarakter={(updated) => store.dispatch(setCharacter(updated))}
|
||||||
|
/>
|
||||||
|
</Provider>
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(sut.queryByTestId("tulajdonsag-4")).toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("does not render kaloz krit selector when tengeresz milestone exists but krit is missing", () => {
|
||||||
|
const inconsistentTengeresz: Karakter2E = {
|
||||||
|
...DefaultKarakter,
|
||||||
|
szint: 3,
|
||||||
|
szintlepesek: [
|
||||||
|
{
|
||||||
|
osztaly: Osztaly2E.Tengeresz,
|
||||||
|
HProll: 10,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
osztaly: Osztaly2E.Tengeresz,
|
||||||
|
HProll: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
osztaly: Osztaly2E.Tengeresz,
|
||||||
|
HProll: 7,
|
||||||
|
}
|
||||||
|
],
|
||||||
|
tolvajKepzettsegek: [],
|
||||||
|
varazslatok: [],
|
||||||
|
};
|
||||||
|
|
||||||
|
const store = configureStore({
|
||||||
|
reducer: {
|
||||||
|
user: userReducer,
|
||||||
|
character2E: characterReducer,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
store.dispatch(setCharacter(inconsistentTengeresz));
|
||||||
|
|
||||||
|
const sut = render(
|
||||||
|
<Provider store={store}>
|
||||||
|
<LevelUps
|
||||||
|
karakter={store.getState().character2E}
|
||||||
|
changeKarakter={(updated) => store.dispatch(setCharacter(updated))}
|
||||||
|
/>
|
||||||
|
</Provider>
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(sut.queryByTestId("kaloz-krit-3")).toBeNull();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ function LevelUp(props: {
|
|||||||
const kalozSzint = classLevels[Osztaly2E.Tengeresz]
|
const kalozSzint = classLevels[Osztaly2E.Tengeresz]
|
||||||
const tolvajSzint = classLevels[Osztaly2E.Tolvaj]
|
const tolvajSzint = classLevels[Osztaly2E.Tolvaj]
|
||||||
const szintlepes = karakter.szintlepesek[szint-1];
|
const szintlepes = karakter.szintlepesek[szint-1];
|
||||||
|
const tulajdonsagNoveles = szintlepes?.tulajdonsagNoveles;
|
||||||
|
const kalozKritikus = szintlepes?.kalozKritikus;
|
||||||
|
|
||||||
return <div>
|
return <div>
|
||||||
<div className='row mt-3'>
|
<div className='row mt-3'>
|
||||||
@@ -54,10 +56,10 @@ function LevelUp(props: {
|
|||||||
osztalySzint={classLevels[osztaly]}
|
osztalySzint={classLevels[osztaly]}
|
||||||
dataTestId={`osztaly-${szint}`}
|
dataTestId={`osztaly-${szint}`}
|
||||||
/>}
|
/>}
|
||||||
{szint % 4 === 0 &&
|
{szint % 4 === 0 && tulajdonsagNoveles != null &&
|
||||||
<TulajdonsagNoveles
|
<TulajdonsagNoveles
|
||||||
tulajdonsagok={karakter.tulajdonsagok}
|
tulajdonsagok={karakter.tulajdonsagok}
|
||||||
tulajdonsagNoveles={karakter.szintlepesek[szint-1]!.tulajdonsagNoveles!}
|
tulajdonsagNoveles={tulajdonsagNoveles}
|
||||||
changeTulajdonsagNoveles={changeTulajdonsagNoveles}
|
changeTulajdonsagNoveles={changeTulajdonsagNoveles}
|
||||||
dataTestId={`tulajdonsag-${szint}`}
|
dataTestId={`tulajdonsag-${szint}`}
|
||||||
/>}
|
/>}
|
||||||
@@ -73,9 +75,9 @@ function LevelUp(props: {
|
|||||||
karakterSzint={szint}
|
karakterSzint={szint}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
{osztaly === Osztaly2E.Tengeresz && kalozSzint % 3 === 0 &&
|
{osztaly === Osztaly2E.Tengeresz && kalozSzint % 3 === 0 && kalozKritikus != null &&
|
||||||
<KalozKritikus
|
<KalozKritikus
|
||||||
kritFegyverId={szintlepes!.kalozKritikus!}
|
kritFegyverId={kalozKritikus}
|
||||||
existingKrits={karakter.szintlepesek.map(x => x.kalozKritikus)}
|
existingKrits={karakter.szintlepesek.map(x => x.kalozKritikus)}
|
||||||
changeKrit={changeKalozKritikus}
|
changeKrit={changeKalozKritikus}
|
||||||
szint={kalozSzint}
|
szint={kalozSzint}
|
||||||
@@ -101,16 +103,19 @@ export function LevelUps(props: {karakter: Karakter2E, changeKarakter: (inputs:
|
|||||||
const {karakter, changeKarakter} = props;
|
const {karakter, changeKarakter} = props;
|
||||||
|
|
||||||
const tulajdonsagokAtSzint = (szint: number) => TulajdonsagokTotal({...karakter, szintlepesek: karakter.szintlepesek.slice(0, szint)})
|
const tulajdonsagokAtSzint = (szint: number) => TulajdonsagokTotal({...karakter, szintlepesek: karakter.szintlepesek.slice(0, szint)})
|
||||||
|
const szintlepesAt = (szint: number) => karakter.szintlepesek[szint-1]!
|
||||||
|
|
||||||
const changeRolledHPAtSzint = (szint: number) => (newHProll: number) => {
|
const changeRolledHPAtSzint = (szint: number) => (newHProll: number) => {
|
||||||
changeKarakter({...karakter, szintlepesek: arraySetN(karakter.szintlepesek, szint-1, {...karakter.szintlepesek[szint-1], HProll: newHProll})})
|
const szintlepes = szintlepesAt(szint)
|
||||||
|
changeKarakter({...karakter, szintlepesek: arraySetN(karakter.szintlepesek, szint-1, {...szintlepes, HProll: newHProll})})
|
||||||
console.log(karakter)
|
console.log(karakter)
|
||||||
}
|
}
|
||||||
const changeTulajdonsagNovelesAtSzint = (szint: number) => {
|
const changeTulajdonsagNovelesAtSzint = (szint: number) => {
|
||||||
return (t: Tulajdonsag2E) => {
|
return (t: Tulajdonsag2E) => {
|
||||||
|
const szintlepes = szintlepesAt(szint)
|
||||||
changeKarakter({...karakter,
|
changeKarakter({...karakter,
|
||||||
szintlepesek: arraySetN(karakter.szintlepesek, szint-1, {
|
szintlepesek: arraySetN(karakter.szintlepesek, szint-1, {
|
||||||
...karakter.szintlepesek[szint-1],
|
...szintlepes,
|
||||||
tulajdonsagNoveles: t
|
tulajdonsagNoveles: t
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -119,10 +124,11 @@ export function LevelUps(props: {karakter: Karakter2E, changeKarakter: (inputs:
|
|||||||
|
|
||||||
const changeKalozKritikusAtSzint = (szint: number) => {
|
const changeKalozKritikusAtSzint = (szint: number) => {
|
||||||
return (krit: string) => {
|
return (krit: string) => {
|
||||||
|
const szintlepes = szintlepesAt(szint)
|
||||||
changeKarakter({
|
changeKarakter({
|
||||||
...karakter,
|
...karakter,
|
||||||
szintlepesek: arraySetN(karakter.szintlepesek, szint-1, {
|
szintlepesek: arraySetN(karakter.szintlepesek, szint-1, {
|
||||||
...karakter.szintlepesek[szint-1],
|
...szintlepes,
|
||||||
kalozKritikus: krit
|
kalozKritikus: krit
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -131,10 +137,11 @@ export function LevelUps(props: {karakter: Karakter2E, changeKarakter: (inputs:
|
|||||||
|
|
||||||
const changeExtraTolvajKepzettseg = (szint: number) => {
|
const changeExtraTolvajKepzettseg = (szint: number) => {
|
||||||
return (k: KepzettsegId) => {
|
return (k: KepzettsegId) => {
|
||||||
|
const szintlepes = szintlepesAt(szint)
|
||||||
changeKarakter({
|
changeKarakter({
|
||||||
...karakter,
|
...karakter,
|
||||||
szintlepesek: arraySetN(karakter.szintlepesek, szint-1, {
|
szintlepesek: arraySetN(karakter.szintlepesek, szint-1, {
|
||||||
...karakter.szintlepesek[szint-1],
|
...szintlepes,
|
||||||
tolvajExtraKepzettseg: k,
|
tolvajExtraKepzettseg: k,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -145,10 +152,13 @@ export function LevelUps(props: {karakter: Karakter2E, changeKarakter: (inputs:
|
|||||||
|
|
||||||
return <>
|
return <>
|
||||||
{levels.slice(1).map(szint =>
|
{levels.slice(1).map(szint =>
|
||||||
|
{
|
||||||
|
const szintlepes = szintlepesAt(szint)
|
||||||
|
return (
|
||||||
<LevelUp
|
<LevelUp
|
||||||
key={`level-up-${szint}`}
|
key={`level-up-${szint}`}
|
||||||
szint={szint}
|
szint={szint}
|
||||||
osztaly={karakter.szintlepesek[szint-1].osztaly}
|
osztaly={szintlepes.osztaly}
|
||||||
karakter={{...karakter, szintlepesek: karakter.szintlepesek.slice(0, szint) ,tulajdonsagok: tulajdonsagokAtSzint(szint)}}
|
karakter={{...karakter, szintlepesek: karakter.szintlepesek.slice(0, szint) ,tulajdonsagok: tulajdonsagokAtSzint(szint)}}
|
||||||
changeTulajdonsagNoveles={changeTulajdonsagNovelesAtSzint(szint)}
|
changeTulajdonsagNoveles={changeTulajdonsagNovelesAtSzint(szint)}
|
||||||
changeRolledHP={changeRolledHPAtSzint(szint)}
|
changeRolledHP={changeRolledHPAtSzint(szint)}
|
||||||
@@ -156,6 +166,8 @@ export function LevelUps(props: {karakter: Karakter2E, changeKarakter: (inputs:
|
|||||||
changeOsztaly={(o) => changeKarakter(ChangeOsztalyAtSzint(karakter, o, szint))}
|
changeOsztaly={(o) => changeKarakter(ChangeOsztalyAtSzint(karakter, o, szint))}
|
||||||
changeExtraTolvajKepzettseg={changeExtraTolvajKepzettseg(szint)}
|
changeExtraTolvajKepzettseg={changeExtraTolvajKepzettseg(szint)}
|
||||||
/>
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user