├── .eslintrc.cjs
├── .gitignore
├── .prettierrc.json
├── LICENSE
├── README.md
├── _config.yaml
├── index.html
├── package.json
├── public
├── aris.jpeg
├── favicon144.png
├── favicon512.png
├── img
│ ├── ap.png
│ ├── boxy.png
│ ├── convertor.png
│ ├── fish.png
│ ├── gold.png
│ ├── max.png
│ ├── min.png
│ ├── pickduck.png
│ ├── pyroxene.png
│ └── waddle2.png
├── l2d
│ ├── aris
│ │ ├── Aris_home.atlas
│ │ ├── Aris_home.png
│ │ ├── Aris_home.skel
│ │ ├── Aris_home2.png
│ │ └── Someday_-sometime.mp3
│ ├── arrow.png
│ └── hina_swimsuit
│ │ ├── CH0063_home.atlas
│ │ ├── CH0063_home.skel
│ │ ├── CH0063_home_CN.png
│ │ ├── CH0063_home_CN_2.png
│ │ └── Theme_21.mp3
├── shitim
│ ├── Event_Main_Stage_Bg.png
│ └── Tran_Shitim_Icon.png
├── task.png
└── transfrom.webm
├── shots
└── main.png
├── src
├── App.vue
├── assets
│ ├── font
│ │ ├── BlueakaBeta2GBK-Bold.ttf
│ │ └── BlueakaBeta2GBK-DemiBold.ttf
│ └── index.css
├── components
│ ├── Background.vue
│ ├── Banner.vue
│ ├── Contact.vue
│ ├── Cursor.vue
│ ├── Footer.vue
│ ├── Level.vue
│ ├── Loading.vue
│ ├── Task.vue
│ └── Toolbox.vue
└── main.js
└── vite.config.js
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | /* eslint-env node */
2 | require('@rushstack/eslint-patch/modern-module-resolution')
3 |
4 | module.exports = {
5 | root: true,
6 | 'extends': [
7 | 'plugin:vue/vue3-essential',
8 | 'eslint:recommended',
9 | '@vue/eslint-config-prettier/skip-formatting'
10 | ],
11 | rules: {
12 | "vue/multi-word-component-names":"off",
13 | },
14 | parserOptions: {
15 | ecmaVersion: 'latest'
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 | .pnpm-debug.log*
9 |
10 | # Diagnostic reports (https://nodejs.org/api/report.html)
11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12 |
13 | # Runtime data
14 | pids
15 | *.pid
16 | *.seed
17 | *.pid.lock
18 |
19 | # Directory for instrumented libs generated by jscoverage/JSCover
20 | lib-cov
21 |
22 | # Coverage directory used by tools like istanbul
23 | coverage
24 | *.lcov
25 |
26 | # nyc test coverage
27 | .nyc_output
28 |
29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30 | .grunt
31 |
32 | # Bower dependency directory (https://bower.io/)
33 | bower_components
34 |
35 | # node-waf configuration
36 | .lock-wscript
37 |
38 | # Compiled binary addons (https://nodejs.org/api/addons.html)
39 | build/Release
40 |
41 | # Dependency directories
42 | node_modules/
43 | jspm_packages/
44 |
45 | # Snowpack dependency directory (https://snowpack.dev/)
46 | web_modules/
47 |
48 | # TypeScript cache
49 | *.tsbuildinfo
50 |
51 | # Optional npm cache directory
52 | .npm
53 |
54 | # Optional eslint cache
55 | .eslintcache
56 |
57 | # Optional stylelint cache
58 | .stylelintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # dotenv environment variable files
76 | .env
77 | .env.development.local
78 | .env.test.local
79 | .env.production.local
80 | .env.local
81 |
82 | # parcel-bundler cache (https://parceljs.org/)
83 | .cache
84 | .parcel-cache
85 |
86 | # Next.js build output
87 | .next
88 | out
89 |
90 | # Nuxt.js build / generate output
91 | .nuxt
92 | dist
93 |
94 | # Gatsby files
95 | .cache/
96 | # Comment in the public line in if your project uses Gatsby and not Next.js
97 | # https://nextjs.org/blog/next-9-1#public-directory-support
98 | # public
99 |
100 | # vuepress build output
101 | .vuepress/dist
102 |
103 | # vuepress v2.x temp and cache directory
104 | .temp
105 |
106 | # Docusaurus cache and generated files
107 | .docusaurus
108 |
109 | # Serverless directories
110 | .serverless/
111 |
112 | # FuseBox cache
113 | .fusebox/
114 |
115 | # DynamoDB Local files
116 | .dynamodb/
117 |
118 | # TernJS port file
119 | .tern-port
120 |
121 | # Stores VSCode versions used for testing VSCode extensions
122 | .vscode-test
123 |
124 | # yarn v2
125 | .yarn/cache
126 | .yarn/unplugged
127 | .yarn/build-state.yml
128 | .yarn/install-state.gz
129 | .pnp.*
130 |
131 | .idea
132 |
133 | yarn.lock
134 |
135 | .DS_Store
136 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/prettierrc",
3 | "semi": false,
4 | "tabWidth": 2,
5 | "singleQuote": true,
6 | "printWidth": 100,
7 | "trailingComma": "none"
8 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 小鱼yuzifu
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
小鱼档案
2 |
3 |
4 |
5 |
6 |
7 |
8 | 有关小鱼的《蔚蓝档案》风格的个人主页
9 |
10 | 
11 |
12 | ## 预览链接
13 |
14 | - [小鱼档案](https://yzf.moe)
15 | - [小鱼档案 - 备用](https://yuzifu.top/)
16 |
17 | ## 目前复刻程度
18 |
19 | - [x] 加载界面
20 | - [x] 主界面复刻
21 | - [x] 回忆大厅
22 | - [x] 弹窗复刻
23 | - [x] 什亭之箱转场
24 | - [x] 点击特效和动效
25 | - [x] 多个学生回忆大厅l2d切换
26 | - [x] 学生回忆大厅全局观赏
27 | - [ ] 学生互动
28 |
29 | ## 使用到的项目
30 |
31 | - [Vue](https://cn.vuejs.org/)
32 | - [Vite](https://vitejs.cn/vite3-cn/)
33 | - [Arco Design](https://arco.design/)
34 | - [PIXIjs](https://github.com/pixijs/pixijs)
35 | - [spine-pixi-v7](https://www.npmjs.com/package/@esotericsoftware/spine-pixi-v7)
36 | - [Iconfont](https://www.iconfont.cn/)
37 | - [cn-font-split](https://github.com/KonghaYao/cn-font-split)
38 | - [APlayer](https://aplayer.js.org/#/)
39 |
40 | ## 部署方式
41 |
42 | ### 使用第三方部署平台
43 |
44 | #### 1. Vercel
45 | [](https://vercel.com/import/project?template=https://github.com/sf-yuzifu/homepage)
46 |
47 | #### 2. Netlify
48 | 1. `Fork`[本项目](https://github.com/sf-yuzifu/homepage)
49 | 2. [登录 Netlify 控制台](https://app.netlify.com ),选择`Add new site`-`Import an exist project`添加网站
50 | 3. 接着选择 GitHub 认证来读取我们的 GitHub 项目列表。在列表中搜索我们刚才`Fork`生成的仓库名,点击该项目开始基于该仓库创建我们的 Netlify 网站
51 |
52 | ### 本地构建网页文件
53 |
54 | > **推荐环境:**
55 | >
56 | > node > 18.0.0
57 | > npm > 8.15.0
58 |
59 | 1. 安装yarn
60 |
61 | ```bash
62 | # 安装 yarn
63 | npm install -g yarn
64 | ```
65 |
66 | 2. 克隆此项目到本地
67 | 3. 在项目根目录下运行
68 |
69 | ```bash
70 | # 安装依赖
71 | yarn install
72 |
73 | # 预览(开发环境)
74 | yarn dev
75 |
76 | # 构建
77 | yarn build
78 |
79 | # 预览(生产环境预览)
80 | yarn preview
81 | ```
82 |
83 | > 构建完成后,静态资源会在 **`dist` 目录** 中生成,你可以将 **`dist` 目录中的文件**上传至服务器
84 |
85 | > 其中关于宝塔如何部署的([https://cloud.tencent.com/developer/article/1977167](https://cloud.tencent.com/developer/article/1977167))
86 |
87 | ## 个性化
88 |
89 | > 新版本配置文件采用yaml格式以方便阅读,想要快速迁移可以通过[此网站](https://www.json.cn/json2yaml/)快速将json格式转为yaml格式
90 | >
91 | > 打开根目录下的 `_config.yaml`,在其中你会看到如下内容
92 |
93 | ```yaml
94 | # 网站基本配置
95 | title: 小鱼档案 # 网站标题
96 | description: 有关小鱼的《蔚蓝档案》风格的个人主页 # 网站简介
97 | favicon: /favicon144.png # 网站图标链接
98 | author: 小鱼yuzifu # Sensei,你的名字
99 | keywords: '蔚蓝档案,小鱼yuzifu,个人主页' # 网站关键词描述
100 | ICP: '' # ICP备案号
101 | # PWA配置(https:#developer.mozilla.org/zh-CN/docs/Web/Manifest)
102 | manifest:
103 | name: 小鱼档案 # 应用全称
104 | short_name: 小鱼档案 # 应用简称
105 | description: 有关小鱼的《蔚蓝档案》风格的个人主页 # 简介
106 | theme_color: '#128AFA' # 主题色
107 | start_url: /
108 | id: Homepage
109 | # 图标
110 | icons:
111 | - src: /favicon512.png # 网站图标链接
112 | sizes: 512x512 # 尺寸
113 | purpose: any maskable
114 | # 个人信息
115 | level: 85 # 等级
116 | exp: 8382 # 经验值
117 | nextExp: 8381 # 到达下一等级经验值(比exp小则显示满级)
118 | # Iconfont图标导入
119 | iconfont: 'https://at.alicdn.com/t/c/font_4336463_0i6ly0yvyzb.js'
120 | # 底部项目信息(推荐5个,最多7个)
121 | dock:
122 | - name: 一起吃小鱼 # 项目名称
123 | href: 'https://gitee.com/sf-yuzifu/eat-fish-together' # 项目地址
124 | imgSrc: /img/fish.png # 项目图标
125 | # 左边联系方式(推荐4个)
126 | contact:
127 | - name: QQ # 联系方式
128 | href: 'https://wpa.qq.com/msgrd?v=3&uin=1906929246&site=qq&menu=yes&jumpflag=1' # 联系地址
129 | iconfont: icon-qq # iconfont图标id(只有icon-qq/github/bilibili/gitee)
130 | # 任务按钮启动
131 | task:
132 | name: 个人博客 # 任务名称
133 | href: 'https://blog.yzf.moe/' # 跳转地址
134 | banner:
135 | musicID: # 音乐ID(暂时只支持网易云音乐)
136 | - 2059151619
137 | ```
138 | > 修改其中相关内容,之后重新按上述方式部署即可完成修改
139 |
140 | ## 有关学生回忆大厅L2D文件获取
141 |
142 | 1. 自己去游戏解包中获取([教程1](https://www.bilibili.com/read/cv15934670/)、[教程2](https://www.bilibili.com/read/cv18073492/))
143 | 2. 去[基沃托斯古书馆](https://kivo.fun/)中的`角色图鉴`—`切换到鉴赏模式`—`回忆大厅`当中自行抓包获取
144 |
--------------------------------------------------------------------------------
/_config.yaml:
--------------------------------------------------------------------------------
1 | # 网站基本配置
2 | title: 小鱼档案 # 网站标题
3 | description: 有关小鱼的《蔚蓝档案》风格的个人主页 # 网站简介
4 | favicon: /favicon144.png # 网站图标链接
5 | author: 小鱼yuzifu # Sensei,你的名字
6 | keywords: '蔚蓝档案,小鱼yuzifu,个人主页' # 网站关键词描述
7 | ICP: '' # ICP备案号
8 | # PWA配置(https:#developer.mozilla.org/zh-CN/docs/Web/Manifest)
9 | manifest:
10 | name: 小鱼档案 # 应用全称
11 | short_name: 小鱼档案 # 应用简称
12 | description: 有关小鱼的《蔚蓝档案》风格的个人主页 # 简介
13 | theme_color: '#128AFA' # 主题色
14 | start_url: /
15 | id: Homepage
16 | # 图标
17 | icons:
18 | - src: /favicon512.png # 网站图标链接
19 | sizes: 512x512 # 尺寸
20 | purpose: any maskable
21 | - src: /favicon144.png
22 | sizes: 144x144
23 | # 个人信息
24 | level: 85 # 等级
25 | exp: 8382 # 经验值
26 | nextExp: 8381 # 到达下一等级经验值(比exp小则显示满级)
27 | # Iconfont图标导入
28 | iconfont: 'https://at.alicdn.com/t/c/font_4336463_0i6ly0yvyzb.js'
29 | # 底部项目信息(推荐5个,最多7个)
30 | dock:
31 | - name: 一起吃小鱼 # 项目名称
32 | href: 'https://gitee.com/sf-yuzifu/eat-fish-together' # 项目地址
33 | imgSrc: /img/fish.png # 项目图标
34 | - name: 编程猫格式工厂
35 | href: 'https://gitee.com/sf-yuzifu/bcm_convertor'
36 | imgSrc: /img/convertor.png
37 | - name: Waddle编辑器
38 | href: 'https://waddle.cocotais.cn/'
39 | imgSrc: /img/waddle2.png
40 | - name: PICKDUCK
41 | href: 'https://shequ.pgaot.com/'
42 | imgSrc: /img/pickduck.png
43 | - name: Boxy编辑器
44 | href: 'https://boxy.cocotais.cn/'
45 | imgSrc: /img/boxy.png
46 | # 左边联系方式(推荐4个)
47 | contact:
48 | - name: QQ # 联系方式
49 | href: 'https://wpa.qq.com/msgrd?v=3&uin=1906929246&site=qq&menu=yes&jumpflag=1' # 联系地址
50 | iconfont: icon-qq # iconfont图标id(只有icon-qq/github/bilibili/gitee)
51 | - name: Gitee
52 | href: 'https://gitee.com/sf-yuzifu'
53 | iconfont: icon-gitee
54 | - name: Github
55 | href: 'https://github.com/sf-yuzifu'
56 | iconfont: icon-github
57 | - name: BiliBili
58 | href: 'https://space.bilibili.com/447666445'
59 | iconfont: icon-bilibili
60 | # 任务按钮启动
61 | task:
62 | name: 个人博客 # 任务名称
63 | href: 'https://blog.yzf.moe/' # 跳转地址
64 | banner:
65 | musicID: # 音乐ID(暂时只支持网易云音乐)
66 | - 2059151619
67 | - 2098476758
68 | - 2630220461
69 | - 2630217054
70 | - 2630217057
71 | - 2099308172
72 | - 2098477269
73 | - 2098478097
74 | - 2098478355
75 | - 2098473565
76 | - 2098473572
77 | - 2008994667
78 | - 1840401436
79 | - 2029212574
80 | - 2612747239
81 | - 2140425047
82 | - 1832392174
83 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | <%- title %>
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "homepage",
3 | "version": "1.0.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "vite --host",
7 | "build": "vite build",
8 | "preview": "vite preview",
9 | "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
10 | "format": "prettier --write src/"
11 | },
12 | "resolutions": {
13 | "bin-wrapper": "npm:bin-wrapper-china"
14 | },
15 | "dependencies": {
16 | "@esotericsoftware/spine-pixi-v7": "^4.2.76",
17 | "@rollup/plugin-yaml": "^4.1.2",
18 | "aplayer": "^1.10.1",
19 | "autoprefixer": "^10.4.20",
20 | "axios": "^1.8.2",
21 | "js-yaml": "^4.1.0",
22 | "nprogress": "^0.2.0",
23 | "pixi.js": "^7.4.3",
24 | "postcss": "^8.4.41",
25 | "postcss-import": "^16.1.0",
26 | "postcss-loader": "^8.1.1",
27 | "postcss-px-to-viewport": "^1.1.1",
28 | "rollup-plugin-copy": "^3.5.0",
29 | "vite-plugin-font": "^2.1.5",
30 | "vite-plugin-pwa": "^0.16.5",
31 | "vue": "^3.3.4",
32 | "vue-i18n": "^11.1.2",
33 | "vue-router": "^4.2.4"
34 | },
35 | "devDependencies": {
36 | "@arco-design/web-vue": "^2.51.2",
37 | "@rushstack/eslint-patch": "^1.3.3",
38 | "@vitejs/plugin-vue": "^4.3.4",
39 | "@vitejs/plugin-vue-jsx": "^3.0.2",
40 | "@vue/eslint-config-prettier": "^8.0.0",
41 | "eslint": "^8.49.0",
42 | "eslint-plugin-vue": "^9.17.0",
43 | "prettier": "^3.0.3",
44 | "vite": "^5.4.6",
45 | "vite-plugin-compression": "^0.5.1",
46 | "vite-plugin-html": "^3.2.0",
47 | "vite-plugin-imagemin": "^0.6.1"
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/public/aris.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/aris.jpeg
--------------------------------------------------------------------------------
/public/favicon144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/favicon144.png
--------------------------------------------------------------------------------
/public/favicon512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/favicon512.png
--------------------------------------------------------------------------------
/public/img/ap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/img/ap.png
--------------------------------------------------------------------------------
/public/img/boxy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/img/boxy.png
--------------------------------------------------------------------------------
/public/img/convertor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/img/convertor.png
--------------------------------------------------------------------------------
/public/img/fish.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/img/fish.png
--------------------------------------------------------------------------------
/public/img/gold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/img/gold.png
--------------------------------------------------------------------------------
/public/img/max.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/img/max.png
--------------------------------------------------------------------------------
/public/img/min.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/img/min.png
--------------------------------------------------------------------------------
/public/img/pickduck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/img/pickduck.png
--------------------------------------------------------------------------------
/public/img/pyroxene.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/img/pyroxene.png
--------------------------------------------------------------------------------
/public/img/waddle2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/img/waddle2.png
--------------------------------------------------------------------------------
/public/l2d/aris/Aris_home.atlas:
--------------------------------------------------------------------------------
1 |
2 | Aris_home.png
3 | size: 2048,2048
4 | format: RGBA8888
5 | filter: Linear,Linear
6 | repeat: none
7 | B_ F_Hair_01
8 | rotate: 180
9 | xy: 1570, 1118
10 | size: 475, 451
11 | orig: 475, 451
12 | offset: 0, 0
13 | index: -1
14 | B_ R_Hair_01
15 | rotate: false
16 | xy: 1651, 1805
17 | size: 90, 242
18 | orig: 90, 242
19 | offset: 0, 0
20 | index: -1
21 | B_ R_Hair_02
22 | rotate: true
23 | xy: 1468, 198
24 | size: 106, 227
25 | orig: 106, 227
26 | offset: 0, 0
27 | index: -1
28 | Cc_Hair_04
29 | rotate: false
30 | xy: 1530, 529
31 | size: 92, 66
32 | orig: 93, 66
33 | offset: 0, 0
34 | index: -1
35 | Cc_Hair_05
36 | rotate: 270
37 | xy: 349, 244
38 | size: 206, 654
39 | orig: 206, 654
40 | offset: 0, 0
41 | index: -1
42 | F_Hair_01
43 | rotate: false
44 | xy: 2, 252
45 | size: 138, 283
46 | orig: 138, 299
47 | offset: 0, 16
48 | index: -1
49 | F_Hair_02
50 | rotate: false
51 | xy: 1304, 1348
52 | size: 209, 270
53 | orig: 210, 270
54 | offset: 1, 0
55 | index: -1
56 | F_Hair_03_03
57 | rotate: true
58 | xy: 1182, 169
59 | size: 68, 834
60 | orig: 69, 834
61 | offset: 0, 0
62 | index: -1
63 | F_Hair_Acc_01
64 | rotate: false
65 | xy: 1202, 198
66 | size: 413, 284
67 | orig: 413, 284
68 | offset: 0, 0
69 | index: -1
70 | Jumper_01
71 | rotate: 270
72 | xy: 128, 407
73 | size: 211, 314
74 | orig: 211, 314
75 | offset: 0, 0
76 | index: -1
77 | Jumper_02
78 | rotate: false
79 | xy: 1744, 1614
80 | size: 301, 432
81 | orig: 301, 432
82 | offset: 0, 0
83 | index: -1
84 | Jumper_03
85 | rotate: false
86 | xy: 393, 797
87 | size: 428, 433
88 | orig: 428, 433
89 | offset: 0, 0
90 | index: -1
91 | Jumper_04
92 | rotate: true
93 | xy: 1344, 582
94 | size: 236, 487
95 | orig: 236, 503
96 | offset: 0, 16
97 | index: -1
98 | Jumper_05
99 | rotate: 270
100 | xy: 2, 559
101 | size: 287, 405
102 | orig: 287, 405
103 | offset: 0, 0
104 | index: -1
105 | Jumper_06
106 | rotate: 270
107 | xy: 302, 315
108 | size: 299, 472
109 | orig: 299, 472
110 | offset: 0, 0
111 | index: -1
112 | L_Calf_01
113 | rotate: true
114 | xy: 276, 574
115 | size: 305, 620
116 | orig: 312, 622
117 | offset: 7, 0
118 | index: -1
119 | L_Eye_P_01
120 | rotate: false
121 | xy: 1619, 2021
122 | size: 28, 25
123 | orig: 28, 25
124 | offset: 0, 0
125 | index: -1
126 | L_Eye_P_02
127 | rotate: false
128 | xy: 1743, 1786
129 | size: 27, 24
130 | orig: 27, 24
131 | offset: 0, 0
132 | index: -1
133 | L_Eye_White_01
134 | rotate: false
135 | xy: 1943, 1946
136 | size: 101, 101
137 | orig: 101, 101
138 | offset: 0, 0
139 | index: -1
140 | L_Eyebrows_02
141 | rotate: false
142 | xy: 388, 414
143 | size: 84, 60
144 | orig: 84, 61
145 | offset: 0, 1
146 | index: -1
147 | L_Eyebrows_03
148 | rotate: false
149 | xy: 1896, 458
150 | size: 92, 55
151 | orig: 92, 55
152 | offset: 0, 0
153 | index: -1
154 | L_Eyebrows_03_D
155 | rotate: false
156 | xy: 1170, 1215
157 | size: 63, 15
158 | orig: 63, 15
159 | offset: 0, 0
160 | index: -1
161 | L_Eyebrows_04
162 | rotate: false
163 | xy: 1119, 902
164 | size: 82, 60
165 | orig: 88, 60
166 | offset: 6, 0
167 | index: -1
168 | L_Eyebrows_default
169 | rotate: false
170 | xy: 1494, 402
171 | size: 98, 57
172 | orig: 98, 58
173 | offset: 0, 1
174 | index: -1
175 | L_Eyebrows_default_D
176 | rotate: false
177 | xy: 1304, 1377
178 | size: 67, 17
179 | orig: 67, 17
180 | offset: 0, 0
181 | index: -1
182 | L_Face_Eyelid_full
183 | rotate: false
184 | xy: 1729, 1989
185 | size: 91, 59
186 | orig: 92, 59
187 | offset: 0, 0
188 | index: -1
189 | L_Face_Eyelid_halfclose
190 | rotate: false
191 | xy: 1939, 1100
192 | size: 92, 57
193 | orig: 92, 57
194 | offset: 0, 0
195 | index: -1
196 | L_Forearm_01
197 | rotate: false
198 | xy: 2, 1132
199 | size: 84, 100
200 | orig: 84, 235
201 | offset: 0, 135
202 | index: -1
203 | L_Forearm_02
204 | rotate: false
205 | xy: 1299, 885
206 | size: 71, 96
207 | orig: 71, 97
208 | offset: 0, 1
209 | index: -1
210 | L_Forearm_03
211 | rotate: false
212 | xy: 423, 861
213 | size: 94, 206
214 | orig: 95, 206
215 | offset: 1, 0
216 | index: -1
217 | L_Hair_01
218 | rotate: false
219 | xy: 1987, 1853
220 | size: 59, 95
221 | orig: 60, 95
222 | offset: 0, 0
223 | index: -1
224 | L_Hair_Acc_01
225 | rotate: true
226 | xy: 400, 116
227 | size: 77, 255
228 | orig: 77, 255
229 | offset: 0, 0
230 | index: -1
231 | L_Hair_Acc_02
232 | rotate: false
233 | xy: 1496, 1265
234 | size: 66, 251
235 | orig: 66, 252
236 | offset: 0, 0
237 | index: -1
238 | L_Hand_01
239 | rotate: false
240 | xy: 1911, 1490
241 | size: 135, 171
242 | orig: 135, 171
243 | offset: 0, 0
244 | index: -1
245 | L_T_Eyebrows_01
246 | rotate: false
247 | xy: 940, 1087
248 | size: 71, 44
249 | orig: 71, 44
250 | offset: 0, 0
251 | index: -1
252 | L_Thigh_01
253 | rotate: true
254 | xy: 1366, 794
255 | size: 236, 680
256 | orig: 239, 681
257 | offset: 0, 0
258 | index: -1
259 | L_UpperArm_01
260 | rotate: true
261 | xy: 382, 460
262 | size: 212, 374
263 | orig: 213, 375
264 | offset: 0, 1
265 | index: -1
266 | L_eye_01_1
267 | rotate: false
268 | xy: 287, 1176
269 | size: 63, 54
270 | orig: 63, 54
271 | offset: 0, 0
272 | index: -1
273 | L_eye_01_2
274 | rotate: false
275 | xy: 1937, 2031
276 | size: 17, 17
277 | orig: 17, 17
278 | offset: 0, 0
279 | index: -1
280 | L_eye_01_3
281 | rotate: false
282 | xy: 1884, 1558
283 | size: 35, 21
284 | orig: 35, 21
285 | offset: 0, 0
286 | index: -1
287 | L_eye_default_3
288 | rotate: false
289 | xy: 1884, 1558
290 | size: 35, 21
291 | orig: 35, 21
292 | offset: 0, 0
293 | index: -1
294 | L_eye_default_1
295 | rotate: false
296 | xy: 1822, 1568
297 | size: 66, 58
298 | orig: 66, 58
299 | offset: 0, 0
300 | index: -1
301 | L_eye_default_2
302 | rotate: false
303 | xy: 1922, 2028
304 | size: 18, 18
305 | orig: 18, 18
306 | offset: 0, 0
307 | index: -1
308 | L_flush_1
309 | rotate: false
310 | xy: 1203, 906
311 | size: 94, 64
312 | orig: 94, 68
313 | offset: 0, 0
314 | index: -1
315 | L_flush_2
316 | rotate: false
317 | xy: 1417, 1274
318 | size: 98, 67
319 | orig: 98, 80
320 | offset: 0, 13
321 | index: -1
322 | R_Calf_01
323 | rotate: 270
324 | xy: 763, 687
325 | size: 292, 663
326 | orig: 292, 664
327 | offset: 0, 0
328 | index: -1
329 | R_Eye_P_01
330 | rotate: false
331 | xy: 2009, 1822
332 | size: 31, 29
333 | orig: 31, 29
334 | offset: 0, 0
335 | index: -1
336 | R_Eye_P_02
337 | rotate: false
338 | xy: 1304, 1992
339 | size: 28, 27
340 | orig: 28, 27
341 | offset: 0, 0
342 | index: -1
343 | R_Eye_White_01
344 | rotate: false
345 | xy: 816, 1011
346 | size: 100, 100
347 | orig: 101, 101
348 | offset: 1, 1
349 | index: -1
350 | R_Eyebrows_02
351 | rotate: false
352 | xy: 1932, 499
353 | size: 114, 56
354 | orig: 114, 56
355 | offset: 0, 0
356 | index: -1
357 | R_Eyebrows_03
358 | rotate: false
359 | xy: 1718, 703
360 | size: 122, 53
361 | orig: 122, 53
362 | offset: 0, 0
363 | index: -1
364 | R_Eyebrows_03_D
365 | rotate: false
366 | xy: 349, 1205
367 | size: 64, 27
368 | orig: 64, 28
369 | offset: 0, 1
370 | index: -1
371 | R_Eyebrows_04
372 | rotate: false
373 | xy: 787, 736
374 | size: 117, 57
375 | orig: 117, 57
376 | offset: 0, 0
377 | index: -1
378 | R_Eyebrows_default
379 | rotate: false
380 | xy: 1651, 741
381 | size: 130, 54
382 | orig: 130, 54
383 | offset: 0, 0
384 | index: -1
385 | R_Eyebrows_default _D
386 | rotate: false
387 | xy: 1359, 1258
388 | size: 60, 24
389 | orig: 60, 25
390 | offset: 0, 1
391 | index: -1
392 | R_Face_Eyelid_full
393 | rotate: false
394 | xy: 1065, 1166
395 | size: 106, 64
396 | orig: 108, 64
397 | offset: 1, 0
398 | index: -1
399 | R_Face_Eyelid_halfclose
400 | rotate: false
401 | xy: 1618, 1030
402 | size: 108, 67
403 | orig: 108, 67
404 | offset: 0, 0
405 | index: -1
406 | R_Forearm_01
407 | rotate: 180
408 | xy: 1597, 406
409 | size: 449, 277
410 | orig: 449, 277
411 | offset: 0, 0
412 | index: -1
413 | R_Hair_01
414 | rotate: true
415 | xy: 1099, 164
416 | size: 157, 139
417 | orig: 157, 144
418 | offset: 0, 0
419 | index: -1
420 | R_Hair_02
421 | rotate: 270
422 | xy: 318, 192
423 | size: 115, 671
424 | orig: 122, 673
425 | offset: 0, 0
426 | index: -1
427 | R_Hair_03_00
428 | rotate: 270
429 | xy: 890, 434
430 | size: 112, 711
431 | orig: 114, 711
432 | offset: 2, 0
433 | index: -1
434 | R_Hair_03_01
435 | rotate: true
436 | xy: 1682, 254
437 | size: 91, 365
438 | orig: 92, 366
439 | offset: 1, 1
440 | index: -1
441 | R_Hair_03_02
442 | rotate: true
443 | xy: 1539, 202
444 | size: 37, 507
445 | orig: 38, 507
446 | offset: 0, 0
447 | index: -1
448 | R_Hair_04
449 | rotate: true
450 | xy: 118, 196
451 | size: 164, 279
452 | orig: 164, 279
453 | offset: 0, 0
454 | index: -1
455 | R_Hair_06
456 | rotate: false
457 | xy: 287, 66
458 | size: 249, 263
459 | orig: 249, 263
460 | offset: 0, 0
461 | index: -1
462 | R_Hand_01
463 | rotate: false
464 | xy: 1841, 663
465 | size: 204, 156
466 | orig: 204, 157
467 | offset: 0, 0
468 | index: -1
469 | R_T_Eyebrows_01
470 | rotate: false
471 | xy: 1307, 1276
472 | size: 110, 17
473 | orig: 110, 17
474 | offset: 0, 0
475 | index: -1
476 | R_Thigh_01
477 | rotate: true
478 | xy: 912, 943
479 | size: 328, 706
480 | orig: 349, 706
481 | offset: 21, 0
482 | index: -1
483 | R_UpperArm_01
484 | rotate: 270
485 | xy: 898, 549
486 | size: 224, 396
487 | orig: 224, 396
488 | offset: 0, 0
489 | index: -1
490 | R_eye_01_1
491 | rotate: false
492 | xy: 1537, 1453
493 | size: 64, 61
494 | orig: 68, 61
495 | offset: 3, 0
496 | index: -1
497 | R_eye_01_2
498 | rotate: false
499 | xy: 1593, 2027
500 | size: 18, 19
501 | orig: 18, 19
502 | offset: 0, 0
503 | index: -1
504 | R_eye_01_3
505 | rotate: false
506 | xy: 2009, 1618
507 | size: 37, 28
508 | orig: 37, 28
509 | offset: 0, 0
510 | index: -1
511 | R_eye_default_1
512 | rotate: false
513 | xy: 1981, 1645
514 | size: 65, 72
515 | orig: 71, 72
516 | offset: 6, 0
517 | index: -1
518 | R_eye_default_2
519 | rotate: false
520 | xy: 2030, 2030
521 | size: 13, 17
522 | orig: 13, 17
523 | offset: 0, 0
524 | index: -1
525 | R_eye_default_3
526 | rotate: false
527 | xy: 1787, 1569
528 | size: 39, 27
529 | orig: 39, 27
530 | offset: 0, 0
531 | index: -1
532 | R_flush_1
533 | rotate: false
534 | xy: 1304, 1283
535 | size: 112, 87
536 | orig: 112, 108
537 | offset: 0, 3
538 | index: -1
539 | R_flush_2
540 | rotate: false
541 | xy: 1623, 548
542 | size: 86, 54
543 | orig: 88, 64
544 | offset: 2, 0
545 | index: -1
546 | Skirt_01
547 | rotate: true
548 | xy: 822, 1111
549 | size: 119, 241
550 | orig: 119, 241
551 | offset: 0, 0
552 | index: -1
553 | Skirt_02
554 | rotate: true
555 | xy: 1763, 227
556 | size: 81, 282
557 | orig: 81, 282
558 | offset: 0, 0
559 | index: -1
560 | Top_Light
561 | rotate: false
562 | xy: 2, 1232
563 | size: 1300, 814
564 | orig: 1300, 814
565 | offset: 0, 0
566 | index: -1
567 | Torso_01
568 | rotate: false
569 | xy: 1304, 1515
570 | size: 530, 532
571 | orig: 530, 541
572 | offset: 0, 9
573 | index: -1
574 | face
575 | rotate: true
576 | xy: 2, 821
577 | size: 411, 437
578 | orig: 411, 437
579 | offset: 0, 0
580 | index: -1
581 | faceshadow_1
582 | rotate: 270
583 | xy: 885, 174
584 | size: 205, 322
585 | orig: 206, 322
586 | offset: 1, 0
587 | index: -1
588 | faceshadow_2
589 | rotate: false
590 | xy: 31, 96
591 | size: 90, 197
592 | orig: 90, 200
593 | offset: 0, 3
594 | index: -1
595 | faceshadow_3
596 | rotate: false
597 | xy: 712, 796
598 | size: 191, 59
599 | orig: 192, 59
600 | offset: 1, 0
601 | index: -1
602 | mouth_01
603 | rotate: false
604 | xy: 1304, 1363
605 | size: 61, 19
606 | orig: 61, 20
607 | offset: 0, 1
608 | index: -1
609 | mouth_01_1
610 | rotate: false
611 | xy: 1304, 2020
612 | size: 61, 27
613 | orig: 61, 27
614 | offset: 0, 0
615 | index: -1
616 | mouth_01_2
617 | rotate: false
618 | xy: 88, 1192
619 | size: 67, 39
620 | orig: 67, 39
621 | offset: 0, 0
622 | index: -1
623 | mouth_02
624 | rotate: false
625 | xy: 1817, 2025
626 | size: 59, 22
627 | orig: 59, 25
628 | offset: 0, 3
629 | index: -1
630 | mouth_02_1
631 | rotate: false
632 | xy: 1595, 1509
633 | size: 53, 16
634 | orig: 53, 16
635 | offset: 0, 0
636 | index: -1
637 | mouth_02_2
638 | rotate: false
639 | xy: 1365, 2030
640 | size: 55, 17
641 | orig: 55, 19
642 | offset: 0, 2
643 | index: -1
644 | nose
645 | rotate: false
646 | xy: 1741, 1813
647 | size: 20, 36
648 | orig: 20, 36
649 | offset: 0, 0
650 | index: -1
651 | side hair_01
652 | rotate: true
653 | xy: 1666, 339
654 | size: 114, 379
655 | orig: 114, 379
656 | offset: 0, 0
657 | index: -1
658 | side hair_02
659 | rotate: false
660 | xy: 419, 843
661 | size: 105, 76
662 | orig: 105, 76
663 | offset: 0, 0
664 | index: -1
665 | side hair_03_00
666 | rotate: true
667 | xy: 745, 332
668 | size: 175, 810
669 | orig: 175, 810
670 | offset: 0, 0
671 | index: -1
672 | side hair_03_01
673 | rotate: true
674 | xy: 746, 491
675 | size: 88, 853
676 | orig: 88, 853
677 | offset: 0, 0
678 | index: -1
679 | side hair_03_02
680 | rotate: true
681 | xy: 1674, 1034
682 | size: 124, 372
683 | orig: 124, 372
684 | offset: 0, 0
685 | index: -1
686 |
687 | Aris_home2.png
688 | size: 2048,2048
689 | format: RGBA8888
690 | filter: Linear,Linear
691 | repeat: none
692 | background/background
693 | rotate: false
694 | xy: 2, 756
695 | size: 1645, 1184
696 | orig: 1645, 1184
697 | offset: 0, 0
698 | index: -1
699 | background/chair
700 | rotate: true
701 | xy: 2, 3
702 | size: 752, 956
703 | orig: 849, 956
704 | offset: 0, 0
705 | index: -1
706 | background/game_light_01
707 | rotate: false
708 | xy: 2, 692
709 | size: 88, 62
710 | orig: 88, 62
711 | offset: 0, 0
712 | index: -1
713 | background/game_light_02
714 | rotate: false
715 | xy: 2, 610
716 | size: 103, 80
717 | orig: 104, 80
718 | offset: 0, 0
719 | index: -1
720 | background/game_light_03
721 | rotate: false
722 | xy: 822, 695
723 | size: 156, 60
724 | orig: 156, 60
725 | offset: 0, 0
726 | index: -1
727 | background/halo 1
728 | rotate: true
729 | xy: 1481, 222
730 | size: 520, 363
731 | orig: 520, 363
732 | offset: 0, 0
733 | index: -1
734 | background/halo 2
735 | rotate: false
736 | xy: 959, 223
737 | size: 520, 369
738 | orig: 520, 369
739 | offset: 0, 0
740 | index: -1
741 |
--------------------------------------------------------------------------------
/public/l2d/aris/Aris_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/l2d/aris/Aris_home.png
--------------------------------------------------------------------------------
/public/l2d/aris/Aris_home.skel:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/l2d/aris/Aris_home.skel
--------------------------------------------------------------------------------
/public/l2d/aris/Aris_home2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/l2d/aris/Aris_home2.png
--------------------------------------------------------------------------------
/public/l2d/aris/Someday_-sometime.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/l2d/aris/Someday_-sometime.mp3
--------------------------------------------------------------------------------
/public/l2d/arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/l2d/arrow.png
--------------------------------------------------------------------------------
/public/l2d/hina_swimsuit/CH0063_home.atlas:
--------------------------------------------------------------------------------
1 | CH0063_home_CN.png
2 | size:3068,2910
3 | filter:Linear,Linear
4 | BG/BG_Shadow_01
5 | bounds:2,632,1350,584
6 | BG/Candlelights_01
7 | bounds:146,2899,9,25
8 | rotate:90
9 | BG/Candlelights_01_P
10 | bounds:719,1303,500,479
11 | BG/Candlelights_02
12 | bounds:298,2898,10,25
13 | rotate:90
14 | BG/Citylights_Resource_01
15 | bounds:2227,2879,30,29
16 | BG/Citylights_Resource_04
17 | bounds:2227,2879,30,29
18 | BG/Citylights_Resource_02
19 | bounds:1613,2884,25,24
20 | BG/Citylights_Resource_03
21 | bounds:1640,2884,25,24
22 | BG/F_BG
23 | bounds:2,2,1730,628
24 | offsets:0,0,1730,757
25 | BG/Halo_01
26 | bounds:2643,1989,414,239
27 | offsets:21,9,450,248
28 | BG/Halo_03
29 | bounds:1630,2603,225,113
30 | offsets:0,1,225,115
31 | BG/Halo_04
32 | bounds:207,2767,90,142
33 | rotate:90
34 | BG/Halo_05
35 | bounds:1581,2722,123,92
36 | offsets:2,1,125,96
37 | BG/L_Halo_02
38 | bounds:937,2632,150,111
39 | offsets:0,2,150,113
40 | BG/R_Halo_02
41 | bounds:1706,2718,150,94
42 | BG/Sea
43 | bounds:1221,1218,1500,410
44 | offsets:0,330,1500,949
45 | BG/Sky_Halo_P
46 | bounds:1354,632,1400,584
47 | offsets:0,455,1400,1039
48 | BG/Sky_halo
49 | bounds:2276,2800,149,76
50 | offsets:1,0,150,79
51 | BG/sea_light
52 | bounds:1891,2049,750,212
53 | BG/sea_wave 01
54 | bounds:351,2762,450,82
55 | BG/sea_wave 02
56 | bounds:1129,2731,450,86
57 | offsets:0,0,450,87
58 | BG/sea_wave 03
59 | bounds:2197,2702,450,87
60 | BG/sea_wave 04
61 | bounds:202,2670,450,90
62 | BG/sea_wave 05
63 | bounds:648,2362,750,129
64 | offsets:0,1,750,130
65 | BG/sea_wave 06
66 | bounds:1857,2598,500,102
67 | B_Hair_01
68 | bounds:2,1493,411,715
69 | offsets:106,216,541,932
70 | rotate:90
71 | B_Hair_012
72 | bounds:336,1906,634,270
73 | B_Hair_02
74 | bounds:1946,2456,140,179
75 | offsets:0,1,140,182
76 | rotate:90
77 | B_Hair_03
78 | bounds:1440,2087,214,449
79 | rotate:90
80 | F_Pillow
81 | bounds:998,2102,440,212
82 | L_Arm_01
83 | bounds:649,2514,124,222
84 | offsets:7,10,131,232
85 | rotate:90
86 | L_Arm_01_Intro
87 | bounds:2859,2564,118,180
88 | offsets:0,1,118,181
89 | rotate:90
90 | L_B_Eye_P_01
91 | bounds:1018,2890,25,18
92 | offsets:0,0,25,19
93 | L_B_Eye_P_02
94 | bounds:1045,2890,24,18
95 | offsets:0,0,25,18
96 | L_B_Eye_P_03
97 | bounds:1071,2890,24,18
98 | offsets:0,0,25,19
99 | L_B_Eyebrows_01
100 | bounds:444,2896,28,12
101 | offsets:1,0,29,12
102 | L_B_Eyebrows_02
103 | bounds:537,2895,33,13
104 | L_B_Finger_01
105 | bounds:1870,2882,29,26
106 | offsets:0,0,30,54
107 | L_B_Finger_02
108 | bounds:2144,2880,34,28
109 | L_B_Finger_03
110 | bounds:1695,2883,32,25
111 | offsets:0,1,32,26
112 | L_B_Finger_04
113 | bounds:1901,2882,32,26
114 | offsets:1,1,33,28
115 | L_Cardigan_01
116 | bounds:2,2563,105,498
117 | rotate:90
118 | L_Cardigan_01_Intro
119 | bounds:2359,2583,104,498
120 | offsets:0,0,105,498
121 | rotate:90
122 | L_Cardigan_02
123 | bounds:570,2178,182,426
124 | offsets:0,1,182,427
125 | rotate:90
126 | L_Eye_01
127 | bounds:2259,2879,29,40
128 | rotate:90
129 | L_Eye_02
130 | bounds:2550,2876,32,40
131 | rotate:90
132 | L_Eye_03
133 | bounds:2592,2876,32,41
134 | rotate:90
135 | L_Eye_P_01_0
136 | bounds:74,2900,8,15
137 | offsets:1,0,9,16
138 | rotate:90
139 | L_Eye_P_01_1
140 | bounds:1167,2889,19,29
141 | rotate:90
142 | L_Eye_P_02_0
143 | bounds:173,2899,9,16
144 | rotate:90
145 | L_Eye_P_02_1
146 | bounds:1294,2887,21,26
147 | rotate:90
148 | L_Eye_P_03_0
149 | bounds:191,2899,9,16
150 | offsets:1,0,10,17
151 | rotate:90
152 | L_Eye_P_03_1
153 | bounds:1322,2887,21,26
154 | rotate:90
155 | L_Eye_White
156 | bounds:948,2841,61,48
157 | offsets:0,1,62,50
158 | L_Finger_01
159 | bounds:2180,2880,28,45
160 | offsets:1,1,29,46
161 | rotate:90
162 | L_Finger_01_01_Intro
163 | bounds:762,2893,15,38
164 | offsets:0,1,17,39
165 | rotate:90
166 | L_Finger_01_02_Intro
167 | bounds:1729,2883,26,25
168 | offsets:0,0,27,25
169 | L_Finger_02
170 | bounds:1350,2887,21,56
171 | offsets:1,1,23,57
172 | rotate:90
173 | L_Finger_03
174 | bounds:1408,2887,21,50
175 | offsets:1,1,22,51
176 | rotate:90
177 | L_Finger_04
178 | bounds:2301,2879,29,43
179 | offsets:1,0,30,43
180 | rotate:90
181 | L_Foot_01
182 | bounds:1089,2619,101,539
183 | offsets:1,0,102,539
184 | rotate:90
185 | L_Forearm_01
186 | bounds:2611,2433,229,148
187 | offsets:14,9,243,157
188 | L_Forearm_01_Intro
189 | bounds:1858,2713,94,218
190 | rotate:90
191 | L_Hair_01
192 | bounds:1194,2493,124,335
193 | offsets:1,1,126,343
194 | rotate:90
195 | L_Hair_01_P_01
196 | bounds:2444,2877,31,104
197 | offsets:0,0,31,105
198 | rotate:90
199 | L_Hair_02
200 | bounds:2112,2807,82,71
201 | offsets:0,0,83,72
202 | L_Hair_03
203 | bounds:895,2842,48,51
204 | offsets:0,2,48,54
205 | rotate:90
206 | L_Hair_04
207 | bounds:1230,2821,64,188
208 | rotate:90
209 | L_Hair_04_P_01
210 | bounds:1011,2841,47,127
211 | rotate:90
212 | L_Hair_05
213 | bounds:268,2201,196,300
214 | offsets:3,3,200,304
215 | rotate:90
216 | L_Hair_05_Shadow
217 | bounds:2887,2684,96,133
218 | offsets:1,0,101,136
219 | rotate:90
220 | L_Hair_06
221 | bounds:2842,2414,148,224
222 | offsets:1,2,150,226
223 | rotate:90
224 | L_Hair_06_Shadow
225 | bounds:2127,2451,145,195
226 | offsets:2,0,150,195
227 | rotate:90
228 | L_Hand_01
229 | bounds:2529,2793,89,81
230 | L_Hand_01_Intro
231 | bounds:1420,2821,69,64
232 | offsets:1,2,70,66
233 | L_Hand_02_01_Intro
234 | bounds:1542,2885,23,36
235 | offsets:1,0,25,36
236 | rotate:90
237 | L_Hand_02_02_Intro
238 | bounds:1667,2884,24,26
239 | offsets:0,0,25,30
240 | rotate:90
241 | L_Hand_03_01_Intro
242 | bounds:1977,2881,32,27
243 | offsets:0,1,33,28
244 | L_Hand_03_02_Intro
245 | bounds:1757,2883,25,25
246 | offsets:0,0,26,32
247 | L_Hand_04_Intro
248 | bounds:2011,2881,34,27
249 | offsets:0,0,39,27
250 | L_Hand_05_Intro
251 | bounds:2771,2873,38,35
252 | offsets:0,0,39,65
253 | L_Horns_1
254 | bounds:1946,2809,70,164
255 | offsets:0,36,125,200
256 | rotate:90
257 | L_Horns_2
258 | bounds:2196,2803,78,74
259 | offsets:47,1,125,200
260 | L_M_Eyebrows_01
261 | bounds:422,2855,70,39
262 | offsets:2,3,72,44
263 | L_M_Eyebrows_02
264 | bounds:494,2854,69,39
265 | offsets:0,5,69,44
266 | L_M_Eyebrows_03
267 | bounds:2811,2873,62,35
268 | offsets:0,0,63,40
269 | L_M_Eyebrows_04
270 | bounds:98,2861,59,36
271 | offsets:0,0,59,42
272 | L_Mt_Eyebrows_01
273 | bounds:839,2892,47,16
274 | L_Screen_P_00
275 | bounds:228,2859,36,145
276 | rotate:90
277 | L_Screen_P_01
278 | bounds:565,2852,41,46
279 | rotate:90
280 | L_Screen_P_02
281 | bounds:1140,2838,49,88
282 | rotate:90
283 | L_Screen_P_03
284 | bounds:2620,2791,81,85
285 | rotate:90
286 | L_T_Eye_P_01
287 | bounds:572,2895,13,16
288 | offsets:0,0,13,17
289 | rotate:90
290 | L_T_Eye_P_02
291 | bounds:590,2895,13,14
292 | offsets:0,0,13,16
293 | rotate:90
294 | L_T_Eye_P_03
295 | bounds:606,2895,13,14
296 | offsets:0,0,13,15
297 | rotate:90
298 | L_T_Eyebrows_01
299 | bounds:1247,2888,45,20
300 | offsets:0,3,51,23
301 | L_T_Eyebrows_02
302 | bounds:949,2891,37,17
303 | offsets:0,13,57,30
304 | L_T_Eyebrows_03
305 | bounds:1097,2890,43,18
306 | offsets:0,2,43,20
307 | L_T_Hair_01
308 | bounds:1585,2816,65,142
309 | offsets:4,2,69,149
310 | rotate:90
311 | L_T_Hair_010
312 | bounds:2600,1630,357,420
313 | rotate:90
314 | L_T_Hair_01_P_01
315 | bounds:2324,2441,285,140
316 | offsets:0,0,285,141
317 | L_T_Hair_01_P_02
318 | bounds:803,2749,91,115
319 | rotate:90
320 | L_T_Hair_02
321 | bounds:2022,1706,341,576
322 | offsets:1,0,343,576
323 | rotate:90
324 | L_T_Hair_020
325 | bounds:300,2413,148,190
326 | rotate:90
327 | L_T_Hair_02_P_01
328 | bounds:2875,2873,35,131
329 | rotate:90
330 | L_T_Hair_03
331 | bounds:492,2399,154,148
332 | offsets:0,0,154,149
333 | L_Thigh_01
334 | bounds:1694,2303,151,331
335 | offsets:1,6,152,337
336 | rotate:90
337 | L_Wing_01
338 | bounds:2684,2230,205,182
339 | L_Wing_02
340 | bounds:2443,2263,239,168
341 | L_eyelid_01
342 | bounds:2427,2798,100,77
343 | offsets:0,0,100,78
344 | L_eyelid_02
345 | bounds:2847,2785,96,86
346 | offsets:2,2,100,89
347 | L_flush_01
348 | bounds:785,2846,52,45
349 | offsets:2,0,54,47
350 | L_flush_02
351 | bounds:613,2851,58,42
352 | Mouse_01
353 | bounds:365,2897,42,11
354 | offsets:0,0,43,11
355 | Mouse_02_01
356 | bounds:22,2901,13,7
357 | Mouse_02_02
358 | bounds:37,2901,16,7
359 | Mouse_03_01
360 | bounds:91,2900,17,8
361 | offsets:0,0,18,10
362 | Mouse_03_02
363 | bounds:110,2900,17,8
364 | Mouse_03_03
365 | bounds:55,2901,17,7
366 | Mouse_04
367 | bounds:209,2899,35,9
368 | Mouse_04_01
369 | bounds:246,2899,33,9
370 | offsets:0,0,34,9
371 | Mouse_04_02
372 | bounds:409,2897,33,11
373 | offsets:0,0,34,11
374 | Neck_01
375 | bounds:920,2748,103,91
376 | offsets:2,0,125,92
377 | Nose_01
378 | bounds:802,2893,15,17
379 | rotate:90
380 | R_Arm_01
381 | bounds:2,2773,86,203
382 | offsets:0,1,86,204
383 | rotate:90
384 | R_B_Cardigan_01
385 | bounds:2,2416,145,296
386 | offsets:1,2,174,338
387 | rotate:90
388 | R_B_Eye_P_01
389 | bounds:1198,2889,23,19
390 | offsets:2,0,25,21
391 | R_B_Eye_P_02
392 | bounds:1223,2889,22,19
393 | offsets:1,0,25,21
394 | R_B_Eye_P_03
395 | bounds:1142,2890,23,18
396 | offsets:1,1,25,21
397 | R_B_Eyebrows_01
398 | bounds:474,2896,26,12
399 | offsets:0,0,27,13
400 | R_B_Eyebrows_02
401 | bounds:702,2894,25,14
402 | R_B_Hair_01
403 | bounds:2,2671,100,198
404 | offsets:0,21,102,219
405 | rotate:90
406 | R_B_Hair_02
407 | bounds:1025,2745,94,102
408 | offsets:6,1,100,105
409 | rotate:90
410 | R_B_Hair_03
411 | bounds:1400,2316,150,292
412 | rotate:90
413 | R_B_Hair_04
414 | bounds:1773,2461,135,171
415 | offsets:0,1,196,172
416 | rotate:90
417 | R_B_Hair_05
418 | bounds:1729,2814,67,127
419 | offsets:0,0,67,185
420 | rotate:90
421 | R_B_Hair_05_P_01
422 | bounds:159,2861,36,67
423 | rotate:90
424 | R_B_Hair_06
425 | bounds:776,2640,106,159
426 | offsets:0,0,106,174
427 | rotate:90
428 | R_B_Hair_06_P_01
429 | bounds:2945,2782,89,121
430 | offsets:0,0,90,121
431 | rotate:90
432 | R_Cardigan_01
433 | bounds:2,2234,180,264
434 | offsets:0,1,181,265
435 | rotate:90
436 | R_Eye_01
437 | bounds:1784,2883,25,41
438 | rotate:90
439 | R_Eye_02
440 | bounds:1935,2882,26,40
441 | offsets:0,1,26,42
442 | rotate:90
443 | R_Eye_03
444 | bounds:1827,2883,25,41
445 | offsets:0,1,25,42
446 | rotate:90
447 | R_Eye_P_01_0
448 | bounds:2,2902,6,18
449 | offsets:2,1,9,20
450 | rotate:90
451 | R_Eye_P_01_1
452 | bounds:888,2892,16,30
453 | rotate:90
454 | R_Eye_P_02_0
455 | bounds:129,2900,8,15
456 | offsets:1,0,9,15
457 | rotate:90
458 | R_Eye_P_02_1
459 | bounds:988,2891,17,28
460 | rotate:90
461 | R_Eye_P_03_0
462 | bounds:281,2899,9,15
463 | rotate:90
464 | R_Eye_P_03_1
465 | bounds:920,2892,16,27
466 | offsets:1,0,17,28
467 | rotate:90
468 | R_Eye_White
469 | bounds:673,2849,43,43
470 | offsets:1,1,45,45
471 | R_Finger_01
472 | bounds:2047,2881,27,95
473 | offsets:1,0,28,101
474 | rotate:90
475 | R_Finger_02
476 | bounds:718,2848,43,65
477 | offsets:0,3,52,68
478 | rotate:90
479 | R_Foot_01
480 | bounds:1471,1717,330,549
481 | rotate:90
482 | R_Forearm_01
483 | bounds:2649,2689,94,236
484 | offsets:0,0,94,238
485 | rotate:90
486 | R_Hair_01
487 | bounds:1531,2468,133,240
488 | offsets:9,0,144,243
489 | rotate:90
490 | R_Hair_01_Shadow
491 | bounds:2707,2786,85,138
492 | rotate:90
493 | R_Hair_02
494 | bounds:839,2843,54,47
495 | offsets:0,1,55,49
496 | R_Hand_01
497 | bounds:1491,2819,64,92
498 | offsets:0,2,65,94
499 | rotate:90
500 | R_Horns_1
501 | bounds:2635,2874,34,94
502 | offsets:2,0,36,94
503 | rotate:90
504 | R_M_Eyebrows_01
505 | bounds:3008,2873,50,35
506 | offsets:1,8,55,45
507 | R_M_Eyebrows_02
508 | bounds:2,2864,52,35
509 | offsets:1,8,55,45
510 | R_M_Eyebrows_03
511 | bounds:2346,2878,48,30
512 | offsets:0,0,55,33
513 | R_M_Eyebrows_04
514 | bounds:2396,2878,46,30
515 | offsets:0,0,55,33
516 | R_Mt_Eyebrows_01
517 | bounds:502,2896,33,12
518 | offsets:1,1,34,15
519 | R_T_Eye_P_01
520 | bounds:821,2893,15,16
521 | rotate:90
522 | R_T_Eye_P_02
523 | bounds:729,2894,15,14
524 | R_T_Eye_P_03
525 | bounds:746,2894,14,14
526 | R_T_Eyebrows_01
527 | bounds:622,2895,37,13
528 | offsets:4,3,41,17
529 | R_T_Eyebrows_02
530 | bounds:661,2895,39,13
531 | offsets:4,0,44,13
532 | R_T_Eyebrows_03
533 | bounds:325,2898,38,10
534 | offsets:6,1,44,15
535 | R_T_Hair_01
536 | bounds:1858,2813,86,67
537 | offsets:0,0,87,68
538 | R_T_Hair_01_P_01
539 | bounds:375,2856,39,45
540 | rotate:90
541 | R_Thigh_01
542 | bounds:873,2498,119,319
543 | offsets:0,0,120,323
544 | rotate:90
545 | R_Thumb_01
546 | bounds:1460,2887,21,80
547 | offsets:1,1,23,81
548 | rotate:90
549 | R_Wing_01
550 | bounds:2027,2293,211,156
551 | offsets:0,1,211,157
552 | R_Wing_02
553 | bounds:2240,2273,201,166
554 | offsets:1,4,202,170
555 | R_eyelid_01
556 | bounds:654,2660,100,120
557 | offsets:0,0,100,122
558 | rotate:90
559 | R_eyelid_02
560 | bounds:2078,2706,95,117
561 | offsets:3,3,100,122
562 | rotate:90
563 | R_flush_01
564 | bounds:2731,2874,38,34
565 | offsets:7,0,45,34
566 | R_flush_02
567 | bounds:56,2863,40,35
568 | offsets:2,0,43,37
569 | Torso
570 | bounds:972,1784,301,497
571 | offsets:0,5,302,502
572 | rotate:90
573 | Whistle_01
574 | bounds:1580,2885,23,31
575 | offsets:0,1,23,32
576 | rotate:90
577 | Whistle_02
578 | bounds:502,2549,119,145
579 | offsets:0,0,119,146
580 | rotate:90
581 | face
582 | bounds:2,1926,273,332
583 | offsets:23,4,300,344
584 | rotate:90
585 |
586 | CH0063_home_CN_2.png
587 | size:1734,1288
588 | filter:Linear,Linear
589 | F_Screen
590 | bounds:2,2,1730,1284
591 |
--------------------------------------------------------------------------------
/public/l2d/hina_swimsuit/CH0063_home.skel:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/l2d/hina_swimsuit/CH0063_home.skel
--------------------------------------------------------------------------------
/public/l2d/hina_swimsuit/CH0063_home_CN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/l2d/hina_swimsuit/CH0063_home_CN.png
--------------------------------------------------------------------------------
/public/l2d/hina_swimsuit/CH0063_home_CN_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/l2d/hina_swimsuit/CH0063_home_CN_2.png
--------------------------------------------------------------------------------
/public/l2d/hina_swimsuit/Theme_21.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/l2d/hina_swimsuit/Theme_21.mp3
--------------------------------------------------------------------------------
/public/shitim/Event_Main_Stage_Bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/shitim/Event_Main_Stage_Bg.png
--------------------------------------------------------------------------------
/public/shitim/Tran_Shitim_Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/shitim/Tran_Shitim_Icon.png
--------------------------------------------------------------------------------
/public/task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/task.png
--------------------------------------------------------------------------------
/public/transfrom.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/public/transfrom.webm
--------------------------------------------------------------------------------
/shots/main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/shots/main.png
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
162 |
--------------------------------------------------------------------------------
/src/assets/font/BlueakaBeta2GBK-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/src/assets/font/BlueakaBeta2GBK-Bold.ttf
--------------------------------------------------------------------------------
/src/assets/font/BlueakaBeta2GBK-DemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sf-yuzifu/homepage/9f4135e09064dccf98228f69f3aedbcb310de882/src/assets/font/BlueakaBeta2GBK-DemiBold.ttf
--------------------------------------------------------------------------------
/src/assets/index.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | user-select: none;
5 | --webkit-user-select: none;
6 | }
7 |
8 | :root {
9 | --deco1: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iX+WbvuWxgl8xIiBkYXRhLW5hbWU9IuWbvuWxgiAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzU5IDI3MyI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogIzQxODRhYjsKICAgICAgfQoKICAgICAgLmNscy0xLCAuY2xzLTIsIC5jbHMtMywgLmNscy00LCAuY2xzLTUsIC5jbHMtNiwgLmNscy03LCAuY2xzLTgsIC5jbHMtOSwgLmNscy0xMCwgLmNscy0xMSwgLmNscy0xMiwgLmNscy0xMywgLmNscy0xNCwgLmNscy0xNSwgLmNscy0xNiB7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAwcHg7CiAgICAgIH0KCiAgICAgIC5jbHMtMiB7CiAgICAgICAgZmlsbDogIzkxZDRmYjsKICAgICAgfQoKICAgICAgLmNscy0zIHsKICAgICAgICBmaWxsOiAjODNjNGViOwogICAgICB9CgogICAgICAuY2xzLTQgewogICAgICAgIGZpbGw6ICM3OWJjZTM7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogIzZkYjBkNzsKICAgICAgfQoKICAgICAgLmNscy02IHsKICAgICAgICBmaWxsOiAjZWNmOWZmOwogICAgICB9CgogICAgICAuY2xzLTcgewogICAgICAgIGZpbGwtcnVsZTogZXZlbm9kZDsKICAgICAgfQoKICAgICAgLmNscy03LCAuY2xzLTEwIHsKICAgICAgICBmaWxsOiAjYjdlNGZmOwogICAgICB9CgogICAgICAuY2xzLTggewogICAgICAgIGZpbGw6ICM4MGMzZWE7CiAgICAgIH0KCiAgICAgIC5jbHMtOSB7CiAgICAgICAgZmlsbDogI2FhZGVmZTsKICAgICAgfQoKICAgICAgLmNscy0xMSB7CiAgICAgICAgZmlsbDogI2RkZjJmZjsKICAgICAgfQoKICAgICAgLmNscy0xNyB7CiAgICAgICAgZmlsbDogdXJsKCNf5pyq5ZG95ZCN55qE5riQ5Y+YXzgpOwogICAgICAgIHN0cm9rZTogIzAwMDsKICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgIH0KCiAgICAgIC5jbHMtMTIgewogICAgICAgIGZpbGw6ICNjNWVjZmY7CiAgICAgIH0KCiAgICAgIC5jbHMtMTMgewogICAgICAgIGZpbGw6ICNlZGY4ZmY7CiAgICAgIH0KCiAgICAgIC5jbHMtMTQgewogICAgICAgIGZpbGw6ICNiMGRlZmU7CiAgICAgIH0KCiAgICAgIC5jbHMtMTggewogICAgICAgIG9wYWNpdHk6IC42OwogICAgICB9CgogICAgICAuY2xzLTE5IHsKICAgICAgICBtYXNrOiB1cmwoI21hc2spOwogICAgICB9CgogICAgICAuY2xzLTE1IHsKICAgICAgICBmaWxsOiAjOTZkN2ZlOwogICAgICB9CgogICAgICAuY2xzLTE2IHsKICAgICAgICBmaWxsOiAjZDhmMmZmOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJf5pyq5ZG95ZCN55qE5riQ5Y+YXzgiIGRhdGEtbmFtZT0i5pyq5ZG95ZCN55qE5riQ5Y+YIDgiIHgxPSIyMTIuMTUiIHkxPSIzMzAuMDMiIHgyPSIxOS41MSIgeTI9IjM2LjgyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii4wNyIgc3RvcC1jb2xvcj0iI2NjYzljOCIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii4xNiIgc3RvcC1jb2xvcj0iIzk5OTQ5MiIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii4yNCIgc3RvcC1jb2xvcj0iIzZlNjc2NSIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii4zMiIgc3RvcC1jb2xvcj0iIzRkNDU0MiIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii40IiBzdG9wLWNvbG9yPSIjMzYyYzI5Ii8+CiAgICAgIDxzdG9wIG9mZnNldD0iLjQ2IiBzdG9wLWNvbG9yPSIjMjcxZDFhIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iLjUyIiBzdG9wLWNvbG9yPSIjMjMxODE1Ii8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPG1hc2sgaWQ9Im1hc2siIHg9Ii0xODkuNSIgeT0iLS41IiB3aWR0aD0iNTQ5IiBoZWlnaHQ9IjI3NCIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxyZWN0IGNsYXNzPSJjbHMtMTciIHg9Ii0xODkiIHdpZHRoPSI1NDgiIGhlaWdodD0iMjczIi8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxnIGNsYXNzPSJjbHMtMTkiPgogICAgPGcgY2xhc3M9ImNscy0xOCI+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMTAiIGQ9Ik0yOTguNzIsMTAxaDI4Ljc2bDExLjM2LTE3LjY3LTMxLjA5LTQ4LjgzaC01MS4yNWw0Mi4yMiw2Ni41WiIvPgogICAgICA8cGF0aCBjbGFzcz0iY2xzLTEwIiBkPSJNMzU5LDI3M3YtNTkuNWwtMzksNTkuNWgzOVoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy00IiBkPSJNMjgzLDI3M2gzN2wzOS01OS41aC00Mi42bC0zNS45Miw1NS42NiwyLjUyLDMuODRaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMTAiIGQ9Ik0yODAuNDgsMjY5LjE2bDM1LjkyLTU1LjY2aC03Mi4zOWwzNi40Nyw1NS42NloiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy04IiBkPSJNMjA2LDI3M2g3MmwyLjQ4LTMuODQtMzYuNDctNTUuNjYtMzguMDEsNTkuNVoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMzE2LjQsMjEzLjVoNDIuNmwtMjEuMTktMzMuMTctMjEuNDEsMzMuMTdaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTI3OCwyNzNoNWwtMi41Mi0zLjg0LTIuNDgsMy44NFoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy0xMiIgZD0iTTMwMS41LDEyMy41bC01Ny40OSw5MGg3Mi4zOWwyMS40MS0zMy4xNy0zNi4zMS01Ni44M1oiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy0xMSIgZD0iTTM1OSwyMTMuNXYtNjZsLTIxLjE5LDMyLjgzLDIxLjE5LDMzLjE3WiIvPgogICAgICA8cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik0zNTksMTQ3LjV2LTI0aC01Ny41bDM2LjMxLDU2LjgzLDIxLjE5LTMyLjgzWiIvPgogICAgICA8cGF0aCBjbGFzcz0iY2xzLTE2IiBkPSJNMzU5LDEyMy41di04LjVsLTguOTEtMTRoLTIyLjYxbC0xNC40OCwyMi41aDQ2WiIvPgogICAgICA8cGF0aCBjbGFzcz0iY2xzLTE2IiBkPSJNMzM4Ljg0LDgzLjMzbC0xMS4zNiwxNy42N2gyMi42MWwtMTEuMjUtMTcuNjdaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTM1OSwxMDF2LTQ5bC0yMC4xNiwzMS4zMywxMS4yNSwxNy42N2g4LjkxWiIvPgogICAgICA8cGF0aCBjbGFzcz0iY2xzLTE0IiBkPSJNMzU5LDExNXYtMTRoLTguOTFsOC45MSwxNFoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy0xNSIgZD0iTTM1OSw1MnYtMTcuNWgtNTEuMjVsMzEuMDksNDguODMsMjAuMTYtMzEuMzNaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTM1OSwzNC41VjBsLTUxLjI1LDM0LjVoNTEuMjVaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMTEiIGQ9Ik0xNDEsMjczaDI5bC0xNC40NS0yMS43MS0xNC41NSwyMS43MVoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy0xMyIgZD0iTTE3MCwyNzNoMzZsMzguMDEtNTkuNWgtNjMuMTFsLTI1LjM1LDM3Ljc5LDE0LjQ1LDIxLjcxWiIvPgogICAgICA8cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik0xODEsMTIzLjVsLTU0LjQsODQuMjgsMy44LDUuNzJoNTAuNWwyOS4yMy00My42LTI5LjEzLTQ2LjRaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTE0MSwyNzNoLTU2LjVsNi05LjMtMzIuNDEtNTAuMkwwLDEyMy41aDE4MWwtNTQuNCw4NC4yOCwzLjgsNS43Mmg1MC41bC0yNS4zNSwzNy43OS0xNC41NSwyMS43MVpNMjEwLjEzLDE2OS45bC0yOS4xMy00Ni40aDEyMC41bC01Ny40OSw5MGgtNi41MWwtMjcuMzctNDMuNlpNMzI3LjQ4LDEwMWwtMTQuNDgsMjIuNS0xNC4yOC0yMi41LTQyLjIyLTY2LjVoNTEuMjVsMzEuMDksNDguODMtMTEuMzYsMTcuNjdaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtOSIgZD0iTTE4MC45LDIxMy41aDU2LjZsLTI3LjM3LTQzLjYtMjkuMjMsNDMuNloiLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPg==);
10 | --deco2: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iX+WbvuWxgl8xIiBkYXRhLW5hbWU9IuWbvuWxgiAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDM5LjUgMTMwIj4KICA8ZGVmcz4KICAgIDxzdHlsZT4KICAgICAgLmNscy0xIHsKICAgICAgICBmaWxsOiAjN2RjOGY0OwogICAgICB9CgogICAgICAuY2xzLTEsIC5jbHMtMiwgLmNscy0zLCAuY2xzLTQsIC5jbHMtNSwgLmNscy02LCAuY2xzLTcsIC5jbHMtOCwgLmNscy05LCAuY2xzLTEwLCAuY2xzLTExLCAuY2xzLTEyLCAuY2xzLTEzIHsKICAgICAgICBzdHJva2Utd2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjODNkMWZlOwogICAgICB9CgogICAgICAuY2xzLTMgewogICAgICAgIGZpbGw6ICM2OGIxZGY7CiAgICAgIH0KCiAgICAgIC5jbHMtNCB7CiAgICAgICAgZmlsbDogdXJsKCNf5pyq5ZG95ZCN55qE5riQ5Y+YXzIpOwogICAgICB9CgogICAgICAuY2xzLTUgewogICAgICAgIGZpbGw6ICM0MzhlYmE7CiAgICAgIH0KCiAgICAgIC5jbHMtNiB7CiAgICAgICAgZmlsbDogIzlhZDlmZjsKICAgICAgfQoKICAgICAgLmNscy03IHsKICAgICAgICBmaWxsOiAjNWVhYWQ0OwogICAgICB9CgogICAgICAuY2xzLTggewogICAgICAgIGZpbGw6ICM4NGNiZjk7CiAgICAgIH0KCiAgICAgIC5jbHMtMTQgewogICAgICAgIG9wYWNpdHk6IC42OwogICAgICB9CgogICAgICAuY2xzLTkgewogICAgICAgIGZpbGw6ICM3ZWM5ZjU7CiAgICAgIH0KCiAgICAgIC5jbHMtMTAgewogICAgICAgIGZpbGw6ICNmZmY7CiAgICAgIH0KCiAgICAgIC5jbHMtMTUgewogICAgICAgIG1hc2s6IHVybCgjbWFzayk7CiAgICAgIH0KCiAgICAgIC5jbHMtMTEgewogICAgICAgIGZpbGw6ICMzOTgzYjA7CiAgICAgIH0KCiAgICAgIC5jbHMtMTIgewogICAgICAgIGZpbGw6ICM1NWEwY2M7CiAgICAgIH0KCiAgICAgIC5jbHMtMTMgewogICAgICAgIGZpbGw6ICNkZmYyZmY7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9Il/mnKrlkb3lkI3nmoTmuJDlj5hfMiIgZGF0YS1uYW1lPSLmnKrlkb3lkI3nmoTmuJDlj5ggMiIgeDE9IjAiIHkxPSI2NSIgeDI9IjQzOS41IiB5Mj0iNjUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iLjY4IiBzdG9wLWNvbG9yPSIjMjMxODE1Ii8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPG1hc2sgaWQ9Im1hc2siIHg9IjAiIHk9IjAiIHdpZHRoPSI0MzkuNSIgaGVpZ2h0PSIxMzAiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8cmVjdCBjbGFzcz0iY2xzLTQiIHdpZHRoPSI0MzkuNSIgaGVpZ2h0PSIxMzAiLz4KICAgIDwvbWFzaz4KICA8L2RlZnM+CiAgPGcgY2xhc3M9ImNscy0xNSI+CiAgICA8ZyBjbGFzcz0iY2xzLTE0Ij4KICAgICAgPHBhdGggY2xhc3M9ImNscy01IiBkPSJNMCwwdjQ1aDYxLjc5TDM0LDBIMFoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy0xMiIgZD0iTTAsNDV2ODVMNjEuNzksNDVIMFoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy03IiBkPSJNNjEuNzksNDVMMCwxMzBoMTAuNWw2MS04NWgtOS43MVoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy05IiBkPSJNNzEuNSw0NUwxMC41LDEzMGgxMjEuNWwtNjAuNS04NVoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNOTQuNSwwaC02MC41bDI3Ljc5LDQ1TDk0LjUsMFoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy02IiBkPSJNMjAxLDBoLTEwNi41bC0zMi43MSw0NWgxNjkuMTVMMjAxLDBaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTIxMy41LDEzMGwzNy41My01NC44MS0yMC4wOC0zMC4xOUg3MS41bDYwLjUsODVoODEuNVoiLz4KICAgICAgPHBhdGggY2xhc3M9ImNscy0xMyIgZD0iTTMwMi41LDBoLTEwMS41bDI5Ljk0LDQ1aDQwLjc1TDMwMi41LDBaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTIzMC45NCw0NWwyMC4wOCwzMC4xOSwyMC42Ni0zMC4xOWgtNDAuNzVaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMTEiIGQ9Ik0yMTMuNSwxMzBoNzRsLTM2LjQ3LTU0LjgxLTM3LjUzLDU0LjgxWiIvPgogICAgICA8cGF0aCBjbGFzcz0iY2xzLTExIiBkPSJNMjg3LjUsMTMwaDI0LjVsNjEuMTQtODVoLTEwMS40NGwtMjAuNjYsMzAuMTksMzYuNDcsNTQuODFaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTQzOS41LDEzMGwtNjYuMzYtODUtNjEuMTQsODVoMTI3LjVaIi8+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMTAiIGQ9Ik0zMzgsMGgtMzUuNWwtMzAuODEsNDVoMTAxLjQ0TDMzOCwwWiIvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+);
11 | }
12 |
13 | body {
14 | background-color: #fff;
15 | overflow: hidden;
16 | font-family: BlueakaBeta2GBK, Inter, '-apple-system', BlinkMacSystemFont, 'PingFang SC',
17 | 'Hiragino Sans GB', 'noto sans', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial,
18 | sans-serif !important;
19 | }
20 |
21 | a {
22 | text-decoration: unset;
23 | color: unset;
24 | }
25 |
26 | #app {
27 | width: 100vw;
28 | height: 100vh;
29 | display: flex;
30 | flex-direction: column;
31 | }
32 |
33 | @media only screen and (max-width: 400px) {
34 | .arco-page-header-wrapper .arco-page-header-header {
35 | justify-content: center;
36 | }
37 | }
38 |
39 | .arco-page-header-main .arco-page-header-title {
40 | white-space: normal;
41 | text-align: center;
42 | }
43 |
44 | .arco-modal-footer,
45 | .arco-modal-body {
46 | text-align: center !important;
47 | }
48 |
49 | .arco-modal {
50 | width: auto !important;
51 | }
52 |
53 | .arco-modal-header .arco-modal-title {
54 | height: 100%;
55 | width: auto;
56 | position: relative;
57 | flex: unset !important;
58 | font-size: 20px;
59 | color: #003153;
60 | }
61 |
62 | .arco-modal-header .arco-modal-title:after {
63 | content: '';
64 | position: absolute;
65 | width: 100%;
66 | height: 5px;
67 | background: #ffe433;
68 | bottom: 0;
69 | }
70 |
71 | .arco-modal-header {
72 | justify-content: center;
73 | }
74 |
75 | .arco-modal-close-btn {
76 | right: 15px;
77 | position: absolute;
78 | }
79 |
80 | .arco-btn {
81 | transform: skewX(-10deg);
82 | border-radius: 4px !important;
83 | }
84 |
85 | .arco-modal-body {
86 | padding: 75px 100px !important;
87 | font-size: 16px !important;
88 | max-width: 240px;
89 |
90 | background-size: contain;
91 | background: #f0f0f0 var(--deco1) no-repeat right !important;
92 | border-radius: 0 0 var(--border-radius-large) var(--border-radius-large) !important;
93 | }
94 |
95 | .arco-modal-header {
96 | background-color: #f1f2f4;
97 | background-image: var(--deco2);
98 | border-radius: var(--border-radius-large) var(--border-radius-large) 0 0;
99 | background-repeat: no-repeat;
100 | background-position: left;
101 | background-size: contain;
102 | }
103 |
104 | .arco-modal-footer {
105 | background: #f0f0f0;
106 | border-radius: 0 0 var(--border-radius-large) var(--border-radius-large);
107 | border-top: unset !important;
108 | padding: 24px 32px !important;
109 | }
110 |
111 | .arco-btn-secondary {
112 | background: #daeef5 !important;
113 | color: #003153 !important;
114 | filter: drop-shadow(0px 1px 2px #0004);
115 | padding: 20px 40px !important;
116 | font-size: 18px !important;
117 | transition: transform 0.1s !important;
118 | }
119 |
120 | .arco-btn-primary {
121 | background: #77deff !important;
122 | color: #003153 !important;
123 | filter: drop-shadow(0px 1px 2px #0004);
124 | padding: 20px 40px !important;
125 | font-size: 18px !important;
126 | transition: transform 0.1s !important;
127 | }
128 |
129 | .arco-btn-primary:active,
130 | .arco-btn-secondary:active {
131 | transform: scale(0.9) skewX(-10deg);
132 | }
133 |
134 | .arco-modal {
135 | border-radius: var(--border-radius-large) !important;
136 | }
137 |
138 | .arco-modal-header .arco-icon {
139 | font-size: 30px;
140 | vertical-align: -8px !important;
141 | transition: transform 0.1s !important;
142 | }
143 |
144 | .arco-modal-header .arco-icon:active {
145 | transform: scale(0.9);
146 | }
147 |
148 | #curtain {
149 | position: absolute;
150 | top: 0;
151 | left: 0;
152 | z-index: 9998;
153 | width: 100%;
154 | height: 100%;
155 | animation-name: example;
156 | animation-duration: 3s;
157 | display: none;
158 | }
159 |
160 | @keyframes example {
161 | 0% {
162 | background-color: transparent;
163 | }
164 | 25% {
165 | background-color: #000;
166 | }
167 | 50% {
168 | background-color: #000;
169 | }
170 | 75% {
171 | background-color: #000;
172 | }
173 | 100% {
174 | background-color: transparent;
175 | }
176 | }
177 |
178 | .zoom-modal-enter-from,.zoom-modal-appear-from {
179 | transform: scale(1) translateY(100%)!important;
180 | opacity: 0
181 |
182 | }
183 |
184 | .zoom-modal-enter-to,.zoom-modal-appear-to {
185 | transform: scale(1) translateY(0);
186 | opacity: 1
187 | }
188 |
189 | .zoom-modal-enter-active,.zoom-modal-appear-active {
190 | transition: opacity .4s cubic-bezier(.3,1.3,.3,1),transform .4s cubic-bezier(.3,1,.3,1) !important;
191 | }
192 |
193 | #background canvas {
194 | height: max(100vh, 100vw * (1440 / 2560));
195 | width: max(100vh / (1440 / 2560), 100vw);
196 | }
--------------------------------------------------------------------------------
/src/components/Background.vue:
--------------------------------------------------------------------------------
1 |
43 |
44 |
45 |
46 |

47 |

48 |
49 |
50 |
51 |
99 |
--------------------------------------------------------------------------------
/src/components/Banner.vue:
--------------------------------------------------------------------------------
1 |
111 |
112 |
113 |
118 |
119 |
120 |
154 |
155 |
187 |
--------------------------------------------------------------------------------
/src/components/Contact.vue:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
22 |
23 |
24 |
85 |
--------------------------------------------------------------------------------
/src/components/Cursor.vue:
--------------------------------------------------------------------------------
1 |
74 |
75 |
76 |
85 |
86 |
87 |
164 |
165 |
213 |
--------------------------------------------------------------------------------
/src/components/Footer.vue:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
39 |
40 |
41 |
192 |
--------------------------------------------------------------------------------
/src/components/Level.vue:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
Lv.
14 |
{{ config.level }}
15 |
16 |
17 |
{{ config.author }}
18 |
19 |
25 |
26 |
27 | {{ exp >= nextExp ? 'MAX' : exp + '/' + nextExp }}
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
152 |
--------------------------------------------------------------------------------
/src/components/Loading.vue:
--------------------------------------------------------------------------------
1 |
33 |
34 |
35 |
36 |
37 |
![]()
38 |
39 |
![]()
40 |
![]()
41 |
![]()
42 |
![]()
43 |
44 |

45 |
46 |
47 |
48 |
connecting...
49 |
{{ Math.floor(prop.percent * 100) + '%' }}
50 |
51 |
52 |
53 |
54 |
133 |
--------------------------------------------------------------------------------
/src/components/Task.vue:
--------------------------------------------------------------------------------
1 |
27 |
28 |
29 |
30 |
36 |
37 |
38 |
39 |
43 |
44 |
45 |
46 |
47 |

48 |
49 |
50 |
51 |
52 |
173 |
--------------------------------------------------------------------------------
/src/components/Toolbox.vue:
--------------------------------------------------------------------------------
1 |
71 |
72 |
73 |
127 |
128 |
129 |
208 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import './assets/index.css'
2 | import '@arco-design/web-vue/dist/arco.css'
3 |
4 | import { createApp } from 'vue'
5 | import { Modal } from '@arco-design/web-vue'
6 | import ArcoVue from '@arco-design/web-vue'
7 | import ArcoVueIcon from '@arco-design/web-vue/es/icon'
8 | import App from './App.vue'
9 | import { registerSW } from 'virtual:pwa-register'
10 |
11 | import { css } from './assets/font/BlueakaBeta2GBK-DemiBold.ttf'
12 | import { css as css2 } from './assets/font/BlueakaBeta2GBK-Bold.ttf'
13 | // console.log(css.family, css.weight);
14 | // console.log(css2.family, css2.weight);
15 |
16 | const app = createApp(App)
17 | app.use(ArcoVue)
18 | app.use(ArcoVueIcon)
19 |
20 | app.mount('#app')
21 |
22 | if ('serviceWorker' in navigator) {
23 | const updateSW = registerSW({
24 | onNeedRefresh() {
25 | Modal.open({
26 | title: '通知',
27 | content: '老师,站点已更新,刷新即可访问最新内容!',
28 | onOk: () => {
29 | updateSW(true)
30 | }
31 | })
32 | }
33 | })
34 | }
35 |
36 | window.l2d_complete = false
37 |
38 | setInterval(() => {
39 | document.querySelectorAll('a[href]:not(.tag)').forEach((link) => {
40 | link.classList.add('tag')
41 | link.addEventListener('click', async (e) => {
42 | const url = link.getAttribute('href')
43 | e.preventDefault()
44 | document.querySelector('#curtain').style.display = 'block'
45 | setTimeout(() => {
46 | let a = document.createElement('a')
47 | a.href = url
48 | a.target = '_blank'
49 | a.click()
50 | }, 900)
51 | setTimeout(() => (document.querySelector('#curtain').style.display = ''), 3000)
52 | })
53 | })
54 | }, 1000)
55 |
56 | import * as PIXI from 'pixi.js'
57 |
58 | // 这里是学生的l2d载入位置,想要修改自己喜欢的学生可以改这里
59 | const hina_swimsuit = '/l2d/hina_swimsuit/CH0063_home'
60 | const aris = '/l2d/aris/Aris_home'
61 | /*
62 | * students 是学生l2d的位置
63 | * l2dBGM 是学生背景音乐的位置
64 | * */
65 | export const students = [hina_swimsuit, aris]
66 | /*——————————————————————————————————————————————————*/
67 |
68 | // 加载大厅L2D文件
69 | ;(async function () {
70 | let a = 0
71 | for (let i of students) {
72 | PIXI.Assets.add({ alias: 'skeleton' + a, src: `${i}.skel` })
73 | PIXI.Assets.add({ alias: 'atlas' + a, src: `${i}.atlas` })
74 | await PIXI.Assets.load(['skeleton' + a, 'atlas' + a])
75 | a++
76 | }
77 | window.l2d_complete = true
78 | })()
79 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { fileURLToPath, URL } from 'node:url'
2 |
3 | import { load } from 'js-yaml'
4 | import fs from 'fs'
5 | const config = load(fs.readFileSync('_config.yaml', 'utf8'))
6 |
7 | import { defineConfig } from 'vite'
8 | import vue from '@vitejs/plugin-vue'
9 | import vueJsx from '@vitejs/plugin-vue-jsx'
10 | import viteCompression from 'vite-plugin-compression'
11 | import viteImagemin from 'vite-plugin-imagemin'
12 | import { VitePWA } from 'vite-plugin-pwa'
13 | import { createHtmlPlugin } from 'vite-plugin-html'
14 | import Font from 'vite-plugin-font'
15 | import yaml from '@rollup/plugin-yaml'
16 |
17 | // https://vitejs.dev/config/
18 | export default defineConfig({
19 | build: {
20 | assetsInlineLimit: 0,
21 | minify: 'esbuild',
22 | chunkSizeWarningLimit: 500,
23 | rollupOptions: {
24 | output: {
25 | manualChunks(id) {
26 | if (id.includes('node_modules')) {
27 | return id.toString().split('node_modules/')[1].split('/')[0].toString()
28 | }
29 | }
30 | }
31 | }
32 | },
33 | plugins: [
34 | vue(),
35 | vueJsx(),
36 | Font.vite({
37 | css: {
38 | fontFamily: 'BlueakaBeta2GBK'
39 | }
40 | }),
41 | createHtmlPlugin({
42 | inject: {
43 | data: {
44 | title: config.title,
45 | favicon: config.favicon,
46 | themeColor: config.manifest.theme_color,
47 | description: config.description,
48 | keywords: config.keywords
49 | }
50 | }
51 | }),
52 | viteImagemin({
53 | gifsicle: {
54 | optimizationLevel: 7,
55 | interlaced: false
56 | },
57 | optipng: {
58 | optimizationLevel: 3
59 | },
60 | mozjpeg: {
61 | quality: 50
62 | },
63 | pngquant: {
64 | quality: [0.9, 1],
65 | speed: 4
66 | },
67 | svgo: {
68 | plugins: [
69 | {
70 | name: 'removeViewBox'
71 | },
72 | {
73 | name: 'removeEmptyAttrs',
74 | active: false
75 | }
76 | ]
77 | }
78 | }),
79 | VitePWA({
80 | mode: 'production',
81 | base: '/',
82 | registerType: 'prompt',
83 | injectRegister: 'auto',
84 | workbox: {
85 | runtimeCaching: [
86 | {
87 | urlPattern: /.*/i,
88 | handler: 'CacheFirst',
89 | options: {
90 | cacheName: 'ba-cache',
91 | expiration: {
92 | maxEntries: 10,
93 | maxAgeSeconds: 60 * 60 * 24 * 30
94 | },
95 | cacheableResponse: {
96 | statuses: [0, 200]
97 | }
98 | }
99 | }
100 | ]
101 | },
102 | manifest: config.manifest
103 | }),
104 | viteCompression({
105 | threshold: 10240 // the unit is Bytes
106 | }),
107 | yaml()
108 | ],
109 | resolve: {
110 | alias: {
111 | '@': fileURLToPath(new URL('./src', import.meta.url))
112 | }
113 | }
114 | })
115 |
--------------------------------------------------------------------------------