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

update magic slice

parent 605950a6
Pipeline #18915 passed with stages
in 3 minutes and 53 seconds
...@@ -40,3 +40,43 @@ export const initMagicsImpl: CaseReducer<DuelState, PayloadAction<number>> = ( ...@@ -40,3 +40,43 @@ export const initMagicsImpl: CaseReducer<DuelState, PayloadAction<number>> = (
state.opMagics = magics; 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 { ...@@ -29,7 +29,12 @@ import {
addMonsterPlaceSelectAbleImpl, addMonsterPlaceSelectAbleImpl,
clearMonsterSelectInfoImpl, clearMonsterSelectInfoImpl,
} from "./monstersSlice"; } from "./monstersSlice";
import { MagicState, initMagicsImpl } from "./magicSlice"; import {
MagicState,
initMagicsImpl,
addMagicPlaceSelectAbleImpl,
clearMagicSelectInfoImpl,
} from "./magicSlice";
export interface DuelState { export interface DuelState {
selfType?: number; selfType?: number;
...@@ -87,6 +92,8 @@ const duelSlice = createSlice({ ...@@ -87,6 +92,8 @@ const duelSlice = createSlice({
// 魔法陷阱区相关`Reducer` // 魔法陷阱区相关`Reducer`
initMagics: initMagicsImpl, initMagics: initMagicsImpl,
addMagicPlaceSelectAble: addMagicPlaceSelectAbleImpl,
clearMagicSelectInfo: clearMagicSelectInfoImpl,
// UI相关`Reducer` // UI相关`Reducer`
setCardModalIsOpen: setCardModalIsOpenImpl, setCardModalIsOpen: setCardModalIsOpenImpl,
...@@ -116,6 +123,8 @@ export const { ...@@ -116,6 +123,8 @@ export const {
addMonsterPlaceSelectAble, addMonsterPlaceSelectAble,
clearMonsterSelectInfo, clearMonsterSelectInfo,
initMagics, initMagics,
addMagicPlaceSelectAble,
clearMagicSelectInfo,
} = duelSlice.actions; } = duelSlice.actions;
export const selectDuelHsStart = (state: RootState) => { export const selectDuelHsStart = (state: RootState) => {
return state.duel.meInitInfo != null; 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