Commit 12ce8027 authored by timel's avatar timel

Merge branch 'dev/better-import' into 'main'

Dev/better import

1. 增加ts path设置,将大部分的父层级导入改成`import {} from '@/xxx'`的形式。

2. 增加vite和eslint的插件,修改配置,让lint和build能正确识别ts path。

3. 去除导入`rust-src`时候的`@ts-ignore`。修改了CI,使得顺序变成`rs_check_lint->wasm_build->ts_check_lint`。这样,前面编译得到的`.d.ts`可以被后面的`ts_check_lint`消费,不会引发导入错误。

4. 去除了vite的WASM插件,因为内置可以识别WASM。

5. 处理了数个eslint的警告。

6. 给Cargo增加了镜像源,因为有时候CI会网络错误。(我不太确定这个修改好不好)

------

测试了本地编译和在线CI。

See merge request !166
parents c159cc11 e01a4f9a
{ {
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"extends": ["plugin:prettier/recommended"], "extends": [
"plugins": ["@typescript-eslint"], "plugin:prettier/recommended",
"plugin:import/recommended",
"plugin:import/typescript"
],
"plugins": [
"@typescript-eslint"
],
"rules": { "rules": {
"eqeqeq": 0, "eqeqeq": 0,
"no-var": "error", "no-var": "error",
...@@ -9,5 +15,11 @@ ...@@ -9,5 +15,11 @@
"error", "error",
"interface" "interface"
] ]
},
"settings": {
"import/resolver": {
"node": true,
"typescript": true
}
} }
} }
stages: stages:
- install - install
- check - rs_check_lint
- lint
- test
- wasm - wasm
- ts_check_lint
- test
- build - build
- deploy - deploy
...@@ -22,37 +22,16 @@ npm_ci: ...@@ -22,37 +22,16 @@ npm_ci:
dependencies: dependencies:
- npm_ci - npm_ci
ts_check: rs_check_lint:
dependencies: stage: rs_check_lint
- npm_ci
stage: check
tags:
- linux
script:
- npx tsc
rs_check:
stage: check
image: rust:latest
tags:
- linux
script: cd rust-src && cargo check
ts_lint:
extends: .build_base
stage: lint
tags:
- linux
script: npm run lint
rs_lint:
stage: lint
image: rust:latest image: rust:latest
tags: tags:
- linux - linux
script: script:
- cd rust-src
- cargo check
- rustup component add clippy - rustup component add clippy
- cd rust-src && cargo clippy -- -Dwarnings - cargo clippy -- -Dwarnings
wasm_build: wasm_build:
tags: tags:
...@@ -70,6 +49,17 @@ wasm_build: ...@@ -70,6 +49,17 @@ wasm_build:
- rust-src/pkg - rust-src/pkg
- node_modules - node_modules
ts_check_lint:
dependencies:
- npm_ci
- wasm_build
stage: ts_check_lint
tags:
- linux
script:
- npx tsc
- npm run lint
npm_build: npm_build:
dependencies: dependencies:
- wasm_build - wasm_build
...@@ -90,7 +80,7 @@ deploy: ...@@ -90,7 +80,7 @@ deploy:
- linux - linux
only: only:
- main - main
dependencies: dependencies:
- npm_build - npm_build
script: script:
- mv neos-assets dist/ - mv neos-assets dist/
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -23,3 +23,10 @@ wasm-bindgen-test = "0.3.13" ...@@ -23,3 +23,10 @@ wasm-bindgen-test = "0.3.13"
[profile.release] [profile.release]
opt-level = "s" opt-level = "s"
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
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 {
id: number; id: number;
......
import { ygopro } from "../idl/ocgcore"; import { ygopro } from "../idl/ocgcore";
import { numberToCardPosition, numberToCardZone } from "./util"; import { numberToCardPosition, numberToCardZone } from "./util";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
const LOCATION_OVERLAY = 0x80; const LOCATION_OVERLAY = 0x80;
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
export default ( export default (
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectCardResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectCardResponse) => {
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectChainResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectChainResponse) => {
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectCounterResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectCounterResponse) => {
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
export default ( export default (
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectIdleCmdResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectIdleCmdResponse) => {
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectOptionResponse) => { export default (response: ygopro.CtosGameMsgResponse.SelectOptionResponse) => {
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
import { cardZoneToNumber } from "../../util"; import { cardZoneToNumber } from "../../util";
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
export default ( export default (
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
export default ( export default (
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src"; import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SortCardResponse) => { export default (response: ygopro.CtosGameMsgResponse.SortCardResponse) => {
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
//@ts-ignore
import { ocgDamageAdapter } from "rust-src"; import { ocgDamageAdapter } from "rust-src";
/* /*
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
/* /*
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
/* /*
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
/* /*
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
/* /*
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
/* /*
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReaderExt } from "../../bufferIO"; import { BufferReaderExt } from "../../bufferIO";
import MsgReloadField = ygopro.StocGameMessage.MsgReloadField; import MsgReloadField = ygopro.StocGameMessage.MsgReloadField;
import { numberToCardPosition } from "../../util"; import { numberToCardPosition } from "../../util";
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import MsgSelectOption = ygopro.StocGameMessage.MsgSelectOption; import MsgSelectOption = ygopro.StocGameMessage.MsgSelectOption;
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import MsgSelectPlace = ygopro.StocGameMessage.MsgSelectPlace; import MsgSelectPlace = ygopro.StocGameMessage.MsgSelectPlace;
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
import MsgSelectPosition = ygopro.StocGameMessage.MsgSelectPosition; import MsgSelectPosition = ygopro.StocGameMessage.MsgSelectPosition;
......
import { ygopro } from "../../../idl/ocgcore"; import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
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 { YgoProPacket, StocAdapter } from "../packet";
// @ts-ignore
import { BufferReader } from "rust-src"; import { BufferReader } from "rust-src";
/* /*
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* */ * */
import { ygopro } from "./idl/ocgcore"; 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 PlayerInfoAdapter from "./ocgAdapter/ctos/ctosPlayerInfo";
import JoinGameAdapter from "./ocgAdapter/ctos/ctosJoinGame"; import JoinGameAdapter from "./ocgAdapter/ctos/ctosJoinGame";
......
import { useEnv } from "../hook"; import { useEnv } from "@/hook";
const { DEV, VITE_IS_AI_MODE, VITE_IS_AI_FIRST } = useEnv(); const { DEV, VITE_IS_AI_MODE, VITE_IS_AI_FIRST } = useEnv();
......
import { useEnv } from "../hook"; import { useEnv } from "@/hook";
const { DEV, VITE_IS_AI_MODE, VITE_AI_MODE_DEFAULT_DECK } = useEnv(); const { DEV, VITE_IS_AI_MODE, VITE_AI_MODE_DEFAULT_DECK } = useEnv();
......
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 { RootState, AppDispatch } 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;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* */ * */
import initSqlJs, { Database } from "sql.js"; import initSqlJs, { Database } from "sql.js";
import { CardMeta, CardData, CardText } from "../api/cards"; import { CardMeta, CardData, CardText } from "@/api/cards";
import NeosConfig from "../../neos.config.json"; import NeosConfig from "../../neos.config.json";
export enum sqliteCmd { export enum sqliteCmd {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +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 {
message: string; message: string;
......
...@@ -5,8 +5,8 @@ import { ...@@ -5,8 +5,8 @@ import {
ActionReducerMapBuilder, ActionReducerMapBuilder,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
import { RootState } from "../../store"; import { RootState } from "@/store";
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { import {
createAsyncMetaThunk, createAsyncMetaThunk,
DuelFieldState, 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 { judgeSelf } from "./util";
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
import { RootState } from "../../store"; import { RootState } from "@/store";
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { DuelFieldState, CardState } from "./generic"; import { DuelFieldState, CardState } from "./generic";
export interface DeckState extends DuelFieldState {} export interface DeckState extends DuelFieldState {}
......
...@@ -5,8 +5,8 @@ import { ...@@ -5,8 +5,8 @@ import {
ActionReducerMapBuilder, ActionReducerMapBuilder,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
import { RootState } from "../../store"; import { RootState } from "@/store";
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { import {
createAsyncMetaThunk, createAsyncMetaThunk,
DuelFieldState, 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,9 +4,8 @@ import { ...@@ -4,9 +4,8 @@ import {
createAsyncThunk, createAsyncThunk,
PayloadAction, PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { CardMeta } from "../../api/cards"; import { CardMeta, fetchCard } from "@/api/cards";
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchCard } from "../../api/cards";
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<
......
...@@ -4,7 +4,7 @@ import { ...@@ -4,7 +4,7 @@ import {
PayloadAction, PayloadAction,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
import { RootState } from "../../store"; import { RootState } from "@/store";
import { judgeSelf } from "./util"; import { judgeSelf } from "./util";
import { import {
Interactivity, Interactivity,
...@@ -16,7 +16,7 @@ import { ...@@ -16,7 +16,7 @@ import {
createAsyncRepeatedMetaThunk, createAsyncRepeatedMetaThunk,
updateCardMeta, updateCardMeta,
} from "./generic"; } from "./generic";
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
export interface HandState extends DuelFieldState {} export interface HandState extends DuelFieldState {}
......
import { createAsyncThunk, ActionReducerMapBuilder } from "@reduxjs/toolkit"; import { createAsyncThunk, ActionReducerMapBuilder } from "@reduxjs/toolkit";
import { DuelState } from "./mod"; import { DuelState } from "./mod";
import { RootState } from "../../store"; import { RootState } from "@/store";
import { DESCRIPTION_LIMIT, fetchStrings, getStrings } from "../../api/strings"; import { DESCRIPTION_LIMIT, fetchStrings, getStrings } from "@/api/strings";
import { findCardByLocation } from "./util"; import { findCardByLocation } from "./util";
import { fetchCard } from "../../api/cards"; import { fetchCard } from "@/api/cards";
import { DuelReducer } from "./generic"; import { DuelReducer } from "./generic";
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
export interface HintState { export interface HintState {
code: number; code: number;
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { PayloadAction, CaseReducer } 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;
......
...@@ -5,8 +5,8 @@ import { ...@@ -5,8 +5,8 @@ import {
ActionReducerMapBuilder, ActionReducerMapBuilder,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "./mod"; 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 {
createAsyncMetaThunk, createAsyncMetaThunk,
DuelFieldState, DuelFieldState,
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* */ * */
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; 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 { InitInfo, infoInitImpl, updateHpImpl } from "./initInfoSlice";
import { TimeLimit, updateTimeLimitImpl } from "./timeLimit"; import { TimeLimit, updateTimeLimitImpl } from "./timeLimit";
...@@ -22,7 +22,7 @@ import { ...@@ -22,7 +22,7 @@ import {
setEnableM2Impl, setEnableM2Impl,
setEnableEpImpl, setEnableEpImpl,
} from "./phaseSlice"; } from "./phaseSlice";
import { RootState } from "../../store"; import { RootState } from "@/store";
import { HintState, hintCase, initHintImpl } from "./hintSlice"; import { HintState, hintCase, initHintImpl } from "./hintSlice";
import { import {
ModalState, ModalState,
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { DuelState } from "../mod"; import { DuelState } from "../mod";
import { RootState } from "../../../store"; import { RootState } from "@/store";
import { CardMeta } from "../../../api/cards"; import { CardMeta } from "@/api/cards";
// 更新卡牌列表弹窗打开状态 // 更新卡牌列表弹窗打开状态
export const setCardListModalIsOpenImpl: CaseReducer< export const setCardListModalIsOpenImpl: CaseReducer<
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { DuelState } from "../mod"; import { DuelState } from "../mod";
import { RootState } from "../../../store"; import { RootState } from "@/store";
import { CardMeta } from "../../../api/cards"; import { CardMeta } from "@/api/cards";
// 更新卡牌弹窗打开状态 // 更新卡牌弹窗打开状态
export const setCardModalIsOpenImpl: CaseReducer< export const setCardModalIsOpenImpl: CaseReducer<
......
...@@ -4,11 +4,11 @@ import { ...@@ -4,11 +4,11 @@ import {
createAsyncThunk, createAsyncThunk,
ActionReducerMapBuilder, ActionReducerMapBuilder,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
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 { fetchCard, getCardStr } from "@/api/cards";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
// 更新卡牌选择弹窗打开状态 // 更新卡牌选择弹窗打开状态
export const setCheckCardModalIsOpenImpl: CaseReducer< export const setCheckCardModalIsOpenImpl: CaseReducer<
......
...@@ -5,9 +5,9 @@ import { ...@@ -5,9 +5,9 @@ import {
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 { RootState } from "@/store";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { findCardByLocation } from "../util"; import { findCardByLocation } from "../util";
// 更新打开状态 // 更新打开状态
......
...@@ -5,9 +5,9 @@ import { ...@@ -5,9 +5,9 @@ import {
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 { RootState } from "@/store";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
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 { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
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"; 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
>; >;
......
import { CardMeta } from "../../../api/cards"; import { CardMeta } from "@/api/cards";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
type CardLocation = ReturnType<typeof ygopro.CardLocation.prototype.toObject>; type CardLocation = ReturnType<typeof ygopro.CardLocation.prototype.toObject>;
export interface ModalState { export interface ModalState {
......
...@@ -5,8 +5,8 @@ import { ...@@ -5,8 +5,8 @@ import {
ActionReducerMapBuilder, ActionReducerMapBuilder,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "../mod"; import { DuelState } from "../mod";
import { fetchCard, getCardStr } from "../../../api/cards"; import { fetchCard, getCardStr } from "@/api/cards";
import { RootState } from "../../../store"; import { RootState } from "@/store";
export const setOptionModalIsOpenImpl: CaseReducer< export const setOptionModalIsOpenImpl: CaseReducer<
DuelState, DuelState,
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit"; import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { RootState } from "../../../store"; import { RootState } from "@/store";
import { DuelState } from "../mod"; import { DuelState } from "../mod";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
export const setPositionModalIsOpenImpl: CaseReducer< export const setPositionModalIsOpenImpl: CaseReducer<
DuelState, DuelState,
......
...@@ -3,9 +3,9 @@ import { ...@@ -3,9 +3,9 @@ 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<
......
...@@ -4,10 +4,10 @@ import { ...@@ -4,10 +4,10 @@ import {
createAsyncThunk, createAsyncThunk,
ActionReducerMapBuilder, ActionReducerMapBuilder,
} 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弹窗是否打开状态
......
...@@ -6,8 +6,8 @@ import { ...@@ -6,8 +6,8 @@ import {
createAsyncThunk, createAsyncThunk,
} from "@reduxjs/toolkit"; } from "@reduxjs/toolkit";
import { DuelState } from "./mod"; 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 {
DuelFieldState, DuelFieldState,
Interactivity, Interactivity,
...@@ -21,7 +21,7 @@ import { ...@@ -21,7 +21,7 @@ import {
setPosition, setPosition,
removeOverlay, removeOverlay,
} from "./generic"; } from "./generic";
import { fetchCard } from "../../api/cards"; import { fetchCard } from "@/api/cards";
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 { PayloadAction, CaseReducer } 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 { PayloadAction, CaseReducer } 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";
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
import { DuelState } from "./mod"; 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";
type Location = type Location =
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +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 {
value: boolean; value: boolean;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +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 {
duelStart: boolean; duelStart: boolean;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +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 {
name?: string; name?: string;
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default ( export default (
attack: ygopro.StocGameMessage.MsgAttack, attack: ygopro.StocGameMessage.MsgAttack,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default ( export default (
_: ygopro.StocGameMessage.MsgAttackDisabled, _: ygopro.StocGameMessage.MsgAttackDisabled,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default ( export default (
chaining: ygopro.StocGameMessage.MsgChaining, chaining: ygopro.StocGameMessage.MsgChaining,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store"; 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";
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 { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default ( export default (
_: ygopro.StocGameMessage.MsgFlipSummoned, _: ygopro.StocGameMessage.MsgFlipSummoned,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default ( export default (
flipSummoning: ygopro.StocGameMessage.MsgFlipSummoning, flipSummoning: ygopro.StocGameMessage.MsgFlipSummoning,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "../../store"; import { store } from "@/store";
import onMsgStart from "./start"; import onMsgStart from "./start";
import onMsgDraw from "./draw"; import onMsgDraw from "./draw";
import onMsgNewTurn from "./newTurn"; import onMsgNewTurn from "./newTurn";
...@@ -40,7 +40,7 @@ import onMsgSpSummoning from "./spSummoning"; ...@@ -40,7 +40,7 @@ import onMsgSpSummoning from "./spSummoning";
import onMsgSpSummoned from "./spSummoned"; import onMsgSpSummoned from "./spSummoned";
import onMsgSummoning from "./summoning"; import onMsgSummoning from "./summoning";
import onMsgSummoned from "./summoned"; import onMsgSummoned from "./summoned";
import { setWaiting } from "../../reducers/duel/mod"; import { setWaiting } from "@/reducers/duel/mod";
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 { AppDispatch } from "@/store";
import { import {
fetchCommonHintMeta, fetchCommonHintMeta,
fetchEsHintMeta, fetchEsHintMeta,
fetchSelectHintMeta, fetchSelectHintMeta,
} from "../../reducers/duel/hintSlice"; } from "@/reducers/duel/hintSlice";
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 { AppDispatch } from "@/store";
import { import {
fetchMonsterMeta, fetchMonsterMeta,
fetchOverlayMeta, fetchOverlayMeta,
} from "../../reducers/duel/monstersSlice"; } from "@/reducers/duel/monstersSlice";
import { import {
removeCemetery, removeCemetery,
removeExclusion, removeExclusion,
...@@ -13,12 +13,12 @@ import { ...@@ -13,12 +13,12 @@ import {
removeMagic, removeMagic,
removeMonster, removeMonster,
removeOverlay, removeOverlay,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { fetchMagicMeta } from "../../reducers/duel/magicSlice"; import { fetchMagicMeta } from "@/reducers/duel/magicSlice";
import { fetchCemeteryMeta } from "../../reducers/duel/cemeretySlice"; import { fetchCemeteryMeta } from "@/reducers/duel/cemeretySlice";
import { insertHandMeta } from "../../reducers/duel/handsSlice"; import { insertHandMeta } from "@/reducers/duel/handsSlice";
import { fetchExclusionMeta } from "../../reducers/duel/exclusionSlice"; import { fetchExclusionMeta } from "@/reducers/duel/exclusionSlice";
import { fetchExtraDeckMeta } from "../../reducers/duel/extraDeckSlice"; import { fetchExtraDeckMeta } from "@/reducers/duel/extraDeckSlice";
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 { AppDispatch } from "@/store";
import { updatePhase } from "../../reducers/duel/mod"; import { updatePhase } from "@/reducers/duel/mod";
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 { AppDispatch } from "@/store";
import { updateTurn } from "../../reducers/duel/mod"; import { updateTurn } from "@/reducers/duel/mod";
export default ( export default (
newTurn: ygopro.StocGameMessage.MsgNewTurn, newTurn: ygopro.StocGameMessage.MsgNewTurn,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { setMagicPosition, setMonsterPosition } from "../../reducers/duel/mod"; import { setMagicPosition, setMonsterPosition } from "@/reducers/duel/mod";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgPosChange = ygopro.StocGameMessage.MsgPosChange; import MsgPosChange = ygopro.StocGameMessage.MsgPosChange;
export default (posChange: MsgPosChange, dispatch: AppDispatch) => { export default (posChange: MsgPosChange, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { reloadField } from "../../reducers/duel/mod"; import { reloadField } from "@/reducers/duel/mod";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgReloadField = ygopro.StocGameMessage.MsgReloadField; import MsgReloadField = ygopro.StocGameMessage.MsgReloadField;
export default (field: MsgReloadField, dispatch: AppDispatch) => { export default (field: MsgReloadField, dispatch: AppDispatch) => {
......
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 {
addHandsIdleInteractivity, addHandsIdleInteractivity,
addMagicIdleInteractivities, addMagicIdleInteractivities,
...@@ -8,8 +8,8 @@ import { ...@@ -8,8 +8,8 @@ import {
clearAllIdleInteractivities, clearAllIdleInteractivities,
setEnableEp, setEnableEp,
setEnableM2, setEnableM2,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgSelectBattleCmd = ygopro.StocGameMessage.MsgSelectBattleCmd; import MsgSelectBattleCmd = ygopro.StocGameMessage.MsgSelectBattleCmd;
export default (selectBattleCmd: MsgSelectBattleCmd, dispatch: AppDispatch) => { export default (selectBattleCmd: MsgSelectBattleCmd, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store"; 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 MsgSelectCard = ygopro.StocGameMessage.MsgSelectCard; import MsgSelectCard = ygopro.StocGameMessage.MsgSelectCard;
import { CardZoneToChinese } from "./util"; import { CardZoneToChinese } from "./util";
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { sendSelectChainResponse } from "../../api/ocgcore/ocgHelper"; import { sendSelectChainResponse } from "@/api/ocgcore/ocgHelper";
import { fetchSelectHintMeta } from "../../reducers/duel/hintSlice"; import { fetchSelectHintMeta } from "@/reducers/duel/hintSlice";
import { import {
setCheckCardMOdalCancelAble, setCheckCardMOdalCancelAble,
setCheckCardModalCancelResponse, setCheckCardModalCancelResponse,
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 { AppDispatch } from "@/store";
import { CardZoneToChinese } from "./util"; import { CardZoneToChinese } from "./util";
import MsgSelectChain = ygopro.StocGameMessage.MsgSelectChain; import MsgSelectChain = ygopro.StocGameMessage.MsgSelectChain;
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setCheckCounter } from "../../reducers/duel/mod"; import { setCheckCounter } from "@/reducers/duel/mod";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgSelectCounter = ygopro.StocGameMessage.MsgSelectCounter; import MsgSelectCounter = ygopro.StocGameMessage.MsgSelectCounter;
export default (selectCounter: MsgSelectCounter, dispatch: AppDispatch) => { export default (selectCounter: MsgSelectCounter, dispatch: AppDispatch) => {
......
import { CardMeta } from "../../api/cards"; import { CardMeta } from "@/api/cards";
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; 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 { AppDispatch } from "@/store";
import { Interactivity, InteractType } from "../../reducers/duel/generic"; import { Interactivity, InteractType } from "@/reducers/duel/generic";
import { import {
addHandsIdleInteractivity, addHandsIdleInteractivity,
addMonsterIdleInteractivities, addMonsterIdleInteractivities,
...@@ -11,7 +11,7 @@ import { ...@@ -11,7 +11,7 @@ import {
clearAllIdleInteractivities, clearAllIdleInteractivities,
addExclusionIdleInteractivities, addExclusionIdleInteractivities,
addExtraDeckIdleInteractivities, addExtraDeckIdleInteractivities,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import MsgSelectIdleCmd = ygopro.StocGameMessage.MsgSelectIdleCmd; import MsgSelectIdleCmd = ygopro.StocGameMessage.MsgSelectIdleCmd;
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 { setOptionModalIsOpen } from "../../reducers/duel/mod"; import { setOptionModalIsOpen } from "@/reducers/duel/mod";
import { fetchOptionMeta } from "../../reducers/duel/modal/mod"; import { fetchOptionMeta } from "@/reducers/duel/modal/mod";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgSelectOption = ygopro.StocGameMessage.MsgSelectOption; import MsgSelectOption = ygopro.StocGameMessage.MsgSelectOption;
export default (selectOption: MsgSelectOption, dispatch: AppDispatch) => { export default (selectOption: MsgSelectOption, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; 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, addMonsterPlaceInteractivities,
addMagicPlaceInteractivities, addMagicPlaceInteractivities,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
export default (selectPlace: MsgSelectPlace, dispatch: AppDispatch) => { export default (selectPlace: MsgSelectPlace, dispatch: AppDispatch) => {
if (selectPlace.count != 1) { if (selectPlace.count != 1) {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { import {
setPositionModalIsOpen, setPositionModalIsOpen,
setPositionModalPositions, setPositionModalPositions,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgSelectPosition = ygopro.StocGameMessage.MsgSelectPosition; import MsgSelectPosition = ygopro.StocGameMessage.MsgSelectPosition;
export default (selectPosition: MsgSelectPosition, dispatch: AppDispatch) => { export default (selectPosition: MsgSelectPosition, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { import {
setCheckCardModalV3AllLevel, setCheckCardModalV3AllLevel,
setCheckCardModalV3IsOpen, setCheckCardModalV3IsOpen,
setCheckCardModalV3MinMax, setCheckCardModalV3MinMax,
setCheckCardModalV3OverFlow, setCheckCardModalV3OverFlow,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { fetchCheckCardMetasV3 } from "../../reducers/duel/modal/checkCardModalV3Slice"; import { fetchCheckCardMetasV3 } from "@/reducers/duel/modal/checkCardModalV3Slice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgSelectSum = ygopro.StocGameMessage.MsgSelectSum; import MsgSelectSum = ygopro.StocGameMessage.MsgSelectSum;
export default (selectSum: MsgSelectSum, dispatch: AppDispatch) => { export default (selectSum: MsgSelectSum, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { import {
setCheckCardModalV3AllLevel, setCheckCardModalV3AllLevel,
setCheckCardModalV3IsOpen, setCheckCardModalV3IsOpen,
setCheckCardModalV3MinMax, setCheckCardModalV3MinMax,
setCheckCardModalV3OverFlow, setCheckCardModalV3OverFlow,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { fetchCheckCardMetasV3 } from "../../reducers/duel/modal/checkCardModalV3Slice"; import { fetchCheckCardMetasV3 } from "@/reducers/duel/modal/checkCardModalV3Slice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgSelectTribute = ygopro.StocGameMessage.MsgSelectTribute; import MsgSelectTribute = ygopro.StocGameMessage.MsgSelectTribute;
export default (selectTribute: MsgSelectTribute, dispatch: AppDispatch) => { export default (selectTribute: MsgSelectTribute, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { import {
setCheckCardModalV2CancelAble, setCheckCardModalV2CancelAble,
setCheckCardModalV2FinishAble, setCheckCardModalV2FinishAble,
setCheckCardModalV2IsOpen, setCheckCardModalV2IsOpen,
setCheckCardModalV2MinMax, setCheckCardModalV2MinMax,
setCheckCardModalV2ResponseAble, setCheckCardModalV2ResponseAble,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { fetchCheckCardMetasV2 } from "../../reducers/duel/modal/checkCardModalV2Slice"; import { fetchCheckCardMetasV2 } from "@/reducers/duel/modal/checkCardModalV2Slice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgSelectUnselectCard = ygopro.StocGameMessage.MsgSelectUnselectCard; import MsgSelectUnselectCard = ygopro.StocGameMessage.MsgSelectUnselectCard;
export default ( export default (
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setYesNoModalIsOpen } from "../../reducers/duel/mod"; import { setYesNoModalIsOpen } from "@/reducers/duel/mod";
import { fetchYesNoMetaWithEffecDesc } from "../../reducers/duel/modal/yesNoModalSlice"; import { fetchYesNoMetaWithEffecDesc } from "@/reducers/duel/modal/yesNoModalSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgSelectYesNo = ygopro.StocGameMessage.MsgSelectYesNo; import MsgSelectYesNo = ygopro.StocGameMessage.MsgSelectYesNo;
export default (selectYesNo: MsgSelectYesNo, dispatch: AppDispatch) => { export default (selectYesNo: MsgSelectYesNo, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default (_set: ygopro.StocGameMessage.MsgSet, dispatch: AppDispatch) => { export default (_set: ygopro.StocGameMessage.MsgSet, dispatch: AppDispatch) => {
dispatch(fetchEsHintMeta({ originMsg: 1601 })); dispatch(fetchEsHintMeta({ originMsg: 1601 }));
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { updateHandsMeta } from "../../reducers/duel/handsSlice"; import { updateHandsMeta } from "@/reducers/duel/handsSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgShuffleHand = ygopro.StocGameMessage.MsgShuffleHand; import MsgShuffleHand = ygopro.StocGameMessage.MsgShuffleHand;
export default (shuffleHand: MsgShuffleHand, dispatch: AppDispatch) => { export default (shuffleHand: MsgShuffleHand, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setSortCardModalIsOpen } from "../../reducers/duel/mod"; import { setSortCardModalIsOpen } from "@/reducers/duel/mod";
import { fetchSortCardMeta } from "../../reducers/duel/modal/sortCardModalSlice"; import { fetchSortCardMeta } from "@/reducers/duel/modal/sortCardModalSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgSortCard = ygopro.StocGameMessage.MsgSortCard; import MsgSortCard = ygopro.StocGameMessage.MsgSortCard;
export default (sortCard: MsgSortCard, dispatch: AppDispatch) => { export default (sortCard: MsgSortCard, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default ( export default (
_: ygopro.StocGameMessage.MsgSpSummoned, _: ygopro.StocGameMessage.MsgSpSummoned,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default ( export default (
spSummoning: ygopro.StocGameMessage.MsgSpSummoning, spSummoning: ygopro.StocGameMessage.MsgSpSummoning,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import { import {
infoInit, infoInit,
setSelfType, setSelfType,
...@@ -9,7 +9,7 @@ import { ...@@ -9,7 +9,7 @@ import {
initDeck, initDeck,
initExclusion, initExclusion,
initHint, initHint,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
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 { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default ( export default (
_: ygopro.StocGameMessage.MsgSummoned, _: ygopro.StocGameMessage.MsgSummoned,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default ( export default (
summoning: ygopro.StocGameMessage.MsgSummoning, summoning: ygopro.StocGameMessage.MsgSummoning,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default ( export default (
_swap: ygopro.StocGameMessage.MsgSwap, _swap: ygopro.StocGameMessage.MsgSwap,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "../../store"; import { store } from "@/store";
import { updateTimeLimit } from "../../reducers/duel/mod"; import { updateTimeLimit } from "@/reducers/duel/mod";
import { sendTimeConfirm } from "../../api/ocgcore/ocgHelper"; import { sendTimeConfirm } from "@/api/ocgcore/ocgHelper";
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 { updateMonsterCounters } from "../../reducers/duel/mod"; import { updateMonsterCounters } from "@/reducers/duel/mod";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgUpdateCounter = ygopro.StocGameMessage.MsgUpdateCounter; import MsgUpdateCounter = ygopro.StocGameMessage.MsgUpdateCounter;
export default (updateCounter: MsgUpdateCounter, dispatch: AppDispatch) => { export default (updateCounter: MsgUpdateCounter, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { updateFieldData } from "../../reducers/duel/mod"; import { updateFieldData } from "@/reducers/duel/mod";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgUpdateData = ygopro.StocGameMessage.MsgUpdateData; import MsgUpdateData = ygopro.StocGameMessage.MsgUpdateData;
export default (updateData: MsgUpdateData, dispatch: AppDispatch) => { export default (updateData: MsgUpdateData, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice"; import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { updateHp } from "../../reducers/duel/mod"; import { updateHp } from "@/reducers/duel/mod";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
import MsgUpdateHp = ygopro.StocGameMessage.MsgUpdateHp; import MsgUpdateHp = ygopro.StocGameMessage.MsgUpdateHp;
export default (msgUpdateHp: MsgUpdateHp, dispatch: AppDispatch) => { export default (msgUpdateHp: MsgUpdateHp, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
export function CardZoneToChinese(zone: ygopro.CardZone): string { export function CardZoneToChinese(zone: ygopro.CardZone): string {
switch (zone) { switch (zone) {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { import { clearAllIdleInteractivities, setWaiting } from "@/reducers/duel/mod";
clearAllIdleInteractivities, import { AppDispatch } from "@/store";
setWaiting,
} from "../../reducers/duel/mod";
import { AppDispatch } from "../../store";
export default ( export default (
_wait: ygopro.StocGameMessage.MsgWait, _wait: ygopro.StocGameMessage.MsgWait,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setResult } from "../../reducers/duel/mod"; import { setResult } from "@/reducers/duel/mod";
import { AppDispatch } from "../../store"; import { AppDispatch } from "@/store";
export default (win: ygopro.StocGameMessage.MsgWin, dispatch: AppDispatch) => { export default (win: ygopro.StocGameMessage.MsgWin, dispatch: AppDispatch) => {
dispatch(setResult(win.type_)); dispatch(setResult(win.type_));
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "../../store"; import { store } from "@/store";
import { player0DeckInfo, player1DeckInfo } from "../../reducers/playerSlice"; import { player0DeckInfo, player1DeckInfo } from "@/reducers/playerSlice";
// 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 { store } from "@/store";
import { selectHandAble } from "../../reducers/moraSlice"; import { selectHandAble } from "@/reducers/moraSlice";
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 { store } from "@/store";
import { selectTpAble } from "../../reducers/moraSlice"; import { selectTpAble } from "@/reducers/moraSlice";
export default function handleSelectTp(_: ygopro.YgoStocMsg) { export default function handleSelectTp(_: ygopro.YgoStocMsg) {
const dispatch = store.dispatch; const dispatch = store.dispatch;
......
...@@ -8,8 +8,8 @@ import handleHsPlayerEnter from "./room/hsPlayerEnter"; ...@@ -8,8 +8,8 @@ import handleHsPlayerEnter from "./room/hsPlayerEnter";
import handleJoinGame from "./room/joinGame"; import handleJoinGame from "./room/joinGame";
import handleChat from "./room/chat"; import handleChat from "./room/chat";
import handleHsWatchChange from "./room/hsWatchChange"; import handleHsWatchChange from "./room/hsWatchChange";
import { YgoProPacket } from "../api/ocgcore/ocgAdapter/packet"; 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 handleSelectHand from "./mora/selectHand";
import handleSelectTp from "./mora/selectTp"; import handleSelectTp from "./mora/selectTp";
import handleDeckCount from "./mora/deckCount"; import handleDeckCount from "./mora/deckCount";
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,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 { postChat } from "../../reducers/chatSlice"; import { postChat } from "@/reducers/chatSlice";
import { store } from "../../store"; import { store } from "@/store";
export default function handleChat(pb: ygopro.YgoStocMsg) { export default function handleChat(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 { duelStart } from "../../reducers/moraSlice"; import { duelStart } from "@/reducers/moraSlice";
import { store } from "../../store"; import { store } from "@/store";
export default function handleDuelStart(_pb: ygopro.YgoStocMsg) { export default function handleDuelStart(_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 { store } from "@/store";
import { import {
player0Update, player0Update,
player1Update, player1Update,
player0Leave, player0Leave,
player1Leave, player1Leave,
observerIncrement, observerIncrement,
} from "../../reducers/playerSlice"; } from "@/reducers/playerSlice";
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 { store } from "@/store";
import { player0Enter, player1Enter } from "../../reducers/playerSlice"; import { player0Enter, player1Enter } from "@/reducers/playerSlice";
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 { observerChange } from "../../reducers/playerSlice"; import { observerChange } from "@/reducers/playerSlice";
import { store } from "../../store"; import { store } from "@/store";
export default function handleHsWatchChange(pb: ygopro.YgoStocMsg) { export default function handleHsWatchChange(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 { store } from "@/store";
import { setJoined } from "../../reducers/joinSlice"; import { setJoined } from "@/reducers/joinSlice";
export default function handleJoinGame(pb: ygopro.YgoStocMsg) { export default function handleJoinGame(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 { import {
player0Update, player0Update,
player1Update, player1Update,
hostChange, hostChange,
updateIsHost, updateIsHost,
} from "../../reducers/playerSlice"; } from "@/reducers/playerSlice";
import { store } from "../../store"; import { store } from "@/store";
const NO_READY_STATE = "not ready"; const NO_READY_STATE = "not ready";
......
import React from "react"; import React from "react";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { sendSurrender } from "../../api/ocgcore/ocgHelper"; import { sendSurrender } from "@/api/ocgcore/ocgHelper";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { selectUnimplemented } from "../../reducers/duel/mod"; import { selectUnimplemented } from "@/reducers/duel/mod";
import { Alert } from "antd"; import { Alert } from "antd";
const NeosAlert = () => { const NeosAlert = () => {
......
import React from "react"; import React from "react";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { store } from "../../store"; import { store } from "@/store";
import { import {
selectCardListModalIsOpen, selectCardListModalIsOpen,
selectCardListModalInfo, selectCardListModalInfo,
} from "../../reducers/duel/modal/mod"; } from "@/reducers/duel/modal/mod";
import { import {
clearAllIdleInteractivities, clearAllIdleInteractivities,
setCardListModalIsOpen, setCardListModalIsOpen,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { Drawer, List, Button } from "antd"; import { Drawer, List, Button } from "antd";
import { sendSelectIdleCmdResponse } from "../../api/ocgcore/ocgHelper"; import { sendSelectIdleCmdResponse } from "@/api/ocgcore/ocgHelper";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
const CARD_WIDTH = 100; const CARD_WIDTH = 100;
......
import React from "react"; import React from "react";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { store } from "../../store"; import { store } from "@/store";
import { import {
selectCardModalIsOpen, selectCardModalIsOpen,
selectCardModalInteractivies, selectCardModalInteractivies,
selectCardModalMeta, selectCardModalMeta,
selectCardModalCounters, selectCardModalCounters,
} from "../../reducers/duel/modal/mod"; } from "@/reducers/duel/modal/mod";
import { import {
setCardModalIsOpen, setCardModalIsOpen,
clearAllIdleInteractivities, clearAllIdleInteractivities,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { Modal, Card, Button, Row, Col } from "antd"; import { Modal, Card, Button, Row, Col } from "antd";
import { sendSelectIdleCmdResponse } from "../../api/ocgcore/ocgHelper"; import { sendSelectIdleCmdResponse } from "@/api/ocgcore/ocgHelper";
import Icon, { StarOutlined } from "@ant-design/icons"; import Icon, { StarOutlined } from "@ant-design/icons";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import { ReactComponent as BattleSvg } from "../../../neos-assets/battle-axe.svg"; import { ReactComponent as BattleSvg } from "../../../neos-assets/battle-axe.svg";
...@@ -23,7 +23,7 @@ import { ...@@ -23,7 +23,7 @@ import {
Attribute2StringCodeMap, Attribute2StringCodeMap,
Race2StringCodeMap, Race2StringCodeMap,
} from "../../common"; } from "../../common";
import { fetchStrings } from "../../api/strings"; import { fetchStrings } from "@/api/strings";
const { Meta } = Card; const { Meta } = Card;
const CARD_WIDTH = 240; const CARD_WIDTH = 240;
......
...@@ -2,8 +2,8 @@ import * as BABYLON from "@babylonjs/core"; ...@@ -2,8 +2,8 @@ import * as BABYLON from "@babylonjs/core";
import { import {
selectMeCemetery, selectMeCemetery,
selectOpCemetery, selectOpCemetery,
} from "../../reducers/duel/cemeretySlice"; } from "@/reducers/duel/cemeretySlice";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import SingleSlot, { Depth } from "./singleSlot"; import SingleSlot, { Depth } from "./singleSlot";
import { cardSlotRotation } from "./util"; import { cardSlotRotation } from "./util";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
......
import React, { useState } from "react"; import React, { useState } from "react";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { store } from "../../store"; import { store } from "@/store";
import { import {
selectCheckCardModalCacnelResponse, selectCheckCardModalCacnelResponse,
selectCheckCardModalCancelAble, selectCheckCardModalCancelAble,
...@@ -8,21 +8,21 @@ import { ...@@ -8,21 +8,21 @@ import {
selectCheckCardModalMinMax, selectCheckCardModalMinMax,
selectCheckCardModalOnSubmit, selectCheckCardModalOnSubmit,
selectCheckCardModalTags, selectCheckCardModalTags,
} from "../../reducers/duel/modal/mod"; } from "@/reducers/duel/modal/mod";
import { import {
resetCheckCardModal, resetCheckCardModal,
setCheckCardModalIsOpen, setCheckCardModalIsOpen,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { Button, Row, Col, Popover } from "antd"; import { Button, Row, Col, Popover } from "antd";
import { CheckCard, CheckCardProps } from "@ant-design/pro-components"; import { CheckCard, CheckCardProps } from "@ant-design/pro-components";
import { import {
sendSelectCardResponse, sendSelectCardResponse,
sendSelectChainResponse, sendSelectChainResponse,
} from "../../api/ocgcore/ocgHelper"; } from "@/api/ocgcore/ocgHelper";
import { ThunderboltOutlined } from "@ant-design/icons"; import { ThunderboltOutlined } from "@ant-design/icons";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import DragModal from "./dragModal"; import DragModal from "./dragModal";
import { selectHint } from "../../reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const CheckCardModal = () => { const CheckCardModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
......
import React from "react"; import React from "react";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { store } from "../../store"; import { store } from "@/store";
import { Button, Card, Row, Col } from "antd"; import { Button, Card, Row, Col } from "antd";
import { CheckCard } from "@ant-design/pro-components"; import { CheckCard } from "@ant-design/pro-components";
import { import {
...@@ -11,16 +11,16 @@ import { ...@@ -11,16 +11,16 @@ import {
selectCheckCardModalV2ResponseAble, selectCheckCardModalV2ResponseAble,
selectCheckCardModalV2SelectAbleOptions, selectCheckCardModalV2SelectAbleOptions,
selectCheckCardModalV2SelectedOptions, selectCheckCardModalV2SelectedOptions,
} from "../../reducers/duel/modal/checkCardModalV2Slice"; } from "@/reducers/duel/modal/checkCardModalV2Slice";
import { sendSelectUnselectCardResponse } from "../../api/ocgcore/ocgHelper"; import { sendSelectUnselectCardResponse } from "@/api/ocgcore/ocgHelper";
import { import {
resetCheckCardModalV2, resetCheckCardModalV2,
setCheckCardModalV2IsOpen, setCheckCardModalV2IsOpen,
setCheckCardModalV2ResponseAble, setCheckCardModalV2ResponseAble,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import DragModal from "./dragModal"; import DragModal from "./dragModal";
import { selectHint } from "../../reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const CheckCardModalV2 = () => { const CheckCardModalV2 = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
......
import React, { useState } from "react"; import React, { useState } from "react";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { store } from "../../store"; import { store } from "@/store";
import { Button, Card, Row, Col } from "antd"; import { Button, Card, Row, Col } from "antd";
import { CheckCard } from "@ant-design/pro-components"; import { CheckCard } from "@ant-design/pro-components";
import { sendSelectCardResponse } from "../../api/ocgcore/ocgHelper"; import { sendSelectCardResponse } from "@/api/ocgcore/ocgHelper";
import { import {
resetCheckCardModalV3, resetCheckCardModalV3,
setCheckCardModalV3IsOpen, setCheckCardModalV3IsOpen,
setCheckCardModalV3ResponseAble, setCheckCardModalV3ResponseAble,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import { selectCheckCardModalV3 } from "../../reducers/duel/modal/checkCardModalV3Slice"; import { selectCheckCardModalV3 } from "@/reducers/duel/modal/checkCardModalV3Slice";
import DragModal from "./dragModal"; import DragModal from "./dragModal";
import { selectHint } from "../../reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const CheckCardModalV3 = () => { const CheckCardModalV3 = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
......
import { Button, Row, Col, Card, InputNumber } from "antd"; import { Button, Row, Col, Card, InputNumber } from "antd";
import React, { useState } from "react"; import React, { useState } from "react";
import { sendSelectCounterResponse } from "../../api/ocgcore/ocgHelper"; import { sendSelectCounterResponse } from "@/api/ocgcore/ocgHelper";
import { fetchStrings } from "../../api/strings"; import { fetchStrings } from "@/api/strings";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { clearCheckCounter } from "../../reducers/duel/mod"; import { clearCheckCounter } from "@/reducers/duel/mod";
import { selectCheckCounterModal } from "../../reducers/duel/modal/checkCounterModalSlice"; import { selectCheckCounterModal } from "@/reducers/duel/modal/checkCounterModalSlice";
import { store } from "../../store"; import { store } from "@/store";
import DragModal from "./dragModal"; import DragModal from "./dragModal";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
......
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { selectMeDeck, selectOpDeck } from "../../reducers/duel/deckSlice"; import { selectMeDeck, selectOpDeck } from "@/reducers/duel/deckSlice";
import SingleSlot, { Depth } from "./singleSlot"; import SingleSlot, { Depth } from "./singleSlot";
import { cardSlotRotation } from "./util"; import { cardSlotRotation } from "./util";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
......
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { import {
selectMeExclusion, selectMeExclusion,
selectopExclusion, selectopExclusion,
} from "../../reducers/duel/exclusionSlice"; } from "@/reducers/duel/exclusionSlice";
import SingleSlot, { Depth } from "./singleSlot"; import SingleSlot, { Depth } from "./singleSlot";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import { cardSlotRotation } from "./util"; import { cardSlotRotation } from "./util";
......
import SingleSlot, { Depth } from "./singleSlot"; import SingleSlot, { Depth } from "./singleSlot";
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { import {
selectMeExtraDeck, selectMeExtraDeck,
selectOpExtraDeck, selectOpExtraDeck,
} from "../../reducers/duel/extraDeckSlice"; } from "@/reducers/duel/extraDeckSlice";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import { cardSlotRotation } from "./util"; import { cardSlotRotation } from "./util";
......
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { selectMeMagics, selectOpMagics } from "../../reducers/duel/magicSlice"; import { selectMeMagics, selectOpMagics } from "@/reducers/duel/magicSlice";
import { clearMagicPlaceInteractivities } from "../../reducers/duel/mod"; import { clearMagicPlaceInteractivities } from "@/reducers/duel/mod";
import FixedSlot from "./fixedSlot"; import FixedSlot from "./fixedSlot";
import { Depth } from "./singleSlot"; import { Depth } from "./singleSlot";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
......
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { store } from "../../store"; import { store } from "@/store";
import { CardState } from "../../reducers/duel/generic"; import { CardState } from "@/reducers/duel/generic";
import { useRef } from "react"; import { useRef } from "react";
import { useClick } from "./hook"; import { useClick } from "./hook";
import { sendSelectPlaceResponse } from "../../api/ocgcore/ocgHelper"; import { sendSelectPlaceResponse } from "@/api/ocgcore/ocgHelper";
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { import {
setCardListModalInfo, setCardListModalInfo,
setCardListModalIsOpen, setCardListModalIsOpen,
...@@ -12,7 +12,7 @@ import { ...@@ -12,7 +12,7 @@ import {
setCardModalInteractivies, setCardModalInteractivies,
setCardModalIsOpen, setCardModalIsOpen,
setCardModalMeta, setCardModalMeta,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { ActionCreatorWithPayload } from "@reduxjs/toolkit"; import { ActionCreatorWithPayload } from "@reduxjs/toolkit";
import { interactTypeToString } from "./util"; import { interactTypeToString } from "./util";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
......
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { selectMeHands, selectOpHands } from "../../reducers/duel/handsSlice"; import { selectMeHands, selectOpHands } from "@/reducers/duel/handsSlice";
import { CardState } from "../../reducers/duel/generic"; import { CardState } from "@/reducers/duel/generic";
import { import {
setCardModalIsOpen, setCardModalIsOpen,
setCardModalMeta, setCardModalMeta,
setCardModalInteractivies, setCardModalInteractivies,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { store } from "../../store"; import { store } from "@/store";
import { useHover } from "react-babylonjs"; import { useHover } from "react-babylonjs";
import { useClick } from "./hook"; import { useClick } from "./hook";
import { useState, useRef, useEffect } from "react"; import { useState, useRef, useEffect } from "react";
......
import React, { useEffect } from "react"; import React, { useEffect } from "react";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { selectHint } from "../../reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
import { selectCurrentPhase } from "../../reducers/duel/phaseSlice"; import { selectCurrentPhase } from "@/reducers/duel/phaseSlice";
import { notification } from "antd"; import { notification } from "antd";
import { selectDuelResult, selectWaiting } from "../../reducers/duel/mod"; import { selectDuelResult, selectWaiting } from "@/reducers/duel/mod";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import MsgWin = ygopro.StocGameMessage.MsgWin; import MsgWin = ygopro.StocGameMessage.MsgWin;
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
......
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { selectMeMagics, selectOpMagics } from "../../reducers/duel/magicSlice"; import { selectMeMagics, selectOpMagics } from "@/reducers/duel/magicSlice";
import { CardState } from "../../reducers/duel/generic"; import { CardState } from "@/reducers/duel/generic";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { zip } from "./util"; import { zip, cardSlotRotation } from "./util";
import FixedSlot from "./fixedSlot"; import FixedSlot from "./fixedSlot";
import { clearMagicPlaceInteractivities } from "../../reducers/duel/mod"; import { clearMagicPlaceInteractivities } from "@/reducers/duel/mod";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import { cardSlotRotation } from "./util";
// TODO: use config // TODO: use config
const left = -2.15; const left = -2.15;
......
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { CardState } from "../../reducers/duel/generic"; import { CardState } from "@/reducers/duel/generic";
import "react-babylonjs"; import "react-babylonjs";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { import {
selectMeMonsters, selectMeMonsters,
selectOpMonsters, selectOpMonsters,
} from "../../reducers/duel/monstersSlice"; } from "@/reducers/duel/monstersSlice";
import { zip } from "./util"; import { zip, cardSlotRotation, cardSlotDefenceRotation } from "./util";
import FixedSlot from "./fixedSlot"; import FixedSlot from "./fixedSlot";
import { clearMonsterPlaceInteractivities } from "../../reducers/duel/mod"; import { clearMonsterPlaceInteractivities } from "@/reducers/duel/mod";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import { cardSlotRotation, cardSlotDefenceRotation } from "./util";
const transform = NeosConfig.ui.card.transform; const transform = NeosConfig.ui.card.transform;
const floating = NeosConfig.ui.card.floating; const floating = NeosConfig.ui.card.floating;
......
import React, { useState } from "react"; import React, { useState } from "react";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { store } from "../../store"; import { store } from "@/store";
import { Button } from "antd"; import { Button } from "antd";
import { CheckCard } from "@ant-design/pro-components"; import { CheckCard } from "@ant-design/pro-components";
import { import {
selectOptionModalIsOpen, selectOptionModalIsOpen,
selectOptionModalOptions, selectOptionModalOptions,
} from "../../reducers/duel/modal/mod"; } from "@/reducers/duel/modal/mod";
import { sendSelectOptionResponse } from "../../api/ocgcore/ocgHelper"; import { sendSelectOptionResponse } from "@/api/ocgcore/ocgHelper";
import { import { resetOptionModal, setOptionModalIsOpen } from "@/reducers/duel/mod";
resetOptionModal,
setOptionModalIsOpen,
} from "../../reducers/duel/mod";
import DragModal from "./dragModal"; import DragModal from "./dragModal";
const OptionModal = () => { const OptionModal = () => {
......
import React, { useState } from "react"; import React, { useState } from "react";
import { store } from "../../store"; import { store } from "@/store";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { import {
selectCurrentPhase, selectCurrentPhase,
selectEnableBp, selectEnableBp,
selectEnableEp, selectEnableEp,
selectEnableM2, selectEnableM2,
} from "../../reducers/duel/phaseSlice"; } from "@/reducers/duel/phaseSlice";
import { import {
sendSelectBattleCmdResponse, sendSelectBattleCmdResponse,
sendSelectIdleCmdResponse, sendSelectIdleCmdResponse,
sendSurrender, sendSurrender,
} from "../../api/ocgcore/ocgHelper"; } from "@/api/ocgcore/ocgHelper";
import { import {
clearAllIdleInteractivities, clearAllIdleInteractivities,
setEnableBp, setEnableBp,
setEnableEp, setEnableEp,
setEnableM2, setEnableM2,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { Button, Modal, Space } from "antd"; import { Button, Modal, Space } from "antd";
import Icon from "@ant-design/icons"; import Icon from "@ant-design/icons";
import { ReactComponent as BattleSvg } from "../../../neos-assets/crossed-swords.svg"; import { ReactComponent as BattleSvg } from "../../../neos-assets/crossed-swords.svg";
......
import React, { useState } from "react"; import React, { useState } from "react";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { store } from "../../store"; import { store } from "@/store";
import { Button } from "antd"; import { Button } from "antd";
import { sendSelectPositionResponse } from "../../api/ocgcore/ocgHelper"; import { sendSelectPositionResponse } from "@/api/ocgcore/ocgHelper";
import { import {
selectPositionModalIsOpen, selectPositionModalIsOpen,
selectPositionModalPositions, selectPositionModalPositions,
} from "../../reducers/duel/modal/mod"; } from "@/reducers/duel/modal/mod";
import { ygopro } from "../../api/ocgcore/idl/ocgcore"; import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { import {
resetPositionModal, resetPositionModal,
setPositionModalIsOpen, setPositionModalIsOpen,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { CheckCard } from "@ant-design/pro-components"; import { CheckCard } from "@ant-design/pro-components";
import DragModal from "./dragModal"; import DragModal from "./dragModal";
......
import React, { useState } from "react"; import React, { useState } from "react";
import { Input, Button, Row, Col } from "antd"; import { Input, Button, Row, Col } from "antd";
import { SendOutlined } from "@ant-design/icons"; import { SendOutlined } from "@ant-design/icons";
import { sendChat } from "../../api/ocgcore/ocgHelper"; import { sendChat } from "@/api/ocgcore/ocgHelper";
const SendBox = () => { const SendBox = () => {
const [content, setContent] = useState(""); const [content, setContent] = useState("");
......
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import { CardState } from "../../reducers/duel/generic"; import { CardState } from "@/reducers/duel/generic";
import { store } from "../../store"; import { store } from "@/store";
import { useClick } from "./hook"; import { useClick } from "./hook";
import { useRef } from "react"; import { useRef } from "react";
import { import {
setCardListModalInfo, setCardListModalInfo,
setCardListModalIsOpen, setCardListModalIsOpen,
} from "../../reducers/duel/mod"; } from "@/reducers/duel/mod";
import { interactTypeToString } from "./util"; import { interactTypeToString } from "./util";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
......
...@@ -16,13 +16,13 @@ import { ...@@ -16,13 +16,13 @@ import {
useSortable, useSortable,
} from "@dnd-kit/sortable"; } from "@dnd-kit/sortable";
import { CSS } from "@dnd-kit/utilities"; import { CSS } from "@dnd-kit/utilities";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { selectSortCardModal } from "../../reducers/duel/modal/sortCardModalSlice"; import { selectSortCardModal } from "@/reducers/duel/modal/sortCardModalSlice";
import { sendSortCardResponse } from "../../api/ocgcore/ocgHelper"; import { sendSortCardResponse } from "@/api/ocgcore/ocgHelper";
import { store } from "../../store"; import { store } from "@/store";
import { resetSortCardModal } from "../../reducers/duel/mod"; import { resetSortCardModal } from "@/reducers/duel/mod";
import { Modal, Button, Card } from "antd"; import { Modal, Button, Card } from "antd";
import { CardMeta } from "../../api/cards"; import { CardMeta } from "@/api/cards";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
const SortCardModal = () => { const SortCardModal = () => {
......
...@@ -3,12 +3,12 @@ import { UserOutlined } from "@ant-design/icons"; ...@@ -3,12 +3,12 @@ import { UserOutlined } from "@ant-design/icons";
import { Avatar } from "antd"; import { Avatar } from "antd";
import { CheckCard } from "@ant-design/pro-components"; import { CheckCard } from "@ant-design/pro-components";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { import {
selectMeInitInfo, selectMeInitInfo,
selectOpInitInfo, selectOpInitInfo,
} from "../../reducers/duel/initInfoSlice"; } from "@/reducers/duel/initInfoSlice";
import { selectWaiting } from "../../reducers/duel/mod"; import { selectWaiting } from "@/reducers/duel/mod";
const Config = NeosConfig.ui.status; const Config = NeosConfig.ui.status;
const avatarSize = 40; const avatarSize = 40;
......
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import { Timeline, TimelineItemProps } from "antd"; import { Timeline, TimelineItemProps } from "antd";
import { MessageOutlined } from "@ant-design/icons"; import { MessageOutlined } from "@ant-design/icons";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { selectChat } from "../../reducers/chatSlice"; import { selectChat } from "@/reducers/chatSlice";
const DuelTimeLine = () => { const DuelTimeLine = () => {
const [items, setItems] = useState<TimelineItemProps[]>([]); const [items, setItems] = useState<TimelineItemProps[]>([]);
......
import { InteractType } from "../../reducers/duel/generic"; import { InteractType } from "@/reducers/duel/generic";
import NeosConfig from "../../../neos.config.json"; import NeosConfig from "../../../neos.config.json";
import { Vector3 } from "@babylonjs/core"; import { Vector3 } from "@babylonjs/core";
......
import React from "react"; import React from "react";
import { useAppSelector } from "../../hook"; import { useAppSelector } from "@/hook";
import { store } from "../../store"; import { store } from "@/store";
import { Button } from "antd"; import { Button } from "antd";
import { sendSelectEffectYnResponse } from "../../api/ocgcore/ocgHelper"; import { sendSelectEffectYnResponse } from "@/api/ocgcore/ocgHelper";
import { import {
selectYesNoModalIsOpen, selectYesNoModalIsOpen,
selectYesNOModalMsg, selectYesNOModalMsg,
} from "../../reducers/duel/modal/mod"; } from "@/reducers/duel/modal/mod";
import { setYesNoModalIsOpen } from "../../reducers/duel/mod"; import { setYesNoModalIsOpen } from "@/reducers/duel/mod";
import DragModal from "./dragModal"; import DragModal from "./dragModal";
import { selectHint } from "../../reducers/duel/hintSlice"; import { selectHint } from "@/reducers/duel/hintSlice";
const YesNoModal = () => { const YesNoModal = () => {
const dispatch = store.dispatch; const dispatch = store.dispatch;
......
...@@ -11,7 +11,7 @@ import React, { useState, ChangeEvent, useEffect } from "react"; ...@@ -11,7 +11,7 @@ import React, { useState, ChangeEvent, useEffect } from "react";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import "../styles/core.scss"; import "../styles/core.scss";
import NeosConfig from "../../neos.config.json"; import NeosConfig from "../../neos.config.json";
import { useConfig } from "../config"; import { useConfig } from "@/config";
const serverConfig = NeosConfig.servers; const serverConfig = NeosConfig.servers;
const { const {
......
import React from "react"; import React, { useEffect } from "react";
import { sendHandResult, sendTpResult } from "../api/ocgcore/ocgHelper"; import { sendHandResult, sendTpResult } from "@/api/ocgcore/ocgHelper";
import { useAppSelector } from "../hook"; import { useAppSelector } from "@/hook";
import { useConfig } from "../config"; import { useConfig } from "@/config";
import { import {
selectHandSelectAble, selectHandSelectAble,
unSelectHandAble, unSelectHandAble,
selectTpSelectAble, selectTpSelectAble,
unSelectTpAble, unSelectTpAble,
} from "../reducers/moraSlice"; } from "@/reducers/moraSlice";
import { selectDuelHsStart } from "../reducers/duel/mod"; import { selectDuelHsStart } from "@/reducers/duel/mod";
import { store } from "../store"; import { store } from "@/store";
import { useEffect } from "react";
import { useNavigate, useParams } from "react-router-dom"; import { useNavigate, useParams } from "react-router-dom";
import { Button, Modal } from "antd"; import { Button, Modal } from "antd";
import { import {
......
...@@ -9,26 +9,26 @@ import { ...@@ -9,26 +9,26 @@ import {
message, message,
Select, Select,
} from "antd"; } from "antd";
import { useNavigate } from "react-router-dom"; import { useNavigate, useParams } from "react-router-dom";
import React, { useState, useEffect } from "react"; import React, { useState, useEffect } from "react";
import socketMiddleWare, { socketCmd } from "../middleware/socket"; import socketMiddleWare, { socketCmd } from "@/middleware/socket";
import sqliteMiddleWare, { sqliteCmd } from "../middleware/sqlite"; import sqliteMiddleWare, { sqliteCmd } from "@/middleware/sqlite";
import { store } from "../store"; import { store } from "@/store";
import { import {
selectIsHost, selectIsHost,
selectPlayer0, selectPlayer0,
selectPlayer1, selectPlayer1,
} from "../reducers/playerSlice"; } from "@/reducers/playerSlice";
import { useAppSelector } from "../hook"; import { useAppSelector } from "@/hook";
import { useConfig } from "../config"; import { useConfig } from "@/config";
import { selectJoined } from "../reducers/joinSlice"; import { selectJoined } from "@/reducers/joinSlice";
import { selectChat } from "../reducers/chatSlice"; import { selectChat } from "@/reducers/chatSlice";
import { fetchDeck, type IDeck, DeckManager } from "../api/deck"; import { fetchDeck, type IDeck, DeckManager } from "@/api/deck";
import { import {
sendUpdateDeck, sendUpdateDeck,
sendHsReady, sendHsReady,
sendHsStart, sendHsStart,
} from "../api/ocgcore/ocgHelper"; } from "@/api/ocgcore/ocgHelper";
import { import {
UserOutlined, UserOutlined,
CheckCircleFilled, CheckCircleFilled,
...@@ -38,15 +38,13 @@ import { ...@@ -38,15 +38,13 @@ import {
TagOutlined, TagOutlined,
UploadOutlined, UploadOutlined,
} from "@ant-design/icons"; } from "@ant-design/icons";
import { initMeExtraDeckMeta } from "../reducers/duel/extraDeckSlice"; import { initMeExtraDeckMeta } from "@/reducers/duel/extraDeckSlice";
import type { UploadProps } from "antd"; import type { UploadProps } from "antd";
import { useParams } from "react-router-dom"; import { selectDuelStart } from "@/reducers/moraSlice";
import { selectDuelStart } from "../reducers/moraSlice";
import NeosConfig from "../../neos.config.json"; import NeosConfig from "../../neos.config.json";
import YGOProDeck from "ygopro-deck-encode"; import YGOProDeck from "ygopro-deck-encode";
// @ts-ignore
import rustInit from "rust-src"; import rustInit from "rust-src";
import { initStrings } from "../api/strings"; import { initStrings } from "@/api/strings";
const READY_STATE = "ready"; const READY_STATE = "ready";
......
...@@ -19,10 +19,20 @@ ...@@ -19,10 +19,20 @@
"isolatedModules": true, "isolatedModules": true,
"noEmit": true, "noEmit": true,
"jsx": "preserve", "jsx": "preserve",
"types": ["vite/client"] "types": [
"vite/client"
],
"paths": {
"@/*": [
"./src/*"
],
"rust-src": [
"./rust-src/pkg"
]
}
}, },
"include": [ "include": [
"src", "src",
"src/api" "rust-src/pkg"
] ]
} }
import { defineConfig } from "vite"; import { defineConfig } from "vite";
import react from "@vitejs/plugin-react"; import react from "@vitejs/plugin-react";
import svgr from "vite-plugin-svgr"; import svgr from "vite-plugin-svgr";
import wasmPack from "vite-plugin-wasm-pack";
import ydkLoader from "vite-ydk-loader"; import ydkLoader from "vite-ydk-loader";
import tsconfigPaths from "vite-tsconfig-paths";
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
build: { build: {
minify: false, minify: false,
}, },
plugins: [react(), svgr(), wasmPack("./rust-src"), ydkLoader()], plugins: [
react(),
svgr(),
ydkLoader(),
tsconfigPaths(),
],
resolve: { resolve: {
extensions: [".js", ".json", ".ydk"], extensions: [".js", ".json", ".ydk"],
}, },
......
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