diff --git a/frontend/src/second-edition/components/Varazskonyv.tsx b/frontend/src/second-edition/components/Varazskonyv.tsx
index 949fed5..71a60b7 100644
--- a/frontend/src/second-edition/components/Varazskonyv.tsx
+++ b/frontend/src/second-edition/components/Varazskonyv.tsx
@@ -3,6 +3,22 @@ import {ClassSpells, KarakterVarazslat} from "../domain-models/varazslat";
import VarazskonyvSzint from "./VarazskonyvSzint";
import React from "react";
+function getTitle(osztaly: Osztaly2E) : string {
+ if (osztaly === Osztaly2E.Varazslo) {
+ return "Varázslói Varázskönyv";
+ }
+ if (osztaly === Osztaly2E.Illuzionista) {
+ return "Illúzionista Varázskönyv";
+ }
+ if (osztaly === Osztaly2E.Dalnok) {
+ return "Dalnok tanult varázslatok";
+ }
+ if (osztaly === Osztaly2E.Vandor) {
+ return "Vándor tanult varázslatok";
+ }
+ return ""
+}
+
function Varazskonyv(props: { osztaly: Osztaly2E, varazslatok: KarakterVarazslat[] }) {
const {osztaly, varazslatok} = props;
@@ -11,7 +27,7 @@ function Varazskonyv(props: { osztaly: Osztaly2E, varazslatok: KarakterVarazslat
return <>
-
{osztaly === Osztaly2E.Varazslo ? "Varázslói" : "Illúzionista"} Varázskönyv
+ {getTitle(osztaly)}
{spells.some(v => v.szint === 0) && }
@@ -22,4 +38,4 @@ function Varazskonyv(props: { osztaly: Osztaly2E, varazslatok: KarakterVarazslat
>;
}
-export default Varazskonyv
\ No newline at end of file
+export default Varazskonyv
diff --git a/frontend/src/second-edition/components/VarazskonyvSzint.tsx b/frontend/src/second-edition/components/VarazskonyvSzint.tsx
index 4c7ec2e..32e2bd9 100644
--- a/frontend/src/second-edition/components/VarazskonyvSzint.tsx
+++ b/frontend/src/second-edition/components/VarazskonyvSzint.tsx
@@ -28,13 +28,13 @@ function VarazskonyvSzint(props: { osztaly: Osztaly2E, level: number, varazslato
selected={v.id}
available={[v, ...availableSpells]}
dataTestId={`varazskonyv_varazslo_1_${v.id}`}
- onChange={(nextId) => dispatch(setVarazslat({prev: v.id, next: nextId}))}
+ onChange={(next_id) => dispatch(setVarazslat({prev: {id: v.id, osztaly }, next_id: next_id}))}
/>
@@ -46,7 +46,7 @@ function VarazskonyvSzint(props: { osztaly: Osztaly2E, level: number, varazslato
))}
{availableSpells.length > 0 && }
>;
diff --git a/frontend/src/second-edition/components/Varazslatok.tsx b/frontend/src/second-edition/components/Varazslatok.tsx
index fe3dcef..4c14719 100644
--- a/frontend/src/second-edition/components/Varazslatok.tsx
+++ b/frontend/src/second-edition/components/Varazslatok.tsx
@@ -11,8 +11,10 @@ function Varazslatok() {
const classLevels = getClassLevels(karakter.szintlepesek)
return <>
- {classLevels[Osztaly2E.Varazslo] > 0 && }
- {classLevels[Osztaly2E.Illuzionista] > 0 && }
+ {classLevels[Osztaly2E.Varazslo] > 0 && x.osztaly === Osztaly2E.Varazslo)} />}
+ {classLevels[Osztaly2E.Illuzionista] > 0 && x.osztaly === Osztaly2E.Illuzionista)} />}
+ {classLevels[Osztaly2E.Vandor] > 0 && x.osztaly === Osztaly2E.Vandor)} />}
+ {classLevels[Osztaly2E.Dalnok] > 0 && x.osztaly === Osztaly2E.Dalnok)} />}
>
}
diff --git a/frontend/src/second-edition/domain-models/characterSlice.ts b/frontend/src/second-edition/domain-models/characterSlice.ts
index a5d3886..4344d3a 100644
--- a/frontend/src/second-edition/domain-models/characterSlice.ts
+++ b/frontend/src/second-edition/domain-models/characterSlice.ts
@@ -96,17 +96,20 @@ export const characterSlice = createSlice({
setFelszereles: (state, action: {payload: KarakterFelszereles}) => {
state.felszereles = action.payload;
},
- addVarazslat: (state, action: {payload: string}) => {
- state.varazslatok = [...state.varazslatok, {id: action.payload, bekeszitve: false}];
+ addVarazslat: (state, action: {payload: {id: string, osztaly: Osztaly2E}}) => {
+ state.varazslatok = [...state.varazslatok, {id: action.payload.id, osztaly: action.payload.osztaly, bekeszitve: false}];
},
- setVarazslat: (state, action: {payload: {prev: string, next: string}}) => {
- let spell = state.varazslatok.find(x => x.id === action.payload.prev)
+ setVarazslat: (state, action: {payload: {prev: {id: string, osztaly: Osztaly2E}, next_id: string}}) => {
+ let spell = state.varazslatok.find(x =>
+ x.id === action.payload.prev.id
+ && x.osztaly === action.payload.prev.osztaly)
if (spell !== undefined) {
- spell.id = action.payload.next
+ spell.id = action.payload.next_id
}
},
- removeVarazslat: (state, action: {payload: string}) => {
- state.varazslatok = [...state.varazslatok.filter(x => x.id !== action.payload)];
+ removeVarazslat: (state, action: {payload: {id: string, osztaly: Osztaly2E}}) => {
+ state.varazslatok = [...state.varazslatok.filter(x =>
+ x.id !== action.payload.id && x.osztaly !== action.payload.osztaly)];
},
}
})
diff --git a/frontend/src/second-edition/domain-models/varazslat.ts b/frontend/src/second-edition/domain-models/varazslat.ts
index 252cf4c..f1a581f 100644
--- a/frontend/src/second-edition/domain-models/varazslat.ts
+++ b/frontend/src/second-edition/domain-models/varazslat.ts
@@ -40,6 +40,7 @@ export type OsztalyVarazslat = OsztalyCantrip | OsztalySzintVarazslat;
export interface KarakterVarazslat {
id: string
bekeszitve: boolean
+ osztaly: Osztaly2E
}
export function GetCantrips(osztaly: Osztaly2E): Cantrip[] {