UPDATE: Fix bug
All checks were successful
Gitea Auto Deploy / Deploy-Container (push) Successful in 45s
All checks were successful
Gitea Auto Deploy / Deploy-Container (push) Successful in 45s
This commit is contained in:
@@ -26,11 +26,11 @@ const nextConfig: NextConfig = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
protocol: "https",
|
protocol: "https",
|
||||||
hostname: "cdn.kain.id.vn",
|
hostname: "r2.kain.id.vn",
|
||||||
pathname: "**",
|
pathname: "**",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
protocol: "http",
|
protocol: "https",
|
||||||
hostname: "cdn.kain.id.vn",
|
hostname: "cdn.kain.id.vn",
|
||||||
pathname: "**",
|
pathname: "**",
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,7 @@ const nextConfig: NextConfig = {
|
|||||||
styledComponents: true,
|
styledComponents: true,
|
||||||
},
|
},
|
||||||
env: {
|
env: {
|
||||||
CDN_URL: "https://cdn.kain.id.vn/firefly/assets/asbres",
|
CDN_URL: "https://r2.kain.id.vn/asbres",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ export default function EnemyBar() {
|
|||||||
return (
|
return (
|
||||||
<div className="p-3 w-full">
|
<div className="p-3 w-full">
|
||||||
<div className="flex gap-3 overflow-x-auto pb-2">
|
<div className="flex gap-3 overflow-x-auto pb-2">
|
||||||
{enemyDetail && Object.values(enemyDetail).filter((enemy) => (enemy.stats?.AV > 0
|
{enemyDetail && Object.values(enemyDetail).filter((enemy) => (
|
||||||
&& enemy.stats.HP <= enemy.maxHP)).map((enemy, uid) => (
|
enemy.stats.HP <= enemy.maxHP)).map((enemy, uid) => (
|
||||||
<div key={uid} className="bg-base-200 rounded-lg p-3 border border-gray-700 w-52 shrink-0">
|
<div key={uid} className="bg-base-200 rounded-lg p-3 border border-gray-700 w-52 shrink-0">
|
||||||
<div className="flex items-center justify-between mb-3">
|
<div className="flex items-center justify-between mb-3">
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
import useLocaleStore from "@/stores/localeStore";
|
import useLocaleStore from "@/stores/localeStore";
|
||||||
import { createContext, PropsWithChildren, useEffect } from "react";
|
import { createContext, PropsWithChildren } from "react";
|
||||||
|
|
||||||
interface ThemeContextType {
|
interface ThemeContextType {
|
||||||
theme?: string;
|
theme?: string;
|
||||||
@@ -11,25 +11,11 @@ export const ThemeContext = createContext<ThemeContextType>({});
|
|||||||
export const ThemeProvider = ({ children }: PropsWithChildren) => {
|
export const ThemeProvider = ({ children }: PropsWithChildren) => {
|
||||||
const { theme, setTheme } = useLocaleStore()
|
const { theme, setTheme } = useLocaleStore()
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (typeof window !== "undefined") {
|
|
||||||
const storedTheme = localStorage.getItem("theme");
|
|
||||||
if (storedTheme) setTheme(storedTheme);
|
|
||||||
}
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
const changeTheme = (nextTheme: string | null) => {
|
const changeTheme = (nextTheme: string | null) => {
|
||||||
if (nextTheme) {
|
if (nextTheme) {
|
||||||
setTheme(nextTheme);
|
setTheme(nextTheme);
|
||||||
if (typeof window !== "undefined") {
|
|
||||||
localStorage.setItem("theme", nextTheme);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
setTheme(theme === "winter" ? "night" : "winter");
|
setTheme(theme === "winter" ? "night" : "winter");
|
||||||
if (typeof window !== "undefined") {
|
|
||||||
localStorage.setItem("theme", theme);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { DamageType, AvatarAnalysisJson, UseSkillType, BattleBeginType, BattleEndType, DamageDetailType, EntityDefeatedType, SetBattleLineupType, TurnBeginType, TurnEndType, UpdateCycleType, UpdateWaveType, VersionType, StatChangeType, UpdateTeamFormationType } from '@/types';
|
import { DamageType, AvatarAnalysisJson, UseSkillType, BattleBeginType, BattleEndType, DamageDetailType, EntityDefeatedType, SetBattleLineupType, TurnBeginType, TurnEndType, UpdateCycleType, UpdateWaveType, VersionType, StatChangeType, UpdateTeamFormationType, Team } from '@/types';
|
||||||
import { InitializeEnemyType } from '@/types/enemy';
|
import { InitializeEnemyType } from '@/types/enemy';
|
||||||
import { AvatarBattleInfo, AvatarInfo, BattleDataStateJson, EnemyInfo, SkillBattleInfo, TurnBattleInfo } from '@/types/mics';
|
import { AvatarBattleInfo, AvatarInfo, BattleDataStateJson, EnemyInfo, SkillBattleInfo, TurnBattleInfo } from '@/types/mics';
|
||||||
import { create } from 'zustand'
|
import { create } from 'zustand'
|
||||||
@@ -257,24 +257,24 @@ const useBattleDataStore = create<BattleDataState>((set, get) => ({
|
|||||||
onUpdateTeamFormation: (data: UpdateTeamFormationType) => {
|
onUpdateTeamFormation: (data: UpdateTeamFormationType) => {
|
||||||
let avatarDetail = get().avatarDetail
|
let avatarDetail = get().avatarDetail
|
||||||
let enemyDetail = get().enemyDetail
|
let enemyDetail = get().enemyDetail
|
||||||
if (!avatarDetail) {
|
|
||||||
avatarDetail = {} as Record<number, AvatarInfo>
|
|
||||||
for (const entity of data.entities) {
|
|
||||||
if (entity.team === "Player" && avatarDetail[entity.uid]) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!enemyDetail) {
|
if (!enemyDetail) {
|
||||||
enemyDetail = {} as Record<number, EnemyInfo>
|
enemyDetail = {} as Record<number, EnemyInfo>
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!avatarDetail) {
|
||||||
|
avatarDetail = {} as Record<number, AvatarInfo>
|
||||||
|
}
|
||||||
|
if (data.team === Team.Enemy) {
|
||||||
for (let i = 0; i < data.entities.length; i++) {
|
for (let i = 0; i < data.entities.length; i++) {
|
||||||
const entity = data.entities[i];
|
const entity = data.entities[i];
|
||||||
if (entity.team === "Enemy" && enemyDetail[entity.uid]) {
|
if (entity.team === Team.Enemy && enemyDetail[entity.uid]) {
|
||||||
enemyDetail[entity.uid].positionIndex = i
|
enemyDetail[entity.uid].positionIndex = i
|
||||||
|
enemyDetail[entity.uid].waveIndex = get().waveIndex
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
set({
|
set({
|
||||||
avatarDetail: avatarDetail,
|
avatarDetail: avatarDetail,
|
||||||
enemyDetail: enemyDetail
|
enemyDetail: enemyDetail
|
||||||
@@ -290,7 +290,7 @@ const useBattleDataStore = create<BattleDataState>((set, get) => ({
|
|||||||
isDie: false,
|
isDie: false,
|
||||||
killer_uid: -1,
|
killer_uid: -1,
|
||||||
positionIndex: enemyDetail[data.enemy.uid].positionIndex,
|
positionIndex: enemyDetail[data.enemy.uid].positionIndex,
|
||||||
waveIndex: get().waveIndex,
|
waveIndex: enemyDetail[data.enemy.uid].waveIndex,
|
||||||
name: data.enemy.name,
|
name: data.enemy.name,
|
||||||
maxHP: data.enemy.base_stats.hp,
|
maxHP: data.enemy.base_stats.hp,
|
||||||
level: data.enemy.base_stats.level,
|
level: data.enemy.base_stats.level,
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
|
import { Team } from "./team";
|
||||||
|
|
||||||
export interface EntityType {
|
export interface EntityType {
|
||||||
uid: number;
|
uid: number;
|
||||||
team: "Player" | "Enemy";
|
team: Team;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface EntityDefeatedType {
|
export interface EntityDefeatedType {
|
||||||
|
|||||||
@@ -10,3 +10,4 @@ export * from "./version"
|
|||||||
export * from "./entity"
|
export * from "./entity"
|
||||||
export * from "./stat"
|
export * from "./stat"
|
||||||
export * from "./enemy"
|
export * from "./enemy"
|
||||||
|
export * from "./team"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { EntityType } from "./entity";
|
import { EntityType } from "./entity";
|
||||||
|
import { Team } from "./team";
|
||||||
|
|
||||||
export interface AvatarType{
|
export interface AvatarType{
|
||||||
id: number;
|
id: number;
|
||||||
@@ -12,5 +13,5 @@ export interface SetBattleLineupType {
|
|||||||
|
|
||||||
export interface UpdateTeamFormationType {
|
export interface UpdateTeamFormationType {
|
||||||
entities: EntityType[],
|
entities: EntityType[],
|
||||||
team: "Player" | "Enemy"
|
team: Team
|
||||||
}
|
}
|
||||||
4
src/types/team.ts
Normal file
4
src/types/team.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
export enum Team {
|
||||||
|
Player = "Player",
|
||||||
|
Enemy = "Enemy"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user