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 mycard/Neos!166
parents c159cc11 e01a4f9a
{
"parser": "@typescript-eslint/parser",
"extends": ["plugin:prettier/recommended"],
"plugins": ["@typescript-eslint"],
"extends": [
"plugin:prettier/recommended",
"plugin:import/recommended",
"plugin:import/typescript"
],
"plugins": [
"@typescript-eslint"
],
"rules": {
"eqeqeq": 0,
"no-var": "error",
......@@ -9,5 +15,11 @@
"error",
"interface"
]
},
"settings": {
"import/resolver": {
"node": true,
"typescript": true
}
}
}
stages:
- install
- check
- lint
- test
- rs_check_lint
- wasm
- ts_check_lint
- test
- build
- deploy
......@@ -22,37 +22,16 @@ npm_ci:
dependencies:
- npm_ci
ts_check:
dependencies:
- 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
rs_check_lint:
stage: rs_check_lint
image: rust:latest
tags:
- linux
script:
- cd rust-src
- cargo check
- rustup component add clippy
- cd rust-src && cargo clippy -- -Dwarnings
- cargo clippy -- -Dwarnings
wasm_build:
tags:
......@@ -70,6 +49,17 @@ wasm_build:
- rust-src/pkg
- node_modules
ts_check_lint:
dependencies:
- npm_ci
- wasm_build
stage: ts_check_lint
tags:
- linux
script:
- npx tsc
- npm run lint
npm_build:
dependencies:
- wasm_build
......@@ -90,7 +80,7 @@ deploy:
- linux
only:
- main
dependencies:
dependencies:
- npm_build
script:
- mv neos-assets dist/
......
This diff is collapsed.
......@@ -23,3 +23,10 @@ wasm-bindgen-test = "0.3.13"
[profile.release]
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 sqliteMiddleWare, { sqliteCmd } from "../middleware/sqlite";
import sqliteMiddleWare, { sqliteCmd } from "@/middleware/sqlite";
export interface CardMeta {
id: number;
......
import { ygopro } from "../idl/ocgcore";
import { numberToCardPosition, numberToCardZone } from "./util";
// @ts-ignore
import { BufferReader } from "rust-src";
const LOCATION_OVERLAY = 0x80;
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectCardResponse) => {
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectChainResponse) => {
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectCounterResponse) => {
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectIdleCmdResponse) => {
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectOptionResponse) => {
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
import { cardZoneToNumber } from "../../util";
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SortCardResponse) => {
......
import { ygopro } from "../../../idl/ocgcore";
//@ts-ignore
import { ocgDamageAdapter } from "rust-src";
/*
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src";
/*
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src";
/*
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src";
/*
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src";
/*
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src";
/*
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReaderExt } from "../../bufferIO";
import MsgReloadField = ygopro.StocGameMessage.MsgReloadField;
import { numberToCardPosition } from "../../util";
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src";
import MsgSelectOption = ygopro.StocGameMessage.MsgSelectOption;
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src";
import MsgSelectPlace = ygopro.StocGameMessage.MsgSelectPlace;
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src";
import MsgSelectPosition = ygopro.StocGameMessage.MsgSelectPosition;
......
import { ygopro } from "../../../idl/ocgcore";
// @ts-ignore
import { BufferReader } from "rust-src";
import MsgWin = ygopro.StocGameMessage.MsgWin;
......
import { ygopro } from "../../idl/ocgcore";
import { YgoProPacket, StocAdapter } from "../packet";
// @ts-ignore
import { BufferReader } from "rust-src";
/*
......
......@@ -3,7 +3,7 @@
*
* */
import { ygopro } from "./idl/ocgcore";
import socketMiddleWare, { socketCmd } from "../../middleware/socket";
import socketMiddleWare, { socketCmd } from "@/middleware/socket";
import { IDeck } from "../deck";
import PlayerInfoAdapter from "./ocgAdapter/ctos/ctosPlayerInfo";
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();
......
import { useEnv } from "../hook";
import { useEnv } from "@/hook";
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 NeosProdConfig from "../../neos.config.prod.json";
......
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`
export const useAppDispatch: () => AppDispatch = useDispatch;
......
......@@ -6,7 +6,7 @@
* */
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";
export enum sqliteCmd {
......
......@@ -3,7 +3,7 @@
*
* */
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { RootState } from "../store";
import { RootState } from "@/store";
export interface chatState {
message: string;
......
......@@ -5,8 +5,8 @@ import {
ActionReducerMapBuilder,
} from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { RootState } from "../../store";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import {
createAsyncMetaThunk,
DuelFieldState,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import {
clearIdleInteractivities,
clearPlaceInteractivities,
......
import { judgeSelf } from "./util";
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { RootState } from "../../store";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { DuelFieldState, CardState } from "./generic";
export interface DeckState extends DuelFieldState {}
......
......@@ -5,8 +5,8 @@ import {
ActionReducerMapBuilder,
} from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { RootState } from "../../store";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import {
createAsyncMetaThunk,
DuelFieldState,
......
import { ActionReducerMapBuilder } from "@reduxjs/toolkit";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { RootState } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import {
createAsyncMetaThunk,
createAsyncRepeatedMetaThunk,
......
......@@ -4,9 +4,8 @@ import {
createAsyncThunk,
PayloadAction,
} from "@reduxjs/toolkit";
import { CardMeta } from "../../api/cards";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchCard } from "../../api/cards";
import { CardMeta, fetchCard } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { DuelState } from "./mod";
import ReloadFieldAction = ygopro.StocGameMessage.MsgReloadField.ZoneAction;
type UpdateDataAction = ReturnType<
......
......@@ -4,7 +4,7 @@ import {
PayloadAction,
} from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { RootState } from "../../store";
import { RootState } from "@/store";
import { judgeSelf } from "./util";
import {
Interactivity,
......@@ -16,7 +16,7 @@ import {
createAsyncRepeatedMetaThunk,
updateCardMeta,
} from "./generic";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
export interface HandState extends DuelFieldState {}
......
import { createAsyncThunk, ActionReducerMapBuilder } from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { RootState } from "../../store";
import { DESCRIPTION_LIMIT, fetchStrings, getStrings } from "../../api/strings";
import { RootState } from "@/store";
import { DESCRIPTION_LIMIT, fetchStrings, getStrings } from "@/api/strings";
import { findCardByLocation } from "./util";
import { fetchCard } from "../../api/cards";
import { fetchCard } from "@/api/cards";
import { DuelReducer } from "./generic";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
export interface HintState {
code: number;
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { RootState } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import { DuelState } from "./mod";
import { judgeSelf } from "./util";
import MsgUpdateHp = ygopro.StocGameMessage.MsgUpdateHp;
......
......@@ -5,8 +5,8 @@ import {
ActionReducerMapBuilder,
} from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { RootState } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import {
createAsyncMetaThunk,
DuelFieldState,
......
......@@ -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 { InitInfo, infoInitImpl, updateHpImpl } from "./initInfoSlice";
import { TimeLimit, updateTimeLimitImpl } from "./timeLimit";
......@@ -22,7 +22,7 @@ import {
setEnableM2Impl,
setEnableEpImpl,
} from "./phaseSlice";
import { RootState } from "../../store";
import { RootState } from "@/store";
import { HintState, hintCase, initHintImpl } from "./hintSlice";
import {
ModalState,
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { DuelState } from "../mod";
import { RootState } from "../../../store";
import { CardMeta } from "../../../api/cards";
import { RootState } from "@/store";
import { CardMeta } from "@/api/cards";
// 更新卡牌列表弹窗打开状态
export const setCardListModalIsOpenImpl: CaseReducer<
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { DuelState } from "../mod";
import { RootState } from "../../../store";
import { CardMeta } from "../../../api/cards";
import { RootState } from "@/store";
import { CardMeta } from "@/api/cards";
// 更新卡牌弹窗打开状态
export const setCardModalIsOpenImpl: CaseReducer<
......
......@@ -4,11 +4,11 @@ import {
createAsyncThunk,
ActionReducerMapBuilder,
} from "@reduxjs/toolkit";
import { RootState } from "../../../store";
import { RootState } from "@/store";
import { DuelState } from "../mod";
import { cmpCardLocation, findCardByLocation, judgeSelf } from "../util";
import { fetchCard, getCardStr } from "../../../api/cards";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore";
import { fetchCard, getCardStr } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
// 更新卡牌选择弹窗打开状态
export const setCheckCardModalIsOpenImpl: CaseReducer<
......
......@@ -5,9 +5,9 @@ import {
CaseReducer,
createAsyncThunk,
} from "@reduxjs/toolkit";
import { fetchCard } from "../../../api/cards";
import { RootState } from "../../../store";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore";
import { fetchCard } from "@/api/cards";
import { RootState } from "@/store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { findCardByLocation } from "../util";
// 更新打开状态
......
......@@ -5,9 +5,9 @@ import {
CaseReducer,
createAsyncThunk,
} from "@reduxjs/toolkit";
import { fetchCard } from "../../../api/cards";
import { RootState } from "../../../store";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore";
import { fetchCard } from "@/api/cards";
import { RootState } from "@/store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { findCardByLocation } from "../util";
// 更新打开状态
......
// 后续对于`MSG_SELECT_XXX`的处理UI都尽量用`Babylon.js`实现而不会通过`Antd`的`Modal`实现,因此这里不追求工程质量,暂时简单实现下。
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { RootState } from "../../../store";
import { RootState } from "@/store";
import { DuelState } from "../mod";
import { findCardByLocation } from "../util";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
type SelectCounter = ReturnType<
typeof ygopro.StocGameMessage.MsgSelectCounter.prototype.toObject
>;
......
import { CardMeta } from "../../../api/cards";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore";
import { CardMeta } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
type CardLocation = ReturnType<typeof ygopro.CardLocation.prototype.toObject>;
export interface ModalState {
......
......@@ -5,8 +5,8 @@ import {
ActionReducerMapBuilder,
} from "@reduxjs/toolkit";
import { DuelState } from "../mod";
import { fetchCard, getCardStr } from "../../../api/cards";
import { RootState } from "../../../store";
import { fetchCard, getCardStr } from "@/api/cards";
import { RootState } from "@/store";
export const setOptionModalIsOpenImpl: CaseReducer<
DuelState,
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { RootState } from "../../../store";
import { RootState } from "@/store";
import { DuelState } from "../mod";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
export const setPositionModalIsOpenImpl: CaseReducer<
DuelState,
......
......@@ -3,9 +3,9 @@ import {
CaseReducer,
createAsyncThunk,
} from "@reduxjs/toolkit";
import { fetchCard } from "../../../api/cards";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore";
import { RootState } from "../../../store";
import { fetchCard } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import { DuelReducer } from "../generic";
import { DuelState } from "../mod";
type SortCard = ReturnType<
......
......@@ -4,10 +4,10 @@ import {
createAsyncThunk,
ActionReducerMapBuilder,
} from "@reduxjs/toolkit";
import { CardMeta, fetchCard } from "../../../api/cards";
import { ygopro } from "../../../api/ocgcore/idl/ocgcore";
import { fetchStrings, getStrings } from "../../../api/strings";
import { RootState } from "../../../store";
import { CardMeta, fetchCard } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchStrings, getStrings } from "@/api/strings";
import { RootState } from "@/store";
import { DuelState } from "../mod";
// 更新YesNo弹窗是否打开状态
......
......@@ -6,8 +6,8 @@ import {
createAsyncThunk,
} from "@reduxjs/toolkit";
import { DuelState } from "./mod";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { RootState } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { RootState } from "@/store";
import {
DuelFieldState,
Interactivity,
......@@ -21,7 +21,7 @@ import {
setPosition,
removeOverlay,
} from "./generic";
import { fetchCard } from "../../api/cards";
import { fetchCard } from "@/api/cards";
type MsgUpdateCounter = ReturnType<
typeof ygopro.StocGameMessage.MsgUpdateCounter.prototype.toObject
>;
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { RootState } from "../../store";
import { RootState } from "@/store";
import { DuelState } from "./mod";
export interface PhaseState {
......
import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import { RootState } from "../../store";
import { RootState } from "@/store";
import { DuelState } from "./mod";
import { judgeSelf } from "./util";
......
......@@ -5,7 +5,7 @@
import { DuelState } from "./mod";
import { Draft } from "@reduxjs/toolkit";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { CardState } from "./generic";
type Location =
......
......@@ -3,7 +3,7 @@
*
* */
import { createSlice } from "@reduxjs/toolkit";
import { RootState } from "../store";
import { RootState } from "@/store";
export interface JoinState {
value: boolean;
......
......@@ -3,7 +3,7 @@
*
* */
import { createSlice } from "@reduxjs/toolkit";
import { RootState } from "../store";
import { RootState } from "@/store";
export interface moraState {
duelStart: boolean;
......
......@@ -3,7 +3,7 @@
*
* */
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { RootState } from "../store";
import { RootState } from "@/store";
export interface Player {
name?: string;
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default (
attack: ygopro.StocGameMessage.MsgAttack,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default (
_: ygopro.StocGameMessage.MsgAttackDisabled,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default (
chaining: ygopro.StocGameMessage.MsgChaining,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store";
import { fetchHandsMeta } from "../../reducers/duel/handsSlice";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { fetchHandsMeta } from "@/reducers/duel/handsSlice";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
export default (
draw: ygopro.StocGameMessage.MsgDraw,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default (
_: ygopro.StocGameMessage.MsgFlipSummoned,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default (
flipSummoning: ygopro.StocGameMessage.MsgFlipSummoning,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { store } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { store } from "@/store";
import onMsgStart from "./start";
import onMsgDraw from "./draw";
import onMsgNewTurn from "./newTurn";
......@@ -40,7 +40,7 @@ import onMsgSpSummoning from "./spSummoning";
import onMsgSpSummoned from "./spSummoned";
import onMsgSummoning from "./summoning";
import onMsgSummoned from "./summoned";
import { setWaiting } from "../../reducers/duel/mod";
import { setWaiting } from "@/reducers/duel/mod";
const ActiveList = [
"select_idle_cmd",
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import {
fetchCommonHintMeta,
fetchEsHintMeta,
fetchSelectHintMeta,
} from "../../reducers/duel/hintSlice";
} from "@/reducers/duel/hintSlice";
import MsgHint = ygopro.StocGameMessage.MsgHint;
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 { AppDispatch } from "../../store";
import { AppDispatch } from "@/store";
import {
fetchMonsterMeta,
fetchOverlayMeta,
} from "../../reducers/duel/monstersSlice";
} from "@/reducers/duel/monstersSlice";
import {
removeCemetery,
removeExclusion,
......@@ -13,12 +13,12 @@ import {
removeMagic,
removeMonster,
removeOverlay,
} from "../../reducers/duel/mod";
import { fetchMagicMeta } from "../../reducers/duel/magicSlice";
import { fetchCemeteryMeta } from "../../reducers/duel/cemeretySlice";
import { insertHandMeta } from "../../reducers/duel/handsSlice";
import { fetchExclusionMeta } from "../../reducers/duel/exclusionSlice";
import { fetchExtraDeckMeta } from "../../reducers/duel/extraDeckSlice";
} from "@/reducers/duel/mod";
import { fetchMagicMeta } from "@/reducers/duel/magicSlice";
import { fetchCemeteryMeta } from "@/reducers/duel/cemeretySlice";
import { insertHandMeta } from "@/reducers/duel/handsSlice";
import { fetchExclusionMeta } from "@/reducers/duel/exclusionSlice";
import { fetchExtraDeckMeta } from "@/reducers/duel/extraDeckSlice";
import { REASON_MATERIAL } from "../../common";
const OVERLAY_STACK: { code: number; sequence: number }[] = [];
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store";
import { updatePhase } from "../../reducers/duel/mod";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { updatePhase } from "@/reducers/duel/mod";
export default (
newPhase: ygopro.StocGameMessage.MsgNewPhase,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store";
import { updateTurn } from "../../reducers/duel/mod";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { updateTurn } from "@/reducers/duel/mod";
export default (
newTurn: ygopro.StocGameMessage.MsgNewTurn,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { setMagicPosition, setMonsterPosition } from "../../reducers/duel/mod";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { setMagicPosition, setMonsterPosition } from "@/reducers/duel/mod";
import { AppDispatch } from "@/store";
import MsgPosChange = ygopro.StocGameMessage.MsgPosChange;
export default (posChange: MsgPosChange, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { reloadField } from "../../reducers/duel/mod";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { reloadField } from "@/reducers/duel/mod";
import { AppDispatch } from "@/store";
import MsgReloadField = ygopro.StocGameMessage.MsgReloadField;
export default (field: MsgReloadField, dispatch: AppDispatch) => {
......
import { ActionCreatorWithPayload } from "@reduxjs/toolkit";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { Interactivity, InteractType } from "../../reducers/duel/generic";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { Interactivity, InteractType } from "@/reducers/duel/generic";
import {
addHandsIdleInteractivity,
addMagicIdleInteractivities,
......@@ -8,8 +8,8 @@ import {
clearAllIdleInteractivities,
setEnableEp,
setEnableM2,
} from "../../reducers/duel/mod";
import { AppDispatch } from "../../store";
} from "@/reducers/duel/mod";
import { AppDispatch } from "@/store";
import MsgSelectBattleCmd = ygopro.StocGameMessage.MsgSelectBattleCmd;
export default (selectBattleCmd: MsgSelectBattleCmd, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import {
setCheckCardModalIsOpen,
setCheckCardModalMinMax,
setCheckCardModalOnSubmit,
} from "../../reducers/duel/mod";
import { fetchCheckCardMeta } from "../../reducers/duel/modal/mod";
} from "@/reducers/duel/mod";
import { fetchCheckCardMeta } from "@/reducers/duel/modal/mod";
import MsgSelectCard = ygopro.StocGameMessage.MsgSelectCard;
import { CardZoneToChinese } from "./util";
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { sendSelectChainResponse } from "../../api/ocgcore/ocgHelper";
import { fetchSelectHintMeta } from "../../reducers/duel/hintSlice";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { sendSelectChainResponse } from "@/api/ocgcore/ocgHelper";
import { fetchSelectHintMeta } from "@/reducers/duel/hintSlice";
import {
setCheckCardMOdalCancelAble,
setCheckCardModalCancelResponse,
setCheckCardModalIsOpen,
setCheckCardModalMinMax,
setCheckCardModalOnSubmit,
} from "../../reducers/duel/mod";
import { fetchCheckCardMeta } from "../../reducers/duel/modal/mod";
import { AppDispatch } from "../../store";
} from "@/reducers/duel/mod";
import { fetchCheckCardMeta } from "@/reducers/duel/modal/mod";
import { AppDispatch } from "@/store";
import { CardZoneToChinese } from "./util";
import MsgSelectChain = ygopro.StocGameMessage.MsgSelectChain;
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { setCheckCounter } from "../../reducers/duel/mod";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setCheckCounter } from "@/reducers/duel/mod";
import { AppDispatch } from "@/store";
import MsgSelectCounter = ygopro.StocGameMessage.MsgSelectCounter;
export default (selectCounter: MsgSelectCounter, dispatch: AppDispatch) => {
......
import { CardMeta } from "../../api/cards";
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { setYesNoModalIsOpen } from "../../reducers/duel/mod";
import { fetchYesNoMeta } from "../../reducers/duel/modal/mod";
import { AppDispatch } from "../../store";
import { CardMeta } from "@/api/cards";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setYesNoModalIsOpen } from "@/reducers/duel/mod";
import { fetchYesNoMeta } from "@/reducers/duel/modal/mod";
import { AppDispatch } from "@/store";
import { CardZoneToChinese } from "./util";
import MsgSelectEffectYn = ygopro.StocGameMessage.MsgSelectEffectYn;
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store";
import { Interactivity, InteractType } from "../../reducers/duel/generic";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import { Interactivity, InteractType } from "@/reducers/duel/generic";
import {
addHandsIdleInteractivity,
addMonsterIdleInteractivities,
......@@ -11,7 +11,7 @@ import {
clearAllIdleInteractivities,
addExclusionIdleInteractivities,
addExtraDeckIdleInteractivities,
} from "../../reducers/duel/mod";
} from "@/reducers/duel/mod";
import MsgSelectIdleCmd = ygopro.StocGameMessage.MsgSelectIdleCmd;
import { ActionCreatorWithPayload } from "@reduxjs/toolkit";
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { setOptionModalIsOpen } from "../../reducers/duel/mod";
import { fetchOptionMeta } from "../../reducers/duel/modal/mod";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setOptionModalIsOpen } from "@/reducers/duel/mod";
import { fetchOptionMeta } from "@/reducers/duel/modal/mod";
import { AppDispatch } from "@/store";
import MsgSelectOption = ygopro.StocGameMessage.MsgSelectOption;
export default (selectOption: MsgSelectOption, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import MsgSelectPlace = ygopro.StocGameMessage.MsgSelectPlace;
import {
addMonsterPlaceInteractivities,
addMagicPlaceInteractivities,
} from "../../reducers/duel/mod";
} from "@/reducers/duel/mod";
export default (selectPlace: MsgSelectPlace, dispatch: AppDispatch) => {
if (selectPlace.count != 1) {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import {
setPositionModalIsOpen,
setPositionModalPositions,
} from "../../reducers/duel/mod";
import { AppDispatch } from "../../store";
} from "@/reducers/duel/mod";
import { AppDispatch } from "@/store";
import MsgSelectPosition = ygopro.StocGameMessage.MsgSelectPosition;
export default (selectPosition: MsgSelectPosition, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import {
setCheckCardModalV3AllLevel,
setCheckCardModalV3IsOpen,
setCheckCardModalV3MinMax,
setCheckCardModalV3OverFlow,
} from "../../reducers/duel/mod";
import { fetchCheckCardMetasV3 } from "../../reducers/duel/modal/checkCardModalV3Slice";
import { AppDispatch } from "../../store";
} from "@/reducers/duel/mod";
import { fetchCheckCardMetasV3 } from "@/reducers/duel/modal/checkCardModalV3Slice";
import { AppDispatch } from "@/store";
import MsgSelectSum = ygopro.StocGameMessage.MsgSelectSum;
export default (selectSum: MsgSelectSum, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import {
setCheckCardModalV3AllLevel,
setCheckCardModalV3IsOpen,
setCheckCardModalV3MinMax,
setCheckCardModalV3OverFlow,
} from "../../reducers/duel/mod";
import { fetchCheckCardMetasV3 } from "../../reducers/duel/modal/checkCardModalV3Slice";
import { AppDispatch } from "../../store";
} from "@/reducers/duel/mod";
import { fetchCheckCardMetasV3 } from "@/reducers/duel/modal/checkCardModalV3Slice";
import { AppDispatch } from "@/store";
import MsgSelectTribute = ygopro.StocGameMessage.MsgSelectTribute;
export default (selectTribute: MsgSelectTribute, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import {
setCheckCardModalV2CancelAble,
setCheckCardModalV2FinishAble,
setCheckCardModalV2IsOpen,
setCheckCardModalV2MinMax,
setCheckCardModalV2ResponseAble,
} from "../../reducers/duel/mod";
import { fetchCheckCardMetasV2 } from "../../reducers/duel/modal/checkCardModalV2Slice";
import { AppDispatch } from "../../store";
} from "@/reducers/duel/mod";
import { fetchCheckCardMetasV2 } from "@/reducers/duel/modal/checkCardModalV2Slice";
import { AppDispatch } from "@/store";
import MsgSelectUnselectCard = ygopro.StocGameMessage.MsgSelectUnselectCard;
export default (
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { setYesNoModalIsOpen } from "../../reducers/duel/mod";
import { fetchYesNoMetaWithEffecDesc } from "../../reducers/duel/modal/yesNoModalSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setYesNoModalIsOpen } from "@/reducers/duel/mod";
import { fetchYesNoMetaWithEffecDesc } from "@/reducers/duel/modal/yesNoModalSlice";
import { AppDispatch } from "@/store";
import MsgSelectYesNo = ygopro.StocGameMessage.MsgSelectYesNo;
export default (selectYesNo: MsgSelectYesNo, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default (_set: ygopro.StocGameMessage.MsgSet, dispatch: AppDispatch) => {
dispatch(fetchEsHintMeta({ originMsg: 1601 }));
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { updateHandsMeta } from "../../reducers/duel/handsSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { updateHandsMeta } from "@/reducers/duel/handsSlice";
import { AppDispatch } from "@/store";
import MsgShuffleHand = ygopro.StocGameMessage.MsgShuffleHand;
export default (shuffleHand: MsgShuffleHand, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { setSortCardModalIsOpen } from "../../reducers/duel/mod";
import { fetchSortCardMeta } from "../../reducers/duel/modal/sortCardModalSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { setSortCardModalIsOpen } from "@/reducers/duel/mod";
import { fetchSortCardMeta } from "@/reducers/duel/modal/sortCardModalSlice";
import { AppDispatch } from "@/store";
import MsgSortCard = ygopro.StocGameMessage.MsgSortCard;
export default (sortCard: MsgSortCard, dispatch: AppDispatch) => {
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default (
_: ygopro.StocGameMessage.MsgSpSummoned,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default (
spSummoning: ygopro.StocGameMessage.MsgSpSummoning,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { AppDispatch } from "@/store";
import {
infoInit,
setSelfType,
......@@ -9,7 +9,7 @@ import {
initDeck,
initExclusion,
initHint,
} from "../../reducers/duel/mod";
} from "@/reducers/duel/mod";
export default (
start: ygopro.StocGameMessage.MsgStart,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default (
_: ygopro.StocGameMessage.MsgSummoned,
......
import { ygopro } from "../../api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "../../reducers/duel/hintSlice";
import { AppDispatch } from "../../store";
import { ygopro } from "@/api/ocgcore/idl/ocgcore";
import { fetchEsHintMeta } from "@/reducers/duel/hintSlice";
import { AppDispatch } from "@/store";
export default (
summoning: ygopro.StocGameMessage.MsgSummoning,
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment