Compare commits
21 Commits
main
...
eb02d1ee6f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb02d1ee6f | ||
|
|
60503eae47 | ||
|
|
52ef5909c1 | ||
|
|
0284f6aa71 | ||
|
|
0e272ffd99 | ||
|
|
e1e2ab4701 | ||
|
|
4f55c00f86 | ||
|
|
1d07bdfc46 | ||
|
|
52d6a0ca8f | ||
|
|
f8dd720d4d | ||
|
|
d088c1a862 | ||
|
|
a711fcf3ed | ||
|
|
05e02de3db | ||
|
|
bff0109cc5 | ||
|
|
54c04f65c2 | ||
|
|
660739530b | ||
|
|
c94e9e7433 | ||
|
|
c06cd9ea62 | ||
|
|
2666983f89 | ||
|
|
22fa5d755a | ||
|
|
f40698d63e |
@@ -1,2 +0,0 @@
|
|||||||
node_modules
|
|
||||||
npm-debug.log
|
|
||||||
11
.github/dependabot.yml
vendored
@@ -1,11 +0,0 @@
|
|||||||
# To get started with Dependabot version updates, you'll need to specify which
|
|
||||||
# package ecosystems to update and where the package manifests are located.
|
|
||||||
# Please see the documentation for all configuration options:
|
|
||||||
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
|
|
||||||
|
|
||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: "" # See documentation for possible values
|
|
||||||
directory: "/" # Location of package manifests
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
||||||
29
.github/workflows/deploy.yml
vendored
@@ -1,29 +0,0 @@
|
|||||||
name: Build and Deploy
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [main]
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
jobs:
|
|
||||||
build-and-deploy:
|
|
||||||
concurrency: ci-${{ github.ref }} # Recommended if you intend to make multiple deployments in quick succession.
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout 🛎️
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install pnpm
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built.
|
|
||||||
run: |
|
|
||||||
pnpm install
|
|
||||||
pnpm xlsx2json
|
|
||||||
pnpm build
|
|
||||||
|
|
||||||
- name: Deploy 🚀
|
|
||||||
uses: JamesIves/github-pages-deploy-action@v4
|
|
||||||
with:
|
|
||||||
folder: template # The folder the action should deploy.
|
|
||||||
31
.github/workflows/node.js.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
|
||||||
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
|
||||||
|
|
||||||
|
name: Node.js CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
node-version: [14.x, 16.x]
|
||||||
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
|
uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.node-version }}
|
||||||
|
cache: 'npm'
|
||||||
|
- run: npm install
|
||||||
|
- run: npm run build --if-present
|
||||||
|
- run: npm test
|
||||||
5
.gitignore
vendored
@@ -107,7 +107,4 @@ utils/xlsxTransform-*
|
|||||||
|
|
||||||
/.idea
|
/.idea
|
||||||
|
|
||||||
__localStorage.json
|
__localStorage.json
|
||||||
|
|
||||||
template/public
|
|
||||||
public/data
|
|
||||||
29
.vscode/launch.json
vendored
@@ -4,15 +4,40 @@
|
|||||||
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
|
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Launch Chrome",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "pwa-chrome",
|
||||||
|
"url": "http://127.0.0.1:8000/public/index.html",
|
||||||
|
"webRoot": "${workspaceFolder}"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "node",
|
"type": "node",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"name": "test",
|
"name": "test",
|
||||||
"program": "${workspaceFolder}/test",
|
"program": "${workspaceFolder}/test",
|
||||||
"skipFiles": [
|
"skipFiles": [
|
||||||
"<node_internals>/**",
|
"<node_internals>/**"
|
||||||
"**/node_modumes/**"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "xlsx2json",
|
||||||
|
"program": "${workspaceFolder}/node_modules/v-transform/src/index.js",
|
||||||
|
"args": ["transform", "jobs/xlsx2json/config.json"],
|
||||||
|
"skipFiles": [
|
||||||
|
"<node_internals>/**"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Attach by Process ID",
|
||||||
|
"processId": "${command:PickProcess}",
|
||||||
|
"request": "attach",
|
||||||
|
"skipFiles": [
|
||||||
|
"<node_internals>/**"
|
||||||
|
],
|
||||||
|
"type": "node"
|
||||||
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
15
Dockerfile
@@ -1,15 +0,0 @@
|
|||||||
FROM node:alpine
|
|
||||||
|
|
||||||
ENV NPM_CONFIG_LOGLEVEL info
|
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
|
||||||
|
|
||||||
COPY package*.json ./
|
|
||||||
|
|
||||||
RUN npm install
|
|
||||||
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
CMD ["yarn", "dev"]
|
|
||||||
|
|
||||||
@@ -14,22 +14,38 @@
|
|||||||
<summary><strong>网页版</strong></summary>
|
<summary><strong>网页版</strong></summary>
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
1. 下载项目代码。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. 下载项目代码
|
|
||||||
git clone https://github.com/VickScarlet/lifeRestart.git my-project
|
git clone https://github.com/VickScarlet/lifeRestart.git my-project
|
||||||
|
|
||||||
# 2. 进入目录安装依赖
|
|
||||||
cd my-project
|
cd my-project
|
||||||
pnpm install
|
|
||||||
|
|
||||||
# 3. 转换XLSX表
|
|
||||||
pnpm xlsx2json
|
|
||||||
|
|
||||||
# 4. 启动本地开发服务器
|
|
||||||
pnpm dev
|
|
||||||
```
|
```
|
||||||
|
|
||||||
启动完成后打开浏览器访问 [http://localhost:5173](http://localhost:5173)。
|
2. 进入目录安装依赖。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yarn install
|
||||||
|
```
|
||||||
|
|
||||||
|
或者
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
3. 启动本地服务器。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yarn dev
|
||||||
|
```
|
||||||
|
|
||||||
|
或者
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
4. 启动完成后会自动打开浏览器访问 [http://localhost:8081/view/index.html](http://localhost:8081/view/index.html)。
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|||||||
37
README.md
@@ -14,23 +14,38 @@ English | [简体中文](./README-zh_CN.md)
|
|||||||
<summary><strong>Web Version</strong></summary>
|
<summary><strong>Web Version</strong></summary>
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
1. Clone project code.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Clone project code.
|
|
||||||
git clone git@github.com:VickScarlet/lifeRestart.git my-project
|
git clone git@github.com:VickScarlet/lifeRestart.git my-project
|
||||||
cd my-project
|
cd my-project
|
||||||
|
|
||||||
# 2. Installation dependence.
|
|
||||||
pnpm install
|
|
||||||
|
|
||||||
# 3. Transform XLSX
|
|
||||||
pnpm xlsx2json
|
|
||||||
|
|
||||||
# 4. Start local dev server.
|
|
||||||
pnpm dev
|
|
||||||
```
|
```
|
||||||
|
|
||||||
After the startup is complete, open a browser and visit [http://localhost:5173](http://localhost:5173).
|
2. Installation dependence.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yarn install
|
||||||
|
```
|
||||||
|
|
||||||
|
Or
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Start local server.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yarn dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Or
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
4. After the startup is complete, will automatically open a browser and visit [http://localhost:8081/view/index.html](http://localhost:8081/view/index.html).
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|||||||
@@ -2,7 +2,10 @@
|
|||||||
<html lang="{{ site.lang | default: "en-US" }}">
|
<html lang="{{ site.lang | default: "en-US" }}">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
|
<script data-ad-client="ca-pub-9857163863537600" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||||
{% seo %}
|
{% seo %}
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com">
|
||||||
|
<link rel="preload" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap" as="style" type="text/css" crossorigin>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#157878">
|
<meta name="theme-color" content="#157878">
|
||||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||||
@@ -15,7 +18,8 @@
|
|||||||
<header class="page-header" role="banner">
|
<header class="page-header" role="banner">
|
||||||
<h1 class="project-name">{{ page.title | default: site.title | default: site.github.repository_name }}</h1>
|
<h1 class="project-name">{{ page.title | default: site.title | default: site.github.repository_name }}</h1>
|
||||||
<h2 class="project-tagline">{{ page.description | default: site.description | default: site.github.project_tagline }}</h2>
|
<h2 class="project-tagline">{{ page.description | default: site.description | default: site.github.project_tagline }}</h2>
|
||||||
<a href="/public/" class="btn">RESTART</a>
|
<a href="/view/" class="btn">RESTART</a>
|
||||||
|
<a href="/view/test.html" class="btn">Source Version</a>
|
||||||
{% if site.github.is_project_page %}
|
{% if site.github.is_project_page %}
|
||||||
<a href="{{ site.github.repository_url }}" class="btn">View on GitHub</a>
|
<a href="{{ site.github.repository_url }}" class="btn">View on GitHub</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
19
jobs/xlsx2json/config.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"source": [
|
||||||
|
"../../data/specialthanks-afd.xlsx",
|
||||||
|
"../../data/specialthanks-dun.xlsx"
|
||||||
|
],
|
||||||
|
"target": "../../public/data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "../../data/zh-cn",
|
||||||
|
"target": "../../public/data/zh-cn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "../../data/en-us",
|
||||||
|
"target": "../../public/data/en-us"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,10 +1,12 @@
|
|||||||
{
|
{
|
||||||
// See http://go.microsoft.com/fwlink/?LinkId=759670
|
// See http://go.microsoft.com/fwlink/?LinkId=759670
|
||||||
// for the documentation about the jsconfig.json format
|
// for the documentation about the jsconfig.json format
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"module": "esnext",
|
"target": "es5"
|
||||||
"target": "es6",
|
},
|
||||||
},
|
"exclude": [
|
||||||
"include":["src", "repl", "vite.config.js"],
|
"node_modules",
|
||||||
"exclude": ["node_modules", "public", "view"]
|
"public",
|
||||||
|
"view"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 652 B |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 31 KiB |
@@ -1 +0,0 @@
|
|||||||
{"textureName":"images/texture/texture_1.png","positionVariance":{"0":0,"1":0,"2":0},"minVerticalVelocity":-100,"minVerticalEndRadian":0,"minStartSize":0,"minStartRadius":0,"minRotateSpeed":0,"minHorizontalVelocity":100,"minHorizontalEndRadian":0,"minEndSize":18.55,"minEndRadius":218.75,"minColor":{"0":0.15,"1":0.92,"2":0.91,"3":0.6000000238418579},"maxVerticalVelocity":100,"maxVerticalEndRadian":0,"maxStartSize":2.04,"maxStartRadius":0,"maxRotateSpeed":0,"maxPartices":400,"maxHorizontalVelocity":100,"maxHorizontalEndRadian":0,"maxEndSize":24.35,"maxEndRadius":84.82,"maxColor":{"0":0.57,"1":1,"2":0,"3":1},"gravity":{"0":0,"1":0,"2":0},"endVelocity":2,"emitterVelocitySensitivity":56.89,"duration":9.52,"colorComponentInter":true,"blendState":0,"ageAddScale":10,"backColor":"#ffffff","textureFileName":"comp\\clip_num.png","textureCount":1,"minHorizontalStartRadian":0,"maxHorizontalStartRadian":0,"minVerticalStartRadian":0,"maxVerticalStartRadian":0,"emitterType":"null","emissionRate":0,"sphereEmitterRadius":1,"sphereEmitterVelocity":0,"sphereEmitterVelocityAddVariance":0,"ringEmitterRadius":30,"ringEmitterVelocity":0,"ringEmitterVelocityAddVariance":0,"ringEmitterUp":2,"minStartColor":{"0":0.5,"1":0.5,"2":0.5,"3":0.2},"maxStartColor":{"0":1,"1":1,"2":1,"3":1},"minEndColor":{"0":0,"1":0,"2":0,"3":0.08},"maxEndColor":{"0":1,"1":1,"2":1,"3":1},"pointEmitterPosition":{"0":0,"1":0,"2":0},"pointEmitterPositionVariance":{"0":0,"1":0,"2":0},"pointEmitterVelocity":{"0":0,"1":0,"2":0},"pointEmitterVelocityAddVariance":{"0":0,"1":0,"2":0},"boxEmitterCenterPosition":{"0":0,"1":0,"2":0},"boxEmitterSize":{"0":0,"1":0,"2":0},"boxEmitterVelocity":{"0":0,"1":0,"2":0},"boxEmitterVelocityAddVariance":{"0":0,"1":0,"2":0},"sphereEmitterCenterPosition":{"0":0,"1":0,"2":0},"ringEmitterCenterPosition":{"0":0,"1":0,"2":0},"useEndRadian":true,"disableColor":false}
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"x":0,
|
"x":0,
|
||||||
"type":"View",
|
"type":"View",
|
||||||
"selectedBox":93,
|
"selectedBox":1,
|
||||||
"selecteID":94,
|
"selecteID":83,
|
||||||
"props":{"y":1218,"x":562,"width":1125,"sceneColor":"#000000","sceneBg":"laya/views/view/CyberTheme/CyberMain.png","runtime":"Laya.runtime.ViewBase","height":2436,"anchorY":0.5,"anchorX":0.5},
|
"props":{"y":1218,"x":562,"width":1125,"sceneColor":"#000000","sceneBg":"laya/views/view/CyberTheme/CyberMain.png","runtime":"Laya.runtime.ViewBase","height":2436,"anchorY":0.5,"anchorX":0.5},
|
||||||
"nodeParent":-1,
|
"nodeParent":-1,
|
||||||
"label":"View",
|
"label":"View",
|
||||||
@@ -18,13 +18,14 @@
|
|||||||
"props":{"var":"imgBg","skin":"images/background/background_1@3x.png","name":"imgBg","centerY":0,"centerX":0},
|
"props":{"var":"imgBg","skin":"images/background/background_1@3x.png","name":"imgBg","centerY":0,"centerX":0},
|
||||||
"nodeParent":1,
|
"nodeParent":1,
|
||||||
"label":"Image(imgBg)",
|
"label":"Image(imgBg)",
|
||||||
"isOpen":false,
|
"isOpen":true,
|
||||||
"isDirectory":true,
|
"isDirectory":true,
|
||||||
"isAniNode":true,
|
"isAniNode":true,
|
||||||
"hasChild":true,
|
"hasChild":true,
|
||||||
"compId":67,
|
"compId":67,
|
||||||
"child":[
|
"child":[
|
||||||
{
|
{
|
||||||
|
"x":30,
|
||||||
"type":"Animation",
|
"type":"Animation",
|
||||||
"props":{"y":0,"x":0,"width":1125,"source":"view/CyberTheme/animation/jumpBackground.ani","interval":80,"height":2436,"blendMode":"lighter","autoPlay":true,"alpha":0.3},
|
"props":{"y":0,"x":0,"width":1125,"source":"view/CyberTheme/animation/jumpBackground.ani","interval":80,"height":2436,"blendMode":"lighter","autoPlay":true,"alpha":0.3},
|
||||||
"nodeParent":67,
|
"nodeParent":67,
|
||||||
@@ -130,7 +131,7 @@
|
|||||||
{
|
{
|
||||||
"x":15,
|
"x":15,
|
||||||
"type":"Label",
|
"type":"Label",
|
||||||
"props":{"text":"UI_Cyber_Theme_Art_Design","right":50,"fontSize":48,"font":"方正像素12","color":"#00fffd","bottom":30,"anchorY":0.5,"anchorX":0.5},
|
"props":{"text":"UI_Cyber_Theme_Art_Design","right":50,"fontSize":48,"font":"方正像素12","color":"#00fffd","centerY":1165,"anchorY":0.5,"anchorX":0.5},
|
||||||
"nodeParent":1,
|
"nodeParent":1,
|
||||||
"label":"Label",
|
"label":"Label",
|
||||||
"isDirectory":false,
|
"isDirectory":false,
|
||||||
@@ -473,13 +474,14 @@
|
|||||||
"props":{"y":0,"x":1100,"width":1,"top":0,"right":0,"height":1},
|
"props":{"y":0,"x":1100,"width":1,"top":0,"right":0,"height":1},
|
||||||
"nodeParent":1,
|
"nodeParent":1,
|
||||||
"label":"Box",
|
"label":"Box",
|
||||||
"isOpen":false,
|
"isOpen":true,
|
||||||
"isDirectory":true,
|
"isDirectory":true,
|
||||||
"isAniNode":true,
|
"isAniNode":true,
|
||||||
"hasChild":true,
|
"hasChild":true,
|
||||||
"compId":84,
|
"compId":84,
|
||||||
"child":[
|
"child":[
|
||||||
{
|
{
|
||||||
|
"x":30,
|
||||||
"type":"Box",
|
"type":"Box",
|
||||||
"props":{"y":200,"x":-200,"width":225,"var":"btnAchievement","runtime":"Laya.runtime.ScaleButton","name":"btnAchievement","height":90,"anchorY":0.5,"anchorX":0.5},
|
"props":{"y":200,"x":-200,"width":225,"var":"btnAchievement","runtime":"Laya.runtime.ScaleButton","name":"btnAchievement","height":90,"anchorY":0.5,"anchorX":0.5},
|
||||||
"nodeParent":84,
|
"nodeParent":84,
|
||||||
@@ -548,13 +550,14 @@
|
|||||||
"props":{"width":1,"left":0,"height":1,"bottom":0},
|
"props":{"width":1,"left":0,"height":1,"bottom":0},
|
||||||
"nodeParent":1,
|
"nodeParent":1,
|
||||||
"label":"Box",
|
"label":"Box",
|
||||||
"isOpen":false,
|
"isOpen":true,
|
||||||
"isDirectory":true,
|
"isDirectory":true,
|
||||||
"isAniNode":true,
|
"isAniNode":true,
|
||||||
"hasChild":true,
|
"hasChild":true,
|
||||||
"compId":85,
|
"compId":85,
|
||||||
"child":[
|
"child":[
|
||||||
{
|
{
|
||||||
|
"x":30,
|
||||||
"type":"Box",
|
"type":"Box",
|
||||||
"props":{"y":-175,"x":100,"width":160,"var":"btnGithub","runtime":"Laya.runtime.ScaleButton","name":"btnGithub","height":160,"anchorY":0.5,"anchorX":0.5},
|
"props":{"y":-175,"x":100,"width":160,"var":"btnGithub","runtime":"Laya.runtime.ScaleButton","name":"btnGithub","height":160,"anchorY":0.5,"anchorX":0.5},
|
||||||
"nodeParent":85,
|
"nodeParent":85,
|
||||||
@@ -579,6 +582,7 @@
|
|||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"x":30,
|
||||||
"type":"Box",
|
"type":"Box",
|
||||||
"props":{"y":-355,"x":100,"width":160,"var":"btnDiscord","runtime":"Laya.runtime.ScaleButton","name":"btnDiscord","height":160,"anchorY":0.5,"anchorX":0.5},
|
"props":{"y":-355,"x":100,"width":160,"var":"btnDiscord","runtime":"Laya.runtime.ScaleButton","name":"btnDiscord","height":160,"anchorY":0.5,"anchorX":0.5},
|
||||||
"nodeParent":85,
|
"nodeParent":85,
|
||||||
@@ -602,117 +606,6 @@
|
|||||||
]
|
]
|
||||||
}]
|
}]
|
||||||
}]
|
}]
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"right":0,"bottom":0},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":88,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":-300,"x":-100,"width":110,"runtime":"Laya.runtime.ScaleButton","height":110,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":88,
|
|
||||||
"label":"Box",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":90,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":110,"var":"btnSaveLoad","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","height":110,"centerY":0,"centerX":0,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":90,
|
|
||||||
"label":"Box(btnSaveLoad)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":91,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Image",
|
|
||||||
"props":{"width":80,"skin":"images/icons/icon_save.png","height":80,"centerY":0,"centerX":0},
|
|
||||||
"nodeParent":91,
|
|
||||||
"label":"Image",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":92,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":-175,"x":-100,"width":110,"runtime":"Laya.runtime.ScaleButton","height":110,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":88,
|
|
||||||
"label":"Box",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":89,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":110,"var":"btnThemes","runtime":"Laya.runtime.ColorfulBox","name":"btnThemes","height":110,"centerY":0,"centerX":0,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":89,
|
|
||||||
"label":"Box(btnThemes)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":86,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Image",
|
|
||||||
"props":{"width":90,"skin":"images/icons/icon_themes.png","height":90,"centerY":0,"centerX":0},
|
|
||||||
"nodeParent":86,
|
|
||||||
"label":"Image",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":87,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"x":572,"var":"banner","centerX":0,"bottom":100,"anchorY":1,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(banner)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":93,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"UI_Banner","fontSize":40,"font":"方正像素12","color":"#00fffd"},
|
|
||||||
"nodeParent":93,
|
|
||||||
"label":"Label",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":94,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}],
|
}],
|
||||||
"animations":[
|
"animations":[
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"x":0,
|
"x":0,
|
||||||
"type":"View",
|
"type":"View",
|
||||||
"selectedBox":88,
|
"selectedBox":14,
|
||||||
"selecteID":153,
|
"selecteID":13,
|
||||||
"props":{"width":1125,"sceneColor":"#000000","sceneBg":"laya/views/view/CyberTheme/CyberTrajectory.png","runtime":"Laya.runtime.ViewBase","height":2436},
|
"props":{"width":1125,"sceneColor":"#000000","sceneBg":"laya/views/view/CyberTheme/CyberTrajectory.png","runtime":"Laya.runtime.ViewBase","height":2436},
|
||||||
"nodeParent":-1,
|
"nodeParent":-1,
|
||||||
"label":"View",
|
"label":"View",
|
||||||
@@ -550,13 +550,14 @@
|
|||||||
"props":{"right":0,"left":0,"height":1,"bottom":-1},
|
"props":{"right":0,"left":0,"height":1,"bottom":-1},
|
||||||
"nodeParent":1,
|
"nodeParent":1,
|
||||||
"label":"Box",
|
"label":"Box",
|
||||||
"isOpen":false,
|
"isOpen":true,
|
||||||
"isDirectory":true,
|
"isDirectory":true,
|
||||||
"isAniNode":true,
|
"isAniNode":true,
|
||||||
"hasChild":true,
|
"hasChild":true,
|
||||||
"compId":14,
|
"compId":14,
|
||||||
"child":[
|
"child":[
|
||||||
{
|
{
|
||||||
|
"x":30,
|
||||||
"type":"Button",
|
"type":"Button",
|
||||||
"props":{"y":-155,"width":500,"var":"btnSummary","skin":"images/button/button_main@3x.png","name":"btnSummary","label":"UI_Goto_Summary","centerX":0},
|
"props":{"y":-155,"width":500,"var":"btnSummary","skin":"images/button/button_main@3x.png","name":"btnSummary","label":"UI_Goto_Summary","centerX":0},
|
||||||
"nodeParent":14,
|
"nodeParent":14,
|
||||||
@@ -568,6 +569,7 @@
|
|||||||
"compId":13,
|
"compId":13,
|
||||||
"child":[
|
"child":[
|
||||||
{
|
{
|
||||||
|
"x":45,
|
||||||
"type":"Box",
|
"type":"Box",
|
||||||
"props":{},
|
"props":{},
|
||||||
"nodeParent":13,
|
"nodeParent":13,
|
||||||
@@ -748,6 +750,7 @@
|
|||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"x":45,
|
||||||
"type":"Box",
|
"type":"Box",
|
||||||
"props":{},
|
"props":{},
|
||||||
"nodeParent":13,
|
"nodeParent":13,
|
||||||
@@ -821,6 +824,7 @@
|
|||||||
"$HIDDEN":false
|
"$HIDDEN":false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"x":30,
|
||||||
"type":"Box",
|
"type":"Box",
|
||||||
"props":{"y":-155,"var":"boxSpeed","right":100,"name":"boxSpeed","left":100,"height":150,"anchorY":0.5,"anchorX":0.5},
|
"props":{"y":-155,"var":"boxSpeed","right":100,"name":"boxSpeed","left":100,"height":150,"anchorY":0.5,"anchorX":0.5},
|
||||||
"nodeParent":14,
|
"nodeParent":14,
|
||||||
@@ -832,6 +836,7 @@
|
|||||||
"compId":104,
|
"compId":104,
|
||||||
"child":[
|
"child":[
|
||||||
{
|
{
|
||||||
|
"x":45,
|
||||||
"type":"ProgressBar",
|
"type":"ProgressBar",
|
||||||
"props":{"var":"prgSpeed","skin":"images/progress/progress_s.png","right":0,"name":"prgSpeed","left":0,"bottom":0},
|
"props":{"var":"prgSpeed","skin":"images/progress/progress_s.png","right":0,"name":"prgSpeed","left":0,"bottom":0},
|
||||||
"nodeParent":104,
|
"nodeParent":104,
|
||||||
@@ -844,6 +849,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"x":45,
|
||||||
"type":"HScrollBar",
|
"type":"HScrollBar",
|
||||||
"props":{"var":"scbSpeed","skin":"images/slider/hslider_s.png","right":0,"name":"scbSpeed","min":0,"max":1000,"left":0,"height":60,"bottom":0},
|
"props":{"var":"scbSpeed","skin":"images/slider/hslider_s.png","right":0,"name":"scbSpeed","min":0,"max":1000,"left":0,"height":60,"bottom":0},
|
||||||
"nodeParent":104,
|
"nodeParent":104,
|
||||||
@@ -856,6 +862,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"x":45,
|
||||||
"type":"Label",
|
"type":"Label",
|
||||||
"props":{"text":"UI_Manual","fontSize":50,"font":"方正像素12","color":"#55fffe","bottom":70},
|
"props":{"text":"UI_Manual","fontSize":50,"font":"方正像素12","color":"#55fffe","bottom":70},
|
||||||
"nodeParent":104,
|
"nodeParent":104,
|
||||||
@@ -868,6 +875,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"x":45,
|
||||||
"type":"Label",
|
"type":"Label",
|
||||||
"props":{"text":"UI_Auto","right":0,"fontSize":50,"font":"方正像素12","color":"#55fffe","bottom":70},
|
"props":{"text":"UI_Auto","right":0,"fontSize":50,"font":"方正像素12","color":"#55fffe","bottom":70},
|
||||||
"nodeParent":104,
|
"nodeParent":104,
|
||||||
@@ -926,14 +934,13 @@
|
|||||||
"props":{"var":"vboxTrajectory","top":0,"right":40,"name":"vboxTrajectory","left":20},
|
"props":{"var":"vboxTrajectory","top":0,"right":40,"name":"vboxTrajectory","left":20},
|
||||||
"nodeParent":18,
|
"nodeParent":18,
|
||||||
"label":"VBox(vboxTrajectory)",
|
"label":"VBox(vboxTrajectory)",
|
||||||
"isOpen":true,
|
"isOpen":false,
|
||||||
"isDirectory":true,
|
"isDirectory":true,
|
||||||
"isAniNode":true,
|
"isAniNode":true,
|
||||||
"hasChild":true,
|
"hasChild":true,
|
||||||
"compId":17,
|
"compId":17,
|
||||||
"child":[
|
"child":[
|
||||||
{
|
{
|
||||||
"x":60,
|
|
||||||
"type":"Box",
|
"type":"Box",
|
||||||
"props":{"right":0,"name":"boxTrajectoryItem","left":0},
|
"props":{"right":0,"name":"boxTrajectoryItem","left":0},
|
||||||
"nodeParent":17,
|
"nodeParent":17,
|
||||||
@@ -945,25 +952,11 @@
|
|||||||
"compId":88,
|
"compId":88,
|
||||||
"child":[
|
"child":[
|
||||||
{
|
{
|
||||||
"x":75,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":0,"width":10,"top":0,"runtime":"Laya.runtime.ColorfulBox","name":"boxGrade","left":0,"height":50},
|
|
||||||
"nodeParent":88,
|
|
||||||
"label":"Box(boxGrade)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":153,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":75,
|
|
||||||
"type":"HBox",
|
"type":"HBox",
|
||||||
"props":{"y":0,"x":220,"name":"hboxAge","anchorX":1,"align":"middle"},
|
"props":{"y":0,"x":200,"name":"hboxAge","anchorX":1,"align":"middle"},
|
||||||
"nodeParent":88,
|
"nodeParent":88,
|
||||||
"label":"HBox(hboxAge)",
|
"label":"HBox(hboxAge)",
|
||||||
"isOpen":false,
|
"isOpen":true,
|
||||||
"isDirectory":true,
|
"isDirectory":true,
|
||||||
"isAniNode":true,
|
"isAniNode":true,
|
||||||
"hasChild":true,
|
"hasChild":true,
|
||||||
@@ -1007,9 +1000,8 @@
|
|||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x":75,
|
|
||||||
"type":"Label",
|
"type":"Label",
|
||||||
"props":{"wordWrap":true,"text":"你的父母开始辅导你数学和英语,智力+1","right":0,"name":"labContent","left":240,"leading":44,"fontSize":50,"font":"方正像素12","color":"#ffffff"},
|
"props":{"wordWrap":true,"text":"你的父母开始辅导你数学和英语,智力+1","right":0,"name":"labContent","left":220,"leading":44,"fontSize":50,"font":"方正像素12","color":"#ffffff"},
|
||||||
"nodeParent":88,
|
"nodeParent":88,
|
||||||
"label":"Label(labContent)",
|
"label":"Label(labContent)",
|
||||||
"isDirectory":false,
|
"isDirectory":false,
|
||||||
@@ -1121,32 +1113,6 @@
|
|||||||
}]
|
}]
|
||||||
}]
|
}]
|
||||||
}]
|
}]
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":10,"var":"boxParticle","name":"boxParticle","height":10,"centerY":0,"centerX":0},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(boxParticle)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":152,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Particle2D",
|
|
||||||
"source":"particle/fly.part",
|
|
||||||
"props":{"y":5,"x":5,"url":"particle/fly.part","autoPlay":true},
|
|
||||||
"nodeParent":152,
|
|
||||||
"label":"Particle2D",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":151,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}],
|
}],
|
||||||
"animations":[
|
"animations":[
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,128 +0,0 @@
|
|||||||
{
|
|
||||||
"x":0,
|
|
||||||
"type":"View",
|
|
||||||
"selectedBox":1,
|
|
||||||
"selecteID":8,
|
|
||||||
"props":{"width":1125,"sceneColor":"#000000","height":2436},
|
|
||||||
"nodeParent":-1,
|
|
||||||
"label":"View",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":1,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":10,"x":10,"width":600,"var":"btnCustom","runtime":"Laya.runtime.ScaleButton","name":"btn","height":400,"centerY":-400,"centerX":0},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnCustom)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":2,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Image",
|
|
||||||
"props":{"top":-15,"skin":"images/border/achievement_complete@3x.png","right":-15,"left":-15,"bottom":-15},
|
|
||||||
"nodeParent":2,
|
|
||||||
"label":"Image",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":10,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"top":50,"text":"UI_CustomMode","fontSize":80,"font":"方正像素12","color":"#ffffff","centerX":0,"bold":true},
|
|
||||||
"nodeParent":2,
|
|
||||||
"label":"Label",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":4,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"top":200,"text":"UI_CustomModeDescription","right":0,"left":0,"leading":20,"fontSize":40,"font":"方正像素12","color":"#bcbcbc","bottom":0,"align":"center"},
|
|
||||||
"nodeParent":2,
|
|
||||||
"label":"Label",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":5,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":10,"x":20,"width":600,"var":"btnCelebrity","runtime":"Laya.runtime.ScaleButton","name":"btn","height":400,"centerY":400,"centerX":0},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnCelebrity)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":3,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Image",
|
|
||||||
"props":{"y":-15,"x":-15,"top":-15,"skin":"images/border/achievement_complete@3x.png","right":-15,"left":-15,"bottom":-15},
|
|
||||||
"nodeParent":3,
|
|
||||||
"label":"Image",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":11,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"top":50,"text":"UI_CelebrityMode","fontSize":80,"font":"方正像素12","color":"#ffffff","centerX":0,"bold":true},
|
|
||||||
"nodeParent":3,
|
|
||||||
"label":"Label",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":7,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"top":200,"text":"UI_CelebrityModeDescription","right":0,"left":0,"leading":20,"fontSize":40,"font":"方正像素12","color":"#bcbcbc","bottom":0,"align":"center"},
|
|
||||||
"nodeParent":3,
|
|
||||||
"label":"Label",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":8,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
"animations":[
|
|
||||||
{
|
|
||||||
"nodes":[
|
|
||||||
],
|
|
||||||
"name":"ani1",
|
|
||||||
"id":1,
|
|
||||||
"frameRate":24,
|
|
||||||
"action":0
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
@@ -1,306 +0,0 @@
|
|||||||
{
|
|
||||||
"x":0,
|
|
||||||
"type":"View",
|
|
||||||
"selectedBox":1,
|
|
||||||
"selecteID":28,
|
|
||||||
"props":{"width":1125,"sceneColor":"#000000","height":2436},
|
|
||||||
"nodeParent":-1,
|
|
||||||
"label":"View",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":1,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"y":80,"text":"UI_Title_Celebrity","name":"title","fontSize":80,"font":"SimHei","color":"#ffffff","centerX":0},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Label(title)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":19,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Panel",
|
|
||||||
"props":{"var":"panelCharacter","vScrollBarSkin":" ","top":200,"right":0,"name":"panelCharacter","left":0,"bottom":700},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Panel(panelCharacter)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":2,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"VBox",
|
|
||||||
"props":{"y":10,"width":1000,"var":"vboxCharacter","space":20,"name":"vboxCharacter","centerX":0},
|
|
||||||
"nodeParent":2,
|
|
||||||
"label":"VBox(vboxCharacter)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":8,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":45,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"right":0,"name":"boxCharacter","left":0},
|
|
||||||
"nodeParent":8,
|
|
||||||
"label":"Box(boxCharacter)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":10,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":0,"runtime":"Laya.runtime.ColorfulBox","right":0,"name":"boxName","left":0,"height":100},
|
|
||||||
"nodeParent":10,
|
|
||||||
"label":"Box(boxName)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":12,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"valign":"middle","text":"颜值10 智力10 体质10 家境Π","name":"label","fontSize":55,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"align":"center"},
|
|
||||||
"nodeParent":12,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":18,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type":"VBox",
|
|
||||||
"props":{"top":100,"space":20,"runtime":"Laya.runtime.ColorfulBox","right":25,"name":"vboxStates","left":25},
|
|
||||||
"nodeParent":10,
|
|
||||||
"label":"VBox(vboxStates)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":11,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"valign":"middle","text":"颜值10 智力10 体质10 家境Π","name":"label","height":100,"fontSize":55,"font":"SimHei","color":"#ffffff","centerX":0,"align":"center"},
|
|
||||||
"nodeParent":11,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":14,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":45,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"runtime":"Laya.runtime.ColorfulBox","right":25,"name":"boxTalent","left":25,"height":100},
|
|
||||||
"nodeParent":8,
|
|
||||||
"label":"Box(boxTalent)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":15,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"valign":"middle","text":"颜值10 智力10 体质10 家境Π","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"align":"center"},
|
|
||||||
"nodeParent":15,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":17,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":45,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":10,"x":10,"right":0,"name":"boxUniqueUnGenerate","left":0},
|
|
||||||
"nodeParent":8,
|
|
||||||
"label":"Box(boxUniqueUnGenerate)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":20,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":60,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":0,"runtime":"Laya.runtime.ColorfulBox","right":0,"name":"boxName","left":0,"height":100},
|
|
||||||
"nodeParent":20,
|
|
||||||
"label":"Box(boxName)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":21,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":75,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"valign":"middle","text":"UI_UniqueWaTaShi","name":"label","fontSize":55,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"align":"center"},
|
|
||||||
"nodeParent":21,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":22,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":60,
|
|
||||||
"type":"VBox",
|
|
||||||
"props":{"top":100,"space":20,"runtime":"Laya.runtime.ColorfulBox","right":25,"name":"vboxStates","left":25},
|
|
||||||
"nodeParent":20,
|
|
||||||
"label":"VBox(vboxStates)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":23,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":75,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"y":1,"valign":"middle","text":"UI_UniqueWaTaShiContent","right":0,"name":"label","left":0,"leading":30,"fontSize":55,"font":"SimHei","color":"#ffffff","align":"center"},
|
|
||||||
"nodeParent":23,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":24,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":75,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":2,"right":0,"name":"boxBtn","left":0,"height":150},
|
|
||||||
"nodeParent":23,
|
|
||||||
"label":"Box(boxBtn)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":25,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":90,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"runtime":"Laya.runtime.ColorfulBox","right":50,"name":"btn","left":50,"height":120,"centerY":0},
|
|
||||||
"nodeParent":25,
|
|
||||||
"label":"Box(btn)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":26,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":105,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"y":30,"x":290,"text":"UI_GenerateNow","name":"label","fontSize":60,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0},
|
|
||||||
"nodeParent":26,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":27,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":480,"var":"btnRetry","runtime":"Laya.runtime.ColorfulBox","name":"btnRetry","height":150,"centerX":0,"bottom":400},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnRetry)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":4,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"UI_AllNot","name":"label","fontSize":60,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0},
|
|
||||||
"nodeParent":4,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":5,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":480,"var":"btnNext","runtime":"Laya.runtime.ColorfulBox","name":"btnNext","height":150,"centerX":0,"bottom":150},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnNext)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":6,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"UI_Make_New_Life","name":"label","fontSize":60,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0},
|
|
||||||
"nodeParent":6,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":7,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
"animations":[
|
|
||||||
{
|
|
||||||
"nodes":[
|
|
||||||
],
|
|
||||||
"name":"ani1",
|
|
||||||
"id":1,
|
|
||||||
"frameRate":24,
|
|
||||||
"action":0
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"x":0,
|
"x":0,
|
||||||
"type":"View",
|
"type":"View",
|
||||||
"selectedBox":101,
|
"selectedBox":1,
|
||||||
"selecteID":102,
|
"selecteID":83,
|
||||||
"props":{"y":1218,"x":562,"width":1125,"sceneColor":"#000000","runtime":"Laya.runtime.ViewBase","height":2436,"anchorY":0.5,"anchorX":0.5},
|
"props":{"y":1218,"x":562,"width":1125,"sceneColor":"#000000","runtime":"Laya.runtime.ViewBase","height":2436,"anchorY":0.5,"anchorX":0.5},
|
||||||
"nodeParent":-1,
|
"nodeParent":-1,
|
||||||
"label":"View",
|
"label":"View",
|
||||||
@@ -15,9 +15,9 @@
|
|||||||
{
|
{
|
||||||
"x":15,
|
"x":15,
|
||||||
"type":"Label",
|
"type":"Label",
|
||||||
"props":{"text":"UI_Title_Remake","name":"title","fontSize":130,"font":"SimHei","color":"#ffffff","centerY":-260,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
|
"props":{"var":"labTitle","text":"UI_Title_Remake","name":"labTitle","fontSize":130,"font":"SimHei","color":"#ffffff","centerY":-260,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
|
||||||
"nodeParent":1,
|
"nodeParent":1,
|
||||||
"label":"Label(title)",
|
"label":"Label(labTitle)",
|
||||||
"isDirectory":false,
|
"isDirectory":false,
|
||||||
"isAniNode":true,
|
"isAniNode":true,
|
||||||
"hasChild":false,
|
"hasChild":false,
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
{
|
{
|
||||||
"x":15,
|
"x":15,
|
||||||
"type":"Label",
|
"type":"Label",
|
||||||
"props":{"wordWrap":true,"var":"labSubTitle","text":"UI_Title_Subsequent","right":0,"name":"title","left":0,"fontSize":70,"font":"SimHei","color":"#999999","centerY":-120,"anchorY":0.5,"anchorX":0.5,"align":"center"},
|
"props":{"wordWrap":true,"var":"labSubTitle","text":"UI_Title_Subsequent","right":0,"name":"labSubTitle","left":0,"fontSize":70,"font":"SimHei","color":"#999999","centerY":-120,"anchorY":0.5,"anchorX":0.5,"align":"center"},
|
||||||
"nodeParent":1,
|
"nodeParent":1,
|
||||||
"label":"Label(labSubTitle)",
|
"label":"Label(labSubTitle)",
|
||||||
"isDirectory":false,
|
"isDirectory":false,
|
||||||
@@ -195,13 +195,14 @@
|
|||||||
"props":{"width":160,"left":50,"height":160,"bottom":50},
|
"props":{"width":160,"left":50,"height":160,"bottom":50},
|
||||||
"nodeParent":1,
|
"nodeParent":1,
|
||||||
"label":"Box",
|
"label":"Box",
|
||||||
"isOpen":false,
|
"isOpen":true,
|
||||||
"isDirectory":true,
|
"isDirectory":true,
|
||||||
"isAniNode":true,
|
"isAniNode":true,
|
||||||
"hasChild":true,
|
"hasChild":true,
|
||||||
"compId":92,
|
"compId":92,
|
||||||
"child":[
|
"child":[
|
||||||
{
|
{
|
||||||
|
"x":30,
|
||||||
"type":"Box",
|
"type":"Box",
|
||||||
"props":{"width":160,"var":"btnDiscord","runtime":"Laya.runtime.ScaleButton","name":"btnDiscord","height":160,"centerY":0,"centerX":0,"anchorY":0.5,"anchorX":0.5},
|
"props":{"width":160,"var":"btnDiscord","runtime":"Laya.runtime.ScaleButton","name":"btnDiscord","height":160,"centerY":0,"centerX":0,"anchorY":0.5,"anchorX":0.5},
|
||||||
"nodeParent":92,
|
"nodeParent":92,
|
||||||
@@ -225,83 +226,6 @@
|
|||||||
]
|
]
|
||||||
}]
|
}]
|
||||||
}]
|
}]
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":2201,"x":1020,"width":110,"var":"btnSaveLoad","runtime":"Laya.runtime.ColorfulBox","right":50,"name":"btnSmall","height":110,"bottom":180,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnSaveLoad)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":99,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Image",
|
|
||||||
"props":{"width":80,"skin":"images/icons/icon_save.png","height":80,"centerY":0,"centerX":0},
|
|
||||||
"nodeParent":99,
|
|
||||||
"label":"Image",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":100,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":110,"var":"btnThemes","runtime":"Laya.runtime.ColorfulBox","right":50,"name":"btnThemes","height":110,"bottom":50,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnThemes)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":96,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Image",
|
|
||||||
"props":{"width":90,"skin":"images/icons/icon_themes.png","height":90,"centerY":0,"centerX":0},
|
|
||||||
"nodeParent":96,
|
|
||||||
"label":"Image",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":98,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"x":562,"var":"banner","centerX":0,"bottom":100,"anchorY":1,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(banner)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":101,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"UI_Banner","name":"title","fontSize":40,"font":"SimHei","color":"#ffffff"},
|
|
||||||
"nodeParent":101,
|
|
||||||
"label":"Label(title)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":102,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}],
|
}],
|
||||||
"animations":[
|
"animations":[
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,128 +0,0 @@
|
|||||||
{
|
|
||||||
"x":0,
|
|
||||||
"type":"View",
|
|
||||||
"selectedBox":1,
|
|
||||||
"selecteID":11,
|
|
||||||
"props":{"width":1125,"sceneColor":"#000000","height":2436},
|
|
||||||
"nodeParent":-1,
|
|
||||||
"label":"View",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":1,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":600,"var":"btnCustom","runtime":"Laya.runtime.ColorfulBox","name":"btn","height":400,"centerY":-400,"centerX":0},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnCustom)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":2,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"top":50,"text":"UI_CustomMode","name":"font_default","fontSize":80,"font":"SimHei","color":"#ffffff","centerX":0,"bold":true},
|
|
||||||
"nodeParent":2,
|
|
||||||
"label":"Label(font_default)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":4,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"top":200,"text":"UI_CustomModeDescription","right":0,"name":"font_default","left":0,"leading":20,"fontSize":40,"font":"SimHei","color":"#ffffff","bottom":0,"align":"center"},
|
|
||||||
"nodeParent":2,
|
|
||||||
"label":"Label(font_default)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":5,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"runtime":"Laya.runtime.ColorAgentLabel","name":"label"},
|
|
||||||
"nodeParent":2,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":10,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"x":10,"width":600,"var":"btnCelebrity","runtime":"Laya.runtime.ColorfulBox","name":"btn","height":400,"centerY":400,"centerX":0},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnCelebrity)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":3,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"top":50,"text":"UI_CelebrityMode","name":"font_default","fontSize":80,"font":"SimHei","color":"#ffffff","centerX":0,"bold":true},
|
|
||||||
"nodeParent":3,
|
|
||||||
"label":"Label(font_default)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":8,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"top":200,"text":"UI_CelebrityModeDescription","right":0,"name":"font_default","left":0,"leading":20,"fontSize":40,"font":"SimHei","color":"#ffffff","bottom":0,"align":"center"},
|
|
||||||
"nodeParent":3,
|
|
||||||
"label":"Label(font_default)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":9,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"y":10,"x":10,"runtime":"Laya.runtime.ColorAgentLabel","name":"label"},
|
|
||||||
"nodeParent":3,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":11,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
"animations":[
|
|
||||||
{
|
|
||||||
"nodes":[
|
|
||||||
],
|
|
||||||
"name":"ani1",
|
|
||||||
"id":1,
|
|
||||||
"frameRate":24,
|
|
||||||
"action":0
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"x":0,
|
"x":0,
|
||||||
"type":"View",
|
"type":"View",
|
||||||
"selectedBox":1,
|
"selectedBox":1,
|
||||||
"selecteID":95,
|
"selecteID":102,
|
||||||
"props":{"width":1125,"sceneColor":"#000000","runtime":"Laya.runtime.ViewBase","height":2436},
|
"props":{"width":1125,"sceneColor":"#000000","runtime":"Laya.runtime.ViewBase","height":2436},
|
||||||
"nodeParent":-1,
|
"nodeParent":-1,
|
||||||
"label":"View",
|
"label":"View",
|
||||||
@@ -501,32 +501,6 @@
|
|||||||
}],
|
}],
|
||||||
"$LOCKED":true,
|
"$LOCKED":true,
|
||||||
"$HIDDEN":false
|
"$HIDDEN":false
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":10,"var":"boxParticle","name":"boxParticle","height":10,"centerY":0,"centerX":0},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(boxParticle)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":153,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Particle2D",
|
|
||||||
"source":"particle/fly.part",
|
|
||||||
"props":{"y":5,"x":5,"url":"particle/fly.part","autoPlay":true},
|
|
||||||
"nodeParent":153,
|
|
||||||
"label":"Particle2D",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":154,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}],
|
}],
|
||||||
"animations":[
|
"animations":[
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
{
|
|
||||||
"x":0,
|
|
||||||
"type":"View",
|
|
||||||
"selectedBox":1,
|
|
||||||
"selecteID":2,
|
|
||||||
"props":{"width":1100,"sceneColor":"#000000","mouseThrough":true,"mouseEnabled":false,"height":230},
|
|
||||||
"nodeParent":-1,
|
|
||||||
"label":"View",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":1,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"var":"boxBg","top":10,"runtime":"Laya.runtime.ColorfulBox","right":10,"name":"boxBg","left":10,"bottom":10,"alpha":0.75},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(boxBg)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":3,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"wordWrap":true,"var":"message","text":"消息","right":50,"name":"message","left":50,"fontSize":60,"font":"SimHei","color":"#ffffff","centerY":0,"align":"center"},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Label(message)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":2,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}],
|
|
||||||
"animations":[
|
|
||||||
{
|
|
||||||
"nodes":[
|
|
||||||
],
|
|
||||||
"name":"ani1",
|
|
||||||
"id":1,
|
|
||||||
"frameRate":24,
|
|
||||||
"action":0
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
@@ -1,273 +0,0 @@
|
|||||||
{
|
|
||||||
"x":0,
|
|
||||||
"type":"Dialog",
|
|
||||||
"selectedBox":1,
|
|
||||||
"selecteID":25,
|
|
||||||
"props":{"width":645,"sceneColor":"#000000","height":400},
|
|
||||||
"nodeParent":-1,
|
|
||||||
"label":"Dialog",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":1,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"top":0,"right":0,"left":0,"bottom":300},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":15,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":0,"x":0,"width":645,"height":2},
|
|
||||||
"nodeParent":15,
|
|
||||||
"label":"Box",
|
|
||||||
"isOpen":null,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":19,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Rect",
|
|
||||||
"props":{"width":645,"lineWidth":1,"height":2,"fillColor":"#97ffe6"},
|
|
||||||
"nodeParent":19,
|
|
||||||
"label":"Rect",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":17,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":645,"height":2,"centerX":0,"bottom":0},
|
|
||||||
"nodeParent":15,
|
|
||||||
"label":"Box",
|
|
||||||
"isOpen":null,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":20,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Rect",
|
|
||||||
"props":{"width":645,"lineWidth":1,"height":2,"fillColor":"#97ffe6"},
|
|
||||||
"nodeParent":20,
|
|
||||||
"label":"Rect",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":21,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":645,"height":100,"centerY":0,"centerX":0,"alpha":0.2},
|
|
||||||
"nodeParent":15,
|
|
||||||
"label":"Box",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":22,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Rect",
|
|
||||||
"props":{"width":645,"lineWidth":1,"height":100,"fillColor":"#000000"},
|
|
||||||
"nodeParent":22,
|
|
||||||
"label":"Rect",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":23,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"TextInput",
|
|
||||||
"props":{"wordWrap":false,"var":"input","valign":"middle","top":0,"text":"content","right":0,"overflow":"scroll","left":0,"fontSize":35,"font":"SimHei","color":"#ffffff","bottom":300},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"TextInput(input)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":4,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":120,"var":"btnSave","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":5,"height":120,"bottom":155,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnSave)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":5,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"UI_Save","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":5,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":7,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":120,"var":"btnLoad","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":130,"height":120,"bottom":155,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnLoad)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":6,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"UI_Load","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":6,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":8,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":120,"var":"btnRead","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":260,"height":120,"bottom":155,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnRead)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":13,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"UI_Read","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":13,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":14,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":120,"var":"btnWrite","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":390,"height":120,"bottom":155,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnWrite)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":11,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"UI_Write","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":11,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":12,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"x":10,"width":120,"var":"btnClose","runtime":"Laya.runtime.ColorfulBox","right":5,"name":"btnSmall","height":120,"bottom":155,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnClose)",
|
|
||||||
"isOpen":false,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":9,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"×","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":9,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":10,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"y":20,"var":"btnBackup","runtime":"Laya.runtime.ColorfulBox","right":5,"name":"btnBackup","left":5,"height":120,"bottom":5,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnBackup)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":25,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"UI_BackupBtn","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":25,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":26,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
"animations":[
|
|
||||||
{
|
|
||||||
"nodes":[
|
|
||||||
],
|
|
||||||
"name":"ani1",
|
|
||||||
"id":1,
|
|
||||||
"frameRate":24,
|
|
||||||
"action":0
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
@@ -1,141 +0,0 @@
|
|||||||
{
|
|
||||||
"x":0,
|
|
||||||
"type":"Dialog",
|
|
||||||
"selectedBox":1,
|
|
||||||
"selecteID":13,
|
|
||||||
"props":{"width":350,"sceneColor":"#000000","height":550},
|
|
||||||
"nodeParent":-1,
|
|
||||||
"label":"Dialog",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":1,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"top":20,"right":20,"left":20,"bottom":130},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":6,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"RadioGroup",
|
|
||||||
"props":{"var":"radioTheme","name":"radioTheme","height":380,"centerY":0,"centerX":0},
|
|
||||||
"nodeParent":6,
|
|
||||||
"label":"RadioGroup(radioTheme)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":13,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":45,
|
|
||||||
"type":"Radio",
|
|
||||||
"props":{"width":300,"top":0,"skin":"images/radio/radio_cyber.png","name":"item0","height":100},
|
|
||||||
"nodeParent":13,
|
|
||||||
"label":"Radio(item0)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":10,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":45,
|
|
||||||
"type":"Radio",
|
|
||||||
"props":{"width":300,"skin":"images/radio/radio_dark.png","name":"item1","height":100,"centerY":0},
|
|
||||||
"nodeParent":13,
|
|
||||||
"label":"Radio(item1)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":11,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":45,
|
|
||||||
"type":"Radio",
|
|
||||||
"props":{"width":300,"skin":"images/radio/radio_light.png","name":"item2","height":100,"bottom":0},
|
|
||||||
"nodeParent":13,
|
|
||||||
"label":"Radio(item2)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":12,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":90,"var":"btnOK","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":20,"height":90,"bottom":20,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnOK)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":2,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"√","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":2,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":3,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"x":15,
|
|
||||||
"type":"Box",
|
|
||||||
"props":{"width":90,"var":"btnClose","runtime":"Laya.runtime.ColorfulBox","right":20,"name":"btnSmall","height":90,"bottom":20,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":1,
|
|
||||||
"label":"Box(btnClose)",
|
|
||||||
"isOpen":true,
|
|
||||||
"isDirectory":true,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":true,
|
|
||||||
"compId":14,
|
|
||||||
"child":[
|
|
||||||
{
|
|
||||||
"x":30,
|
|
||||||
"type":"Label",
|
|
||||||
"props":{"text":"×","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
|
|
||||||
"nodeParent":14,
|
|
||||||
"label":"Label(label)",
|
|
||||||
"isDirectory":false,
|
|
||||||
"isAniNode":true,
|
|
||||||
"hasChild":false,
|
|
||||||
"compId":15,
|
|
||||||
"child":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
"animations":[
|
|
||||||
{
|
|
||||||
"nodes":[
|
|
||||||
],
|
|
||||||
"name":"ani1",
|
|
||||||
"id":1,
|
|
||||||
"frameRate":24,
|
|
||||||
"action":0
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
27
package.json
@@ -1,19 +1,24 @@
|
|||||||
{
|
{
|
||||||
"name": "life_restart",
|
"name": "life_restart",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "repl/index.js",
|
"bin": "repl/index.js",
|
||||||
"version": "2.1.0",
|
"version": "2.0.0",
|
||||||
"author": "Vick Scarlet <vick@syaro.io>",
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"xlsx2json": "vt transform -d public \"data/**/*.xlsx\"",
|
"test": "node test",
|
||||||
"dev": "vite",
|
"xlsxTransform": "vt transform data",
|
||||||
"build": "vite build",
|
"xlsx2json": "vt transform jobs/xlsx2json/config.json",
|
||||||
"start": "vite preview",
|
"dev": "webpack serve --open /view/index.html",
|
||||||
"test": "vitest"
|
"build": "webpack --mode production"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"v-transform": "^2.2.1",
|
"@babel/core": "^7.15.4",
|
||||||
"vite": "^8.0.3",
|
"@babel/preset-env": "^7.15.4",
|
||||||
"vitest": "^4.1.2"
|
"babel-loader": "^8.2.2",
|
||||||
|
"core-js": "^3.17.2",
|
||||||
|
"html-webpack-plugin": "^5.5.0",
|
||||||
|
"v-transform": "^1.0.1",
|
||||||
|
"webpack": "^5.64.4",
|
||||||
|
"webpack-cli": "^4.8.0",
|
||||||
|
"webpack-dev-server": "^4.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
1111
pnpm-lock.yaml
generated
1
public/bundle.js
Normal file
1
public/chunk/184.beb54.js
Normal file
1
public/chunk/202.c5157.js
Normal file
1
public/chunk/297.b0a77.js
Normal file
1
public/chunk/33.6867d.js
Normal file
1
public/chunk/376.3bdab.js
Normal file
1
public/chunk/501.0666d.js
Normal file
1
public/chunk/544.acf78.js
Normal file
1
public/chunk/556.92c92.js
Normal file
1
public/chunk/614.d026d.js
Normal file
1
public/chunk/631.a0791.js
Normal file
1
public/chunk/764.ebb7d.js
Normal file
1
public/chunk/803.8cb3d.js
Normal file
1
public/chunk/844.14f74.js
Normal file
1
public/chunk/85.466c4.js
Normal file
1
public/chunk/891.decde.js
Normal file
1
public/chunk/897.8f94a.js
Normal file
1
public/chunk/912.94029.js
Normal file
1
public/chunk/971.28a65.js
Normal file
1
public/chunk/main.883b9.js
Normal file
1460
public/data/en-us/achievement.json
Normal file
71808
public/data/en-us/age.json
Normal file
12652
public/data/en-us/events.json
Normal file
1335
public/data/en-us/talents.json
Normal file
4240
public/data/specialthanks.json
Normal file
1460
public/data/zh-cn/achievement.json
Normal file
71808
public/data/zh-cn/age.json
Normal file
12652
public/data/zh-cn/events.json
Normal file
1335
public/data/zh-cn/talents.json
Normal file
74
public/dev.html
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||||
|
<meta name="description" content="やり直すんだ。そして、次はうまくやる。"/>
|
||||||
|
<meta name="keywords" content="人生重开模拟器 liferestart life restart remake 人生重来"/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes"/>
|
||||||
|
<meta name="full-screen" content="true"/>
|
||||||
|
<meta name="x5-fullscreen" content="true"/>
|
||||||
|
<meta name="360-fullscreen" content="true"/>
|
||||||
|
<meta name="theme-color" content="#157878"/>
|
||||||
|
<meta name="laya" screenorientation ="landscape"/>
|
||||||
|
<meta http-equiv="expires" content="0"/>
|
||||||
|
<meta http-equiv="Cache-Control" content="no-siteapp"/>
|
||||||
|
<font-face font-family="方正像素12" src="fonts/方正像素12.ttf"/>
|
||||||
|
<title>Life Restart</title>
|
||||||
|
</head>
|
||||||
|
<body style="background:black">
|
||||||
|
<!--以下引用了常用类库,如果不使用,可以删除-->
|
||||||
|
|
||||||
|
<!--核心包,封装了显示对象渲染,事件,时间管理,时间轴动画,缓动,消息交互,socket,本地存储,鼠标触摸,声音,加载,颜色滤镜,位图字体等-->
|
||||||
|
<script type="text/javascript" src="libs/laya/laya.core.js"></script>
|
||||||
|
<!--提供了微信小游戏的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.wxmini.js"></script> -->
|
||||||
|
<!--提供了百度小游戏的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.bdmini.js"></script> -->
|
||||||
|
<!--提供了小米小游戏的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.xmmini.js"></script> -->
|
||||||
|
<!--提供了OPPO小游戏的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.quickgamemini.js"></script> -->
|
||||||
|
<!--提供了bilibili小游戏的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.bilimini.js"></script> -->
|
||||||
|
<!--提供了Alipay小游戏的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.Alipaymini.js"></script> -->
|
||||||
|
<!--提供了qq小游戏的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.qqmini.js"></script> -->
|
||||||
|
<!--提供了字节跳动小游戏的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.ttmini.js"></script> -->
|
||||||
|
<!--提供了华为快游戏的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.hwmini.js"></script> -->
|
||||||
|
<!--提供了淘宝商家应用的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.tbmini.js"></script> -->
|
||||||
|
<!--提供了淘宝小部件的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.tbplugin.js"></script> -->
|
||||||
|
<!--封装了webgl渲染管线,如果使用webgl渲染,可以在初始化时调用Laya.init(1000,800,laya.webgl.WebGL);-->
|
||||||
|
<script type="text/javascript" src="libs/laya/laya.webgl.js"></script>
|
||||||
|
<!--提供了VIVO小游戏的适配-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.vvmini.js"></script> -->
|
||||||
|
<!--是动画模块,包含了swf动画,骨骼动画等-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.ani.js"></script> -->
|
||||||
|
<!--包含更多webgl滤镜,比如外发光,阴影,模糊以及更多-->
|
||||||
|
<script type="text/javascript" src="libs/laya/laya.filter.js"></script>
|
||||||
|
<!--封装了html动态排版功能-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.html.js"></script> -->
|
||||||
|
<!--粒子类库-->
|
||||||
|
<script type="text/javascript" src="libs/laya/laya.particle.js"></script>
|
||||||
|
<!--提供tileMap解析支持-->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.tiledmap.js"></script> -->
|
||||||
|
<!--提供了制作UI的各种组件实现-->
|
||||||
|
<script type="text/javascript" src="libs/laya/laya.ui.js"></script>
|
||||||
|
<!-- 提供LayaAir3d接口 -->
|
||||||
|
<!-- <script type="text/javascript" src="libs/laya/laya.d3.js"></script> -->
|
||||||
|
|
||||||
|
<!-- 物理引擎matter.js -->
|
||||||
|
<!--自定义的js(src文件夹下)文件自动添加到下面jsfile模块标签里面里,js的顺序可以手动修改,修改后保留修改的顺序,新增加的js会默认依次追加到标签里-->
|
||||||
|
<!--删除标签,ide不会自动添加js文件,请谨慎操作-->
|
||||||
|
<!--jsfile--startTag-->
|
||||||
|
<script type="module" src="../src/index.js"></script>
|
||||||
|
<!--jsfile--endTag-->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -35,11 +35,9 @@ P 3FA91C13 icon_github.png
|
|||||||
P AB934AEA icon_int@3x.png
|
P AB934AEA icon_int@3x.png
|
||||||
P F1A0724B icon_mny@3x.png
|
P F1A0724B icon_mny@3x.png
|
||||||
P D5AADAC9 icon_rank@3x.png
|
P D5AADAC9 icon_rank@3x.png
|
||||||
P 0806E5F3 icon_save.png
|
|
||||||
P 2DB0325D icon_spr@3x.png
|
P 2DB0325D icon_spr@3x.png
|
||||||
P 2EFA541B icon_str@3x.png
|
P 2EFA541B icon_str@3x.png
|
||||||
P 804842C9 icon_thanks@3x.png
|
P 804842C9 icon_thanks@3x.png
|
||||||
P 96DD5D94 icon_themes.png
|
|
||||||
P 6ECB5FEC icon_up@3x.png
|
P 6ECB5FEC icon_up@3x.png
|
||||||
D images/progress
|
D images/progress
|
||||||
P E2BF0C93 progress_1@3x$bar.png
|
P E2BF0C93 progress_1@3x$bar.png
|
||||||
@@ -48,10 +46,6 @@ P E7F15BA7 progress_2$bar.png
|
|||||||
P 641A22BF progress_2.png
|
P 641A22BF progress_2.png
|
||||||
P AF80A9AF progress_s$bar.png
|
P AF80A9AF progress_s$bar.png
|
||||||
P 41417E8D progress_s.png
|
P 41417E8D progress_s.png
|
||||||
D images/radio
|
|
||||||
P CCF63014 radio_cyber.png
|
|
||||||
P 040DE73C radio_dark.png
|
|
||||||
P BA975F5A radio_light.png
|
|
||||||
D images/resource
|
D images/resource
|
||||||
P F3659301 bottombreath.png
|
P F3659301 bottombreath.png
|
||||||
P 496D6FB9 circle.png
|
P 496D6FB9 circle.png
|
||||||
@@ -65,5 +59,3 @@ R 8B95E6D3 vslider_1@3x$bar.png
|
|||||||
P 6581FBA8 vslider_1@3x$down.png
|
P 6581FBA8 vslider_1@3x$down.png
|
||||||
P 6581FBA8 vslider_1@3x$up.png
|
P 6581FBA8 vslider_1@3x$up.png
|
||||||
R C9587878 vslider_1@3x.png
|
R C9587878 vslider_1@3x.png
|
||||||
D images/texture
|
|
||||||
P FD231754 texture_1.png
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"frames":{"icon_achievement@3x.png":{"frame":{"h":69,"idx":0,"w":65,"x":188,"y":385},"sourceSize":{"h":69,"w":65},"spriteSourceSize":{"x":0,"y":0}},"icon_chr@3x.png":{"frame":{"h":61,"idx":0,"w":57,"x":320,"y":448},"sourceSize":{"h":61,"w":57},"spriteSourceSize":{"x":0,"y":0}},"icon_discord.png":{"frame":{"h":384,"idx":0,"w":384,"x":0,"y":0},"sourceSize":{"h":384,"w":384},"spriteSourceSize":{"x":0,"y":0}},"icon_github.png":{"frame":{"h":384,"idx":0,"w":384,"x":385,"y":0},"sourceSize":{"h":384,"w":384},"spriteSourceSize":{"x":0,"y":0}},"icon_int@3x.png":{"frame":{"h":57,"idx":0,"w":54,"x":188,"y":455},"sourceSize":{"h":57,"w":54},"spriteSourceSize":{"x":0,"y":0}},"icon_mny@3x.png":{"frame":{"h":57,"idx":0,"w":54,"x":243,"y":455},"sourceSize":{"h":57,"w":54},"spriteSourceSize":{"x":0,"y":0}},"icon_rank@3x.png":{"frame":{"h":62,"idx":0,"w":72,"x":320,"y":385},"sourceSize":{"h":62,"w":72},"spriteSourceSize":{"x":0,"y":0}},"icon_save.png":{"frame":{"h":90,"idx":0,"w":90,"x":97,"y":385},"sourceSize":{"h":90,"w":90},"spriteSourceSize":{"x":0,"y":0}},"icon_spr@3x.png":{"frame":{"h":60,"idx":0,"w":57,"x":378,"y":448},"sourceSize":{"h":60,"w":57},"spriteSourceSize":{"x":0,"y":0}},"icon_str@3x.png":{"frame":{"h":57,"idx":0,"w":54,"x":393,"y":385},"sourceSize":{"h":57,"w":54},"spriteSourceSize":{"x":0,"y":0}},"icon_thanks@3x.png":{"frame":{"h":69,"idx":0,"w":65,"x":254,"y":385},"sourceSize":{"h":69,"w":65},"spriteSourceSize":{"x":0,"y":0}},"icon_themes.png":{"frame":{"h":96,"idx":0,"w":96,"x":0,"y":385},"sourceSize":{"h":96,"w":96},"spriteSourceSize":{"x":0,"y":0}},"icon_up@3x.png":{"frame":{"h":18,"idx":0,"w":33,"x":97,"y":476},"sourceSize":{"h":18,"w":33},"spriteSourceSize":{"x":0,"y":0}}},"meta":{"image":"icons.png","prefix":"images/icons/"}}
|
{"frames":{"icon_achievement@3x.png":{"frame":{"h":69,"idx":0,"w":65,"x":0,"y":385},"sourceSize":{"h":69,"w":65},"spriteSourceSize":{"x":0,"y":0}},"icon_chr@3x.png":{"frame":{"h":61,"idx":0,"w":57,"x":132,"y":448},"sourceSize":{"h":61,"w":57},"spriteSourceSize":{"x":0,"y":0}},"icon_discord.png":{"frame":{"h":384,"idx":0,"w":384,"x":0,"y":0},"sourceSize":{"h":384,"w":384},"spriteSourceSize":{"x":0,"y":0}},"icon_github.png":{"frame":{"h":384,"idx":0,"w":384,"x":385,"y":0},"sourceSize":{"h":384,"w":384},"spriteSourceSize":{"x":0,"y":0}},"icon_int@3x.png":{"frame":{"h":57,"idx":0,"w":54,"x":0,"y":455},"sourceSize":{"h":57,"w":54},"spriteSourceSize":{"x":0,"y":0}},"icon_mny@3x.png":{"frame":{"h":57,"idx":0,"w":54,"x":55,"y":455},"sourceSize":{"h":57,"w":54},"spriteSourceSize":{"x":0,"y":0}},"icon_rank@3x.png":{"frame":{"h":62,"idx":0,"w":72,"x":132,"y":385},"sourceSize":{"h":62,"w":72},"spriteSourceSize":{"x":0,"y":0}},"icon_spr@3x.png":{"frame":{"h":60,"idx":0,"w":57,"x":190,"y":448},"sourceSize":{"h":60,"w":57},"spriteSourceSize":{"x":0,"y":0}},"icon_str@3x.png":{"frame":{"h":57,"idx":0,"w":54,"x":205,"y":385},"sourceSize":{"h":57,"w":54},"spriteSourceSize":{"x":0,"y":0}},"icon_thanks@3x.png":{"frame":{"h":69,"idx":0,"w":65,"x":66,"y":385},"sourceSize":{"h":69,"w":65},"spriteSourceSize":{"x":0,"y":0}},"icon_up@3x.png":{"frame":{"h":18,"idx":0,"w":33,"x":248,"y":443},"sourceSize":{"h":18,"w":33},"spriteSourceSize":{"x":0,"y":0}}},"meta":{"image":"icons.png","prefix":"images/icons/"}}
|
||||||
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 49 KiB |
@@ -1 +0,0 @@
|
|||||||
{"frames":{"radio_cyber.png":{"frame":{"h":300,"idx":0,"w":300,"x":0,"y":0},"sourceSize":{"h":300,"w":300},"spriteSourceSize":{"x":0,"y":0}},"radio_dark.png":{"frame":{"h":300,"idx":0,"w":300,"x":0,"y":301},"sourceSize":{"h":300,"w":300},"spriteSourceSize":{"x":0,"y":0}},"radio_light.png":{"frame":{"h":300,"idx":0,"w":300,"x":301,"y":0},"sourceSize":{"h":300,"w":300},"spriteSourceSize":{"x":0,"y":0}}},"meta":{"image":"radio.png","prefix":"images/radio/"}}
|
|
||||||
|
Before Width: | Height: | Size: 83 KiB |
@@ -1 +0,0 @@
|
|||||||
{"frames":{"texture_1.png":{"frame":{"h":400,"idx":0,"w":400,"x":0,"y":0},"sourceSize":{"h":400,"w":400},"spriteSourceSize":{"x":0,"y":0}}},"meta":{"image":"texture.png","prefix":"images/texture/"}}
|
|
||||||
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 31 KiB |
1
public/index.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><meta name="description" content="やり直すんだ。そして、次はうまくやる。"/><meta name="keywords" content="人生重开模拟器 liferestart life restart remake 人生重来"/><meta name="renderer" content="webkit"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="full-screen" content="true"/><meta name="x5-fullscreen" content="true"/><meta name="360-fullscreen" content="true"/><meta name="theme-color" content="#157878"/><meta name="laya" screenorientation="landscape"/><meta http-equiv="expires" content="0"/><meta http-equiv="Cache-Control" content="no-siteapp"/><title>Life Restart</title><script src="libs/laya/min/laya.core.min.js"></script><script src="libs/laya/min/laya.webgl.min.js"></script><script src="libs/laya/min/laya.filter.min.js"></script><script src="libs/laya/min/laya.particle.min.js"></script><script src="libs/laya/min/laya.ui.min.js"></script><script defer="defer" src="chunk/main.883b9.js"></script></head><body style="background:black"></body></html>
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"textureName":"images/texture/texture_1.png","positionVariance":{"0":0,"1":0,"2":0},"minVerticalVelocity":-100,"minVerticalEndRadian":0,"minStartSize":0,"minStartRadius":0,"minRotateSpeed":0,"minHorizontalVelocity":100,"minHorizontalEndRadian":0,"minEndSize":18.55,"minEndRadius":218.75,"minColor":{"0":0.15,"1":0.92,"2":0.91,"3":0.6000000238418579},"maxVerticalVelocity":100,"maxVerticalEndRadian":0,"maxStartSize":2.04,"maxStartRadius":0,"maxRotateSpeed":0,"maxPartices":400,"maxHorizontalVelocity":100,"maxHorizontalEndRadian":0,"maxEndSize":24.35,"maxEndRadius":84.82,"maxColor":{"0":0.57,"1":1,"2":0,"3":1},"gravity":{"0":0,"1":0,"2":0},"endVelocity":2,"emitterVelocitySensitivity":56.89,"duration":9.52,"colorComponentInter":true,"blendState":0,"ageAddScale":10,"backColor":"#ffffff","textureFileName":"comp\\clip_num.png","textureCount":1,"minHorizontalStartRadian":0,"maxHorizontalStartRadian":0,"minVerticalStartRadian":0,"maxVerticalStartRadian":0,"emitterType":"null","emissionRate":0,"sphereEmitterRadius":1,"sphereEmitterVelocity":0,"sphereEmitterVelocityAddVariance":0,"ringEmitterRadius":30,"ringEmitterVelocity":0,"ringEmitterVelocityAddVariance":0,"ringEmitterUp":2,"minStartColor":{"0":0.5,"1":0.5,"2":0.5,"3":0.2},"maxStartColor":{"0":1,"1":1,"2":1,"3":1},"minEndColor":{"0":0,"1":0,"2":0,"3":0.08},"maxEndColor":{"0":1,"1":1,"2":1,"3":1},"pointEmitterPosition":{"0":0,"1":0,"2":0},"pointEmitterPositionVariance":{"0":0,"1":0,"2":0},"pointEmitterVelocity":{"0":0,"1":0,"2":0},"pointEmitterVelocityAddVariance":{"0":0,"1":0,"2":0},"boxEmitterCenterPosition":{"0":0,"1":0,"2":0},"boxEmitterSize":{"0":0,"1":0,"2":0},"boxEmitterVelocity":{"0":0,"1":0,"2":0},"boxEmitterVelocityAddVariance":{"0":0,"1":0,"2":0},"sphereEmitterCenterPosition":{"0":0,"1":0,"2":0},"ringEmitterCenterPosition":{"0":0,"1":0,"2":0},"useEndRadian":true,"disableColor":false}
|
|
||||||
770
repl/app.js
@@ -1,44 +1,32 @@
|
|||||||
import { fileURLToPath } from 'url'
|
import App from './app.js';
|
||||||
import { dirname } from 'path'
|
import { readFile, writeFile } from 'fs/promises';
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url)
|
|
||||||
const __dirname = dirname(__filename)
|
|
||||||
|
|
||||||
import App from './app.js'
|
|
||||||
import { readFile, writeFile } from 'fs/promises'
|
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
globalThis.localStorage = JSON.parse(
|
globalThis.localStorage = JSON.parse(await readFile('__localStorage.json'));
|
||||||
await readFile(__dirname + '/__localStorage.json')
|
|
||||||
)
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
globalThis.localStorage = {}
|
globalThis.localStorage = {};
|
||||||
}
|
}
|
||||||
localStorage.getItem = key =>
|
localStorage.getItem = key => localStorage[key]===void 0? null: localStorage[key];
|
||||||
localStorage[key] === void 0 ? null : localStorage[key]
|
localStorage.setItem = (key, value) => (localStorage[key] = value);
|
||||||
localStorage.setItem = (key, value) => (localStorage[key] = value)
|
|
||||||
|
|
||||||
globalThis.dumpLocalStorage = async () =>
|
globalThis.dumpLocalStorage = async ()=>await writeFile('__localStorage.json', JSON.stringify( global.localStorage))
|
||||||
await writeFile(
|
|
||||||
__dirname + '/__localStorage.json',
|
|
||||||
JSON.stringify(global.localStorage)
|
|
||||||
)
|
|
||||||
|
|
||||||
const app = new App()
|
const app = new App();
|
||||||
app.io(
|
app.io(
|
||||||
repl => process.stdin.on('data', data => repl(data.toString().trim())),
|
repl => process.stdin.on('data', data=>repl(data.toString().trim())),
|
||||||
(data, isRepl) => process.stdout.write(`${data}${isRepl ? '\n>' : ''}`),
|
(data, isRepl) => process.stdout.write(`${data}${isRepl?'\n>':''}`),
|
||||||
code => process.exit(code)
|
code=>process.exit(code)
|
||||||
)
|
)
|
||||||
await app.initial()
|
await app.initial();
|
||||||
}
|
}
|
||||||
|
|
||||||
main()
|
main();
|
||||||
|
|
||||||
// process.stdin.setRawMode(true);
|
// process.stdin.setRawMode(true);
|
||||||
|
|
||||||
// process.openStdin().on('keypress', function (chunk, key) {
|
// process.openStdin().on('keypress', function (chunk, key) {
|
||||||
// process.stdout.write('Get Chunk: ' + chunk + '\n');
|
// process.stdout.write('Get Chunk: ' + chunk + '\n');
|
||||||
// if (key && key.ctrl && key.name == 'c') process.exit();
|
// if (key && key.ctrl && key.name == 'c') process.exit();
|
||||||
// });
|
// });
|
||||||
74
src/app.js
@@ -1,4 +1,3 @@
|
|||||||
import './ui/laya.patch.js';
|
|
||||||
import './ui/runtime.js';
|
import './ui/runtime.js';
|
||||||
import './ui/pluginFunction.js'
|
import './ui/pluginFunction.js'
|
||||||
import './ui/promisesLaya.js'
|
import './ui/promisesLaya.js'
|
||||||
@@ -7,31 +6,12 @@ import UIManager from './ui/uiManager.js';
|
|||||||
import * as utils from './functions/util.js';
|
import * as utils from './functions/util.js';
|
||||||
|
|
||||||
globalThis.UIManager =
|
globalThis.UIManager =
|
||||||
globalThis.UI =
|
globalThis.UI =
|
||||||
UIManager;
|
UIManager;
|
||||||
|
|
||||||
globalThis.$_ = utils;
|
globalThis.$_ = utils;
|
||||||
|
class App{
|
||||||
globalThis.goto = async tag => {
|
constructor(){
|
||||||
let url;
|
|
||||||
switch (tag) {
|
|
||||||
case 'github': url = 'https://github.com/VickScarlet/lifeRestart'; break;
|
|
||||||
case 'discord': url = 'https://discord.gg/U3qrf49NMQ'; break;
|
|
||||||
case 'sponsor_afd': url = 'https://afdian.com/a/LifeRestart'; break;
|
|
||||||
case 'sponsor_ddf': url = 'https://dun.mianbaoduo.com/@vickscarlet'; break;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
if (Laya.Browser.onIOS) {
|
|
||||||
window.location.href = url;
|
|
||||||
} else {
|
|
||||||
window.open(url, '_blank');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class App {
|
|
||||||
constructor() {
|
|
||||||
this.name = 'lifeRestart';
|
this.name = 'lifeRestart';
|
||||||
this.version = '2.0.0';
|
this.version = '2.0.0';
|
||||||
console.log(`${this.name} ${this.version}`);
|
console.log(`${this.name} ${this.version}`);
|
||||||
@@ -50,10 +30,10 @@ class App {
|
|||||||
//class laya.webgl.text.CharSegment
|
//class laya.webgl.text.CharSegment
|
||||||
class CharSegment {
|
class CharSegment {
|
||||||
constructor() {
|
constructor() {
|
||||||
this._sourceStr = null;
|
this._sourceStr=null;
|
||||||
}
|
}
|
||||||
textToSpit(str) {
|
textToSpit(str) {
|
||||||
this._sourceStr = str;
|
this._sourceStr=str;
|
||||||
var texLen = str.length;
|
var texLen = str.length;
|
||||||
var idx = -1;
|
var idx = -1;
|
||||||
this._words = [];
|
this._words = [];
|
||||||
@@ -67,18 +47,18 @@ class App {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
getChar(i) {
|
getChar(i){
|
||||||
return this._words;
|
return this._words;
|
||||||
}
|
}
|
||||||
getCharCode(i) {
|
getCharCode(i){
|
||||||
return this._words[i].codePointAt(0);
|
return this._words[i].codePointAt(0);
|
||||||
}
|
}
|
||||||
length() {
|
length(){
|
||||||
return this._words.length;
|
return this._words.length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Laya.class(CharSegment, 'laya.webgl.text.CharSegment');
|
Laya.class(CharSegment,'laya.webgl.text.CharSegment');
|
||||||
Laya.imps(CharSegment.prototype, { "laya.webgl.text.ICharSegment": true })
|
Laya.imps(CharSegment.prototype,{"laya.webgl.text.ICharSegment":true})
|
||||||
|
|
||||||
|
|
||||||
// Laya.init(1125, 2436, Laya.WebGL);
|
// Laya.init(1125, 2436, Laya.WebGL);
|
||||||
@@ -103,15 +83,15 @@ class App {
|
|||||||
const screenWidth = window.innerWidth;
|
const screenWidth = window.innerWidth;
|
||||||
const screenHeight = window.innerHeight;
|
const screenHeight = window.innerHeight;
|
||||||
const screenRatio = screenWidth / screenHeight;
|
const screenRatio = screenWidth / screenHeight;
|
||||||
if (screenRatio > designRatio) {
|
if(screenRatio > designRatio) {
|
||||||
return [
|
return [
|
||||||
Math.min(screenWidth * designHeight / screenHeight, maxWidth),
|
Math.min(screenWidth*designHeight/screenHeight, maxWidth),
|
||||||
designHeight
|
designHeight
|
||||||
]
|
]
|
||||||
} else {
|
} else {
|
||||||
return [
|
return [
|
||||||
designWidth,
|
designWidth,
|
||||||
Math.min(screenHeight * designWidth / screenWidth, maxHeight)
|
Math.min(screenHeight*designWidth/screenWidth, maxHeight)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,7 +101,7 @@ class App {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async #setLanguage(language) {
|
async #setLanguage(language) {
|
||||||
switch (language) {
|
switch(language) {
|
||||||
case App.languages['en-us']:
|
case App.languages['en-us']:
|
||||||
case App.languages['zh-cn']:
|
case App.languages['zh-cn']:
|
||||||
this.#language = language;
|
this.#language = language;
|
||||||
@@ -131,23 +111,13 @@ class App {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
globalThis.$lang =
|
globalThis.$lang =
|
||||||
Laya.Text.langPacks =
|
Laya.Text.langPacks =
|
||||||
(await import(`./i18n/${this.#language}.js`)).default;
|
(await import(`./i18n/${this.#language}.js`)).default;
|
||||||
}
|
}
|
||||||
|
|
||||||
resigterEvent() {
|
resigterEvent() {
|
||||||
$$on('achievement', achievement => {
|
$$on('achievement', achievement => {
|
||||||
$ui.popup(UI.popups.ACHIEVEMENT, { achievement });
|
$ui.popup(UI.popups.ACHIEVEMENT, {achievement});
|
||||||
})
|
|
||||||
$$on('message', ([message, ...args]) => {
|
|
||||||
if (Array.isArray(message)) {
|
|
||||||
message = message.map(([m, ...a]) => $_.format($lang[m], ...a)).join('\n');
|
|
||||||
} else {
|
|
||||||
message = $_.format(
|
|
||||||
$lang[message], ...args
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$ui.popup(UI.popups.MESSAGE, { message });
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,21 +128,15 @@ class App {
|
|||||||
this.resigterEvent();
|
this.resigterEvent();
|
||||||
this.#initLaya();
|
this.#initLaya();
|
||||||
globalThis.$ui = UIManager.getInstance();
|
globalThis.$ui = UIManager.getInstance();
|
||||||
|
|
||||||
if (theme == 'default') {
|
|
||||||
theme = localStorage.getItem('theme') || 'default';
|
|
||||||
}
|
|
||||||
|
|
||||||
$ui.theme = theme;
|
$ui.theme = theme;
|
||||||
await this.#setLanguage(language);
|
await this.#setLanguage(language);
|
||||||
await $ui.setLoading(UI.pages.LOADING);
|
await $ui.setLoading(UI.pages.LOADING);
|
||||||
await $ui.switchView(UI.pages.LOADING);
|
await $ui.switchView(UI.pages.LOADING);
|
||||||
await core.initial(
|
await core.initial(
|
||||||
dataSet => Laya.promises.loader.load(`data/${this.#language}/${dataSet}.json`, null, Laya.Loader.JSON),
|
dataSet=>Laya.promises.loader.load(`data/${this.#language}/${dataSet}.json`, null, Laya.Loader.JSON),
|
||||||
dataSet => Laya.promises.loader.load(`data/${dataSet}.json`, null, Laya.Loader.JSON),
|
dataSet=>Laya.promises.loader.load(`data/${dataSet}.json`, null, Laya.Loader.JSON),
|
||||||
);
|
);
|
||||||
await $ui.switchView(UI.pages.MAIN);
|
await $ui.switchView(UI.pages.MAIN);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ function parseCondition(condition) {
|
|||||||
return conditions;
|
return conditions;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function checkCondition(property, condition) {
|
function checkCondition(property, condition) {
|
||||||
const conditions = parseCondition(condition);
|
const conditions = parseCondition(condition);
|
||||||
return checkParsedConditions(property, conditions);
|
return checkParsedConditions(property, conditions);
|
||||||
}
|
}
|
||||||
@@ -113,7 +113,7 @@ function checkProp(property, condition) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function extractMaxTriggers(condition) {
|
function extractMaxTriggers(condition) {
|
||||||
// Assuming only age related talents can be triggered multiple times.
|
// Assuming only age related talents can be triggered multiple times.
|
||||||
const RE_AGE_CONDITION = /AGE\?\[([0-9\,]+)\]/;
|
const RE_AGE_CONDITION = /AGE\?\[([0-9\,]+)\]/;
|
||||||
const match_object = RE_AGE_CONDITION.exec(condition);
|
const match_object = RE_AGE_CONDITION.exec(condition);
|
||||||
@@ -124,4 +124,6 @@ export function extractMaxTriggers(condition) {
|
|||||||
|
|
||||||
const age_list = match_object[1].split(",");
|
const age_list = match_object[1].split(",");
|
||||||
return age_list.length;
|
return age_list.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export { checkCondition, extractMaxTriggers };
|
||||||
@@ -1,103 +0,0 @@
|
|||||||
import { expect, test, describe } from 'vitest'
|
|
||||||
import { checkCondition } from './condition'
|
|
||||||
|
|
||||||
function withProp(prop) {
|
|
||||||
const p = {
|
|
||||||
get(key) {
|
|
||||||
return prop[key]
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return condition => checkCondition(p, condition)
|
|
||||||
}
|
|
||||||
|
|
||||||
describe('condition', () => {
|
|
||||||
const check = withProp({
|
|
||||||
n1: 0,
|
|
||||||
n2: -10,
|
|
||||||
n3: 10,
|
|
||||||
nl1: [1, 2, 3],
|
|
||||||
nl2: [0],
|
|
||||||
nl3: [],
|
|
||||||
})
|
|
||||||
test('gt(>)', () => {
|
|
||||||
expect(check('n3>11')).toBe(false)
|
|
||||||
expect(check('n3>10')).toBe(false)
|
|
||||||
expect(check('n3>9')).toBe(true)
|
|
||||||
})
|
|
||||||
test('gte(>=)', () => {
|
|
||||||
expect(check('n3>=11')).toBe(false)
|
|
||||||
expect(check('n3>=10')).toBe(true)
|
|
||||||
expect(check('n3>=9')).toBe(true)
|
|
||||||
})
|
|
||||||
test('lt(<)', () => {
|
|
||||||
expect(check('n3<9')).toBe(false)
|
|
||||||
expect(check('n3<10')).toBe(false)
|
|
||||||
expect(check('n3<11')).toBe(true)
|
|
||||||
})
|
|
||||||
test('lte(<=)', () => {
|
|
||||||
expect(check('n3<=9')).toBe(false)
|
|
||||||
expect(check('n3<=10')).toBe(true)
|
|
||||||
expect(check('n3<=11')).toBe(true)
|
|
||||||
})
|
|
||||||
test('eq(=)', () => {
|
|
||||||
expect(check('n3=9')).toBe(false)
|
|
||||||
expect(check('n3=10')).toBe(true)
|
|
||||||
expect(check('n3=11')).toBe(false)
|
|
||||||
expect(check('nl1=0')).toBe(false)
|
|
||||||
expect(check('nl1=1')).toBe(true)
|
|
||||||
expect(check('nl1=2')).toBe(true)
|
|
||||||
expect(check('nl1=3')).toBe(true)
|
|
||||||
})
|
|
||||||
test('ne(!=)', () => {
|
|
||||||
expect(check('n3!=9')).toBe(true)
|
|
||||||
expect(check('n3!=10')).toBe(false)
|
|
||||||
expect(check('n3!=11')).toBe(true)
|
|
||||||
expect(check('nl1!=0')).toBe(true)
|
|
||||||
expect(check('nl1!=1')).toBe(false)
|
|
||||||
expect(check('nl1!=2')).toBe(false)
|
|
||||||
expect(check('nl1!=3')).toBe(false)
|
|
||||||
})
|
|
||||||
test('in(?)', () => {
|
|
||||||
expect(check('n3?[1,2,3]')).toBe(false)
|
|
||||||
expect(check('n3?[10,11,12]')).toBe(true)
|
|
||||||
expect(check('nl1?[0,1]')).toBe(true)
|
|
||||||
expect(check('nl2?[1,2,3]')).toBe(false)
|
|
||||||
expect(check('nl3?[1,2,3]')).toBe(false)
|
|
||||||
expect(check('nl2?[]')).toBe(false)
|
|
||||||
expect(check('nl3?[]')).toBe(false)
|
|
||||||
})
|
|
||||||
test('notin(!)', () => {
|
|
||||||
expect(check('n3![1,2,3]')).toBe(true)
|
|
||||||
expect(check('n3![10,11,12]')).toBe(false)
|
|
||||||
expect(check('nl1![0,1]')).toBe(false)
|
|
||||||
expect(check('nl2![1,2,3]')).toBe(true)
|
|
||||||
expect(check('nl3![1,2,3]')).toBe(true)
|
|
||||||
expect(check('nl2![]')).toBe(true)
|
|
||||||
expect(check('nl3![]')).toBe(true)
|
|
||||||
})
|
|
||||||
test('and(&)', () => {
|
|
||||||
expect(check('n1>=0&n2<0')).toBe(true)
|
|
||||||
expect(check('n2>0&n3>0')).toBe(false)
|
|
||||||
expect(check('n2<0&n3<0')).toBe(false)
|
|
||||||
expect(check('n2<0&n3>0')).toBe(true)
|
|
||||||
expect(check('n1=0&n2<0&n3>0')).toBe(true)
|
|
||||||
expect(check('n1=0&n2>0&n3>0')).toBe(false)
|
|
||||||
})
|
|
||||||
test('or(|)', () => {
|
|
||||||
expect(check('n1>=0|n2<0')).toBe(true)
|
|
||||||
expect(check('n2>0|n3>0')).toBe(true)
|
|
||||||
expect(check('n2<0|n3<0')).toBe(true)
|
|
||||||
expect(check('n2<0|n3>0')).toBe(true)
|
|
||||||
expect(check('n2>0|n3<0')).toBe(false)
|
|
||||||
expect(check('n1=0|n2<0|n3>0')).toBe(true)
|
|
||||||
expect(check('n1=0|n2>0|n3>0')).toBe(true)
|
|
||||||
expect(check('n1!=0|n2>0|n3<0')).toBe(false)
|
|
||||||
})
|
|
||||||
test('mix', () => {
|
|
||||||
expect(check('(n1=0|n2<0|n3>0)&(n1=0|n2>0|n3>0)')).toBe(true)
|
|
||||||
expect(check('(n1=0|n2<0|n3>0)&(n1!=0|n2>0|n3<0)')).toBe(false)
|
|
||||||
expect(check('n1=0|n2<0|n3>0&n1!=0|n2>0|n3<0')).toBe(true)
|
|
||||||
expect(check('(n1>0|n1?[-10,0])&(n2>0|n3![0,1])')).toBe(true)
|
|
||||||
expect(check('(n1>0&n1?[-10,0])|(n2<0&n3![0,1])')).toBe(true)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
function clone(value) {
|
function clone(value) {
|
||||||
switch(typeof value) {
|
switch(typeof value) {
|
||||||
case 'object':
|
case 'object':
|
||||||
if(value === null) return null;
|
|
||||||
if(Array.isArray(value)) return value.map(v=>clone(v));
|
if(Array.isArray(value)) return value.map(v=>clone(v));
|
||||||
const newObj = {};
|
const newObj = {};
|
||||||
for(const key in value) newObj[key] = clone(value[key]);
|
for(const key in value) newObj[key] = clone(value[key]);
|
||||||
@@ -84,17 +83,10 @@ function deepMapSet(target, source) {
|
|||||||
return target;
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
function deepGet(obj, path) {
|
|
||||||
for(const key of path.split('.')) {
|
|
||||||
if(!(key in obj)) return undefined;
|
|
||||||
obj = obj[key];
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
function format(str, ...args) {
|
function format(str, ...args) {
|
||||||
const replace = set => (match, key) => {
|
const replace = set => (match, key) => {
|
||||||
const value = deepGet(set, key);
|
const value = set[key];
|
||||||
switch(typeof value) {
|
switch(typeof value) {
|
||||||
case 'object': return JSON.stringify(value);
|
case 'object': return JSON.stringify(value);
|
||||||
case 'boolean':
|
case 'boolean':
|
||||||
|
|||||||
@@ -27,11 +27,10 @@ export default ({
|
|||||||
|
|
||||||
UI_Title_Remake: 'Remake Simulate',
|
UI_Title_Remake: 'Remake Simulate',
|
||||||
UI_Title_Subsequent: 'The rubbish life doesn\'t want to stay for a second',
|
UI_Title_Subsequent: 'The rubbish life doesn\'t want to stay for a second',
|
||||||
UI_Remake: '↻Remake Now',
|
UI_Remake: 'Remake Now',
|
||||||
UI_Thanks: 'Thx',
|
UI_Thanks: 'Thx',
|
||||||
UI_Achievement: 'Achv',
|
UI_Achievement: 'Achv',
|
||||||
UI_Cyber_Theme_Art_Design: 'UI Design by 晰晰',
|
UI_Cyber_Theme_Art_Design: 'UI Design by 晰晰',
|
||||||
UI_Banner: '作者的新作《纸上谈亲》已上线小程序\n微信/抖音搜索“纸上谈亲”即可游玩~',
|
|
||||||
|
|
||||||
UI_Title_Talent: 'Talent Draw',
|
UI_Title_Talent: 'Talent Draw',
|
||||||
UI_Talent_Draw: '!10 Pulls!',
|
UI_Talent_Draw: '!10 Pulls!',
|
||||||
@@ -120,45 +119,7 @@ export default ({
|
|||||||
UI_Support_Programmer: 'Programmer',
|
UI_Support_Programmer: 'Programmer',
|
||||||
UI_Support_Designer: 'Designer',
|
UI_Support_Designer: 'Designer',
|
||||||
|
|
||||||
UI_Save: 'Save',
|
|
||||||
UI_Load: 'Load',
|
|
||||||
UI_Read: 'Copy',
|
|
||||||
UI_Write: 'Paste',
|
|
||||||
|
|
||||||
UI_CopySuccess: 'Copy to clipboard success',
|
|
||||||
UI_CopyFailed: 'Copy to clipboard Failed',
|
|
||||||
|
|
||||||
UI_PasteSuccessDecodeSuccess: 'Load Success!',
|
|
||||||
UI_PasteSuccessDecodeFailed: 'Paste success, but load Failed!',
|
|
||||||
UI_PasteFailedDecodeSuccess: 'Paste Failed, use input load success!',
|
|
||||||
UI_PasteFailedDecodeFailed: 'Paste Failed, use input load Failed!',
|
|
||||||
|
|
||||||
UI_LoadSuccess: 'Load Success!',
|
|
||||||
UI_LoadFailed: 'Load Failed!',
|
|
||||||
|
|
||||||
UI_Title_Celebrity: 'Past life was...',
|
|
||||||
UI_CustomMode: 'Custom',
|
|
||||||
UI_CustomModeDescription: '10 Talent\nCustom property',
|
|
||||||
UI_CelebrityMode: 'Celebrity',
|
|
||||||
UI_CelebrityModeDescription: 'Past life is celebrity\nRebirth to modern',
|
|
||||||
UI_AllNot: '↻All Not',
|
|
||||||
UI_UniqueWaTaShi: 'Unique of mine',
|
|
||||||
UI_UniqueWaTaShiContent: '\nUnique character card different from other 60 million player\nAll property, All talent, All random\nAll has only one chance',
|
|
||||||
UI_GenerateNow: 'Generate Now',
|
|
||||||
|
|
||||||
|
|
||||||
M_NoRank: 'There is no rank',
|
|
||||||
M_PleaseSelectOne: 'Please Select One',
|
|
||||||
M_UnGenerate: 'Unique Character no generate',
|
|
||||||
M_DisableExtendTalent: 'Celebrity mode can\'t extends talent',
|
|
||||||
|
|
||||||
F_RemakeTimes: 'Remake {0} Times',
|
F_RemakeTimes: 'Remake {0} Times',
|
||||||
F_AchievementCount: 'Achievement {0}',
|
F_AchievementCount: 'Achievement {0}',
|
||||||
F_TalentSelection: '{name} ({description})',
|
F_TalentSelection: '{name} ({description})',
|
||||||
F_TalentConflict: 'Conflict with talent ({0})',
|
|
||||||
F_TalentSelectLimit: 'Talent select limit {0}',
|
|
||||||
F_TalentSelectNotComplect: 'Please select {0} talent',
|
|
||||||
F_PropertyPointLeft: 'You have left {0} property point',
|
|
||||||
F_TalentReplace: 'Talent replace [{source.name}] -> [{target.name}]',
|
|
||||||
F_PropertyStr: 'CHR{CHR} INT{INT} STR{STR} MNY{MNY}'
|
|
||||||
});
|
});
|
||||||
@@ -15,8 +15,6 @@ export default ({
|
|||||||
UI_Loading: '加载中...',
|
UI_Loading: '加载中...',
|
||||||
UI_Error: '错误',
|
UI_Error: '错误',
|
||||||
|
|
||||||
UI_BackupBtn: '上面没有效果就试试这个吧',
|
|
||||||
|
|
||||||
UI_Colon: ':',
|
UI_Colon: ':',
|
||||||
UI_Times: '次',
|
UI_Times: '次',
|
||||||
UI_Count: '个',
|
UI_Count: '个',
|
||||||
@@ -29,11 +27,10 @@ export default ({
|
|||||||
|
|
||||||
UI_Title_Remake: '人生重开模拟器',
|
UI_Title_Remake: '人生重开模拟器',
|
||||||
UI_Title_Subsequent: '这垃圾人生一秒也不想待了',
|
UI_Title_Subsequent: '这垃圾人生一秒也不想待了',
|
||||||
UI_Remake: '↻立即重开',
|
UI_Remake: '立即重开',
|
||||||
UI_Thanks: '感谢',
|
UI_Thanks: '感谢',
|
||||||
UI_Achievement: '成就',
|
UI_Achievement: '成就',
|
||||||
UI_Cyber_Theme_Art_Design: 'UI 设计 by 晰晰',
|
UI_Cyber_Theme_Art_Design: 'UI 设计 by 晰晰',
|
||||||
UI_Banner: '作者的新作《纸上谈亲》已上线小程序\n微信/抖音搜索“纸上谈亲”即可游玩~',
|
|
||||||
|
|
||||||
UI_Title_Talent: '天赋抽卡',
|
UI_Title_Talent: '天赋抽卡',
|
||||||
UI_Talent_Draw: '10连抽!',
|
UI_Talent_Draw: '10连抽!',
|
||||||
@@ -122,44 +119,7 @@ export default ({
|
|||||||
UI_Support_Programmer: '打赏程序(顿顿饭)',
|
UI_Support_Programmer: '打赏程序(顿顿饭)',
|
||||||
UI_Support_Designer: '打赏策划(爱发电)',
|
UI_Support_Designer: '打赏策划(爱发电)',
|
||||||
|
|
||||||
UI_Save: '存档',
|
|
||||||
UI_Load: '读档',
|
|
||||||
UI_Read: '复制',
|
|
||||||
UI_Write: '粘贴',
|
|
||||||
|
|
||||||
UI_LoadSuccess: '读档成功!',
|
|
||||||
UI_LoadFailed: '读档失败!',
|
|
||||||
|
|
||||||
UI_CopySuccess: '成功复制存档到剪贴板',
|
|
||||||
UI_CopyFailed: '复制存档到剪贴板失败,请手动复制存档内容',
|
|
||||||
|
|
||||||
UI_PasteSuccessDecodeSuccess: '读档成功!',
|
|
||||||
UI_PasteSuccessDecodeFailed: '粘贴剪贴板存档内容成功,但剪贴板内容读档失败',
|
|
||||||
UI_PasteFailedDecodeSuccess: '粘贴剪贴板存档内容失败,使用输入的内容读档成功',
|
|
||||||
UI_PasteFailedDecodeFailed: '粘贴剪贴板存档内容失败,使用输入的内容读档失败',
|
|
||||||
|
|
||||||
UI_Title_Celebrity: '你的前世是...',
|
|
||||||
UI_CustomMode: '经典模式',
|
|
||||||
UI_CustomModeDescription: '10连抽天赋\n自由分配属性',
|
|
||||||
UI_CelebrityMode: '名人模式',
|
|
||||||
UI_CelebrityModeDescription: '前世是古代名人\n重开到了现代',
|
|
||||||
UI_AllNot: '↻都不是',
|
|
||||||
UI_UniqueWaTaShi: '独一无二的我',
|
|
||||||
UI_UniqueWaTaShiContent: '\n6000万玩家中独一无二的角色卡\n所有属性 所有天赋 随机生成\n 每人只能生成一次',
|
|
||||||
UI_GenerateNow: '立即生成',
|
|
||||||
|
|
||||||
M_NoRank: '别卷了,没有排行榜',
|
|
||||||
M_PleaseSelectOne: '请选择一个名人',
|
|
||||||
M_UnGenerate: '独一无二的我还没有生成',
|
|
||||||
M_DisableExtendTalent: '名人模式不能继承天赋',
|
|
||||||
|
|
||||||
F_RemakeTimes: '已重开{0}次',
|
F_RemakeTimes: '已重开{0}次',
|
||||||
F_AchievementCount: '成就达成{0}个',
|
F_AchievementCount: '成就达成{0}个',
|
||||||
F_TalentSelection: '{name}({description})',
|
F_TalentSelection: '{name}({description})',
|
||||||
F_TalentConflict: '与已选的「{0}」天赋冲突',
|
|
||||||
F_TalentSelectLimit: '只能选 {0} 个天赋',
|
|
||||||
F_TalentSelectNotComplect: '要选满{0}个天赋',
|
|
||||||
F_PropertyPointLeft: '你还有 {0} 属性点没有分配完',
|
|
||||||
F_TalentReplace: '天赋替换【{source.name}】->【{target.name}】',
|
|
||||||
F_PropertyStr: '颜值{CHR} 智力{INT} 体质{STR} 家境{MNY}'
|
|
||||||
});
|
});
|
||||||
70
src/index.js
@@ -1,6 +1,21 @@
|
|||||||
import App from './app.js';
|
import App from './app.js';
|
||||||
import Life from './modules/life.js';
|
import Life from './modules/life.js';
|
||||||
|
|
||||||
|
globalThis.goto = async tag => {
|
||||||
|
let url;
|
||||||
|
switch(tag) {
|
||||||
|
case 'github': url = 'https://github.com/VickScarlet/lifeRestart'; break;
|
||||||
|
case 'discord': url = 'https://discord.gg/U3qrf49NMQ'; break;
|
||||||
|
case 'sponsor_afd': url = 'https://afdian.net/@LifeRestart'; break;
|
||||||
|
case 'sponsor_ddf': url = 'https://dun.mianbaoduo.com/@vickscarlet'; break;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
window.open(url, '_blank');
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
globalThis.$$eventMap = new Map();
|
globalThis.$$eventMap = new Map();
|
||||||
globalThis.$$event = (tag, data) => {
|
globalThis.$$event = (tag, data) => {
|
||||||
const listener = $$eventMap.get(tag);
|
const listener = $$eventMap.get(tag);
|
||||||
@@ -19,37 +34,6 @@ globalThis.$$off = (tag, fn) => {
|
|||||||
if(listener) listener.delete(fn);
|
if(listener) listener.delete(fn);
|
||||||
}
|
}
|
||||||
|
|
||||||
globalThis.$$copy = async text => {
|
|
||||||
const result = await navigator.permissions.query({ name: "clipboard-write" })
|
|
||||||
if (result.state == "granted" || result.state == "prompt") {
|
|
||||||
navigator.clipboard.writeText(text)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
const input = document.createElement('input');
|
|
||||||
input.setAttribute('style', 'opacity: 0;');
|
|
||||||
document.body.appendChild(input);
|
|
||||||
input.value = text;
|
|
||||||
input.select();
|
|
||||||
const r = document.execCommand("copy");
|
|
||||||
document.body.removeChild(input);
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
globalThis.$$read = async ()=>{
|
|
||||||
const result = await navigator.permissions.query({ name: "clipboard-read" })
|
|
||||||
if (result.state == "granted" || result.state == "prompt") {
|
|
||||||
return await navigator.clipboard.readText();
|
|
||||||
}
|
|
||||||
const input = document.createElement('input');
|
|
||||||
input.setAttribute('style', 'opacity: 0;');
|
|
||||||
document.body.appendChild(input);
|
|
||||||
input.focus();
|
|
||||||
const r = document.execCommand("paste");
|
|
||||||
const text = input.value;
|
|
||||||
document.body.removeChild(input);
|
|
||||||
return r?text:r;
|
|
||||||
};
|
|
||||||
|
|
||||||
const core = new Life();
|
const core = new Life();
|
||||||
const game = new App();
|
const game = new App();
|
||||||
globalThis.core = core;
|
globalThis.core = core;
|
||||||
@@ -196,29 +180,5 @@ core.config({
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
characterConfig: { // config for character
|
|
||||||
characterPullCount: 3,
|
|
||||||
rateableKnife: 10,
|
|
||||||
propertyWeight: [
|
|
||||||
[ 0, 1],
|
|
||||||
[ 1, 2],
|
|
||||||
[ 2, 3],
|
|
||||||
[ 3, 4],
|
|
||||||
[ 4, 5],
|
|
||||||
[ 5, 6],
|
|
||||||
[ 6, 5],
|
|
||||||
[ 7, 4],
|
|
||||||
[ 8, 3],
|
|
||||||
[ 9, 2],
|
|
||||||
[10, 1],
|
|
||||||
],
|
|
||||||
talentWeight: [
|
|
||||||
[ 1, 1],
|
|
||||||
[ 2, 2],
|
|
||||||
[ 3, 3],
|
|
||||||
[ 4, 2],
|
|
||||||
[ 5, 1],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
game.start(query);
|
game.start(query);
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
|
import { clone } from '../functions/util.js';
|
||||||
|
import { checkCondition } from '../functions/condition.js';
|
||||||
|
|
||||||
class Achievement {
|
class Achievement {
|
||||||
constructor(system) {
|
constructor() {}
|
||||||
this.#system = system;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 时机
|
// 时机
|
||||||
Opportunity = {
|
Opportunity = {
|
||||||
@@ -11,7 +12,6 @@ class Achievement {
|
|||||||
END: "END", // 游戏完成,点击重开 重开次数在这之后才会+1
|
END: "END", // 游戏完成,点击重开 重开次数在这之后才会+1
|
||||||
};
|
};
|
||||||
|
|
||||||
#system;
|
|
||||||
#achievements;
|
#achievements;
|
||||||
|
|
||||||
initial({achievements}) {
|
initial({achievements}) {
|
||||||
@@ -23,11 +23,7 @@ class Achievement {
|
|||||||
return Object.keys(this.#achievements).length;
|
return Object.keys(this.#achievements).length;
|
||||||
}
|
}
|
||||||
|
|
||||||
get #prop() {
|
list(property) {
|
||||||
return this.#system.request(this.#system.Module.PROPERTY);
|
|
||||||
}
|
|
||||||
|
|
||||||
list() {
|
|
||||||
return Object
|
return Object
|
||||||
.values(this.#achievements)
|
.values(this.#achievements)
|
||||||
.map(({
|
.map(({
|
||||||
@@ -36,34 +32,34 @@ class Achievement {
|
|||||||
})=>({
|
})=>({
|
||||||
id, name, opportunity,
|
id, name, opportunity,
|
||||||
description, hide, grade,
|
description, hide, grade,
|
||||||
isAchieved: this.isAchieved(id, this.#prop),
|
isAchieved: this.isAchieved(id, property),
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
get(achievementId) {
|
get(achievementId) {
|
||||||
const achievement = this.#achievements[achievementId];
|
const achievement = this.#achievements[achievementId];
|
||||||
if(!achievement) throw new Error(`[ERROR] No Achievement[${achievementId}]`);
|
if(!achievement) throw new Error(`[ERROR] No Achievement[${achievementId}]`);
|
||||||
return this.#system.clone(achievement);
|
return clone(achievement);
|
||||||
}
|
}
|
||||||
|
|
||||||
check(achievementId) {
|
check(achievementId, property) {
|
||||||
const { condition } = this.get(achievementId);
|
const { condition } = this.get(achievementId);
|
||||||
return this.#system.check(condition);
|
return checkCondition(property, condition);
|
||||||
}
|
}
|
||||||
|
|
||||||
isAchieved(achievementId) {
|
isAchieved(achievementId, property) {
|
||||||
for(const [achieved] of (this.#prop.get(this.#prop.TYPES.ACHV)||[]))
|
for(const [achieved] of (property.get(property.TYPES.ACHV)||[]))
|
||||||
if(achieved == achievementId) return true;
|
if(achieved == achievementId) return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
achieve(opportunity) {
|
achieve(opportunity, property) {
|
||||||
this.list()
|
this.list(property)
|
||||||
.filter(({isAchieved})=>!isAchieved)
|
.filter(({isAchieved})=>!isAchieved)
|
||||||
.filter(({opportunity: o})=>o==opportunity)
|
.filter(({opportunity: o})=>o==opportunity)
|
||||||
.filter(({id})=>this.check(id, this.#prop))
|
.filter(({id})=>this.check(id, property))
|
||||||
.forEach(({id})=>{
|
.forEach(({id})=>{
|
||||||
this.#prop.achieve(this.#prop.TYPES.ACHV, id)
|
property.achieve(property.TYPES.ACHV, id)
|
||||||
$$event('achievement', this.get(id))
|
$$event('achievement', this.get(id))
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,134 +0,0 @@
|
|||||||
class Character {
|
|
||||||
constructor(system) {
|
|
||||||
this.#system = system;
|
|
||||||
}
|
|
||||||
|
|
||||||
#system;
|
|
||||||
#characters;
|
|
||||||
#characterPullCount;
|
|
||||||
#rateableKnife;
|
|
||||||
#rate;
|
|
||||||
#pipe = [];
|
|
||||||
#uniqueWaTaShi;
|
|
||||||
#propertyWeight;
|
|
||||||
#talentWeight
|
|
||||||
|
|
||||||
initial({characters}) {
|
|
||||||
this.#characters = characters;
|
|
||||||
const uniqueWaTaShi = localStorage.getItem('uniqueWaTaShi');
|
|
||||||
if(uniqueWaTaShi != null || uniqueWaTaShi != 'undefined')
|
|
||||||
this.#uniqueWaTaShi = JSON.parse(uniqueWaTaShi);
|
|
||||||
return this.count;
|
|
||||||
}
|
|
||||||
|
|
||||||
get count() {
|
|
||||||
return Object.keys(this.#characters).length;
|
|
||||||
}
|
|
||||||
|
|
||||||
config({
|
|
||||||
characterPullCount = 3,
|
|
||||||
rateableKnife = 10,
|
|
||||||
propertyWeight,
|
|
||||||
talentWeight,
|
|
||||||
} = {}) {
|
|
||||||
this.#characterPullCount = characterPullCount;
|
|
||||||
this.#rateableKnife = rateableKnife;
|
|
||||||
this.#propertyWeight = propertyWeight;
|
|
||||||
this.#talentWeight = talentWeight;
|
|
||||||
}
|
|
||||||
|
|
||||||
get #unique() {
|
|
||||||
if(this.#uniqueWaTaShi) {
|
|
||||||
return this.#system.clone(this.#uniqueWaTaShi);
|
|
||||||
}
|
|
||||||
|
|
||||||
const now = Date.now();
|
|
||||||
this.#pipe.push(now);
|
|
||||||
if(this.#pipe.length < 10) return null;
|
|
||||||
const time = this.#pipe.shift();
|
|
||||||
if(now - time > 10000) return null;
|
|
||||||
return {unique: true, generate: false};
|
|
||||||
}
|
|
||||||
|
|
||||||
set #unique(data) {
|
|
||||||
this.#uniqueWaTaShi = this.#system.clone(data);
|
|
||||||
this.#uniqueWaTaShi.unique = true;
|
|
||||||
this.#uniqueWaTaShi.generate = true;
|
|
||||||
localStorage.setItem(
|
|
||||||
'uniqueWaTaShi',
|
|
||||||
JSON.stringify(this.#uniqueWaTaShi)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
get #weightRandom() {
|
|
||||||
return this.#system.function(this.#system.Function.UTIL).weightRandom;
|
|
||||||
}
|
|
||||||
|
|
||||||
generateUnique() {
|
|
||||||
if(this.#uniqueWaTaShi) return this.#unique;
|
|
||||||
const weightRandom = this.#weightRandom;
|
|
||||||
const {CHR, INT, STR, MNY} = this.#system.PropertyTypes;
|
|
||||||
|
|
||||||
this.#unique = {
|
|
||||||
property: {
|
|
||||||
[CHR]: weightRandom(this.#propertyWeight),
|
|
||||||
[INT]: weightRandom(this.#propertyWeight),
|
|
||||||
[STR]: weightRandom(this.#propertyWeight),
|
|
||||||
[MNY]: weightRandom(this.#propertyWeight),
|
|
||||||
},
|
|
||||||
talent: this.#system
|
|
||||||
.request(this.#system.Module.TALENT)
|
|
||||||
.random(weightRandom(this.#talentWeight)),
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.#unique;
|
|
||||||
}
|
|
||||||
|
|
||||||
random() {
|
|
||||||
return {
|
|
||||||
unique: this.#unique,
|
|
||||||
normal: this.#rateable(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#rateable() {
|
|
||||||
if(!this.#rate) {
|
|
||||||
this.#rate = {};
|
|
||||||
for(const id in this.#characters) {
|
|
||||||
this.#rate[id] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const r = [];
|
|
||||||
const weightRandom = this.#weightRandom;
|
|
||||||
new Array(this.#characterPullCount)
|
|
||||||
.fill(0)
|
|
||||||
.forEach(()=>{
|
|
||||||
r.push(
|
|
||||||
weightRandom(Object
|
|
||||||
.keys(this.#rate)
|
|
||||||
.filter(id=>!r.includes(id))
|
|
||||||
.map(id=>([id,this.#rate[id]]))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
});
|
|
||||||
|
|
||||||
let min = Infinity;
|
|
||||||
for(const id in this.#rate) {
|
|
||||||
if(r.includes(id)) {
|
|
||||||
min = Math.min(min, this.#rate[id]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
min = Math.min(min, ++ this.#rate[id]);
|
|
||||||
}
|
|
||||||
if(min > this.#rateableKnife) {
|
|
||||||
for(const id in this.#rate) {
|
|
||||||
this.#rate[id] -= this.#rateableKnife;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return r.map(id=>this.#system.clone(this.#characters[id]));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Character;
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
class Event {
|
import { clone } from '../functions/util.js';
|
||||||
constructor(system) {
|
import { checkCondition } from '../functions/condition.js';
|
||||||
this.#system = system;
|
|
||||||
}
|
class Event {
|
||||||
|
constructor() {}
|
||||||
|
|
||||||
#system;
|
|
||||||
#events;
|
#events;
|
||||||
|
|
||||||
initial({events}) {
|
initial({events}) {
|
||||||
@@ -24,18 +24,18 @@ class Event {
|
|||||||
return Object.keys(this.#events).length;
|
return Object.keys(this.#events).length;
|
||||||
}
|
}
|
||||||
|
|
||||||
check(eventId) {
|
check(eventId, property) {
|
||||||
const { include, exclude, NoRandom } = this.get(eventId);
|
const { include, exclude, NoRandom } = this.get(eventId);
|
||||||
if(NoRandom) return false;
|
if(NoRandom) return false;
|
||||||
if(exclude && this.#system.check(exclude)) return false;
|
if(exclude && checkCondition(property, exclude)) return false;
|
||||||
if(include) return this.#system.check(include);
|
if(include) return checkCondition(property, include);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
get(eventId) {
|
get(eventId) {
|
||||||
const event = this.#events[eventId];
|
const event = this.#events[eventId];
|
||||||
if(!event) throw new Error(`[ERROR] No Event[${eventId}]`);
|
if(!event) throw new Error(`[ERROR] No Event[${eventId}]`);
|
||||||
return this.#system.clone(event);
|
return clone(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
information(eventId) {
|
information(eventId) {
|
||||||
@@ -43,13 +43,13 @@ class Event {
|
|||||||
return { description };
|
return { description };
|
||||||
}
|
}
|
||||||
|
|
||||||
do(eventId) {
|
do(eventId, property) {
|
||||||
const { effect, branch, event: description, postEvent, grade } = this.get(eventId);
|
const { effect, branch, event: description, postEvent } = this.get(eventId);
|
||||||
if(branch)
|
if(branch)
|
||||||
for(const [cond, next] of branch)
|
for(const [cond, next] of branch)
|
||||||
if(this.#system.check(cond))
|
if(checkCondition(property, cond))
|
||||||
return { effect, next, description, grade };
|
return { effect, next, description };
|
||||||
return { effect, postEvent, description, grade };
|
return { effect, postEvent, description };
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||