Skip to content

Commit

Permalink
feat: 2e Varazskonyv/tanult varazslatok
Browse files Browse the repository at this point in the history
  • Loading branch information
morbalint committed Jul 24, 2024
1 parent c358b03 commit 2e98428
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 14 deletions.
20 changes: 18 additions & 2 deletions frontend/src/second-edition/components/Varazskonyv.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -11,7 +27,7 @@ function Varazskonyv(props: { osztaly: Osztaly2E, varazslatok: KarakterVarazslat

return <>
<div className='row my-2'>
<h4 className='col align-self-center'>{osztaly === Osztaly2E.Varazslo ? "Varázslói" : "Illúzionista"} Varázskönyv</h4>
<h4 className='col align-self-center'>{getTitle(osztaly)}</h4>
</div>
<VarazskonyvSzint osztaly={osztaly} level={0} varazslatok={varazslatok}/>
{spells.some(v => v.szint === 0) && <VarazskonyvSzint osztaly={osztaly} level={1} varazslatok={varazslatok}/>}
Expand All @@ -22,4 +38,4 @@ function Varazskonyv(props: { osztaly: Osztaly2E, varazslatok: KarakterVarazslat
</>;
}

export default Varazskonyv
export default Varazskonyv
6 changes: 3 additions & 3 deletions frontend/src/second-edition/components/VarazskonyvSzint.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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}))}
/>
<div className="col-lg-2 col-md-3 col-sm-4">
<button
className='btn btn-outline-dark w-100'
type='button'
onClick={() => dispatch(removeVarazslat(v.id))}>Elvesz
onClick={() => dispatch(removeVarazslat({id: v.id, osztaly} ))}>Elvesz
</button>
</div>
</div>
Expand All @@ -46,7 +46,7 @@ function VarazskonyvSzint(props: { osztaly: Osztaly2E, level: number, varazslato
</div>
</React.Fragment>))}
{availableSpells.length > 0 && <button className='btn btn-outline-dark ms-2'
onClick={() => dispatch(addVarazslat(availableSpells[0].id))}>
onClick={() => dispatch(addVarazslat({id: availableSpells[0].id, osztaly}))}>
Új varázslat hozzáadása
</button>}
</>;
Expand Down
6 changes: 4 additions & 2 deletions frontend/src/second-edition/components/Varazslatok.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ function Varazslatok() {
const classLevels = getClassLevels(karakter.szintlepesek)

return <>
{classLevels[Osztaly2E.Varazslo] > 0 && <Varazskonyv osztaly={Osztaly2E.Varazslo} varazslatok={karakter.varazslatok} />}
{classLevels[Osztaly2E.Illuzionista] > 0 && <Varazskonyv osztaly={Osztaly2E.Illuzionista} varazslatok={karakter.varazslatok} />}
{classLevels[Osztaly2E.Varazslo] > 0 && <Varazskonyv osztaly={Osztaly2E.Varazslo} varazslatok={karakter.varazslatok.filter(x => x.osztaly === Osztaly2E.Varazslo)} />}
{classLevels[Osztaly2E.Illuzionista] > 0 && <Varazskonyv osztaly={Osztaly2E.Illuzionista} varazslatok={karakter.varazslatok.filter(x => x.osztaly === Osztaly2E.Illuzionista)} />}
{classLevels[Osztaly2E.Vandor] > 0 && <Varazskonyv osztaly={Osztaly2E.Vandor} varazslatok={karakter.varazslatok.filter(x => x.osztaly === Osztaly2E.Vandor)} />}
{classLevels[Osztaly2E.Dalnok] > 0 && <Varazskonyv osztaly={Osztaly2E.Dalnok} varazslatok={karakter.varazslatok.filter(x => x.osztaly === Osztaly2E.Dalnok)} />}
</>
}

Expand Down
17 changes: 10 additions & 7 deletions frontend/src/second-edition/domain-models/characterSlice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)];
},
}
})
Expand Down
1 change: 1 addition & 0 deletions frontend/src/second-edition/domain-models/varazslat.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ export type OsztalyVarazslat = OsztalyCantrip | OsztalySzintVarazslat;
export interface KarakterVarazslat {
id: string
bekeszitve: boolean
osztaly: Osztaly2E
}

export function GetCantrips(osztaly: Osztaly2E): Cantrip[] {
Expand Down

0 comments on commit 2e98428

Please sign in to comment.