Commit ab0861ed authored by timel's avatar timel

fix: comments, 50%

parent 12b44c96
Pipeline #21148 failed with stages
in 16 minutes and 10 seconds
export * from "./useApp";
export * from "./useEnv";
export * from "./useAutoMode";
export * from "./useConfig";
......@@ -7,35 +7,39 @@ import { useEnv } from ".";
const { DEV, VITE_IS_AI_MODE, VITE_IS_AI_FIRST, VITE_AI_MODE_DEFAULT_DECK } =
useEnv();
interface AutoModeConfig {
defaultPlayer?: string;
defaultDeck?: string;
defaultPassword?: string;
defaultMora?: string;
isAiMode?: boolean;
isAiFirst?: boolean;
interface PrepareConfig {
defaultPlayer: string;
defaultDeck: string;
defaultPassword: string;
defaultMora: string;
isAiMode: boolean;
isAiFirst: boolean;
}
const autoModeConfig: AutoModeConfig = {
const autoModeConfig: PrepareConfig = {
defaultPlayer: "",
defaultDeck: VITE_AI_MODE_DEFAULT_DECK ?? "Hero",
// 无需考虑undefined的情况,如果为undefined,界面上会显示【请选择】
defaultDeck: VITE_AI_MODE_DEFAULT_DECK,
defaultPassword: "",
defaultMora: "scissors",
isAiMode: false,
isAiFirst: false,
};
const aiModeConfig: AutoModeConfig = {
const aiModeConfig: PrepareConfig = {
...autoModeConfig,
defaultPlayer: `AiKiller${Math.random().toString(36).slice(2)}}`,
defaultPassword: "AI",
defaultMora: "scissors",
isAiMode: true,
isAiFirst: VITE_IS_AI_FIRST,
};
export function useAutoMode(): AutoModeConfig {
if (!DEV) return {};
if (VITE_IS_AI_MODE) {
return aiModeConfig;
export function useConfig(): PrepareConfig {
if (DEV) {
if (VITE_IS_AI_MODE) {
return aiModeConfig;
}
// 待拓展
}
return autoModeConfig;
......
......@@ -11,14 +11,14 @@ import React, { useState, ChangeEvent, useEffect } from "react";
import { useNavigate } from "react-router-dom";
import "../styles/core.scss";
import NeosConfig from "../../neos.config.json";
import { useAutoMode } from "../hook";
import { useConfig } from "../hook";
const serverConfig = NeosConfig.servers;
const { isAiMode, defaultPlayer, defaultPassword } = useAutoMode();
const { isAiMode, defaultPlayer, defaultPassword } = useConfig();
export default function Login() {
const [player, setPlayer] = useState(isAiMode ? defaultPlayer : "");
const [passWd, setPasswd] = useState(isAiMode ? defaultPassword : "");
const [player, setPlayer] = useState(defaultPlayer);
const [passWd, setPasswd] = useState(defaultPassword);
const [ip, setIp] = useState(`${serverConfig[0].ip}:${serverConfig[0].port}`);
const navigate = useNavigate();
......
import React from "react";
import { sendHandResult, sendTpResult } from "../api/ocgcore/ocgHelper";
import { useAppSelector, useAutoMode } from "../hook";
import { useAppSelector, useConfig } from "../hook";
import {
selectHandSelectAble,
unSelectHandAble,
......@@ -18,7 +18,7 @@ import {
TableOutlined,
} from "@ant-design/icons";
const { isAiMode, isAiFirst, defaultMora } = useAutoMode();
const { isAiMode, isAiFirst, defaultMora } = useConfig();
const Mora = () => {
const dispatch = store.dispatch;
......@@ -50,7 +50,7 @@ const Mora = () => {
useEffect(() => {
if (isAiMode) {
handleSelectMora(defaultMora!);
handleSelectMora(defaultMora);
}
}, [selectHandAble]);
......
......@@ -19,7 +19,7 @@ import {
selectPlayer0,
selectPlayer1,
} from "../reducers/playerSlice";
import { useAppSelector, useAutoMode } from "../hook";
import { useAppSelector, useConfig } from "../hook";
import { selectJoined } from "../reducers/joinSlice";
import { selectChat } from "../reducers/chatSlice";
import { fetchDeck, type IDeck, DeckManager } from "../api/deck";
......@@ -48,7 +48,7 @@ import { initStrings } from "../api/strings";
const READY_STATE = "ready";
const { isAiMode, defaultDeck } = useAutoMode();
const { isAiMode, defaultDeck } = useConfig();
const WaitRoom = () => {
const params = useParams<{
......
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