Commit c8efde57 authored by Chunchi Che's avatar Chunchi Che

add onFieldClick

parent 585d0098
Pipeline #21446 passed with stages
in 14 minutes and 15 seconds
...@@ -103,7 +103,15 @@ export const Mat = () => { ...@@ -103,7 +103,15 @@ export const Mat = () => {
vertical={card.location.zone == YgoZone.HAND} vertical={card.location.zone == YgoZone.HAND}
highlight={card.idleInteractivities.length > 0} highlight={card.idleInteractivities.length > 0}
opponent={card.opponent} opponent={card.opponent}
onClick={onCardClick(card)} onClick={
card.location.zone == YgoZone.SZONE ||
card.location.zone == YgoZone.MZONE ||
card.location.zone == YgoZone.HAND
? onCardClick(card)
: card.location.zone == YgoZone.DECK
? () => {}
: onFieldClick(renderCards, card.location.zone)
}
/> />
))} ))}
</div> </div>
...@@ -227,30 +235,41 @@ function CardStateToFaceDown(state: RenderCard): boolean { ...@@ -227,30 +235,41 @@ function CardStateToFaceDown(state: RenderCard): boolean {
} }
const onCardClick = (state: CardState) => () => { const onCardClick = (state: CardState) => () => {
const zone = state.location.zone; const occupant = state.occupant;
if (zone == YgoZone.HAND || zone == YgoZone.MZONE || zone == YgoZone.SZONE) { if (occupant) {
const occupant = state.occupant; // 中央弹窗展示选中卡牌信息
if (occupant) { messageStore.cardModal.meta = occupant;
// 中央弹窗展示选中卡牌信息 messageStore.cardModal.interactivies = state.idleInteractivities.map(
messageStore.cardModal.meta = occupant; (interactivity) => ({
messageStore.cardModal.interactivies = state.idleInteractivities.map( desc: interactTypeToString(interactivity.interactType),
(interactivity) => ({ response: interactivity.response,
desc: interactTypeToString(interactivity.interactType), })
response: interactivity.response, );
}) messageStore.cardModal.counters = state.counters;
); messageStore.cardModal.isOpen = true;
messageStore.cardModal.counters = state.counters;
messageStore.cardModal.isOpen = true;
// 侧边栏展示超量素材信息 // 侧边栏展示超量素材信息
if (state.overlay_materials && state.overlay_materials.length > 0) { if (state.overlay_materials && state.overlay_materials.length > 0) {
messageStore.cardListModal.list = messageStore.cardListModal.list =
state.overlay_materials?.map((overlay) => ({ state.overlay_materials?.map((overlay) => ({
meta: overlay, meta: overlay,
interactivies: [], interactivies: [],
})) || []; })) || [];
messageStore.cardListModal.isOpen = true; messageStore.cardListModal.isOpen = true;
}
} }
} }
}; };
const onFieldClick = (states: Array<CardState>, zone: YgoZone) => () => {
const displayStates = states.filter((state) => state.location.zone == zone);
messageStore.cardListModal.list = displayStates.map((item) => ({
meta: item.occupant,
interactivies: item.idleInteractivities.map((interactivy) => ({
desc: interactTypeToString(interactivy.interactType),
response: interactivy.response,
})),
}));
messageStore.cardListModal.isOpen = true;
};
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