Commit 8d7152b1 authored by chechunchi's avatar chechunchi Committed by Chunchi Che

update matStore

parent 125e7838
......@@ -6,8 +6,8 @@ export default (chainSolved: ygopro.StocGameMessage.MsgChainSolved) => {
.splice(chainSolved.solved_index - 1, 1)
.at(0);
if (location) {
// 设置被连锁状态为false
matStore.setChained(location, false);
// 设置被连锁状态为
matStore.setChained(location, undefined);
} else {
console.warn("pop from chains return null!");
}
......
......@@ -19,5 +19,5 @@ export default async (chaining: ygopro.StocGameMessage.MsgChaining) => {
// 将`location`添加到连锁栈
matStore.chains.push(location);
// 设置被连锁状态
matStore.setChained(location, true);
matStore.setChained(location, matStore.chains.length);
};
......@@ -52,7 +52,6 @@ function reloadDuelField(
counters: {},
focus: false,
chaining: false,
chained: false, // TODO: 这里是否能简单设置成false?
directAttack: false,
reload: true,
};
......
......@@ -41,7 +41,6 @@ export default (start: ygopro.StocGameMessage.MsgStart) => {
},
focus: false,
chaining: false,
chained: false,
directAttack: false,
counters: {},
idleInteractivities: [],
......@@ -61,7 +60,6 @@ export default (start: ygopro.StocGameMessage.MsgStart) => {
},
focus: false,
chaining: false,
chained: false,
directAttack: false,
counters: {},
idleInteractivities: [],
......@@ -82,7 +80,6 @@ export default (start: ygopro.StocGameMessage.MsgStart) => {
},
focus: false,
chaining: false,
chained: false,
directAttack: false,
counters: {},
idleInteractivities: [],
......
......@@ -43,7 +43,6 @@ class CardArray extends Array<CardState> implements ArrayCardState {
},
focus: focus ?? false,
chaining: false,
chained: false,
directAttack: false,
counters: {},
idleInteractivities: [],
......@@ -166,7 +165,6 @@ const genBlock = (zone: ygopro.CardZone, n: number) =>
},
focus: false,
chaining: false,
chained: false,
directAttack: false,
idleInteractivities: [],
counters: {},
......@@ -283,12 +281,12 @@ export const matStore: MatState = proxy<MatState>({
}
}
},
setChained(location, isChained) {
setChained(location, chainIndex) {
const target = this.in(location.location)
.of(location.controler)
.at(location.sequence);
if (target) {
target.chained = isChained;
target.chainIndex = chainIndex;
}
},
});
......
......@@ -112,7 +112,7 @@ export interface MatState {
isChaining: boolean
) => void;
// 添加被连锁状态
setChained: (location: ygopro.CardLocation, isChained: boolean) => void;
setChained: (location: ygopro.CardLocation, chainIndex?: number) => void;
}
export interface InitInfo {
......@@ -136,7 +136,7 @@ export interface CardState {
}; // 位置信息,叫location的原因是为了和ygo对齐
focus: boolean; // 用于实现动画效果,当这个字段为true时,该张卡片会被放大并在屏幕中央展示
chaining: boolean; // 是否在连锁中
chained: boolean; // 是否被连锁,如果为true,这张卡片表面会加上枷
chainIndex?: number; // 连锁的序号,如果为空表示不在连
directAttack: boolean; // 是否正在直接攻击为玩家
attackTarget?: CardState & { sequence: number; opponent: boolean }; // 攻击目标。(嵌套结构可行么?)
idleInteractivities: Interactivity<number>[]; // IDLE状态下的互动信息
......
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