diff --git a/next.config.ts b/next.config.ts index 84aeea1..10394e7 100644 --- a/next.config.ts +++ b/next.config.ts @@ -26,11 +26,11 @@ const nextConfig: NextConfig = { }, { protocol: "https", - hostname: "cdn.kain.id.vn", + hostname: "r2.kain.id.vn", pathname: "**", }, { - protocol: "http", + protocol: "https", hostname: "cdn.kain.id.vn", pathname: "**", } @@ -40,7 +40,7 @@ const nextConfig: NextConfig = { styledComponents: true, }, env: { - CDN_URL: "https://cdn.kain.id.vn/firefly/assets/asbres", + CDN_URL: "https://r2.kain.id.vn/asbres", }, }; diff --git a/src/components/enemybar/index.tsx b/src/components/enemybar/index.tsx index 1ca45da..ea294df 100644 --- a/src/components/enemybar/index.tsx +++ b/src/components/enemybar/index.tsx @@ -16,8 +16,8 @@ export default function EnemyBar() { return (
- {enemyDetail && Object.values(enemyDetail).filter((enemy) => (enemy.stats?.AV > 0 - && enemy.stats.HP <= enemy.maxHP)).map((enemy, uid) => ( + {enemyDetail && Object.values(enemyDetail).filter((enemy) => ( + enemy.stats.HP <= enemy.maxHP)).map((enemy, uid) => (
diff --git a/src/components/themeController/themeContext.tsx b/src/components/themeController/themeContext.tsx index a02f7a4..714eefb 100644 --- a/src/components/themeController/themeContext.tsx +++ b/src/components/themeController/themeContext.tsx @@ -1,6 +1,6 @@ "use client"; import useLocaleStore from "@/stores/localeStore"; -import { createContext, PropsWithChildren, useEffect } from "react"; +import { createContext, PropsWithChildren } from "react"; interface ThemeContextType { theme?: string; @@ -10,26 +10,12 @@ export const ThemeContext = createContext({}); export const ThemeProvider = ({ children }: PropsWithChildren) => { 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) => { if (nextTheme) { setTheme(nextTheme); - if (typeof window !== "undefined") { - localStorage.setItem("theme", nextTheme); - } } else { setTheme(theme === "winter" ? "night" : "winter"); - if (typeof window !== "undefined") { - localStorage.setItem("theme", theme); - } } }; diff --git a/src/stores/battleDataStore.ts b/src/stores/battleDataStore.ts index 6bb4923..fb3a708 100644 --- a/src/stores/battleDataStore.ts +++ b/src/stores/battleDataStore.ts @@ -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 { AvatarBattleInfo, AvatarInfo, BattleDataStateJson, EnemyInfo, SkillBattleInfo, TurnBattleInfo } from '@/types/mics'; import { create } from 'zustand' @@ -257,24 +257,24 @@ const useBattleDataStore = create((set, get) => ({ onUpdateTeamFormation: (data: UpdateTeamFormationType) => { let avatarDetail = get().avatarDetail let enemyDetail = get().enemyDetail - if (!avatarDetail) { - avatarDetail = {} as Record - for (const entity of data.entities) { - if (entity.team === "Player" && avatarDetail[entity.uid]) { - - } - } - } if (!enemyDetail) { enemyDetail = {} as Record + } + + if (!avatarDetail) { + avatarDetail = {} as Record + } + if (data.team === Team.Enemy) { for (let i = 0; i < data.entities.length; 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].waveIndex = get().waveIndex } } } + set({ avatarDetail: avatarDetail, enemyDetail: enemyDetail @@ -290,7 +290,7 @@ const useBattleDataStore = create((set, get) => ({ isDie: false, killer_uid: -1, positionIndex: enemyDetail[data.enemy.uid].positionIndex, - waveIndex: get().waveIndex, + waveIndex: enemyDetail[data.enemy.uid].waveIndex, name: data.enemy.name, maxHP: data.enemy.base_stats.hp, level: data.enemy.base_stats.level, diff --git a/src/types/entity.ts b/src/types/entity.ts index dd9202a..09dd1d1 100644 --- a/src/types/entity.ts +++ b/src/types/entity.ts @@ -1,6 +1,8 @@ +import { Team } from "./team"; + export interface EntityType { uid: number; - team: "Player" | "Enemy"; + team: Team; } export interface EntityDefeatedType { diff --git a/src/types/index.ts b/src/types/index.ts index f8674a5..9602ad6 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -10,3 +10,4 @@ export * from "./version" export * from "./entity" export * from "./stat" export * from "./enemy" +export * from "./team" diff --git a/src/types/lineup.ts b/src/types/lineup.ts index 91d5491..b35a078 100644 --- a/src/types/lineup.ts +++ b/src/types/lineup.ts @@ -1,4 +1,5 @@ import { EntityType } from "./entity"; +import { Team } from "./team"; export interface AvatarType{ id: number; @@ -12,5 +13,5 @@ export interface SetBattleLineupType { export interface UpdateTeamFormationType { entities: EntityType[], - team: "Player" | "Enemy" + team: Team } \ No newline at end of file diff --git a/src/types/team.ts b/src/types/team.ts new file mode 100644 index 0000000..16adc38 --- /dev/null +++ b/src/types/team.ts @@ -0,0 +1,4 @@ +export enum Team { + Player = "Player", + Enemy = "Enemy" +} \ No newline at end of file