Commit 6359fec3 authored by chechunchi's avatar chechunchi

update move service

parent e615ed1f
Pipeline #19652 passed with stages
in 7 minutes and 8 seconds
......@@ -12,6 +12,7 @@ import {
DuelFieldState,
extendState,
extendMeta,
removeCard,
} from "./generic";
export interface CemeteryState extends DuelFieldState {}
......@@ -67,6 +68,17 @@ export const cemeteryCase = (builder: ActionReducerMapBuilder<DuelState>) => {
});
};
// 删除墓地
export const removeCemeteryImpl: CaseReducer<
DuelState,
PayloadAction<{ controler: number; sequence: number }>
> = (state, action) => {
const cemetery = judgeSelf(action.payload.controler, state)
? state.meCemetery
: state.opCemetery;
removeCard(cemetery, action.payload.sequence);
};
export const selectMeCemetery = (state: RootState) =>
state.duel.meCemetery || { inner: [] };
export const selectOpCemetery = (state: RootState) =>
......
......@@ -12,6 +12,7 @@ import {
DuelFieldState,
extendState,
extendMeta,
removeCard,
} from "./generic";
export interface ExclusionState extends DuelFieldState {}
......@@ -69,6 +70,17 @@ export const exclusionCase = (builder: ActionReducerMapBuilder<DuelState>) => {
});
};
// 删除除外区
export const removeExclusionImpl: CaseReducer<
DuelState,
PayloadAction<{ controler: number; sequence: number }>
> = (state, action) => {
const exclusion = judgeSelf(action.payload.controler, state)
? state.meExclusion
: state.opExclusion;
removeCard(exclusion, action.payload.sequence);
};
export const selectMeExclusion = (state: RootState) =>
state.duel.meExclusion || { inner: [] };
export const selectopExclusion = (state: RootState) =>
......
......@@ -69,10 +69,16 @@ import {
setMagicPositionImpl,
magicCase,
} from "./magicSlice";
import { CemeteryState, initCemeteryImpl, cemeteryCase } from "./cemeretySlice";
import {
CemeteryState,
initCemeteryImpl,
removeCemeteryImpl,
cemeteryCase,
} from "./cemeretySlice";
import {
ExclusionState,
initExclusionImpl,
removeExclusionImpl,
exclusionCase,
} from "./exclusionSlice";
import { DeckState, initDeckImpl } from "./deckSlice";
......@@ -172,9 +178,11 @@ const duelSlice = createSlice({
// 墓地相关`Reducer`
initCemetery: initCemeteryImpl,
removeCemetery: removeCemeteryImpl,
// 除外区相关`Reducer`
initExclusion: initExclusionImpl,
removeExclusion: removeExclusionImpl,
// 卡组相关`Reducer`
initDeck: initDeckImpl,
......@@ -256,6 +264,7 @@ export const {
removeMagic,
removeHand,
initCemetery,
removeCemetery,
setCardListModalIsOpen,
setCardListModalInfo,
setCheckCardModalIsOpen,
......@@ -272,6 +281,7 @@ export const {
resetOptionModal,
initDeck,
initExclusion,
removeExclusion,
initField,
clearFieldPlaceInteractivities,
addFieldPlaceInteractivities,
......
......@@ -3,6 +3,8 @@ import MsgMove = ygopro.StocGameMessage.MsgMove;
import { AppDispatch } from "../../store";
import { fetchMonsterMeta } from "../../reducers/duel/monstersSlice";
import {
removeCemetery,
removeExclusion,
removeHand,
removeMagic,
removeMonster,
......@@ -38,6 +40,20 @@ export default (move: MsgMove, dispatch: AppDispatch) => {
break;
}
case ygopro.CardZone.GRAVE: {
dispatch(
removeCemetery({ controler: from.controler, sequence: from.sequence })
);
break;
}
case ygopro.CardZone.REMOVED: {
dispatch(
removeExclusion({ controler: from.controler, sequence: from.sequence })
);
break;
}
default: {
console.log(`Unhandled zone type ${from.location}`);
break;
......
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