Commit f7b96892 authored by timel's avatar timel

style: eslint autofix import

parent 85fe308f
import axios from "axios"; import axios from "axios";
import sqliteMiddleWare, { sqliteCmd } from "@/middleware/sqlite"; import sqliteMiddleWare, { sqliteCmd } from "@/middleware/sqlite";
export interface CardMeta { export interface CardMeta {
......
import { YgoProPacket } from "./packet";
import { ygopro } from "../idl/ocgcore"; import { ygopro } from "../idl/ocgcore";
import { YgoProPacket } from "./packet";
import { import {
STOC_CHAT, STOC_CHAT,
STOC_DECK_COUNT,
STOC_DUEL_START,
STOC_GAME_MSG,
STOC_HAND_RESULT,
STOC_HS_PLAYER_CHANGE, STOC_HS_PLAYER_CHANGE,
STOC_HS_PLAYER_ENTER, STOC_HS_PLAYER_ENTER,
STOC_HS_WATCH_CHANGE, STOC_HS_WATCH_CHANGE,
STOC_JOIN_GAME, STOC_JOIN_GAME,
STOC_TYPE_CHANGE,
STOC_SELECT_HAND, STOC_SELECT_HAND,
STOC_SELECT_TP, STOC_SELECT_TP,
STOC_HAND_RESULT,
STOC_DECK_COUNT,
STOC_DUEL_START,
STOC_GAME_MSG,
STOC_TIME_LIMIT, STOC_TIME_LIMIT,
STOC_TYPE_CHANGE,
} from "./protoDecl"; } from "./protoDecl";
import StocChat from "./stoc/stocChat"; import StocChat from "./stoc/stocChat";
import StocJoinGame from "./stoc/stocJoinGame"; import StocDeckCount from "./stoc/stocDeckCount";
import StocHsPlayerEnter from "./stoc/stocHsPlayerEnter"; import StocDuelStart from "./stoc/stocDuelStart";
import StocGameMsg from "./stoc/stocGameMsg/mod";
import StocHsPlayerChange from "./stoc/stocHsPlayerChange"; import StocHsPlayerChange from "./stoc/stocHsPlayerChange";
import StocHsPlayerEnter from "./stoc/stocHsPlayerEnter";
import StocHsWatchChange from "./stoc/stocHsWatchChange"; import StocHsWatchChange from "./stoc/stocHsWatchChange";
import StocTypeChange from "./stoc/stocTypeChange"; import StocJoinGame from "./stoc/stocJoinGame";
import StocSelectHand from "./stoc/stocSelectHand"; import StocSelectHand from "./stoc/stocSelectHand";
import StocSelectTp from "./stoc/stocSelectTp"; import StocSelectTp from "./stoc/stocSelectTp";
import StocDeckCount from "./stoc/stocDeckCount";
import StocTimeLimit from "./stoc/stocTimeLimit"; import StocTimeLimit from "./stoc/stocTimeLimit";
import StocGameMsg from "./stoc/stocGameMsg/mod"; import StocTypeChange from "./stoc/stocTypeChange";
import StocDuelStart from "./stoc/stocDuelStart";
/* /*
* 将[`ygoProPacket`]对象转换成[`ygopro.YgoStocMsg`]对象 * 将[`ygoProPacket`]对象转换成[`ygopro.YgoStocMsg`]对象
......
import { BufferReader } from "rust-src";
import { ygopro } from "../idl/ocgcore"; import { ygopro } from "../idl/ocgcore";
import { numberToCardPosition, numberToCardZone } from "./util"; import { numberToCardPosition, numberToCardZone } from "./util";
import { BufferReader } from "rust-src";
const LOCATION_OVERLAY = 0x80; const LOCATION_OVERLAY = 0x80;
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
import { YgoProPacket } from "../../packet"; import { YgoProPacket } from "../../packet";
import { CTOS_RESPONSE } from "../../protoDecl"; import { CTOS_RESPONSE } from "../../protoDecl";
import adaptSelectIdleCmdResponse from "./selectIdleCmd"; import adaptSelectBattleCmdResponse from "./selectBattleCmd";
import adaptSelectPlaceResponse from "./selectPlace";
import adaptSelectCardResponse from "./selectCard"; import adaptSelectCardResponse from "./selectCard";
import adaptSelectChainResponse from "./selectChain"; import adaptSelectChainResponse from "./selectChain";
import adaptSelectCounterResponse from "./selectCounter";
import adaptSelectEffectYnResponse from "./selectEffectYn"; import adaptSelectEffectYnResponse from "./selectEffectYn";
import adaptSelectPositionResponse from "./selectPosition"; import adaptSelectIdleCmdResponse from "./selectIdleCmd";
import adaptSelectOptionResponse from "./selectOption"; import adaptSelectOptionResponse from "./selectOption";
import adaptSelectBattleCmdResponse from "./selectBattleCmd"; import adaptSelectPlaceResponse from "./selectPlace";
import adaptSelectPositionResponse from "./selectPosition";
import adaptSelectUnselectCardResponse from "./selectUnselectCard"; import adaptSelectUnselectCardResponse from "./selectUnselectCard";
import adaptSelectCounterResponse from "./selectCounter";
import adaptSortCardResponse from "./sortCard"; import adaptSortCardResponse from "./sortCard";
/* /*
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
export default ( export default (
response: ygopro.CtosGameMsgResponse.SelectBattleCmdResponse response: ygopro.CtosGameMsgResponse.SelectBattleCmdResponse
) => { ) => {
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
export default (response: ygopro.CtosGameMsgResponse.SelectCardResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectCardResponse) => {
const writer = new BufferWriter(); const writer = new BufferWriter();
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
export default (response: ygopro.CtosGameMsgResponse.SelectChainResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectChainResponse) => {
const writer = new BufferWriter(); const writer = new BufferWriter();
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
export default (response: ygopro.CtosGameMsgResponse.SelectCounterResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectCounterResponse) => {
const writer = new BufferWriter(); const writer = new BufferWriter();
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
export default ( export default (
response: ygopro.CtosGameMsgResponse.SelectEffectYnResponse response: ygopro.CtosGameMsgResponse.SelectEffectYnResponse
) => { ) => {
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
export default (response: ygopro.CtosGameMsgResponse.SelectIdleCmdResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectIdleCmdResponse) => {
const writer = new BufferWriter(); const writer = new BufferWriter();
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
export default (response: ygopro.CtosGameMsgResponse.SelectOptionResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectOptionResponse) => {
const writer = new BufferWriter(); const writer = new BufferWriter();
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
import { cardZoneToNumber } from "../../util"; import { cardZoneToNumber } from "../../util";
export default (response: ygopro.CtosGameMsgResponse.SelectPlaceResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectPlaceResponse) => {
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
export default ( export default (
response: ygopro.CtosGameMsgResponse.SelectPositionResponse response: ygopro.CtosGameMsgResponse.SelectPositionResponse
) => { ) => {
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
export default ( export default (
response: ygopro.CtosGameMsgResponse.SelectUnselectCardResponse response: ygopro.CtosGameMsgResponse.SelectUnselectCardResponse
) => { ) => {
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
export default (response: ygopro.CtosGameMsgResponse.SortCardResponse) => { export default (response: ygopro.CtosGameMsgResponse.SortCardResponse) => {
const writer = new BufferWriter(); const writer = new BufferWriter();
......
import { ygopro } from "../../idl/ocgcore"; import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet"; import { StocAdapter, YgoProPacket } from "../packet";
/* /*
* STOC Chat * STOC Chat
......
import { ygopro } from "../../idl/ocgcore"; import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet"; import { StocAdapter, YgoProPacket } from "../packet";
const LITTLE_ENDIAN = true; const LITTLE_ENDIAN = true;
const INT16_BYTE_OFFSET = 2; const INT16_BYTE_OFFSET = 2;
......
import { ygopro } from "../../idl/ocgcore"; import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet"; import { StocAdapter, YgoProPacket } from "../packet";
/* /*
* STOC DuelStart * STOC DuelStart
......
import { ygopro } from "../../../idl/ocgcore";
import { ocgDamageAdapter } from "rust-src"; import { ocgDamageAdapter } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
/* /*
* Msg Damage * Msg Damage
* *
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
/* /*
* MSG Draw * MSG Draw
* *
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
/* /*
* Msg Hint * Msg Hint
* *
......
...@@ -4,35 +4,35 @@ ...@@ -4,35 +4,35 @@
* */ * */
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../../packet"; import { StocAdapter, YgoProPacket } from "../../packet";
import * as GAME_MSG from "../../protoDecl"; import * as GAME_MSG from "../../protoDecl";
import MsgStartAdapter from "./start"; import MsgAddCounter from "./addCounter";
import MsgDamage from "./damage";
import MsgDrawAdapter from "./draw"; import MsgDrawAdapter from "./draw";
import MsgNewTurnAdapter from "./newTurn";
import MsgNewPhaseAdapter from "./newPhase";
import MsgHintAdapter from "./hint"; import MsgHintAdapter from "./hint";
import MsgSelectIdleCmdAdapter from "./selectIdleCmd"; import MsgNewPhaseAdapter from "./newPhase";
import MsgSelectPlaceAdapter from "./selectPlace"; import MsgNewTurnAdapter from "./newTurn";
import PENETRATE from "./penetrate";
import MsgRecover from "./recover";
import MsgReloadFieldAdapter from "./reloadField";
import MsgRemoveCounter from "./removeCounter";
import MsgSelectBattleCmdAdapter from "./selectBattleCmd";
import MsgSelectCardAdapter from "./selectCard"; import MsgSelectCardAdapter from "./selectCard";
import MsgSelectTributeAdapter from "./selectTribute";
import MsgSelectChainAdapter from "./selectChain"; import MsgSelectChainAdapter from "./selectChain";
import MsgSelectCounter from "./selectCounter";
import MsgSelectEffectYnAdapter from "./selectEffectYn"; import MsgSelectEffectYnAdapter from "./selectEffectYn";
import MsgSelectPositionAdapter from "./selectPosition"; import MsgSelectIdleCmdAdapter from "./selectIdleCmd";
import MsgSelectOptionAdapter from "./selectOption"; import MsgSelectOptionAdapter from "./selectOption";
import MsgSelectBattleCmdAdapter from "./selectBattleCmd"; import MsgSelectPlaceAdapter from "./selectPlace";
import MsgSelectPositionAdapter from "./selectPosition";
import MsgSelectSum from "./selectSum";
import MsgSelectTributeAdapter from "./selectTribute";
import MsgSelectUnselectCardAdapter from "./selectUnselectCard"; import MsgSelectUnselectCardAdapter from "./selectUnselectCard";
import MsgSortCard from "./sortCard";
import MsgStartAdapter from "./start";
import MsgUpdateDataAdapter from "./updateData";
import MsgWaitAdapter from "./wait"; import MsgWaitAdapter from "./wait";
import MsgDamage from "./damage";
import MsgRecover from "./recover";
import MsgWin from "./win"; import MsgWin from "./win";
import MsgUpdateDataAdapter from "./updateData";
import MsgReloadFieldAdapter from "./reloadField";
import MsgSelectSum from "./selectSum";
import MsgAddCounter from "./addCounter";
import MsgRemoveCounter from "./removeCounter";
import MsgSelectCounter from "./selectCounter";
import MsgSortCard from "./sortCard";
import PENETRATE from "./penetrate";
/* /*
* STOC GameMsg * STOC GameMsg
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
/* /*
* Msg New Phase * Msg New Phase
* *
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
/* /*
* MSG New Turn * MSG New Turn
* *
......
//! 透传协议 //! 透传协议
import PenetrateData from "./penetrate.json";
import { BufferReaderExt } from "../../bufferIO";
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
import { BufferReaderExt } from "../../bufferIO";
import { numberToCardPosition } from "../../util"; import { numberToCardPosition } from "../../util";
import PenetrateData from "./penetrate.json";
type Constructor<T = any> = new (...args: any[]) => T; type Constructor<T = any> = new (...args: any[]) => T;
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
/* /*
* Msg Recover * Msg Recover
* *
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
import MsgSelectOption = ygopro.StocGameMessage.MsgSelectOption; import MsgSelectOption = ygopro.StocGameMessage.MsgSelectOption;
/* /*
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
import MsgSelectPlace = ygopro.StocGameMessage.MsgSelectPlace; import MsgSelectPlace = ygopro.StocGameMessage.MsgSelectPlace;
/* /*
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
import MsgSelectPosition = ygopro.StocGameMessage.MsgSelectPosition; import MsgSelectPosition = ygopro.StocGameMessage.MsgSelectPosition;
/* /*
......
import { ygopro } from "../../../idl/ocgcore";
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import { ygopro } from "../../../idl/ocgcore";
import MsgWin = ygopro.StocGameMessage.MsgWin; import MsgWin = ygopro.StocGameMessage.MsgWin;
/* /*
......
import { ygopro } from "../../idl/ocgcore"; import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet"; import { StocAdapter, YgoProPacket } from "../packet";
/* /*
* STOC HsPlayerChange * STOC HsPlayerChange
......
import { ygopro } from "../../idl/ocgcore"; import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet"; import { StocAdapter, YgoProPacket } from "../packet";
import { UTF16_BUFFER_MAX_LEN, _cutoff_name } from "../util"; import { _cutoff_name, UTF16_BUFFER_MAX_LEN } from "../util";
const UINT8_PER_UINT16 = 2; const UINT8_PER_UINT16 = 2;
......
import { ygopro } from "../../idl/ocgcore"; import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet"; import { StocAdapter, YgoProPacket } from "../packet";
/* /*
* STOC HsWatchChange * STOC HsWatchChange
......
import { ygopro } from "../../idl/ocgcore"; import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet"; import { StocAdapter, YgoProPacket } from "../packet";
/* /*
* STOC JoinGame * STOC JoinGame
......
import { ygopro } from "../../idl/ocgcore"; import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet"; import { StocAdapter, YgoProPacket } from "../packet";
/* /*
* STOC SelectHand * STOC SelectHand
......
import { ygopro } from "../../idl/ocgcore"; import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet"; import { StocAdapter, YgoProPacket } from "../packet";
/* /*
* STOC SelectTp * STOC SelectTp
......
import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet";
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import { ygopro } from "../../idl/ocgcore";
import { StocAdapter, YgoProPacket } from "../packet";
/* /*
* STOC TimeLimit * STOC TimeLimit
* *
......
import { ygopro } from "../../idl/ocgcore"; import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet"; import { StocAdapter, YgoProPacket } from "../packet";
/* /*
* STOC TypeChange * STOC TypeChange
......
...@@ -2,20 +2,21 @@ ...@@ -2,20 +2,21 @@
* 一些发ygopro协议数据包的辅助函数,用于简化业务代码。 * 一些发ygopro协议数据包的辅助函数,用于简化业务代码。
* *
* */ * */
import { ygopro } from "./idl/ocgcore";
import socketMiddleWare, { socketCmd } from "@/middleware/socket"; import socketMiddleWare, { socketCmd } from "@/middleware/socket";
import { IDeck } from "../deck"; import { IDeck } from "../deck";
import PlayerInfoAdapter from "./ocgAdapter/ctos/ctosPlayerInfo"; import { ygopro } from "./idl/ocgcore";
import JoinGameAdapter from "./ocgAdapter/ctos/ctosJoinGame"; import Chat from "./ocgAdapter/ctos/ctosChat";
import UpdateDeckAdapter from "./ocgAdapter/ctos/ctosUpdateDeck"; import GameMsgResponse from "./ocgAdapter/ctos/ctosGameMsgResponse/mod";
import HandResult from "./ocgAdapter/ctos/ctosHandResult";
import HsReadyAdapter from "./ocgAdapter/ctos/ctosHsReady"; import HsReadyAdapter from "./ocgAdapter/ctos/ctosHsReady";
import HsStartAdapter from "./ocgAdapter/ctos/ctosHsStart"; import HsStartAdapter from "./ocgAdapter/ctos/ctosHsStart";
import HandResult from "./ocgAdapter/ctos/ctosHandResult"; import JoinGameAdapter from "./ocgAdapter/ctos/ctosJoinGame";
import TpResult from "./ocgAdapter/ctos/ctosTpResult"; import PlayerInfoAdapter from "./ocgAdapter/ctos/ctosPlayerInfo";
import TimeConfirm from "./ocgAdapter/ctos/ctosTimeConfirm";
import Surrender from "./ocgAdapter/ctos/ctosSurrender"; import Surrender from "./ocgAdapter/ctos/ctosSurrender";
import GameMsgResponse from "./ocgAdapter/ctos/ctosGameMsgResponse/mod"; import TimeConfirm from "./ocgAdapter/ctos/ctosTimeConfirm";
import Chat from "./ocgAdapter/ctos/ctosChat"; import TpResult from "./ocgAdapter/ctos/ctosTpResult";
import UpdateDeckAdapter from "./ocgAdapter/ctos/ctosUpdateDeck";
export function sendUpdateDeck(deck: IDeck) { export function sendUpdateDeck(deck: IDeck) {
const updateDeck = new ygopro.YgoCtosMsg({ const updateDeck = new ygopro.YgoCtosMsg({
......
import axios from "axios"; import axios from "axios";
import NeosConfig from "../../neos.config.json"; import NeosConfig from "../../neos.config.json";
import { getCardStr, fetchCard } from "./cards"; import { fetchCard, getCardStr } from "./cards";
export const DESCRIPTION_LIMIT = 10000; export const DESCRIPTION_LIMIT = 10000;
......
import { useEnv } from "@/hook"; import { useEnv } from "@/hook";
import NeosDevConfig from "../../neos.config.json"; import NeosDevConfig from "../../neos.config.json";
import NeosProdConfig from "../../neos.config.prod.json"; import NeosProdConfig from "../../neos.config.prod.json";
......
import { TypedUseSelectorHook, useDispatch, useSelector } from "react-redux"; import { TypedUseSelectorHook, useDispatch, useSelector } from "react-redux";
import type { RootState, AppDispatch } from "@/store";
import type { AppDispatch, RootState } from "@/store";
// Use throughout your app instead of plain `useDispatch` and `useSelector` // Use throughout your app instead of plain `useDispatch` and `useSelector`
export const useAppDispatch: () => AppDispatch = useDispatch; export const useAppDispatch: () => AppDispatch = useDispatch;
......
// 一些自定义`Hook` // 一些自定义`Hook`
import { ActionEvent } from "@babylonjs/core"; import { ActionEvent } from "@babylonjs/core";
import { MutableRefObject, useEffect, useRef } from "react";
import { Nullable } from "@babylonjs/core/types.js";
import { Mesh } from "@babylonjs/core/Meshes/mesh.js";
import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
import { ActionManager } from "@babylonjs/core/Actions/actionManager.js";
import { IAction } from "@babylonjs/core/Actions/action.js"; import { IAction } from "@babylonjs/core/Actions/action.js";
import { ActionManager } from "@babylonjs/core/Actions/actionManager.js";
import { ExecuteCodeAction } from "@babylonjs/core/Actions/directActions.js"; import { ExecuteCodeAction } from "@babylonjs/core/Actions/directActions.js";
import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
import { Mesh } from "@babylonjs/core/Meshes/mesh.js";
import { Nullable } from "@babylonjs/core/types.js";
import { MutableRefObject, useEffect, useRef } from "react";
export interface MeshEventType { export interface MeshEventType {
(env: ActionEvent): void; (env: ActionEvent): void;
......
...@@ -19,14 +19,15 @@ ...@@ -19,14 +19,15 @@
* 在进行代码开发的时候需要注意这点。 * 在进行代码开发的时候需要注意这点。
* *
* */ * */
import { ConfigProvider, theme } from "antd";
import zhCN from "antd/locale/zh_CN";
import React from "react"; import React from "react";
import ReactDOM from "react-dom/client"; import ReactDOM from "react-dom/client";
import Neos from "./ui/Neos";
import { BrowserRouter } from "react-router-dom";
import { Provider } from "react-redux"; import { Provider } from "react-redux";
import { BrowserRouter } from "react-router-dom";
import { store } from "./store"; import { store } from "./store";
import { ConfigProvider, theme } from "antd"; import Neos from "./ui/Neos";
import zhCN from "antd/locale/zh_CN";
const root = ReactDOM.createRoot( const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement document.getElementById("root") as HTMLElement
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
* 所有长连接/Websocket相关的逻辑都应该收敛在这里。 * 所有长连接/Websocket相关的逻辑都应该收敛在这里。
* *
* */ * */
import handleSocketOpen from "../service/onSocketOpen";
import handleSocketMessage from "../service/onSocketMessage"; import handleSocketMessage from "../service/onSocketMessage";
import handleSocketOpen from "../service/onSocketOpen";
export enum socketCmd { export enum socketCmd {
// 建立长连接 // 建立长连接
......
...@@ -6,7 +6,9 @@ ...@@ -6,7 +6,9 @@
* */ * */
import initSqlJs, { Database } from "sql.js"; import initSqlJs, { Database } from "sql.js";
import { CardMeta, CardData, CardText } from "@/api/cards";
import { CardData, CardMeta, CardText } from "@/api/cards";
import NeosConfig from "../../neos.config.json"; import NeosConfig from "../../neos.config.json";
export enum sqliteCmd { export enum sqliteCmd {
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
* *
* */ * */
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { RootState } from "@/store"; import { RootState } from "@/store";
export interface chatState { export interface chatState {
......
import { judgeSelf } from "./util";
import { import {
PayloadAction,
CaseReducer,
ActionReducerMapBuilder, ActionReducerMapBuilder,
CaseReducer,
PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { RootState } from "@/store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import { import {
createAsyncMetaThunk, createAsyncMetaThunk,
DuelFieldState, DuelFieldState,
extendState,
extendMeta,
removeCard,
DuelReducer, DuelReducer,
Interactivity,
extendIdleInteractivities, extendIdleInteractivities,
extendMeta,
extendState,
Interactivity,
removeCard,
} from "./generic"; } from "./generic";
import { DuelState } from "./mod";
import { judgeSelf } from "./util";
export interface CemeteryState extends DuelFieldState {} export interface CemeteryState extends DuelFieldState {}
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { import {
clearIdleInteractivities, clearIdleInteractivities,
clearPlaceInteractivities, clearPlaceInteractivities,
......
import { judgeSelf } from "./util"; import { CaseReducer, PayloadAction } from "@reduxjs/toolkit";
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { RootState } from "@/store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { DuelFieldState, CardState } from "./generic"; import { RootState } from "@/store";
import { CardState, DuelFieldState } from "./generic";
import { DuelState } from "./mod";
import { judgeSelf } from "./util";
export interface DeckState extends DuelFieldState {} export interface DeckState extends DuelFieldState {}
......
import { judgeSelf } from "./util";
import { import {
PayloadAction,
CaseReducer,
ActionReducerMapBuilder, ActionReducerMapBuilder,
CaseReducer,
PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { RootState } from "@/store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import { import {
createAsyncMetaThunk, createAsyncMetaThunk,
DuelFieldState, DuelFieldState,
extendState,
extendMeta,
removeCard,
DuelReducer, DuelReducer,
Interactivity,
extendIdleInteractivities, extendIdleInteractivities,
extendMeta,
extendState,
Interactivity,
removeCard,
} from "./generic"; } from "./generic";
import { DuelState } from "./mod";
import { judgeSelf } from "./util";
export interface ExclusionState extends DuelFieldState {} export interface ExclusionState extends DuelFieldState {}
......
import { ActionReducerMapBuilder } from "@reduxjs/toolkit"; import { ActionReducerMapBuilder } from "@reduxjs/toolkit";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { import {
createAsyncMetaThunk, createAsyncMetaThunk,
createAsyncRepeatedMetaThunk, createAsyncRepeatedMetaThunk,
......
...@@ -4,8 +4,10 @@ import { ...@@ -4,8 +4,10 @@ import {
createAsyncThunk, createAsyncThunk,
PayloadAction, PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { CardMeta, fetchCard } from "@/api/cards"; import { CardMeta, fetchCard } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
import ReloadFieldAction = ygopro.StocGameMessage.MsgReloadField.ZoneAction; import ReloadFieldAction = ygopro.StocGameMessage.MsgReloadField.ZoneAction;
type UpdateDataAction = ReturnType< type UpdateDataAction = ReturnType<
......
...@@ -3,20 +3,22 @@ import { ...@@ -3,20 +3,22 @@ import {
CaseReducer, CaseReducer,
PayloadAction, PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { judgeSelf } from "./util";
import { import {
Interactivity,
DuelFieldState,
removeCard,
createAsyncMetaThunk, createAsyncMetaThunk,
insertCard,
extendMeta,
createAsyncRepeatedMetaThunk, createAsyncRepeatedMetaThunk,
DuelFieldState,
extendMeta,
insertCard,
Interactivity,
removeCard,
updateCardMeta, updateCardMeta,
} from "./generic"; } from "./generic";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { DuelState } from "./mod";
import { judgeSelf } from "./util";
export interface HandState extends DuelFieldState {} export interface HandState extends DuelFieldState {}
......
import { createAsyncThunk, ActionReducerMapBuilder } from "@reduxjs/toolkit"; import { ActionReducerMapBuilder, createAsyncThunk } from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { RootState } from "@/store";
import { DESCRIPTION_LIMIT, fetchStrings, getStrings } from "@/api/strings";
import { findCardByLocation } from "./util";
import { fetchCard } from "@/api/cards"; import { fetchCard } from "@/api/cards";
import { DuelReducer } from "./generic";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { DESCRIPTION_LIMIT, fetchStrings, getStrings } from "@/api/strings";
import { RootState } from "@/store";
import { DuelReducer } from "./generic";
import { DuelState } from "./mod";
import { findCardByLocation } from "./util";
export interface HintState { export interface HintState {
code: number; code: number;
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { CaseReducer, PayloadAction } from "@reduxjs/toolkit";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
import { judgeSelf } from "./util"; import { judgeSelf } from "./util";
import MsgUpdateHp = ygopro.StocGameMessage.MsgUpdateHp; import MsgUpdateHp = ygopro.StocGameMessage.MsgUpdateHp;
......
import { judgeSelf } from "./util";
import { import {
PayloadAction,
CaseReducer,
ActionReducerMapBuilder, ActionReducerMapBuilder,
CaseReducer,
PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { import {
clearIdleInteractivities,
clearPlaceInteractivities,
createAsyncMetaThunk, createAsyncMetaThunk,
DuelFieldState, DuelFieldState,
extendIdleInteractivities,
extendOccupant, extendOccupant,
extendPlaceInteractivity, extendPlaceInteractivity,
clearPlaceInteractivities,
removeOccupant,
Interactivity, Interactivity,
extendIdleInteractivities, removeOccupant,
clearIdleInteractivities,
setPosition, setPosition,
} from "./generic"; } from "./generic";
import { DuelState } from "./mod";
import { judgeSelf } from "./util";
export interface MagicState extends DuelFieldState {} export interface MagicState extends DuelFieldState {}
......
...@@ -3,121 +3,123 @@ ...@@ -3,121 +3,123 @@
* *
* */ * */
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { InitInfo, infoInitImpl, updateHpImpl } from "./initInfoSlice";
import { TimeLimit, updateTimeLimitImpl } from "./timeLimit"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import {
addCemeteryIdleInteractivitiesImpl,
cemeteryCase,
CemeteryState,
initCemeteryImpl,
removeCemeteryImpl,
} from "./cemeretySlice";
import {
clearAllIdleInteractivitiesImpl,
clearAllPlaceInteractivitiesImpl,
reloadFieldImpl,
updateFieldDataImpl,
} from "./commonSlice";
import { DeckState, initDeckImpl } from "./deckSlice";
import {
addExclusionIdleInteractivitiesImpl,
exclusionCase,
ExclusionState,
initExclusionImpl,
removeExclusionImpl,
} from "./exclusionSlice";
import {
addExtraDeckIdleInteractivitiesImpl,
extraDeckCase,
ExtraDeckState,
removeExtraDeckImpl,
} from "./extraDeckSlice";
import { import {
HandState,
handsCase,
clearHandsIdleInteractivityImpl,
addHandsIdleInteractivityImpl, addHandsIdleInteractivityImpl,
clearHandsIdleInteractivityImpl,
handsCase,
HandState,
removeHandImpl, removeHandImpl,
} from "./handsSlice"; } from "./handsSlice";
import { newTurnImpl } from "./turnSlice"; import { hintCase, HintState, initHintImpl } from "./hintSlice";
import { infoInitImpl, InitInfo, updateHpImpl } from "./initInfoSlice";
import { import {
newPhaseImpl, addMagicIdleInteractivitiesImpl,
PhaseState, addMagicPlaceInteractivitiesImpl,
setEnableBpImpl, clearMagicIdleInteractivitiesImpl,
setEnableM2Impl, clearMagicPlaceInteractivitiesImpl,
setEnableEpImpl, initMagicsImpl,
} from "./phaseSlice"; magicCase,
import { RootState } from "@/store"; MagicState,
import { HintState, hintCase, initHintImpl } from "./hintSlice"; removeMagicImpl,
setMagicPositionImpl,
} from "./magicSlice";
import { import {
checkCardModalCase,
checkCardModalV2Case,
checkCardModalV3Case,
clearCheckCounterImpl,
ModalState, ModalState,
optionModalCase,
resetCheckCardModalImpl,
resetCheckCardModalV2Impl,
resetCheckCardModalV3Impl,
resetOptionModalImpl,
resetPositionModalImpl,
resetSortCardModalImpl,
setCardListModalInfoImpl,
setCardListModalIsOpenImpl,
setCardModalCountersImpl,
setCardModalInteractiviesImpl,
setCardModalIsOpenImpl, setCardModalIsOpenImpl,
setCardModalMetaImpl, setCardModalMetaImpl,
setCardModalInteractiviesImpl, setCheckCardMOdalCancelAbleImpl,
setCardListModalIsOpenImpl, setCheckCardModalCancelResponseImpl,
setCardListModalInfoImpl,
setCheckCardModalIsOpenImpl, setCheckCardModalIsOpenImpl,
setCheckCardModalMinMaxImpl, setCheckCardModalMinMaxImpl,
setCheckCardModalOnSubmitImpl, setCheckCardModalOnSubmitImpl,
setCheckCardMOdalCancelAbleImpl,
setCheckCardModalCancelResponseImpl,
resetCheckCardModalImpl,
setYesNoModalIsOpenImpl,
checkCardModalCase,
YesNoModalCase,
setPositionModalIsOpenImpl,
setPositionModalPositionsImpl,
resetPositionModalImpl,
setOptionModalIsOpenImpl,
resetOptionModalImpl,
optionModalCase,
setCheckCardModalV2IsOpenImpl,
setCheckCardModalV2CancelAbleImpl, setCheckCardModalV2CancelAbleImpl,
setCheckCardModalV2MinMaxImpl,
setCheckCardModalV2FinishAbleImpl, setCheckCardModalV2FinishAbleImpl,
resetCheckCardModalV2Impl, setCheckCardModalV2IsOpenImpl,
setCheckCardModalV2MinMaxImpl,
setCheckCardModalV2ResponseAbleImpl, setCheckCardModalV2ResponseAbleImpl,
checkCardModalV2Case, setCheckCardModalV3AllLevelImpl,
setCheckCardModalV3IsOpenImpl, setCheckCardModalV3IsOpenImpl,
setCheckCardModalV3MinMaxImpl, setCheckCardModalV3MinMaxImpl,
setCheckCardModalV3AllLevelImpl,
setCheckCardModalV3OverFlowImpl, setCheckCardModalV3OverFlowImpl,
setCheckCardModalV3ResponseAbleImpl, setCheckCardModalV3ResponseAbleImpl,
resetCheckCardModalV3Impl,
checkCardModalV3Case,
setCardModalCountersImpl,
setCheckCounterImpl, setCheckCounterImpl,
clearCheckCounterImpl, setOptionModalIsOpenImpl,
setPositionModalIsOpenImpl,
setPositionModalPositionsImpl,
setSortCardModalIsOpenImpl, setSortCardModalIsOpenImpl,
resetSortCardModalImpl, setYesNoModalIsOpenImpl,
sortCardModalCase, sortCardModalCase,
YesNoModalCase,
} from "./modal/mod"; } from "./modal/mod";
import { import {
MonsterState,
initMonstersImpl,
addMonsterPlaceInteractivitiesImpl,
clearMonsterPlaceInteractivitiesImpl,
addMonsterIdleInteractivitiesImpl, addMonsterIdleInteractivitiesImpl,
addMonsterPlaceInteractivitiesImpl,
clearMonsterIdleInteractivitiesImpl, clearMonsterIdleInteractivitiesImpl,
clearMonsterPlaceInteractivitiesImpl,
initMonstersImpl,
monsterCase,
MonsterState,
removeMonsterImpl, removeMonsterImpl,
setMonsterPositionImpl,
removeOverlayImpl, removeOverlayImpl,
setMonsterPositionImpl,
updateMonsterCountersImpl, updateMonsterCountersImpl,
monsterCase,
} from "./monstersSlice"; } from "./monstersSlice";
import { import {
MagicState, newPhaseImpl,
initMagicsImpl, PhaseState,
addMagicPlaceInteractivitiesImpl, setEnableBpImpl,
clearMagicPlaceInteractivitiesImpl, setEnableEpImpl,
addMagicIdleInteractivitiesImpl, setEnableM2Impl,
clearMagicIdleInteractivitiesImpl, } from "./phaseSlice";
removeMagicImpl, import { TimeLimit, updateTimeLimitImpl } from "./timeLimit";
setMagicPositionImpl, import { newTurnImpl } from "./turnSlice";
magicCase,
} from "./magicSlice";
import {
CemeteryState,
initCemeteryImpl,
removeCemeteryImpl,
cemeteryCase,
addCemeteryIdleInteractivitiesImpl,
} from "./cemeretySlice";
import {
ExclusionState,
initExclusionImpl,
removeExclusionImpl,
exclusionCase,
addExclusionIdleInteractivitiesImpl,
} from "./exclusionSlice";
import { DeckState, initDeckImpl } from "./deckSlice";
import {
clearAllIdleInteractivitiesImpl,
clearAllPlaceInteractivitiesImpl,
updateFieldDataImpl,
reloadFieldImpl,
} from "./commonSlice";
import {
ExtraDeckState,
extraDeckCase,
removeExtraDeckImpl,
addExtraDeckIdleInteractivitiesImpl,
} from "./extraDeckSlice";
import MsgWin = ygopro.StocGameMessage.MsgWin; import MsgWin = ygopro.StocGameMessage.MsgWin;
export interface DuelState { export interface DuelState {
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { CaseReducer, PayloadAction } from "@reduxjs/toolkit";
import { DuelState } from "../mod";
import { RootState } from "@/store";
import { CardMeta } from "@/api/cards"; import { CardMeta } from "@/api/cards";
import { RootState } from "@/store";
import { DuelState } from "../mod";
// 更新卡牌列表弹窗打开状态 // 更新卡牌列表弹窗打开状态
export const setCardListModalIsOpenImpl: CaseReducer< export const setCardListModalIsOpenImpl: CaseReducer<
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { CaseReducer, PayloadAction } from "@reduxjs/toolkit";
import { DuelState } from "../mod";
import { RootState } from "@/store";
import { CardMeta } from "@/api/cards"; import { CardMeta } from "@/api/cards";
import { RootState } from "@/store";
import { DuelState } from "../mod";
// 更新卡牌弹窗打开状态 // 更新卡牌弹窗打开状态
export const setCardModalIsOpenImpl: CaseReducer< export const setCardModalIsOpenImpl: CaseReducer<
......
import { import {
PayloadAction, ActionReducerMapBuilder,
CaseReducer, CaseReducer,
createAsyncThunk, createAsyncThunk,
ActionReducerMapBuilder, PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { fetchCard, getCardStr } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { DuelState } from "../mod"; import { DuelState } from "../mod";
import { cmpCardLocation, findCardByLocation, judgeSelf } from "../util"; import { cmpCardLocation, findCardByLocation, judgeSelf } from "../util";
import { fetchCard, getCardStr } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
// 更新卡牌选择弹窗打开状态 // 更新卡牌选择弹窗打开状态
export const setCheckCardModalIsOpenImpl: CaseReducer< export const setCheckCardModalIsOpenImpl: CaseReducer<
......
import { DuelState } from "../mod";
import { DuelReducer } from "../generic";
import { import {
ActionReducerMapBuilder, ActionReducerMapBuilder,
CaseReducer, CaseReducer,
createAsyncThunk, createAsyncThunk,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { fetchCard } from "@/api/cards"; import { fetchCard } from "@/api/cards";
import { RootState } from "@/store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import { DuelReducer } from "../generic";
import { DuelState } from "../mod";
import { findCardByLocation } from "../util"; import { findCardByLocation } from "../util";
// 更新打开状态 // 更新打开状态
......
import { DuelState } from "../mod";
import { DuelReducer } from "../generic";
import { import {
ActionReducerMapBuilder, ActionReducerMapBuilder,
CaseReducer, CaseReducer,
createAsyncThunk, createAsyncThunk,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { fetchCard } from "@/api/cards"; import { fetchCard } from "@/api/cards";
import { RootState } from "@/store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import { DuelReducer } from "../generic";
import { DuelState } from "../mod";
import { findCardByLocation } from "../util"; import { findCardByLocation } from "../util";
// 更新打开状态 // 更新打开状态
......
// 后续对于`MSG_SELECT_XXX`的处理UI都尽量用`Babylon.js`实现而不会通过`Antd`的`Modal`实现,因此这里不追求工程质量,暂时简单实现下。 // 后续对于`MSG_SELECT_XXX`的处理UI都尽量用`Babylon.js`实现而不会通过`Antd`的`Modal`实现,因此这里不追求工程质量,暂时简单实现下。
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { CaseReducer, PayloadAction } from "@reduxjs/toolkit";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { DuelState } from "../mod"; import { DuelState } from "../mod";
import { findCardByLocation } from "../util"; import { findCardByLocation } from "../util";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
type SelectCounter = ReturnType< type SelectCounter = ReturnType<
typeof ygopro.StocGameMessage.MsgSelectCounter.prototype.toObject typeof ygopro.StocGameMessage.MsgSelectCounter.prototype.toObject
>; >;
......
...@@ -114,13 +114,13 @@ export interface ModalState { ...@@ -114,13 +114,13 @@ export interface ModalState {
}; };
} }
export * from "./cardModalSlice";
export * from "./cardListModalSlice"; export * from "./cardListModalSlice";
export * from "./cardModalSlice";
export * from "./checkCardModalSlice"; export * from "./checkCardModalSlice";
export * from "./yesNoModalSlice";
export * from "./positionModalSlice";
export * from "./optionModalSlice";
export * from "./checkCardModalV2Slice"; export * from "./checkCardModalV2Slice";
export * from "./checkCardModalV3Slice"; export * from "./checkCardModalV3Slice";
export * from "./checkCounterModalSlice"; export * from "./checkCounterModalSlice";
export * from "./optionModalSlice";
export * from "./positionModalSlice";
export * from "./sortCardModalSlice"; export * from "./sortCardModalSlice";
export * from "./yesNoModalSlice";
import { import {
PayloadAction, ActionReducerMapBuilder,
CaseReducer, CaseReducer,
createAsyncThunk, createAsyncThunk,
ActionReducerMapBuilder, PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "../mod";
import { fetchCard, getCardStr } from "@/api/cards"; import { fetchCard, getCardStr } from "@/api/cards";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { DuelState } from "../mod";
export const setOptionModalIsOpenImpl: CaseReducer< export const setOptionModalIsOpenImpl: CaseReducer<
DuelState, DuelState,
PayloadAction<boolean> PayloadAction<boolean>
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { CaseReducer, PayloadAction } from "@reduxjs/toolkit";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { DuelState } from "../mod"; import { DuelState } from "../mod";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
export const setPositionModalIsOpenImpl: CaseReducer< export const setPositionModalIsOpenImpl: CaseReducer<
DuelState, DuelState,
......
...@@ -3,9 +3,11 @@ import { ...@@ -3,9 +3,11 @@ import {
CaseReducer, CaseReducer,
createAsyncThunk, createAsyncThunk,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { fetchCard } from "@/api/cards"; import { fetchCard } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { DuelReducer } from "../generic"; import { DuelReducer } from "../generic";
import { DuelState } from "../mod"; import { DuelState } from "../mod";
type SortCard = ReturnType< type SortCard = ReturnType<
......
import { import {
PayloadAction, ActionReducerMapBuilder,
CaseReducer, CaseReducer,
createAsyncThunk, createAsyncThunk,
ActionReducerMapBuilder, PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { CardMeta, fetchCard } from "@/api/cards"; import { CardMeta, fetchCard } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchStrings, getStrings } from "@/api/strings"; import { fetchStrings, getStrings } from "@/api/strings";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { DuelState } from "../mod"; import { DuelState } from "../mod";
// 更新YesNo弹窗是否打开状态 // 更新YesNo弹窗是否打开状态
......
import { judgeSelf } from "./util";
import { import {
PayloadAction,
CaseReducer,
ActionReducerMapBuilder, ActionReducerMapBuilder,
CaseReducer,
createAsyncThunk, createAsyncThunk,
PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { fetchCard } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { import {
DuelFieldState, clearIdleInteractivities,
Interactivity, clearPlaceInteractivities,
createAsyncMetaThunk, createAsyncMetaThunk,
DuelFieldState,
extendIdleInteractivities,
extendOccupant, extendOccupant,
extendPlaceInteractivity, extendPlaceInteractivity,
clearPlaceInteractivities, Interactivity,
removeOccupant, removeOccupant,
extendIdleInteractivities,
clearIdleInteractivities,
setPosition,
removeOverlay, removeOverlay,
setPosition,
} from "./generic"; } from "./generic";
import { fetchCard } from "@/api/cards"; import { DuelState } from "./mod";
import { judgeSelf } from "./util";
type MsgUpdateCounter = ReturnType< type MsgUpdateCounter = ReturnType<
typeof ygopro.StocGameMessage.MsgUpdateCounter.prototype.toObject typeof ygopro.StocGameMessage.MsgUpdateCounter.prototype.toObject
>; >;
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { CaseReducer, PayloadAction } from "@reduxjs/toolkit";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
export interface PhaseState { export interface PhaseState {
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { CaseReducer, PayloadAction } from "@reduxjs/toolkit";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
import { judgeSelf } from "./util"; import { judgeSelf } from "./util";
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { CaseReducer, PayloadAction } from "@reduxjs/toolkit";
import { RootState } from "@/store"; import { RootState } from "@/store";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
import { judgeSelf } from "./util"; import { judgeSelf } from "./util";
......
...@@ -3,10 +3,12 @@ ...@@ -3,10 +3,12 @@
* *
* */ * */
import { DuelState } from "./mod";
import { Draft } from "@reduxjs/toolkit"; import { Draft } from "@reduxjs/toolkit";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { CardState } from "./generic"; import { CardState } from "./generic";
import { DuelState } from "./mod";
type Location = type Location =
| ygopro.CardLocation | ygopro.CardLocation
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
* *
* */ * */
import { createSlice } from "@reduxjs/toolkit"; import { createSlice } from "@reduxjs/toolkit";
import { RootState } from "@/store"; import { RootState } from "@/store";
export interface JoinState { export interface JoinState {
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
* *
* */ * */
import { createSlice } from "@reduxjs/toolkit"; import { createSlice } from "@reduxjs/toolkit";
import { RootState } from "@/store"; import { RootState } from "@/store";
export interface moraState { export interface moraState {
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
* *
* */ * */
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { RootState } from "@/store"; import { RootState } from "@/store";
export interface Player { export interface Player {
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { fetchHandsMeta } from "@/reducers/duel/handsSlice"; import { fetchHandsMeta } from "@/reducers/duel/handsSlice";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default ( export default (
draw: ygopro.StocGameMessage.MsgDraw, draw: ygopro.StocGameMessage.MsgDraw,
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setWaiting } from "@/reducers/duel/mod";
import { store } from "@/store"; import { store } from "@/store";
import onMsgStart from "./start";
import onMsgAttack from "./attack";
import onMsgAttackDisable from "./attackDisable";
import onMsgChaining from "./chaining";
import onMsgDraw from "./draw"; import onMsgDraw from "./draw";
import onMsgNewTurn from "./newTurn"; import onMsgFilpSummoned from "./flipSummoned";
import onMsgNewPhase from "./newPhase"; import onMsgFlipSummoning from "./flipSummoning";
import onMsgHint from "./hint"; import onMsgHint from "./hint";
import onMsgSelectIdleCmd from "./selectIdleCmd";
import onMsgSelectPlace from "./selectPlace";
import onMsgMove from "./move"; import onMsgMove from "./move";
import onMsgNewPhase from "./newPhase";
import onMsgNewTurn from "./newTurn";
import onMsgPosChange from "./posChange";
import onMsgReloadField from "./reloadField";
import onMsgSelectBattleCmd from "./selectBattleCmd";
import onMsgSelectCard from "./selectCard"; import onMsgSelectCard from "./selectCard";
import onMsgSelectChain from "./selectChain"; import onMsgSelectChain from "./selectChain";
import onMsgSelectCounter from "./selectCounter";
import onMsgSelectEffectYn from "./selectEffectYn"; import onMsgSelectEffectYn from "./selectEffectYn";
import onMsgSelectPosition from "./selectPosition"; import onMsgSelectIdleCmd from "./selectIdleCmd";
import onMsgSelectOption from "./selectOption"; import onMsgSelectOption from "./selectOption";
import onMsgShuffleHand from "./shuffleHand"; import onMsgSelectPlace from "./selectPlace";
import onMsgSelectBattleCmd from "./selectBattleCmd"; import onMsgSelectPosition from "./selectPosition";
import onMsgPosChange from "./posChange";
import onMsgSelectUnselectCard from "./selectUnselectCard";
import onMsgSelectYesNo from "./selectYesNo";
import onMsgUpdateHp from "./updateHp";
import onMsgWin from "./win";
import onMsgWait from "./wait";
import onUnimplemented from "./unimplemented";
import onMsgUpdateData from "./updateData";
import onMsgReloadField from "./reloadField";
import onMsgSelectSum from "./selectSum"; import onMsgSelectSum from "./selectSum";
import onMsgSelectTribute from "./selectTribute"; import onMsgSelectTribute from "./selectTribute";
import onMsgUpdateCounter from "./updateCounter"; import onMsgSelectUnselectCard from "./selectUnselectCard";
import onMsgSelectCounter from "./selectCounter"; import onMsgSelectYesNo from "./selectYesNo";
import onMsgSortCard from "./sortCard";
import onMsgSet from "./set"; import onMsgSet from "./set";
import onMsgSwap from "./swap"; import onMsgShuffleHand from "./shuffleHand";
import onMsgAttack from "./attack"; import onMsgSortCard from "./sortCard";
import onMsgAttackDisable from "./attackDisable";
import onMsgChaining from "./chaining";
import onMsgFlipSummoning from "./flipSummoning";
import onMsgFilpSummoned from "./flipSummoned";
import onMsgSpSummoning from "./spSummoning";
import onMsgSpSummoned from "./spSummoned"; import onMsgSpSummoned from "./spSummoned";
import onMsgSummoning from "./summoning"; import onMsgSpSummoning from "./spSummoning";
import onMsgStart from "./start";
import onMsgSummoned from "./summoned"; import onMsgSummoned from "./summoned";
import { setWaiting } from "@/reducers/duel/mod"; import onMsgSummoning from "./summoning";
import onMsgSwap from "./swap";
import onUnimplemented from "./unimplemented";
import onMsgUpdateCounter from "./updateCounter";
import onMsgUpdateData from "./updateData";
import onMsgUpdateHp from "./updateHp";
import onMsgWait from "./wait";
import onMsgWin from "./win";
const ActiveList = [ const ActiveList = [
"select_idle_cmd", "select_idle_cmd",
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { import {
fetchCommonHintMeta, fetchCommonHintMeta,
fetchEsHintMeta, fetchEsHintMeta,
fetchSelectHintMeta, fetchSelectHintMeta,
} from "@/reducers/duel/hintSlice"; } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
import MsgHint = ygopro.StocGameMessage.MsgHint; import MsgHint = ygopro.StocGameMessage.MsgHint;
export default (hint: MsgHint, dispatch: AppDispatch) => { export default (hint: MsgHint, dispatch: AppDispatch) => {
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import MsgMove = ygopro.StocGameMessage.MsgMove; import MsgMove = ygopro.StocGameMessage.MsgMove;
import { AppDispatch } from "@/store"; import { fetchCemeteryMeta } from "@/reducers/duel/cemeretySlice";
import { import { fetchExclusionMeta } from "@/reducers/duel/exclusionSlice";
fetchMonsterMeta, import { fetchExtraDeckMeta } from "@/reducers/duel/extraDeckSlice";
fetchOverlayMeta, import { insertHandMeta } from "@/reducers/duel/handsSlice";
} from "@/reducers/duel/monstersSlice"; import { fetchMagicMeta } from "@/reducers/duel/magicSlice";
import { import {
removeCemetery, removeCemetery,
removeExclusion, removeExclusion,
...@@ -14,11 +14,12 @@ import { ...@@ -14,11 +14,12 @@ import {
removeMonster, removeMonster,
removeOverlay, removeOverlay,
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import { fetchMagicMeta } from "@/reducers/duel/magicSlice"; import {
import { fetchCemeteryMeta } from "@/reducers/duel/cemeretySlice"; fetchMonsterMeta,
import { insertHandMeta } from "@/reducers/duel/handsSlice"; fetchOverlayMeta,
import { fetchExclusionMeta } from "@/reducers/duel/exclusionSlice"; } from "@/reducers/duel/monstersSlice";
import { fetchExtraDeckMeta } from "@/reducers/duel/extraDeckSlice"; import { AppDispatch } from "@/store";
import { REASON_MATERIAL } from "../../common"; import { REASON_MATERIAL } from "../../common";
const OVERLAY_STACK: { code: number; sequence: number }[] = []; const OVERLAY_STACK: { code: number; sequence: number }[] = [];
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { updatePhase } from "@/reducers/duel/mod"; import { updatePhase } from "@/reducers/duel/mod";
import { AppDispatch } from "@/store";
export default ( export default (
newPhase: ygopro.StocGameMessage.MsgNewPhase, newPhase: ygopro.StocGameMessage.MsgNewPhase,
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { updateTurn } from "@/reducers/duel/mod"; import { updateTurn } from "@/reducers/duel/mod";
import { AppDispatch } from "@/store";
export default ( export default (
newTurn: ygopro.StocGameMessage.MsgNewTurn, newTurn: ygopro.StocGameMessage.MsgNewTurn,
......
import { ActionCreatorWithPayload } from "@reduxjs/toolkit"; import { ActionCreatorWithPayload } from "@reduxjs/toolkit";
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { Interactivity, InteractType } from "@/reducers/duel/generic"; import { Interactivity, InteractType } from "@/reducers/duel/generic";
import { import {
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { import {
setCheckCardModalIsOpen, setCheckCardModalIsOpen,
setCheckCardModalMinMax, setCheckCardModalMinMax,
setCheckCardModalOnSubmit, setCheckCardModalOnSubmit,
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import { fetchCheckCardMeta } from "@/reducers/duel/modal/mod"; import { fetchCheckCardMeta } from "@/reducers/duel/modal/mod";
import { AppDispatch } from "@/store";
import MsgSelectCard = ygopro.StocGameMessage.MsgSelectCard; import MsgSelectCard = ygopro.StocGameMessage.MsgSelectCard;
import { CardZoneToChinese } from "./util"; import { CardZoneToChinese } from "./util";
......
...@@ -10,6 +10,7 @@ import { ...@@ -10,6 +10,7 @@ import {
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import { fetchCheckCardMeta } from "@/reducers/duel/modal/mod"; import { fetchCheckCardMeta } from "@/reducers/duel/modal/mod";
import { AppDispatch } from "@/store"; import { AppDispatch } from "@/store";
import { CardZoneToChinese } from "./util"; import { CardZoneToChinese } from "./util";
import MsgSelectChain = ygopro.StocGameMessage.MsgSelectChain; import MsgSelectChain = ygopro.StocGameMessage.MsgSelectChain;
......
...@@ -3,6 +3,7 @@ import { ygopro } from "@/api/ocgcore/idl/ocgcore"; ...@@ -3,6 +3,7 @@ import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setYesNoModalIsOpen } from "@/reducers/duel/mod"; import { setYesNoModalIsOpen } from "@/reducers/duel/mod";
import { fetchYesNoMeta } from "@/reducers/duel/modal/mod"; import { fetchYesNoMeta } from "@/reducers/duel/modal/mod";
import { AppDispatch } from "@/store"; import { AppDispatch } from "@/store";
import { CardZoneToChinese } from "./util"; import { CardZoneToChinese } from "./util";
import MsgSelectEffectYn = ygopro.StocGameMessage.MsgSelectEffectYn; import MsgSelectEffectYn = ygopro.StocGameMessage.MsgSelectEffectYn;
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { Interactivity, InteractType } from "@/reducers/duel/generic"; import { Interactivity, InteractType } from "@/reducers/duel/generic";
import { import {
addCemeteryIdleInteractivities,
addExclusionIdleInteractivities,
addExtraDeckIdleInteractivities,
addHandsIdleInteractivity, addHandsIdleInteractivity,
addMonsterIdleInteractivities,
addMagicIdleInteractivities, addMagicIdleInteractivities,
addMonsterIdleInteractivities,
clearAllIdleInteractivities,
setEnableBp, setEnableBp,
setEnableEp, setEnableEp,
addCemeteryIdleInteractivities,
clearAllIdleInteractivities,
addExclusionIdleInteractivities,
addExtraDeckIdleInteractivities,
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import { AppDispatch } from "@/store";
import MsgSelectIdleCmd = ygopro.StocGameMessage.MsgSelectIdleCmd; import MsgSelectIdleCmd = ygopro.StocGameMessage.MsgSelectIdleCmd;
import { ActionCreatorWithPayload } from "@reduxjs/toolkit"; import { ActionCreatorWithPayload } from "@reduxjs/toolkit";
......
...@@ -2,8 +2,8 @@ import { ygopro } from "@/api/ocgcore/idl/ocgcore"; ...@@ -2,8 +2,8 @@ import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store"; import { AppDispatch } from "@/store";
import MsgSelectPlace = ygopro.StocGameMessage.MsgSelectPlace; import MsgSelectPlace = ygopro.StocGameMessage.MsgSelectPlace;
import { import {
addMonsterPlaceInteractivities,
addMagicPlaceInteractivities, addMagicPlaceInteractivities,
addMonsterPlaceInteractivities,
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
export default (selectPlace: MsgSelectPlace, dispatch: AppDispatch) => { export default (selectPlace: MsgSelectPlace, dispatch: AppDispatch) => {
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { import {
infoInit, infoInit,
setSelfType,
initMonsters,
initMagics,
initCemetery, initCemetery,
initDeck, initDeck,
initExclusion, initExclusion,
initHint, initHint,
initMagics,
initMonsters,
setSelfType,
} from "@/reducers/duel/mod"; } from "@/reducers/duel/mod";
import { AppDispatch } from "@/store";
export default ( export default (
start: ygopro.StocGameMessage.MsgStart, start: ygopro.StocGameMessage.MsgStart,
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "@/store";
import { updateTimeLimit } from "@/reducers/duel/mod";
import { sendTimeConfirm } from "@/api/ocgcore/ocgHelper"; import { sendTimeConfirm } from "@/api/ocgcore/ocgHelper";
import { updateTimeLimit } from "@/reducers/duel/mod";
import { store } from "@/store";
export default function handleTimeLimit(timeLimit: ygopro.StocTimeLimit) { export default function handleTimeLimit(timeLimit: ygopro.StocTimeLimit) {
const dispatch = store.dispatch; const dispatch = store.dispatch;
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setUnimplemented } from "@/reducers/duel/mod"; import { setUnimplemented } from "@/reducers/duel/mod";
import { AppDispatch } from "@/store"; import { AppDispatch } from "@/store";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
export default ( export default (
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "@/store";
import { player0DeckInfo, player1DeckInfo } from "@/reducers/playerSlice"; import { player0DeckInfo, player1DeckInfo } from "@/reducers/playerSlice";
import { store } from "@/store";
// FIXME: player0 不一定是当前玩家 // FIXME: player0 不一定是当前玩家
export default function handleDeckCount(pb: ygopro.YgoStocMsg) { export default function handleDeckCount(pb: ygopro.YgoStocMsg) {
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "@/store";
import { selectHandAble } from "@/reducers/moraSlice"; import { selectHandAble } from "@/reducers/moraSlice";
import { store } from "@/store";
export default function handleSelectHand(_: ygopro.YgoStocMsg) { export default function handleSelectHand(_: ygopro.YgoStocMsg) {
const dispatch = store.dispatch; const dispatch = store.dispatch;
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "@/store";
import { selectTpAble } from "@/reducers/moraSlice"; import { selectTpAble } from "@/reducers/moraSlice";
import { store } from "@/store";
export default function handleSelectTp(_: ygopro.YgoStocMsg) { export default function handleSelectTp(_: ygopro.YgoStocMsg) {
const dispatch = store.dispatch; const dispatch = store.dispatch;
......
...@@ -2,20 +2,21 @@ ...@@ -2,20 +2,21 @@
* 长连接消息事件订阅处理逻辑 * 长连接消息事件订阅处理逻辑
* *
* */ * */
import handleHsPlayerChange from "./room/hsPlayerChange";
import handleTypeChange from "./room/typeChange";
import handleHsPlayerEnter from "./room/hsPlayerEnter";
import handleJoinGame from "./room/joinGame";
import handleChat from "./room/chat";
import handleHsWatchChange from "./room/hsWatchChange";
import { YgoProPacket } from "@/api/ocgcore/ocgAdapter/packet";
import { adaptStoc } from "@/api/ocgcore/ocgAdapter/adapter"; import { adaptStoc } from "@/api/ocgcore/ocgAdapter/adapter";
import handleSelectHand from "./mora/selectHand"; import { YgoProPacket } from "@/api/ocgcore/ocgAdapter/packet";
import handleSelectTp from "./mora/selectTp";
import handleDeckCount from "./mora/deckCount";
import handleGameMsg from "./duel/gameMsg"; import handleGameMsg from "./duel/gameMsg";
import handleTimeLimit from "./duel/timeLimit"; import handleTimeLimit from "./duel/timeLimit";
import handleDeckCount from "./mora/deckCount";
import handleSelectHand from "./mora/selectHand";
import handleSelectTp from "./mora/selectTp";
import handleChat from "./room/chat";
import handleDuelStart from "./room/duelStart"; import handleDuelStart from "./room/duelStart";
import handleHsPlayerChange from "./room/hsPlayerChange";
import handleHsPlayerEnter from "./room/hsPlayerEnter";
import handleHsWatchChange from "./room/hsWatchChange";
import handleJoinGame from "./room/joinGame";
import handleTypeChange from "./room/typeChange";
/* /*
* 先将从长连接中读取到的二进制数据通过Adapter转成protobuf结构体, * 先将从长连接中读取到的二进制数据通过Adapter转成protobuf结构体,
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
* *
* */ * */
import { sendJoinGame, sendPlayerInfo } from "@/api/ocgcore/ocgHelper"; import { sendJoinGame, sendPlayerInfo } from "@/api/ocgcore/ocgHelper";
import NeosConfig from "../../neos.config.json"; import NeosConfig from "../../neos.config.json";
/* /*
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "@/store";
import { import {
player0Update, observerIncrement,
player1Update,
player0Leave, player0Leave,
player0Update,
player1Leave, player1Leave,
observerIncrement, player1Update,
} from "@/reducers/playerSlice"; } from "@/reducers/playerSlice";
import { store } from "@/store";
const READY_STATE = "ready"; const READY_STATE = "ready";
const NO_READY_STATE = "not ready"; const NO_READY_STATE = "not ready";
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "@/store";
import { player0Enter, player1Enter } from "@/reducers/playerSlice"; import { player0Enter, player1Enter } from "@/reducers/playerSlice";
import { store } from "@/store";
export default function handleHsPlayerEnter(pb: ygopro.YgoStocMsg) { export default function handleHsPlayerEnter(pb: ygopro.YgoStocMsg) {
const dispatch = store.dispatch; const dispatch = store.dispatch;
......
import { ygopro } from "@/api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "@/store";
import { setJoined } from "@/reducers/joinSlice"; import { setJoined } from "@/reducers/joinSlice";
import { store } from "@/store";
export default function handleJoinGame(pb: ygopro.YgoStocMsg) { export default function handleJoinGame(pb: ygopro.YgoStocMsg) {
const dispatch = store.dispatch; const dispatch = store.dispatch;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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