Commit 373c746c authored by Chunchi Che's avatar Chunchi Che

update magic slice

parent 605950a6
......@@ -40,3 +40,43 @@ export const initMagicsImpl: CaseReducer<DuelState, PayloadAction<number>> = (
state.opMagics = magics;
}
};
export const addMagicPlaceSelectAbleImpl: CaseReducer<
DuelState,
PayloadAction<[number, number]>
> = (state, action) => {
const controler = action.payload[0];
const sequence = action.payload[1];
const magics = judgeSelf(controler, state) ? state.meMagics : state.opMagics;
if (magics) {
for (const magic of magics.magics) {
if (magic.sequence == sequence) {
magic.selectInfo = {
interactType: InteractType.PLACE_SELECTABLE,
response: {
controler,
zone: ygopro.CardZone.SZONE,
sequence,
},
};
}
}
}
};
export const clearMagicSelectInfoImpl: CaseReducer<
DuelState,
PayloadAction<number>
> = (state, action) => {
const player = action.payload;
const magics = judgeSelf(player, state) ? state.meMagics : state.opMagics;
if (magics) {
magics.magics = [];
}
};
export const selectMeMagics = (state: RootState) =>
state.duel.meMagics || { magics: [] };
......@@ -29,7 +29,12 @@ import {
addMonsterPlaceSelectAbleImpl,
clearMonsterSelectInfoImpl,
} from "./monstersSlice";
import { MagicState, initMagicsImpl } from "./magicSlice";
import {
MagicState,
initMagicsImpl,
addMagicPlaceSelectAbleImpl,
clearMagicSelectInfoImpl,
} from "./magicSlice";
export interface DuelState {
selfType?: number;
......@@ -87,6 +92,8 @@ const duelSlice = createSlice({
// 魔法陷阱区相关`Reducer`
initMagics: initMagicsImpl,
addMagicPlaceSelectAble: addMagicPlaceSelectAbleImpl,
clearMagicSelectInfo: clearMagicSelectInfoImpl,
// UI相关`Reducer`
setCardModalIsOpen: setCardModalIsOpenImpl,
......@@ -116,6 +123,8 @@ export const {
addMonsterPlaceSelectAble,
clearMonsterSelectInfo,
initMagics,
addMagicPlaceSelectAble,
clearMagicSelectInfo,
} = duelSlice.actions;
export const selectDuelHsStart = (state: RootState) => {
return state.duel.meInitInfo != null;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment