Commit be7cdb4d authored by chechunchi's avatar chechunchi

fix field.tsx

parent 2c7f40eb
Pipeline #19535 passed with stages
in 6 minutes and 11 seconds
...@@ -38,5 +38,17 @@ export const initFieldImpl: CaseReducer<DuelState, PayloadAction<number>> = ( ...@@ -38,5 +38,17 @@ export const initFieldImpl: CaseReducer<DuelState, PayloadAction<number>> = (
} }
}; };
export const clearFieldPlaceInteractivitiesImpl: CaseReducer<
DuelState,
PayloadAction<number>
> = (state, action) => {
const player = action.payload;
const field = judgeSelf(player, state) ? state.meField : state.opField;
if (field && field.inner) {
field.inner.placeInteractivities = undefined;
}
};
export const selectMeField = (state: RootState) => state.duel.meField; export const selectMeField = (state: RootState) => state.duel.meField;
export const selectOpField = (state: RootState) => state.duel.opField; export const selectOpField = (state: RootState) => state.duel.opField;
...@@ -64,7 +64,11 @@ import { ...@@ -64,7 +64,11 @@ import {
exclusionCase, exclusionCase,
} from "./exclusionSlice"; } from "./exclusionSlice";
import { DeckState, initDeckImpl } from "./deckSlice"; import { DeckState, initDeckImpl } from "./deckSlice";
import { FieldState, initFieldImpl } from "./fieldSlice"; import {
FieldState,
initFieldImpl,
clearFieldPlaceInteractivitiesImpl,
} from "./fieldSlice";
export interface DuelState { export interface DuelState {
selfType?: number; selfType?: number;
...@@ -156,6 +160,7 @@ const duelSlice = createSlice({ ...@@ -156,6 +160,7 @@ const duelSlice = createSlice({
// 场地区相关`Reducer` // 场地区相关`Reducer`
initField: initFieldImpl, initField: initFieldImpl,
clearFieldPlaceInteractivities: clearFieldPlaceInteractivitiesImpl,
// UI相关`Reducer` // UI相关`Reducer`
setCardModalIsOpen: setCardModalIsOpenImpl, setCardModalIsOpen: setCardModalIsOpenImpl,
...@@ -229,6 +234,7 @@ export const { ...@@ -229,6 +234,7 @@ export const {
initDeck, initDeck,
initExclusion, initExclusion,
initField, initField,
clearFieldPlaceInteractivities,
} = duelSlice.actions; } = duelSlice.actions;
export const selectDuelHsStart = (state: RootState) => { export const selectDuelHsStart = (state: RootState) => {
return state.duel.meInitInfo != null; return state.duel.meInitInfo != null;
......
...@@ -2,6 +2,7 @@ import * as BABYLON from "@babylonjs/core"; ...@@ -2,6 +2,7 @@ import * as BABYLON from "@babylonjs/core";
import * as CONFIG from "../../config/ui"; import * as CONFIG from "../../config/ui";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "../../hook";
import { selectMeField, selectOpField } from "../../reducers/duel/fieldSlice"; import { selectMeField, selectOpField } from "../../reducers/duel/fieldSlice";
import { clearFieldPlaceInteractivities } from "../../reducers/duel/mod";
import FixedSlot from "./fixedSlot"; import FixedSlot from "./fixedSlot";
import { Depth } from "./singleSlot"; import { Depth } from "./singleSlot";
...@@ -17,6 +18,7 @@ const Field = () => { ...@@ -17,6 +18,7 @@ const Field = () => {
sequence={0} sequence={0}
position={fieldPosition(0)} position={fieldPosition(0)}
rotation={CONFIG.CardSlotRotation(false)} rotation={CONFIG.CardSlotRotation(false)}
clearPlaceInteractivitiesAction={clearFieldPlaceInteractivities}
/> />
) : ( ) : (
<></> <></>
...@@ -27,6 +29,7 @@ const Field = () => { ...@@ -27,6 +29,7 @@ const Field = () => {
sequence={0} sequence={0}
position={fieldPosition(1)} position={fieldPosition(1)}
rotation={CONFIG.CardSlotRotation(true)} rotation={CONFIG.CardSlotRotation(true)}
clearPlaceInteractivitiesAction={clearFieldPlaceInteractivities}
/> />
) : ( ) : (
<></> <></>
......
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