mirror of
https://github.com/morbalint/kemkas.git
synced 2026-07-17 19:03:46 +00:00
fix in increase gives kepzettseg
This commit is contained in:
@@ -0,0 +1,126 @@
|
|||||||
|
import React from "react";
|
||||||
|
import {render} from "@testing-library/react";
|
||||||
|
import {configureStore} from "@reduxjs/toolkit";
|
||||||
|
import {Provider} from "react-redux";
|
||||||
|
import KarakterKepzettsegek from "./Kepzettsegek2E";
|
||||||
|
import userReducer from "../../shared/domain-models/userSlice";
|
||||||
|
import characterReducer, {setCharacter} from "../domain-models/characterSlice";
|
||||||
|
import {DefaultKarakter, Karakter2E} from "../domain-models/karakter2E";
|
||||||
|
import {Osztaly2E} from "../domain-models/osztaly2E";
|
||||||
|
import {Tulajdonsag2E} from "../domain-models/tulajdonsag2E";
|
||||||
|
|
||||||
|
function createStore() {
|
||||||
|
return configureStore({
|
||||||
|
reducer: {
|
||||||
|
user: userReducer,
|
||||||
|
character2E: characterReducer,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
describe("KarakterKepzettsegek", () => {
|
||||||
|
it("shows one more kepzettseg selector when INT modifier increases from level-up", () => {
|
||||||
|
const karakter: Karakter2E = {
|
||||||
|
...DefaultKarakter,
|
||||||
|
szint: 4,
|
||||||
|
tulajdonsagok: {
|
||||||
|
...DefaultKarakter.tulajdonsagok,
|
||||||
|
t_int: 17,
|
||||||
|
},
|
||||||
|
szintlepesek: [
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 10 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 7 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 6 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 8, tulajdonsagNoveles: Tulajdonsag2E.Intelligencia },
|
||||||
|
],
|
||||||
|
tolvajKepzettsegek: [],
|
||||||
|
varazslatok: [],
|
||||||
|
};
|
||||||
|
|
||||||
|
const store = createStore();
|
||||||
|
store.dispatch(setCharacter(karakter));
|
||||||
|
|
||||||
|
const sut = render(
|
||||||
|
<Provider store={store}>
|
||||||
|
<KarakterKepzettsegek />
|
||||||
|
</Provider>
|
||||||
|
);
|
||||||
|
|
||||||
|
const selectors = sut.container.querySelectorAll('[data-testid^="kepzettseg-"]');
|
||||||
|
expect(selectors).toHaveLength(7);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("shows one more kepzettseg selector when INT modifier increases at level 8", () => {
|
||||||
|
const karakter: Karakter2E = {
|
||||||
|
...DefaultKarakter,
|
||||||
|
szint: 8,
|
||||||
|
tulajdonsagok: {
|
||||||
|
...DefaultKarakter.tulajdonsagok,
|
||||||
|
t_int: 14,
|
||||||
|
},
|
||||||
|
szintlepesek: [
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 10 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 7 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 6 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 8, tulajdonsagNoveles: Tulajdonsag2E.Ero },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 4 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 9 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 5 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 6, tulajdonsagNoveles: Tulajdonsag2E.Intelligencia },
|
||||||
|
],
|
||||||
|
tolvajKepzettsegek: [],
|
||||||
|
varazslatok: [],
|
||||||
|
};
|
||||||
|
|
||||||
|
const store = createStore();
|
||||||
|
store.dispatch(setCharacter(karakter));
|
||||||
|
|
||||||
|
const sut = render(
|
||||||
|
<Provider store={store}>
|
||||||
|
<KarakterKepzettsegek />
|
||||||
|
</Provider>
|
||||||
|
);
|
||||||
|
|
||||||
|
const selectors = sut.container.querySelectorAll('[data-testid^="kepzettseg-"]');
|
||||||
|
expect(selectors).toHaveLength(6);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("shows one more kepzettseg selector when INT modifier increases at level 12", () => {
|
||||||
|
const karakter: Karakter2E = {
|
||||||
|
...DefaultKarakter,
|
||||||
|
szint: 12,
|
||||||
|
tulajdonsagok: {
|
||||||
|
...DefaultKarakter.tulajdonsagok,
|
||||||
|
t_int: 17,
|
||||||
|
},
|
||||||
|
szintlepesek: [
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 10 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 7 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 6 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 8, tulajdonsagNoveles: Tulajdonsag2E.Ero },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 4 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 9 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 5 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 6, tulajdonsagNoveles: Tulajdonsag2E.Egeszseg },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 3 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 7 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 5 },
|
||||||
|
{ osztaly: Osztaly2E.Harcos, HProll: 4, tulajdonsagNoveles: Tulajdonsag2E.Intelligencia },
|
||||||
|
],
|
||||||
|
tolvajKepzettsegek: [],
|
||||||
|
varazslatok: [],
|
||||||
|
};
|
||||||
|
|
||||||
|
const store = createStore();
|
||||||
|
store.dispatch(setCharacter(karakter));
|
||||||
|
|
||||||
|
const sut = render(
|
||||||
|
<Provider store={store}>
|
||||||
|
<KarakterKepzettsegek />
|
||||||
|
</Provider>
|
||||||
|
);
|
||||||
|
|
||||||
|
const selectors = sut.container.querySelectorAll('[data-testid^="kepzettseg-"]');
|
||||||
|
expect(selectors).toHaveLength(7);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -13,7 +13,7 @@ import {arraySetN} from "../../util";
|
|||||||
import {useDispatch, useSelector} from "react-redux";
|
import {useDispatch, useSelector} from "react-redux";
|
||||||
import {AppDispatch, RootState} from "../../store";
|
import {AppDispatch, RootState} from "../../store";
|
||||||
import {characterSelector, setKepzettsegek, setTolvajKepzettsegek} from "../domain-models/characterSlice";
|
import {characterSelector, setKepzettsegek, setTolvajKepzettsegek} from "../domain-models/characterSlice";
|
||||||
import {TulajdonsagokFajjal} from "../domain-models/faj2E";
|
import {TulajdonsagokTotal} from "../domain-models/tulajdonsag2E";
|
||||||
|
|
||||||
function InternalKepzettsegekSelector(props: {
|
function InternalKepzettsegekSelector(props: {
|
||||||
title: string,
|
title: string,
|
||||||
@@ -70,8 +70,8 @@ function KarakterKepzettsegek () {
|
|||||||
const karakter = useSelector.withTypes<RootState>()(characterSelector);
|
const karakter = useSelector.withTypes<RootState>()(characterSelector);
|
||||||
const dispatch = useDispatch.withTypes<AppDispatch>()();
|
const dispatch = useDispatch.withTypes<AppDispatch>()();
|
||||||
|
|
||||||
const tulajdonsagokFajjal = TulajdonsagokFajjal(karakter.tulajdonsagok, karakter.faj)
|
const tulajdonsagokTotal = TulajdonsagokTotal(karakter)
|
||||||
const numberOfKepzettsegek = GetNumberOfKepzettsegek(tulajdonsagokFajjal.t_int, karakter.faj)
|
const numberOfKepzettsegek = GetNumberOfKepzettsegek(tulajdonsagokTotal.t_int, karakter.faj)
|
||||||
const kepzettsegek = karakter.kepzettsegek
|
const kepzettsegek = karakter.kepzettsegek
|
||||||
const fajError = karakter.kepzettsegFajError
|
const fajError = karakter.kepzettsegFajError
|
||||||
const osztalyError = karakter.kepzettsegOsztalyError
|
const osztalyError = karakter.kepzettsegOsztalyError
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ function availableKezpettsegListFajjal(faj: Faj2E, ...osztalyok: Osztaly2E[]): K
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function GetNumberOfKepzettsegek(t_int: number, faj: Faj2E, max: number = 11) {
|
export function GetNumberOfKepzettsegek(t_int: number, faj: Faj2E, max: number = 11) {
|
||||||
//max = 3 + 1 + 3 + 5 = 12 // 3 base, 1 human, 3 from max ability modifier, 4 from Thief +1 at 9th level
|
//max = 3 + 1 + 3 + 4 + 2 = 13 // 3 base, 1 human, 3 from max ability modifier, 4 from Thief +1 at 5th and +1 at 9th level
|
||||||
let numberOfKepzettseg = 3 + Modifier(t_int) + (faj === Faj2E.Ember ? 1 : 0)
|
let numberOfKepzettseg = 3 + Modifier(t_int) + (faj === Faj2E.Ember ? 1 : 0)
|
||||||
|
|
||||||
if (numberOfKepzettseg < 1) {
|
if (numberOfKepzettseg < 1) {
|
||||||
|
|||||||
Reference in New Issue
Block a user