Commit bce1c2f5 authored by Chunchi Che's avatar Chunchi Che

adapt exclusion

parent fa4add3a
Pipeline #19766 passed with stages
in 3 minutes and 3 seconds
......@@ -13,6 +13,9 @@ import {
extendState,
extendMeta,
removeCard,
DuelReducer,
Interactivity,
extendIdleInteractivities,
} from "./generic";
export interface ExclusionState extends DuelFieldState {}
......@@ -81,6 +84,21 @@ export const removeExclusionImpl: CaseReducer<
removeCard(exclusion, action.payload.sequence);
};
export const addExclusionIdleInteractivitiesImpl: DuelReducer<{
player: number;
sequence: number;
interactivity: Interactivity<number>;
}> = (state, action) => {
const exclusion = judgeSelf(action.payload.player, state)
? state.meExclusion
: state.opExclusion;
extendIdleInteractivities(
exclusion,
action.payload.sequence,
action.payload.interactivity
);
};
export const selectMeExclusion = (state: RootState) =>
state.duel.meExclusion || { inner: [] };
export const selectopExclusion = (state: RootState) =>
......
......@@ -88,6 +88,7 @@ import {
initExclusionImpl,
removeExclusionImpl,
exclusionCase,
addExclusionIdleInteractivitiesImpl,
} from "./exclusionSlice";
import { DeckState, initDeckImpl } from "./deckSlice";
import {
......@@ -193,6 +194,7 @@ const duelSlice = createSlice({
// 除外区相关`Reducer`
initExclusion: initExclusionImpl,
removeExclusion: removeExclusionImpl,
addExclusionIdleInteractivities: addExclusionIdleInteractivitiesImpl,
// 卡组相关`Reducer`
initDeck: initDeckImpl,
......@@ -297,6 +299,7 @@ export const {
initDeck,
initExclusion,
removeExclusion,
addExclusionIdleInteractivities,
setCheckCardModalV2IsOpen,
setCheckCardModalV2MinMax,
setCheckCardModalV2CancelAble,
......
......@@ -9,6 +9,7 @@ import {
setEnableEp,
addCemeteryIdleInteractivities,
clearAllIdleInteractivities,
addExclusionIdleInteractivities,
} from "../../reducers/duel/mod";
import MsgSelectIdleCmd = ygopro.StocGameMessage.MsgSelectIdleCmd;
import { ActionCreatorWithPayload } from "@reduxjs/toolkit";
......@@ -85,6 +86,11 @@ export default (selectIdleCmd: MsgSelectIdleCmd, dispatch: AppDispatch) => {
break;
}
case ygopro.CardZone.REMOVED: {
dispatcher(data, interactType, addExclusionIdleInteractivities);
break;
}
default: {
console.log(`Unhandled zone type: ${cardInfo.location}`);
}
......
......@@ -25,6 +25,7 @@ const SingleSlot = (props: {
item === undefined ? false : item.idleInteractivities.length > 0
) !== undefined;
const edgesWidth = 2.0;
const edgesColor = BABYLON.Color4.FromColor3(BABYLON.Color3.Yellow());
useClick(
(_event) => {
......@@ -72,6 +73,7 @@ const SingleSlot = (props: {
rotation={props.rotation}
enableEdgesRendering
edgesWidth={edgeRender ? edgesWidth : 0}
edgesColor={edgesColor}
>
<standardMaterial
name="single-slot-mat"
......
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