UPDATE: Fix bug
All checks were successful
Gitea Auto Deploy / Deploy-Container (push) Successful in 45s

This commit is contained in:
2026-03-06 14:29:26 +07:00
parent f5541c9527
commit 53497d5ece
8 changed files with 28 additions and 34 deletions

View File

@@ -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",
}, },
}; };

View File

@@ -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">

View File

@@ -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);
}
} }
}; };

View File

@@ -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,

View File

@@ -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 {

View File

@@ -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"

View File

@@ -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
View File

@@ -0,0 +1,4 @@
export enum Team {
Player = "Player",
Enemy = "Enemy"
}