update daily

This commit is contained in:
Vick Scarlet
2021-11-11 21:37:45 +08:00
parent c06cd9ea62
commit c94e9e7433
18 changed files with 574 additions and 244 deletions

2
.vscode/launch.json vendored
View File

@@ -8,7 +8,7 @@
"name": "Launch Chrome", "name": "Launch Chrome",
"request": "launch", "request": "launch",
"type": "pwa-chrome", "type": "pwa-chrome",
"url": "http://172.27.192.1:8000/public/index.html", "url": "http://127.0.0.1:8000/public/index.html",
"webRoot": "${workspaceFolder}" "webRoot": "${workspaceFolder}"
}, },
{ {

View File

@@ -1,8 +1,8 @@
{ {
"x":0, "x":0,
"type":"View", "type":"View",
"selectedBox":16, "selectedBox":10,
"selecteID":77, "selecteID":150,
"props":{"width":1125,"sceneColor":"#000000","sceneBg":"laya/views/view/CyberTheme/CyberSummary.png","runtime":"ViewBase","height":2436}, "props":{"width":1125,"sceneColor":"#000000","sceneBg":"laya/views/view/CyberTheme/CyberSummary.png","runtime":"ViewBase","height":2436},
"nodeParent":-1, "nodeParent":-1,
"label":"View", "label":"View",
@@ -403,14 +403,13 @@
"props":{"width":120,"left":0,"height":120,"centerY":0}, "props":{"width":120,"left":0,"height":120,"centerY":0},
"nodeParent":17, "nodeParent":17,
"label":"Box", "label":"Box",
"isOpen":true, "isOpen":false,
"isDirectory":true, "isDirectory":true,
"isAniNode":true, "isAniNode":true,
"hasChild":true, "hasChild":true,
"compId":18, "compId":18,
"child":[ "child":[
{ {
"x":75,
"type":"Image", "type":"Image",
"props":{"skin":"images/icons/icon_chr@3x.png","scaleY":1.1,"scaleX":1.1,"centerY":0,"centerX":0}, "props":{"skin":"images/icons/icon_chr@3x.png","scaleY":1.1,"scaleX":1.1,"centerY":0,"centerX":0},
"nodeParent":18, "nodeParent":18,
@@ -439,9 +438,9 @@
{ {
"x":60, "x":60,
"type":"Box", "type":"Box",
"props":{"top":20,"runtime":"ColorFilterItem","right":240,"left":255,"bottom":20}, "props":{"var":"boxCharmGrade","top":20,"runtime":"ColorFilterItem","right":240,"name":"boxCharmGrade","left":255,"bottom":20},
"nodeParent":17, "nodeParent":17,
"label":"Box", "label":"Box(boxCharmGrade)",
"isOpen":true, "isOpen":true,
"isDirectory":true, "isDirectory":true,
"isAniNode":true, "isAniNode":true,
@@ -460,6 +459,19 @@
"compId":199, "compId":199,
"child":[ "child":[
] ]
},
{
"x":75,
"type":"Label",
"props":{"var":"labCharm","text":"100","strokeColor":"#323232","stroke":8,"name":"labCharm","fontSize":50,"font":"方正像素12","color":"#ffffff","centerY":0,"centerX":0,"anchorY":0.5,"anchorX":0.5,"align":"center"},
"nodeParent":200,
"label":"Label(labCharm)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":251,
"child":[
]
}] }]
}, },
{ {
@@ -530,9 +542,9 @@
{ {
"x":60, "x":60,
"type":"Box", "type":"Box",
"props":{"top":20,"runtime":"ColorFilterItem","right":240,"left":255,"bottom":20}, "props":{"var":"boxIntelligenceGrade","top":20,"runtime":"ColorFilterItem","right":240,"name":"boxIntelligenceGrade","left":255,"bottom":20},
"nodeParent":47, "nodeParent":47,
"label":"Box", "label":"Box(boxIntelligenceGrade)",
"isOpen":true, "isOpen":true,
"isDirectory":true, "isDirectory":true,
"isAniNode":true, "isAniNode":true,
@@ -551,6 +563,19 @@
"compId":212, "compId":212,
"child":[ "child":[
] ]
},
{
"x":75,
"type":"Label",
"props":{"var":"labIntelligence","text":"100","strokeColor":"#323232","stroke":8,"name":"labIntelligence","fontSize":50,"font":"方正像素12","color":"#ffffff","centerY":0,"centerX":0,"anchorY":0.5,"anchorX":0.5,"align":"center"},
"nodeParent":211,
"label":"Label(labIntelligence)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":249,
"child":[
]
}] }]
}, },
{ {
@@ -621,9 +646,9 @@
{ {
"x":60, "x":60,
"type":"Box", "type":"Box",
"props":{"top":20,"runtime":"ColorFilterItem","right":240,"left":255,"bottom":20}, "props":{"var":"boxStrengthGrade","top":20,"runtime":"ColorFilterItem","right":240,"name":"boxStrengthGrade","left":255,"bottom":20},
"nodeParent":77, "nodeParent":77,
"label":"Box", "label":"Box(boxStrengthGrade)",
"isOpen":true, "isOpen":true,
"isDirectory":true, "isDirectory":true,
"isAniNode":true, "isAniNode":true,
@@ -642,6 +667,19 @@
"compId":214, "compId":214,
"child":[ "child":[
] ]
},
{
"x":75,
"type":"Label",
"props":{"var":"labStrength","text":"100","strokeColor":"#323232","stroke":8,"name":"labStrength","fontSize":50,"font":"方正像素12","color":"#ffffff","centerY":0,"centerX":0,"anchorY":0.5,"anchorX":0.5,"align":"center"},
"nodeParent":213,
"label":"Label(labStrength)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":246,
"child":[
]
}] }]
}, },
{ {
@@ -712,9 +750,9 @@
{ {
"x":60, "x":60,
"type":"Box", "type":"Box",
"props":{"top":20,"runtime":"ColorFilterItem","right":240,"left":255,"bottom":20}, "props":{"var":"boxMoneyGrade","top":20,"runtime":"ColorFilterItem","right":240,"name":"boxMoneyGrade","left":255,"bottom":20},
"nodeParent":107, "nodeParent":107,
"label":"Box", "label":"Box(boxMoneyGrade)",
"isOpen":true, "isOpen":true,
"isDirectory":true, "isDirectory":true,
"isAniNode":true, "isAniNode":true,
@@ -733,6 +771,19 @@
"compId":216, "compId":216,
"child":[ "child":[
] ]
},
{
"x":75,
"type":"Label",
"props":{"var":"labMoney","text":"100","strokeColor":"#323232","stroke":8,"name":"labMoney","fontSize":50,"font":"方正像素12","color":"#ffffff","centerY":0,"centerX":0,"anchorY":0.5,"anchorX":0.5,"align":"center"},
"nodeParent":215,
"label":"Label(labMoney)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":250,
"child":[
]
}] }]
}, },
{ {
@@ -803,9 +854,9 @@
{ {
"x":60, "x":60,
"type":"Box", "type":"Box",
"props":{"top":20,"runtime":"ColorFilterItem","right":240,"left":255,"bottom":20}, "props":{"var":"boxSpiritGrade","top":20,"runtime":"ColorFilterItem","right":240,"name":"boxSpiritGrade","left":255,"bottom":20},
"nodeParent":195, "nodeParent":195,
"label":"Box", "label":"Box(boxSpiritGrade)",
"isOpen":true, "isOpen":true,
"isDirectory":true, "isDirectory":true,
"isAniNode":true, "isAniNode":true,
@@ -824,6 +875,19 @@
"compId":218, "compId":218,
"child":[ "child":[
] ]
},
{
"x":75,
"type":"Label",
"props":{"var":"labSpirit","text":"100","strokeColor":"#323232","stroke":8,"name":"labSpirit","fontSize":50,"font":"方正像素12","color":"#ffffff","centerY":0,"centerX":0,"anchorY":0.5,"anchorX":0.5,"align":"center"},
"nodeParent":217,
"label":"Label(labSpirit)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":252,
"child":[
]
}] }]
}, },
{ {
@@ -1009,17 +1073,18 @@
"props":{"x":10,"width":1000,"name":"buttonGroup","height":200,"centerX":0,"bottom":70}, "props":{"x":10,"width":1000,"name":"buttonGroup","height":200,"centerX":0,"bottom":70},
"nodeParent":1, "nodeParent":1,
"label":"Box(buttonGroup)", "label":"Box(buttonGroup)",
"isOpen":false, "isOpen":true,
"isDirectory":true, "isDirectory":true,
"isAniNode":true, "isAniNode":true,
"hasChild":true, "hasChild":true,
"compId":10, "compId":10,
"child":[ "child":[
{ {
"x":30,
"type":"Button", "type":"Button",
"props":{"y":100,"x":250,"width":500,"skin":"images/button/button_main@3x.png","name":"btnRandomAllocate","label":"UI_Remake_Again","centerY":0,"centerX":0}, "props":{"y":100,"x":250,"width":500,"var":"btnAgain","skin":"images/button/button_main@3x.png","name":"btnAgain","label":"UI_Remake_Again","centerY":0,"centerX":0},
"nodeParent":10, "nodeParent":10,
"label":"Button(btnRandomAllocate)", "label":"Button(btnAgain)",
"isOpen":true, "isOpen":true,
"isDirectory":true, "isDirectory":true,
"isAniNode":true, "isAniNode":true,
@@ -1027,6 +1092,7 @@
"compId":150, "compId":150,
"child":[ "child":[
{ {
"x":45,
"type":"Box", "type":"Box",
"props":{}, "props":{},
"nodeParent":150, "nodeParent":150,
@@ -1207,6 +1273,7 @@
}] }]
}, },
{ {
"x":45,
"type":"Box", "type":"Box",
"props":{}, "props":{},
"nodeParent":150, "nodeParent":150,
@@ -1286,13 +1353,14 @@
"props":{"visible":false,"name":"colorBox"}, "props":{"visible":false,"name":"colorBox"},
"nodeParent":1, "nodeParent":1,
"label":"VBox(colorBox)", "label":"VBox(colorBox)",
"isOpen":false, "isOpen":true,
"isDirectory":true, "isDirectory":true,
"isAniNode":true, "isAniNode":true,
"hasChild":true, "hasChild":true,
"compId":210, "compId":210,
"child":[ "child":[
{ {
"x":30,
"type":"Label", "type":"Label",
"props":{"y":0,"var":"colorGrade0","text":"#ccccccff","fontSize":40,"font":"方正像素12","color":"#cccccc"}, "props":{"y":0,"var":"colorGrade0","text":"#ccccccff","fontSize":40,"font":"方正像素12","color":"#cccccc"},
"nodeParent":210, "nodeParent":210,
@@ -1305,6 +1373,7 @@
] ]
}, },
{ {
"x":30,
"type":"Label", "type":"Label",
"props":{"y":10,"var":"colorGrade1","text":"#55fffeff","fontSize":40,"font":"方正像素12","color":"#55fffe"}, "props":{"y":10,"var":"colorGrade1","text":"#55fffeff","fontSize":40,"font":"方正像素12","color":"#55fffe"},
"nodeParent":210, "nodeParent":210,
@@ -1317,6 +1386,7 @@
] ]
}, },
{ {
"x":30,
"type":"Label", "type":"Label",
"props":{"y":20,"var":"colorGrade2","text":"#b17cffff","fontSize":40,"font":"方正像素12","color":"#b17cff"}, "props":{"y":20,"var":"colorGrade2","text":"#b17cffff","fontSize":40,"font":"方正像素12","color":"#b17cff"},
"nodeParent":210, "nodeParent":210,
@@ -1329,6 +1399,7 @@
] ]
}, },
{ {
"x":30,
"type":"Label", "type":"Label",
"props":{"y":30,"var":"colorGrade3","text":"#ffce45ff","fontSize":40,"font":"方正像素12","color":"#ffce45"}, "props":{"y":30,"var":"colorGrade3","text":"#ffce45ff","fontSize":40,"font":"方正像素12","color":"#ffce45"},
"nodeParent":210, "nodeParent":210,

View File

@@ -1,41 +0,0 @@
export function getRate(type, value) {
switch(type) {
case 'times':
if(value >= 100) return {2:6};
if(value >= 70) return {2:5};
if(value >= 50) return {2:4};
if(value >= 30) return {2:3};
if(value >= 10) return {2:2};
return {2: 1};
case 'achievement':
if(value >= 100) return {3:6};
if(value >= 70) return {3:5};
if(value >= 50) return {3:4};
if(value >= 30) return {3:3};
if(value >= 10) return {3:2};
return {3:1};
default: return {};
}
}
export function getGrade(type, value) {
switch(type) {
case 'times':
case 'achievement':
if(value >= 100) return 3;
if(value >= 50) return 2;
if(value >= 10) return 1;
return 0;
case 'talentRate':
if(value >= 0.9) return 3;
if(value >= 0.6) return 2;
if(value >= 0.3) return 1;
return 0;
case 'eventRate':
if(value >= 0.6) return 3;
if(value >= 0.4) return 2;
if(value >= 0.2) return 1;
return 0;
default: return 0;
}
}

View File

@@ -1,89 +0,0 @@
const data = {
"CHR": [
{"judge": "地狱", "grade": 0},
{"min":1, "judge": "折磨", "grade": 0},
{"min":2, "judge": "不佳", "grade": 0},
{"min":4, "judge": "普通", "grade": 0},
{"min":7, "judge": "优秀", "grade": 1},
{"min":9, "judge": "罕见", "grade": 2},
{"min":11, "judge": "逆天", "grade": 3},
],
"MNY": [
{"judge": "地狱", "grade": 0},
{"min":1, "judge": "折磨", "grade": 0},
{"min":2, "judge": "不佳", "grade": 0},
{"min":4, "judge": "普通", "grade": 0},
{"min":7, "judge": "优秀", "grade": 1},
{"min":9, "judge": "罕见", "grade": 2},
{"min":11, "judge": "逆天", "grade": 3},
],
"SPR": [
{"judge": "地狱", "grade": 0},
{"min":1, "judge": "折磨", "grade": 0},
{"min":2, "judge": "不幸", "grade": 0},
{"min":4, "judge": "普通", "grade": 0},
{"min":7, "judge": "幸福", "grade": 1},
{"min":9, "judge": "极乐", "grade": 2},
{"min":11, "judge": "天命", "grade": 3},
],
"INT": [
{"judge": "地狱", "grade": 0},
{"min":1, "judge": "折磨", "grade": 0},
{"min":2, "judge": "不佳", "grade": 0},
{"min":4, "judge": "普通", "grade": 0},
{"min":7, "judge": "优秀", "grade": 1},
{"min":9, "judge": "罕见", "grade": 2},
{"min":11, "judge": "逆天", "grade": 3},
{"min":21, "judge": "识海", "grade": 3},
{"min":131, "judge": "元神", "grade": 3},
{"min":501, "judge": "仙魂", "grade": 3},
],
"STR": [
{"judge": "地狱", "grade": 0},
{"min":1, "judge": "折磨", "grade": 0},
{"min":2, "judge": "不佳", "grade": 0},
{"min":4, "judge": "普通", "grade": 0},
{"min":7, "judge": "优秀", "grade": 1},
{"min":9, "judge": "罕见", "grade": 2},
{"min":11, "judge": "逆天", "grade": 3},
{"min":21, "judge": "凝气", "grade": 3},
{"min":101, "judge": "筑基", "grade": 3},
{"min":401, "judge": "金丹", "grade": 3},
{"min":1001, "judge": "元婴", "grade": 3},
{"min":2001, "judge": "仙体", "grade": 3},
],
"AGE": [
{"judge": "胎死腹中", "grade": 0},
{"min":1, "judge": "早夭", "grade": 0},
{"min":10, "judge": "少年", "grade": 0},
{"min":18, "judge": "盛年", "grade": 0},
{"min":40, "judge": "中年", "grade": 0},
{"min":60, "judge": "花甲", "grade": 1},
{"min":70, "judge": "古稀", "grade": 1},
{"min":80, "judge": "杖朝", "grade": 2},
{"min":90, "judge": "南山", "grade": 2},
{"min":95, "judge": "不老", "grade": 3},
{"min":100, "judge": "修仙", "grade": 3},
{"min":500, "judge": "仙寿", "grade": 3},
],
"SUM": [
{"judge": "地狱", "grade": 0},
{"min":41, "judge": "折磨", "grade": 0},
{"min":50, "judge": "不佳", "grade": 0},
{"min":60, "judge": "普通", "grade": 0},
{"min":80, "judge": "优秀", "grade": 1},
{"min":100, "judge": "罕见", "grade": 2},
{"min":110, "judge": "逆天", "grade": 3},
{"min":120, "judge": "传说", "grade": 3},
]
}
function summary(type, value) {
let length = data[type].length;
while(length--) {
const {min, judge, grade} = data[type][length];
if(min==void 0 || value >= min) return {judge, grade};
}
}
export { summary };

View File

@@ -44,4 +44,22 @@ function listRandom(list) {
return list[Math.floor(Math.random() * list.length)]; return list[Math.floor(Math.random() * list.length)];
} }
export { clone, max, min, sum, average, weightRandom, listRandom }; function getListValuesMap(list, fn) {
const map = {};
list.forEach(key=>map[key] = fn(key));
return map;
}
function mapConvert(map, fn) {
for(const key in map)
map[key] = fn(key, map[key]);
}
function getConvertedMap(map, fn) {
const newMap = {};
for(const key in map)
newMap[key] = fn(key, map[key]);
return newMap;
}
export { clone, max, min, sum, average, weightRandom, listRandom, getListValuesMap, mapConvert, getConvertedMap };

View File

@@ -47,4 +47,44 @@ export default ({
UI_Final_Age: 'Age', UI_Final_Age: 'Age',
UI_Total_Judge: 'Judge', UI_Total_Judge: 'Judge',
'UI_Judge_Level_0': '地狱',
'UI_Judge_Level_1': '折磨',
'UI_Judge_Level_2': '不佳',
'UI_Judge_Level_3': '普通',
'UI_Judge_Level_4': '优秀',
'UI_Judge_Level_5': '罕见',
'UI_Judge_Level_6': '逆天',
'UI_Judge_Level_7': '传说',
'UI_Spirit_Judge_Level_0': '地狱',
'UI_Spirit_Judge_Level_1': '折磨',
'UI_Spirit_Judge_Level_2': '不幸',
'UI_Spirit_Judge_Level_3': '普通',
'UI_Spirit_Judge_Level_4': '幸福',
'UI_Spirit_Judge_Level_5': '极乐',
'UI_Spirit_Judge_Level_6': '天命',
'UI_AGE_Judge_Level_0': '胎死腹中',
'UI_AGE_Judge_Level_1': '早夭',
'UI_AGE_Judge_Level_2': '少年',
'UI_AGE_Judge_Level_3': '盛年',
'UI_AGE_Judge_Level_4': '中年',
'UI_AGE_Judge_Level_5': '花甲',
'UI_AGE_Judge_Level_6': '古稀',
'UI_AGE_Judge_Level_7': '杖朝',
'UI_AGE_Judge_Level_8': '南山',
'UI_AGE_Judge_Level_9': '不老',
'UI_AGE_Judge_Level_10': '修仙',
'UI_AGE_Judge_Level_11': '仙寿',
'UI_Intelligence_Judge_Level_7': '识海',
'UI_Intelligence_Judge_Level_8': '元神',
'UI_Intelligence_Judge_Level_9': '仙魂',
'UI_Strength_Judge_Level_7': '凝气',
'UI_Strength_Judge_Level_8': '筑基',
'UI_Strength_Judge_Level_9': '金丹',
'UI_Strength_Judge_Level_10': '元婴',
'UI_Strength_Judge_Level_11': '仙体',
}); });

View File

@@ -46,4 +46,44 @@ export default ({
UI_Final_Age: '享年', UI_Final_Age: '享年',
UI_Total_Judge: '总评', UI_Total_Judge: '总评',
'UI_Judge_Level_0': '地狱',
'UI_Judge_Level_1': '折磨',
'UI_Judge_Level_2': '不佳',
'UI_Judge_Level_3': '普通',
'UI_Judge_Level_4': '优秀',
'UI_Judge_Level_5': '罕见',
'UI_Judge_Level_6': '逆天',
'UI_Judge_Level_7': '传说',
'UI_Spirit_Judge_Level_0': '地狱',
'UI_Spirit_Judge_Level_1': '折磨',
'UI_Spirit_Judge_Level_2': '不幸',
'UI_Spirit_Judge_Level_3': '普通',
'UI_Spirit_Judge_Level_4': '幸福',
'UI_Spirit_Judge_Level_5': '极乐',
'UI_Spirit_Judge_Level_6': '天命',
'UI_AGE_Judge_Level_0': '胎死腹中',
'UI_AGE_Judge_Level_1': '早夭',
'UI_AGE_Judge_Level_2': '少年',
'UI_AGE_Judge_Level_3': '盛年',
'UI_AGE_Judge_Level_4': '中年',
'UI_AGE_Judge_Level_5': '花甲',
'UI_AGE_Judge_Level_6': '古稀',
'UI_AGE_Judge_Level_7': '杖朝',
'UI_AGE_Judge_Level_8': '南山',
'UI_AGE_Judge_Level_9': '不老',
'UI_AGE_Judge_Level_10': '修仙',
'UI_AGE_Judge_Level_11': '仙寿',
'UI_Intelligence_Judge_Level_7': '识海',
'UI_Intelligence_Judge_Level_8': '元神',
'UI_Intelligence_Judge_Level_9': '仙魂',
'UI_Strength_Judge_Level_7': '凝气',
'UI_Strength_Judge_Level_8': '筑基',
'UI_Strength_Judge_Level_9': '金丹',
'UI_Strength_Judge_Level_10': '元婴',
'UI_Strength_Judge_Level_11': '仙体',
}); });

View File

@@ -33,13 +33,137 @@ location.search.substr(1).split('&').forEach(item => {
core.config({ core.config({
defaultPropertyPoints: 20, // default number of points for a property defaultPropertyPoints: 20, // default number of points for a property
talentSelectLimit: 3, // max number of talents that can be selected talentSelectLimit: 3, // max number of talents that can be selected
propertyAllocateLimit: [0, 10], // scoop of properties that can be allocated propertyAllocateLimit: [0, 10], // scoop of properties that can be allocated,
defaultPropertys: { SPR: 5 }, // default properties
talentConfig: { // config for talent talentConfig: { // config for talent
talentPullCount: 10, // number of talents to pull from the talent pool talentPullCount: 10, // number of talents to pull from the talent pool
talentRate: { 1:100, 2:10, 3:1, total: 1000 }, // rate of talent pull talentRate: { 1:100, 2:10, 3:1, total: 1000 }, // rate of talent pull
additions: {
TMS: [
[ 10, { 2: 1 }],
[ 30, { 2: 2 }],
[ 50, { 2: 3 }],
[ 70, { 2: 4 }],
[100, { 2: 5 }],
],
CACHV: [
[ 10, { 2: 1 }],
[ 30, { 2: 2 }],
[ 50, { 2: 3 }],
[ 70, { 2: 4 }],
[100, { 2: 5 }],
]
},
},
propertyConfig: { // config for property
judge: {
// type: [min, grade, judge]
RTLT: [
[ 0, 0],
[ 0.3, 1],
[ 0.6, 2],
[ 0.9, 3],
],
REVT: [
[ 0, 0],
[ 0.2, 1],
[ 0.4, 2],
[ 0.6, 3],
],
TMS: [
[ 0, 0, 'UI_Remake_Times_Judge_Level_0'],
[ 10, 1, 'UI_Remake_Times_Judge_Level_1'],
[ 30, 1, 'UI_Remake_Times_Judge_Level_2'],
[ 50, 2, 'UI_Remake_Times_Judge_Level_3'],
[ 70, 2, 'UI_Remake_Times_Judge_Level_4'],
[ 100, 3, 'UI_Remake_Times_Judge_Level_5'],
],
CACHV: [
[ 0, 0, 'UI_Achievement_Count_Judge_Level_0'],
[ 10, 1, 'UI_Achievement_Count_Judge_Level_1'],
[ 30, 1, 'UI_Achievement_Count_Judge_Level_2'],
[ 50, 2, 'UI_Achievement_Count_Judge_Level_3'],
[ 70, 2, 'UI_Achievement_Count_Judge_Level_4'],
[ 100, 3, 'UI_Achievement_Count_Judge_Level_5'],
],
HCHR: [
[ 0, 0, 'UI_Judge_Level_0'],
[ 1, 0, 'UI_Judge_Level_1'],
[ 2, 0, 'UI_Judge_Level_2'],
[ 4, 0, 'UI_Judge_Level_3'],
[ 7, 1, 'UI_Judge_Level_4'],
[ 9, 2, 'UI_Judge_Level_5'],
[ 11, 3, 'UI_Judge_Level_6'],
],
HMNY: [
[ 0, 0, 'UI_Judge_Level_0'],
[ 1, 0, 'UI_Judge_Level_1'],
[ 2, 0, 'UI_Judge_Level_2'],
[ 4, 0, 'UI_Judge_Level_3'],
[ 7, 1, 'UI_Judge_Level_4'],
[ 9, 2, 'UI_Judge_Level_5'],
[ 11, 3, 'UI_Judge_Level_6'],
],
HSPR: [
[ 0, 0, 'UI_Spirit_Judge_Level_0'],
[ 1, 0, 'UI_Spirit_Judge_Level_1'],
[ 2, 0, 'UI_Spirit_Judge_Level_2'],
[ 4, 0, 'UI_Spirit_Judge_Level_3'],
[ 7, 1, 'UI_Spirit_Judge_Level_4'],
[ 9, 2, 'UI_Spirit_Judge_Level_5'],
[ 11, 3, 'UI_Spirit_Judge_Level_6'],
],
HINT: [
[ 0, 0, 'UI_Judge_Level_0'],
[ 1, 0, 'UI_Judge_Level_1'],
[ 2, 0, 'UI_Judge_Level_2'],
[ 4, 0, 'UI_Judge_Level_3'],
[ 7, 1, 'UI_Judge_Level_4'],
[ 9, 2, 'UI_Judge_Level_5'],
[ 11, 3, 'UI_Judge_Level_6'],
[ 21, 3, 'UI_Intelligence_Judge_Level_7'],
[ 131, 3, 'UI_Intelligence_Judge_Level_8'],
[ 501, 3, 'UI_Intelligence_Judge_Level_9'],
],
HSTR: [
[ 0, 0, 'UI_Judge_Level_0'],
[ 1, 0, 'UI_Judge_Level_1'],
[ 2, 0, 'UI_Judge_Level_2'],
[ 4, 0, 'UI_Judge_Level_3'],
[ 7, 1, 'UI_Judge_Level_4'],
[ 9, 2, 'UI_Judge_Level_5'],
[ 11, 3, 'UI_Judge_Level_6'],
[ 21, 3, 'UI_Strength_Judge_Level_7'],
[ 101, 3, 'UI_Strength_Judge_Level_8'],
[ 401, 3, 'UI_Strength_Judge_Level_9'],
[1001, 3, 'UI_Strength_Judge_Level_10'],
[2001, 3, 'UI_Strength_Judge_Level_11'],
],
HAGE: [
[ 0, 0, 'UI_AGE_Judge_Level_0'],
[ 1, 0, 'UI_AGE_Judge_Level_1'],
[ 10, 0, 'UI_AGE_Judge_Level_2'],
[ 18, 0, 'UI_AGE_Judge_Level_3'],
[ 40, 0, 'UI_AGE_Judge_Level_4'],
[ 60, 1, 'UI_AGE_Judge_Level_5'],
[ 70, 1, 'UI_AGE_Judge_Level_6'],
[ 80, 2, 'UI_AGE_Judge_Level_7'],
[ 90, 2, 'UI_AGE_Judge_Level_8'],
[ 95, 3, 'UI_AGE_Judge_Level_9'],
[ 100, 3, 'UI_AGE_Judge_Level_10'],
[ 500, 3, 'UI_AGE_Judge_Level_11'],
],
SUM: [
[ 0, 0, 'UI_Judge_Level_0'],
[ 41, 0, 'UI_Judge_Level_1'],
[ 50, 0, 'UI_Judge_Level_2'],
[ 60, 0, 'UI_Judge_Level_3'],
[ 80, 1, 'UI_Judge_Level_4'],
[ 100, 2, 'UI_Judge_Level_5'],
[ 110, 3, 'UI_Judge_Level_6'],
[ 120, 3, 'UI_Judge_Level_7'],
],
},
}, },
defaultPropertys: {
SPR: 5,
}
}) })
game.start(query); game.start(query);

View File

@@ -16,9 +16,10 @@ class Achievement {
initial({achievements}) { initial({achievements}) {
this.#achievements = achievements; this.#achievements = achievements;
return this.count;
} }
count() { get count() {
return Object.keys(this.#achievements).length; return Object.keys(this.#achievements).length;
} }

View File

@@ -17,9 +17,10 @@ class Event {
return b; return b;
}); });
} }
return this.count;
} }
count() { get count() {
return Object.keys(this.#events).length; return Object.keys(this.#events).length;
} }

View File

@@ -1,4 +1,4 @@
import { clone, weightRandom } from '../functions/util.js' import { clone, weightRandom, getListValuesMap, getConvertedMap } from '../functions/util.js'
import Property from './property.js'; import Property from './property.js';
import Event from './event.js'; import Event from './event.js';
import Talent from './talent.js'; import Talent from './talent.js';
@@ -29,10 +29,14 @@ class Life {
loadJSON('events'), loadJSON('events'),
loadJSON('achievement'), loadJSON('achievement'),
]); ]);
this.#property.initial({age});
this.#talent.initial({talents}); const total = {
this.#event.initial({events}); [this.PropertyTypes.TACEV]: this.#achievement.initial({achievements}),
this.#achievement.initial({achievements}); [this.PropertyTypes.TEVT]: this.#event.initial({events}),
[this.PropertyTypes.TTLT]: this.#talent.initial({talents}),
};
this.#property.initial({age, total});
} }
config({ config({
@@ -41,12 +45,14 @@ class Life {
propertyAllocateLimit = [0, 10], // scoop of properties that can be allocated propertyAllocateLimit = [0, 10], // scoop of properties that can be allocated
defaultPropertys = {}, // default propertys defaultPropertys = {}, // default propertys
talentConfig, // config for talent talentConfig, // config for talent
propertyConfig, // config for property
} = {}) { } = {}) {
this.#defaultPropertyPoints = defaultPropertyPoints; this.#defaultPropertyPoints = defaultPropertyPoints;
this.#talentSelectLimit = talentSelectLimit; this.#talentSelectLimit = talentSelectLimit;
this.#propertyAllocateLimit = propertyAllocateLimit; this.#propertyAllocateLimit = propertyAllocateLimit;
this.#defaultPropertys = defaultPropertys; this.#defaultPropertys = defaultPropertys;
this.#talent.config(talentConfig); this.#talent.config(talentConfig);
this.#property.config(propertyConfig);
} }
restart(allocation) { restart(allocation) {
@@ -60,7 +66,7 @@ class Life {
this.doTalent() this.doTalent()
this.#property.restartLastStep(); this.#property.restartLastStep();
this.#achievement.achieve( this.#achievement.achieve(
this.#achievement.Opportunity.START, this.AchievementOpportunity.START,
this.#property this.#property
) )
return contents; return contents;
@@ -84,7 +90,7 @@ class Life {
const content = [talentContent, eventContent].flat(); const content = [talentContent, eventContent].flat();
this.#achievement.achieve( this.#achievement.achieve(
this.#achievement.Opportunity.TRAJECTORY, this.AchievementOpportunity.TRAJECTORY,
this.#property this.#property
) )
return { age, content, isEnd }; return { age, content, isEnd };
@@ -106,8 +112,8 @@ class Life {
} }
doTalent(talents) { doTalent(talents) {
if(talents) this.#property.change(this.#property.TYPES.TLT, talents); if(talents) this.#property.change(this.PropertyTypes.TLT, talents);
talents = this.#property.get(this.#property.TYPES.TLT) talents = this.#property.get(this.PropertyTypes.TLT)
.filter(talentId => this.getTalentCurrentTriggerCount(talentId) < this.#talent.get(talentId).max_triggers); .filter(talentId => this.getTalentCurrentTriggerCount(talentId) < this.#talent.get(talentId).max_triggers);
const contents = []; const contents = [];
@@ -117,7 +123,7 @@ class Life {
this.#triggerTalents[talentId] = this.getTalentCurrentTriggerCount(talentId) + 1; this.#triggerTalents[talentId] = this.getTalentCurrentTriggerCount(talentId) + 1;
const { effect, name, description, grade } = result; const { effect, name, description, grade } = result;
contents.push({ contents.push({
type: this.#property.TYPES.TLT, type: this.PropertyTypes.TLT,
name, name,
grade, grade,
description, description,
@@ -130,10 +136,10 @@ class Life {
doEvent(eventId) { doEvent(eventId) {
const { effect, next, description, postEvent } = this.#event.do(eventId, this.#property); const { effect, next, description, postEvent } = this.#event.do(eventId, this.#property);
this.#property.change(this.#property.TYPES.EVT, eventId); this.#property.change(this.PropertyTypes.EVT, eventId);
this.#property.effect(effect); this.#property.effect(effect);
const content = { const content = {
type: this.#property.TYPES.EVT, type: this.PropertyTypes.EVT,
description, description,
postEvent, postEvent,
} }
@@ -150,47 +156,60 @@ class Life {
} }
talentRandom() { talentRandom() {
const times = this.#property.get(this.#property.TYPES.TMS); return this.#talent.talentRandom(
const achievement = this.#property.get(this.#property.TYPES.CACHV); this.lastExtendTalent,
return this.#talent.talentRandom(this.getLastExtendTalent(), { times, achievement }); this.#getPropertys(
this.PropertyTypes.TMS,
this.PropertyTypes.CACHV,
)
);
} }
talentExtend(talentId) { talentExtend(talentId) {
this.#property.set(this.#property.TYPES.EXT, talentId); this.#property.set(this.PropertyTypes.EXT, talentId);
}
getLastExtendTalent() {
return this.#property.get(this.#property.TYPES.EXT);
}
getSummary() {
this.#achievement.achieve(
this.#achievement.Opportunity.SUMMARY,
this.#property
)
return {
AGE: this.#property.get(this.#property.TYPES.HAGE),
CHR: this.#property.get(this.#property.TYPES.HCHR),
INT: this.#property.get(this.#property.TYPES.HINT),
STR: this.#property.get(this.#property.TYPES.HSTR),
MNY: this.#property.get(this.#property.TYPES.HMNY),
SPR: this.#property.get(this.#property.TYPES.HSPR),
SUM: this.#property.get(this.#property.TYPES.SUM),
};
}
getLastRecord() {
return this.#property.getLastRecord();
} }
exclusive(talents, exclusive) { exclusive(talents, exclusive) {
return this.#talent.exclusive(talents, exclusive); return this.#talent.exclusive(talents, exclusive);
} }
getAchievements() { #getJudges(...types) {
return getListValuesMap(types.flat(), key => this.#property.judge(key));
}
#getPropertys(...types) {
return getListValuesMap(types.flat(), key => this.#property.get(key));
}
get lastExtendTalent() {
return this.#property.get(this.PropertyTypes.EXT);
}
get summary() {
this.#achievement.achieve(
this.AchievementOpportunity.SUMMARY,
this.#property
)
const pt = this.PropertyTypes;
return this.#getJudges(pt.SUM,
pt.HAGE, pt.HCHR, pt.HINT,
pt.HSTR, pt.HMNY, pt.HSPR,
);
}
get status() {
const pt = this.PropertyTypes;
return this.#getJudges( pt.TMS,
pt.CACHV, pt.RTLT, pt.REVT,
);
}
get achievements() {
const ticks = {}; const ticks = {};
this.#property this.#property
.get(this.#property.TYPES.ACHV) .get(this.PropertyTypes.ACHV)
.forEach(([id, tick]) => ticks[id] = tick); .forEach(([id, tick]) => ticks[id] = tick);
return this return this
.#achievement .#achievement
@@ -213,38 +232,20 @@ class Life {
}); });
} }
getTotal() { get PropertyTypes() { return this.#property.TYPES; }
const TMS = this.#property.get(this.#property.TYPES.TMS); get AchievementOpportunity() { return this.#achievement.Opportunity; }
const CACHV = this.#property.get(this.#property.TYPES.CACHV);
const CTLT = this.#property.get(this.#property.TYPES.CTLT);
const CEVT = this.#property.get(this.#property.TYPES.CEVT);
const totalTalent = this.#talent.count();
const totalEvent = this.#event.count();
return {
times: TMS,
achievement: CACHV,
talentRate: CTLT / totalTalent,
eventRate: CEVT / totalEvent,
}
}
get PropertyTypes() { return clone(this.#property.TYPES); }
get talentSelectLimit() { return this.#talentSelectLimit; } get talentSelectLimit() { return this.#talentSelectLimit; }
get propertyAllocateLimit() { return clone(this.#propertyAllocateLimit); } get propertyAllocateLimit() { return clone(this.#propertyAllocateLimit); }
get propertys() { return this.#property.getPropertys(); } get propertys() { return this.#property.getPropertys(); }
get times() { return this.#property?.get(this.#property.TYPES.TMS) || 0; } get times() { return this.#property.get(this.PropertyTypes.TMS) || 0; }
set times(v) { set times(v) {
this.#property?.set(this.#property.TYPES.TMS, v) || 0; this.#property.set(this.PropertyTypes.TMS, v);
this.#achievement.achieve( this.#achievement.achieve(
this.#achievement.Opportunity.END, this.AchievementOpportunity.END,
this.#property this.#property
) )
} }
} }
export default Life; export default Life;

View File

@@ -40,10 +40,20 @@ class Property {
AEVT: "AEVT", // 触发过的事件 Achieve Event AEVT: "AEVT", // 触发过的事件 Achieve Event
ACHV: "ACHV", // 达成的成就 Achievement ACHV: "ACHV", // 达成的成就 Achievement
CTLT: "RTLT", // 天赋选择数 Count Talent CTLT: "CTLT", // 天赋选择数 Count Talent
CEVT: "REVT", // 事件收集数 Count Event CEVT: "CEVT", // 事件收集数 Count Event
CACHV: "CACHV", // 成就达成数 Count Achievement CACHV: "CACHV", // 成就达成数 Count Achievement
// 总数
TTLT: "TTLT", // 总天赋数 Total Talent
TEVT: "TEVT", // 总事件数 Total Event
TACHV: "TACHV", // 总成就数 Total Achievement
// 比率
REVT: "REVT", // 事件收集率 Rate Event
RTLT: "RTLT", // 天赋选择率 Rate Talent
RACHV: "RACHV", // 成就达成率 Rate Achievement
// SPECIAL // SPECIAL
RDM: 'RDM', // 随机属性 random RDM RDM: 'RDM', // 随机属性 random RDM
@@ -62,9 +72,10 @@ class Property {
#ageData; #ageData;
#data = {}; #data = {};
#total;
#judge;
initial({age}) { initial({age, total}) {
this.#ageData = age; this.#ageData = age;
for(const a in age) { for(const a in age) {
let { event, talent } = age[a]; let { event, talent } = age[a];
@@ -84,6 +95,11 @@ class Property {
age[a] = { event, talent }; age[a] = { event, talent };
} }
this.#total = total;
}
config({judge = {}}) {
this.#judge = judge;
} }
restart(data) { restart(data) {
@@ -188,6 +204,15 @@ class Property {
return this.get( return this.get(
this.fallback(prop) this.fallback(prop)
).length; ).length;
case this.TYPES.TTLT:
case this.TYPES.TEVT:
case this.TYPES.TACHV:
return this.#total[prop];
case this.TYPES.RTLT:
case this.TYPES.REVT:
case this.TYPES.RACHV:
const fb = this.fallback(prop);
return this.get(fb[0]) / this.get(fb[1]);
default: return 0; default: return 0;
} }
} }
@@ -209,6 +234,10 @@ class Property {
case this.TYPES.CTLT: return this.TYPES.ATLT; case this.TYPES.CTLT: return this.TYPES.ATLT;
case this.TYPES.CEVT: return this.TYPES.AEVT; case this.TYPES.CEVT: return this.TYPES.AEVT;
case this.TYPES.CACHV: return this.TYPES.ACHV; case this.TYPES.CACHV: return this.TYPES.ACHV;
case this.TYPES.LIF: return this.TYPES.LIF;
case this.TYPES.RTLT: return [this.TYPES.CTLT, this.TYPES.TTLT];
case this.TYPES.REVT: return [this.TYPES.CEVT, this.TYPES.TEVT];
case this.TYPES.RACHV: return [this.TYPES.CACHV, this.TYPES.TACHV];
default: return; default: return;
} }
} }
@@ -299,6 +328,26 @@ class Property {
); );
} }
judge(prop) {
const value = this.get(prop);
const d = this.#judge[prop];
let length = d.length;
const p = 1/length;
const progress = () => {
const min = d[length][0] || 0;
const max = d[length+1]?.[0] || value;
if(max == min) return 1;
return p * (length + (value - min) / (max - min));
}
while(length--) {
const [min, grade, judge] = d[length];
if(min==void 0 || value >= min) return {prop, value, judge, grade, progress: progress()};
}
}
isEnd() { isEnd() {
return this.get(this.TYPES.LIF) < 1; return this.get(this.TYPES.LIF) < 1;
} }

View File

@@ -1,6 +1,5 @@
import { clone, weightRandom } from '../functions/util.js'; import { clone, weightRandom } from '../functions/util.js';
import { checkCondition, extractMaxTriggers } from '../functions/condition.js'; import { checkCondition, extractMaxTriggers } from '../functions/condition.js';
import { getRate } from '../functions/addition.js';
class Talent { class Talent {
constructor() {} constructor() {}
@@ -8,7 +7,7 @@ class Talent {
#talents; #talents;
#talentPullCount; #talentPullCount;
#talentRate; #talentRate;
#rateAddition; #additions;
initial({talents}) { initial({talents}) {
this.#talents = talents; this.#talents = talents;
@@ -28,19 +27,23 @@ class Talent {
} }
} }
} }
return this.count;
}
get count() {
return Object.keys(this.#talents).length;
} }
config({ config({
talentPullCount = 10, // number of talents to pull from the talent pool talentPullCount = 10, // number of talents to pull from the talent pool
talentRate = { 1:100, 2:10, 3:1, total: 1000 }, // rate of talent pull talentRate = { 1:100, 2:10, 3:1, total: 1000 }, // rate of talent pull
additions = {}, // additional additions
} = {}) { } = {}) {
this.#talentPullCount = talentPullCount; this.#talentPullCount = talentPullCount;
this.#talentRate = talentRate; this.#talentRate = talentRate;
this.#additions = additions;
} }
count() {
return Object.keys(this.#talents).length;
}
check(talentId, property) { check(talentId, property) {
const { condition } = this.get(talentId); const { condition } = this.get(talentId);
@@ -69,20 +72,32 @@ class Talent {
return null; return null;
} }
talentRandom(include, {times = 0, achievement = 0} = {}) { getAddition(type, value) {
if(!this.#additions[type]) return {};
for(const [min, addition] of this.#additions[type]) {
if(value >= min) return addition;
}
return {};
}
getRate(additionValues = {}) {
const rate = clone(this.#talentRate); const rate = clone(this.#talentRate);
const rateAddition = { 1:1, 2:1, 3:1, }; const addition = { 1:1, 2:1, 3:1, };
const timesRate = getRate('times', times);
const achievementRate = getRate('achievement', achievement);
for(const grade in timesRate) Object.keys(additionValues).forEach(key => {
rateAddition[grade] += timesRate[grade] - 1; const addi = this.getAddition(key, additionValues[key])
for(const grade in addi)
addition[grade] += addi[grade];
});
for(const grade in achievementRate) for(const grade in addition)
rateAddition[grade] += achievementRate[grade] - 1; rate[grade] *= addition[grade];
for(const grade in rateAddition) return rate;
rate[grade] *= rateAddition[grade]; }
talentRandom(include, additionValues) {
const rate = this.getRate(additionValues);
const randomGrade = () => { const randomGrade = () => {
let randomNumber = Math.floor(Math.random() * rate.total); let randomNumber = Math.floor(Math.random() * rate.total);
@@ -92,7 +107,6 @@ class Talent {
return 0; return 0;
} }
// 1000, 100, 10, 1
const talentList = {}; const talentList = {};
for(const talentId in this.#talents) { for(const talentId in this.#talents) {
const { id, grade, name, description } = this.#talents[talentId]; const { id, grade, name, description } = this.#talents[talentId];

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,10 @@
export default class cyberAchievement extends CyberAchievementUI { export default class cyberAchievement extends CyberAchievementUI {
constructor() { constructor() {
super(); super();
this.btnBack.on(Laya.Event.CLICK, this, () => UIManager.getInstance().switchView(UIManager.getInstance().themes.MAIN));
}
init() {
const status = core.status;
} }
} }

View File

@@ -5,4 +5,9 @@ export default class cyberMain extends CyberMainUI {
this.btnAchievement.on(Laya.Event.CLICK, this, ()=>UIManager.getInstance().switchView(UIManager.getInstance().themes.ACHIEVEMENT)); this.btnAchievement.on(Laya.Event.CLICK, this, ()=>UIManager.getInstance().switchView(UIManager.getInstance().themes.ACHIEVEMENT));
this.btnThanks.on(Laya.Event.CLICK, this, ()=>UIManager.getInstance().switchView(UIManager.getInstance().themes.THANKS)); this.btnThanks.on(Laya.Event.CLICK, this, ()=>UIManager.getInstance().switchView(UIManager.getInstance().themes.THANKS));
} }
init() {
this.btnAchievement.visible =
this.btnThanks.visible = !!core.times;
}
} }

View File

@@ -2,9 +2,88 @@ export default class cyberSummary extends CyberSummaryUI {
constructor() { constructor() {
super(); super();
this.listSelectedTalents.renderHandler = Laya.Handler.create(this, this.renderTalent, null, false); this.listSelectedTalents.renderHandler = Laya.Handler.create(this, this.renderTalent, null, false);
this.btnAgain.on(Laya.Event.CLICK, this, this.onAgain);
}
get gradeFilters() {
return [
this.colorGrade0.text,
this.colorGrade1.text,
this.colorGrade2.text,
this.colorGrade3.text,
];
}
get gradeColors() {
return [
this.colorGrade0.color,
this.colorGrade1.color,
this.colorGrade2.color,
this.colorGrade3.color,
];
}
onAgain() {
UIManager.getInstance().switchView(UIManager.getInstance().themes.MAIN);
core.times ++;
} }
init({talents}) { init({talents}) {
const {summary, lastExtendTalent} = core;
const gradeFilters = this.gradeFilters;
const gradeColors = this.gradeColors;
console.debug(summary, lastExtendTalent);
const age = summary[core.PropertyTypes.HAGE];
this.labAge.text = ''+age.value;
this.labAgeJudge.text = age.judge;
this.labAgeJudge.color = gradeColors[age.grade];
const sum = summary[core.PropertyTypes.SUM];
this.labTotal.text = ''+sum.value;
this.labTotalJudge.text = sum.judge;
this.labTotalJudge.color = gradeColors[sum.grade];
const chr = summary[core.PropertyTypes.HCHR];
this.labCharm.text = ''+chr.value;
this.prgCharm.value = chr.progress;
this.labCharmJudge.text = chr.judge;
this.labCharmJudge.color = gradeColors[chr.grade];
this.boxCharmGrade.colorFilter = gradeFilters[chr.grade];
const int = summary[core.PropertyTypes.HINT];
this.labIntelligence.text = ''+int.value;
this.prgIntelligence.value = int.progress;
this.labIntelligenceJudge.text = int.judge;
this.labIntelligenceJudge.color = gradeColors[int.grade];
this.boxIntelligenceGrade.colorFilter = gradeFilters[int.grade];
const str = summary[core.PropertyTypes.HSTR];
this.labStrength.text = ''+str.value;
this.prgStrength.value = str.progress;
this.labStrengthJudge.text = str.judge;
this.labStrengthJudge.color = gradeColors[str.grade];
this.boxStrengthGrade.colorFilter = gradeFilters[str.grade];
const mny = summary[core.PropertyTypes.HMNY];
this.labMoney.text = ''+mny.value;
this.prgMoney.value = mny.progress;
this.labMoneyJudge.text = mny.judge;
this.labMoneyJudge.color = gradeColors[mny.grade];
this.boxMoneyGrade.colorFilter = gradeFilters[mny.grade];
const spr = summary[core.PropertyTypes.HSPR];
this.labSpirit.text = ''+spr.value;
this.prgSpirit.value = spr.progress;
this.labSpiritJudge.text = spr.judge;
this.labSpiritJudge.color = gradeColors[spr.grade];
this.boxSpiritGrade.colorFilter = gradeFilters[spr.grade];
talents.sort(({id:a, grade:ag}, {id:b, grade:bg},)=>{
if(a == lastExtendTalent) return -1;
if(b == lastExtendTalent) return 1;
return bg - ag;
});
this.listSelectedTalents.array = talents; this.listSelectedTalents.array = talents;
} }

View File

@@ -67,6 +67,7 @@ export default class CyberTrajectory extends CyberTrajectoryUI {
#talents; #talents;
init({propertyAllocate, talents}) { init({propertyAllocate, talents}) {
this.btnSummary.visible = false;
this.#trajectoryItems = []; this.#trajectoryItems = [];
this.#isEnd = false; this.#isEnd = false;
this.#talents = talents; this.#talents = talents;
@@ -100,7 +101,7 @@ export default class CyberTrajectory extends CyberTrajectoryUI {
this.#isEnd = isEnd; this.#isEnd = isEnd;
if(isEnd) { if(isEnd) {
console.debug('end'); this.btnSummary.visible = true;
} }
const item = this.#createTrajectoryItem(); const item = this.#createTrajectoryItem();