Commit b86e3fcf authored by Chunchi Che's avatar Chunchi Che

Merge branch 'feat/confirm_deck_top' into 'main'

Feat/confirm deck top

See merge request !210
parents bf60d17a 6d5c9dc7
Pipeline #21852 passed with stages
in 14 minutes and 43 seconds
Subproject commit 0993b418f4ae7be10af05ca5360315656bfe2690
Subproject commit e7729f2ca07b8d4704806e37d05f896d5cefafdd
This diff is collapsed.
......@@ -132,5 +132,19 @@
{ "fieldName": "player", "fieldType": "uint8" },
{ "fieldName": "new_lp", "fieldType": "uint32" }
]
},
"30": {
"protoType": "confirm_desktop",
"fields": [
{
"fieldName": "player",
"fieldType": "uint8"
},
{
"fieldName": "cards",
"fieldType": "repeated",
"repeatedType": "CardInfo"
}
]
}
}
......@@ -33,6 +33,7 @@ const MsgConstructorMap: Map<string, Constructor> = new Map([
["chain_solved", ygopro.StocGameMessage.MsgChainSolved],
["chain_end", ygopro.StocGameMessage.MsgChainEnd],
["lp_update", ygopro.StocGameMessage.MsgLpUpdate],
["confirm_desktop", ygopro.StocGameMessage.MsgConfirmDeskTop],
]);
export interface penetrateType {
......
import { fetchCard, ygopro } from "@/api";
import { sleep } from "@/infra";
import { matStore } from "@/stores";
export default async (
confirmDeskTop: ygopro.StocGameMessage.MsgConfirmDeskTop
) => {
const cards = confirmDeskTop.cards;
for (const card of cards) {
const target = matStore
.in(card.location)
.of(card.controler)
.at(card.sequence);
if (target) {
// 设置`occupant`
const meta = await fetchCard(card.code);
target.occupant = meta;
// 设置`position`,否则会横放
target.location.position = ygopro.CardPosition.ATTACK;
// 聚焦1s
target.focus = true;
await sleep(1000);
target.focus = false;
await sleep(200);
} else {
console.warn(`card of ${card} is null`);
}
}
};
......@@ -7,6 +7,7 @@ import onMsgAttackDisable from "./attackDisable";
import onMsgChainEnd from "./chainEnd";
import onMsgChaining from "./chaining";
import onMsgChainSolved from "./chainSolved";
import onConfirmDeskTop from "./confirmDeskTop";
import onMsgDraw from "./draw";
import onMsgFilpSummoned from "./flipSummoned";
import onMsgFlipSummoning from "./flipSummoning";
......@@ -282,6 +283,11 @@ export default async function handleGameMsg(pb: ygopro.YgoStocMsg) {
break;
}
case "confirm_desktop": {
await onConfirmDeskTop(msg.confirm_desktop);
break;
}
case "unimplemented": {
onUnimplemented(msg.unimplemented);
......
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