diff --git a/.gitignore b/.gitignore
index b667f1f8..599c3fc7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@ pnpm-debug.log*
*.sw?
dist.tar.gz
+inspect.js
diff --git a/inspect.js b/inspect.js
deleted file mode 100644
index 88216495..00000000
--- a/inspect.js
+++ /dev/null
@@ -1,1442 +0,0 @@
-revision: bf7dd01
-[
- {
- 'process.env': {
- NODE_ENV: '"development"',
- BASE_URL: '"/"',
- MONA_VERSION: '"5.7.1"',
- MONA_BUILD_DATE: '"2022/6/28"',
- MONA_REVISION: '"bf7dd01"'
- }
- }
-]
-{
- mode: 'development',
- context: 'E:\\vue\\genshin_artifact',
- output: {
- hashFunction: 'xxhash64',
- path: 'E:\\vue\\genshin_artifact\\dist',
- filename: 'js/[name].js',
- publicPath: '/',
- chunkFilename: 'js/[name].js'
- },
- resolve: {
- alias: {
- '@': 'E:\\vue\\genshin_artifact\\src',
- vue$: 'vue/dist/vue.runtime.esm-bundler.js',
- '@c': 'E:\\vue\\genshin_artifact\\src\\components',
- '@asset': 'E:\\vue\\genshin_artifact\\src\\assets',
- '@util': 'E:\\vue\\genshin_artifact\\src\\utils',
- '@alg': 'E:\\vue\\genshin_artifact\\src\\algorithms',
- '@page': 'E:\\vue\\genshin_artifact\\src\\pages',
- '@worker': 'E:\\vue\\genshin_artifact\\src\\workers',
- '@const': 'E:\\vue\\genshin_artifact\\src\\constants',
- '@enemy': 'E:\\vue\\genshin_artifact\\src\\enemies',
- mona: 'E:\\vue\\genshin_artifact\\mona_wasm\\pkg',
- '@wasm': 'E:\\vue\\genshin_artifact\\src\\wasm',
- '@character': 'E:\\vue\\genshin_artifact\\src\\assets\\character',
- '@weapon': 'E:\\vue\\genshin_artifact\\src\\assets\\weapon',
- '@targetFunction': 'E:\\vue\\genshin_artifact\\src\\assets\\target_function',
- '@potentialFunction': 'E:\\vue\\genshin_artifact\\src\\assets\\potential_function',
- '@buff': 'E:\\vue\\genshin_artifact\\src\\assets\\buff',
- '@image': 'E:\\vue\\genshin_artifact\\src\\images',
- '@artifact': 'E:\\vue\\genshin_artifact\\src\\assets\\artifacts'
- },
- extensions: [
- '.tsx',
- '.ts',
- '.mjs',
- '.js',
- '.jsx',
- '.vue',
- '.json',
- '.wasm',
- '.vue',
- '.png',
- '.jpg',
- '.webp'
- ],
- modules: [
- 'node_modules',
- 'E:\\vue\\genshin_artifact\\node_modules',
- 'E:\\vue\\genshin_artifact\\node_modules\\@vue\\cli-service\\node_modules'
- ]
- },
- resolveLoader: {
- modules: [
- 'E:\\vue\\genshin_artifact\\node_modules\\@vue\\cli-plugin-typescript\\node_modules',
- 'E:\\vue\\genshin_artifact\\node_modules\\@vue\\cli-plugin-babel\\node_modules',
- 'node_modules',
- 'E:\\vue\\genshin_artifact\\node_modules',
- 'E:\\vue\\genshin_artifact\\node_modules\\@vue\\cli-service\\node_modules'
- ]
- },
- module: {
- noParse: /^(vue|vue-router|vuex|vuex-router-sync)$/,
- rules: [
- /* config.module.rule('esm') */
- {
- test: /\.m?jsx?$/,
- resolve: {
- fullySpecified: false
- }
- },
- /* config.module.rule('vue') */
- {
- test: /\.vue$/,
- use: [
- /* config.module.rule('vue').use('vue-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-loader\\dist\\index.js',
- options: {
- cacheDirectory: 'E:\\vue\\genshin_artifact\\node_modules\\.cache\\vue-loader',
- cacheIdentifier: 'c0ba2d4e',
- babelParserPlugins: [
- 'jsx',
- 'classProperties',
- 'decorators-legacy'
- ]
- }
- },
- /* config.module.rule('vue').use('ifdef') */
- {
- loader: 'ifdef-loader',
- options: {
- USE_CDN: false
- }
- }
- ]
- },
- /* config.module.rule('vue-style') */
- {
- test: /\.vue$/,
- resourceQuery: /type=style/,
- sideEffects: true
- },
- /* config.module.rule('pug') */
- {
- test: /\.pug$/,
- oneOf: [
- /* config.module.rule('pug').oneOf('pug-vue') */
- {
- resourceQuery: /vue/,
- use: [
- /* config.module.rule('pug').oneOf('pug-vue').use('pug-plain-loader') */
- {
- loader: 'pug-plain-loader'
- }
- ]
- },
- /* config.module.rule('pug').oneOf('pug-template') */
- {
- use: [
- /* config.module.rule('pug').oneOf('pug-template').use('raw') */
- {
- loader: 'raw-loader'
- },
- /* config.module.rule('pug').oneOf('pug-template').use('pug-plain-loader') */
- {
- loader: 'pug-plain-loader'
- }
- ]
- }
- ]
- },
- /* config.module.rule('svg') */
- {
- test: /\.(svg)(\?.*)?$/,
- type: 'asset/resource',
- generator: {
- filename: 'img/[name].[hash:8][ext]'
- }
- },
- /* config.module.rule('images') */
- {
- test: /\.(png|jpe?g|gif|webp|avif)(\?.*)?$/,
- type: 'asset',
- generator: {
- filename: 'img/[name].[hash:8][ext]'
- }
- },
- /* config.module.rule('media') */
- {
- test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
- type: 'asset',
- generator: {
- filename: 'media/[name].[hash:8][ext]'
- }
- },
- /* config.module.rule('fonts') */
- {
- test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/i,
- type: 'asset',
- generator: {
- filename: 'fonts/[name].[hash:8][ext]'
- }
- },
- /* config.module.rule('css') */
- {
- test: /\.css$/,
- oneOf: [
- /* config.module.rule('css').oneOf('vue-modules') */
- {
- resourceQuery: /module/,
- use: [
- /* config.module.rule('css').oneOf('vue-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('css').oneOf('vue-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2,
- modules: {
- localIdentName: '[name]_[local]_[hash:base64:5]',
- auto: () => true
- }
- }
- },
- /* config.module.rule('css').oneOf('vue-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- }
- ]
- },
- /* config.module.rule('css').oneOf('vue') */
- {
- resourceQuery: /\?vue/,
- use: [
- /* config.module.rule('css').oneOf('vue').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('css').oneOf('vue').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('css').oneOf('vue').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- }
- ]
- },
- /* config.module.rule('css').oneOf('normal-modules') */
- {
- test: /\.module\.\w+$/,
- use: [
- /* config.module.rule('css').oneOf('normal-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('css').oneOf('normal-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('css').oneOf('normal-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- }
- ]
- },
- /* config.module.rule('css').oneOf('normal') */
- {
- use: [
- /* config.module.rule('css').oneOf('normal').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('css').oneOf('normal').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('css').oneOf('normal').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- }
- ]
- }
- ]
- },
- /* config.module.rule('postcss') */
- {
- test: /\.p(ost)?css$/,
- oneOf: [
- /* config.module.rule('postcss').oneOf('vue-modules') */
- {
- resourceQuery: /module/,
- use: [
- /* config.module.rule('postcss').oneOf('vue-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('postcss').oneOf('vue-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2,
- modules: {
- localIdentName: '[name]_[local]_[hash:base64:5]',
- auto: () => true
- }
- }
- },
- /* config.module.rule('postcss').oneOf('vue-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- }
- ]
- },
- /* config.module.rule('postcss').oneOf('vue') */
- {
- resourceQuery: /\?vue/,
- use: [
- /* config.module.rule('postcss').oneOf('vue').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('postcss').oneOf('vue').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('postcss').oneOf('vue').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- }
- ]
- },
- /* config.module.rule('postcss').oneOf('normal-modules') */
- {
- test: /\.module\.\w+$/,
- use: [
- /* config.module.rule('postcss').oneOf('normal-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('postcss').oneOf('normal-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('postcss').oneOf('normal-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- }
- ]
- },
- /* config.module.rule('postcss').oneOf('normal') */
- {
- use: [
- /* config.module.rule('postcss').oneOf('normal').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('postcss').oneOf('normal').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('postcss').oneOf('normal').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- }
- ]
- }
- ]
- },
- /* config.module.rule('scss') */
- {
- test: /\.scss$/,
- oneOf: [
- /* config.module.rule('scss').oneOf('vue-modules') */
- {
- resourceQuery: /module/,
- use: [
- /* config.module.rule('scss').oneOf('vue-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('scss').oneOf('vue-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2,
- modules: {
- localIdentName: '[name]_[local]_[hash:base64:5]',
- auto: () => true
- }
- }
- },
- /* config.module.rule('scss').oneOf('vue-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('scss').oneOf('vue-modules').use('sass-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\sass-loader\\dist\\cjs.js',
- options: {
- sourceMap: false
- }
- }
- ]
- },
- /* config.module.rule('scss').oneOf('vue') */
- {
- resourceQuery: /\?vue/,
- use: [
- /* config.module.rule('scss').oneOf('vue').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('scss').oneOf('vue').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('scss').oneOf('vue').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('scss').oneOf('vue').use('sass-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\sass-loader\\dist\\cjs.js',
- options: {
- sourceMap: false
- }
- }
- ]
- },
- /* config.module.rule('scss').oneOf('normal-modules') */
- {
- test: /\.module\.\w+$/,
- use: [
- /* config.module.rule('scss').oneOf('normal-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('scss').oneOf('normal-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('scss').oneOf('normal-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('scss').oneOf('normal-modules').use('sass-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\sass-loader\\dist\\cjs.js',
- options: {
- sourceMap: false
- }
- }
- ]
- },
- /* config.module.rule('scss').oneOf('normal') */
- {
- use: [
- /* config.module.rule('scss').oneOf('normal').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('scss').oneOf('normal').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('scss').oneOf('normal').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('scss').oneOf('normal').use('sass-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\sass-loader\\dist\\cjs.js',
- options: {
- sourceMap: false
- }
- }
- ]
- }
- ]
- },
- /* config.module.rule('sass') */
- {
- test: /\.sass$/,
- oneOf: [
- /* config.module.rule('sass').oneOf('vue-modules') */
- {
- resourceQuery: /module/,
- use: [
- /* config.module.rule('sass').oneOf('vue-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('sass').oneOf('vue-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2,
- modules: {
- localIdentName: '[name]_[local]_[hash:base64:5]',
- auto: () => true
- }
- }
- },
- /* config.module.rule('sass').oneOf('vue-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('sass').oneOf('vue-modules').use('sass-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\sass-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- sassOptions: {
- indentedSyntax: true
- }
- }
- }
- ]
- },
- /* config.module.rule('sass').oneOf('vue') */
- {
- resourceQuery: /\?vue/,
- use: [
- /* config.module.rule('sass').oneOf('vue').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('sass').oneOf('vue').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('sass').oneOf('vue').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('sass').oneOf('vue').use('sass-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\sass-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- sassOptions: {
- indentedSyntax: true
- }
- }
- }
- ]
- },
- /* config.module.rule('sass').oneOf('normal-modules') */
- {
- test: /\.module\.\w+$/,
- use: [
- /* config.module.rule('sass').oneOf('normal-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('sass').oneOf('normal-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('sass').oneOf('normal-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('sass').oneOf('normal-modules').use('sass-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\sass-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- sassOptions: {
- indentedSyntax: true
- }
- }
- }
- ]
- },
- /* config.module.rule('sass').oneOf('normal') */
- {
- use: [
- /* config.module.rule('sass').oneOf('normal').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('sass').oneOf('normal').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('sass').oneOf('normal').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('sass').oneOf('normal').use('sass-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\sass-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- sassOptions: {
- indentedSyntax: true
- }
- }
- }
- ]
- }
- ]
- },
- /* config.module.rule('less') */
- {
- test: /\.less$/,
- oneOf: [
- /* config.module.rule('less').oneOf('vue-modules') */
- {
- resourceQuery: /module/,
- use: [
- /* config.module.rule('less').oneOf('vue-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('less').oneOf('vue-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2,
- modules: {
- localIdentName: '[name]_[local]_[hash:base64:5]',
- auto: () => true
- }
- }
- },
- /* config.module.rule('less').oneOf('vue-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('less').oneOf('vue-modules').use('less-loader') */
- {
- loader: 'less-loader',
- options: {
- sourceMap: false
- }
- }
- ]
- },
- /* config.module.rule('less').oneOf('vue') */
- {
- resourceQuery: /\?vue/,
- use: [
- /* config.module.rule('less').oneOf('vue').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('less').oneOf('vue').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('less').oneOf('vue').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('less').oneOf('vue').use('less-loader') */
- {
- loader: 'less-loader',
- options: {
- sourceMap: false
- }
- }
- ]
- },
- /* config.module.rule('less').oneOf('normal-modules') */
- {
- test: /\.module\.\w+$/,
- use: [
- /* config.module.rule('less').oneOf('normal-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('less').oneOf('normal-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('less').oneOf('normal-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('less').oneOf('normal-modules').use('less-loader') */
- {
- loader: 'less-loader',
- options: {
- sourceMap: false
- }
- }
- ]
- },
- /* config.module.rule('less').oneOf('normal') */
- {
- use: [
- /* config.module.rule('less').oneOf('normal').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('less').oneOf('normal').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('less').oneOf('normal').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('less').oneOf('normal').use('less-loader') */
- {
- loader: 'less-loader',
- options: {
- sourceMap: false
- }
- }
- ]
- }
- ]
- },
- /* config.module.rule('stylus') */
- {
- test: /\.styl(us)?$/,
- oneOf: [
- /* config.module.rule('stylus').oneOf('vue-modules') */
- {
- resourceQuery: /module/,
- use: [
- /* config.module.rule('stylus').oneOf('vue-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('stylus').oneOf('vue-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2,
- modules: {
- localIdentName: '[name]_[local]_[hash:base64:5]',
- auto: () => true
- }
- }
- },
- /* config.module.rule('stylus').oneOf('vue-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('stylus').oneOf('vue-modules').use('stylus-loader') */
- {
- loader: 'stylus-loader',
- options: {
- sourceMap: false
- }
- }
- ]
- },
- /* config.module.rule('stylus').oneOf('vue') */
- {
- resourceQuery: /\?vue/,
- use: [
- /* config.module.rule('stylus').oneOf('vue').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('stylus').oneOf('vue').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('stylus').oneOf('vue').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('stylus').oneOf('vue').use('stylus-loader') */
- {
- loader: 'stylus-loader',
- options: {
- sourceMap: false
- }
- }
- ]
- },
- /* config.module.rule('stylus').oneOf('normal-modules') */
- {
- test: /\.module\.\w+$/,
- use: [
- /* config.module.rule('stylus').oneOf('normal-modules').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('stylus').oneOf('normal-modules').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('stylus').oneOf('normal-modules').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('stylus').oneOf('normal-modules').use('stylus-loader') */
- {
- loader: 'stylus-loader',
- options: {
- sourceMap: false
- }
- }
- ]
- },
- /* config.module.rule('stylus').oneOf('normal') */
- {
- use: [
- /* config.module.rule('stylus').oneOf('normal').use('vue-style-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\vue-style-loader\\index.js',
- options: {
- sourceMap: false,
- shadowMode: false
- }
- },
- /* config.module.rule('stylus').oneOf('normal').use('css-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\css-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- importLoaders: 2
- }
- },
- /* config.module.rule('stylus').oneOf('normal').use('postcss-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\postcss-loader\\dist\\cjs.js',
- options: {
- sourceMap: false,
- postcssOptions: {
- plugins: [
- function () { /* omitted long function */ }
- ]
- }
- }
- },
- /* config.module.rule('stylus').oneOf('normal').use('stylus-loader') */
- {
- loader: 'stylus-loader',
- options: {
- sourceMap: false
- }
- }
- ]
- }
- ]
- },
- /* config.module.rule('js') */
- {
- test: /\.m?jsx?$/,
- exclude: [
- function () { /* omitted long function */ }
- ],
- use: [
- /* config.module.rule('js').use('babel-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\babel-loader\\lib\\index.js',
- options: {
- cacheCompression: false,
- cacheDirectory: 'E:\\vue\\genshin_artifact\\node_modules\\.cache\\babel-loader',
- cacheIdentifier: '6dbda1ba'
- }
- },
- /* config.module.rule('js').use('ifdef') */
- {
- loader: 'ifdef-loader',
- options: {
- USE_CDN: false
- }
- }
- ]
- },
- /* config.module.rule('ts') */
- {
- test: /\.ts$/,
- use: [
- /* config.module.rule('ts').use('babel-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\babel-loader\\lib\\index.js'
- },
- /* config.module.rule('ts').use('ts-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\ts-loader\\index.js',
- options: {
- transpileOnly: true,
- appendTsSuffixTo: [
- '\\.vue$'
- ],
- happyPackMode: false
- }
- }
- ]
- },
- /* config.module.rule('tsx') */
- {
- test: /\.tsx$/,
- use: [
- /* config.module.rule('tsx').use('babel-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\babel-loader\\lib\\index.js'
- },
- /* config.module.rule('tsx').use('ts-loader') */
- {
- loader: 'E:\\vue\\genshin_artifact\\node_modules\\ts-loader\\index.js',
- options: {
- transpileOnly: true,
- happyPackMode: false,
- appendTsxSuffixTo: [
- '\\.vue$'
- ]
- }
- }
- ]
- }
- ]
- },
- optimization: {
- realContentHash: false,
- splitChunks: {
- cacheGroups: {
- defaultVendors: {
- name: 'chunk-vendors',
- test: /[\\/]node_modules[\\/]/,
- priority: -10,
- chunks: 'initial'
- },
- common: {
- name: 'chunk-common',
- minChunks: 2,
- priority: -20,
- chunks: 'initial',
- reuseExistingChunk: true
- }
- }
- },
- minimizer: [
- /* config.optimization.minimizer('terser') */
- new TerserPlugin(
- {
- terserOptions: {
- compress: {
- arrows: false,
- collapse_vars: false,
- comparisons: false,
- computed_props: false,
- hoist_funs: false,
- hoist_props: false,
- hoist_vars: false,
- inline: false,
- loops: false,
- negate_iife: false,
- properties: false,
- reduce_funcs: false,
- reduce_vars: false,
- switches: false,
- toplevel: false,
- typeofs: false,
- booleans: true,
- if_return: true,
- sequences: true,
- unused: true,
- conditionals: true,
- dead_code: true,
- evaluate: true
- },
- mangle: {
- safari10: true
- }
- },
- parallel: true,
- extractComments: false
- }
- )
- ]
- },
- plugins: [
- /* config.plugin('vue-loader') */
- new VueLoaderPlugin(),
- /* config.plugin('feature-flags') */
- new DefinePlugin(
- {
- __VUE_OPTIONS_API__: 'true',
- __VUE_PROD_DEVTOOLS__: 'false'
- }
- ),
- /* config.plugin('define') */
- new DefinePlugin(
- {
- 'process.env': {
- NODE_ENV: '"development"',
- BASE_URL: '"/"',
- MONA_VERSION: '"5.7.1"',
- MONA_BUILD_DATE: '"2022/6/28"',
- MONA_REVISION: '"bf7dd01"'
- }
- }
- ),
- /* config.plugin('case-sensitive-paths') */
- new CaseSensitivePathsPlugin(),
- /* config.plugin('friendly-errors') */
- new FriendlyErrorsWebpackPlugin(
- {
- additionalTransformers: [
- function () { /* omitted long function */ }
- ],
- additionalFormatters: [
- function () { /* omitted long function */ }
- ]
- }
- ),
- /* config.plugin('html') */
- new HtmlWebpackPlugin(
- {
- title: 'genshin_artifacts',
- scriptLoading: 'defer',
- templateParameters: function () { /* omitted long function */ },
- template: 'E:\\vue\\genshin_artifact\\public\\index.html'
- }
- ),
- /* config.plugin('copy') */
- new CopyPlugin(
- {
- patterns: [
- {
- from: 'E:\\vue\\genshin_artifact\\public',
- to: 'E:\\vue\\genshin_artifact\\dist',
- toType: 'dir',
- noErrorOnMissing: true,
- globOptions: {
- ignore: [
- '**/.DS_Store',
- 'E:/vue/genshin_artifact/public/index.html'
- ]
- },
- info: {
- minimized: true
- }
- }
- ]
- }
- ),
- /* config.plugin('eslint') */
- new ESLintWebpackPlugin(
- {
- extensions: [
- '.js',
- '.jsx',
- '.vue',
- '.ts',
- '.tsx'
- ],
- cwd: 'E:\\vue\\genshin_artifact',
- cache: true,
- cacheLocation: 'E:\\vue\\genshin_artifact\\node_modules\\.cache\\eslint\\8c822818.json',
- context: 'E:\\vue\\genshin_artifact',
- failOnWarning: false,
- failOnError: true,
- eslintPath: 'E:\\vue\\genshin_artifact\\node_modules\\eslint',
- formatter: 'stylish'
- }
- ),
- /* config.plugin('fork-ts-checker') */
- new ForkTsCheckerWebpackPlugin(
- {
- typescript: {
- extensions: {
- vue: {
- enabled: true,
- compiler: 'E:\\vue\\genshin_artifact\\node_modules\\vue\\compiler-sfc\\index.js'
- }
- },
- diagnosticOptions: {
- semantic: true,
- syntactic: false
- }
- }
- }
- ),
- /* config.plugin('monaco') */
- {},
- {
- apply: function () { /* omitted long function */ }
- },
- {
- apply: function () { /* omitted long function */ }
- },
- {
- apply: function () { /* omitted long function */ }
- }
- ],
- entry: {
- app: [
- './src/main.ts'
- ]
- },
- externals: {
- vue: [
- 'https://npm.elemecdn.com/vue@3.2.36/dist/vue.global.prod.js',
- 'Vue'
- ],
- 'vue-router': [
- 'https://npm.elemecdn.com/vue-router@4.0.16/dist/vue-router.global.prod.js',
- 'VueRouter'
- ],
- 'echarts/core': [
- 'https://npm.elemecdn.com/echarts@5.3.3/core.js',
- 'echarts'
- ],
- 'vue-echarts': [
- 'https://npm.elemecdn.com/vue-echarts@6.1.0/dist/index.umd.min.js',
- 'VueECharts'
- ],
- 'monaco-editor': 'var monaco'
- },
- externalsType: 'script',
- experiments: {
- asyncWebAssembly: true
- }
-}
diff --git a/loaders/character_templates/bool_config.mustache b/loaders/character_templates/bool_config.mustache
deleted file mode 100644
index be31a41c..00000000
--- a/loaders/character_templates/bool_config.mustache
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
{{title}}
-
-
\ No newline at end of file
diff --git a/loaders/character_templates/character_config.mustache b/loaders/character_templates/character_config.mustache
deleted file mode 100644
index 0e7bb852..00000000
--- a/loaders/character_templates/character_config.mustache
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
- {{#items}}
- {{{html}}}
- {{/items}}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/loaders/character_templates/character_skill_config.mustache b/loaders/character_templates/character_skill_config.mustache
deleted file mode 100644
index e79fed84..00000000
--- a/loaders/character_templates/character_skill_config.mustache
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
- {{#items}}
- {{{html}}}
- {{/items}}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/loaders/character_templates/float_config.mustache b/loaders/character_templates/float_config.mustache
deleted file mode 100644
index 6f4c2b8b..00000000
--- a/loaders/character_templates/float_config.mustache
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
{{title}}
-
-
\ No newline at end of file
diff --git a/loaders/character_templates/int_config.mustache b/loaders/character_templates/int_config.mustache
deleted file mode 100644
index c69a66f7..00000000
--- a/loaders/character_templates/int_config.mustache
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
{{title}}
-
-
\ No newline at end of file
diff --git a/loaders/example.yaml b/loaders/example.yaml
deleted file mode 100644
index 1d4cdc7c..00000000
--- a/loaders/example.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-type: weapon
-weaponName: MistsplitterReforged
-configs:
- - type: float
- min: 0
- max: 10
- name: level
- title: "Title"
- default: 0
\ No newline at end of file
diff --git a/loaders/i18n_loader.js b/loaders/i18n_loader.js
new file mode 100644
index 00000000..e68b5248
--- /dev/null
+++ b/loaders/i18n_loader.js
@@ -0,0 +1,32 @@
+const fs = require("fs")
+const path = require("path")
+const Mustache = require("mustache")
+
+const templatePath = path.resolve(__dirname, "i18n_loader_template.mustache")
+const template = fs.readFileSync(templatePath).toString()
+
+module.exports = function (source) {
+ this.addDependency(templatePath)
+
+ const composingObject = JSON.parse(source)
+
+ const itemList = []
+
+ let it = 0
+ for (const item of composingObject) {
+ const name = `import${it}`
+ it++
+ itemList.push({
+ name,
+ path: item.path,
+ prefix: item.prefix,
+ })
+ }
+
+ const rendered = Mustache.render(template, {
+ items: itemList
+ })
+
+ console.log(rendered)
+ return rendered
+}
diff --git a/loaders/i18n_loader_template.mustache b/loaders/i18n_loader_template.mustache
new file mode 100644
index 00000000..0559a8f7
--- /dev/null
+++ b/loaders/i18n_loader_template.mustache
@@ -0,0 +1,41 @@
+{{#items}}
+import {{name}} from "{{{path}}}"
+{{/items}}
+
+function create_object(prefix, obj) {
+ if (prefix === "") {
+ return obj
+ } else {
+ let temp = obj
+ const paths = prefix.split(".")
+ const reversed = paths.reverse()
+ for (const s of reversed) {
+ temp = {
+ [s]: temp
+ }
+ }
+ return temp
+ }
+}
+
+function merge_objects(li) {
+ const result = {}
+ for (const item of li) {
+ for (const k of Object.keys(item)) {
+ if (result[k]) {
+ console.log("duplicate key: " + k)
+ } else {
+ result[k] = item[k]
+ }
+ }
+ }
+ return result
+}
+
+const objects = []
+
+{{#items}}
+objects.push(create_object("{{prefix}}", {{name}}))
+{{/items}}
+
+export default merge_objects(objects)
diff --git a/loaders/meta_loader.js b/loaders/meta_loader.js
deleted file mode 100644
index fb08f0de..00000000
--- a/loaders/meta_loader.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const path = require("path")
-const fs = require("fs")
-const { execSync } = require("child_process")
-
-
-function get_meta(name) {
- // let cmd = path.resolve(__dirname, `../mona/target/release/gen_${name}_meta`)
- // if (!fs.existsSync(cmd)) {
- // cmd = path.resolve(__dirname, `../mona/target/debug/gen_${name}_meta`)
- // }
- // if (!fs.existsSync(cmd)) {
- // cmd = `cargo run --release --bin gen_${name}_meta`
- cmd = path.resolve(__dirname, `../mona/target/release/gen_${name}_meta`)
- // }
- console.log(cmd)
-
- let stdout = execSync(cmd, { cwd: path.resolve(__dirname, "../mona") })
- let ret = stdout.toString();
- // console.log(ret)
-
- return ret
-}
-
-// get_weapon_meta()
-
-module.exports = function (source) {
- const options = this.getOptions()
-
- return get_meta(options.type)
-}
diff --git a/loaders/target_function_templates/bool_config.mustache b/loaders/target_function_templates/bool_config.mustache
deleted file mode 100644
index b17d66f8..00000000
--- a/loaders/target_function_templates/bool_config.mustache
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
{{title}}
-
-
\ No newline at end of file
diff --git a/loaders/target_function_templates/float_config.mustache b/loaders/target_function_templates/float_config.mustache
deleted file mode 100644
index a772e90d..00000000
--- a/loaders/target_function_templates/float_config.mustache
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
{{title}}
-
-
\ No newline at end of file
diff --git a/loaders/target_function_templates/int_config.mustache b/loaders/target_function_templates/int_config.mustache
deleted file mode 100644
index 58e53794..00000000
--- a/loaders/target_function_templates/int_config.mustache
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
{{title}}
-
-
\ No newline at end of file
diff --git a/loaders/target_function_templates/target_function_config.mustache b/loaders/target_function_templates/target_function_config.mustache
deleted file mode 100644
index eea25409..00000000
--- a/loaders/target_function_templates/target_function_config.mustache
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
- {{#items}}
- {{{html}}}
- {{/items}}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/loaders/weapon_templates/bool_config.mustache b/loaders/weapon_templates/bool_config.mustache
deleted file mode 100644
index 2905cd9c..00000000
--- a/loaders/weapon_templates/bool_config.mustache
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
{{title}}
-
-
\ No newline at end of file
diff --git a/loaders/weapon_templates/float_config.mustache b/loaders/weapon_templates/float_config.mustache
deleted file mode 100644
index 471b9bb6..00000000
--- a/loaders/weapon_templates/float_config.mustache
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
{{title}}
-
-
\ No newline at end of file
diff --git a/loaders/weapon_templates/int_config.mustache b/loaders/weapon_templates/int_config.mustache
deleted file mode 100644
index daa5ffae..00000000
--- a/loaders/weapon_templates/int_config.mustache
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
{{title}}
-
-
\ No newline at end of file
diff --git a/loaders/weapon_templates/weapon_config.mustache b/loaders/weapon_templates/weapon_config.mustache
deleted file mode 100644
index f8062f86..00000000
--- a/loaders/weapon_templates/weapon_config.mustache
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
- {{#items}}
- {{{html}}}
- {{/items}}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mona_core/src/character/characters/cryo/aloy.rs b/mona_core/src/character/characters/cryo/aloy.rs
index 266bd16f..1f235058 100644
--- a/mona_core/src/character/characters/cryo/aloy.rs
+++ b/mona_core/src/character/characters/cryo/aloy.rs
@@ -64,7 +64,6 @@ pub const ALOY_SKILL: AloySkillType = AloySkillType {
pub const ALOY_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Aloy,
internal_name: "Aloy",
- chs: "埃洛伊",
element: Element::Cryo,
hp: [848, 2201, 2928, 4382, 4899, 5636, 6325, 7070, 7587, 8339, 8856, 9616, 10133, 10899],
atk: [18, 47, 63, 94, 105, 121, 136, 152, 163, 179, 190, 206, 217, 234],
@@ -72,9 +71,18 @@ pub const ALOY_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus288(StatName::CryoBonus),
weapon_type: WeaponType::Bow,
star: 5,
- skill_name1: "普通攻击·快速射击",
- skill_name2: "冰尘雪野",
- skill_name3: "曙光预言",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·快速射击",
+ en: "Normal Attack: Rapid Fire",
+ ),
+ skill_name2: locale!(
+ zh_cn: "冰尘雪野",
+ en: "Frozen Wilds",
+ ),
+ skill_name3: locale!(
+ zh_cn: "曙光预言",
+ en: "Prophecies of Dawn",
+ ),
name_locale: locale!(
zh_cn: "埃洛伊",
en: "Aloy",
diff --git a/mona_core/src/character/characters/cryo/chongyun.rs b/mona_core/src/character/characters/cryo/chongyun.rs
index 398322ec..236b5e9d 100644
--- a/mona_core/src/character/characters/cryo/chongyun.rs
+++ b/mona_core/src/character/characters/cryo/chongyun.rs
@@ -49,7 +49,6 @@ pub const CHONGYUN_SKILL: ChongyunSkillType = ChongyunSkillType {
pub const CHONGYUN_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Chongyun,
internal_name: "Chongyun",
- chs: "重云",
element: Element::Cryo,
hp: [921, 2366, 3054, 4574, 5063, 5824, 6475, 7236, 7725, 8485, 8974, 9734, 10223, 10984],
atk: [19, 48, 62, 93, 103, 118, 131, 147, 157, 172, 182, 197, 208, 223],
@@ -57,9 +56,18 @@ pub const CHONGYUN_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ATK240,
weapon_type: WeaponType::Claymore,
star: 4,
- skill_name1: "普通攻击·灭邪四式",
- skill_name2: "灵刃·重华叠霜",
- skill_name3: "灵刃·云开星落",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·灭邪四式",
+ en: "Normal Attack: Demonbane",
+ ),
+ skill_name2: locale!(
+ zh_cn: "灵刃·重华叠霜",
+ en: "Spirit Blade: Chonghua's Layered Frost",
+ ),
+ skill_name3: locale!(
+ zh_cn: "灵刃·云开星落",
+ en: "Spirit Blade: Cloud-Parting Star",
+ ),
name_locale: locale!(
zh_cn: "重云",
en: "Chongyun",
diff --git a/mona_core/src/character/characters/cryo/diona.rs b/mona_core/src/character/characters/cryo/diona.rs
index 41d54fde..40e4fc75 100644
--- a/mona_core/src/character/characters/cryo/diona.rs
+++ b/mona_core/src/character/characters/cryo/diona.rs
@@ -61,7 +61,6 @@ pub const DIONA_SKILL: DionaSkillType = DionaSkillType {
pub const DIONA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Diona,
internal_name: "Diona",
- chs: "迪奥娜",
element: Element::Cryo,
hp: [802, 2061, 2661, 3985, 4411, 5074, 5642, 6305, 6731, 7393, 7818, 8481, 8907, 9570],
atk: [18, 46, 59, 88, 98, 113, 125, 140, 149, 164, 174, 188, 198, 212],
@@ -69,9 +68,18 @@ pub const DIONA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus240(StatName::CryoBonus),
weapon_type: WeaponType::Bow,
star: 4,
- skill_name1: "普通攻击·猎人射术",
- skill_name2: "猫爪冻冻",
- skill_name3: "最烈特调",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·猎人射术",
+ en: "Normal Attack: Kätzlein Style",
+ ),
+ skill_name2: locale!(
+ zh_cn: "猫爪冻冻",
+ en: "Icy Paws",
+ ),
+ skill_name3: locale!(
+ zh_cn: "最烈特调",
+ en: "Signature Mix",
+ ),
name_locale: locale!(
zh_cn: "迪奥娜",
en: "Diona",
diff --git a/mona_core/src/character/characters/cryo/eula.rs b/mona_core/src/character/characters/cryo/eula.rs
index 4b856549..bd566c51 100644
--- a/mona_core/src/character/characters/cryo/eula.rs
+++ b/mona_core/src/character/characters/cryo/eula.rs
@@ -70,7 +70,6 @@ pub const EULA_SKILL: EulaSkillType = EulaSkillType {
pub const EULA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Eula,
internal_name: "Eula",
- chs: "优菈",
element: Element::Cryo,
hp: [1030, 2671, 3554, 5317, 5944, 6839, 7675, 8579, 9207, 10119, 10746, 11699, 12296, 13226],
atk: [27, 69, 92, 138, 154, 177, 198, 222, 238, 262, 278, 302, 318, 342],
@@ -78,9 +77,18 @@ pub const EULA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::CriticalDamage384,
weapon_type: WeaponType::Claymore,
star: 5,
- skill_name1: "普通攻击·西风剑术·宗室",
- skill_name2: "冰潮的涡旋",
- skill_name3: "凝浪之光剑",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·西风剑术·宗室",
+ en: "Normal Attack: Favonius Bladework - Edel",
+ ),
+ skill_name2: locale!(
+ zh_cn: "冰潮的涡旋",
+ en: "Icetide Vortex",
+ ),
+ skill_name3: locale!(
+ zh_cn: "凝浪之光剑",
+ en: "Glacial Illumination",
+ ),
name_locale: locale!(
zh_cn: "优菈",
en: "Eula",
diff --git a/mona_core/src/character/characters/cryo/ganyu.rs b/mona_core/src/character/characters/cryo/ganyu.rs
index d03d9b46..f1c7ed07 100644
--- a/mona_core/src/character/characters/cryo/ganyu.rs
+++ b/mona_core/src/character/characters/cryo/ganyu.rs
@@ -61,7 +61,6 @@ pub const GANYU_SKILL: GanyuSkillType = GanyuSkillType {
pub const GANYU_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Ganyu,
internal_name: "Ganyu",
- chs: "甘雨",
element: Element::Cryo,
hp: [763, 1978, 2632, 3939, 4403, 5066, 5686, 6355, 6820, 7495, 7960, 8643, 9108, 9797],
atk: [26, 68, 90, 135, 151, 173, 194, 217, 233, 256, 272, 295, 311, 335],
@@ -69,9 +68,18 @@ pub const GANYU_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::CriticalDamage384,
weapon_type: WeaponType::Bow,
star: 5,
- skill_name1: "普通攻击·流天射术",
- skill_name2: "山泽麟迹",
- skill_name3: "降众天华",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·流天射术",
+ en: "Normal Attack: Liutian Archery",
+ ),
+ skill_name2: locale!(
+ zh_cn: "山泽麟迹",
+ en: "Trail of the Qilin",
+ ),
+ skill_name3: locale!(
+ zh_cn: "降众天华",
+ en: "Celestial Shower",
+ ),
name_locale: locale!(
zh_cn: "甘雨",
en: "Ganyu",
diff --git a/mona_core/src/character/characters/cryo/kaeya.rs b/mona_core/src/character/characters/cryo/kaeya.rs
index 93bac28f..4d55b5c4 100644
--- a/mona_core/src/character/characters/cryo/kaeya.rs
+++ b/mona_core/src/character/characters/cryo/kaeya.rs
@@ -50,7 +50,6 @@ pub const KAEYA_SKILL: KaeyaSkillType = KaeyaSkillType {
pub const KAEYA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Kaeya,
internal_name: "Kaeya",
- chs: "凯亚",
element: Element::Cryo,
hp: [976, 2506, 3235, 4846, 5364, 6170, 6860, 7666, 8184, 8989, 9507, 10312, 10830, 11636],
atk: [19, 48, 62, 93, 103, 118, 131, 147, 157, 172, 182, 198, 208, 223],
@@ -58,9 +57,18 @@ pub const KAEYA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Recharge267,
weapon_type: WeaponType::Sword,
star: 4,
- skill_name1: "普通攻击·仪典剑术",
- skill_name2: "霜袭",
- skill_name3: "凛冽轮舞",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·仪典剑术",
+ en: "Normal Attack: Ceremonial Bladework",
+ ),
+ skill_name2: locale!(
+ zh_cn: "霜袭",
+ en: "Frostgnaw",
+ ),
+ skill_name3: locale!(
+ zh_cn: "凛冽轮舞",
+ en: "Glacial Waltz",
+ ),
name_locale: locale!(
zh_cn: "凯亚",
en: "Kaeya",
diff --git a/mona_core/src/character/characters/cryo/kamisato_ayaka.rs b/mona_core/src/character/characters/cryo/kamisato_ayaka.rs
index 0c719e03..b38eb558 100644
--- a/mona_core/src/character/characters/cryo/kamisato_ayaka.rs
+++ b/mona_core/src/character/characters/cryo/kamisato_ayaka.rs
@@ -52,7 +52,6 @@ pub const KAMISATO_AYAKA_SKILL: KamisatoAyakaSkillType = KamisatoAyakaSkillType
pub const KAMISATO_AYAKA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::KamisatoAyaka,
internal_name: "Ayaka",
- chs: "神里绫华",
element: Element::Cryo,
hp: [1011, 2597, 3455, 5170, 5779, 6649, 7462, 8341, 8951, 9838, 10448, 11345, 11954, 12858],
atk: [27, 69, 92, 138, 154, 177, 198, 222, 238, 262, 278, 302, 318, 342],
@@ -60,9 +59,18 @@ pub const KAMISATO_AYAKA_STATIC_DATA: CharacterStaticData = CharacterStaticData
sub_stat: CharacterSubStatFamily::CriticalDamage384,
weapon_type: WeaponType::Sword,
star: 5,
- skill_name1: "普通攻击·神里流·倾",
- skill_name2: "神里流·冰华",
- skill_name3: "神里流·霜灭",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·神里流·倾",
+ en: "Normal Attack: Kamisato Art - Kabuki",
+ ),
+ skill_name2: locale!(
+ zh_cn: "神里流·冰华",
+ en: "Kamisato Art: Hyouka",
+ ),
+ skill_name3: locale!(
+ zh_cn: "神里流·霜灭",
+ en: "Kamisato Art: Soumetsu",
+ ),
name_locale: locale!(
zh_cn: "神里绫华",
en: "Kamisato Ayaka",
diff --git a/mona_core/src/character/characters/cryo/layla.rs b/mona_core/src/character/characters/cryo/layla.rs
index 60e1ffd6..d4897e89 100644
--- a/mona_core/src/character/characters/cryo/layla.rs
+++ b/mona_core/src/character/characters/cryo/layla.rs
@@ -90,7 +90,6 @@ impl CharacterTrait for Layla {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Layla,
internal_name: "Layla",
- chs: "",
element: Element::Cryo,
hp: [930, 2389, 3084, 4619, 5113, 5881, 6540, 7308, 7801, 8569, 9062, 9831, 10324, 11092],
atk: [18, 47, 60, 90, 100, 115, 128, 143, 152, 167, 177, 192, 202, 217],
@@ -98,9 +97,18 @@ impl CharacterTrait for Layla {
sub_stat: CharacterSubStatFamily::HP240,
weapon_type: WeaponType::Sword,
star: 4,
- skill_name1: "",
- skill_name2: "",
- skill_name3: "",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·熠辉轨度剑",
+ en: "Normal Attack: Sword of the Radiant Path",
+ ),
+ skill_name2: locale!(
+ zh_cn: "垂裳端凝之夜",
+ en: "Nights of Formal Focus",
+ ),
+ skill_name3: locale!(
+ zh_cn: "星流摇床之梦",
+ en: "Dream of the Star-Stream Shaker",
+ ),
name_locale: locale!(
zh_cn: "莱依拉",
en: "Layla",
diff --git a/mona_core/src/character/characters/cryo/qiqi.rs b/mona_core/src/character/characters/cryo/qiqi.rs
index ed098577..ce59fc68 100644
--- a/mona_core/src/character/characters/cryo/qiqi.rs
+++ b/mona_core/src/character/characters/cryo/qiqi.rs
@@ -70,7 +70,6 @@ pub const QIQI_SKILL: QiqiSkillType = QiqiSkillType {
pub const QIQI_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Qiqi,
internal_name: "Qiqi",
- chs: "七七",
element: Element::Cryo,
hp: [963, 2498, 3323, 4973, 5559, 6396, 7178, 8023, 8610, 9463, 10050, 10912, 11499, 12368],
atk: [22, 58, 77, 115, 129, 148, 167, 186, 200, 220, 233, 253, 267, 287],
@@ -78,9 +77,18 @@ pub const QIQI_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::HealingBonus222,
weapon_type: WeaponType::Sword,
star: 5,
- skill_name1: "普通攻击·云来古剑法",
- skill_name2: "仙法·寒病鬼差",
- skill_name3: "仙法·救苦度厄",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·云来古剑法",
+ en: "Normal Attack: Ancient Sword Art",
+ ),
+ skill_name2: locale!(
+ zh_cn: "仙法·寒病鬼差",
+ en: "Adeptus Art: Herald of Frost",
+ ),
+ skill_name3: locale!(
+ zh_cn: "仙法·救苦度厄",
+ en: "Adeptus Art: Preserver of Fortune",
+ ),
name_locale: locale!(
zh_cn: "七七",
en: "Qiqi",
diff --git a/mona_core/src/character/characters/cryo/rosaria.rs b/mona_core/src/character/characters/cryo/rosaria.rs
index 2a08ae49..f68aa026 100644
--- a/mona_core/src/character/characters/cryo/rosaria.rs
+++ b/mona_core/src/character/characters/cryo/rosaria.rs
@@ -59,7 +59,6 @@ pub const ROSARIA_SKILL: RosariaSkillType = RosariaSkillType {
pub const ROSARIA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Rosaria,
internal_name: "Rosaria",
- chs: "罗莎莉亚",
element: Element::Cryo,
hp: [1030, 2647, 3417, 5118, 5665, 6516, 7245, 8096, 8643, 9493, 10040, 10891, 11438, 12289],
atk: [20, 52, 67, 100, 111, 127, 141, 158, 169, 185, 196, 213, 223, 240],
@@ -67,9 +66,18 @@ pub const ROSARIA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ATK240,
weapon_type: WeaponType::Polearm,
star: 4,
- skill_name1: "普通攻击·教会枪术",
- skill_name2: "噬罪的告解",
- skill_name3: "终命的圣礼",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·教会枪术",
+ en: "Normal Attack: Spear of the Church",
+ ),
+ skill_name2: locale!(
+ zh_cn: "噬罪的告解",
+ en: "Ravaging Confession",
+ ),
+ skill_name3: locale!(
+ zh_cn: "终命的圣礼",
+ en: "Rites of Termination",
+ ),
name_locale: locale!(
zh_cn: "罗莎莉亚",
en: "Rosaria",
diff --git a/mona_core/src/character/characters/cryo/shenhe.rs b/mona_core/src/character/characters/cryo/shenhe.rs
index 2627e6fe..3638ff63 100644
--- a/mona_core/src/character/characters/cryo/shenhe.rs
+++ b/mona_core/src/character/characters/cryo/shenhe.rs
@@ -60,7 +60,6 @@ const SHENHE_SKILL: ShenheSkillType = ShenheSkillType {
const SHENHE_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Shenhe,
internal_name: "Shenhe",
- chs: "申鹤",
element: Element::Cryo,
hp: [1011, 2624, 3491, 5224, 5840, 6719, 7540, 8429, 9045, 9941, 10557, 11463, 12080, 12993],
atk: [24, 61, 82, 122, 137, 157, 176, 197, 211, 232, 247, 268, 282, 304],
@@ -68,9 +67,18 @@ const SHENHE_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ATK288,
weapon_type: WeaponType::Polearm,
star: 5,
- skill_name1: "普通攻击•踏辰摄斗",
- skill_name2: "仰灵威召将役咒",
- skill_name3: "神女遣灵真诀",
+ skill_name1: locale!(
+ zh_cn: "普通攻击•踏辰摄斗",
+ en: "Normal Attack: Dawnstar Piercer",
+ ),
+ skill_name2: locale!(
+ zh_cn: "仰灵威召将役咒",
+ en: "Spring Spirit Summoning",
+ ),
+ skill_name3: locale!(
+ zh_cn: "神女遣灵真诀",
+ en: "Divine Maiden's Deliverance",
+ ),
name_locale: locale!(
zh_cn: "申鹤",
en: "Shenhe",
diff --git a/mona_core/src/character/characters/dendro/alhaitham.rs b/mona_core/src/character/characters/dendro/alhaitham.rs
index 04bddcea..92a20e76 100644
--- a/mona_core/src/character/characters/dendro/alhaitham.rs
+++ b/mona_core/src/character/characters/dendro/alhaitham.rs
@@ -127,7 +127,6 @@ impl CharacterTrait for Alhaitham {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Alhaitham,
internal_name: "Alhatham",
- chs: "",
element: Element::Dendro,
hp: [1039, 2695, 3586, 5366, 5999, 6902, 7747, 8659, 9292, 10213, 10846, 11777, 12410, 13348],
atk: [24, 63, 84, 126, 141, 162, 182, 203, 218, 240, 255, 276, 291, 313],
@@ -135,9 +134,18 @@ impl CharacterTrait for Alhaitham {
sub_stat: CharacterSubStatFamily::Bonus288(StatName::DendroBonus),
weapon_type: WeaponType::Sword,
star: 5,
- skill_name1: "",
- skill_name2: "",
- skill_name3: "",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·溯因反绎法",
+ en: "Normal Attack: Abductive Reasoning",
+ ),
+ skill_name2: locale!(
+ zh_cn: "共相·理式摹写",
+ en: "Universality: An Elaboration on Form",
+ ),
+ skill_name3: locale!(
+ zh_cn: "殊境·显象缚结",
+ en: "Particular Field: Fetters of Phenomena",
+ ),
name_locale: locale!(
zh_cn: "艾尔海森",
en: "Alhaitham",
diff --git a/mona_core/src/character/characters/dendro/collei.rs b/mona_core/src/character/characters/dendro/collei.rs
index 8359ba18..5765962b 100644
--- a/mona_core/src/character/characters/dendro/collei.rs
+++ b/mona_core/src/character/characters/dendro/collei.rs
@@ -112,7 +112,6 @@ impl CharacterTrait for Collei {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Collei,
internal_name: "Collei",
- chs: "科莱",
element: Element::Dendro,
hp: [821, 2108, 2721, 4076, 4512, 5189, 5770, 6448, 6884, 7561, 7996, 8674, 9110, 9787],
atk: [17, 43, 56, 83, 92, 106, 118, 132, 140, 154, 163, 177, 186, 200],
@@ -120,9 +119,18 @@ impl CharacterTrait for Collei {
sub_stat: CharacterSubStatFamily::ATK240,
weapon_type: WeaponType::Bow,
star: 4,
- skill_name1: "普通攻击·祈颂射艺",
- skill_name2: "拂花偈叶",
- skill_name3: "猫猫秘宝",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·祈颂射艺",
+ en: "Normal Attack: Supplicant’s Bowmanship",
+ ),
+ skill_name2: locale!(
+ zh_cn: "拂花偈叶",
+ en: "Floral Brush",
+ ),
+ skill_name3: locale!(
+ zh_cn: "猫猫秘宝",
+ en: "Trump-Card Kitty",
+ ),
name_locale: locale!(
zh_cn: "柯莱",
en: "Collei",
diff --git a/mona_core/src/character/characters/dendro/nahida.rs b/mona_core/src/character/characters/dendro/nahida.rs
index 08fe1e37..179a3ea8 100644
--- a/mona_core/src/character/characters/dendro/nahida.rs
+++ b/mona_core/src/character/characters/dendro/nahida.rs
@@ -98,7 +98,6 @@ impl CharacterTrait for Nahida {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Nahida,
internal_name: "Nahida",
- chs: "",
element: Element::Dendro,
hp: [807, 2092, 2784, 4165, 4656, 5357, 6012, 6721, 7212, 7926, 8418, 9140, 9632, 10360],
atk: [23, 60, 80, 120, 134, 155, 174, 194, 208, 229, 243, 264, 278, 299],
@@ -106,9 +105,18 @@ impl CharacterTrait for Nahida {
sub_stat: CharacterSubStatFamily::ElementalMastery115,
weapon_type: WeaponType::Catalyst,
star: 5,
- skill_name1: "",
- skill_name2: "",
- skill_name3: "",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·行相",
+ en: "Normal Attack: Akara",
+ ),
+ skill_name2: locale!(
+ zh_cn: "所闻遍计",
+ en: "All Schemes to Know",
+ ),
+ skill_name3: locale!(
+ zh_cn: "心景幻成",
+ en: "Illusory Heart",
+ ),
name_locale: locale!(
zh_cn: "纳西妲",
en: "Nahida",
diff --git a/mona_core/src/character/characters/dendro/tighnari.rs b/mona_core/src/character/characters/dendro/tighnari.rs
index 0f5eb404..61fa0ec7 100644
--- a/mona_core/src/character/characters/dendro/tighnari.rs
+++ b/mona_core/src/character/characters/dendro/tighnari.rs
@@ -151,7 +151,6 @@ impl CharacterTrait for Tighnari {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Tighnari,
internal_name: "Tighnari",
- chs: "提纳里",
element: Element::Dendro,
hp: [845, 2191, 2915, 4362, 4877, 5611, 6297, 7038, 7553, 8301, 8816, 9573, 10087, 10850],
atk: [21, 54, 72, 108, 120, 139, 155, 174, 186, 205, 218, 236, 249, 268],
@@ -159,9 +158,18 @@ impl CharacterTrait for Tighnari {
sub_stat: CharacterSubStatFamily::Bonus288(StatName::DendroBonus),
weapon_type: WeaponType::Bow,
star: 5,
- skill_name1: "普通攻击·藏蕴破障",
- skill_name2: "识果种雷",
- skill_name3: "造生缠藤箭",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·藏蕴破障",
+ en: "Normal Attack: Khanda Barrier-Buster",
+ ),
+ skill_name2: locale!(
+ zh_cn: "识果种雷",
+ en: "Vijnana-Phala Mine",
+ ),
+ skill_name3: locale!(
+ zh_cn: "造生缠藤箭",
+ en: "Fashioner’s Tanglevine Shaft",
+ ),
name_locale: locale!(
zh_cn: "提纳里",
en: "Tighnari",
diff --git a/mona_core/src/character/characters/dendro/yaoyao.rs b/mona_core/src/character/characters/dendro/yaoyao.rs
index 5b828d68..9933c75a 100644
--- a/mona_core/src/character/characters/dendro/yaoyao.rs
+++ b/mona_core/src/character/characters/dendro/yaoyao.rs
@@ -122,7 +122,6 @@ impl CharacterTrait for Yaoyao {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Yaoyao,
internal_name: "Yaoyao",
- chs: "",
element: Element::Dendro,
hp: [1030, 2647, 3417, 5118, 5665, 6515, 7245, 8096, 8643, 9493, 10040, 10891, 11438, 12289],
atk: [18, 46, 59, 88, 98, 113, 125, 140, 149, 164, 174, 188, 198, 212],
@@ -130,9 +129,18 @@ impl CharacterTrait for Yaoyao {
sub_stat: CharacterSubStatFamily::Bonus240(StatName::HPPercentage),
weapon_type: WeaponType::Polearm,
star: 4,
- skill_name1: "",
- skill_name2: "",
- skill_name3: "",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·颠扑连环枪",
+ en: "Normal Attack: Toss ‘N’ Turn Spear",
+ ),
+ skill_name2: locale!(
+ zh_cn: "云台团团降芦菔",
+ en: "Raphanus Sky Cluster",
+ ),
+ skill_name3: locale!(
+ zh_cn: "玉颗珊珊月中落",
+ en: "Moonjade Descent",
+ ),
name_locale: locale!(
zh_cn: "瑶瑶",
en: "Yaoyao",
diff --git a/mona_core/src/character/characters/electro/beidou.rs b/mona_core/src/character/characters/electro/beidou.rs
index c514f557..8755592d 100644
--- a/mona_core/src/character/characters/electro/beidou.rs
+++ b/mona_core/src/character/characters/electro/beidou.rs
@@ -61,7 +61,6 @@ pub const BEIDOU_SKILL: BeidouSkillType = BeidouSkillType {
const BEIDOU_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Beidou,
internal_name: "Beidou",
- chs: "北斗",
element: Element::Electro,
hp: [1094, 2811, 3628, 5435, 6015, 6919, 7694, 8597, 9178, 10081, 10662, 11565, 12146, 13050],
atk: [19, 48, 63, 94, 104, 119, 133, 148, 158, 174, 184, 200, 210, 225],
@@ -69,9 +68,18 @@ const BEIDOU_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus240(StatName::ElectroBonus),
weapon_type: WeaponType::Claymore,
star: 4,
- skill_name1: "普通攻击·征涛",
- skill_name2: "捉浪",
- skill_name3: "斫雷",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·征涛",
+ en: "Normal Attack: Oceanborne",
+ ),
+ skill_name2: locale!(
+ zh_cn: "捉浪",
+ en: "Tidecaller",
+ ),
+ skill_name3: locale!(
+ zh_cn: "斫雷",
+ en: "Stormbreaker",
+ ),
name_locale: locale!(
zh_cn: "北斗",
en: "Beidou",
diff --git a/mona_core/src/character/characters/electro/cyno.rs b/mona_core/src/character/characters/electro/cyno.rs
index c151dba8..37af27eb 100644
--- a/mona_core/src/character/characters/electro/cyno.rs
+++ b/mona_core/src/character/characters/electro/cyno.rs
@@ -134,7 +134,6 @@ impl CharacterTrait for Cyno {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Cyno,
internal_name: "Cyno",
- chs: "赛诺",
element: Element::Electro,
hp: [972, 2522, 3356, 5022, 5614, 6459, 7249, 8103, 8695, 9557, 10149, 11020, 11613, 12491],
atk: [25, 64, 85, 128, 143, 165, 185, 206, 221, 243, 258, 281, 296, 318],
@@ -142,9 +141,18 @@ impl CharacterTrait for Cyno {
sub_stat: CharacterSubStatFamily::CriticalDamage384,
weapon_type: WeaponType::Polearm,
star: 5,
- skill_name1: "普通攻击·七圣枪术",
- skill_name2: "秘仪·律渊渡魂",
- skill_name3: "圣仪·煟煌随狼行",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·七圣枪术",
+ en: "Normal Attack: Invoker's Spear",
+ ),
+ skill_name2: locale!(
+ zh_cn: "秘仪·律渊渡魂",
+ en: "Secret Rite: Chasmic Soulfarer",
+ ),
+ skill_name3: locale!(
+ zh_cn: "圣仪·煟煌随狼行",
+ en: "Sacred Rite: Wolf’s Swiftness",
+ ),
name_locale: locale!(
zh_cn: "赛诺",
en: "Cyno",
diff --git a/mona_core/src/character/characters/electro/dori.rs b/mona_core/src/character/characters/electro/dori.rs
index db944e97..d2d1cd5a 100644
--- a/mona_core/src/character/characters/electro/dori.rs
+++ b/mona_core/src/character/characters/electro/dori.rs
@@ -98,7 +98,6 @@ impl CharacterTrait for Dori {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Dori,
internal_name: "Dori",
- chs: "多莉",
element: Element::Electro,
hp: [1039, 2670, 3447, 5163, 5715, 6573, 7309, 8168, 8719, 9577, 10129, 10987, 11539, 12397],
atk: [19, 48, 62, 93, 103, 118, 131, 147, 157, 172, 182, 198, 208, 223],
@@ -106,9 +105,18 @@ impl CharacterTrait for Dori {
sub_stat: CharacterSubStatFamily::HP240,
weapon_type: WeaponType::Claymore,
star: 4,
- skill_name1: "",
- skill_name2: "",
- skill_name3: "",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·妙显剑舞·改",
+ en: "Normal Attack: Marvelous Sword-Dance (Modified)",
+ ),
+ skill_name2: locale!(
+ zh_cn: "镇灵之灯·烦恼解决炮",
+ en: "Spirit-Warding Lamp: Troubleshooter Cannon",
+ ),
+ skill_name3: locale!(
+ zh_cn: "卡萨扎莱宫的无微不至",
+ en: "Alcazarzaray’s Exactitude",
+ ),
name_locale: locale!(
zh_cn: "多莉",
en: "Dori",
diff --git a/mona_core/src/character/characters/electro/fischl.rs b/mona_core/src/character/characters/electro/fischl.rs
index 03cbd584..02ee0b33 100644
--- a/mona_core/src/character/characters/electro/fischl.rs
+++ b/mona_core/src/character/characters/electro/fischl.rs
@@ -53,7 +53,6 @@ pub const FISCHL_SKILL: FischlSkillType = FischlSkillType {
pub const FISCHL_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Fischl,
internal_name: "Fischl",
- chs: "菲谢尔",
element: Element::Electro,
hp: [770, 1979, 2555, 3827, 4236, 4872, 5418, 6054, 6463, 7099, 7508, 8144, 8553, 9189],
atk: [20, 53, 68, 102, 113, 130, 144, 161, 172, 189, 200, 216, 227, 244],
@@ -61,9 +60,18 @@ pub const FISCHL_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ATK240,
weapon_type: WeaponType::Bow,
star: 4,
- skill_name1: "普通攻击·罪灭之矢",
- skill_name2: "夜巡影翼",
- skill_name3: "至夜幻现",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·罪灭之矢",
+ en: "Normal Attack: Bolts of Downfall",
+ ),
+ skill_name2: locale!(
+ zh_cn: "夜巡影翼",
+ en: "Nightrider",
+ ),
+ skill_name3: locale!(
+ zh_cn: "至夜幻现",
+ en: "Midnight Phantasmagoria",
+ ),
name_locale: locale!(
zh_cn: "菲谢尔",
en: "Fischl",
diff --git a/mona_core/src/character/characters/electro/keqing.rs b/mona_core/src/character/characters/electro/keqing.rs
index 7db825be..43cb8bf5 100644
--- a/mona_core/src/character/characters/electro/keqing.rs
+++ b/mona_core/src/character/characters/electro/keqing.rs
@@ -60,7 +60,6 @@ pub const KEQING_SKILL: KeqingSkillType = KeqingSkillType {
pub const KEQING_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Keqing,
internal_name: "Keqing",
- chs: "刻晴",
element: Element::Electro,
hp: [1020, 2646, 3521, 5268, 5889, 6776, 7604, 8500, 9121, 10025, 10647, 11561, 12182, 13103],
atk: [25, 65, 87, 130, 145, 167, 187, 209, 225, 247, 262, 285, 300, 323],
@@ -68,9 +67,18 @@ pub const KEQING_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::CriticalDamage384,
weapon_type: WeaponType::Sword,
star: 5,
- skill_name1: "普通攻击·云来剑法",
- skill_name2: "星斗归位",
- skill_name3: "天街巡游",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·云来剑法",
+ en: "Normal Attack: Yunlai Swordsmanship",
+ ),
+ skill_name2: locale!(
+ zh_cn: "星斗归位",
+ en: "Stellar Restoration",
+ ),
+ skill_name3: locale!(
+ zh_cn: "天街巡游",
+ en: "Starward Sword",
+ ),
name_locale: locale!(
zh_cn: "刻晴",
en: "Keqing",
diff --git a/mona_core/src/character/characters/electro/kujou_sara.rs b/mona_core/src/character/characters/electro/kujou_sara.rs
index bb963da9..790b9142 100644
--- a/mona_core/src/character/characters/electro/kujou_sara.rs
+++ b/mona_core/src/character/characters/electro/kujou_sara.rs
@@ -56,7 +56,6 @@ pub const KUJOU_SARA_SKILL: KujouSaraSkillType = KujouSaraSkillType {
pub const KUJOU_SARA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::KujouSara,
internal_name: "Sara",
- chs: "九条裟罗",
element: Element::Electro,
hp: [802, 2061, 2661, 3985, 4411, 5074, 5642, 6305, 6731, 7393, 7818, 8481, 8907, 9570],
atk: [16, 42, 54, 81, 90, 104, 115, 129, 137, 151, 160, 173, 182, 195],
@@ -64,9 +63,18 @@ pub const KUJOU_SARA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ATK240,
weapon_type: WeaponType::Bow,
star: 4,
- skill_name1: "普通攻击•天狗传弓术",
- skill_name2: "鸦羽天狗霆雷召咒",
- skill_name3: "煌煌千道镇式",
+ skill_name1: locale!(
+ zh_cn: "普通攻击•天狗传弓术",
+ en: "Normal Attack: Tengu Bowmanship",
+ ),
+ skill_name2: locale!(
+ zh_cn: "鸦羽天狗霆雷召咒",
+ en: "Tengu Stormcall",
+ ),
+ skill_name3: locale!(
+ zh_cn: "煌煌千道镇式",
+ en: "Subjugation: Koukou Sendou",
+ ),
name_locale: locale!(
zh_cn: "九条裟罗",
en: "Kujou Sara",
diff --git a/mona_core/src/character/characters/electro/kuki_shinobu.rs b/mona_core/src/character/characters/electro/kuki_shinobu.rs
index a2e64bb1..4cb31edb 100644
--- a/mona_core/src/character/characters/electro/kuki_shinobu.rs
+++ b/mona_core/src/character/characters/electro/kuki_shinobu.rs
@@ -142,7 +142,6 @@ impl CharacterTrait for KukiShinobu {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::KukiShinobu,
internal_name: "Shinobu",
- chs: "久岐忍",
element: Element::Electro,
hp: [1030, 2647, 3417, 5118, 5665, 6516, 7245, 8096, 8643, 9493, 10040, 10891, 11438, 12289],
atk: [18, 46, 59, 88, 98, 113, 125, 140, 149, 164, 174, 188, 198, 212],
@@ -150,9 +149,18 @@ impl CharacterTrait for KukiShinobu {
sub_stat: CharacterSubStatFamily::HP240,
weapon_type: WeaponType::Sword,
star: 4,
- skill_name1: "普通攻击·忍流飞刃斩",
- skill_name2: "越祓雷草之轮",
- skill_name3: "御咏鸣神刈山祭",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·忍流飞刃斩",
+ en: "Normal Attack: Shinobu's Shadowsword",
+ ),
+ skill_name2: locale!(
+ zh_cn: "越祓雷草之轮",
+ en: "Sanctifying Ring",
+ ),
+ skill_name3: locale!(
+ zh_cn: "御咏鸣神刈山祭",
+ en: "Gyoei Narukami Kariyama Rite",
+ ),
name_locale: locale!(
zh_cn: "久岐忍",
en: "Kuki Shinobu",
diff --git a/mona_core/src/character/characters/electro/lisa.rs b/mona_core/src/character/characters/electro/lisa.rs
index 095941e1..3623d598 100644
--- a/mona_core/src/character/characters/electro/lisa.rs
+++ b/mona_core/src/character/characters/electro/lisa.rs
@@ -56,7 +56,6 @@ pub const LISA_SKILL: LisaSkillType = LisaSkillType {
pub const LISA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Lisa,
internal_name: "Lisa",
- chs: "丽莎",
element: Element::Electro,
hp: [802, 2061, 2661, 3985, 4411, 5074, 5642, 6305, 6731, 7393, 7818, 8481, 8907, 9570],
atk: [19, 50, 64, 96, 107, 123, 136, 153, 163, 179, 189, 205, 215, 232],
@@ -64,9 +63,18 @@ pub const LISA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ElementalMastery96,
weapon_type: WeaponType::Catalyst,
star: 4,
- skill_name1: "普通攻击·指尖雷暴",
- skill_name2: "苍雷",
- skill_name3: "蔷薇的雷光",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·指尖雷暴",
+ en: "Normal Attack: Lightning Touch",
+ ),
+ skill_name2: locale!(
+ zh_cn: "苍雷",
+ en: "Violet Arc",
+ ),
+ skill_name3: locale!(
+ zh_cn: "蔷薇的雷光",
+ en: "Lightning Rose",
+ ),
name_locale: locale!(
zh_cn: "丽莎",
en: "Lisa",
diff --git a/mona_core/src/character/characters/electro/raiden_shogun.rs b/mona_core/src/character/characters/electro/raiden_shogun.rs
index 76fcec6a..f7cdf3b9 100644
--- a/mona_core/src/character/characters/electro/raiden_shogun.rs
+++ b/mona_core/src/character/characters/electro/raiden_shogun.rs
@@ -82,7 +82,6 @@ pub const RAIDEN_SHOGUN_SKILL: RaidenShogunSkill = RaidenShogunSkill {
pub const RAIDEN_SHOGUN_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::RaidenShogun,
internal_name: "Shougun",
- chs: "雷电将军",
element: Element::Electro,
hp: [1005, 2606, 3468, 5189, 5801, 6675, 7491, 8373, 8985, 9875, 10487, 11388, 12000, 12907],
atk: [26, 68, 91, 136, 152, 174, 196, 219, 235, 258, 274, 298, 314, 337],
@@ -90,9 +89,18 @@ pub const RAIDEN_SHOGUN_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Recharge320,
weapon_type: WeaponType::Polearm,
star: 5,
- skill_name1: "普通攻击•源流",
- skill_name2: "神变•恶曜开眼",
- skill_name3: "奥义•梦想真说",
+ skill_name1: locale!(
+ zh_cn: "普通攻击•源流",
+ en: "Normal Attack: Origin",
+ ),
+ skill_name2: locale!(
+ zh_cn: "神变•恶曜开眼",
+ en: "Transcendence: Baleful Omen",
+ ),
+ skill_name3: locale!(
+ zh_cn: "奥义•梦想真说",
+ en: "Secret Art: Musou Shinsetsu",
+ ),
name_locale: locale!(
zh_cn: "雷电将军",
en: "Raiden Shogun",
diff --git a/mona_core/src/character/characters/electro/razor.rs b/mona_core/src/character/characters/electro/razor.rs
index 158ea180..d8c8f0dc 100644
--- a/mona_core/src/character/characters/electro/razor.rs
+++ b/mona_core/src/character/characters/electro/razor.rs
@@ -56,7 +56,6 @@ pub const RAZOR_SKILL: RazorSkillType = RazorSkillType {
pub const RAZOR_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Razor,
internal_name: "Razor",
- chs: "雷泽",
element: Element::Electro,
hp: [1003, 2577, 3326, 4982, 5514, 6343, 7052, 7881, 8413, 9241, 9773, 10602, 11134, 11962],
atk: [20, 50, 65, 97, 108, 124, 138, 154, 164, 180, 191, 207, 217, 234],
@@ -64,9 +63,18 @@ pub const RAZOR_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus300(StatName::PhysicalBonus),
weapon_type: WeaponType::Claymore,
star: 4,
- skill_name1: "普通攻击·钢脊",
- skill_name2: "利爪与苍雷",
- skill_name3: "雷牙",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·钢脊",
+ en: "Normal Attack: Steel Fang",
+ ),
+ skill_name2: locale!(
+ zh_cn: "利爪与苍雷",
+ en: "Claw and Thunder",
+ ),
+ skill_name3: locale!(
+ zh_cn: "雷牙",
+ en: "Lightning Fang",
+ ),
name_locale: locale!(
zh_cn: "雷泽",
en: "Razor",
diff --git a/mona_core/src/character/characters/electro/yae_miko.rs b/mona_core/src/character/characters/electro/yae_miko.rs
index 3523fa66..c6aa814d 100644
--- a/mona_core/src/character/characters/electro/yae_miko.rs
+++ b/mona_core/src/character/characters/electro/yae_miko.rs
@@ -97,7 +97,6 @@ impl CharacterTrait for YaeMiko {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::YaeMiko,
internal_name: "Yae",
- chs: "八重神子",
element: Element::Electro,
hp: [807, 2095, 2787, 4170, 4662, 5364, 6020, 6729, 7220, 7936, 8428, 9151, 9643, 10372],
atk: [26, 69, 91, 137, 153, 176, 197, 220, 236, 260, 276, 300, 316, 340],
@@ -105,9 +104,18 @@ impl CharacterTrait for YaeMiko {
sub_stat: CharacterSubStatFamily::CriticalRate192,
weapon_type: WeaponType::Catalyst,
star: 5,
- skill_name1: "普通攻击·狐灵食罪式",
- skill_name2: "野干役咒·杀生樱",
- skill_name3: "大密法·天狐显真",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·狐灵食罪式",
+ en: "Normal Attack: Spiritfox Sin-Eater",
+ ),
+ skill_name2: locale!(
+ zh_cn: "野干役咒·杀生樱",
+ en: "Yakan Evocation: Sesshou Sakura",
+ ),
+ skill_name3: locale!(
+ zh_cn: "大密法·天狐显真",
+ en: "Great Secret Art: Tenko Kenshin",
+ ),
name_locale: locale!(
zh_cn: "八重神子",
en: "Yae Miko",
diff --git a/mona_core/src/character/characters/geo/albedo.rs b/mona_core/src/character/characters/geo/albedo.rs
index 74be9756..6cc75ced 100644
--- a/mona_core/src/character/characters/geo/albedo.rs
+++ b/mona_core/src/character/characters/geo/albedo.rs
@@ -56,7 +56,6 @@ const ALBEDO_SKILL: AlbedoSkillType = AlbedoSkillType {
const ALBEDO_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Albedo,
internal_name: "Albedo",
- chs: "阿贝多",
element: Element::Geo,
hp: [1030, 2671, 3554, 5317, 5944, 6839, 7675, 8579, 9207, 10119, 10746, 11669, 12296, 13226],
atk: [20, 51, 68, 101, 113, 130, 146, 163, 175, 192, 204, 222, 233, 251],
@@ -64,9 +63,18 @@ const ALBEDO_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus288(StatName::GeoBonus),
weapon_type: WeaponType::Sword,
star: 5,
- skill_name1: "普通攻击·西风剑术·白",
- skill_name2: "创生法·拟造阳华",
- skill_name3: "诞生式·大地之潮",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·西风剑术·白",
+ en: "Normal Attack: Favonius Bladework - Weiss",
+ ),
+ skill_name2: locale!(
+ zh_cn: "创生法·拟造阳华",
+ en: "Abiogenesis: Solar Isotoma",
+ ),
+ skill_name3: locale!(
+ zh_cn: "诞生式·大地之潮",
+ en: "Rite of Progeniture: Tectonic Tide",
+ ),
name_locale: locale!(
zh_cn: "阿贝多",
en: "Albedo",
diff --git a/mona_core/src/character/characters/geo/arataki_itto.rs b/mona_core/src/character/characters/geo/arataki_itto.rs
index b0fc0e35..9007f6de 100644
--- a/mona_core/src/character/characters/geo/arataki_itto.rs
+++ b/mona_core/src/character/characters/geo/arataki_itto.rs
@@ -52,7 +52,6 @@ pub const ARATAKI_ITTO_SKILL: AratakiIttoSkillType = AratakiIttoSkillType {
const ARATAKI_ITTO_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::AratakiItto,
internal_name: "Itto",
- chs: "荒泷一斗",
element: Element::Geo,
hp: [1001, 2579, 3455, 5170, 5779, 6649, 7462, 8341, 8951, 9838, 10448, 11345, 11954, 12858],
atk: [18, 46, 61, 91, 102, 117, 132, 147, 158, 174, 185, 200, 211, 227],
@@ -60,9 +59,18 @@ const ARATAKI_ITTO_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::CriticalRate192,
weapon_type: WeaponType::Claymore,
star: 5,
- skill_name1: "普通攻击•喧哗屋传说",
- skill_name2: "魔杀绝技•赤牛发破!",
- skill_name3: "最恶鬼王•一斗轰临!!",
+ skill_name1: locale!(
+ zh_cn: "普通攻击•喧哗屋传说",
+ en: "Normal Attack: Fight Club Legend",
+ ),
+ skill_name2: locale!(
+ zh_cn: "魔杀绝技•赤牛发破!",
+ en: "Masatsu Zetsugi: Akaushi Burst!",
+ ),
+ skill_name3: locale!(
+ zh_cn: "最恶鬼王•一斗轰临!!",
+ en: "Royal Descent: Behold, Itto the Evil!",
+ ),
name_locale: locale!(
zh_cn: "荒泷一斗",
en: "Arataki Itto",
diff --git a/mona_core/src/character/characters/geo/gorou.rs b/mona_core/src/character/characters/geo/gorou.rs
index 2294e8e3..1df8f492 100644
--- a/mona_core/src/character/characters/geo/gorou.rs
+++ b/mona_core/src/character/characters/geo/gorou.rs
@@ -53,7 +53,6 @@ pub const GOROU_SKILL: GorouSkillType = GorouSkillType {
pub const GOROU_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Gorou,
internal_name: "Gorou",
- chs: "五郎",
element: Element::Geo,
hp: [802, 2061, 2661, 3985, 4411, 5074, 5642, 6305, 6731, 7393, 7818, 8481, 8907, 9570],
atk: [15, 39, 51, 76, 84, 97, 108, 120, 128, 141, 149, 162, 170, 183],
@@ -61,9 +60,18 @@ pub const GOROU_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus240(StatName::GeoBonus),
weapon_type: WeaponType::Bow,
star: 4,
- skill_name1: "普通攻击•呲牙裂扇箭",
- skill_name2: "犬坂吠吠方圆阵",
- skill_name3: "兽牙逐突形胜战法",
+ skill_name1: locale!(
+ zh_cn: "普通攻击•呲牙裂扇箭",
+ en: "Normal Attack: Ripping Fang Fletching",
+ ),
+ skill_name2: locale!(
+ zh_cn: "犬坂吠吠方圆阵",
+ en: "Inuzaka All-Round Defense",
+ ),
+ skill_name3: locale!(
+ zh_cn: "兽牙逐突形胜战法",
+ en: "Juuga: Forward Unto Victory",
+ ),
name_locale: locale!(
zh_cn: "五郎",
en: "Gorou",
diff --git a/mona_core/src/character/characters/geo/ningguang.rs b/mona_core/src/character/characters/geo/ningguang.rs
index 434142c2..ce8fba90 100644
--- a/mona_core/src/character/characters/geo/ningguang.rs
+++ b/mona_core/src/character/characters/geo/ningguang.rs
@@ -46,7 +46,6 @@ pub const NINGGUANG_SKILL: NingguangSkillType = NingguangSkillType {
pub const NINGGUANG_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Ningguang,
internal_name: "Ningguang",
- chs: "凝光",
element: Element::Geo,
hp: [821, 2108, 2721, 4076, 4512, 5189, 5770, 6448, 6884, 7561, 7996, 8674, 9110, 9787],
atk: [18, 46, 59, 88, 98, 113, 125, 140, 149, 164, 174, 188, 198, 212],
@@ -54,9 +53,18 @@ pub const NINGGUANG_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus240(StatName::GeoBonus),
weapon_type: WeaponType::Catalyst,
star: 4,
- skill_name1: "普通攻击·千金掷",
- skill_name2: "璇玑屏",
- skill_name3: "天权崩玉",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·千金掷",
+ en: "Normal Attack: Sparkling Scatter",
+ ),
+ skill_name2: locale!(
+ zh_cn: "璇玑屏",
+ en: "Jade Screen",
+ ),
+ skill_name3: locale!(
+ zh_cn: "天权崩玉",
+ en: "Starshatter",
+ ),
name_locale: locale!(
zh_cn: "凝光",
en: "Ningguang",
diff --git a/mona_core/src/character/characters/geo/noelle.rs b/mona_core/src/character/characters/geo/noelle.rs
index 716734c8..ea21e788 100644
--- a/mona_core/src/character/characters/geo/noelle.rs
+++ b/mona_core/src/character/characters/geo/noelle.rs
@@ -64,7 +64,6 @@ pub const NOELLE_SKILL: NoelleSkillType = NoelleSkillType {
pub const NOELLE_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Noelle,
internal_name: "Noel",
- chs: "诺艾尔",
element: Element::Geo,
hp: [1012, 2600, 3356, 5027, 5564, 6400, 7117, 7953, 8490, 9325, 9862, 10698, 11235, 12071],
atk: [16, 41, 53, 80, 88, 101, 113, 126, 134, 148, 156, 169, 178, 191],
@@ -72,9 +71,18 @@ pub const NOELLE_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::DEF300,
weapon_type: WeaponType::Claymore,
star: 4,
- skill_name1: "普通攻击·西风剑术·女仆",
- skill_name2: "护心铠",
- skill_name3: "大扫除",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·西风剑术·女仆",
+ en: "Normal Attack: Favonius Bladework - Maid",
+ ),
+ skill_name2: locale!(
+ zh_cn: "护心铠",
+ en: "Breastplate",
+ ),
+ skill_name3: locale!(
+ zh_cn: "大扫除",
+ en: "Sweeping Time",
+ ),
name_locale: locale!(
zh_cn: "诺艾尔",
en: "Noelle",
diff --git a/mona_core/src/character/characters/geo/yunjin.rs b/mona_core/src/character/characters/geo/yunjin.rs
index 3f7232fa..7a21d7ff 100644
--- a/mona_core/src/character/characters/geo/yunjin.rs
+++ b/mona_core/src/character/characters/geo/yunjin.rs
@@ -64,7 +64,6 @@ const YUNJIN_SKILL: YunjinSkillType = YunjinSkillType {
const YUNJIN_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Yunjin,
internal_name: "Yunjin",
- chs: "云堇",
element: Element::Geo,
hp: [894, 2296, 2963, 4438, 4913, 5651, 6283, 7021, 7495, 8233, 8707, 9445, 9919, 10657],
atk: [16, 41, 53, 80, 88, 101, 113, 126, 134, 148, 156, 169, 178, 191],
@@ -72,9 +71,18 @@ const YUNJIN_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Recharge267,
weapon_type: WeaponType::Polearm,
star: 4,
- skill_name1: "普通攻击·拂云出手",
- skill_name2: "旋云开相",
- skill_name3: "破嶂见旌仪",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·拂云出手",
+ en: "Normal Attack: Cloud-Grazing Strike",
+ ),
+ skill_name2: locale!(
+ zh_cn: "旋云开相",
+ en: "Opening Flourish",
+ ),
+ skill_name3: locale!(
+ zh_cn: "破嶂见旌仪",
+ en: "Cliffbreaker's Banner",
+ ),
name_locale: locale!(
zh_cn: "云堇",
en: "Yunjin",
diff --git a/mona_core/src/character/characters/geo/zhongli.rs b/mona_core/src/character/characters/geo/zhongli.rs
index 8bca3267..41f08af6 100644
--- a/mona_core/src/character/characters/geo/zhongli.rs
+++ b/mona_core/src/character/characters/geo/zhongli.rs
@@ -60,7 +60,6 @@ pub const ZHONGLI_SKILL: ZhongliSkillType = ZhongliSkillType {
pub const ZHONGLI_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Zhongli,
internal_name: "Zhongli",
- chs: "钟离",
element:Element::Geo,
hp: [1144, 2967, 3948, 5908, 6605, 7599, 8528, 9533, 10230, 11243, 11940, 12965, 13662, 14695],
atk: [20, 51, 67, 101, 113, 130, 146, 163, 175, 192, 204, 222, 233, 251],
@@ -68,9 +67,18 @@ pub const ZHONGLI_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus288(StatName::GeoBonus),
weapon_type: WeaponType::Polearm,
star: 5,
- skill_name1: "普通攻击·岩雨",
- skill_name2: "地心",
- skill_name3: "天星",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·岩雨",
+ en: "Normal Attack: Rain of Stone",
+ ),
+ skill_name2: locale!(
+ zh_cn: "地心",
+ en: "Dominus Lapidis",
+ ),
+ skill_name3: locale!(
+ zh_cn: "天星",
+ en: "Planet Befall",
+ ),
name_locale: locale!(
zh_cn: "钟离",
en: "Zhongli",
diff --git a/mona_core/src/character/characters/hydro/barbara.rs b/mona_core/src/character/characters/hydro/barbara.rs
index 855205ae..2268207a 100644
--- a/mona_core/src/character/characters/hydro/barbara.rs
+++ b/mona_core/src/character/characters/hydro/barbara.rs
@@ -57,7 +57,6 @@ pub const BARBARA_SKILL: BarbaraSkillType = BarbaraSkillType {
pub const BARBARA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Barbara,
internal_name: "Barbara",
- chs: "芭芭拉",
element: Element::Hydro,
hp: [821, 2108, 2721, 4076, 4512, 5189, 5770, 6448, 6884, 7561, 7996, 8674, 9110, 9787],
atk: [13, 34, 44, 66, 73, 84, 94, 105, 112, 123, 130, 141, 148, 159],
@@ -65,9 +64,18 @@ pub const BARBARA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::HP240,
weapon_type: WeaponType::Catalyst,
star: 4,
- skill_name1: "普通攻击·水之浅唱",
- skill_name2: "演唱,开始♪",
- skill_name3: "闪耀奇迹♪",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·水之浅唱",
+ en: "Normal Attack: Whisper of Water",
+ ),
+ skill_name2: locale!(
+ zh_cn: "演唱,开始♪",
+ en: "Let the Show Begin♪",
+ ),
+ skill_name3: locale!(
+ zh_cn: "闪耀奇迹♪",
+ en: "Shining Miracle♪",
+ ),
name_locale: locale!(
zh_cn: "芭芭拉",
en: "Barbara",
diff --git a/mona_core/src/character/characters/hydro/candace.rs b/mona_core/src/character/characters/hydro/candace.rs
index ade2eedd..cd12d0e2 100644
--- a/mona_core/src/character/characters/hydro/candace.rs
+++ b/mona_core/src/character/characters/hydro/candace.rs
@@ -121,7 +121,6 @@ impl CharacterTrait for Candace {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Candace,
internal_name: "Candace",
- chs: "",
element: Element::Hydro,
hp: [912, 2342, 3024, 4529, 5013, 5766, 6411, 7164, 7648, 8401, 8885, 9638, 10122, 10875],
atk: [18, 46, 59, 88, 98, 113, 125, 140, 149, 164, 174, 188, 198, 212],
@@ -129,9 +128,18 @@ impl CharacterTrait for Candace {
sub_stat: CharacterSubStatFamily::HP240,
weapon_type: WeaponType::Polearm,
star: 4,
- skill_name1: "",
- skill_name2: "",
- skill_name3: "",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·流耀枪术·守势",
+ en: "Normal Attack: Gleaming Spear – Guardian Stance",
+ ),
+ skill_name2: locale!(
+ zh_cn: "圣仪·苍鹭庇卫",
+ en: "Sacred Rite: Heron’s Sanctum",
+ ),
+ skill_name3: locale!(
+ zh_cn: "圣仪·灰鸰衒潮",
+ en: "Sacred Rite: Wagtail’s Tide",
+ ),
name_locale: locale!(
zh_cn: "坎蒂丝",
en: "Candace",
diff --git a/mona_core/src/character/characters/hydro/kamisato_ayato.rs b/mona_core/src/character/characters/hydro/kamisato_ayato.rs
index d34028ee..ae2cd5a2 100644
--- a/mona_core/src/character/characters/hydro/kamisato_ayato.rs
+++ b/mona_core/src/character/characters/hydro/kamisato_ayato.rs
@@ -154,7 +154,6 @@ impl CharacterTrait for KamisatoAyato {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::KamisatoAyato,
internal_name: "Ayato",
- chs: "神里绫人",
element: Element::Hydro,
hp: [1068, 2770, 3685, 5514, 6165, 7092, 7960, 8897, 9548, 10494, 11144, 12101, 12751, 13715],
atk: [23, 60, 80, 120, 134, 155, 174, 194, 208, 229, 243, 264, 278, 299],
@@ -162,9 +161,18 @@ impl CharacterTrait for KamisatoAyato {
sub_stat: CharacterSubStatFamily::CriticalDamage384,
weapon_type: WeaponType::Sword,
star: 5,
- skill_name1: "普通攻击·神里流·转",
- skill_name2: "神里流·镜花",
- skill_name3: "神里流·水囿",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·神里流·转",
+ en: "Normal Attack: Kamisato Art - Marobashi",
+ ),
+ skill_name2: locale!(
+ zh_cn: "神里流·镜花",
+ en: "Kamisato Art: Kyouka",
+ ),
+ skill_name3: locale!(
+ zh_cn: "神里流·水囿",
+ en: "Kamisato Art: Suiyuu",
+ ),
name_locale: locale!(
zh_cn: "神里绫人",
en: "Kamisato Ayato",
diff --git a/mona_core/src/character/characters/hydro/mona.rs b/mona_core/src/character/characters/hydro/mona.rs
index ae3ea93a..88785512 100644
--- a/mona_core/src/character/characters/hydro/mona.rs
+++ b/mona_core/src/character/characters/hydro/mona.rs
@@ -51,7 +51,6 @@ pub const MONA_SKILL: MonaSkillType = MonaSkillType {
pub const MONA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Mona,
internal_name: "Mona",
- chs: "莫娜",
element: Element::Hydro,
hp: [810, 2102, 2797, 4185, 4678, 5383, 6041, 6752, 7246, 7964, 8458, 9184, 9677, 10409],
atk: [22, 58, 77, 115, 129, 148, 167, 186, 200, 220, 233, 253, 267, 287],
@@ -59,9 +58,18 @@ pub const MONA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Recharge320,
weapon_type: WeaponType::Catalyst,
star: 5,
- skill_name1: "普通攻击·因果点破",
- skill_name2: "水中幻愿",
- skill_name3: "星命定轨",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·因果点破",
+ en: "Normal Attack: Ripple of Fate",
+ ),
+ skill_name2: locale!(
+ zh_cn: "水中幻愿",
+ en: "Mirror Reflection of Doom",
+ ),
+ skill_name3: locale!(
+ zh_cn: "星命定轨",
+ en: "Stellaris Phantasm",
+ ),
name_locale: locale!(
zh_cn: "莫娜",
en: "Mona",
diff --git a/mona_core/src/character/characters/hydro/nilou.rs b/mona_core/src/character/characters/hydro/nilou.rs
index 1d645e48..1c7e856f 100644
--- a/mona_core/src/character/characters/hydro/nilou.rs
+++ b/mona_core/src/character/characters/hydro/nilou.rs
@@ -158,7 +158,6 @@ impl CharacterTrait for Nilou {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Nilou,
internal_name: "Nilou",
- chs: "妮露",
element: Element::Hydro,
hp: [1182, 3066, 4080, 6105, 6825, 7852, 8813, 9850, 10571, 11618, 12338, 13397, 14117, 15185],
atk: [18, 46, 62, 92, 103, 119, 133, 149, 160, 176, 187, 203, 213, 230],
@@ -166,9 +165,18 @@ impl CharacterTrait for Nilou {
sub_stat: CharacterSubStatFamily::HP288,
weapon_type: WeaponType::Sword,
star: 5,
- skill_name1: "",
- skill_name2: "",
- skill_name3: "",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·弦月舞步",
+ en: "Normal Attack: Dance of Samser",
+ ),
+ skill_name2: locale!(
+ zh_cn: "七域舞步",
+ en: "Dance of Haftkarsvar",
+ ),
+ skill_name3: locale!(
+ zh_cn: "浮莲舞步·远梦聆泉",
+ en: "Dance of Abzendegi: Distant Dreams, Listening Spring",
+ ),
name_locale: locale!(
zh_cn: "妮露",
en: "Nilou",
diff --git a/mona_core/src/character/characters/hydro/sangonomiya_kokomi.rs b/mona_core/src/character/characters/hydro/sangonomiya_kokomi.rs
index cb0ca0a2..01f46390 100644
--- a/mona_core/src/character/characters/hydro/sangonomiya_kokomi.rs
+++ b/mona_core/src/character/characters/hydro/sangonomiya_kokomi.rs
@@ -60,7 +60,6 @@ pub const SANGONOMIYA_KOKOMI_SKILL: SangonomiyaKokomiSkillType = SangonomiyaKoko
pub const SANGONOMIYA_KOKOMI_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::SangonomiyaKokomi,
internal_name: "Kokomi",
- chs: "珊瑚宫心海",
element: Element::Hydro,
hp: [1049, 2720, 3619, 5416, 6055, 6966, 7818, 8738, 9377, 10306, 10945, 11885, 12524, 13471],
atk: [18, 47, 63, 94, 105, 121, 136, 152, 163, 179, 190, 207, 218, 234],
@@ -68,9 +67,18 @@ pub const SANGONOMIYA_KOKOMI_STATIC_DATA: CharacterStaticData = CharacterStaticD
sub_stat: CharacterSubStatFamily::Bonus288(StatName::HydroBonus),
weapon_type: WeaponType::Catalyst,
star: 5,
- skill_name1: "普通攻击•水有常形",
- skill_name2: "海月之誓",
- skill_name3: "海人化羽",
+ skill_name1: locale!(
+ zh_cn: "普通攻击•水有常形",
+ en: "Normal Attack: The Shape of Water",
+ ),
+ skill_name2: locale!(
+ zh_cn: "海月之誓",
+ en: "Kurage's Oath",
+ ),
+ skill_name3: locale!(
+ zh_cn: "海人化羽",
+ en: "Nereid's Ascension",
+ ),
name_locale: locale!(
zh_cn: "珊瑚宫心海",
en: "Sangonomiya Kokomi",
diff --git a/mona_core/src/character/characters/hydro/tartaglia.rs b/mona_core/src/character/characters/hydro/tartaglia.rs
index 96027c41..76508c8b 100644
--- a/mona_core/src/character/characters/hydro/tartaglia.rs
+++ b/mona_core/src/character/characters/hydro/tartaglia.rs
@@ -82,7 +82,6 @@ pub const TARTAGLIA_SKILL: TartagliaSkillType = TartagliaSkillType {
pub const TARTAGLIA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Tartaglia,
internal_name: "Tartaglia",
- chs: "达达利亚",
element: Element::Hydro,
hp: [1020, 2646, 3521, 5268, 5889, 6776, 7604, 8500, 9121, 10025, 10647, 11561, 12182, 13103],
atk: [23, 61, 81, 121, 135, 156, 175, 195, 210, 231, 245, 266, 280, 301],
@@ -90,9 +89,18 @@ pub const TARTAGLIA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus288(StatName::HydroBonus),
weapon_type: WeaponType::Bow,
star: 5,
- skill_name1: "普通攻击·断雨",
- skill_name2: "魔王武装·狂澜",
- skill_name3: "极恶技·尽灭闪",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·断雨",
+ en: "Normal Attack: Cutting Torrent",
+ ),
+ skill_name2: locale!(
+ zh_cn: "魔王武装·狂澜",
+ en: "Foul Legacy: Raging Tide",
+ ),
+ skill_name3: locale!(
+ zh_cn: "极恶技·尽灭闪",
+ en: "Havoc: Obliteration",
+ ),
name_locale: locale!(
zh_cn: "达达利亚",
en: "Tartaglia",
diff --git a/mona_core/src/character/characters/hydro/xingqiu.rs b/mona_core/src/character/characters/hydro/xingqiu.rs
index 0cf573d7..7a72eb84 100644
--- a/mona_core/src/character/characters/hydro/xingqiu.rs
+++ b/mona_core/src/character/characters/hydro/xingqiu.rs
@@ -60,7 +60,6 @@ pub const XINGQIU_SKILL: XingqiuSkillType = XingqiuSkillType {
pub const XINGQIU_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Xingqiu,
internal_name: "Xingqiu",
- chs: "行秋",
element: Element::Hydro,
hp: [857, 2202, 2842, 4257, 4712, 5420, 6027, 6735, 7190, 7897, 8352, 9060, 9514, 10222],
atk: [17, 43, 56, 84, 93, 107, 119, 133, 142, 156, 165, 179, 188, 202],
@@ -68,9 +67,18 @@ pub const XINGQIU_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ATK240,
weapon_type: WeaponType::Sword,
star: 4,
- skill_name1: "普通攻击·古华剑法",
- skill_name2: "古华剑·画雨笼山",
- skill_name3: "古华剑·裁雨留虹",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·古华剑法",
+ en: "Normal Attack: Guhua Style",
+ ),
+ skill_name2: locale!(
+ zh_cn: "古华剑·画雨笼山",
+ en: "Guhua Sword: Fatal Rainscreen",
+ ),
+ skill_name3: locale!(
+ zh_cn: "古华剑·裁雨留虹",
+ en: "Guhua Sword: Raincutter",
+ ),
name_locale: locale!(
zh_cn: "行秋",
en: "Xingqiu",
diff --git a/mona_core/src/character/characters/hydro/yelan.rs b/mona_core/src/character/characters/hydro/yelan.rs
index e00fc952..6268ad1b 100644
--- a/mona_core/src/character/characters/hydro/yelan.rs
+++ b/mona_core/src/character/characters/hydro/yelan.rs
@@ -134,7 +134,6 @@ impl CharacterTrait for Yelan {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Yelan,
internal_name: "Yelan",
- chs: "夜兰",
element: Element::Hydro,
hp: [1125, 2918, 3883, 5810, 6495, 7472, 8386, 9374, 10059, 11056, 11741, 12749, 13434, 14450],
atk: [19, 49, 66, 98, 110, 126, 142, 158, 170, 187, 198, 215, 227, 244],
@@ -142,9 +141,18 @@ impl CharacterTrait for Yelan {
sub_stat: CharacterSubStatFamily::CriticalRate192,
weapon_type: WeaponType::Bow,
star: 5,
- skill_name1: "普通攻击·潜形隐曜弓",
- skill_name2: "萦络纵命索",
- skill_name3: "渊图玲珑骰",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·潜形隐曜弓",
+ en: "Normal Attack: Stealthy Bowshot",
+ ),
+ skill_name2: locale!(
+ zh_cn: "萦络纵命索",
+ en: "Lingering Lifeline",
+ ),
+ skill_name3: locale!(
+ zh_cn: "渊图玲珑骰",
+ en: "Depth-Clarion Dice",
+ ),
name_locale: locale!(
zh_cn: "夜兰",
en: "Yelan",
diff --git a/mona_core/src/character/characters/pyro/amber.rs b/mona_core/src/character/characters/pyro/amber.rs
index 11fd5838..50b6ae7d 100644
--- a/mona_core/src/character/characters/pyro/amber.rs
+++ b/mona_core/src/character/characters/pyro/amber.rs
@@ -55,7 +55,6 @@ pub const AMBER_SKILL: AmberSkillType = AmberSkillType {
pub const AMBER_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Amber,
internal_name: "Ambor",
- chs: "安柏",
element: Element::Pyro,
hp: [793, 2038, 2630, 3940, 4361, 5016, 5578, 6233, 6654, 7309, 7730, 8358, 8806, 9461],
atk: [19, 48, 62, 93, 103, 118, 131, 147, 157, 172, 182, 198, 208, 223],
@@ -63,9 +62,18 @@ pub const AMBER_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ATK240,
weapon_type: WeaponType::Bow,
star: 4,
- skill_name1: "普通攻击·神射手",
- skill_name2: "爆弹玩偶",
- skill_name3: "箭雨",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·神射手",
+ en: "Normal Attack: Sharpshooter",
+ ),
+ skill_name2: locale!(
+ zh_cn: "爆弹玩偶",
+ en: "Explosive Puppet",
+ ),
+ skill_name3: locale!(
+ zh_cn: "箭雨",
+ en: "Fiery Rain",
+ ),
name_locale: locale!(
zh_cn: "安柏",
en: "Amber",
diff --git a/mona_core/src/character/characters/pyro/bennett.rs b/mona_core/src/character/characters/pyro/bennett.rs
index a89c489c..50c816bc 100644
--- a/mona_core/src/character/characters/pyro/bennett.rs
+++ b/mona_core/src/character/characters/pyro/bennett.rs
@@ -67,7 +67,6 @@ pub const BENNETT_SKILL: BennettSkillType = BennettSkillType {
pub const BENNETT_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Bennett,
internal_name: "Bennett",
- chs: "班尼特",
element: Element::Pyro,
hp: [1039, 2670, 3447, 5163, 5715, 6573, 7309, 8186, 8719, 9577, 10129, 10987, 11539, 12397],
atk: [16, 41, 53, 80, 88, 101, 113, 126, 134, 148, 156, 169, 178, 191],
@@ -75,9 +74,18 @@ pub const BENNETT_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Recharge267,
weapon_type: WeaponType::Sword,
star: 4,
- skill_name1: "普通攻击·好运剑",
- skill_name2: "热情过载",
- skill_name3: "美妙旅程",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·好运剑",
+ en: "Normal Attack: Strike of Fortune",
+ ),
+ skill_name2: locale!(
+ zh_cn: "热情过载",
+ en: "Passion Overload",
+ ),
+ skill_name3: locale!(
+ zh_cn: "美妙旅程",
+ en: "Fantastic Voyage",
+ ),
name_locale: locale!(
zh_cn: "班尼特",
en: "Bennett",
diff --git a/mona_core/src/character/characters/pyro/diluc.rs b/mona_core/src/character/characters/pyro/diluc.rs
index 518274c7..77b8044d 100644
--- a/mona_core/src/character/characters/pyro/diluc.rs
+++ b/mona_core/src/character/characters/pyro/diluc.rs
@@ -58,7 +58,6 @@ pub const DILUC_SKILL: DilucSkillType = DilucSkillType {
const DILUC_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Diluc,
internal_name: "Diluc",
- chs: "迪卢克",
element: Element::Pyro,
hp: [1011, 2621, 3488, 5219, 5834, 6712, 7533, 8421, 9036, 9932, 10547, 11453, 12068, 12981],
atk: [26, 68, 90, 135, 151, 173, 194, 217, 233, 256, 272, 295, 311, 335],
@@ -66,9 +65,18 @@ const DILUC_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::CriticalRate192,
weapon_type: WeaponType::Claymore,
star: 5,
- skill_name1: "普通攻击·淬炼之剑",
- skill_name2: "逆焰之刃",
- skill_name3: "黎明",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·淬炼之剑",
+ en: "Normal Attack: Tempered Sword",
+ ),
+ skill_name2: locale!(
+ zh_cn: "逆焰之刃",
+ en: "Searing Onslaught",
+ ),
+ skill_name3: locale!(
+ zh_cn: "黎明",
+ en: "Dawn",
+ ),
name_locale: locale!(
zh_cn: "迪卢克",
en: "Diluc",
diff --git a/mona_core/src/character/characters/pyro/hu_tao.rs b/mona_core/src/character/characters/pyro/hu_tao.rs
index 9a2bb52c..7c78de2f 100644
--- a/mona_core/src/character/characters/pyro/hu_tao.rs
+++ b/mona_core/src/character/characters/pyro/hu_tao.rs
@@ -65,7 +65,6 @@ pub const HU_TAO_SKILL: HuTaoSkillType = HuTaoSkillType {
pub const HU_TAO_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::HuTao,
internal_name: "Hutao",
- chs: "胡桃",
element: Element::Pyro,
hp: [1211, 3141, 4179, 6253, 6990, 8042, 9026, 10089, 10826, 11899, 12637, 13721, 14459, 15552],
atk: [8, 21, 29, 43, 48, 55, 62, 69, 74, 81, 86, 94, 99, 106],
@@ -73,9 +72,18 @@ pub const HU_TAO_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::CriticalDamage384,
weapon_type: WeaponType::Polearm,
star: 5,
- skill_name1: "普通攻击·往生秘传枪法",
- skill_name2: "蝶引来生",
- skill_name3: "安神秘法",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·往生秘传枪法",
+ en: "Normal Attack: Secret Spear of Wangsheng",
+ ),
+ skill_name2: locale!(
+ zh_cn: "蝶引来生",
+ en: "Guide to Afterlife",
+ ),
+ skill_name3: locale!(
+ zh_cn: "安神秘法",
+ en: "Spirit Soother",
+ ),
name_locale: locale!(
zh_cn: "胡桃",
en: "Hu Tao",
diff --git a/mona_core/src/character/characters/pyro/klee.rs b/mona_core/src/character/characters/pyro/klee.rs
index 2b808208..42e8ed45 100644
--- a/mona_core/src/character/characters/pyro/klee.rs
+++ b/mona_core/src/character/characters/pyro/klee.rs
@@ -48,7 +48,6 @@ pub const KLEE_SKILL: KleeSkillType = KleeSkillType {
pub const KLEE_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Klee,
internal_name: "Klee",
- chs: "可莉",
element: Element::Pyro,
hp: [801, 2077, 2764, 4136, 4623, 5319, 5970, 6673, 7161, 7870, 8358, 9076, 9563, 10287],
atk: [24, 63, 84, 125, 140, 161, 180, 202, 216, 238, 253, 274, 289, 311],
@@ -56,9 +55,18 @@ pub const KLEE_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus288(StatName::PyroBonus),
weapon_type: WeaponType::Catalyst,
star: 5,
- skill_name1: "普通攻击·砰砰",
- skill_name2: "蹦蹦炸弹",
- skill_name3: "轰轰火花",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·砰砰",
+ en: "Normal Attack: Kaboom!",
+ ),
+ skill_name2: locale!(
+ zh_cn: "蹦蹦炸弹",
+ en: "Jumpy Dumpty",
+ ),
+ skill_name3: locale!(
+ zh_cn: "轰轰火花",
+ en: "Sparks 'n' Splash",
+ ),
name_locale: locale!(
zh_cn: "可莉",
en: "Klee",
diff --git a/mona_core/src/character/characters/pyro/thoma.rs b/mona_core/src/character/characters/pyro/thoma.rs
index 74805987..1fd2dc4d 100644
--- a/mona_core/src/character/characters/pyro/thoma.rs
+++ b/mona_core/src/character/characters/pyro/thoma.rs
@@ -62,7 +62,6 @@ pub const THOMA_SKILL: ThomaSkillType = ThomaSkillType {
pub const THOMA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Thoma,
internal_name: "Tohma",
- chs: "托马",
element: Element::Pyro,
hp: [866, 2225, 2872, 4302, 4762, 5478, 6091, 6806, 7266, 7981, 8440, 9156, 9616, 10331],
atk: [17, 43, 56, 84, 93, 107, 119, 133, 142, 156, 165, 179, 188, 202],
@@ -70,9 +69,18 @@ pub const THOMA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ATK240,
weapon_type: WeaponType::Polearm,
star: 4,
- skill_name1: "普通攻击·迅破枪势",
- skill_name2: "烈烧佑命之侍护",
- skill_name3: "真红炽火之大铠",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·迅破枪势",
+ en: "Normal Attack: Swiftshatter Spear",
+ ),
+ skill_name2: locale!(
+ zh_cn: "烈烧佑命之侍护",
+ en: "Blazing Blessing",
+ ),
+ skill_name3: locale!(
+ zh_cn: "真红炽火之大铠",
+ en: "Crimson Ooyoroi",
+ ),
name_locale: locale!(
zh_cn: "托马",
en: "Thoma",
diff --git a/mona_core/src/character/characters/pyro/xiangling.rs b/mona_core/src/character/characters/pyro/xiangling.rs
index 54810100..6c1f9481 100644
--- a/mona_core/src/character/characters/pyro/xiangling.rs
+++ b/mona_core/src/character/characters/pyro/xiangling.rs
@@ -58,7 +58,6 @@ pub const XIANGLING_SKILL: XianglingSkillType = XianglingSkillType {
pub const XIANGLING_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Xiangling,
internal_name: "Xiangling",
- chs: "香菱",
element: Element::Pyro,
hp: [912, 2342, 3024, 4529, 5013, 5766, 6411, 7164, 7648, 8401, 8885, 9638, 10122, 10875],
atk: [19, 48, 63, 94, 104, 119, 133, 148, 158, 174, 184, 200, 210, 225],
@@ -66,9 +65,18 @@ pub const XIANGLING_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ElementalMastery96,
weapon_type: WeaponType::Polearm,
star: 4,
- skill_name1: "普通攻击·白案功夫",
- skill_name2: "锅巴出击",
- skill_name3: "旋火轮",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·白案功夫",
+ en: "Normal Attack: Dough-Fu",
+ ),
+ skill_name2: locale!(
+ zh_cn: "锅巴出击",
+ en: "Guoba Attack",
+ ),
+ skill_name3: locale!(
+ zh_cn: "旋火轮",
+ en: "Pyronado",
+ ),
name_locale: locale!(
zh_cn: "香菱",
en: "Xiangling",
diff --git a/mona_core/src/character/characters/pyro/xinyan.rs b/mona_core/src/character/characters/pyro/xinyan.rs
index 0814ff18..f45fb160 100644
--- a/mona_core/src/character/characters/pyro/xinyan.rs
+++ b/mona_core/src/character/characters/pyro/xinyan.rs
@@ -67,7 +67,6 @@ pub const XINYAN_SKILL: XinyanSkillType = XinyanSkillType {
pub const XINYAN_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Xinyan,
internal_name: "Xinyan",
- chs: "辛焱",
element: Element::Pyro,
hp: [939, 2413, 3114, 4665, 5163, 5939, 6604, 7379, 7878, 8653, 9151, 9927, 10425, 11201],
atk: [21, 54, 69, 103, 115, 132, 147, 164, 175, 192, 203, 220, 231, 249],
@@ -75,9 +74,18 @@ pub const XINYAN_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::ATK240,
weapon_type: WeaponType::Claymore,
star: 4,
- skill_name1: "普通攻击·炎舞",
- skill_name2: "热情拂扫",
- skill_name3: "叛逆刮弦",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·炎舞",
+ en: "Normal Attack: Dance on Fire",
+ ),
+ skill_name2: locale!(
+ zh_cn: "热情拂扫",
+ en: "Sweeping Fervor",
+ ),
+ skill_name3: locale!(
+ zh_cn: "叛逆刮弦",
+ en: "Riff Revolution",
+ ),
name_locale: locale!(
zh_cn: "辛焱",
en: "Xinyan",
diff --git a/mona_core/src/character/characters/pyro/yanfei.rs b/mona_core/src/character/characters/pyro/yanfei.rs
index 529e5cfd..57ffeced 100644
--- a/mona_core/src/character/characters/pyro/yanfei.rs
+++ b/mona_core/src/character/characters/pyro/yanfei.rs
@@ -56,7 +56,6 @@ pub const YANFEI_SKILL: YanfeiSkillType = YanfeiSkillType {
pub const YANFEI_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Yanfei,
internal_name: "Feiyan",
- chs: "烟绯",
element: Element::Pyro,
hp: [784, 2014, 2160, 3895, 4311, 4959, 5514, 6161, 6578, 7225, 7641, 8289, 8705, 9352],
atk: [20, 52, 67, 100, 111, 127, 141, 158, 169, 185, 196, 213, 223, 240],
@@ -64,9 +63,18 @@ pub const YANFEI_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::Bonus240(StatName::PyroBonus),
weapon_type: WeaponType::Catalyst,
star: 4,
- skill_name1: "普通攻击·火漆制印",
- skill_name2: "丹书立约",
- skill_name3: "凭此结契",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·火漆制印",
+ en: "Normal Attack: Seal of Approval",
+ ),
+ skill_name2: locale!(
+ zh_cn: "丹书立约",
+ en: "Signed Edict",
+ ),
+ skill_name3: locale!(
+ zh_cn: "凭此结契",
+ en: "Done Deal",
+ ),
name_locale: locale!(
zh_cn: "烟绯",
en: "Yanfei",
diff --git a/mona_core/src/character/characters/pyro/yoimiya.rs b/mona_core/src/character/characters/pyro/yoimiya.rs
index 3c941535..d7d77184 100644
--- a/mona_core/src/character/characters/pyro/yoimiya.rs
+++ b/mona_core/src/character/characters/pyro/yoimiya.rs
@@ -56,7 +56,6 @@ pub const YOIMIYA_SKILL: YoimiyaSkill = YoimiyaSkill {
pub const YOIMIYA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::Yoimiya,
internal_name: "Yoimiya",
- chs: "宵宫",
element: Element::Pyro,
hp: [791, 2053, 2731, 4086, 4568, 5256, 5899, 6593, 7075, 7777, 8259, 8968, 9450, 10164],
atk: [25, 65, 87, 130, 145, 167, 187, 209, 225, 247, 262, 285, 300, 323],
@@ -64,9 +63,18 @@ pub const YOIMIYA_STATIC_DATA: CharacterStaticData = CharacterStaticData {
sub_stat: CharacterSubStatFamily::CriticalRate192,
weapon_type: WeaponType::Bow,
star: 5,
- skill_name1: "普通攻击·烟火打扬",
- skill_name2: "焰硝庭火舞",
- skill_name3: "琉金云间草",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·烟火打扬",
+ en: "Normal Attack: Firework Flare-Up",
+ ),
+ skill_name2: locale!(
+ zh_cn: "焰硝庭火舞",
+ en: "Niwabi Fire-Dance",
+ ),
+ skill_name3: locale!(
+ zh_cn: "琉金云间草",
+ en: "Ryuukin Saxifrage",
+ ),
name_locale: locale!(
zh_cn: "宵宫",
en: "Yoimiya",
diff --git a/mona_core/src/character/characters/traveller/aether_anemo.rs b/mona_core/src/character/characters/traveller/aether_anemo.rs
index 75b67b9f..54e5193d 100644
--- a/mona_core/src/character/characters/traveller/aether_anemo.rs
+++ b/mona_core/src/character/characters/traveller/aether_anemo.rs
@@ -136,7 +136,6 @@ impl CharacterTrait for AetherAnemo {
const STATIC_DATA: CharacterStaticData = CharacterStaticData {
name: CharacterName::AetherAnemo,
internal_name: "PlayerBoy",
- chs: "空-风",
element: Element::Anemo,
hp: [912, 2342, 3024, 4529, 5031, 5766, 6411, 7164, 7648, 8401, 8885, 9638, 10122, 10875],
atk: [18, 46, 59, 88, 98, 113, 125, 140, 149, 164, 174, 188, 198, 212],
@@ -144,9 +143,18 @@ impl CharacterTrait for AetherAnemo {
sub_stat: CharacterSubStatFamily::ATK240,
weapon_type: WeaponType::Sword,
star: 5,
- skill_name1: "普通攻击·异邦铁风",
- skill_name2: "风涡剑",
- skill_name3: "风息激荡",
+ skill_name1: locale!(
+ zh_cn: "普通攻击·异邦铁风",
+ en: "Normal Attack: Foreign Ironwind",
+ ),
+ skill_name2: locale!(
+ zh_cn: "风涡剑",
+ en: "Palm Vortex",
+ ),
+ skill_name3: locale!(
+ zh_cn: "风息激荡",
+ en: "Gust Surge",
+ ),
name_locale: locale!(
zh_cn: "空-风",
en: "Aether(Anemo)",
diff --git a/mona_generate/src/gen_meta/gen_character_meta.rs b/mona_generate/src/gen_meta/gen_character_meta.rs
index 6cc83baf..4314902b 100644
--- a/mona_generate/src/gen_meta/gen_character_meta.rs
+++ b/mona_generate/src/gen_meta/gen_character_meta.rs
@@ -13,11 +13,10 @@ struct CharacterMeta {
internal_name: String,
name_locale: usize,
// icon_name: String,
- chs: String,
star: usize,
- skill1_name: String,
- skill2_name: String,
- skill3_name: String,
+ skill1_name_index: usize,
+ skill2_name_index: usize,
+ skill3_name_index: usize,
element: String,
weapon: String,
skill_map1: Vec,
@@ -88,11 +87,10 @@ pub fn gen_character_meta_as_js_file() -> String {
name: meta.name.to_string(),
internal_name: String::from(meta.internal_name),
name_locale,
- chs: String::from(meta.chs),
star: meta.star as usize,
- skill1_name: String::from(meta.skill_name1),
- skill2_name: String::from(meta.skill_name2),
- skill3_name: String::from(meta.skill_name3),
+ skill1_name_index: *index_mapping.get(&meta.skill_name1).unwrap(),
+ skill2_name_index: *index_mapping.get(&meta.skill_name2).unwrap(),
+ skill3_name_index: *index_mapping.get(&meta.skill_name3).unwrap(),
element: meta.element.to_string(),
weapon: meta.weapon_type.to_string(),
skill_map1: s1,
diff --git a/mona_generate/src/gen_meta/gen_locale.rs b/mona_generate/src/gen_meta/gen_locale.rs
index 4127e4be..755bf670 100644
--- a/mona_generate/src/gen_meta/gen_locale.rs
+++ b/mona_generate/src/gen_meta/gen_locale.rs
@@ -13,11 +13,25 @@ pub fn collect_character_names() -> Vec {
set.into_iter().collect()
}
+pub fn collect_character_skills() -> Vec {
+ // it's impossible to duplicate
+ let mut result = Vec::new();
+
+ for c in CharacterName::iter() {
+ let meta: CharacterStaticData = c.get_static_data();
+ result.push(meta.skill_name1.clone());
+ result.push(meta.skill_name2.clone());
+ result.push(meta.skill_name3.clone());
+ }
+ result
+}
+
pub fn collect_locale() -> Vec {
let mut set = HashSet::new();
// collect character names
set.extend(collect_character_names());
+ set.extend(collect_character_skills());
set.into_iter().collect()
}
diff --git a/mona_generate/templates/character_meta_template.js b/mona_generate/templates/character_meta_template.js
index b2692dd5..14fd3fa3 100644
--- a/mona_generate/templates/character_meta_template.js
+++ b/mona_generate/templates/character_meta_template.js
@@ -22,9 +22,9 @@ export default {
// avatar: {{ c.name }}_avatar,
avatar: getName("{{ c.internal_name }}"),
splash: {{ c.name }}_splash,
- skillName1: "{{ c.skill1_name }}",
- skillName2: "{{ c.skill2_name }}",
- skillName3: "{{ c.skill3_name }}",
+ skillName1: {{ c.skill1_name_index }},
+ skillName2: {{ c.skill2_name_index }},
+ skillName3: {{ c.skill3_name_index }},
skillMap1: [
{% for s in c.skill_map1 %}
{ index: {{ s.index }}, text: {{ dmg_name_map[s.chs] }} },
diff --git a/src/assets/_gen_character.js b/src/assets/_gen_character.js
index a6be601f..93c05c7f 100644
--- a/src/assets/_gen_character.js
+++ b/src/assets/_gen_character.js
@@ -262,7 +262,7 @@ export default {
AetherAnemo: {
name: "AetherAnemo",
- name_locale: 0,
+ name_locale: 189,
element: "Anemo",
weapon: "Sword",
star: 5,
@@ -270,9 +270,9 @@ export default {
// avatar: AetherAnemo_avatar,
avatar: getName("PlayerBoy"),
splash: AetherAnemo_splash,
- skillName1: "普通攻击·异邦铁风",
- skillName2: "风涡剑",
- skillName3: "风息激荡",
+ skillName1: 87,
+ skillName2: 240,
+ skillName3: 239,
skillMap1: [
{ index: 0, text: 0 },
@@ -330,7 +330,7 @@ export default {
Albedo: {
name: "Albedo",
- name_locale: 1,
+ name_locale: 230,
element: "Geo",
weapon: "Sword",
star: 5,
@@ -338,9 +338,9 @@ export default {
// avatar: Albedo_avatar,
avatar: getName("Albedo"),
splash: Albedo_splash,
- skillName1: "普通攻击·西风剑术·白",
- skillName2: "创生法·拟造阳华",
- skillName3: "诞生式·大地之潮",
+ skillName1: 127,
+ skillName2: 24,
+ skillName3: 212,
skillMap1: [
{ index: 0, text: 0 },
@@ -388,7 +388,7 @@ export default {
Alhaitham: {
name: "Alhaitham",
- name_locale: 2,
+ name_locale: 199,
element: "Dendro",
weapon: "Sword",
star: 5,
@@ -396,9 +396,9 @@ export default {
// avatar: Alhaitham_avatar,
avatar: getName("Alhatham"),
splash: Alhaitham_splash,
- skillName1: "",
- skillName2: "",
- skillName3: "",
+ skillName1: 103,
+ skillName2: 15,
+ skillName3: 144,
skillMap1: [
{ index: 0, text: 0 },
@@ -458,7 +458,7 @@ export default {
Aloy: {
name: "Aloy",
- name_locale: 3,
+ name_locale: 44,
element: "Cryo",
weapon: "Bow",
star: 5,
@@ -466,9 +466,9 @@ export default {
// avatar: Aloy_avatar,
avatar: getName("Aloy"),
splash: Aloy_splash,
- skillName1: "普通攻击·快速射击",
- skillName2: "冰尘雪野",
- skillName3: "曙光预言",
+ skillName1: 93,
+ skillName2: 17,
+ skillName3: 138,
skillMap1: [
{ index: 0, text: 23 },
@@ -516,7 +516,7 @@ export default {
Amber: {
name: "Amber",
- name_locale: 4,
+ name_locale: 55,
element: "Pyro",
weapon: "Bow",
star: 4,
@@ -524,9 +524,9 @@ export default {
// avatar: Amber_avatar,
avatar: getName("Ambor"),
splash: Amber_splash,
- skillName1: "普通攻击·神射手",
- skillName2: "爆弹玩偶",
- skillName3: "箭雨",
+ skillName1: 116,
+ skillName2: 161,
+ skillName3: 190,
skillMap1: [
{ index: 0, text: 0 },
@@ -572,7 +572,7 @@ export default {
AratakiItto: {
name: "AratakiItto",
- name_locale: 5,
+ name_locale: 202,
element: "Geo",
weapon: "Claymore",
star: 5,
@@ -580,9 +580,9 @@ export default {
// avatar: AratakiItto_avatar,
avatar: getName("Itto"),
splash: AratakiItto_splash,
- skillName1: "普通攻击•喧哗屋传说",
- skillName2: "魔杀绝技•赤牛发破!",
- skillName3: "最恶鬼王•一斗轰临!!",
+ skillName1: 133,
+ skillName2: 247,
+ skillName3: 139,
skillMap1: [
{ index: 0, text: 0 },
@@ -626,7 +626,7 @@ export default {
Barbara: {
name: "Barbara",
- name_locale: 6,
+ name_locale: 200,
element: "Hydro",
weapon: "Catalyst",
star: 4,
@@ -634,9 +634,9 @@ export default {
// avatar: Barbara_avatar,
avatar: getName("Barbara"),
splash: Barbara_splash,
- skillName1: "普通攻击·水之浅唱",
- skillName2: "演唱,开始♪",
- skillName3: "闪耀奇迹♪",
+ skillName1: 99,
+ skillName2: 152,
+ skillName3: 229,
skillMap1: [
{ index: 0, text: 0 },
@@ -680,7 +680,7 @@ export default {
Beidou: {
name: "Beidou",
- name_locale: 7,
+ name_locale: 28,
element: "Electro",
weapon: "Claymore",
star: 4,
@@ -688,9 +688,9 @@ export default {
// avatar: Beidou_avatar,
avatar: getName("Beidou"),
splash: Beidou_splash,
- skillName1: "普通攻击·征涛",
- skillName2: "捉浪",
- skillName3: "斫雷",
+ skillName1: 90,
+ skillName2: 66,
+ skillName3: 68,
skillMap1: [
{ index: 0, text: 0 },
@@ -740,7 +740,7 @@ export default {
Bennett: {
name: "Bennett",
- name_locale: 8,
+ name_locale: 169,
element: "Pyro",
weapon: "Sword",
star: 4,
@@ -748,9 +748,9 @@ export default {
// avatar: Bennett_avatar,
avatar: getName("Bennett"),
splash: Bennett_splash,
- skillName1: "普通攻击·好运剑",
- skillName2: "热情过载",
- skillName3: "美妙旅程",
+ skillName1: 84,
+ skillName2: 158,
+ skillName3: 194,
skillMap1: [
{ index: 0, text: 0 },
@@ -806,7 +806,7 @@ export default {
Candace: {
name: "Candace",
- name_locale: 9,
+ name_locale: 42,
element: "Hydro",
weapon: "Polearm",
star: 4,
@@ -814,9 +814,9 @@ export default {
// avatar: Candace_avatar,
avatar: getName("Candace"),
splash: Candace_splash,
- skillName1: "",
- skillName2: "",
- skillName3: "",
+ skillName1: 101,
+ skillName2: 40,
+ skillName3: 38,
skillMap1: [
{ index: 0, text: 0 },
@@ -866,7 +866,7 @@ export default {
Chongyun: {
name: "Chongyun",
- name_locale: 10,
+ name_locale: 224,
element: "Cryo",
weapon: "Claymore",
star: 4,
@@ -874,9 +874,9 @@ export default {
// avatar: Chongyun_avatar,
avatar: getName("Chongyun"),
splash: Chongyun_splash,
- skillName1: "普通攻击·灭邪四式",
- skillName2: "灵刃·重华叠霜",
- skillName3: "灵刃·云开星落",
+ skillName1: 106,
+ skillName2: 154,
+ skillName3: 153,
skillMap1: [
{ index: 0, text: 0 },
@@ -918,7 +918,7 @@ export default {
Collei: {
name: "Collei",
- name_locale: 11,
+ name_locale: 143,
element: "Dendro",
weapon: "Bow",
star: 4,
@@ -926,9 +926,9 @@ export default {
// avatar: Collei_avatar,
avatar: getName("Collei"),
splash: Collei_splash,
- skillName1: "普通攻击·祈颂射艺",
- skillName2: "拂花偈叶",
- skillName3: "猫猫秘宝",
+ skillName1: 114,
+ skillName2: 65,
+ skillName3: 165,
skillMap1: [
{ index: 0, text: 0 },
@@ -974,7 +974,7 @@ export default {
Cyno: {
name: "Cyno",
- name_locale: 12,
+ name_locale: 214,
element: "Electro",
weapon: "Polearm",
star: 5,
@@ -982,9 +982,9 @@ export default {
// avatar: Cyno_avatar,
avatar: getName("Cyno"),
splash: Cyno_splash,
- skillName1: "普通攻击·七圣枪术",
- skillName2: "秘仪·律渊渡魂",
- skillName3: "圣仪·煟煌随狼行",
+ skillName1: 75,
+ skillName2: 188,
+ skillName3: 39,
skillMap1: [
{ index: 0, text: 0 },
@@ -1050,7 +1050,7 @@ export default {
Diluc: {
name: "Diluc",
- name_locale: 13,
+ name_locale: 220,
element: "Pyro",
weapon: "Claymore",
star: 5,
@@ -1058,9 +1058,9 @@ export default {
// avatar: Diluc_avatar,
avatar: getName("Diluc"),
splash: Diluc_splash,
- skillName1: "普通攻击·淬炼之剑",
- skillName2: "逆焰之刃",
- skillName3: "黎明",
+ skillName1: 102,
+ skillName2: 222,
+ skillName3: 251,
skillMap1: [
{ index: 0, text: 0 },
@@ -1112,7 +1112,7 @@ export default {
Diona: {
name: "Diona",
- name_locale: 14,
+ name_locale: 221,
element: "Cryo",
weapon: "Bow",
star: 4,
@@ -1120,9 +1120,9 @@ export default {
// avatar: Diona_avatar,
avatar: getName("Diona"),
splash: Diona_splash,
- skillName1: "普通攻击·猎人射术",
- skillName2: "猫爪冻冻",
- skillName3: "最烈特调",
+ skillName1: 111,
+ skillName2: 164,
+ skillName3: 140,
skillMap1: [
{ index: 0, text: 0 },
@@ -1170,7 +1170,7 @@ export default {
Dori: {
name: "Dori",
- name_locale: 15,
+ name_locale: 45,
element: "Electro",
weapon: "Claymore",
star: 4,
@@ -1178,9 +1178,9 @@ export default {
// avatar: Dori_avatar,
avatar: getName("Dori"),
splash: Dori_splash,
- skillName1: "",
- skillName2: "",
- skillName3: "",
+ skillName1: 85,
+ skillName2: 228,
+ skillName3: 30,
skillMap1: [
{ index: 0, text: 0 },
@@ -1228,7 +1228,7 @@ export default {
Eula: {
name: "Eula",
- name_locale: 16,
+ name_locale: 13,
element: "Cryo",
weapon: "Claymore",
star: 5,
@@ -1236,9 +1236,9 @@ export default {
// avatar: Eula_avatar,
avatar: getName("Eula"),
splash: Eula_splash,
- skillName1: "普通攻击·西风剑术·宗室",
- skillName2: "冰潮的涡旋",
- skillName3: "凝浪之光剑",
+ skillName1: 126,
+ skillName2: 18,
+ skillName3: 21,
skillMap1: [
{ index: 0, text: 0 },
@@ -1296,7 +1296,7 @@ export default {
Faruzan: {
name: "Faruzan",
- name_locale: 17,
+ name_locale: 168,
element: "Anemo",
weapon: "Bow",
star: 4,
@@ -1304,9 +1304,9 @@ export default {
// avatar: Faruzan_avatar,
avatar: getName("Faruzan"),
splash: Faruzan_splash,
- skillName1: "普通攻击·迴身箭术",
- skillName2: "非想风天",
- skillName3: "抟风秘道",
+ skillName1: 129,
+ skillName2: 237,
+ skillName3: 63,
skillMap1: [
{ index: 0, text: 0 },
@@ -1354,7 +1354,7 @@ export default {
Fischl: {
name: "Fischl",
- name_locale: 18,
+ name_locale: 205,
element: "Electro",
weapon: "Bow",
star: 4,
@@ -1362,9 +1362,9 @@ export default {
// avatar: Fischl_avatar,
avatar: getName("Fischl"),
splash: Fischl_splash,
- skillName1: "普通攻击·罪灭之矢",
- skillName2: "夜巡影翼",
- skillName3: "至夜幻现",
+ skillName1: 120,
+ skillName2: 47,
+ skillName3: 198,
skillMap1: [
{ index: 0, text: 0 },
@@ -1410,7 +1410,7 @@ export default {
Ganyu: {
name: "Ganyu",
- name_locale: 19,
+ name_locale: 174,
element: "Cryo",
weapon: "Bow",
star: 5,
@@ -1418,9 +1418,9 @@ export default {
// avatar: Ganyu_avatar,
avatar: getName("Ganyu"),
splash: Ganyu_splash,
- skillName1: "普通攻击·流天射术",
- skillName2: "山泽麟迹",
- skillName3: "降众天华",
+ skillName1: 100,
+ skillName2: 58,
+ skillName3: 231,
skillMap1: [
{ index: 0, text: 0 },
@@ -1474,7 +1474,7 @@ export default {
Gorou: {
name: "Gorou",
- name_locale: 20,
+ name_locale: 9,
element: "Geo",
weapon: "Bow",
star: 4,
@@ -1482,9 +1482,9 @@ export default {
// avatar: Gorou_avatar,
avatar: getName("Gorou"),
splash: Gorou_splash,
- skillName1: "普通攻击•呲牙裂扇箭",
- skillName2: "犬坂吠吠方圆阵",
- skillName3: "兽牙逐突形胜战法",
+ skillName1: 132,
+ skillName2: 162,
+ skillName3: 16,
skillMap1: [
{ index: 0, text: 0 },
@@ -1528,7 +1528,7 @@ export default {
HuTao: {
name: "HuTao",
- name_locale: 21,
+ name_locale: 197,
element: "Pyro",
weapon: "Polearm",
star: 5,
@@ -1536,9 +1536,9 @@ export default {
// avatar: HuTao_avatar,
avatar: getName("Hutao"),
splash: HuTao_splash,
- skillName1: "普通攻击·往生秘传枪法",
- skillName2: "蝶引来生",
- skillName3: "安神秘法",
+ skillName1: 89,
+ skillName2: 209,
+ skillName3: 56,
skillMap1: [
{ index: 0, text: 0 },
@@ -1590,7 +1590,7 @@ export default {
Jean: {
name: "Jean",
- name_locale: 22,
+ name_locale: 171,
element: "Anemo",
weapon: "Sword",
star: 5,
@@ -1598,9 +1598,9 @@ export default {
// avatar: Jean_avatar,
avatar: getName("Qin"),
splash: Jean_splash,
- skillName1: "普通攻击·西风剑术",
- skillName2: "风压剑",
- skillName3: "蒲公英之风",
+ skillName1: 124,
+ skillName2: 238,
+ skillName3: 207,
skillMap1: [
{ index: 0, text: 0 },
@@ -1648,7 +1648,7 @@ export default {
KaedeharaKazuha: {
name: "KaedeharaKazuha",
- name_locale: 23,
+ name_locale: 142,
element: "Anemo",
weapon: "Sword",
star: 5,
@@ -1656,9 +1656,9 @@ export default {
// avatar: KaedeharaKazuha_avatar,
avatar: getName("Kazuha"),
splash: KaedeharaKazuha_splash,
- skillName1: "普通攻击·我流剑术",
- skillName2: "千早振",
- skillName3: "万叶之一刀",
+ skillName1: 94,
+ skillName2: 29,
+ skillName3: 2,
skillMap1: [
{ index: 0, text: 0 },
@@ -1732,7 +1732,7 @@ export default {
Kaeya: {
name: "Kaeya",
- name_locale: 24,
+ name_locale: 23,
element: "Cryo",
weapon: "Sword",
star: 4,
@@ -1740,9 +1740,9 @@ export default {
// avatar: Kaeya_avatar,
avatar: getName("Kaeya"),
splash: Kaeya_splash,
- skillName1: "普通攻击·仪典剑术",
- skillName2: "霜袭",
- skillName3: "凛冽轮舞",
+ skillName1: 79,
+ skillName2: 235,
+ skillName3: 19,
skillMap1: [
{ index: 0, text: 0 },
@@ -1786,7 +1786,7 @@ export default {
KamisatoAyaka: {
name: "KamisatoAyaka",
- name_locale: 25,
+ name_locale: 186,
element: "Cryo",
weapon: "Sword",
star: 5,
@@ -1794,9 +1794,9 @@ export default {
// avatar: KamisatoAyaka_avatar,
avatar: getName("Ayaka"),
splash: KamisatoAyaka_splash,
- skillName1: "普通攻击·神里流·倾",
- skillName2: "神里流·冰华",
- skillName3: "神里流·霜灭",
+ skillName1: 117,
+ skillName2: 181,
+ skillName3: 184,
skillMap1: [
{ index: 0, text: 0 },
@@ -1848,7 +1848,7 @@ export default {
KamisatoAyato: {
name: "KamisatoAyato",
- name_locale: 26,
+ name_locale: 185,
element: "Hydro",
weapon: "Sword",
star: 5,
@@ -1856,9 +1856,9 @@ export default {
// avatar: KamisatoAyato_avatar,
avatar: getName("Ayato"),
splash: KamisatoAyato_splash,
- skillName1: "普通攻击·神里流·转",
- skillName2: "神里流·镜花",
- skillName3: "神里流·水囿",
+ skillName1: 118,
+ skillName2: 183,
+ skillName3: 182,
skillMap1: [
{ index: 0, text: 0 },
@@ -1910,7 +1910,7 @@ export default {
Keqing: {
name: "Keqing",
- name_locale: 27,
+ name_locale: 26,
element: "Electro",
weapon: "Sword",
star: 5,
@@ -1918,9 +1918,9 @@ export default {
// avatar: Keqing_avatar,
avatar: getName("Keqing"),
splash: Keqing_splash,
- skillName1: "普通攻击·云来剑法",
- skillName2: "星斗归位",
- skillName3: "天街巡游",
+ skillName1: 77,
+ skillName2: 73,
+ skillName3: 52,
skillMap1: [
{ index: 0, text: 0 },
@@ -1978,7 +1978,7 @@ export default {
Klee: {
name: "Klee",
- name_locale: 28,
+ name_locale: 34,
element: "Pyro",
weapon: "Catalyst",
star: 5,
@@ -1986,9 +1986,9 @@ export default {
// avatar: Klee_avatar,
avatar: getName("Klee"),
splash: Klee_splash,
- skillName1: "普通攻击·砰砰",
- skillName2: "蹦蹦炸弹",
- skillName3: "轰轰火花",
+ skillName1: 113,
+ skillName2: 216,
+ skillName3: 217,
skillMap1: [
{ index: 0, text: 0 },
@@ -2030,7 +2030,7 @@ export default {
KujouSara: {
name: "KujouSara",
- name_locale: 29,
+ name_locale: 6,
element: "Electro",
weapon: "Bow",
star: 4,
@@ -2038,9 +2038,9 @@ export default {
// avatar: KujouSara_avatar,
avatar: getName("Sara"),
splash: KujouSara_splash,
- skillName1: "普通攻击•天狗传弓术",
- skillName2: "鸦羽天狗霆雷召咒",
- skillName3: "煌煌千道镇式",
+ skillName1: 134,
+ skillName2: 249,
+ skillName3: 160,
skillMap1: [
{ index: 0, text: 0 },
@@ -2086,7 +2086,7 @@ export default {
KukiShinobu: {
name: "KukiShinobu",
- name_locale: 30,
+ name_locale: 5,
element: "Electro",
weapon: "Sword",
star: 4,
@@ -2094,9 +2094,9 @@ export default {
// avatar: KukiShinobu_avatar,
avatar: getName("Shinobu"),
splash: KukiShinobu_splash,
- skillName1: "普通攻击·忍流飞刃斩",
- skillName2: "越祓雷草之轮",
- skillName3: "御咏鸣神刈山祭",
+ skillName1: 92,
+ skillName2: 215,
+ skillName3: 59,
skillMap1: [
{ index: 0, text: 0 },
@@ -2152,7 +2152,7 @@ export default {
Layla: {
name: "Layla",
- name_locale: 31,
+ name_locale: 204,
element: "Cryo",
weapon: "Sword",
star: 4,
@@ -2160,9 +2160,9 @@ export default {
// avatar: Layla_avatar,
avatar: getName("Layla"),
splash: Layla_splash,
- skillName1: "",
- skillName2: "",
- skillName3: "",
+ skillName1: 109,
+ skillName2: 43,
+ skillName3: 74,
skillMap1: [
{ index: 0, text: 0 },
@@ -2204,7 +2204,7 @@ export default {
Lisa: {
name: "Lisa",
- name_locale: 32,
+ name_locale: 4,
element: "Electro",
weapon: "Catalyst",
star: 4,
@@ -2212,9 +2212,9 @@ export default {
// avatar: Lisa_avatar,
avatar: getName("Lisa"),
splash: Lisa_splash,
- skillName1: "普通攻击·指尖雷暴",
- skillName2: "苍雷",
- skillName3: "蔷薇的雷光",
+ skillName1: 96,
+ skillName2: 201,
+ skillName3: 208,
skillMap1: [
{ index: 0, text: 0 },
@@ -2262,7 +2262,7 @@ export default {
Mona: {
name: "Mona",
- name_locale: 33,
+ name_locale: 203,
element: "Hydro",
weapon: "Catalyst",
star: 5,
@@ -2270,9 +2270,9 @@ export default {
// avatar: Mona_avatar,
avatar: getName("Mona"),
splash: Mona_splash,
- skillName1: "普通攻击·因果点破",
- skillName2: "水中幻愿",
- skillName3: "星命定轨",
+ skillName1: 83,
+ skillName2: 145,
+ skillName3: 72,
skillMap1: [
{ index: 0, text: 0 },
@@ -2314,7 +2314,7 @@ export default {
Nahida: {
name: "Nahida",
- name_locale: 34,
+ name_locale: 191,
element: "Dendro",
weapon: "Catalyst",
star: 5,
@@ -2322,9 +2322,9 @@ export default {
// avatar: Nahida_avatar,
avatar: getName("Nahida"),
splash: Nahida_splash,
- skillName1: "",
- skillName2: "",
- skillName3: "",
+ skillName1: 123,
+ skillName2: 61,
+ skillName3: 60,
skillMap1: [
{ index: 0, text: 0 },
@@ -2372,7 +2372,7 @@ export default {
Nilou: {
name: "Nilou",
- name_locale: 35,
+ name_locale: 54,
element: "Hydro",
weapon: "Sword",
star: 5,
@@ -2380,9 +2380,9 @@ export default {
// avatar: Nilou_avatar,
avatar: getName("Nilou"),
splash: Nilou_splash,
- skillName1: "",
- skillName2: "",
- skillName3: "",
+ skillName1: 88,
+ skillName2: 1,
+ skillName3: 147,
skillMap1: [
{ index: 0, text: 0 },
@@ -2438,7 +2438,7 @@ export default {
Ningguang: {
name: "Ningguang",
- name_locale: 36,
+ name_locale: 20,
element: "Geo",
weapon: "Catalyst",
star: 4,
@@ -2446,9 +2446,9 @@ export default {
// avatar: Ningguang_avatar,
avatar: getName("Ningguang"),
splash: Ningguang_splash,
- skillName1: "普通攻击·千金掷",
- skillName2: "璇玑屏",
- skillName3: "天权崩玉",
+ skillName1: 80,
+ skillName2: 173,
+ skillName3: 51,
skillMap1: [
{ index: 0, text: 122 },
@@ -2486,7 +2486,7 @@ export default {
Noelle: {
name: "Noelle",
- name_locale: 37,
+ name_locale: 213,
element: "Geo",
weapon: "Claymore",
star: 4,
@@ -2494,9 +2494,9 @@ export default {
// avatar: Noelle_avatar,
avatar: getName("Noel"),
splash: Noelle_splash,
- skillName1: "普通攻击·西风剑术·女仆",
- skillName2: "护心铠",
- skillName3: "大扫除",
+ skillName1: 125,
+ skillName2: 64,
+ skillName3: 49,
skillMap1: [
{ index: 0, text: 0 },
@@ -2544,7 +2544,7 @@ export default {
Qiqi: {
name: "Qiqi",
- name_locale: 38,
+ name_locale: 0,
element: "Cryo",
weapon: "Sword",
star: 5,
@@ -2552,9 +2552,9 @@ export default {
// avatar: Qiqi_avatar,
avatar: getName("Qiqi"),
splash: Qiqi_splash,
- skillName1: "普通攻击·云来古剑法",
- skillName2: "仙法·寒病鬼差",
- skillName3: "仙法·救苦度厄",
+ skillName1: 78,
+ skillName2: 10,
+ skillName3: 11,
skillMap1: [
{ index: 0, text: 0 },
@@ -2610,7 +2610,7 @@ export default {
RaidenShogun: {
name: "RaidenShogun",
- name_locale: 39,
+ name_locale: 234,
element: "Electro",
weapon: "Polearm",
star: 5,
@@ -2618,9 +2618,9 @@ export default {
// avatar: RaidenShogun_avatar,
avatar: getName("Shougun"),
splash: RaidenShogun_splash,
- skillName1: "普通攻击•源流",
- skillName2: "神变•恶曜开眼",
- skillName3: "奥义•梦想真说",
+ skillName1: 136,
+ skillName2: 179,
+ skillName3: 53,
skillMap1: [
{ index: 0, text: 0 },
@@ -2692,7 +2692,7 @@ export default {
Razor: {
name: "Razor",
- name_locale: 40,
+ name_locale: 232,
element: "Electro",
weapon: "Claymore",
star: 4,
@@ -2700,9 +2700,9 @@ export default {
// avatar: Razor_avatar,
avatar: getName("Razor"),
splash: Razor_splash,
- skillName1: "普通攻击·钢脊",
- skillName2: "利爪与苍雷",
- skillName3: "雷牙",
+ skillName1: 130,
+ skillName2: 25,
+ skillName3: 233,
skillMap1: [
{ index: 0, text: 0 },
@@ -2758,7 +2758,7 @@ export default {
Rosaria: {
name: "Rosaria",
- name_locale: 41,
+ name_locale: 193,
element: "Cryo",
weapon: "Polearm",
star: 4,
@@ -2766,9 +2766,9 @@ export default {
// avatar: Rosaria_avatar,
avatar: getName("Rosaria"),
splash: Rosaria_splash,
- skillName1: "普通攻击·教会枪术",
- skillName2: "噬罪的告解",
- skillName3: "终命的圣礼",
+ skillName1: 97,
+ skillName2: 37,
+ skillName3: 192,
skillMap1: [
{ index: 0, text: 0 },
@@ -2820,7 +2820,7 @@ export default {
SangonomiyaKokomi: {
name: "SangonomiyaKokomi",
- name_locale: 42,
+ name_locale: 167,
element: "Hydro",
weapon: "Catalyst",
star: 5,
@@ -2828,9 +2828,9 @@ export default {
// avatar: SangonomiyaKokomi_avatar,
avatar: getName("Kokomi"),
splash: SangonomiyaKokomi_splash,
- skillName1: "普通攻击•水有常形",
- skillName2: "海月之誓",
- skillName3: "海人化羽",
+ skillName1: 135,
+ skillName2: 149,
+ skillName3: 148,
skillMap1: [
{ index: 0, text: 0 },
@@ -2874,7 +2874,7 @@ export default {
Sayu: {
name: "Sayu",
- name_locale: 43,
+ name_locale: 71,
element: "Anemo",
weapon: "Claymore",
star: 4,
@@ -2882,9 +2882,9 @@ export default {
// avatar: Sayu_avatar,
avatar: getName("Sayu"),
splash: Sayu_splash,
- skillName1: "普通攻击·忍刀·终末番",
- skillName2: "呜呼流·风隐急进",
- skillName3: "呜呼流·影貉缭乱",
+ skillName1: 91,
+ skillName2: 36,
+ skillName3: 35,
skillMap1: [
{ index: 0, text: 0 },
@@ -2954,7 +2954,7 @@ export default {
Shenhe: {
name: "Shenhe",
- name_locale: 44,
+ name_locale: 175,
element: "Cryo",
weapon: "Polearm",
star: 5,
@@ -2962,9 +2962,9 @@ export default {
// avatar: Shenhe_avatar,
avatar: getName("Shenhe"),
splash: Shenhe_splash,
- skillName1: "普通攻击•踏辰摄斗",
- skillName2: "仰灵威召将役咒",
- skillName3: "神女遣灵真诀",
+ skillName1: 137,
+ skillName2: 12,
+ skillName3: 180,
skillMap1: [
{ index: 0, text: 0 },
@@ -3012,7 +3012,7 @@ export default {
ShikanoinHeizou: {
name: "ShikanoinHeizou",
- name_locale: 45,
+ name_locale: 250,
element: "Anemo",
weapon: "Catalyst",
star: 4,
@@ -3020,9 +3020,9 @@ export default {
// avatar: ShikanoinHeizou_avatar,
avatar: getName("Heizo"),
splash: ShikanoinHeizou_splash,
- skillName1: "普通攻击·不动流格斗术",
- skillName2: "勠心拳",
- skillName3: "聚风蹴",
+ skillName1: 76,
+ skillName2: 27,
+ skillName3: 196,
skillMap1: [
{ index: 0, text: 0 },
@@ -3086,7 +3086,7 @@ export default {
Sucrose: {
name: "Sucrose",
- name_locale: 46,
+ name_locale: 177,
element: "Anemo",
weapon: "Catalyst",
star: 4,
@@ -3094,9 +3094,9 @@ export default {
// avatar: Sucrose_avatar,
avatar: getName("Sucrose"),
splash: Sucrose_splash,
- skillName1: "普通攻击·简式风灵作成",
- skillName2: "风灵作成·陆叁零捌",
- skillName3: "禁·风灵作成·柒伍同构贰型",
+ skillName1: 119,
+ skillName2: 241,
+ skillName3: 187,
skillMap1: [
{ index: 0, text: 0 },
@@ -3144,7 +3144,7 @@ export default {
Tartaglia: {
name: "Tartaglia",
- name_locale: 47,
+ name_locale: 219,
element: "Hydro",
weapon: "Bow",
star: 5,
@@ -3152,9 +3152,9 @@ export default {
// avatar: Tartaglia_avatar,
avatar: getName("Tartaglia"),
splash: Tartaglia_splash,
- skillName1: "普通攻击·断雨",
- skillName2: "魔王武装·狂澜",
- skillName3: "极恶技·尽灭闪",
+ skillName1: 98,
+ skillName2: 248,
+ skillName3: 141,
skillMap1: [
{ index: 0, text: 0 },
@@ -3228,7 +3228,7 @@ export default {
Thoma: {
name: "Thoma",
- name_locale: 48,
+ name_locale: 62,
element: "Pyro",
weapon: "Polearm",
star: 4,
@@ -3236,9 +3236,9 @@ export default {
// avatar: Thoma_avatar,
avatar: getName("Tohma"),
splash: Thoma_splash,
- skillName1: "普通攻击·迅破枪势",
- skillName2: "烈烧佑命之侍护",
- skillName3: "真红炽火之大铠",
+ skillName1: 128,
+ skillName2: 155,
+ skillName3: 176,
skillMap1: [
{ index: 0, text: 0 },
@@ -3280,7 +3280,7 @@ export default {
Tighnari: {
name: "Tighnari",
- name_locale: 49,
+ name_locale: 67,
element: "Dendro",
weapon: "Bow",
star: 5,
@@ -3288,9 +3288,9 @@ export default {
// avatar: Tighnari_avatar,
avatar: getName("Tighnari"),
splash: Tighnari_splash,
- skillName1: "普通攻击·藏蕴破障",
- skillName2: "识果种雷",
- skillName3: "造生缠藤箭",
+ skillName1: 121,
+ skillName2: 211,
+ skillName3: 223,
skillMap1: [
{ index: 0, text: 0 },
@@ -3342,7 +3342,7 @@ export default {
Venti: {
name: "Venti",
- name_locale: 50,
+ name_locale: 151,
element: "Anemo",
weapon: "Bow",
star: 5,
@@ -3350,9 +3350,9 @@ export default {
// avatar: Venti_avatar,
avatar: getName("Venti"),
splash: Venti_splash,
- skillName1: "普通攻击·神代射术",
- skillName2: "高天之歌",
- skillName3: "风神之诗",
+ skillName1: 115,
+ skillName2: 245,
+ skillName3: 242,
skillMap1: [
{ index: 0, text: 23 },
@@ -3412,7 +3412,7 @@ export default {
Wanderer: {
name: "Wanderer",
- name_locale: 51,
+ name_locale: 146,
element: "Anemo",
weapon: "Catalyst",
star: 5,
@@ -3420,9 +3420,9 @@ export default {
// avatar: Wanderer_avatar,
avatar: getName("Wanderer"),
splash: Wanderer_splash,
- skillName1: "普通攻击·行幡鸣弦",
- skillName2: "羽画·风姿华歌",
- skillName3: "狂言·式乐五番",
+ skillName1: 122,
+ skillName2: 195,
+ skillName3: 163,
skillMap1: [
{ index: 0, text: 0 },
@@ -3478,7 +3478,7 @@ export default {
Xiangling: {
name: "Xiangling",
- name_locale: 52,
+ name_locale: 244,
element: "Pyro",
weapon: "Polearm",
star: 4,
@@ -3486,9 +3486,9 @@ export default {
// avatar: Xiangling_avatar,
avatar: getName("Xiangling"),
splash: Xiangling_splash,
- skillName1: "普通攻击·白案功夫",
- skillName2: "锅巴出击",
- skillName3: "旋火轮",
+ skillName1: 112,
+ skillName2: 227,
+ skillName3: 70,
skillMap1: [
{ index: 0, text: 0 },
@@ -3538,7 +3538,7 @@ export default {
Xiao: {
name: "Xiao",
- name_locale: 53,
+ name_locale: 246,
element: "Anemo",
weapon: "Polearm",
star: 5,
@@ -3546,9 +3546,9 @@ export default {
// avatar: Xiao_avatar,
avatar: getName("Xiao"),
splash: Xiao_splash,
- skillName1: "普通攻击·卷积微尘",
- skillName2: "风轮两立",
- skillName3: "靖妖傩舞",
+ skillName1: 81,
+ skillName2: 243,
+ skillName3: 236,
skillMap1: [
{ index: 0, text: 23 },
@@ -3600,7 +3600,7 @@ export default {
Xingqiu: {
name: "Xingqiu",
- name_locale: 54,
+ name_locale: 210,
element: "Hydro",
weapon: "Sword",
star: 4,
@@ -3608,9 +3608,9 @@ export default {
// avatar: Xingqiu_avatar,
avatar: getName("Xingqiu"),
splash: Xingqiu_splash,
- skillName1: "普通攻击·古华剑法",
- skillName2: "古华剑·画雨笼山",
- skillName3: "古华剑·裁雨留虹",
+ skillName1: 82,
+ skillName2: 32,
+ skillName3: 33,
skillMap1: [
{ index: 0, text: 0 },
@@ -3662,7 +3662,7 @@ export default {
Xinyan: {
name: "Xinyan",
- name_locale: 55,
+ name_locale: 218,
element: "Pyro",
weapon: "Claymore",
star: 4,
@@ -3670,9 +3670,9 @@ export default {
// avatar: Xinyan_avatar,
avatar: getName("Xinyan"),
splash: Xinyan_splash,
- skillName1: "普通攻击·炎舞",
- skillName2: "热情拂扫",
- skillName3: "叛逆刮弦",
+ skillName1: 107,
+ skillName2: 157,
+ skillName3: 31,
skillMap1: [
{ index: 0, text: 0 },
@@ -3720,7 +3720,7 @@ export default {
YaeMiko: {
name: "YaeMiko",
- name_locale: 56,
+ name_locale: 14,
element: "Electro",
weapon: "Catalyst",
star: 5,
@@ -3728,9 +3728,9 @@ export default {
// avatar: YaeMiko_avatar,
avatar: getName("Yae"),
splash: YaeMiko_splash,
- skillName1: "普通攻击·狐灵食罪式",
- skillName2: "野干役咒·杀生樱",
- skillName3: "大密法·天狐显真",
+ skillName1: 110,
+ skillName2: 225,
+ skillName3: 48,
skillMap1: [
{ index: 0, text: 0 },
@@ -3776,7 +3776,7 @@ export default {
Yanfei: {
name: "Yanfei",
- name_locale: 57,
+ name_locale: 156,
element: "Pyro",
weapon: "Catalyst",
star: 4,
@@ -3784,9 +3784,9 @@ export default {
// avatar: Yanfei_avatar,
avatar: getName("Feiyan"),
splash: Yanfei_splash,
- skillName1: "普通攻击·火漆制印",
- skillName2: "丹书立约",
- skillName3: "凭此结契",
+ skillName1: 105,
+ skillName2: 3,
+ skillName3: 22,
skillMap1: [
{ index: 0, text: 0 },
@@ -3836,7 +3836,7 @@ export default {
Yaoyao: {
name: "Yaoyao",
- name_locale: 58,
+ name_locale: 172,
element: "Dendro",
weapon: "Polearm",
star: 4,
@@ -3844,9 +3844,9 @@ export default {
// avatar: Yaoyao_avatar,
avatar: getName("Yaoyao"),
splash: Yaoyao_splash,
- skillName1: "",
- skillName2: "",
- skillName3: "",
+ skillName1: 131,
+ skillName2: 7,
+ skillName3: 166,
skillMap1: [
{ index: 0, text: 0 },
@@ -3896,7 +3896,7 @@ export default {
Yelan: {
name: "Yelan",
- name_locale: 59,
+ name_locale: 46,
element: "Hydro",
weapon: "Bow",
star: 5,
@@ -3904,9 +3904,9 @@ export default {
// avatar: Yelan_avatar,
avatar: getName("Yelan"),
splash: Yelan_splash,
- skillName1: "普通攻击·潜形隐曜弓",
- skillName2: "萦络纵命索",
- skillName3: "渊图玲珑骰",
+ skillName1: 104,
+ skillName2: 206,
+ skillName3: 150,
skillMap1: [
{ index: 0, text: 0 },
@@ -3954,7 +3954,7 @@ export default {
Yoimiya: {
name: "Yoimiya",
- name_locale: 60,
+ name_locale: 57,
element: "Pyro",
weapon: "Bow",
star: 5,
@@ -3962,9 +3962,9 @@ export default {
// avatar: Yoimiya_avatar,
avatar: getName("Yoimiya"),
splash: Yoimiya_splash,
- skillName1: "普通攻击·烟火打扬",
- skillName2: "焰硝庭火舞",
- skillName3: "琉金云间草",
+ skillName1: 108,
+ skillName2: 159,
+ skillName3: 170,
skillMap1: [
{ index: 0, text: 196 },
@@ -4014,7 +4014,7 @@ export default {
Yunjin: {
name: "Yunjin",
- name_locale: 61,
+ name_locale: 8,
element: "Geo",
weapon: "Polearm",
star: 4,
@@ -4022,9 +4022,9 @@ export default {
// avatar: Yunjin_avatar,
avatar: getName("Yunjin"),
splash: Yunjin_splash,
- skillName1: "普通攻击·拂云出手",
- skillName2: "旋云开相",
- skillName3: "破嶂见旌仪",
+ skillName1: 95,
+ skillName2: 69,
+ skillName3: 178,
skillMap1: [
{ index: 0, text: 0 },
@@ -4074,7 +4074,7 @@ export default {
Zhongli: {
name: "Zhongli",
- name_locale: 62,
+ name_locale: 226,
element: "Geo",
weapon: "Polearm",
star: 5,
@@ -4082,9 +4082,9 @@ export default {
// avatar: Zhongli_avatar,
avatar: getName("Zhongli"),
splash: Zhongli_splash,
- skillName1: "普通攻击·岩雨",
- skillName2: "地心",
- skillName3: "天星",
+ skillName1: 86,
+ skillName2: 41,
+ skillName3: 50,
skillMap1: [
{ index: 0, text: 0 },
diff --git a/src/i18n/en.i18n b/src/i18n/en.i18n
new file mode 100644
index 00000000..b24f5740
--- /dev/null
+++ b/src/i18n/en.i18n
@@ -0,0 +1,10 @@
+[
+ {
+ "path": "./locales/en.js",
+ "prefix": ""
+ },
+ {
+ "path": "./generated/en.json",
+ "prefix": "a"
+ }
+]
diff --git a/src/i18n/generated/en.json b/src/i18n/generated/en.json
index 5bbcb123..87fc3da3 100644
--- a/src/i18n/generated/en.json
+++ b/src/i18n/generated/en.json
@@ -1,65 +1,254 @@
[
- "Aether(Anemo)",
- "Albedo",
- "Alhaitham",
- "Aloy",
- "Amber",
- "Arataki Itto",
- "Barbara",
- "Beidou",
- "Bennett",
- "Candace",
- "Chongyun",
- "Collei",
- "Cyno",
- "Diluc",
- "Diona",
- "Dori",
- "Eula",
- "Faruzan",
- "Fischl",
- "Ganyu",
+ "Qiqi",
+ "Dance of Haftkarsvar",
+ "Kazuha Slash",
+ "Signed Edict",
+ "Lisa",
+ "Kuki Shinobu",
+ "Kujou Sara",
+ "Raphanus Sky Cluster",
+ "Yunjin",
"Gorou",
- "Hu Tao",
- "Jean",
- "Kaedehara Kazuha",
+ "Adeptus Art: Herald of Frost",
+ "Adeptus Art: Preserver of Fortune",
+ "Spring Spirit Summoning",
+ "Eula",
+ "Yae Miko",
+ "Universality: An Elaboration on Form",
+ "Juuga: Forward Unto Victory",
+ "Frozen Wilds",
+ "Icetide Vortex",
+ "Glacial Waltz",
+ "Ningguang",
+ "Glacial Illumination",
+ "Done Deal",
"Kaeya",
- "Kamisato Ayaka",
- "Kamisato Ayato",
+ "Abiogenesis: Solar Isotoma",
+ "Claw and Thunder",
"Keqing",
+ "Heartstopper Strike",
+ "Beidou",
+ "Chihayaburu",
+ "Alcazarzaray’s Exactitude",
+ "Riff Revolution",
+ "Guhua Sword: Fatal Rainscreen",
+ "Guhua Sword: Raincutter",
"Klee",
- "Kujou Sara",
- "Kuki Shinobu",
- "Layla",
- "Lisa",
- "Mona",
- "Nahida",
+ "Yoohoo Art: Mujina Flurry",
+ "Yoohoo Art: Fuuin Dash",
+ "Ravaging Confession",
+ "Sacred Rite: Wagtail’s Tide",
+ "Sacred Rite: Wolf’s Swiftness",
+ "Sacred Rite: Heron’s Sanctum",
+ "Dominus Lapidis",
+ "Candace",
+ "Nights of Formal Focus",
+ "Aloy",
+ "Dori",
+ "Yelan",
+ "Nightrider",
+ "Great Secret Art: Tenko Kenshin",
+ "Sweeping Time",
+ "Planet Befall",
+ "Starshatter",
+ "Starward Sword",
+ "Secret Art: Musou Shinsetsu",
"Nilou",
- "Ningguang",
- "Noelle",
- "Qiqi",
- "Raiden Shogun",
- "Razor",
- "Rosaria",
- "Sangonomiya Kokomi",
+ "Amber",
+ "Spirit Soother",
+ "Yoimiya",
+ "Trail of the Qilin",
+ "Gyoei Narukami Kariyama Rite",
+ "Illusory Heart",
+ "All Schemes to Know",
+ "Thoma",
+ "The Wind’s Secret Ways",
+ "Breastplate",
+ "Floral Brush",
+ "Tidecaller",
+ "Tighnari",
+ "Stormbreaker",
+ "Opening Flourish",
+ "Pyronado",
"Sayu",
+ "Stellaris Phantasm",
+ "Stellar Restoration",
+ "Dream of the Star-Stream Shaker",
+ "Normal Attack: Invoker's Spear",
+ "Normal Attack: Fudou Style Martial Arts",
+ "Normal Attack: Yunlai Swordsmanship",
+ "Normal Attack: Ancient Sword Art",
+ "Normal Attack: Ceremonial Bladework",
+ "Normal Attack: Sparkling Scatter",
+ "Normal Attack: Whirlwind Thrust",
+ "Normal Attack: Guhua Style",
+ "Normal Attack: Ripple of Fate",
+ "Normal Attack: Strike of Fortune",
+ "Normal Attack: Marvelous Sword-Dance (Modified)",
+ "Normal Attack: Rain of Stone",
+ "Normal Attack: Foreign Ironwind",
+ "Normal Attack: Dance of Samser",
+ "Normal Attack: Secret Spear of Wangsheng",
+ "Normal Attack: Oceanborne",
+ "Normal Attack: Shuumatsuban Ninja Blade",
+ "Normal Attack: Shinobu's Shadowsword",
+ "Normal Attack: Rapid Fire",
+ "Normal Attack: Garyuu Bladework",
+ "Normal Attack: Cloud-Grazing Strike",
+ "Normal Attack: Lightning Touch",
+ "Normal Attack: Spear of the Church",
+ "Normal Attack: Cutting Torrent",
+ "Normal Attack: Whisper of Water",
+ "Normal Attack: Liutian Archery",
+ "Normal Attack: Gleaming Spear – Guardian Stance",
+ "Normal Attack: Tempered Sword",
+ "Normal Attack: Abductive Reasoning",
+ "Normal Attack: Stealthy Bowshot",
+ "Normal Attack: Seal of Approval",
+ "Normal Attack: Demonbane",
+ "Normal Attack: Dance on Fire",
+ "Normal Attack: Firework Flare-Up",
+ "Normal Attack: Sword of the Radiant Path",
+ "Normal Attack: Spiritfox Sin-Eater",
+ "Normal Attack: Kätzlein Style",
+ "Normal Attack: Dough-Fu",
+ "Normal Attack: Kaboom!",
+ "Normal Attack: Supplicant’s Bowmanship",
+ "Normal Attack: Divine Marksmanship",
+ "Normal Attack: Sharpshooter",
+ "Normal Attack: Kamisato Art - Kabuki",
+ "Normal Attack: Kamisato Art - Marobashi",
+ "Normal Attack: Wind Spirit Creation",
+ "Normal Attack: Bolts of Downfall",
+ "Normal Attack: Khanda Barrier-Buster",
+ "Normal Attack: Yuuban Meigen",
+ "Normal Attack: Akara",
+ "Normal Attack: Favonius Bladework",
+ "Normal Attack: Favonius Bladework - Maid",
+ "Normal Attack: Favonius Bladework - Edel",
+ "Normal Attack: Favonius Bladework - Weiss",
+ "Normal Attack: Swiftshatter Spear",
+ "Normal Attack: Turnaround Shooter",
+ "Normal Attack: Steel Fang",
+ "Normal Attack: Toss ‘N’ Turn Spear",
+ "Normal Attack: Ripping Fang Fletching",
+ "Normal Attack: Fight Club Legend",
+ "Normal Attack: Tengu Bowmanship",
+ "Normal Attack: The Shape of Water",
+ "Normal Attack: Origin",
+ "Normal Attack: Dawnstar Piercer",
+ "Prophecies of Dawn",
+ "Royal Descent: Behold, Itto the Evil!",
+ "Signature Mix",
+ "Havoc: Obliteration",
+ "Kaedehara Kazuha",
+ "Collei",
+ "Particular Field: Fetters of Phenomena",
+ "Mirror Reflection of Doom",
+ "Wanderer",
+ "Dance of Abzendegi: Distant Dreams, Listening Spring",
+ "Nereid's Ascension",
+ "Kurage's Oath",
+ "Depth-Clarion Dice",
+ "Venti",
+ "Let the Show Begin♪",
+ "Spirit Blade: Cloud-Parting Star",
+ "Spirit Blade: Chonghua's Layered Frost",
+ "Blazing Blessing",
+ "Yanfei",
+ "Sweeping Fervor",
+ "Passion Overload",
+ "Niwabi Fire-Dance",
+ "Subjugation: Koukou Sendou",
+ "Explosive Puppet",
+ "Inuzaka All-Round Defense",
+ "Kyougen: Shikiraku Gobandate",
+ "Icy Paws",
+ "Trump-Card Kitty",
+ "Moonjade Descent",
+ "Sangonomiya Kokomi",
+ "Faruzan",
+ "Bennett",
+ "Ryuukin Saxifrage",
+ "Jean",
+ "Yaoyao",
+ "Jade Screen",
+ "Ganyu",
"Shenhe",
- "Shikanoin Heizou",
+ "Crimson Ooyoroi",
"Sucrose",
+ "Cliffbreaker's Banner",
+ "Transcendence: Baleful Omen",
+ "Divine Maiden's Deliverance",
+ "Kamisato Art: Hyouka",
+ "Kamisato Art: Suiyuu",
+ "Kamisato Art: Kyouka",
+ "Kamisato Art: Soumetsu",
+ "Kamisato Ayato",
+ "Kamisato Ayaka",
+ "Forbidden Creation - Isomer 75 / Type II",
+ "Secret Rite: Chasmic Soulfarer",
+ "Aether(Anemo)",
+ "Fiery Rain",
+ "Nahida",
+ "Rites of Termination",
+ "Rosaria",
+ "Fantastic Voyage",
+ "Hanega: Fushi Kakka",
+ "Windmuster Kick",
+ "Hu Tao",
+ "Midnight Phantasmagoria",
+ "Alhaitham",
+ "Barbara",
+ "Violet Arc",
+ "Arataki Itto",
+ "Mona",
+ "Layla",
+ "Fischl",
+ "Lingering Lifeline",
+ "Dandelion Breeze",
+ "Lightning Rose",
+ "Guide to Afterlife",
+ "Xingqiu",
+ "Vijnana-Phala Mine",
+ "Rite of Progeniture: Tectonic Tide",
+ "Noelle",
+ "Cyno",
+ "Sanctifying Ring",
+ "Jumpy Dumpty",
+ "Sparks 'n' Splash",
+ "Xinyan",
"Tartaglia",
- "Thoma",
- "Tighnari",
- "Venti",
- "Wanderer",
+ "Diluc",
+ "Diona",
+ "Searing Onslaught",
+ "Fashioner’s Tanglevine Shaft",
+ "Chongyun",
+ "Yakan Evocation: Sesshou Sakura",
+ "Zhongli",
+ "Guoba Attack",
+ "Spirit-Warding Lamp: Troubleshooter Cannon",
+ "Shining Miracle♪",
+ "Albedo",
+ "Celestial Shower",
+ "Razor",
+ "Lightning Fang",
+ "Raiden Shogun",
+ "Frostgnaw",
+ "Bane of All Evil",
+ "Wind Realm of Nasamjnin",
+ "Gale Blade",
+ "Gust Surge",
+ "Palm Vortex",
+ "Astable Anemohypostasis Creation - 6308",
+ "Wind's Grand Ode",
+ "Lemniscatic Wind Cycling",
"Xiangling",
+ "Skyward Sonnet",
"Xiao",
- "Xingqiu",
- "Xinyan",
- "Yae Miko",
- "Yanfei",
- "Yaoyao",
- "Yelan",
- "Yoimiya",
- "Yunjin",
- "Zhongli"
+ "Masatsu Zetsugi: Akaushi Burst!",
+ "Foul Legacy: Raging Tide",
+ "Tengu Stormcall",
+ "Shikanoin Heizou",
+ "Dawn"
]
\ No newline at end of file
diff --git a/src/i18n/generated/zh-cn.json b/src/i18n/generated/zh-cn.json
index c828ede5..3cd21702 100644
--- a/src/i18n/generated/zh-cn.json
+++ b/src/i18n/generated/zh-cn.json
@@ -1,65 +1,254 @@
[
- "空-风",
- "阿贝多",
- "艾尔海森",
- "埃洛伊",
- "安柏",
- "荒泷一斗",
- "芭芭拉",
- "北斗",
- "班尼特",
- "坎蒂丝",
- "重云",
- "柯莱",
- "赛诺",
- "迪卢克",
- "迪奥娜",
- "多莉",
- "优菈",
- "珐露珊",
- "菲谢尔",
- "甘雨",
+ "七七",
+ "七域舞步",
+ "万叶之一刀",
+ "丹书立约",
+ "丽莎",
+ "久岐忍",
+ "九条裟罗",
+ "云台团团降芦菔",
+ "云堇",
"五郎",
- "胡桃",
- "琴",
- "枫原万叶",
+ "仙法·寒病鬼差",
+ "仙法·救苦度厄",
+ "仰灵威召将役咒",
+ "优菈",
+ "八重神子",
+ "共相·理式摹写",
+ "兽牙逐突形胜战法",
+ "冰尘雪野",
+ "冰潮的涡旋",
+ "凛冽轮舞",
+ "凝光",
+ "凝浪之光剑",
+ "凭此结契",
"凯亚",
- "神里绫华",
- "神里绫人",
+ "创生法·拟造阳华",
+ "利爪与苍雷",
"刻晴",
+ "勠心拳",
+ "北斗",
+ "千早振",
+ "卡萨扎莱宫的无微不至",
+ "叛逆刮弦",
+ "古华剑·画雨笼山",
+ "古华剑·裁雨留虹",
"可莉",
- "九条裟罗",
- "久岐忍",
- "莱依拉",
- "丽莎",
- "莫娜",
- "纳西妲",
+ "呜呼流·影貉缭乱",
+ "呜呼流·风隐急进",
+ "噬罪的告解",
+ "圣仪·灰鸰衒潮",
+ "圣仪·煟煌随狼行",
+ "圣仪·苍鹭庇卫",
+ "地心",
+ "坎蒂丝",
+ "垂裳端凝之夜",
+ "埃洛伊",
+ "多莉",
+ "夜兰",
+ "夜巡影翼",
+ "大密法·天狐显真",
+ "大扫除",
+ "天星",
+ "天权崩玉",
+ "天街巡游",
+ "奥义•梦想真说",
"妮露",
- "凝光",
- "诺艾尔",
- "七七",
- "雷电将军",
- "雷泽",
- "罗莎莉亚",
- "珊瑚宫心海",
+ "安柏",
+ "安神秘法",
+ "宵宫",
+ "山泽麟迹",
+ "御咏鸣神刈山祭",
+ "心景幻成",
+ "所闻遍计",
+ "托马",
+ "抟风秘道",
+ "护心铠",
+ "拂花偈叶",
+ "捉浪",
+ "提纳里",
+ "斫雷",
+ "旋云开相",
+ "旋火轮",
"早柚",
+ "星命定轨",
+ "星斗归位",
+ "星流摇床之梦",
+ "普通攻击·七圣枪术",
+ "普通攻击·不动流格斗术",
+ "普通攻击·云来剑法",
+ "普通攻击·云来古剑法",
+ "普通攻击·仪典剑术",
+ "普通攻击·千金掷",
+ "普通攻击·卷积微尘",
+ "普通攻击·古华剑法",
+ "普通攻击·因果点破",
+ "普通攻击·好运剑",
+ "普通攻击·妙显剑舞·改",
+ "普通攻击·岩雨",
+ "普通攻击·异邦铁风",
+ "普通攻击·弦月舞步",
+ "普通攻击·往生秘传枪法",
+ "普通攻击·征涛",
+ "普通攻击·忍刀·终末番",
+ "普通攻击·忍流飞刃斩",
+ "普通攻击·快速射击",
+ "普通攻击·我流剑术",
+ "普通攻击·拂云出手",
+ "普通攻击·指尖雷暴",
+ "普通攻击·教会枪术",
+ "普通攻击·断雨",
+ "普通攻击·水之浅唱",
+ "普通攻击·流天射术",
+ "普通攻击·流耀枪术·守势",
+ "普通攻击·淬炼之剑",
+ "普通攻击·溯因反绎法",
+ "普通攻击·潜形隐曜弓",
+ "普通攻击·火漆制印",
+ "普通攻击·灭邪四式",
+ "普通攻击·炎舞",
+ "普通攻击·烟火打扬",
+ "普通攻击·熠辉轨度剑",
+ "普通攻击·狐灵食罪式",
+ "普通攻击·猎人射术",
+ "普通攻击·白案功夫",
+ "普通攻击·砰砰",
+ "普通攻击·祈颂射艺",
+ "普通攻击·神代射术",
+ "普通攻击·神射手",
+ "普通攻击·神里流·倾",
+ "普通攻击·神里流·转",
+ "普通攻击·简式风灵作成",
+ "普通攻击·罪灭之矢",
+ "普通攻击·藏蕴破障",
+ "普通攻击·行幡鸣弦",
+ "普通攻击·行相",
+ "普通攻击·西风剑术",
+ "普通攻击·西风剑术·女仆",
+ "普通攻击·西风剑术·宗室",
+ "普通攻击·西风剑术·白",
+ "普通攻击·迅破枪势",
+ "普通攻击·迴身箭术",
+ "普通攻击·钢脊",
+ "普通攻击·颠扑连环枪",
+ "普通攻击•呲牙裂扇箭",
+ "普通攻击•喧哗屋传说",
+ "普通攻击•天狗传弓术",
+ "普通攻击•水有常形",
+ "普通攻击•源流",
+ "普通攻击•踏辰摄斗",
+ "曙光预言",
+ "最恶鬼王•一斗轰临!!",
+ "最烈特调",
+ "极恶技·尽灭闪",
+ "枫原万叶",
+ "柯莱",
+ "殊境·显象缚结",
+ "水中幻愿",
+ "流浪者",
+ "浮莲舞步·远梦聆泉",
+ "海人化羽",
+ "海月之誓",
+ "渊图玲珑骰",
+ "温迪",
+ "演唱,开始♪",
+ "灵刃·云开星落",
+ "灵刃·重华叠霜",
+ "烈烧佑命之侍护",
+ "烟绯",
+ "热情拂扫",
+ "热情过载",
+ "焰硝庭火舞",
+ "煌煌千道镇式",
+ "爆弹玩偶",
+ "犬坂吠吠方圆阵",
+ "狂言·式乐五番",
+ "猫爪冻冻",
+ "猫猫秘宝",
+ "玉颗珊珊月中落",
+ "珊瑚宫心海",
+ "珐露珊",
+ "班尼特",
+ "琉金云间草",
+ "琴",
+ "瑶瑶",
+ "璇玑屏",
+ "甘雨",
"申鹤",
- "鹿野院平藏",
+ "真红炽火之大铠",
"砂糖",
+ "破嶂见旌仪",
+ "神变•恶曜开眼",
+ "神女遣灵真诀",
+ "神里流·冰华",
+ "神里流·水囿",
+ "神里流·镜花",
+ "神里流·霜灭",
+ "神里绫人",
+ "神里绫华",
+ "禁·风灵作成·柒伍同构贰型",
+ "秘仪·律渊渡魂",
+ "空-风",
+ "箭雨",
+ "纳西妲",
+ "终命的圣礼",
+ "罗莎莉亚",
+ "美妙旅程",
+ "羽画·风姿华歌",
+ "聚风蹴",
+ "胡桃",
+ "至夜幻现",
+ "艾尔海森",
+ "芭芭拉",
+ "苍雷",
+ "荒泷一斗",
+ "莫娜",
+ "莱依拉",
+ "菲谢尔",
+ "萦络纵命索",
+ "蒲公英之风",
+ "蔷薇的雷光",
+ "蝶引来生",
+ "行秋",
+ "识果种雷",
+ "诞生式·大地之潮",
+ "诺艾尔",
+ "赛诺",
+ "越祓雷草之轮",
+ "蹦蹦炸弹",
+ "轰轰火花",
+ "辛焱",
"达达利亚",
- "托马",
- "提纳里",
- "温迪",
- "流浪者",
+ "迪卢克",
+ "迪奥娜",
+ "逆焰之刃",
+ "造生缠藤箭",
+ "重云",
+ "野干役咒·杀生樱",
+ "钟离",
+ "锅巴出击",
+ "镇灵之灯·烦恼解决炮",
+ "闪耀奇迹♪",
+ "阿贝多",
+ "降众天华",
+ "雷泽",
+ "雷牙",
+ "雷电将军",
+ "霜袭",
+ "靖妖傩舞",
+ "非想风天",
+ "风压剑",
+ "风息激荡",
+ "风涡剑",
+ "风灵作成·陆叁零捌",
+ "风神之诗",
+ "风轮两立",
"香菱",
+ "高天之歌",
"魈",
- "行秋",
- "辛焱",
- "八重神子",
- "烟绯",
- "瑶瑶",
- "夜兰",
- "宵宫",
- "云堇",
- "钟离"
+ "魔杀绝技•赤牛发破!",
+ "魔王武装·狂澜",
+ "鸦羽天狗霆雷召咒",
+ "鹿野院平藏",
+ "黎明"
]
\ No newline at end of file
diff --git a/src/i18n/i18n.ts b/src/i18n/i18n.ts
index d73d2754..32616418 100644
--- a/src/i18n/i18n.ts
+++ b/src/i18n/i18n.ts
@@ -1,6 +1,8 @@
-import inlineLocale from "./locales/zh-cn"
+// @ts-ignore
+import inlineLocale from "./zh-cn.i18n"
import {pathAccess} from "@/utils/common"
+console.log(inlineLocale)
export function createI18n() {
const locale = ref("zh-cn")
@@ -34,7 +36,7 @@ export function createI18n() {
if (!messages[name]) {
const message = await import(
/* webpackChunkName: "locale-[request]" */
- `./locales/${name}`
+ `./${name}.i18n`
)
messages[name] = message.default
}
diff --git a/src/i18n/zh-cn.i18n b/src/i18n/zh-cn.i18n
new file mode 100644
index 00000000..ffeba78f
--- /dev/null
+++ b/src/i18n/zh-cn.i18n
@@ -0,0 +1,10 @@
+[
+ {
+ "path": "./locales/zh-cn.js",
+ "prefix": ""
+ },
+ {
+ "path": "./generated/zh-cn.json",
+ "prefix": "a"
+ }
+]
diff --git a/vue.config.js b/vue.config.js
index aa6ed9dd..0add109e 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -149,6 +149,12 @@ module.exports = {
},
},
chainWebpack: config => {
+ // use custom i18n loader
+ config.module.rule("i18n-js")
+ .test(/\.i18n$/)
+ .use("i18n-loader")
+ .loader("./loaders/i18n_loader.js")
+
// merge custom env
config.plugin("define").tap(definitions => {
const definePluginConverted = convertKVToDefinePlugin(customEnv)