UPDATE: Update readme and Next 16.07 (CVE-2025-66478)

This commit is contained in:
2025-12-04 23:27:41 +07:00
commit 6b079db470
280 changed files with 364214 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
name: Gitea Auto Deploy
run-name: ${{ gitea.actor }} pushed code 🚀
on: [push]
jobs:
Deploy-Container:
runs-on: ubuntu-latest
steps:
- name: Check out latest code
uses: actions/checkout@v4
- name: Stop and remove old containers
run: |
docker compose down || true
- name: Remove unused Docker resources
run: |
docker system prune -a --volumes -f
- name: Build and restart containers
run: |
docker compose pull
docker compose up -d --build

42
.gitignore vendored Normal file
View File

@@ -0,0 +1,42 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
.history/
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions
test1.json
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# env files (can opt-in for committing if needed)
.env*
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts

59
Dockerfile Normal file
View File

@@ -0,0 +1,59 @@
FROM oven/bun:canary-alpine AS base
# Install dependencies only when needed
FROM base AS deps
WORKDIR /app
# Install dependencies
COPY package.json bun.lock ./
RUN bun install --frozen-lockfile
# Rebuild the source code only when needed
FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
# Next.js collects completely anonymous telemetry data about general usage.
# Learn more here: https://nextjs.org/telemetry
# Disable telemetry during the build
ENV NEXT_TELEMETRY_DISABLED=1
RUN bun run build
# Production image, copy all the files and run next
FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production
# Disable telemetry
ENV NEXT_TELEMETRY_DISABLED=1
RUN adduser --system --uid 1001 nextjs
COPY --from=builder /app/public ./public
COPY --from=builder /app/data ./data
COPY --from=builder /app/messages ./messages
# Set the correct permission for prerender cache
RUN mkdir .next
RUN chown nextjs:bun .next
# Automatically leverage output traces to reduce image size
# https://nextjs.org/docs/advanced-features/output-file-tracing
COPY --from=builder --chown=nextjs:bun /app/.next/standalone ./
COPY --from=builder --chown=nextjs:bun /app/.next/static ./.next/static
USER nextjs
EXPOSE 3000
ENV PORT=3000
# Set hostname to localhost
ENV HOSTNAME=0.0.0.0
CMD ["bun", "server.js"]

63
README.md Normal file
View File

@@ -0,0 +1,63 @@
# Firefly SrTools
![Next.js](https://img.shields.io/badge/Next.js-black?style=for-the-badge&logo=next.js&logoColor=white)
![Bun](https://img.shields.io/badge/Bun-%23000000.svg?style=for-the-badge&logo=bun&logoColor=white)
![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white)
![License](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)
**Firefly SrTools** is a modern, high-performance web toolkit designed to streamline workflows and provide essential services. This project is built upon the powerful synergy of the **Next.js** framework and the ultra-fast **Bun.js** runtime, ensuring lightning-fast development and deployment.
---
## Live Sites
The application is deployed and available at the following URLs:
| Role | URL |
| :--- | :--- |
| **Main Site** | [srtools.kain.id.vn](https://srtools.kain.id.vn) |
| **Backup / Vercel Mirror** | [firefly-srtools.vercel.app](https://firefly-srtools.vercel.app) |
---
## Key Features
* **Optimized Performance:** Leveraging Bun for dependency management, scripting, and development server speed.
* **Next.js App Router:** Modern routing and data fetching using the latest Next.js architecture.
* **Server-Side Rendering (SSR):** Enhanced SEO and faster initial load times for improved user experience.
* **Robust Type Safety:** Built with TypeScript for reliable and maintainable code.
* **Modular Design:** Clean separation of concerns with reusable components and utilities.
## Technology Stack
* **Frontend Framework:** [Next.js 15](https://nextjs.org/) (React)
* **Runtime & Package Manager:** [Bun](https://bun.sh/)
* **Language:** TypeScript
* **Styling:** (Tailwind CSS, DaisyUI)
* **State Management:** (Zustand)
---
## Prerequisites
Ensure you have **Bun** installed on your system.
Install Bun (macOS, WSL, Linux):
```bash
curl -fsSL [https://bun.sh/install](https://bun.sh/install) | bash
```
## Development
```bash
bun install
```
```bash
bun run dev
```
```bash
bun run build
bun run start
```

1451
bun.lock Normal file

File diff suppressed because it is too large Load Diff

1
data/as.cn.json Normal file

File diff suppressed because one or more lines are too long

1
data/as.en.json Normal file

File diff suppressed because one or more lines are too long

1
data/as.jp.json Normal file

File diff suppressed because one or more lines are too long

1
data/as.kr.json Normal file

File diff suppressed because one or more lines are too long

1
data/characters.cn.json Normal file

File diff suppressed because one or more lines are too long

1
data/characters.en.json Normal file

File diff suppressed because one or more lines are too long

1
data/characters.jp.json Normal file

File diff suppressed because one or more lines are too long

1
data/characters.kr.json Normal file

File diff suppressed because one or more lines are too long

339370
data/config_maze.json Normal file

File diff suppressed because it is too large Load Diff

3352
data/lightcone_bonus.json Normal file

File diff suppressed because it is too large Load Diff

1
data/lightcones.cn.json Normal file

File diff suppressed because one or more lines are too long

1
data/lightcones.en.json Normal file

File diff suppressed because one or more lines are too long

1
data/lightcones.jp.json Normal file

File diff suppressed because one or more lines are too long

1
data/lightcones.kr.json Normal file

File diff suppressed because one or more lines are too long

762
data/main_affixes.json Normal file
View File

@@ -0,0 +1,762 @@
{
"21": {
"1": {
"property": "HPDelta",
"base": 45.15840148925781,
"step": 15.805439949035645,
"step_num": null
}
},
"22": {
"1": {
"property": "AttackDelta",
"base": 22.579200744628903,
"step": 7.902719974517822,
"step_num": null
}
},
"23": {
"1": {
"property": "HPAddedRatio",
"base": 0.027648000046610832,
"step": 0.009677000343799593,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.027648000046610832,
"step": 0.009677000343799593,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.03456000238656998,
"step": 0.012096000835299492,
"step_num": null
},
"4": {
"property": "CriticalChanceBase",
"base": 0.020736001431941983,
"step": 0.00725799985229969,
"step_num": null
},
"5": {
"property": "CriticalDamageBase",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"6": {
"property": "HealRatioBase",
"base": 0.02211800031363964,
"step": 0.0077410005033016205,
"step_num": null
},
"7": {
"property": "StatusProbabilityBase",
"base": 0.027648000046610832,
"step": 0.009677000343799593,
"step_num": null
}
},
"24": {
"1": {
"property": "HPAddedRatio",
"base": 0.027648000046610832,
"step": 0.009677000343799593,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.027648000046610832,
"step": 0.009677000343799593,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.03456000238656998,
"step": 0.012096000835299492,
"step_num": null
},
"4": {
"property": "SpeedDelta",
"base": 1.6128000020980835,
"step": 1.0,
"step_num": null
}
},
"25": {
"1": {
"property": "HPAddedRatio",
"base": 0.027648000046610832,
"step": 0.009677000343799593,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.027648000046610832,
"step": 0.009677000343799593,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.03456000238656998,
"step": 0.012096000835299492,
"step_num": null
},
"4": {
"property": "PhysicalAddedRatio",
"base": 0.024883000180125237,
"step": 0.008709000423550606,
"step_num": null
},
"5": {
"property": "FireAddedRatio",
"base": 0.024883000180125237,
"step": 0.008709000423550606,
"step_num": null
},
"6": {
"property": "IceAddedRatio",
"base": 0.024883000180125237,
"step": 0.008709000423550606,
"step_num": null
},
"7": {
"property": "ThunderAddedRatio",
"base": 0.024883000180125237,
"step": 0.008709000423550606,
"step_num": null
},
"8": {
"property": "WindAddedRatio",
"base": 0.024883000180125237,
"step": 0.008709000423550606,
"step_num": null
},
"9": {
"property": "QuantumAddedRatio",
"base": 0.024883000180125237,
"step": 0.008709000423550606,
"step_num": null
},
"10": {
"property": "ImaginaryAddedRatio",
"base": 0.024883000180125237,
"step": 0.008709000423550606,
"step_num": null
}
},
"26": {
"1": {
"property": "BreakDamageAddedRatioBase",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"2": {
"property": "SPRatioBase",
"base": 0.012442000210285189,
"step": 0.004355000331997871,
"step_num": null
},
"3": {
"property": "HPAddedRatio",
"base": 0.027648000046610832,
"step": 0.009677000343799593,
"step_num": null
},
"4": {
"property": "AttackAddedRatio",
"base": 0.027648000046610832,
"step": 0.009677000343799593,
"step_num": null
},
"5": {
"property": "DefenceAddedRatio",
"base": 0.03456000238656998,
"step": 0.012096000835299492,
"step_num": null
}
},
"31": {
"1": {
"property": "HPDelta",
"base": 67.73760223388672,
"step": 23.708160400390625,
"step_num": null
}
},
"32": {
"1": {
"property": "AttackDelta",
"base": 33.86880111694336,
"step": 11.854080200195312,
"step_num": null
}
},
"33": {
"1": {
"property": "HPAddedRatio",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.05183999985456467,
"step": 0.018144000321626663,
"step_num": null
},
"4": {
"property": "CriticalChanceBase",
"base": 0.03110400028526783,
"step": 0.010886001400649548,
"step_num": null
},
"5": {
"property": "CriticalDamageBase",
"base": 0.06220800057053566,
"step": 0.021773001179099083,
"step_num": null
},
"6": {
"property": "HealRatioBase",
"base": 0.03317800164222717,
"step": 0.011611999943852425,
"step_num": null
},
"7": {
"property": "StatusProbabilityBase",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
}
},
"34": {
"1": {
"property": "HPAddedRatio",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.05183999985456467,
"step": 0.018144000321626663,
"step_num": null
},
"4": {
"property": "SpeedDelta",
"base": 2.4191999435424805,
"step": 1.0,
"step_num": null
}
},
"35": {
"1": {
"property": "HPAddedRatio",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.05183999985456467,
"step": 0.018144000321626663,
"step_num": null
},
"4": {
"property": "PhysicalAddedRatio",
"base": 0.037324998527765274,
"step": 0.013064000755548475,
"step_num": null
},
"5": {
"property": "FireAddedRatio",
"base": 0.037324998527765274,
"step": 0.013064000755548475,
"step_num": null
},
"6": {
"property": "IceAddedRatio",
"base": 0.037324998527765274,
"step": 0.013064000755548475,
"step_num": null
},
"7": {
"property": "ThunderAddedRatio",
"base": 0.037324998527765274,
"step": 0.013064000755548475,
"step_num": null
},
"8": {
"property": "WindAddedRatio",
"base": 0.037324998527765274,
"step": 0.013064000755548475,
"step_num": null
},
"9": {
"property": "QuantumAddedRatio",
"base": 0.037324998527765274,
"step": 0.013064000755548475,
"step_num": null
},
"10": {
"property": "ImaginaryAddedRatio",
"base": 0.037324998527765274,
"step": 0.013064000755548475,
"step_num": null
}
},
"36": {
"1": {
"property": "BreakDamageAddedRatioBase",
"base": 0.06220800057053566,
"step": 0.021773001179099083,
"step_num": null
},
"2": {
"property": "SPRatioBase",
"base": 0.018662000074982643,
"step": 0.006532000377774239,
"step_num": null
},
"3": {
"property": "HPAddedRatio",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"4": {
"property": "AttackAddedRatio",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"5": {
"property": "DefenceAddedRatio",
"base": 0.05183999985456467,
"step": 0.018144000321626663,
"step_num": null
}
},
"41": {
"1": {
"property": "HPDelta",
"base": 90.31680297851562,
"step": 31.61087989807129,
"step_num": null
}
},
"42": {
"1": {
"property": "AttackDelta",
"base": 45.15840148925781,
"step": 15.805439949035645,
"step_num": null
}
},
"43": {
"1": {
"property": "HPAddedRatio",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"4": {
"property": "CriticalChanceBase",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
},
"5": {
"property": "CriticalDamageBase",
"base": 0.08294399827718735,
"step": 0.029029998928308487,
"step_num": null
},
"6": {
"property": "HealRatioBase",
"base": 0.04423699900507927,
"step": 0.015483000315725803,
"step_num": null
},
"7": {
"property": "StatusProbabilityBase",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
}
},
"44": {
"1": {
"property": "HPAddedRatio",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"4": {
"property": "SpeedDelta",
"base": 3.225600004196167,
"step": 1.100000023841858,
"step_num": null
}
},
"45": {
"1": {
"property": "HPAddedRatio",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"4": {
"property": "PhysicalAddedRatio",
"base": 0.04976600036025047,
"step": 0.01741800084710121,
"step_num": null
},
"5": {
"property": "FireAddedRatio",
"base": 0.04976600036025047,
"step": 0.01741800084710121,
"step_num": null
},
"6": {
"property": "IceAddedRatio",
"base": 0.04976600036025047,
"step": 0.01741800084710121,
"step_num": null
},
"7": {
"property": "ThunderAddedRatio",
"base": 0.04976600036025047,
"step": 0.01741800084710121,
"step_num": null
},
"8": {
"property": "WindAddedRatio",
"base": 0.04976600036025047,
"step": 0.01741800084710121,
"step_num": null
},
"9": {
"property": "QuantumAddedRatio",
"base": 0.04976600036025047,
"step": 0.01741800084710121,
"step_num": null
},
"10": {
"property": "ImaginaryAddedRatio",
"base": 0.04976600036025047,
"step": 0.01741800084710121,
"step_num": null
}
},
"46": {
"1": {
"property": "BreakDamageAddedRatioBase",
"base": 0.08294399827718735,
"step": 0.029029998928308487,
"step_num": null
},
"2": {
"property": "SPRatioBase",
"base": 0.024883000180125237,
"step": 0.008709000423550606,
"step_num": null
},
"3": {
"property": "HPAddedRatio",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
},
"4": {
"property": "AttackAddedRatio",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
},
"5": {
"property": "DefenceAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
}
},
"51": {
"1": {
"property": "HPDelta",
"base": 112.89600372314452,
"step": 39.51359939575195,
"step_num": null
}
},
"52": {
"1": {
"property": "AttackDelta",
"base": 56.448001861572266,
"step": 19.756799697875977,
"step_num": null
}
},
"53": {
"1": {
"property": "HPAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.08640000224113464,
"step": 0.030240001156926155,
"step_num": null
},
"4": {
"property": "CriticalChanceBase",
"base": 0.05183999985456467,
"step": 0.018144000321626663,
"step_num": null
},
"5": {
"property": "CriticalDamageBase",
"base": 0.10367999970912932,
"step": 0.036288000643253326,
"step_num": null
},
"6": {
"property": "HealRatioBase",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
},
"7": {
"property": "StatusProbabilityBase",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
}
},
"54": {
"1": {
"property": "HPAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.08640000224113464,
"step": 0.030240001156926155,
"step_num": null
},
"4": {
"property": "SpeedDelta",
"base": 4.0320000648498535,
"step": 1.399999976158142,
"step_num": null
}
},
"55": {
"1": {
"property": "HPAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"2": {
"property": "AttackAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"3": {
"property": "DefenceAddedRatio",
"base": 0.08640000224113464,
"step": 0.030240001156926155,
"step_num": null
},
"4": {
"property": "PhysicalAddedRatio",
"base": 0.06220800057053566,
"step": 0.021773001179099083,
"step_num": null
},
"5": {
"property": "FireAddedRatio",
"base": 0.06220800057053566,
"step": 0.021773001179099083,
"step_num": null
},
"6": {
"property": "IceAddedRatio",
"base": 0.06220800057053566,
"step": 0.021773001179099083,
"step_num": null
},
"7": {
"property": "ThunderAddedRatio",
"base": 0.06220800057053566,
"step": 0.021773001179099083,
"step_num": null
},
"8": {
"property": "WindAddedRatio",
"base": 0.06220800057053566,
"step": 0.021773001179099083,
"step_num": null
},
"9": {
"property": "QuantumAddedRatio",
"base": 0.06220800057053566,
"step": 0.021773001179099083,
"step_num": null
},
"10": {
"property": "ImaginaryAddedRatio",
"base": 0.06220800057053566,
"step": 0.021773001179099083,
"step_num": null
}
},
"56": {
"1": {
"property": "BreakDamageAddedRatioBase",
"base": 0.10367999970912932,
"step": 0.036288000643253326,
"step_num": null
},
"2": {
"property": "SPRatioBase",
"base": 0.03110400028526783,
"step": 0.010886001400649548,
"step_num": null
},
"3": {
"property": "HPAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"4": {
"property": "AttackAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
},
"5": {
"property": "DefenceAddedRatio",
"base": 0.08640000224113464,
"step": 0.030240001156926155,
"step_num": null
}
},
"433": {
"1": {
"property": "DefenceAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
}
},
"434": {
"1": {
"property": "CriticalChanceBase",
"base": 0.041471999138593674,
"step": 0.014515000395476818,
"step_num": null
}
},
"436": {
"1": {
"property": "HealRatioBase",
"base": 0.04423699900507927,
"step": 0.015483000315725803,
"step_num": null
}
},
"441": {
"1": {
"property": "HPAddedRatio",
"base": 0.055296000093221664,
"step": 0.019354000687599186,
"step_num": null
}
},
"443": {
"1": {
"property": "DefenceAddedRatio",
"base": 0.06911999732255936,
"step": 0.024191999807953835,
"step_num": null
}
}
}

1
data/moc.cn.json Normal file

File diff suppressed because one or more lines are too long

1
data/moc.en.json Normal file

File diff suppressed because one or more lines are too long

1
data/moc.jp.json Normal file

File diff suppressed because one or more lines are too long

1
data/moc.kr.json Normal file

File diff suppressed because one or more lines are too long

1
data/monster.cn.json Normal file

File diff suppressed because one or more lines are too long

1
data/monster.en.json Normal file

File diff suppressed because one or more lines are too long

1
data/monster.jp.json Normal file

File diff suppressed because one or more lines are too long

1
data/monster.kr.json Normal file

File diff suppressed because one or more lines are too long

1
data/peak.cn.json Normal file

File diff suppressed because one or more lines are too long

1
data/peak.en.json Normal file

File diff suppressed because one or more lines are too long

1
data/peak.jp.json Normal file

File diff suppressed because one or more lines are too long

1
data/peak.kr.json Normal file

File diff suppressed because one or more lines are too long

1
data/pf.cn.json Normal file

File diff suppressed because one or more lines are too long

1
data/pf.en.json Normal file

File diff suppressed because one or more lines are too long

1
data/pf.jp.json Normal file

File diff suppressed because one or more lines are too long

1
data/pf.kr.json Normal file

File diff suppressed because one or more lines are too long

674
data/rank_icon.json Normal file
View File

@@ -0,0 +1,674 @@
{
"1001": [
"https://homdgcat.wiki/images/skillicons/avatar/1001/SkillIcon_1001_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1001/SkillIcon_1001_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1001/SkillIcon_1001_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1001/SkillIcon_1001_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1001/SkillIcon_1001_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1001/SkillIcon_1001_Rank6.png"
],
"1002": [
"https://homdgcat.wiki/images/skillicons/avatar/1002/SkillIcon_1002_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1002/SkillIcon_1002_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1002/SkillIcon_1002_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1002/SkillIcon_1002_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1002/SkillIcon_1002_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1002/SkillIcon_1002_Rank6.png"
],
"1003": [
"https://homdgcat.wiki/images/skillicons/avatar/1003/SkillIcon_1003_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1003/SkillIcon_1003_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1003/SkillIcon_1003_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1003/SkillIcon_1003_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1003/SkillIcon_1003_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1003/SkillIcon_1003_Rank6.png"
],
"1004": [
"https://homdgcat.wiki/images/skillicons/avatar/1004/SkillIcon_1004_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1004/SkillIcon_1004_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1004/SkillIcon_1004_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1004/SkillIcon_1004_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1004/SkillIcon_1004_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1004/SkillIcon_1004_Rank6.png"
],
"1005": [
"https://homdgcat.wiki/images/skillicons/avatar/1005/SkillIcon_1005_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1005/SkillIcon_1005_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1005/SkillIcon_1005_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1005/SkillIcon_1005_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1005/SkillIcon_1005_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1005/SkillIcon_1005_Rank6.png"
],
"1006": [
"https://homdgcat.wiki/images/skillicons/avatar/1006/SkillIcon_1006_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1006/SkillIcon_1006_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1006/SkillIcon_1006_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1006/SkillIcon_1006_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1006/SkillIcon_1006_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1006/SkillIcon_1006_Rank6.png"
],
"1008": [
"https://homdgcat.wiki/images/skillicons/avatar/1008/SkillIcon_1008_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1008/SkillIcon_1008_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1008/SkillIcon_1008_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1008/SkillIcon_1008_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1008/SkillIcon_1008_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1008/SkillIcon_1008_Rank6.png"
],
"1009": [
"https://homdgcat.wiki/images/skillicons/avatar/1009/SkillIcon_1009_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1009/SkillIcon_1009_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1009/SkillIcon_1009_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1009/SkillIcon_1009_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1009/SkillIcon_1009_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1009/SkillIcon_1009_Rank6.png"
],
"1013": [
"https://homdgcat.wiki/images/skillicons/avatar/1013/SkillIcon_1013_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1013/SkillIcon_1013_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1013/SkillIcon_1013_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1013/SkillIcon_1013_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1013/SkillIcon_1013_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1013/SkillIcon_1013_Rank6.png"
],
"1014": [
"https://homdgcat.wiki/images/skillicons/avatar/1014/SkillIcon_1014_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1014/SkillIcon_1014_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1014/SkillIcon_1014_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1014/SkillIcon_1014_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1014/SkillIcon_1014_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1014/SkillIcon_1014_Rank6.png"
],
"1015": [
"https://homdgcat.wiki/images/skillicons/avatar/1015/SkillIcon_1015_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1015/SkillIcon_1015_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1015/SkillIcon_1015_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1015/SkillIcon_1015_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1015/SkillIcon_1015_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1015/SkillIcon_1015_Rank6.png"
],
"1101": [
"https://homdgcat.wiki/images/skillicons/avatar/1101/SkillIcon_1101_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1101/SkillIcon_1101_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1101/SkillIcon_1101_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1101/SkillIcon_1101_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1101/SkillIcon_1101_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1101/SkillIcon_1101_Rank6.png"
],
"1102": [
"https://homdgcat.wiki/images/skillicons/avatar/1102/SkillIcon_1102_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1102/SkillIcon_1102_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1102/SkillIcon_1102_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1102/SkillIcon_1102_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1102/SkillIcon_1102_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1102/SkillIcon_1102_Rank6.png"
],
"1103": [
"https://homdgcat.wiki/images/skillicons/avatar/1103/SkillIcon_1103_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1103/SkillIcon_1103_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1103/SkillIcon_1103_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1103/SkillIcon_1103_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1103/SkillIcon_1103_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1103/SkillIcon_1103_Rank6.png"
],
"1104": [
"https://homdgcat.wiki/images/skillicons/avatar/1104/SkillIcon_1104_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1104/SkillIcon_1104_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1104/SkillIcon_1104_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1104/SkillIcon_1104_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1104/SkillIcon_1104_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1104/SkillIcon_1104_Rank6.png"
],
"1105": [
"https://homdgcat.wiki/images/skillicons/avatar/1105/SkillIcon_1105_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1105/SkillIcon_1105_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1105/SkillIcon_1105_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1105/SkillIcon_1105_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1105/SkillIcon_1105_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1105/SkillIcon_1105_Rank6.png"
],
"1106": [
"https://homdgcat.wiki/images/skillicons/avatar/1106/SkillIcon_1106_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1106/SkillIcon_1106_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1106/SkillIcon_1106_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1106/SkillIcon_1106_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1106/SkillIcon_1106_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1106/SkillIcon_1106_Rank6.png"
],
"1107": [
"https://homdgcat.wiki/images/skillicons/avatar/1107/SkillIcon_1107_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1107/SkillIcon_1107_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1107/SkillIcon_1107_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1107/SkillIcon_1107_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1107/SkillIcon_1107_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1107/SkillIcon_1107_Rank6.png"
],
"1108": [
"https://homdgcat.wiki/images/skillicons/avatar/1108/SkillIcon_1108_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1108/SkillIcon_1108_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1108/SkillIcon_1108_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1108/SkillIcon_1108_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1108/SkillIcon_1108_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1108/SkillIcon_1108_Rank6.png"
],
"1109": [
"https://homdgcat.wiki/images/skillicons/avatar/1109/SkillIcon_1109_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1109/SkillIcon_1109_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1109/SkillIcon_1109_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1109/SkillIcon_1109_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1109/SkillIcon_1109_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1109/SkillIcon_1109_Rank6.png"
],
"1110": [
"https://homdgcat.wiki/images/skillicons/avatar/1110/SkillIcon_1110_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1110/SkillIcon_1110_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1110/SkillIcon_1110_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1110/SkillIcon_1110_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1110/SkillIcon_1110_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1110/SkillIcon_1110_Rank6.png"
],
"1111": [
"https://homdgcat.wiki/images/skillicons/avatar/1111/SkillIcon_1111_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1111/SkillIcon_1111_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1111/SkillIcon_1111_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1111/SkillIcon_1111_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1111/SkillIcon_1111_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1111/SkillIcon_1111_Rank6.png"
],
"1112": [
"https://homdgcat.wiki/images/skillicons/avatar/1112/SkillIcon_1112_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1112/SkillIcon_1112_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1112/SkillIcon_1112_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1112/SkillIcon_1112_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1112/SkillIcon_1112_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1112/SkillIcon_1112_Rank6.png"
],
"1201": [
"https://homdgcat.wiki/images/skillicons/avatar/1201/SkillIcon_1201_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1201/SkillIcon_1201_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1201/SkillIcon_1201_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1201/SkillIcon_1201_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1201/SkillIcon_1201_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1201/SkillIcon_1201_Rank6.png"
],
"1202": [
"https://homdgcat.wiki/images/skillicons/avatar/1202/SkillIcon_1202_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1202/SkillIcon_1202_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1202/SkillIcon_1202_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1202/SkillIcon_1202_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1202/SkillIcon_1202_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1202/SkillIcon_1202_Rank6.png"
],
"1203": [
"https://homdgcat.wiki/images/skillicons/avatar/1203/SkillIcon_1203_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1203/SkillIcon_1203_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1203/SkillIcon_1203_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1203/SkillIcon_1203_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1203/SkillIcon_1203_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1203/SkillIcon_1203_Rank6.png"
],
"1204": [
"https://homdgcat.wiki/images/skillicons/avatar/1204/SkillIcon_1204_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1204/SkillIcon_1204_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1204/SkillIcon_1204_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1204/SkillIcon_1204_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1204/SkillIcon_1204_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1204/SkillIcon_1204_Rank6.png"
],
"1205": [
"https://homdgcat.wiki/images/skillicons/avatar/1205/SkillIcon_1205_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1205/SkillIcon_1205_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1205/SkillIcon_1205_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1205/SkillIcon_1205_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1205/SkillIcon_1205_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1205/SkillIcon_1205_Rank6.png"
],
"1206": [
"https://homdgcat.wiki/images/skillicons/avatar/1206/SkillIcon_1206_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1206/SkillIcon_1206_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1206/SkillIcon_1206_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1206/SkillIcon_1206_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1206/SkillIcon_1206_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1206/SkillIcon_1206_Rank6.png"
],
"1207": [
"https://homdgcat.wiki/images/skillicons/avatar/1207/SkillIcon_1207_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1207/SkillIcon_1207_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1207/SkillIcon_1207_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1207/SkillIcon_1207_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1207/SkillIcon_1207_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1207/SkillIcon_1207_Rank6.png"
],
"1208": [
"https://homdgcat.wiki/images/skillicons/avatar/1208/SkillIcon_1208_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1208/SkillIcon_1208_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1208/SkillIcon_1208_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1208/SkillIcon_1208_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1208/SkillIcon_1208_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1208/SkillIcon_1208_Rank6.png"
],
"1209": [
"https://homdgcat.wiki/images/skillicons/avatar/1209/SkillIcon_1209_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1209/SkillIcon_1209_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1209/SkillIcon_1209_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1209/SkillIcon_1209_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1209/SkillIcon_1209_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1209/SkillIcon_1209_Rank6.png"
],
"1210": [
"https://homdgcat.wiki/images/skillicons/avatar/1210/SkillIcon_1210_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1210/SkillIcon_1210_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1210/SkillIcon_1210_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1210/SkillIcon_1210_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1210/SkillIcon_1210_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1210/SkillIcon_1210_Rank6.png"
],
"1211": [
"https://homdgcat.wiki/images/skillicons/avatar/1211/SkillIcon_1211_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1211/SkillIcon_1211_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1211/SkillIcon_1211_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1211/SkillIcon_1211_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1211/SkillIcon_1211_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1211/SkillIcon_1211_Rank6.png"
],
"1212": [
"https://homdgcat.wiki/images/skillicons/avatar/1212/SkillIcon_1212_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1212/SkillIcon_1212_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1212/SkillIcon_1212_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1212/SkillIcon_1212_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1212/SkillIcon_1212_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1212/SkillIcon_1212_Rank6.png"
],
"1213": [
"https://homdgcat.wiki/images/skillicons/avatar/1213/SkillIcon_1213_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1213/SkillIcon_1213_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1213/SkillIcon_1213_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1213/SkillIcon_1213_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1213/SkillIcon_1213_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1213/SkillIcon_1213_Rank6.png"
],
"1214": [
"https://homdgcat.wiki/images/skillicons/avatar/1214/SkillIcon_1214_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1214/SkillIcon_1214_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1214/SkillIcon_1214_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1214/SkillIcon_1214_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1214/SkillIcon_1214_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1214/SkillIcon_1214_Rank6.png"
],
"1215": [
"https://homdgcat.wiki/images/skillicons/avatar/1215/SkillIcon_1215_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1215/SkillIcon_1215_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1215/SkillIcon_1215_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1215/SkillIcon_1215_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1215/SkillIcon_1215_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1215/SkillIcon_1215_Rank6.png"
],
"1217": [
"https://homdgcat.wiki/images/skillicons/avatar/1217/SkillIcon_1217_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1217/SkillIcon_1217_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1217/SkillIcon_1217_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1217/SkillIcon_1217_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1217/SkillIcon_1217_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1217/SkillIcon_1217_Rank6.png"
],
"1218": [
"https://homdgcat.wiki/images/skillicons/avatar/1218/SkillIcon_1218_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1218/SkillIcon_1218_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1218/SkillIcon_1218_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1218/SkillIcon_1218_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1218/SkillIcon_1218_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1218/SkillIcon_1218_Rank6.png"
],
"1220": [
"https://homdgcat.wiki/images/skillicons/avatar/1220/SkillIcon_1220_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1220/SkillIcon_1220_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1220/SkillIcon_1220_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1220/SkillIcon_1220_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1220/SkillIcon_1220_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1220/SkillIcon_1220_Rank6.png"
],
"1221": [
"https://homdgcat.wiki/images/skillicons/avatar/1221/SkillIcon_1221_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1221/SkillIcon_1221_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1221/SkillIcon_1221_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1221/SkillIcon_1221_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1221/SkillIcon_1221_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1221/SkillIcon_1221_Rank6.png"
],
"1222": [
"https://homdgcat.wiki/images/skillicons/avatar/1222/SkillIcon_1222_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1222/SkillIcon_1222_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1222/SkillIcon_1222_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1222/SkillIcon_1222_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1222/SkillIcon_1222_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1222/SkillIcon_1222_Rank6.png"
],
"1223": [
"https://homdgcat.wiki/images/skillicons/avatar/1223/SkillIcon_1223_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1223/SkillIcon_1223_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1223/SkillIcon_1223_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1223/SkillIcon_1223_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1223/SkillIcon_1223_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1223/SkillIcon_1223_Rank6.png"
],
"1224": [
"https://homdgcat.wiki/images/skillicons/avatar/1224/SkillIcon_1224_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1224/SkillIcon_1224_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1224/SkillIcon_1224_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1224/SkillIcon_1224_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1224/SkillIcon_1224_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1224/SkillIcon_1224_Rank6.png"
],
"1225": [
"https://homdgcat.wiki/images/skillicons/avatar/1225/SkillIcon_1225_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1225/SkillIcon_1225_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1225/SkillIcon_1225_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1225/SkillIcon_1225_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1225/SkillIcon_1225_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1225/SkillIcon_1225_Rank6.png"
],
"1301": [
"https://homdgcat.wiki/images/skillicons/avatar/1301/SkillIcon_1301_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1301/SkillIcon_1301_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1301/SkillIcon_1301_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1301/SkillIcon_1301_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1301/SkillIcon_1301_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1301/SkillIcon_1301_Rank6.png"
],
"1302": [
"https://homdgcat.wiki/images/skillicons/avatar/1302/SkillIcon_1302_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1302/SkillIcon_1302_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1302/SkillIcon_1302_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1302/SkillIcon_1302_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1302/SkillIcon_1302_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1302/SkillIcon_1302_Rank6.png"
],
"1303": [
"https://homdgcat.wiki/images/skillicons/avatar/1303/SkillIcon_1303_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1303/SkillIcon_1303_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1303/SkillIcon_1303_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1303/SkillIcon_1303_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1303/SkillIcon_1303_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1303/SkillIcon_1303_Rank6.png"
],
"1304": [
"https://homdgcat.wiki/images/skillicons/avatar/1304/SkillIcon_1304_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1304/SkillIcon_1304_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1304/SkillIcon_1304_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1304/SkillIcon_1304_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1304/SkillIcon_1304_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1304/SkillIcon_1304_Rank6.png"
],
"1305": [
"https://homdgcat.wiki/images/skillicons/avatar/1305/SkillIcon_1305_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1305/SkillIcon_1305_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1305/SkillIcon_1305_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1305/SkillIcon_1305_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1305/SkillIcon_1305_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1305/SkillIcon_1305_Rank6.png"
],
"1306": [
"https://homdgcat.wiki/images/skillicons/avatar/1306/SkillIcon_1306_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1306/SkillIcon_1306_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1306/SkillIcon_1306_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1306/SkillIcon_1306_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1306/SkillIcon_1306_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1306/SkillIcon_1306_Rank6.png"
],
"1307": [
"https://homdgcat.wiki/images/skillicons/avatar/1307/SkillIcon_1307_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1307/SkillIcon_1307_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1307/SkillIcon_1307_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1307/SkillIcon_1307_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1307/SkillIcon_1307_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1307/SkillIcon_1307_Rank6.png"
],
"1308": [
"https://homdgcat.wiki/images/skillicons/avatar/1308/SkillIcon_1308_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1308/SkillIcon_1308_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1308/SkillIcon_1308_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1308/SkillIcon_1308_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1308/SkillIcon_1308_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1308/SkillIcon_1308_Rank6.png"
],
"1309": [
"https://homdgcat.wiki/images/skillicons/avatar/1309/SkillIcon_1309_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1309/SkillIcon_1309_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1309/SkillIcon_1309_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1309/SkillIcon_1309_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1309/SkillIcon_1309_Normal.png",
"https://homdgcat.wiki/images/skillicons/avatar/1309/SkillIcon_1309_Rank6.png"
],
"1310": [
"https://homdgcat.wiki/images/skillicons/avatar/1310/SkillIcon_1310_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1310/SkillIcon_1310_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1310/SkillIcon_1310_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1310/SkillIcon_1310_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1310/SkillIcon_1310_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1310/SkillIcon_1310_Rank6.png"
],
"1312": [
"https://homdgcat.wiki/images/skillicons/avatar/1312/SkillIcon_1312_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1312/SkillIcon_1312_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1312/SkillIcon_1312_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1312/SkillIcon_1312_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1312/SkillIcon_1312_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1312/SkillIcon_1312_Rank6.png"
],
"1313": [
"https://homdgcat.wiki/images/skillicons/avatar/1313/SkillIcon_1313_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1313/SkillIcon_1313_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1313/SkillIcon_1313_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1313/SkillIcon_1313_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1313/SkillIcon_1313_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1313/SkillIcon_1313_Rank6.png"
],
"1314": [
"https://homdgcat.wiki/images/skillicons/avatar/1314/SkillIcon_1314_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1314/SkillIcon_1314_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1314/SkillIcon_1314_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1314/SkillIcon_1314_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1314/SkillIcon_1314_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1314/SkillIcon_1314_Rank6.png"
],
"1315": [
"https://homdgcat.wiki/images/skillicons/avatar/1315/SkillIcon_1315_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1315/SkillIcon_1315_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1315/SkillIcon_1315_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1315/SkillIcon_1315_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1315/SkillIcon_1315_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1315/SkillIcon_1315_Rank6.png"
],
"1317": [
"https://homdgcat.wiki/images/skillicons/avatar/1317/SkillIcon_1317_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1317/SkillIcon_1317_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1317/SkillIcon_1317_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1317/SkillIcon_1317_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1317/SkillIcon_1317_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1317/SkillIcon_1317_Rank6.png"
],
"1401": [
"https://homdgcat.wiki/images/skillicons/avatar/1401/SkillIcon_1401_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1401/SkillIcon_1401_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1401/SkillIcon_1401_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1401/SkillIcon_1401_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1401/SkillIcon_1401_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1401/SkillIcon_1401_Rank6.png"
],
"1402": [
"https://homdgcat.wiki/images/skillicons/avatar/1402/SkillIcon_1402_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1402/SkillIcon_1402_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1402/SkillIcon_1402_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1402/SkillIcon_1402_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1402/SkillIcon_1402_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1402/SkillIcon_1402_Rank6.png"
],
"1403": [
"https://homdgcat.wiki/images/skillicons/avatar/1403/SkillIcon_1403_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1403/SkillIcon_1403_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1403/SkillIcon_1403_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1403/SkillIcon_1403_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1403/SkillIcon_1403_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1403/SkillIcon_1403_Rank6.png"
],
"1404": [
"https://homdgcat.wiki/images/skillicons/avatar/1404/SkillIcon_1404_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1404/SkillIcon_1404_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1404/SkillIcon_1404_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1404/SkillIcon_1404_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1404/SkillIcon_1404_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1404/SkillIcon_1404_Rank6.png"
],
"1405": [
"https://homdgcat.wiki/images/skillicons/avatar/1405/SkillIcon_1405_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1405/SkillIcon_1405_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1405/SkillIcon_1405_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1405/SkillIcon_1405_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1405/SkillIcon_1405_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1405/SkillIcon_1405_Rank6.png"
],
"1406": [
"https://homdgcat.wiki/images/skillicons/avatar/1406/SkillIcon_1406_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1406/SkillIcon_1406_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1406/SkillIcon_1406_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1406/SkillIcon_1406_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1406/SkillIcon_1406_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1406/SkillIcon_1406_Rank6.png"
],
"1407": [
"https://homdgcat.wiki/images/skillicons/avatar/1407/SkillIcon_1407_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1407/SkillIcon_1407_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1407/SkillIcon_1407_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1407/SkillIcon_1407_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1407/SkillIcon_1407_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1407/SkillIcon_1407_Rank6.png"
],
"1408": [
"https://homdgcat.wiki/images/skillicons/avatar/1408/SkillIcon_1408_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1408/SkillIcon_1408_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1408/SkillIcon_1408_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1408/SkillIcon_1408_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1408/SkillIcon_1408_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1408/SkillIcon_1408_Rank6.png"
],
"1409": [
"https://homdgcat.wiki/images/skillicons/avatar/1409/SkillIcon_1409_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1409/SkillIcon_1409_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1409/SkillIcon_1409_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1409/SkillIcon_1409_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1409/SkillIcon_1409_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1409/SkillIcon_1409_Rank6.png"
],
"1410": [
"https://homdgcat.wiki/images/skillicons/avatar/1410/SkillIcon_1410_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1410/SkillIcon_1410_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1410/SkillIcon_1410_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1410/SkillIcon_1410_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1410/SkillIcon_1410_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1410/SkillIcon_1410_Rank6.png"
],
"1412": [
"https://homdgcat.wiki/images/skillicons/avatar/1412/SkillIcon_1412_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1412/SkillIcon_1412_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1412/SkillIcon_1412_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1412/SkillIcon_1412_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1412/SkillIcon_1412_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1412/SkillIcon_1412_Rank6.png"
],
"8001": [
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_Rank6.png"
],
"8002": [
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/8001/SkillIcon_8001_Rank6.png"
],
"8003": [
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_Rank6.png"
],
"8004": [
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/8003/SkillIcon_8003_Rank6.png"
],
"8005": [
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_Rank6.png"
],
"8006": [
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/8005/SkillIcon_8005_Rank6.png"
],
"8007": [
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_Rank6.png"
],
"8008": [
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/8007/SkillIcon_8007_Rank6.png"
],
"1413": [
"https://homdgcat.wiki/images/skillicons/avatar/1413/SkillIcon_1413_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1413/SkillIcon_1413_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1413/SkillIcon_1413_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1413/SkillIcon_1413_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1413/SkillIcon_1413_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1413/SkillIcon_1413_Rank6.png"
],
"1414": [
"https://homdgcat.wiki/images/skillicons/avatar/1414/SkillIcon_1414_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1414/SkillIcon_1414_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1414/SkillIcon_1414_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1414/SkillIcon_1414_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1414/SkillIcon_1414_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1414/SkillIcon_1414_Rank6.png"
],
"1415": [
"https://homdgcat.wiki/images/skillicons/avatar/1415/SkillIcon_1415_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1415/SkillIcon_1415_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1415/SkillIcon_1415_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1415/SkillIcon_1415_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1415/SkillIcon_1415_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1415/SkillIcon_1415_Rank6.png"
],
"1321": [
"https://homdgcat.wiki/images/skillicons/avatar/1321/SkillIcon_1321_Rank1.png",
"https://homdgcat.wiki/images/skillicons/avatar/1321/SkillIcon_1321_Rank2.png",
"https://homdgcat.wiki/images/skillicons/avatar/1321/SkillIcon_1321_Ultra.png",
"https://homdgcat.wiki/images/skillicons/avatar/1321/SkillIcon_1321_Rank4.png",
"https://homdgcat.wiki/images/skillicons/avatar/1321/SkillIcon_1321_BP.png",
"https://homdgcat.wiki/images/skillicons/avatar/1321/SkillIcon_1321_Rank6.png"
]
}

451
data/relic_bonus.json Normal file
View File

@@ -0,0 +1,451 @@
{
"101": {
"2": [
{
"type": "HealRatioBase",
"value": 0.10000000149011612
}
],
"4": []
},
"102": {
"2": [
{
"type": "AttackAddedRatio",
"value": 0.119999997317791
}
],
"4": [
{
"type": "SpeedAddedRatio",
"value": 0.05999999865889549
}
]
},
"103": {
"2": [
{
"type": "DefenceAddedRatio",
"value": 0.15000000596046448
}
],
"4": []
},
"104": {
"2": [
{
"type": "IceAddedRatio",
"value": 0.10000000149011612
}
],
"4": []
},
"105": {
"2": [
{
"type": "PhysicalAddedRatio",
"value": 0.10000000149011612
}
],
"4": []
},
"106": {
"2": [],
"4": []
},
"107": {
"2": [
{
"type": "FireAddedRatio",
"value": 0.10000000149011612
}
],
"4": []
},
"108": {
"2": [
{
"type": "QuantumAddedRatio",
"value": 0.10000000149011612
}
],
"4": []
},
"109": {
"2": [
{
"type": "ThunderAddedRatio",
"value": 0.10000000149011612
}
],
"4": []
},
"110": {
"2": [
{
"type": "WindAddedRatio",
"value": 0.10000000149011612
}
],
"4": []
},
"111": {
"2": [
{
"type": "BreakDamageAddedRatioBase",
"value": 0.1599999964237213
}
],
"4": [
{
"type": "BreakDamageAddedRatioBase",
"value": 0.1599999964237213
}
]
},
"112": {
"2": [
{
"type": "ImaginaryAddedRatio",
"value": 0.10000000149011612
}
],
"4": []
},
"113": {
"2": [
{
"type": "HPAddedRatio",
"value": 0.119999997317791
}
],
"4": []
},
"114": {
"2": [
{
"type": "SpeedAddedRatio",
"value": 0.05999999865889549
}
],
"4": []
},
"115": {
"2": [],
"4": []
},
"116": {
"2": [
{
"type": "AttackAddedRatio",
"value": 0.119999997317791
}
],
"4": []
},
"117": {
"2": [],
"4": [
{
"type": "CriticalChanceBase",
"value": 0.03999999910593033
}
]
},
"118": {
"2": [
{
"type": "BreakDamageAddedRatioBase",
"value": 0.1599999964237213
}
],
"4": []
},
"119": {
"2": [
{
"type": "BreakDamageAddedRatioBase",
"value": 0.1599999964237213
}
],
"4": []
},
"120": {
"2": [
{
"type": "AttackAddedRatio",
"value": 0.119999997317791
}
],
"4": [
{
"type": "CriticalChanceBase",
"value": 0.05999999865889549
}
]
},
"121": {
"2": [
{
"type": "SpeedAddedRatio",
"value": 0.05999999865889549
}
],
"4": []
},
"122": {
"2": [
{
"type": "CriticalChanceBase",
"value": 0.07999999821186066
}
],
"4": []
},
"123": {
"2": [
{
"type": "AttackAddedRatio",
"value": 0.119999997317791
}
],
"4": []
},
"124": {
"2": [
{
"type": "QuantumAddedRatio",
"value": 0.10000000149011612
}
],
"4": [
{
"type": "SpeedAddedRatio",
"value": -0.07999999821186066
}
]
},
"125": {
"2": [
{
"type": "SpeedAddedRatio",
"value": 0.05999999865889549
}
],
"4": []
},
"126": {
"2": [
{
"type": "CriticalDamageBase",
"value": 0.1599999964237213
}
],
"4": []
},
"127": {
"2": [
{
"type": "CriticalChanceBase",
"value": 0.0800000000745058
}
],
"4": []
},
"128": {
"2": [
{
"type": "CriticalDamageBase",
"value": 0.1599999964237213
}
],
"4": [
{
"type": "CriticalDamageBase",
"value": 0.1599999964237213
}
]
},
"301": {
"2": [
{
"type": "AttackAddedRatio",
"value": 0.119999997317791
}
]
},
"302": {
"2": [
{
"type": "HPAddedRatio",
"value": 0.119999997317791
}
]
},
"303": {
"2": [
{
"type": "StatusProbabilityBase",
"value": 0.10000000149011612
}
]
},
"304": {
"2": [
{
"type": "DefenceAddedRatio",
"value": 0.15000000596046448
}
]
},
"305": {
"2": [
{
"type": "CriticalDamageBase",
"value": 0.1599999964237213
}
]
},
"306": {
"2": [
{
"type": "CriticalChanceBase",
"value": 0.07999999821186066
}
]
},
"307": {
"2": [
{
"type": "BreakDamageAddedRatioBase",
"value": 0.1599999964237213
}
]
},
"308": {
"2": [
{
"type": "SPRatioBase",
"value": 0.05000000074505806
}
]
},
"309": {
"2": [
{
"type": "CriticalChanceBase",
"value": 0.07999999821186066
}
]
},
"310": {
"2": [
{
"type": "StatusResistanceBase",
"value": 0.10000000149011612
}
]
},
"311": {
"2": [
{
"type": "AttackAddedRatio",
"value": 0.119999997317791
}
]
},
"312": {
"2": [
{
"type": "SPRatioBase",
"value": 0.05000000074505806
}
]
},
"313": {
"2": [
{
"type": "CriticalChanceBase",
"value": 0.03999999910593033
}
]
},
"314": {
"2": [
{
"type": "AttackAddedRatio",
"value": 0.119999997317791
}
]
},
"315": {
"2": []
},
"316": {
"2": [
{
"type": "SpeedAddedRatio",
"value": 0.05999999865889549
}
]
},
"317": {
"2": [
{
"type": "SPRatioBase",
"value": 0.05000000074505806
}
]
},
"318": {
"2": [
{
"type": "CriticalDamageBase",
"value": 0.1599999964237213
}
]
},
"319": {
"2": [
{
"type": "HPAddedRatio",
"value": 0.119999997317791
}
]
},
"320": {
"2": [
{
"type": "SpeedAddedRatio",
"value": 0.05999999865889549
}
]
},
"321": {
"2": []
},
"322": {
"2": [
{
"type": "AttackAddedRatio",
"value": 0.119999997317791
}
]
},
"323": {
"2": [
{
"type": "CriticalChanceBase",
"value": 0.07999999821186066
}
]
},
"324": {
"2": [
{
"type": "CriticalDamageBase",
"value": 0.1599999964237213
}
]
}
}

1
data/relics.cn.json Normal file

File diff suppressed because one or more lines are too long

1
data/relics.en.json Normal file

File diff suppressed because one or more lines are too long

1
data/relics.jp.json Normal file

File diff suppressed because one or more lines are too long

1
data/relics.kr.json Normal file

File diff suppressed because one or more lines are too long

298
data/sub_affixes.json Normal file
View File

@@ -0,0 +1,298 @@
{
"2": {
"1": {
"property": "HPDelta",
"base": 13.548015594482422,
"step": 1.6935019493103027,
"step_num": 2
},
"2": {
"property": "AttackDelta",
"base": 6.774007797241211,
"step": 0.8467509746551514,
"step_num": 2
},
"3": {
"property": "DefenceDelta",
"base": 6.774007797241211,
"step": 0.8467509746551514,
"step_num": 2
},
"4": {
"property": "HPAddedRatio",
"base": 0.01382400095462799,
"step": 0.001728000584989786,
"step_num": 2
},
"5": {
"property": "AttackAddedRatio",
"base": 0.01382400095462799,
"step": 0.001728000584989786,
"step_num": 2
},
"6": {
"property": "DefenceAddedRatio",
"base": 0.01728000119328499,
"step": 0.002160000381991267,
"step_num": 2
},
"7": {
"property": "SpeedDelta",
"base": 1.0,
"step": 0.10000000149011612,
"step_num": 2
},
"8": {
"property": "CriticalChanceBase",
"base": 0.010368000715970991,
"step": 0.001296000787988305,
"step_num": 2
},
"9": {
"property": "CriticalDamageBase",
"base": 0.020736001431941983,
"step": 0.0025920008774846792,
"step_num": 2
},
"10": {
"property": "StatusProbabilityBase",
"base": 0.01382400095462799,
"step": 0.001728000584989786,
"step_num": 2
},
"11": {
"property": "StatusResistanceBase",
"base": 0.01382400095462799,
"step": 0.001728000584989786,
"step_num": 2
},
"12": {
"property": "BreakDamageAddedRatioBase",
"base": 0.020736001431941983,
"step": 0.0025920008774846792,
"step_num": 2
}
},
"3": {
"1": {
"property": "HPDelta",
"base": 20.322023391723633,
"step": 2.540252923965454,
"step_num": 2
},
"2": {
"property": "AttackDelta",
"base": 10.161011695861816,
"step": 1.2701259851455688,
"step_num": 2
},
"3": {
"property": "DefenceDelta",
"base": 10.161011695861816,
"step": 1.2701259851455688,
"step_num": 2
},
"4": {
"property": "HPAddedRatio",
"base": 0.020736001431941983,
"step": 0.0025920008774846792,
"step_num": 2
},
"5": {
"property": "AttackAddedRatio",
"base": 0.020736001431941983,
"step": 0.0025920008774846792,
"step_num": 2
},
"6": {
"property": "DefenceAddedRatio",
"base": 0.025919999927282333,
"step": 0.0032400002237409353,
"step_num": 2
},
"7": {
"property": "SpeedDelta",
"base": 1.2000000476837158,
"step": 0.10000000149011612,
"step_num": 2
},
"8": {
"property": "CriticalChanceBase",
"base": 0.015552000142633917,
"step": 0.001944000832736492,
"step_num": 2
},
"9": {
"property": "CriticalDamageBase",
"base": 0.03110400028526783,
"step": 0.003888000966981054,
"step_num": 2
},
"10": {
"property": "StatusProbabilityBase",
"base": 0.020736001431941983,
"step": 0.0025920008774846792,
"step_num": 2
},
"11": {
"property": "StatusResistanceBase",
"base": 0.020736001431941983,
"step": 0.0025920008774846792,
"step_num": 2
},
"12": {
"property": "BreakDamageAddedRatioBase",
"base": 0.03110400028526783,
"step": 0.003888000966981054,
"step_num": 2
}
},
"4": {
"1": {
"property": "HPDelta",
"base": 27.096031188964844,
"step": 3.3870038986206055,
"step_num": 2
},
"2": {
"property": "AttackDelta",
"base": 13.548015594482422,
"step": 1.6935019493103027,
"step_num": 2
},
"3": {
"property": "DefenceDelta",
"base": 13.548015594482422,
"step": 1.6935019493103027,
"step_num": 2
},
"4": {
"property": "HPAddedRatio",
"base": 0.027648000046610832,
"step": 0.0034560004714876413,
"step_num": 2
},
"5": {
"property": "AttackAddedRatio",
"base": 0.027648000046610832,
"step": 0.0034560004714876413,
"step_num": 2
},
"6": {
"property": "DefenceAddedRatio",
"base": 0.03456000238656998,
"step": 0.004320000298321247,
"step_num": 2
},
"7": {
"property": "SpeedDelta",
"base": 1.600000023841858,
"step": 0.20000000298023224,
"step_num": 2
},
"8": {
"property": "CriticalChanceBase",
"base": 0.020736001431941983,
"step": 0.0025920008774846792,
"step_num": 2
},
"9": {
"property": "CriticalDamageBase",
"base": 0.041471999138593674,
"step": 0.0051840003579854965,
"step_num": 2
},
"10": {
"property": "StatusProbabilityBase",
"base": 0.027648000046610832,
"step": 0.0034560004714876413,
"step_num": 2
},
"11": {
"property": "StatusResistanceBase",
"base": 0.027648000046610832,
"step": 0.0034560004714876413,
"step_num": 2
},
"12": {
"property": "BreakDamageAddedRatioBase",
"base": 0.041471999138593674,
"step": 0.0051840003579854965,
"step_num": 2
}
},
"5": {
"1": {
"property": "HPDelta",
"base": 33.87004089355469,
"step": 4.233755111694336,
"step_num": 2
},
"2": {
"property": "AttackDelta",
"base": 16.93501853942871,
"step": 2.1168770790100098,
"step_num": 2
},
"3": {
"property": "DefenceDelta",
"base": 16.93501853942871,
"step": 2.1168770790100098,
"step_num": 2
},
"4": {
"property": "HPAddedRatio",
"base": 0.03456000238656998,
"step": 0.004320000298321247,
"step_num": 2
},
"5": {
"property": "AttackAddedRatio",
"base": 0.03456000238656998,
"step": 0.004320000298321247,
"step_num": 2
},
"6": {
"property": "DefenceAddedRatio",
"base": 0.04320000112056732,
"step": 0.005400000140070915,
"step_num": 2
},
"7": {
"property": "SpeedDelta",
"base": 2.0,
"step": 0.30000001192092896,
"step_num": 2
},
"8": {
"property": "CriticalChanceBase",
"base": 0.025919999927282333,
"step": 0.0032400002237409353,
"step_num": 2
},
"9": {
"property": "CriticalDamageBase",
"base": 0.05183999985456467,
"step": 0.006480000447481871,
"step_num": 2
},
"10": {
"property": "StatusProbabilityBase",
"base": 0.03456000238656998,
"step": 0.004320000298321247,
"step_num": 2
},
"11": {
"property": "StatusResistanceBase",
"base": 0.03456000238656998,
"step": 0.004320000298321247,
"step_num": 2
},
"12": {
"property": "BreakDamageAddedRatioBase",
"base": 0.05183999985456467,
"step": 0.006480000447481871,
"step_num": 2
}
}
}

15
docker-compose.yml Normal file
View File

@@ -0,0 +1,15 @@
services:
srtools:
build:
context: .
dockerfile: Dockerfile
container_name: srtools
restart: unless-stopped
ports:
- "3006:3000"
networks:
- srtools-network
networks:
srtools-network:
driver: bridge

13
eslint.config.mjs Normal file
View File

@@ -0,0 +1,13 @@
import nextCoreWebVitals from "eslint-config-next/core-web-vitals";
import nextTypescript from "eslint-config-next/typescript";
import { dirname } from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const eslintConfig = [...nextCoreWebVitals, ...nextTypescript, {
ignores: ["node_modules/**", ".next/**", "out/**", "build/**", "next-env.d.ts"]
}];
export default eslintConfig;

11
i18n/request.ts Normal file
View File

@@ -0,0 +1,11 @@
import { getRequestConfig } from "next-intl/server";
import { cookies } from "next/headers";
export default getRequestConfig( async () => {
const locale = (await cookies()).get("MYNEXTAPP_LOCALE")?.value || "en";
return {
locale,
messages: (await import(`../messages/${locale}.json`)).default
}
})

260
messages/cn.json Normal file
View File

@@ -0,0 +1,260 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Firefly tools by Kain"
},
"DataPage": {
"skillType": "技能类型",
"skillName": "技能名称",
"character": "角色",
"id": "ID",
"path": "命运",
"rarity": "稀有度",
"element": "元素",
"technique": "秘技",
"talent": "天赋",
"basic": "普通攻击",
"skill": "技能",
"ultimate": "终结技",
"servant": "忆灵",
"damage": "伤害",
"type": "类型",
"warrior": "毁灭",
"knight": "守护",
"mage": "博学",
"priest": "丰饶",
"rogue": "狩猎",
"shaman": "同谐",
"warlock": "虚无",
"memory": "记忆",
"fire": "火",
"ice": "冰",
"imaginary": "虚数",
"physical": "物理",
"quantum": "量子",
"thunder": "雷",
"wind": "风",
"hp": "生命值",
"atk": "攻击",
"speed": "速度",
"critRate": "暴击率",
"critDmg": "暴击伤害",
"breakEffect": "击破伤害",
"effectRes": "效果抗性",
"energyRegenerationRate": "能量恢复速率",
"effectHitRate": "效果命中率",
"outgoingHealingBoost": "治疗增强",
"fireDmgBoost": "火元素伤害增强",
"iceDmgBoost": "冰元素伤害增强",
"imaginaryDmgBoost": "虚数伤害增强",
"physicalDmgBoost": "物理伤害增强",
"quantumDmgBoost": "量子伤害增强",
"thunderDmgBoost": "雷元素伤害增强",
"windDmgBoost": "风元素伤害增强",
"pursued": "附加伤害",
"true damage": "真实伤害",
"follow-up": "后续伤害",
"elemental damage": "击破与超击破伤害",
"dot": "持续伤害",
"qte": "QTE 技能",
"level": "等级",
"relics": "遗器",
"eidolons": "星魂",
"lightcones": "光锥",
"loadData": "加载数据",
"exportData": "导出数据",
"connectSetting": "连接设置",
"connected": "已连接",
"unconnected": "未连接",
"psConnection": "PS 连接",
"connectionType": "连接类型",
"status": "状态",
"connectPs": "连接 PS",
"other": "其他",
"freeSr": "FreeSR",
"database": "数据库",
"enka": "Enka",
"monsterSetting": "怪物设置",
"serverUrl": "服务器 URL",
"privateType": "私有类型",
"local": "本地",
"server": "服务器",
"username": "用户名",
"password": "密码",
"placeholderServerUrl": "输入服务器 URL",
"placeholderUsername": "输入用户名",
"placeholderPassword": "输入密码",
"connectedSuccess": "成功连接 PS",
"connectedFailed": "连接 PS 失败",
"syncSuccess": "已成功与 PS 同步数据",
"syncFailed": "与 PS 同步数据失败",
"sync": "同步",
"importSetting": "导入设置",
"profile": "配置档",
"default": "默认",
"copyProfiles": "复制配置档",
"addNewProfile": "添加新配置档",
"createNewProfile": "创建新配置档",
"editProfile": "编辑配置档",
"placeholderProfileName": "输入配置档名称",
"profileName": "配置档名称",
"create": "创建",
"update": "更新",
"characterInformation": "角色信息",
"skills": "技能",
"showcaseCard": "展示卡",
"comingSoon": "敬请期待",
"characterName": "角色名称",
"placeholderCharacter": "输入角色名称",
"characterSettings": "角色设置",
"levelConfiguration": "等级配置",
"characterLevel": "角色等级",
"max": "最大",
"ultimateEnergy": "终极能量",
"currentEnergy": "当前能量",
"setTo50": "设为50%",
"battleConfiguration": "战斗配置",
"useTechnique": "使用秘术",
"techniqueNote": "启用战前秘术效果",
"enhancement": "强化",
"enhancementLevel": "强化等级",
"origin": "来源",
"enhancedNote": "强化更高可解锁额外技能",
"lightconeEquipment": "光锥装备",
"lightconeSettings": "光锥设置",
"placeholderLevel": "输入等级",
"superimpositionRank": "叠加等级",
"ranksNote": "更高等级提供更强效果",
"changeLightcone": "更换光锥",
"removeLightcone": "移除光锥",
"equipLightcone": "装备光锥",
"noLightconeEquipped": "未装备光锥",
"equipLightconeNote": "装备光锥以增强角色能力",
"filter": "筛选",
"selectedCharacters": "已选角色",
"selectedProfiles": "已选配置档",
"clearAll": "清除全部",
"selectAll": "全选",
"copy": "复制",
"copied": "已复制",
"noAvatarSelected": "未选择角色",
"noAvatarToCopySelected": "未选择要复制的角色",
"pleaseSelectAtLeastOneProfile": "请至少选择一个配置档",
"pleaseEnterUid": "请输入 UID",
"failedToFetchEnkaData": "获取 Enka 数据失败",
"pleaseSelectAtLeastOneCharacter": "请至少选择一个角色",
"noDataToImport": "无可导入数据",
"pleaseSelectAFile": "请选择一个文件",
"fileMustBeAValidJsonFile": "文件必须为有效 JSON",
"importEnkaDataSuccess": "导入 Enka 数据成功",
"importFreeSRDataSuccess": "导入 FreeSR 数据成功",
"importDatabaseSuccess": "导入数据库成功",
"getData": "获取数据",
"import": "导入",
"freeSRImport": "导入 FreeSR",
"onlySupportFreeSRJsonFile": "仅支持 FreeSR JSON 文件",
"pickAFile": "选择文件",
"lightConeSetting": "光锥设置",
"relicMaker": "遗器制作",
"pleaseSelectAllOptions": "请选择所有选项",
"relicSavedSuccessfully": "遗器已成功保存",
"mainSettings": "主设置",
"mainStat": "主属性",
"set": "套装",
"pleaseSelectASet": "请选择一个套装",
"effectBonus": "效果加成",
"totalRoll": "总次数",
"randomizeStats": "随机属性",
"randomizeRolls": "随机次数",
"selectASubStat": "选择副属性",
"selectASet": "选择套装",
"selectAMainStat": "选择主属性",
"save": "保存",
"reset": "重置",
"roll": "滚动",
"step": "步数",
"memoryOfChaos": "混沌之忆",
"pureFiction": "虚构叙事",
"apocalypticShadow": "末日幻影",
"customEnemy": "自定义敌人",
"simulatedUniverse": "模拟宇宙",
"floor": "层数",
"side": "上/下半场",
"wave": "波次",
"stage": "关卡",
"useCycleCount": "使用轮次数?",
"useTurbulenceBuff": "使用紊乱增益?",
"firstHalfEnemies": "上半场敌人",
"secondHalfEnemies": "下半场敌人",
"listEnemies": "敌人列表",
"turbulenceBuff": "紊乱增益",
"noEventSelected": "未选择事件",
"noTurbulenceBuff": "未选择紊乱增益",
"upper": "上半",
"lower": "下半",
"upperToLower": "上半 -> 下半",
"lowerToUpper": "下半 -> 上半",
"selectMOCEvent": "选择 MOC 事件",
"selectPFEvent": "选择 PF 事件",
"selectASEvent": "选择 AS 事件",
"selectCEEvent": "选择 CE 事件",
"selectEvent": "选择事件",
"selectFloor": "选择层数",
"selectSide": "选择上/下半场",
"selectBuff": "选择 buff",
"selectStage": "选择关卡",
"previous": "上一页",
"next": "下一页",
"noMonstersFound": "未找到怪物",
"addNewWave": "添加新波次",
"searchStage": "搜索关卡...",
"noStageFound": "未找到关卡",
"searchMonster": "搜索怪物...",
"changeRelic": "更换遗物",
"deleteRelic": "删除遗物",
"deleteRelicConfirm": "确定要删除插槽中的遗物吗",
"setEffects": "设置效果",
"details": "详情",
"normal": "普通攻击",
"bpskill": "技能",
"maze": "技巧",
"ultra": "终结技",
"servantskill": "记灵技能",
"severaltalent": "记灵天赋",
"singleattack": "单体攻击",
"enhance": "强化",
"summon": "召唤",
"blast": "爆裂",
"restore": "恢复",
"support": "支援",
"aoeattack": "范围攻击",
"mazeattack": "迷宫秘技",
"impair": "削弱",
"active": "活跃",
"inactive": "不活跃",
"maxAll": "全部最大化",
"defence": "防御",
"maxAllSuccess": "技能等级已成功设置为最大。",
"maxAllFailed": "设置技能等级为最大失败。",
"noRelicEquipped": "未装备圣遗物",
"anomalyArbitration": "异相仲裁",
"normalMode": "普通模式",
"hardMode": "困难模式",
"selectPEAKEvent": "选择 PEAK 事件",
"mode": "模式",
"selectMode": "选择模式",
"rollBack": "回到之前的状态",
"upRoll": "增加副属性",
"downRoll": "减少副属性",
"actions": "操作",
"avatars": "头像",
"quickView": "快速预览",
"extraSetting": "额外设置",
"disableCensorship": "禁用审查",
"hideUI": "隐藏界面",
"theoryCraftMode": "理论研究模式",
"cycleCount": "循环次数",
"pleaseSelectAllSubStats": "请选取所有副属性",
"subStatRollCountCannotBeZero": "副属性的行数不能为0"
}
}

261
messages/en.json Normal file
View File

@@ -0,0 +1,261 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Firefly tools by Kain"
},
"DataPage": {
"skillType": "Skill Type",
"skillName": "Skill Name",
"character": "Character",
"id": "Id",
"path": "Path",
"rarity": "Rarity",
"element": "Element",
"technique": "Technique",
"talent": "Talent",
"basic": "Basic Attack",
"skill": "Skill",
"ultimate": "Ultimate",
"servant": "Servant",
"damage": "Damage",
"type": "Type",
"warrior": "Destruction",
"knight": "Preservation",
"mage": "Erudition",
"priest": "Abundance",
"rogue": "The Hunt",
"shaman": "Harmony",
"warlock": "Nihility",
"memory": "Remembrance",
"fire": "Fire",
"ice": "Ice",
"imaginary": "Imaginary",
"physical": "Physical",
"quantum": "Quantum",
"thunder": "Thunder",
"wind": "Wind",
"hp": "Hp",
"atk": "Atk",
"speed": "Speed",
"critRate": "Crit Rate",
"critDmg": "Crit Dmg",
"breakEffect": "Break Effect",
"effectRes": "Effect Res",
"energyRegenerationRate": "Energy Regeneration Rate",
"effectHitRate": "Effect Hit Rate",
"outgoingHealingBoost": "Outgoing Healing Boost",
"fireDmgBoost": "Fire damage boost",
"iceDmgBoost": "Ice damage Boost",
"imaginaryDmgBoost": "Imaginary damage boost",
"physicalDmgBoost": "Physical damage boost",
"quantumDmgBoost": "Quantum damage boost",
"thunderDmgBoost": "Thunder damage boost",
"windDmgBoost": "Wind damage boost",
"pursued": "Additional damage",
"true damage": "True damage",
"follow-up": "Follow-up Damage",
"elemental damage": "Break and Super break damage",
"dot": "Damage over time ",
"qte": "QTE Skill",
"level": "Level",
"relics": "Relics",
"eidolons": "Eidolons",
"lightcones": "Lightcones",
"loadData": "Load data",
"exportData": "Export data",
"connectSetting": "Connection Setting",
"connected": "Connected",
"unconnected": "Unconnected",
"psConnection": "PS Connection",
"connectionType": "Connection Type",
"status": "Status",
"connectPs": "Connect PS",
"other": "Other",
"freeSr": "FreeSR",
"database": "Database",
"enka": "Enka",
"monsterSetting": "Monster Setting",
"serverUrl": "Server URL",
"privateType": "Private Type",
"local": "Local",
"server": "Server",
"username": "Username",
"password": "Password",
"placeholderServerUrl": "Enter server URL",
"placeholderUsername": "Enter username",
"placeholderPassword": "Enter password",
"connectedSuccess": "Connected to PS successfully",
"connectedFailed": "Failed to connect to PS",
"syncSuccess": "Synced data to PS successfully",
"syncFailed": "Failed to sync data to PS",
"sync": "Sync",
"importSetting": "Import Setting",
"profile": "Profile",
"default": "Default",
"copyProfiles": "Copy profiles",
"addNewProfile": "Add new profile",
"createNewProfile": "Create new profile",
"editProfile": "Edit profile",
"placeholderProfileName": "Enter profile name",
"profileName": "Profile name",
"create": "Create",
"update": "Update",
"characterInformation": "Character Information",
"skills": "Skills",
"showcaseCard": "Showcase Card",
"comingSoon": "Coming soon",
"characterName": "Character name",
"placeholderCharacter": "Enter character name",
"characterSettings": "Character Settings",
"levelConfiguration": "Level Configuration",
"characterLevel": "Character Level",
"max": "MAX",
"ultimateEnergy": "Ultimate Energy",
"currentEnergy": "Current Energy",
"setTo50": "Set to 50%",
"battleConfiguration": "Battle Configuration",
"useTechnique": "Use Technique",
"techniqueNote": "Enable pre-battle technique effects",
"enhancement": "Enhancement",
"enhancementLevel": "Enhancement Level",
"origin": "Origin",
"enhancedNote": "Higher enhanced unlock additional abilities",
"lightconeEquipment": "Lightcone Equipment",
"lightconeSettings": "Lightcone Settings",
"placeholderLevel": "Enter level",
"superimpositionRank": "Superimposition Rank",
"ranksNote": "Higher ranks provide stronger effects",
"changeLightcone": "Change Lightcone",
"removeLightcone": "Remove Lightcone",
"equipLightcone": "Equip Lightcone",
"noLightconeEquipped": "No Lightcone Equipped",
"equipLightconeNote": "Equip a lightcone to enhance your character's abilities",
"filter": "Filter",
"selectedCharacters": "Selected Characters",
"selectedProfiles": "Selected Profiles",
"clearAll": "Clear All",
"selectAll": "Select All",
"copy": "Copy",
"copied": "Copied",
"noAvatarSelected": "No avatar selected",
"noAvatarToCopySelected": "No avatar to copy selected",
"pleaseSelectAtLeastOneProfile": "Please select at least one profile",
"pleaseEnterUid": "Please enter UID",
"failedToFetchEnkaData": "Failed to fetch enka data",
"pleaseSelectAtLeastOneCharacter": "Please select at least one character",
"noDataToImport": "No data to import",
"pleaseSelectAFile": "Please select a file",
"fileMustBeAValidJsonFile": "File must be a valid json file",
"importEnkaDataSuccess": "Import Enka data success",
"importFreeSRDataSuccess": "Import FreeSR data success",
"importDatabaseSuccess": "Import database success",
"getData": "Get Data",
"import": "Import",
"freeSRImport": "FreeSR Import",
"onlySupportFreeSRJsonFile": "Only support FreeSR json file",
"pickAFile": "Pick a file",
"lightConeSetting": "LightCone Setting",
"relicMaker": "Relic Maker",
"pleaseSelectAllOptions": "Please select all options",
"relicSavedSuccessfully": "Relic saved successfully",
"mainSettings": "Main Settings",
"mainStat": "Main Stat",
"set": "Set",
"pleaseSelectASet": "Please select a set",
"effectBonus": "Effect Bonus",
"totalRoll": "Total Roll",
"randomizeStats": "Randomize Stats",
"randomizeRolls": "Randomize Rolls",
"selectASubStat": "Select a sub stat",
"selectASet": "Select a set",
"selectAMainStat": "Select a main stat",
"save": "Save",
"reset": "Reset",
"roll": "Roll",
"step": "Step",
"memoryOfChaos": "Memory of Chaos",
"pureFiction": "Pure Fiction",
"apocalypticShadow": "Apocalyptic Shadow",
"customEnemy": "Custom Enemy",
"simulatedUniverse": "Simulated Universe",
"floor": "Floor",
"side": "Side",
"wave": "Wave",
"stage": "Stage",
"useCycleCount": "Use cycle count?",
"useTurbulenceBuff": "Use turbulence buff?",
"firstHalfEnemies": "First half enemies",
"secondHalfEnemies": "Second half enemies",
"listEnemies": "List enemies",
"turbulenceBuff": "Turbulence Buff",
"noEventSelected": "No event selected",
"noTurbulenceBuff": "No Turbulence Buff",
"upper": "Upper",
"lower": "Lower",
"upperToLower": "Upper -> Lower",
"lowerToUpper": "Lower -> Upper",
"selectMOCEvent": "Select MOC Event",
"selectPFEvent": "Select PF Event",
"selectASEvent": "Select AS Event",
"selectCEEvent": "Select CE Event",
"selectEvent": "Select Event",
"selectFloor": "Select a Floor",
"selectSide": "Select a Side",
"selectBuff": "Select a Buff",
"selectStage": "Select a Stage",
"previous": "Previous",
"next": "Next",
"noMonstersFound": "No monsters found",
"addNewWave": "Add New Wave",
"searchStage": "Search stage...",
"noStageFound": "No stage found",
"searchMonster": "Search monster...",
"changeRelic": "Change relic",
"deleteRelic": "Delete relic",
"deleteRelicConfirm": "Are you sure you want to delete relic in slot",
"setEffects": "Set Effects",
"details": "Details",
"normal": "Basic ATK",
"bpskill": "Skill",
"maze": "Technique",
"ultra": "Ultimate",
"servantskill": "Memosprite Skill",
"severaltalent": "Memosprite Talent",
"singleattack": "Single Attack",
"enhance": "Enhance",
"summon": "Summon",
"mazeattack": "Technique Attack",
"blast": "Blast",
"restore": "Restore",
"support": "Support",
"aoeattack": "AoE Attack",
"impair": "Impair",
"bounce": "Bounce",
"active": "Active",
"defence": "Defence",
"inactive": "Inactive",
"maxAll": "Max All",
"maxAllSuccess": "Successfully set skill level to max.",
"maxAllFailed": "Failed to set skill level to max.",
"noRelicEquipped": "No relic equipped",
"anomalyArbitration": "Anomaly Arbitration",
"normalMode": "Normal Mode",
"hardMode": "Hard Mode",
"selectPEAKEvent": "Select PEAK Event",
"mode": "Mode",
"selectMode": "Select a mode",
"rollBack": "Roll Back",
"upRoll": "Up Roll",
"downRoll": "Down Roll",
"actions": "Actions",
"avatars": "Avatars",
"quickView": "Quick View",
"extraSetting": "Extra Settings",
"disableCensorship": "Disable Censorship",
"hideUI": "Hide UI",
"theoryCraftMode": "Theorycraft Mode",
"cycleCount": "Cycle Count",
"pleaseSelectAllSubStats": "Please select all sub stats",
"subStatRollCountCannotBeZero": "Sub stat roll count cannot be zero"
}
}

260
messages/ja.json Normal file
View File

@@ -0,0 +1,260 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Firefly tools by Kain"
},
"DataPage": {
"skillType": "スキルタイプ",
"skillName": "スキル名",
"character": "キャラクター",
"id": "ID",
"path": "運命",
"rarity": "レアリティ",
"element": "属性",
"technique": "秘技",
"talent": "天賦",
"basic": "通常攻撃",
"skill": "スキル",
"ultimate": "アルティメット",
"servant": "サーバント",
"damage": "ダメージ",
"type": "タイプ",
"warrior": "壊滅",
"knight": "存護",
"mage": "知恵",
"priest": "豊穣",
"rogue": "巡狩",
"shaman": "調和",
"warlock": "虚無",
"memory": "記憶",
"fire": "火",
"ice": "氷",
"imaginary": "虚数",
"physical": "物理",
"quantum": "量子",
"thunder": "雷",
"wind": "風",
"hp": "HP",
"atk": "攻撃",
"speed": "速度",
"critRate": "会心率",
"critDmg": "会心ダメージ",
"breakEffect": "撃破特効",
"effectRes": "効果抵抗",
"energyRegenerationRate": "EP回復効率",
"effectHitRate": "効果命中率",
"outgoingHealingBoost": "回復増加",
"fireDmgBoost": "火属性ダメージ強化",
"iceDmgBoost": "氷属性ダメージ強化",
"imaginaryDmgBoost": "幻影ダメージ強化",
"physicalDmgBoost": "物理ダメージ強化",
"quantumDmgBoost": "量子ダメージ強化",
"thunderDmgBoost": "雷属性ダメージ強化",
"windDmgBoost": "風属性ダメージ強化",
"pursued": "追加ダメージ",
"true damage": "確定ダメージ",
"follow-up": "追撃ダメージ",
"elemental damage": "属性ダメージ",
"dot": "継続ダメージ",
"qte": "QTEスキル",
"level": "レベル",
"relics": "遺物",
"eidolons": "エイドロン",
"lightcones": "光円錐",
"loadData": "データ読み込み",
"exportData": "データ出力",
"connectSetting": "接続設定",
"connected": "接続済み",
"unconnected": "未接続",
"psConnection": "PS接続",
"connectionType": "接続タイプ",
"status": "ステータス",
"connectPs": "PS接続",
"other": "その他",
"freeSr": "FreeSR",
"database": "データベース",
"enka": "Enka",
"monsterSetting": "モンスター設定",
"serverUrl": "サーバー URL",
"privateType": "プライベートタイプ",
"local": "ローカル",
"server": "サーバー",
"username": "ユーザー名",
"password": "パスワード",
"placeholderServerUrl": "サーバー URL を入力",
"placeholderUsername": "ユーザー名を入力",
"placeholderPassword": "パスワードを入力",
"connectedSuccess": "PS接続成功",
"connectedFailed": "PS接続失敗",
"syncSuccess": "PSへのデータ同期に成功",
"syncFailed": "PSへのデータ同期に失敗",
"sync": "同期",
"importSetting": "インポート設定",
"profile": "プロファイル",
"default": "デフォルト",
"copyProfiles": "プロファイルをコピー",
"addNewProfile": "プロファイルを追加",
"createNewProfile": "新しいプロファイルを作成",
"editProfile": "プロファイル編集",
"placeholderProfileName": "プロファイル名を入力",
"profileName": "プロファイル名",
"create": "作成",
"update": "更新",
"characterInformation": "キャラクター情報",
"skills": "スキル",
"showcaseCard": "ショーケースカード",
"comingSoon": "近日公開",
"characterName": "キャラクター名",
"placeholderCharacter": "キャラクター名を入力",
"characterSettings": "キャラクター設定",
"levelConfiguration": "レベル構成",
"characterLevel": "キャラクターレベル",
"max": "最大",
"ultimateEnergy": "アルティメットエネルギー",
"currentEnergy": "現在のエネルギー",
"setTo50": "50%に設定",
"battleConfiguration": "バトル構成",
"useTechnique": "秘技を使用",
"techniqueNote": "バトル前に秘技効果を有効化",
"enhancement": "強化",
"enhancementLevel": "強化レベル",
"origin": "由来",
"enhancedNote": "強化レベルに応じて追加スキル解放",
"lightconeEquipment": "光円錐装備",
"lightconeSettings": "光円錐の設定",
"placeholderLevel": "レベルを入力",
"superimpositionRank": "重ねランク",
"ranksNote": "ランクが高いほど効果強化",
"changeLightcone": "光円錐を変更",
"removeLightcone": "光円錐を外す",
"equipLightcone": "光円錐を装備",
"noLightconeEquipped": "光円錐が装備されていません",
"equipLightconeNote": "強化のため光円錐を装備してください",
"filter": "フィルター",
"selectedCharacters": "選択中のキャラクター",
"selectedProfiles": "選択中のプロファイル",
"clearAll": "全てクリア",
"selectAll": "全て選択",
"copy": "コピー",
"copied": "コピー済み",
"noAvatarSelected": "キャラクターが選択されていません",
"noAvatarToCopySelected": "コピーするキャラクター選択されていません",
"pleaseSelectAtLeastOneProfile": "プロファイルを少なくとも1つ選んでください",
"pleaseEnterUid": "UIDを入力してください",
"failedToFetchEnkaData": "Enka のデータ取得に失敗",
"pleaseSelectAtLeastOneCharacter": "キャラクターを最低1つ選択してください",
"noDataToImport": "インポートするデータがありません",
"pleaseSelectAFile": "ファイルを選択してください",
"fileMustBeAValidJsonFile": "有効な JSON ファイルである必要があります",
"importEnkaDataSuccess": "Enka データのインポート成功",
"importFreeSRDataSuccess": "FreeSR データのインポート成功",
"importDatabaseSuccess": "データベースのインポート成功",
"getData": "データ取得",
"import": "インポート",
"freeSRImport": "FreeSR インポート",
"onlySupportFreeSRJsonFile": "FreeSR JSON ファイルのみ対応",
"pickAFile": "ファイル選択",
"lightConeSetting": "ライトコーン設定",
"relicMaker": "遺物製作",
"pleaseSelectAllOptions": "すべてのオプションを選択してください",
"relicSavedSuccessfully": "遺物の保存に成功しました",
"mainSettings": "メイン設定",
"mainStat": "メインステータス",
"set": "セット",
"pleaseSelectASet": "セットを選択してください",
"effectBonus": "効果ボーナス",
"totalRoll": "総ロール数",
"randomizeStats": "ステータスランダム化",
"randomizeRolls": "ロール回数ランダム化",
"selectASubStat": "サブステータスを選択",
"selectASet": "セットを選択",
"selectAMainStat": "メインステータスを選んでください",
"save": "保存",
"reset": "リセット",
"roll": "ロール",
"step": "ステップ",
"memoryOfChaos": "混沌の記憶",
"pureFiction": "虚構叙事",
"apocalypticShadow": "末日の幻影",
"customEnemy": "カスタム敵",
"simulatedUniverse": "模擬宇宙",
"floor": "階層",
"side": "前半/後半",
"wave": "ウェーブ",
"stage": "ステージ",
"useCycleCount": "サイクル数を使用しますか?",
"useTurbulenceBuff": "乱気流バフを使用しますか?",
"firstHalfEnemies": "前半の敵",
"secondHalfEnemies": "後半の敵",
"turbulenceBuff": "乱気流バフ",
"noEventSelected": "イベントが選択されていません",
"noTurbulenceBuff": "乱気流バフがありません",
"upper": "上半",
"lower": "下半",
"upperToLower": "上半 -> 下半",
"lowerToUpper": "下半 -> 上半",
"selectMOCEvent": "MOC イベントを選択",
"selectPFEvent": "PF イベントを選択",
"selectASEvent": "AS イベントを選択",
"selectCEEvent": "CE イベントを選択",
"selectEvent": "イベントを選択",
"selectFloor": "階層を選択",
"selectSide": "前半/後半を選択",
"selectBuff": "バフを選択",
"selectStage": "ステージを選択",
"previous": "前へ",
"next": "次へ",
"noMonstersFound": "敵が見つかりません",
"addNewWave": "新しいウェーブを追加",
"searchStage": "ステージを検索...",
"noStageFound": "ステージが見つかりません",
"searchMonster": "敵を検索...",
"changeRelic": "遺物を変更",
"deleteRelic": "遺物を削除",
"deleteRelicConfirm": "この遺物を削除してもよろしいですか?",
"setEffects": "効果を設定",
"details": "詳細",
"normal": "通常攻撃",
"bpskill": "戦闘スキル",
"maze": "秘技",
"ultra": "必殺技",
"servantskill": "メモスプライトスキル",
"severaltalent": "メモスプライトの才能",
"singleattack": "単体攻撃",
"enhance": "強化",
"summon": "召喚",
"blast": "爆発",
"restore": "回復",
"support": "支援",
"aoeattack": "範囲攻撃",
"mazeattack": "迷宮秘技",
"impair": "弱体化",
"bounce": "弾跳",
"active": "アクティブ",
"inactive": "非アクティブ",
"defence": "防御",
"maxAll": "すべて最大化",
"maxAllSuccess": "スキルレベルを最大に設定しました。",
"maxAllFailed": "スキルレベルの最大設定に失敗しました。",
"noRelicEquipped": "遺物が装備されていません",
"anomalyArbitration": "異相の仲裁",
"normalMode": "通常モード",
"hardMode": "困難モード",
"selectPEAKEvent": "PEAK イベントを選択",
"mode": "モード",
"selectMode": "モードを選択",
"rollBack": "前の状態に戻る",
"upRoll": "サブステータスを増やす",
"downRoll": "サブステータスを減らす",
"actions": "アクション",
"avatars": "アバター",
"quickView": "クイックビュー",
"extraSetting": "追加設定",
"disableCensorship": "検閲を無効化",
"hideUI": "UIを非表示",
"theoryCraftMode": "シアリークラフトモード",
"cycleCount": "サイクル数",
"pleaseSelectAllSubStats": "すべてのサブステータスを選択してください",
"subStatRollCountCannotBeZero": "サブステータスの行数は0にできません"
}
}

260
messages/ko.json Normal file
View File

@@ -0,0 +1,260 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Firefly tools by Kain"
},
"DataPage": {
"skillType": "스킬 유형",
"skillName": "스킬 이름",
"character": "캐릭터",
"id": "ID",
"path": "운명",
"rarity": "희귀도",
"element": "속성",
"technique": "비기",
"talent": "탈렌트",
"basic": "기본 공격",
"skill": "스킬",
"ultimate": "궁극기",
"servant": "서번트",
"damage": "데미지",
"type": "종류",
"warrior": "파괴",
"knight": "보호",
"mage": "박학",
"priest": "풍요",
"rogue": "사냥",
"shaman": "조화",
"warlock": "허무",
"memory": "기억",
"fire": "화염",
"ice": "얼음",
"imaginary": "환상",
"physical": "물리",
"quantum": "양자",
"thunder": "번개",
"wind": "바람",
"hp": "HP",
"atk": "공격력",
"speed": "속도",
"critRate": "치명타 확률",
"critDmg": "치명타 피해",
"breakEffect": "파괴 피해",
"effectRes": "효과 저항",
"energyRegenerationRate": "에너지 회복속도",
"effectHitRate": "효과 적중률",
"outgoingHealingBoost": "치유 강화",
"fireDmgBoost": "화염 피해 증가",
"iceDmgBoost": "얼음 피해 증가",
"imaginaryDmgBoost": "환상 피해 증가",
"physicalDmgBoost": "물리 피해 증가",
"quantumDmgBoost": "양자 피해 증가",
"thunderDmgBoost": "번개 피해 증가",
"windDmgBoost": "바람 피해 증가",
"pursued": "추가 피해",
"true damage": "진실한 피해",
"follow-up": "후속 피해",
"elemental damage": "파괴 및 초파괴 피해",
"dot": "시간 경과 피해",
"qte": "QTE 스킬",
"level": "레벨",
"relics": "유물",
"eidolons": "에이돌론",
"lightcones": "라이트콘",
"loadData": "데이터 불러오기",
"exportData": "데이터 내보내기",
"connectSetting": "연결 설정",
"connected": "연결됨",
"unconnected": "연결 안됨",
"psConnection": "PS 연결",
"connectionType": "연결 타입",
"status": "상태",
"connectPs": "PS 연결",
"other": "기타",
"freeSr": "FreeSR",
"database": "데이터베이스",
"enka": "Enka",
"monsterSetting": "몬스터 설정",
"serverUrl": "서버 URL",
"privateType": "프라이빗 타입",
"local": "로컬",
"server": "서버",
"username": "사용자명",
"password": "비밀번호",
"placeholderServerUrl": "서버 URL 입력",
"placeholderUsername": "사용자명 입력",
"placeholderPassword": "비밀번호 입력",
"connectedSuccess": "PS에 성공적으로 연결됨",
"connectedFailed": "PS 연결 실패",
"syncSuccess": "PS에 데이터 동기화 성공",
"syncFailed": "PS에 데이터 동기화 실패",
"sync": "동기화",
"importSetting": "설정 가져오기",
"profile": "프로필",
"default": "기본",
"copyProfiles": "프로필 복사",
"addNewProfile": "새 프로필 추가",
"createNewProfile": "새 프로필 생성",
"editProfile": "프로필 편집",
"placeholderProfileName": "프로필 이름 입력",
"profileName": "프로필 이름",
"create": "생성",
"update": "업데이트",
"characterInformation": "캐릭터 정보",
"skills": "스킬",
"showcaseCard": "쇼케이스 카드",
"comingSoon": "곧 출시",
"characterName": "캐릭터 이름",
"placeholderCharacter": "캐릭터 이름 입력",
"characterSettings": "캐릭터 설정",
"levelConfiguration": "레벨 구성",
"characterLevel": "캐릭터 레벨",
"max": "최대",
"ultimateEnergy": "궁극 에너지",
"currentEnergy": "현재 에너지",
"setTo50": "50%로 설정",
"battleConfiguration": "전투 구성",
"useTechnique": "비기 사용",
"techniqueNote": "전투 전 비기 효과 활성화",
"enhancement": "강화",
"enhancementLevel": "강화 레벨",
"origin": "출처",
"enhancedNote": "강화 레벨이 높을수록 추가 효과 해제",
"lightconeEquipment": "라이트콘 장비",
"lightconeSettings": "라이트콘 설정",
"placeholderLevel": "레벨 입력",
"superimpositionRank": "중첩 등급",
"ranksNote": "등급이 높을수록 효과가 강함",
"changeLightcone": "라이트콘 변경",
"removeLightcone": "라이트콘 제거",
"equipLightcone": "라이트콘 장착",
"noLightconeEquipped": "라이트콘 미장착",
"equipLightconeNote": "캐릭터 능력 향상을 위해 장착하세요",
"filter": "필터",
"selectedCharacters": "선택된 캐릭터",
"selectedProfiles": "선택된 프로필",
"clearAll": "전체 지우기",
"selectAll": "전체 선택",
"copy": "복사",
"copied": "복사됨",
"noAvatarSelected": "캐릭터가 선택되지 않음",
"noAvatarToCopySelected": "복사할 캐릭터가 선택되지 않음",
"pleaseSelectAtLeastOneProfile": "프로필을 최소 하나 선택하세요",
"pleaseEnterUid": "UID를 입력해주세요",
"failedToFetchEnkaData": "Enka 데이터 가져오기 실패",
"pleaseSelectAtLeastOneCharacter": "캐릭터를 최소 하나 선택하세요",
"noDataToImport": "가져올 데이터가 없습니다",
"pleaseSelectAFile": "파일을 선택하세요",
"fileMustBeAValidJsonFile": "유효한 JSON 파일이어야 합니다",
"importEnkaDataSuccess": "Enka 데이터 가져오기 성공",
"importFreeSRDataSuccess": "FreeSR 데이터 가져오기 성공",
"importDatabaseSuccess": "데이터베이스 가져오기 성공",
"getData": "데이터 가져오기",
"import": "가져오기",
"freeSRImport": "FreeSR 가져오기",
"onlySupportFreeSRJsonFile": "FreeSR JSON 파일만 지원",
"pickAFile": "파일 선택",
"lightConeSetting": "라이트콘 설정",
"relicMaker": "유물 제작",
"pleaseSelectAllOptions": "모든 옵션을 선택해주세요",
"relicSavedSuccessfully": "유물 저장 성공",
"mainSettings": "메인 설정",
"mainStat": "주 속성",
"set": "세트",
"pleaseSelectASet": "세트 하나를 선택해주세요",
"effectBonus": "효과 보너스",
"totalRoll": "총 횟수",
"randomizeStats": "속성 랜덤화",
"randomizeRolls": "횟수 랜덤화",
"selectASubStat": "부 속성 선택",
"selectASet": "세트 선택",
"selectAMainStat": "주 속성 선택",
"save": "저장",
"reset": "초기화",
"roll": "굴리기",
"step": "단계",
"memoryOfChaos": "망각의 정원",
"pureFiction": "허구 이야기",
"apocalypticShadow": "종말의 환영",
"customEnemy": "커스텀 적",
"simulatedUniverse": "시뮬레이티드 유니버스",
"floor": "층수",
"side": "전반/후반",
"wave": "웨이브",
"stage": "스테이지",
"useCycleCount": "사이클 수 사용?",
"useTurbulenceBuff": "난류 버프 사용?",
"firstHalfEnemies": "전반 적",
"secondHalfEnemies": "후반 적",
"turbulenceBuff": "난류 버프",
"noEventSelected": "이벤트가 선택되지 않음",
"noTurbulenceBuff": "난류 버프가 없음",
"upper": "상반",
"lower": "하반",
"upperToLower": "상반 -> 하반",
"lowerToUpper": "하반 -> 상반",
"selectMOCEvent": "MOC 이벤트 선택",
"selectPFEvent": "PF 이벤트 선택",
"selectASEvent": "AS 이벤트 선택",
"selectCEEvent": "CE 이벤트 선택",
"selectEvent": "이벤트 선택",
"selectFloor": "층 선택",
"selectSide": "전반/후반 선택",
"selectBuff": "버프 선택",
"selectStage": "스테이지 선택",
"previous": "이전",
"next": "다음",
"noMonstersFound": "적을 찾을 수 없음",
"addNewWave": "새 웨이브 추가",
"searchStage": "스테이지 검색...",
"noStageFound": "스테이지를 찾을 수 없음",
"searchMonster": "적 검색...",
"changeRelic": "유물 변경",
"deleteRelic": "유물 삭제",
"deleteRelicConfirm": "이 슬롯의 유물을 삭제하시겠습니까?",
"setEffects": "효과 설정",
"details": "상세",
"normal": "기본 공격",
"bpskill": "스킬",
"maze": "전술",
"ultra": "필살기",
"servantskill": "메모스프라이트 스킬",
"severaltalent": "메모스프라이트 재능",
"singleattack": "단일 공격",
"enhance": "강화",
"summon": "소환",
"blast": "광역 공격",
"restore": "회복",
"support": "지원",
"aoeattack": "광역 공격",
"mazeattack": "미궁 비기",
"impair": "약화",
"bounce": "튕김",
"active": "활성",
"inactive": "비활성",
"defence": "방어",
"maxAll": "모두 최대치",
"maxAllSuccess": "스킬 레벨이 최대치로 설정되었습니다.",
"maxAllFailed": "스킬 레벨을 최대치로 설정하지 못했습니다.",
"noRelicEquipped": "성유물이 장착되지 않음",
"anomalyArbitration": "이상 중재",
"normalMode": "일반 모드",
"hardMode": "어려움 모드",
"selectPEAKEvent": "PEAK 이벤트 선택",
"mode": "모드",
"selectMode": "모드를 선택",
"rollBack": "이전 상태로 되돌리기",
"upRoll": "부옵션 추가",
"downRoll": "부옵션 감소",
"actions": "동작",
"avatars": "아바타",
"quickView": "빠른 조회",
"extraSetting": "추가 설정",
"disableCensorship": "검열 비활성화",
"hideUI": "UI 숨기기",
"theoryCraftMode": "이론 제작 모드",
"cycleCount": "사이클 수",
"pleaseSelectAllSubStats": "모든 부옵션을 선택하세요",
"subStatRollCountCannotBeZero": "부옵션의 줄 수는 0일 수 없습니다"
}
}

260
messages/vi.json Normal file
View File

@@ -0,0 +1,260 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Firefly tools by Kain"
},
"DataPage": {
"skillType": "Loại kỹ năng",
"skillName": "Tên kỹ năng",
"character": "Nhân vật",
"id": "ID",
"path": "Vận mệnh",
"rarity": "Độ hiếm",
"element": "Nguyên tố",
"technique": "Bí kỹ",
"talent": "Thiên phú",
"basic": "Đánh thường",
"skill": "Kỹ năng",
"ultimate": "Tuyệt kỹ",
"servant": "Phụ trợ",
"damage": "Sát thương",
"type": "Loại",
"warrior": "Hủy Diệt",
"knight": "Bảo Hộ",
"mage": "Tri Thức",
"priest": "Trù phú",
"rogue": "Săn Bắn",
"shaman": "Hòa Hợp",
"warlock": "Hư Vô",
"memory": "Ký Ức",
"fire": "Hỏa",
"ice": "Băng",
"imaginary": "Ảo Ảnh",
"physical": "Vật Lý",
"quantum": "Lượng Tử",
"thunder": "Lôi",
"wind": "Phong",
"hp": "HP",
"atk": "Tấn công",
"speed": "Tốc độ",
"critRate": "Tỷ lệ bạo",
"critDmg": "ST bạo",
"breakEffect": "sát thương kích phá",
"effectRes": "Kháng hiệu ứng",
"energyRegenerationRate": "Tốc độ hồi năng lượng",
"effectHitRate": "Tỷ lệ trúng hiệu ứng",
"outgoingHealingBoost": "Tăng hồi phục",
"fireDmgBoost": "Tăng sát thương Hỏa",
"iceDmgBoost": "Tăng sát thương Băng",
"imaginaryDmgBoost": "Tăng sát thương Ảo Ảnh",
"physicalDmgBoost": "Tăng sát thương Vật Lý",
"quantumDmgBoost": "Tăng sát thương Lượng Tử",
"thunderDmgBoost": "Tăng sát thương Lôi",
"windDmgBoost": "Tăng sát thương Phong",
"pursued": "Sát thương thêm",
"true damage": "Sát thương chuẩn",
"follow-up": "Sát thương phản kích",
"elemental damage": "Sát thương kích phá và siêu kích phá",
"dot": "Sát thương theo thời gian",
"qte": "Kỹ năng QTE",
"level": "Cấp độ",
"relics": "Thánh di vật",
"eidolons": "Tinh hồn",
"lightcones": "Nón ánh sáng",
"loadData": "Tải dữ liệu",
"exportData": "Xuất dữ liệu",
"connectSetting": "Cài đặt kết nối",
"connected": "Đã kết nối",
"unconnected": "Chưa kết nối",
"psConnection": "Kết nối PS",
"connectionType": "Loại kết nối",
"status": "Trạng thái",
"connectPs": "Kết nối PS",
"other": "Khác",
"freeSr": "FreeSR",
"database": "Database",
"enka": "Enka",
"monsterSetting": "Cài đặt quái",
"serverUrl": "Địa chỉ server",
"privateType": "Loại riêng tư",
"local": "Cục bộ",
"server": "Máy chủ",
"username": "Tên người dùng",
"password": "Mật khẩu",
"placeholderServerUrl": "Nhập địa chỉ server",
"placeholderUsername": "Nhập tên người dùng",
"placeholderPassword": "Nhập mật khẩu",
"connectedSuccess": "Kết nối PS thành công",
"connectedFailed": "Kết nối PS thất bại",
"syncSuccess": "Đồng bộ dữ liệu với PS thành công",
"syncFailed": "Đồng bộ dữ liệu với PS thất bại",
"sync": "Đồng bộ",
"importSetting": "Cài đặt nhập",
"profile": "Hồ sơ",
"default": "Mặc định",
"copyProfiles": "Sao chép hồ sơ",
"addNewProfile": "Thêm hồ sơ mới",
"createNewProfile": "Tạo hồ sơ mới",
"editProfile": "Chỉnh sửa hồ sơ",
"placeholderProfileName": "Nhập tên hồ sơ",
"profileName": "Tên hồ sơ",
"create": "Tạo",
"update": "Cập nhật",
"characterInformation": "Thông tin nhân vật",
"skills": "Kỹ năng",
"showcaseCard": "Thẻ trưng bày",
"comingSoon": "Sắp ra mắt",
"characterName": "Tên nhân vật",
"placeholderCharacter": "Nhập tên nhân vật",
"characterSettings": "Cài đặt nhân vật",
"levelConfiguration": "Cấu hình cấp độ",
"characterLevel": "Cấp độ nhân vật",
"max": "Tối đa",
"ultimateEnergy": "Năng lượng tuyệt kỹ",
"currentEnergy": "Năng lượng hiện tại",
"setTo50": "Đặt thành 50%",
"battleConfiguration": "Cấu hình trận đấu",
"useTechnique": "Dùng chiến pháp",
"techniqueNote": "Bật hiệu ứng chiến pháp trước trận",
"enhancement": "Cường hóa",
"enhancementLevel": "Cấp độ cường hóa",
"origin": "Nguyên gốc",
"enhancedNote": "Cường hóa cao mở thêm kỹ năng",
"lightconeEquipment": "Trang bị nón ánh sáng",
"lightconeSettings": "Cài đặt nón ánh sáng",
"placeholderLevel": "Nhập cấp độ",
"superimpositionRank": "Bậc chồng kỹ năng",
"ranksNote": "Bậc càng cao hiệu ứng càng mạnh",
"changeLightcone": "Thay đổi nón ánh sáng",
"removeLightcone": "Gỡ nón ánh sáng",
"equipLightcone": "Trang bị nón ánh sáng",
"noLightconeEquipped": "Chưa trang bị nón ánh sáng",
"equipLightconeNote": "Trang bị nón để tăng sức mạnh cho nhân vật",
"filter": "Lọc",
"selectedCharacters": "Nhân vật đã chọn",
"selectedProfiles": "Hồ sơ đã chọn",
"clearAll": "Xóa tất cả",
"selectAll": "Chọn tất cả",
"copy": "Sao chép",
"copied": "Đã sao chép",
"noAvatarSelected": "Chưa chọn nhân vật",
"noAvatarToCopySelected": "Chưa chọn nhân vật để sao chép",
"pleaseSelectAtLeastOneProfile": "Vui lòng chọn ít nhất một hồ sơ",
"pleaseEnterUid": "Vui lòng nhập UID",
"failedToFetchEnkaData": "Lấy dữ liệu Enka thất bại",
"pleaseSelectAtLeastOneCharacter": "Vui lòng chọn ít nhất một nhân vật",
"noDataToImport": "Không có dữ liệu để nhập",
"pleaseSelectAFile": "Vui lòng chọn một tệp",
"fileMustBeAValidJsonFile": "Tệp phải là tệp JSON hợp lệ",
"importEnkaDataSuccess": "Nhập dữ liệu Enka thành công",
"importFreeSRDataSuccess": "Nhập dữ liệu FreeSR thành công",
"importDatabaseSuccess": "Nhập cơ sở dữ liệu thành công",
"getData": "Lấy dữ liệu",
"import": "Nhập",
"freeSRImport": "Nhập FreeSR",
"onlySupportFreeSRJsonFile": "Chỉ hỗ trợ tệp JSON từ FreeSR",
"pickAFile": "Chọn tệp",
"lightConeSetting": "Cài đặt Nón Ánh Sáng",
"relicMaker": "Trình tạo Thánh Di Vật",
"pleaseSelectAllOptions": "Vui lòng chọn tất cả tùy chọn",
"relicSavedSuccessfully": "Lưu thánh di vật thành công",
"mainSettings": "Cài đặt chính",
"mainStat": "Chỉ số chính",
"set": "Bộ",
"pleaseSelectASet": "Vui lòng chọn một bộ",
"effectBonus": "Hiệu ứng cộng thêm",
"totalRoll": "Tổng số dòng",
"randomizeStats": "Ngẫu nhiên chỉ số",
"randomizeRolls": "Ngẫu nhiên số dòng",
"selectASubStat": "Chọn chỉ số phụ",
"selectASet": "Chọn một bộ",
"selectAMainStat": "Chọn chỉ số chính",
"save": "Lưu",
"reset": "Đặt lại toàn bộ",
"roll": "Số dòng",
"step": "Bước nhảy",
"memoryOfChaos": "Hồi ức hỗn độn",
"pureFiction": "Kể chuyện hư cấu",
"apocalypticShadow": "Ảo ảnh tận thế",
"customEnemy": "Kẻ địch tùy chỉnh",
"simulatedUniverse": "Vũ trụ mô phỏng",
"floor": "Tầng",
"side": "Nửa trận",
"wave": "Đợt",
"stage": "Màn",
"useCycleCount": "Dùng dếm chu kỳ?",
"useTurbulenceBuff": "Dùng buff hỗn loạn?",
"firstHalfEnemies": "Địch nửa đầu",
"secondHalfEnemies": "Địch nửa sau",
"turbulenceBuff": "Buff hỗn loạn",
"noEventSelected": "Không có sự kiện",
"noTurbulenceBuff": "Không có buff hỗn loạn",
"upper": "Nửa trên",
"lower": "Nửa dưới",
"upperToLower": "Nửa trên -> Nửa dưới",
"lowerToUpper": "Nửa dưới -> Nửa trên",
"selectMOCEvent": "Chọn sự kiện MOC",
"selectPFEvent": "Chọn sự kiện PF",
"selectASEvent": "Chọn sự kiện AS",
"selectCEEvent": "Chọn sự kiện CE",
"selectPEAKEvent": "Chọn sự kiện PEAK",
"selectEvent": "Chọn sự kiện",
"selectFloor": "Chọn tầng",
"selectSide": "Chọn nửa trận",
"selectBuff": "Chọn buff",
"selectStage": "Chọn màn",
"previous": "Trước",
"next": "Tiếp",
"noMonstersFound": "Không tìm thấy quái",
"addNewWave": "Thêm đợt mới",
"searchStage": "Tìm màn...",
"noStageFound": "Không tìm thấy màn",
"searchMonster": "Tìm quái...",
"changeRelic": "Thay đổi di vật",
"deleteRelic": "Xóa di vật",
"deleteRelicConfirm": "Bạn có chắc chắn muốn xóa di vật trong ô này không?",
"setEffects": "Thiết lập hiệu ứng",
"details": "Chi tiết",
"normal": "Đánh thường",
"bpskill": "Chiến kỹ",
"maze": "Bí kỹ",
"ultra": "Tuyệt kỹ",
"servantskill": "Kỹ năng vật triệu hồi",
"severaltalent": "Thiên phú vật triệu hồi",
"singleattack": "Tấn công đơn",
"enhance": "Cường hóa",
"summon": "Triệu hồi",
"blast": "Tấn công 3 mục tiêu",
"restore": "Hồi phục",
"support": "Hỗ trợ",
"aoeattack": "Tấn công đa mục tiêu",
"mazeattack": "Bí kỹ tấn công",
"impair": "Suy yếu",
"bounce": "Nảy bật",
"active": "Kích hoạt",
"inactive": "Không kích hoạt",
"defence": "Phòng thủ",
"maxAll": "Tối đa tất cả",
"maxAllSuccess": "Đã thiết lập cấp độ kỹ năng tối đa thành công.",
"maxAllFailed": "Thiết lập cấp độ kỹ năng tối đa thất bại.",
"noRelicEquipped": "Không có di vật",
"anomalyArbitration": "Trọng tài dị tướng",
"normalMode": "Chế độ thường",
"hardMode": "Chế độ khó",
"mode": "Chế độ",
"selectMode": "Chọn chế độ",
"rollBack": "Quay lại bước trước",
"upRoll": "Tăng dòng",
"downRoll": "Giảm dòng",
"actions": "Hành động",
"avatars": "Nhân vật",
"quickView": "Xem nhanh",
"extraSetting": "Cài đặt bổ sung",
"disableCensorship": "Tắt kiểm duyệt",
"hideUI": "Ẩn giao diện",
"theoryCraftMode": "Chế độ Theorycraft",
"cycleCount": "Số vòng",
"pleaseSelectAllSubStats": "Vui lòng chọn tất cả chỉ số phụ",
"subStatRollCountCannotBeZero": "Số dòng của chỉ số phụ không thể bằng 0"
}
}

260
messages/zh.json Normal file
View File

@@ -0,0 +1,260 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Firefly tools by Kain"
},
"DataPage": {
"skillType": "技能类型",
"skillName": "技能名称",
"character": "角色",
"id": "ID",
"path": "命运",
"rarity": "稀有度",
"element": "元素",
"technique": "秘技",
"talent": "天赋",
"basic": "普通攻击",
"skill": "技能",
"ultimate": "终结技",
"servant": "忆灵",
"damage": "伤害",
"type": "类型",
"warrior": "毁灭",
"knight": "守护",
"mage": "博学",
"priest": "丰饶",
"rogue": "狩猎",
"shaman": "同谐",
"warlock": "虚无",
"memory": "记忆",
"fire": "火",
"ice": "冰",
"imaginary": "虚数",
"physical": "物理",
"quantum": "量子",
"thunder": "雷",
"wind": "风",
"hp": "生命值",
"atk": "攻击",
"speed": "速度",
"critRate": "暴击率",
"critDmg": "暴击伤害",
"breakEffect": "击破伤害",
"effectRes": "效果抗性",
"energyRegenerationRate": "能量恢复速率",
"effectHitRate": "效果命中率",
"outgoingHealingBoost": "治疗增强",
"fireDmgBoost": "火元素伤害增强",
"iceDmgBoost": "冰元素伤害增强",
"imaginaryDmgBoost": "虚数伤害增强",
"physicalDmgBoost": "物理伤害增强",
"quantumDmgBoost": "量子伤害增强",
"thunderDmgBoost": "雷元素伤害增强",
"windDmgBoost": "风元素伤害增强",
"pursued": "附加伤害",
"true damage": "真实伤害",
"follow-up": "后续伤害",
"elemental damage": "击破与超击破伤害",
"dot": "持续伤害",
"qte": "QTE 技能",
"level": "等级",
"relics": "遗器",
"eidolons": "星魂",
"lightcones": "光锥",
"loadData": "加载数据",
"exportData": "导出数据",
"connectSetting": "连接设置",
"connected": "已连接",
"unconnected": "未连接",
"psConnection": "PS 连接",
"connectionType": "连接类型",
"status": "状态",
"connectPs": "连接 PS",
"other": "其他",
"freeSr": "FreeSR",
"database": "数据库",
"enka": "Enka",
"monsterSetting": "怪物设置",
"serverUrl": "服务器 URL",
"privateType": "私有类型",
"local": "本地",
"server": "服务器",
"username": "用户名",
"password": "密码",
"placeholderServerUrl": "输入服务器 URL",
"placeholderUsername": "输入用户名",
"placeholderPassword": "输入密码",
"connectedSuccess": "成功连接 PS",
"connectedFailed": "连接 PS 失败",
"syncSuccess": "已成功与 PS 同步数据",
"syncFailed": "与 PS 同步数据失败",
"sync": "同步",
"importSetting": "导入设置",
"profile": "配置档",
"default": "默认",
"copyProfiles": "复制配置档",
"addNewProfile": "添加新配置档",
"createNewProfile": "创建新配置档",
"editProfile": "编辑配置档",
"placeholderProfileName": "输入配置档名称",
"profileName": "配置档名称",
"create": "创建",
"update": "更新",
"characterInformation": "角色信息",
"skills": "技能",
"showcaseCard": "展示卡",
"comingSoon": "敬请期待",
"characterName": "角色名称",
"placeholderCharacter": "输入角色名称",
"characterSettings": "角色设置",
"levelConfiguration": "等级配置",
"characterLevel": "角色等级",
"max": "最大",
"ultimateEnergy": "终极能量",
"currentEnergy": "当前能量",
"setTo50": "设为50%",
"battleConfiguration": "战斗配置",
"useTechnique": "使用秘术",
"techniqueNote": "启用战前秘术效果",
"enhancement": "强化",
"enhancementLevel": "强化等级",
"origin": "来源",
"enhancedNote": "强化更高可解锁额外技能",
"lightconeEquipment": "光锥装备",
"lightconeSettings": "光锥设置",
"placeholderLevel": "输入等级",
"superimpositionRank": "叠加等级",
"ranksNote": "更高等级提供更强效果",
"changeLightcone": "更换光锥",
"removeLightcone": "移除光锥",
"equipLightcone": "装备光锥",
"noLightconeEquipped": "未装备光锥",
"equipLightconeNote": "装备光锥以增强角色能力",
"filter": "筛选",
"selectedCharacters": "已选角色",
"selectedProfiles": "已选配置档",
"clearAll": "清除全部",
"selectAll": "全选",
"copy": "复制",
"copied": "已复制",
"noAvatarSelected": "未选择角色",
"noAvatarToCopySelected": "未选择要复制的角色",
"pleaseSelectAtLeastOneProfile": "请至少选择一个配置档",
"pleaseEnterUid": "请输入 UID",
"failedToFetchEnkaData": "获取 Enka 数据失败",
"pleaseSelectAtLeastOneCharacter": "请至少选择一个角色",
"noDataToImport": "无可导入数据",
"pleaseSelectAFile": "请选择一个文件",
"fileMustBeAValidJsonFile": "文件必须为有效 JSON",
"importEnkaDataSuccess": "导入 Enka 数据成功",
"importFreeSRDataSuccess": "导入 FreeSR 数据成功",
"importDatabaseSuccess": "导入数据库成功",
"getData": "获取数据",
"import": "导入",
"freeSRImport": "导入 FreeSR",
"onlySupportFreeSRJsonFile": "仅支持 FreeSR JSON 文件",
"pickAFile": "选择文件",
"lightConeSetting": "光锥设置",
"relicMaker": "遗器制作",
"pleaseSelectAllOptions": "请选择所有选项",
"relicSavedSuccessfully": "遗器已成功保存",
"mainSettings": "主设置",
"mainStat": "主属性",
"set": "套装",
"pleaseSelectASet": "请选择一个套装",
"effectBonus": "效果加成",
"totalRoll": "总次数",
"randomizeStats": "随机属性",
"randomizeRolls": "随机次数",
"selectASubStat": "选择副属性",
"selectASet": "选择套装",
"selectAMainStat": "选择主属性",
"save": "保存",
"reset": "重置",
"roll": "滚动",
"step": "步数",
"memoryOfChaos": "混沌之忆",
"pureFiction": "虚构叙事",
"apocalypticShadow": "末日幻影",
"customEnemy": "自定义敌人",
"simulatedUniverse": "模拟宇宙",
"floor": "层数",
"side": "上/下半场",
"wave": "波次",
"stage": "关卡",
"useCycleCount": "使用轮次数?",
"useTurbulenceBuff": "使用紊乱增益?",
"firstHalfEnemies": "上半场敌人",
"secondHalfEnemies": "下半场敌人",
"turbulenceBuff": "紊乱增益",
"noEventSelected": "未选择事件",
"noTurbulenceBuff": "未选择紊乱增益",
"upper": "上半",
"lower": "下半",
"upperToLower": "上半 -> 下半",
"lowerToUpper": "下半 -> 上半",
"selectMOCEvent": "选择 MOC 事件",
"selectPFEvent": "选择 PF 事件",
"selectASEvent": "选择 AS 事件",
"selectCEEvent": "选择 CE 事件",
"selectEvent": "选择事件",
"selectFloor": "选择层数",
"selectSide": "选择上/下半场",
"selectBuff": "选择 buff",
"selectStage": "选择关卡",
"previous": "上一页",
"next": "下一页",
"noMonstersFound": "未找到怪物",
"addNewWave": "添加新波次",
"searchStage": "搜索关卡...",
"noStageFound": "未找到关卡",
"searchMonster": "搜索怪物...",
"changeRelic": "更换遗物",
"deleteRelic": "删除遗物",
"deleteRelicConfirm": "确定要删除插槽中的遗物吗",
"setEffects": "设置效果",
"details": "详情",
"normal": "普通攻击",
"bpskill": "技能",
"maze": "技巧",
"ultra": "终结技",
"servantskill": "记灵技能",
"severaltalent": "记灵天赋",
"singleattack": "单体攻击",
"enhance": "强化",
"summon": "召唤",
"blast": "爆裂",
"restore": "恢复",
"support": "支援",
"aoeattack": "范围攻击",
"mazeattack": "迷宫秘技",
"impair": "削弱",
"bounce": "弹跳",
"active": "活跃",
"defence": "防御",
"inactive": "不活跃",
"maxAll": "全部最大化",
"maxAllSuccess": "技能等级已成功设置为最大。",
"maxAllFailed": "设置技能等级为最大失败。",
"noRelicEquipped": "未装备圣遗物",
"anomalyArbitration": "异相",
"normalMode": "普通模式",
"hardMode": "困难模式",
"selectPEAKEvent": "选择 PEAK 事件",
"mode": "模式",
"selectMode": "选择模式",
"rollBack": "回到之前的状态",
"upRoll": "增加副属性",
"downRoll": "减少副属性",
"actions": "操作",
"avatars": "头像",
"quickView": "快速预览",
"extraSetting": "额外设置",
"disableCensorship": "禁用审查",
"hideUI": "隐藏界面",
"theoryCraftMode": "理论研究模式",
"cycleCount": "循环次数",
"pleaseSelectAllSubStats": "请选取所有副属性",
"subStatRollCountCannotBeZero": "副属性的行数不能为0"
}
}

44
next.config.ts Normal file
View File

@@ -0,0 +1,44 @@
import createNextIntlPlugin from "next-intl/plugin";
import type { NextConfig } from "next";
import bundleAnalyzer from "@next/bundle-analyzer";
const withBundleAnalyzer = bundleAnalyzer({
enabled: process.env.ANALYZE === "true",
});
const withNextIntl = createNextIntlPlugin();
const nextConfig: NextConfig = {
reactStrictMode: false,
output: "standalone",
images: {
unoptimized: true,
remotePatterns: [
{
protocol: "http",
hostname: "localhost",
pathname: "**",
},
{
protocol: "https",
hostname: "localhost",
pathname: "**",
},
{
protocol: "https",
hostname: "api.hakush.in",
pathname: "**",
},
{
protocol: "https",
hostname: "homdgcat.wiki",
pathname: "**",
},
],
},
compiler: {
styledComponents: true,
},
};
export default withBundleAnalyzer(withNextIntl(nextConfig));

48
package.json Normal file
View File

@@ -0,0 +1,48 @@
{
"name": "firefly-tools",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint ."
},
"dependencies": {
"@next/bundle-analyzer": "16.0.7",
"@tanstack/react-query": "^5.90.12",
"axios": "^1.13.2",
"fast-average-color": "^9.5.0",
"framer-motion": "^12.23.25",
"html2canvas-pro": "^1.5.13",
"lucide-react": "^0.555.0",
"next": "16.0.7",
"next-intl": "^4.5.8",
"react": "19.2.1",
"react-dom": "19.2.1",
"react-select": "^5.10.2",
"react-toastify": "^11.0.5",
"sharp": "^0.34.5",
"socket.io-client": "^4.8.1",
"zod": "^4.1.13",
"zustand": "^5.0.9"
},
"devDependencies": {
"@tailwindcss/postcss": "^4.1.17",
"@types/jest": "^30.0.0",
"@types/node": "^24.10.1",
"@types/react": "19.2.6",
"@types/react-dom": "19.2.3",
"daisyui": "^5.5.8",
"eslint": "^9.39.1",
"eslint-config-next": "16.0.7",
"tailwind-scrollbar": "^4.0.2",
"tailwindcss": "^4.1.17",
"ts-to-zod": "^5.1.0",
"typescript": "^5.9.3"
},
"overrides": {
"@types/react": "19.2.6",
"@types/react-dom": "19.2.3"
}
}

5
postcss.config.mjs Normal file
View File

@@ -0,0 +1,5 @@
const config = {
plugins: ["@tailwindcss/postcss"],
};
export default config;

BIN
public/ff-srtool.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

BIN
public/ff-srtool.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 846 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
public/icon/attack.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
public/icon/crit-rate.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
public/icon/defence.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
public/icon/effect-res.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
public/icon/fire-add.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
public/icon/fire.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

BIN
public/icon/hp.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
public/icon/ice-add.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
public/icon/ice.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 918 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
public/icon/imaginary.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
public/icon/knight.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
public/icon/mage.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
public/icon/memory.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
public/icon/physical.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1020 B

BIN
public/icon/priest.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
public/icon/quantum.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

BIN
public/icon/rogue.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
public/icon/shaman.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
public/icon/speed.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 984 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
public/icon/thunder.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 872 B

BIN
public/icon/warlock.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
public/icon/warrior.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
public/icon/wind-add.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
public/icon/wind.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 B

BIN
public/relics/BODY.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
public/relics/FOOT.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
public/relics/HAND.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Some files were not shown because too many files have changed in this diff Show More