Commit 80edb50d authored by chechunchi's avatar chechunchi

optimize setTimeout

parent 012d2682
...@@ -55,216 +55,223 @@ const ActiveList = [ ...@@ -55,216 +55,223 @@ const ActiveList = [
"select_yes_no", "select_yes_no",
]; ];
export default function handleGameMsg(pb: ygopro.YgoStocMsg) { const TIME_GAP = 200;
const msg = pb.stoc_game_msg;
if (ActiveList.includes(msg.gameMsg)) {
matStore.waiting = false;
}
switch (msg.gameMsg) {
case "start": {
onMsgStart(msg.start);
break;
}
case "draw": {
onMsgDraw(msg.draw);
break;
}
case "new_turn": {
onMsgNewTurn(msg.new_turn);
break;
}
case "new_phase": {
onMsgNewPhase(msg.new_phase);
break;
}
case "hint": {
onMsgHint(msg.hint);
break;
}
case "select_idle_cmd": {
onMsgSelectIdleCmd(msg.select_idle_cmd);
break;
}
case "select_place": {
onMsgSelectPlace(msg.select_place);
break;
}
case "move": {
onMsgMove(msg.move);
break;
}
case "select_card": {
onMsgSelectCard(msg.select_card);
break;
}
case "select_chain": {
onMsgSelectChain(msg.select_chain);
break;
}
case "select_effect_yn": {
onMsgSelectEffectYn(msg.select_effect_yn);
break;
}
case "select_position": {
onMsgSelectPosition(msg.select_position);
break;
}
case "select_option": {
onMsgSelectOption(msg.select_option);
break;
}
case "shuffle_hand": {
onMsgShuffleHand(msg.shuffle_hand);
break;
}
case "select_battle_cmd": {
onMsgSelectBattleCmd(msg.select_battle_cmd);
break;
}
case "pos_change": {
onMsgPosChange(msg.pos_change);
break;
}
case "select_unselect_card": {
onMsgSelectUnselectCard(msg.select_unselect_card);
break;
}
case "select_yes_no": {
onMsgSelectYesNo(msg.select_yes_no);
break;
}
case "update_hp": {
onMsgUpdateHp(msg.update_hp);
break;
}
case "win": {
onMsgWin(msg.win);
break;
}
case "wait": {
onMsgWait(msg.wait);
break;
}
case "update_data": {
onMsgUpdateData(msg.update_data);
break;
}
case "reload_field": {
onMsgReloadField(msg.reload_field);
break;
}
case "select_sum": {
onMsgSelectSum(msg.select_sum);
break;
}
case "select_tribute": {
onMsgSelectTribute(msg.select_tribute);
break;
}
case "update_counter": {
onMsgUpdateCounter(msg.update_counter);
break;
}
case "select_counter": {
onMsgSelectCounter(msg.select_counter);
break;
}
case "sort_card": {
onMsgSortCard(msg.sort_card);
break;
}
case "set": {
onMsgSet(msg.set);
break;
}
case "swap": {
onMsgSwap(msg.swap);
break;
}
case "attack": {
onMsgAttack(msg.attack);
break; export default function handleGameMsg(pb: ygopro.YgoStocMsg) {
} // 防止MSG更新太频繁,做下控频
case "attack_disable": { //
onMsgAttackDisable(msg.attack_disable); // TODO: 细化需要控频的MSG
setTimeout(() => {
break; const msg = pb.stoc_game_msg;
}
case "chaining": { if (ActiveList.includes(msg.gameMsg)) {
onMsgChaining(msg.chaining); matStore.waiting = false;
}
break;
} switch (msg.gameMsg) {
case "summoning": { case "start": {
onMsgSummoning(msg.summoning); onMsgStart(msg.start);
break; break;
} }
case "summoned": { case "draw": {
onMsgSummoned(msg.summoned); onMsgDraw(msg.draw);
break; break;
} }
case "flip_summoning": { case "new_turn": {
onMsgFlipSummoning(msg.flip_summoning); onMsgNewTurn(msg.new_turn);
break; break;
} }
case "flip_summoned": { case "new_phase": {
onMsgFilpSummoned(msg.flip_summoned); onMsgNewPhase(msg.new_phase);
break; break;
} }
case "sp_summoning": { case "hint": {
onMsgSpSummoning(msg.sp_summoning); onMsgHint(msg.hint);
break; break;
} }
case "sp_summoned": { case "select_idle_cmd": {
onMsgSpSummoned(msg.sp_summoned); onMsgSelectIdleCmd(msg.select_idle_cmd);
break; break;
} }
case "unimplemented": { case "select_place": {
onUnimplemented(msg.unimplemented); onMsgSelectPlace(msg.select_place);
break; break;
} }
default: { case "move": {
break; onMsgMove(msg.move);
}
} break;
}
case "select_card": {
onMsgSelectCard(msg.select_card);
break;
}
case "select_chain": {
onMsgSelectChain(msg.select_chain);
break;
}
case "select_effect_yn": {
onMsgSelectEffectYn(msg.select_effect_yn);
break;
}
case "select_position": {
onMsgSelectPosition(msg.select_position);
break;
}
case "select_option": {
onMsgSelectOption(msg.select_option);
break;
}
case "shuffle_hand": {
onMsgShuffleHand(msg.shuffle_hand);
break;
}
case "select_battle_cmd": {
onMsgSelectBattleCmd(msg.select_battle_cmd);
break;
}
case "pos_change": {
onMsgPosChange(msg.pos_change);
break;
}
case "select_unselect_card": {
onMsgSelectUnselectCard(msg.select_unselect_card);
break;
}
case "select_yes_no": {
onMsgSelectYesNo(msg.select_yes_no);
break;
}
case "update_hp": {
onMsgUpdateHp(msg.update_hp);
break;
}
case "win": {
onMsgWin(msg.win);
break;
}
case "wait": {
onMsgWait(msg.wait);
break;
}
case "update_data": {
onMsgUpdateData(msg.update_data);
break;
}
case "reload_field": {
onMsgReloadField(msg.reload_field);
break;
}
case "select_sum": {
onMsgSelectSum(msg.select_sum);
break;
}
case "select_tribute": {
onMsgSelectTribute(msg.select_tribute);
break;
}
case "update_counter": {
onMsgUpdateCounter(msg.update_counter);
break;
}
case "select_counter": {
onMsgSelectCounter(msg.select_counter);
break;
}
case "sort_card": {
onMsgSortCard(msg.sort_card);
break;
}
case "set": {
onMsgSet(msg.set);
break;
}
case "swap": {
onMsgSwap(msg.swap);
break;
}
case "attack": {
onMsgAttack(msg.attack);
break;
}
case "attack_disable": {
onMsgAttackDisable(msg.attack_disable);
break;
}
case "chaining": {
onMsgChaining(msg.chaining);
break;
}
case "summoning": {
onMsgSummoning(msg.summoning);
break;
}
case "summoned": {
onMsgSummoned(msg.summoned);
break;
}
case "flip_summoning": {
onMsgFlipSummoning(msg.flip_summoning);
break;
}
case "flip_summoned": {
onMsgFilpSummoned(msg.flip_summoned);
break;
}
case "sp_summoning": {
onMsgSpSummoning(msg.sp_summoning);
break;
}
case "sp_summoned": {
onMsgSpSummoned(msg.sp_summoned);
break;
}
case "unimplemented": {
onUnimplemented(msg.unimplemented);
break;
}
default: {
break;
}
}
}, TIME_GAP);
} }
import { sendTimeConfirm, ygopro } from "@/api"; import { sendTimeConfirm, ygopro } from "@/api";
import { matStore } from "@/stores"; import { matStore } from "@/stores";
const TIME_GAP = 1500; const TIME_GAP = 200; // TODO: use config
export default function handleTimeLimit(timeLimit: ygopro.StocTimeLimit) { export default function handleTimeLimit(timeLimit: ygopro.StocTimeLimit) {
setTimeout(() => { setTimeout(() => {
......
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