mirror of
https://github.com/VickScarlet/lifeRestart.git
synced 2026-03-29 13:15:53 +08:00
daily update
This commit is contained in:
@@ -69,7 +69,9 @@ class App{
|
||||
this.#language = App.languages['zh-cn'];
|
||||
break;
|
||||
}
|
||||
Laya.Text.langPacks = (await import(`./i18n/${this.#language}.js`)).default;
|
||||
globalThis.$lang =
|
||||
Laya.Text.langPacks =
|
||||
(await import(`./i18n/${this.#language}.js`)).default;
|
||||
}
|
||||
|
||||
resigterEvent() {
|
||||
@@ -79,7 +81,8 @@ class App{
|
||||
}
|
||||
|
||||
async start({
|
||||
language = App.languages['zh-cn']
|
||||
language = App.languages['zh-cn'],
|
||||
theme = 'default',
|
||||
}) {
|
||||
this.resigterEvent();
|
||||
this.#initLaya();
|
||||
|
||||
@@ -67,4 +67,36 @@ function mapSet(target, source) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
|
||||
export { clone, max, min, sum, average, weightRandom, listRandom, getListValuesMap, mapConvert, getConvertedMap, mapSet };
|
||||
function deepMapSet(target, source) {
|
||||
for(const key in source) {
|
||||
if(typeof source[key] === 'object')
|
||||
deepMapSet(target[key], source[key]);
|
||||
else
|
||||
target[key] = source[key];
|
||||
}
|
||||
return target;
|
||||
}
|
||||
|
||||
|
||||
function format(str, ...args) {
|
||||
const replace = set => (match, key) => {
|
||||
const value = set[key];
|
||||
switch(typeof value) {
|
||||
case 'object': return JSON.stringify(value);
|
||||
case 'boolean':
|
||||
case 'number':
|
||||
case 'string': return value;
|
||||
default: return value?.toString?.() || match;
|
||||
}
|
||||
};
|
||||
|
||||
switch(args.length) {
|
||||
case 0: return str;
|
||||
case 1:
|
||||
if (typeof(args[0]) != "object") break;
|
||||
return str.replace(/{(.+?)}/g, replace(args[0]));
|
||||
}
|
||||
return str.replace(/{(\d+)}/g, replace(args));
|
||||
}
|
||||
|
||||
export { clone, max, min, sum, average, weightRandom, listRandom, getListValuesMap, mapConvert, getConvertedMap, mapSet, deepMapSet, format };
|
||||
@@ -46,9 +46,11 @@ export default ({
|
||||
UI_Manual: 'Manual',
|
||||
UI_Auto: 'Auto',
|
||||
|
||||
UI_Goto_Summary: 'Goto Summary',
|
||||
UI_Title_Summary: 'Life Summary',
|
||||
UI_Talent_Extend: 'Talent, You can choose one to extend',
|
||||
UI_Remake_Again: 'Remake Again',
|
||||
UI_Rank: 'Rank',
|
||||
|
||||
UI_Final_Age: 'Age',
|
||||
UI_Total_Judge: 'Judge',
|
||||
@@ -58,35 +60,37 @@ export default ({
|
||||
UI_Event_Collection_Rate: 'Event Collection',
|
||||
UI_Talent_Collection_Rate: 'Talent Collection',
|
||||
|
||||
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_Achievement_Achieve: 'Achievement',
|
||||
|
||||
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_Judge_Level_0: 'Hell', // 地狱
|
||||
UI_Judge_Level_1: 'Worse', // 折磨
|
||||
UI_Judge_Level_2: 'Bad', // 不佳
|
||||
UI_Judge_Level_3: 'Normal', // 普通
|
||||
UI_Judge_Level_4: 'Good', // 优秀
|
||||
UI_Judge_Level_5: 'Great', // 罕见
|
||||
UI_Judge_Level_6: 'Excellent', // 逆天
|
||||
UI_Judge_Level_7: 'Perfect', // 传说
|
||||
|
||||
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_Spirit_Judge_Level_0: 'Hell', // 地狱
|
||||
UI_Spirit_Judge_Level_1: 'Tortured', // 折磨
|
||||
UI_Spirit_Judge_Level_2: 'Unlucky', // 不幸
|
||||
UI_Spirit_Judge_Level_3: 'Normal', // 普通
|
||||
UI_Spirit_Judge_Level_4: 'Happy', // 幸福
|
||||
UI_Spirit_Judge_Level_5: 'Blissful ', // 极乐
|
||||
UI_Spirit_Judge_Level_6: 'Paradise', // 天命
|
||||
|
||||
UI_AGE_Judge_Level_0: 'Stillborn', // 胎死腹中
|
||||
UI_AGE_Judge_Level_1: 'Early', // 早夭
|
||||
UI_AGE_Judge_Level_2: 'Young', // 少年
|
||||
UI_AGE_Judge_Level_3: 'Heyday', // 盛年
|
||||
UI_AGE_Judge_Level_4: 'Middle', // 中年
|
||||
UI_AGE_Judge_Level_5: 'Sexagenarian', // 花甲
|
||||
UI_AGE_Judge_Level_6: 'Septuagenarian', // 古稀
|
||||
UI_AGE_Judge_Level_7: 'Octogenarian', // 杖朝
|
||||
UI_AGE_Judge_Level_8: 'Nonagenarian', // 南山
|
||||
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: '元神',
|
||||
@@ -97,4 +101,8 @@ export default ({
|
||||
UI_Strength_Judge_Level_9: '金丹',
|
||||
UI_Strength_Judge_Level_10: '元婴',
|
||||
UI_Strength_Judge_Level_11: '仙体',
|
||||
|
||||
F_RemakeTimes: 'Remake {0} Times',
|
||||
F_AchievementCount: 'Achievement {0}',
|
||||
F_TalentSelection: '{name} ({description})',
|
||||
});
|
||||
@@ -45,6 +45,7 @@ export default ({
|
||||
UI_Manual: '手动',
|
||||
UI_Auto: '自动',
|
||||
|
||||
UI_Goto_Summary: '人生总结',
|
||||
UI_Title_Summary: '人生总结',
|
||||
UI_Talent_Extend: '天赋:你可以选择一个,下辈子还能抽到',
|
||||
UI_Remake_Again: '再次重开',
|
||||
@@ -57,6 +58,9 @@ export default ({
|
||||
UI_Event_Collection_Rate: '事件收集率',
|
||||
UI_Talent_Collection_Rate: '天赋收集率',
|
||||
UI_Statistics: '统计',
|
||||
UI_Rank: '排行榜',
|
||||
|
||||
UI_Achievement_Achieve: '获得成就',
|
||||
|
||||
UI_Judge_Level_0: '地狱',
|
||||
UI_Judge_Level_1: '折磨',
|
||||
@@ -111,4 +115,8 @@ export default ({
|
||||
UI_Achievement_Count_Judge_Level_3: '抽到橙色概率四倍',
|
||||
UI_Achievement_Count_Judge_Level_4: '抽到橙色概率五倍',
|
||||
UI_Achievement_Count_Judge_Level_5: '抽到橙色概率六倍',
|
||||
|
||||
F_RemakeTimes: '已重开{0}次',
|
||||
F_AchievementCount: '成就达成{0}个',
|
||||
F_TalentSelection: '{name}({description})',
|
||||
});
|
||||
File diff suppressed because one or more lines are too long
@@ -465,4 +465,62 @@ class ColorfulBox extends Laya.Box {
|
||||
label.text = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class BlankBox extends Laya.Box {
|
||||
constructor() {
|
||||
super();
|
||||
this.mask = new Laya.Sprite();
|
||||
this.#blank = new Laya.Sprite();
|
||||
this.addChild(this.#blank);
|
||||
}
|
||||
|
||||
#blank;
|
||||
#timeLine;
|
||||
#pause = true;
|
||||
|
||||
#draw() {
|
||||
this.mask.graphics.clear();
|
||||
this.#blank.graphics.clear();
|
||||
this.mask.graphics.drawRect(0, 0, this.width, this.height, '#000000');
|
||||
this.#blank.graphics.drawRect(0, 0, this.width, this.height, '#000000');
|
||||
if(this.#timeLine) this.#timeLine.destroy();
|
||||
this.#timeLine = new Laya.TimeLine()
|
||||
.to(this.#blank, { x: this.width }, 2000)
|
||||
.to(this.#blank, { x: -this.width }, 0);
|
||||
this.#timeLine.play(0, true);
|
||||
if(this.#pause) this.#timeLine.pause();
|
||||
}
|
||||
get pause() {
|
||||
return this.#pause;
|
||||
}
|
||||
set pause(value) {
|
||||
if(this.#pause == value) return;
|
||||
this.#pause = value;
|
||||
this.#blank.visible = !value;
|
||||
if(value) this.#timeLine.pause();
|
||||
else this.#timeLine.resume();
|
||||
}
|
||||
|
||||
destroy(destroyChild) {
|
||||
this.#timeLine.destroy(true);
|
||||
super.destroy(destroyChild);
|
||||
}
|
||||
|
||||
get width() {
|
||||
return super.width;
|
||||
}
|
||||
set width(value) {
|
||||
super.width = value;
|
||||
this.#blank.x = -this.width;
|
||||
this.#draw();
|
||||
}
|
||||
|
||||
get height() {
|
||||
return super.height;
|
||||
}
|
||||
set height(value) {
|
||||
super.height = value;
|
||||
this.#draw();
|
||||
}
|
||||
}
|
||||
@@ -55,10 +55,6 @@ export default class CyberTrajectory extends CyberTrajectoryUI {
|
||||
#speed;
|
||||
#auto;
|
||||
|
||||
static load() {
|
||||
return ['images/slider/vslider_1@3x$bar.png'];
|
||||
}
|
||||
|
||||
static #createComponent = plugin.extractComponents(CyberTrajectory.uiView, ['boxTrajectoryItem']);
|
||||
#createTrajectoryItem() {
|
||||
const item = CyberTrajectory.#createComponent('boxTrajectoryItem');
|
||||
|
||||
@@ -2,100 +2,51 @@ export default class Achievement extends AchievementUI {
|
||||
constructor() {
|
||||
super();
|
||||
this.btnBack.on(Laya.Event.CLICK, this, () => $ui.switchView(UI.pages.MAIN));
|
||||
const min = Math.min(this.btnAchievement.fontSize, this.btnStatistics.fontSize);
|
||||
const max = Math.max(this.btnAchievement.fontSize, this.btnStatistics.fontSize);
|
||||
this.#state = {min, max};
|
||||
this.btnStatistics.on(Laya.Event.CLICK, this, ()=>this.switch('statistics'));
|
||||
this.btnAchievement.on(Laya.Event.CLICK, this, ()=>this.switch('achievement'));
|
||||
|
||||
this.listAchievements.renderHandler = new Laya.Handler(this, this.onRenderAchievement);
|
||||
this.listAchievements.scrollBar.elasticDistance = 150;
|
||||
this.on(Laya.Event.RESIZE, this, () => {
|
||||
this.boxPage.width = 2 * this.width;
|
||||
this.boxA.width = this.boxB.width = this.width;
|
||||
if(this.boxPage.x < 0) {
|
||||
this.boxPage.x = - this.width;
|
||||
}
|
||||
|
||||
const renderWidth = this.listAchievements?._itemRender?.props?.width;
|
||||
if(renderWidth) {
|
||||
const col = Math.max(Math.floor((this.width - 65) / renderWidth), 1);
|
||||
this.listAchievements.width = col * renderWidth + (col - 1) * (this.listAchievements.spaceY || 0) + 30;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
#state;
|
||||
#tweens;
|
||||
|
||||
init() {
|
||||
this.switch('statistics', 0);
|
||||
|
||||
const {statistics, achievements, PropertyTypes: pt} = core;
|
||||
|
||||
this.listAchievements.array = achievements;
|
||||
|
||||
this.labRemakeTimes.text = statistics[pt.TMS].value;
|
||||
this.labRemakeTimes.text = $_.format($lang.F_RemakeTimes, statistics[pt.TMS].value);
|
||||
this.labRemakeTimesJudge.text = statistics[pt.TMS].judge;
|
||||
this.labAchievementCountJudge.color = $ui.common.grade[statistics[pt.TMS].grade];
|
||||
$_.deepMapSet(this.boxRemakeTimes, $ui.common.achievement[statistics[pt.TMS].grade]);
|
||||
|
||||
this.labAchievementCount.text = statistics[pt.CACHV].value;
|
||||
this.labAchievementCount.text = $_.format($lang.F_AchievementCount, statistics[pt.CACHV].value);
|
||||
this.labAchievementCountJudge.text = statistics[pt.CACHV].judge;
|
||||
this.labAchievementCountJudge.color = $ui.common.grade[statistics[pt.CACHV].grade];
|
||||
$_.deepMapSet(this.boxAchievementCount, $ui.common.achievement[statistics[pt.CACHV].grade]);
|
||||
|
||||
this.labEventRate.text = parseInt(statistics[pt.REVT].value*100)+'%';
|
||||
this.prgEventRate.value = statistics[pt.REVT].value;
|
||||
this.prgEventRate.scaleX = statistics[pt.REVT].value;
|
||||
$_.deepMapSet(this.boxEventRate, $ui.common.achievement[statistics[pt.REVT].grade]);
|
||||
|
||||
this.labTalentRate.text = parseInt(statistics[pt.RTLT].value*100)+'%';
|
||||
this.prgTalentRate.value = statistics[pt.RTLT].value;
|
||||
this.prgTalentRate.scaleX = statistics[pt.RTLT].value;
|
||||
$_.deepMapSet(this.boxTalentRate, $ui.common.achievement[statistics[pt.RTLT].grade]);
|
||||
}
|
||||
|
||||
switch(page, time=300) {
|
||||
if(this.#tweens) {
|
||||
this.#tweens.forEach(tween => Laya.Tween.clear(tween));
|
||||
}
|
||||
this.#tweens = [];
|
||||
|
||||
switch (page) {
|
||||
case 'statistics':
|
||||
time = - this.boxPage.x / this.width * time;
|
||||
this.#tweens.push(
|
||||
Laya.Tween.to(this.boxPage, {x: 0}, time, Laya.Ease.backOut, Laya.Handler.create(this, () => this.#tweens = null)),
|
||||
Laya.Tween.to(this.btnStatistics, {fontSize: this.#state.max, anchorX: 0.5, anchorY: 1}, time, Laya.Ease.backOut),
|
||||
Laya.Tween.to(this.btnAchievement, {fontSize: this.#state.min, anchorX: 0.5, anchorY: 1}, time, Laya.Ease.backOut),
|
||||
);
|
||||
break;
|
||||
case 'achievement':
|
||||
time = (this.width + this.boxPage.x) / this.width * time;
|
||||
this.#tweens.push(
|
||||
Laya.Tween.to(this.boxPage, {x: - this.width}, time, Laya.Ease.backOut, Laya.Handler.create(this, () => this.#tweens = null)),
|
||||
Laya.Tween.to(this.btnStatistics, {fontSize: this.#state.min, anchorX: 0.5, anchorY: 1}, time, Laya.Ease.backOut),
|
||||
Laya.Tween.to(this.btnAchievement, {fontSize: this.#state.max, anchorX: 0.5, anchorY: 1}, time, Laya.Ease.backOut),
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
onRenderAchievement(box, index) {
|
||||
onRenderAchievement(box) {
|
||||
const dataSource = box.dataSource;
|
||||
|
||||
const name = box.getChildByName('name');
|
||||
const description = box.getChildByName('description');
|
||||
const completed = box.getChildByName('completed');
|
||||
const uncomplete = box.getChildByName('uncomplete');
|
||||
const boxMask = box.getChildByName('boxMask');
|
||||
|
||||
$_.deepMapSet(box, $ui.common.achievement[dataSource.grade]);
|
||||
name.color = description.color = $ui.common.defaultFontColor;
|
||||
|
||||
if(dataSource.isAchieved) {
|
||||
name.text = dataSource.name;
|
||||
description.text = dataSource.description;
|
||||
completed.visible = true;
|
||||
uncomplete.visible = false;
|
||||
boxMask.visible = false;
|
||||
} else {
|
||||
name.text = dataSource.hide? '???': dataSource.name;
|
||||
description.text = dataSource.hide? '???': dataSource.description;
|
||||
completed.visible = false;
|
||||
uncomplete.visible = true;
|
||||
boxMask.visible = true;
|
||||
}
|
||||
|
||||
box.colorFilter = $ui.gradeFilter(dataSource.grade);
|
||||
}
|
||||
}
|
||||
@@ -97,42 +97,6 @@ export default class Property extends PropertyUI {
|
||||
this.btnStrengthReduce.disabled = this.btnStrengthReduce.gray = false;
|
||||
this.btnMoneyIncrease.disabled = this.btnMoneyIncrease.gray = false;
|
||||
this.btnMoneyReduce.disabled = this.btnMoneyReduce.gray = false;
|
||||
|
||||
if (this.total >= this.#propertyPoints) {
|
||||
this.btnCharmIncrease.disabled = this.btnCharmIncrease.gray = true;
|
||||
this.btnIntelligenceIncrease.disabled = this.btnIntelligenceIncrease.gray = true;
|
||||
this.btnStrengthIncrease.disabled = this.btnStrengthIncrease.gray = true;
|
||||
this.btnMoneyIncrease.disabled = this.btnMoneyIncrease.gray = true;
|
||||
} else if (this.total <= 0) {
|
||||
this.btnCharmReduce.disabled = this.btnCharmReduce.gray = true;
|
||||
this.btnIntelligenceReduce.disabled = this.btnIntelligenceReduce.gray = true;
|
||||
this.btnStrengthReduce.disabled = this.btnStrengthReduce.gray = true;
|
||||
this.btnMoneyReduce.disabled = this.btnMoneyReduce.gray = true;
|
||||
}
|
||||
|
||||
if (charm <= this.#propertyAllocateLimit[0]) {
|
||||
this.btnCharmReduce.disabled = this.btnCharmReduce.gray = true;
|
||||
} else if (charm >= this.#propertyAllocateLimit[1]) {
|
||||
this.btnCharmIncrease.disabled = this.btnCharmIncrease.gray = true;
|
||||
}
|
||||
|
||||
if (intelligence <= this.#propertyAllocateLimit[0]) {
|
||||
this.btnIntelligenceReduce.disabled = this.btnIntelligenceReduce.gray = true;
|
||||
} else if (intelligence >= this.#propertyAllocateLimit[1]) {
|
||||
this.btnIntelligenceIncrease.disabled = this.btnIntelligenceIncrease.gray = true;
|
||||
}
|
||||
|
||||
if (strength <= this.#propertyAllocateLimit[0]) {
|
||||
this.btnStrengthReduce.disabled = this.btnStrengthReduce.gray = true;
|
||||
} else if (strength >= this.#propertyAllocateLimit[1]) {
|
||||
this.btnStrengthIncrease.disabled = this.btnStrengthIncrease.gray = true;
|
||||
}
|
||||
|
||||
if (money <= this.#propertyAllocateLimit[0]) {
|
||||
this.btnMoneyReduce.disabled = this.btnMoneyReduce.gray = true;
|
||||
} else if (money >= this.#propertyAllocateLimit[1]) {
|
||||
this.btnMoneyIncrease.disabled = this.btnMoneyIncrease.gray = true;
|
||||
}
|
||||
}
|
||||
|
||||
check(left, right, value) {
|
||||
@@ -209,35 +173,9 @@ export default class Property extends PropertyUI {
|
||||
renderTalent(box) {
|
||||
const dataSource = box.dataSource;
|
||||
|
||||
const labTitle = box.getChildByName("labTitle");
|
||||
const grade1 = box.getChildByName("grade1");
|
||||
const grade2 = box.getChildByName("grade2");
|
||||
const grade3 = box.getChildByName("grade3");
|
||||
const labDescription = box.getChildByName("labDescription");
|
||||
box.label = $_.format($lang.F_TalentSelection, dataSource);
|
||||
const style = $ui.common.card[dataSource.grade].normal;
|
||||
|
||||
labTitle.text = dataSource.name;
|
||||
labDescription.text = dataSource.description;
|
||||
switch (dataSource.grade) {
|
||||
case 1:
|
||||
grade1.visible = true;
|
||||
grade2.visible = false;
|
||||
grade3.visible = false;
|
||||
break;
|
||||
case 2:
|
||||
grade1.visible = false;
|
||||
grade2.visible = true;
|
||||
grade3.visible = false;
|
||||
break;
|
||||
case 3:
|
||||
grade1.visible = false;
|
||||
grade2.visible = false;
|
||||
grade3.visible = true;
|
||||
break;
|
||||
default:
|
||||
grade1.visible = false;
|
||||
grade2.visible = false;
|
||||
grade3.visible = false;
|
||||
break;
|
||||
}
|
||||
$_.deepMapSet(box, style);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
export default class Summary extends SummaryUI {
|
||||
constructor() {
|
||||
super();
|
||||
this.listSummary.renderHandler = Laya.Handler.create(this, this.renderSummary, null, false);
|
||||
this.listSelectedTalents.renderHandler = Laya.Handler.create(this, this.renderTalent, null, false);
|
||||
this.btnAgain.on(Laya.Event.CLICK, this, this.onAgain);
|
||||
}
|
||||
@@ -15,63 +16,22 @@ export default class Summary extends SummaryUI {
|
||||
|
||||
init({talents}) {
|
||||
const {summary, lastExtendTalent} = core;
|
||||
const gradeFilters = [
|
||||
$ui.common.grade0,
|
||||
$ui.common.grade1,
|
||||
$ui.common.grade2,
|
||||
$ui.common.grade3,
|
||||
];
|
||||
const gradeColors = [
|
||||
$ui.common.filter0,
|
||||
$ui.common.filter1,
|
||||
$ui.common.filter2,
|
||||
$ui.common.filter3,
|
||||
];
|
||||
|
||||
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];
|
||||
this.listSummary.array = [
|
||||
[core.PropertyTypes.HCHR, $lang.UI_Property_Charm],
|
||||
[core.PropertyTypes.HINT, $lang.UI_Property_Intelligence],
|
||||
[core.PropertyTypes.HSTR, $lang.UI_Property_Strength],
|
||||
[core.PropertyTypes.HMNY, $lang.UI_Property_Money],
|
||||
[core.PropertyTypes.HSPR, $lang.UI_Property_Spirit],
|
||||
[core.PropertyTypes.HAGE, $lang.UI_Final_Age],
|
||||
[core.PropertyTypes.SUM, $lang.UI_Total_Judge],
|
||||
].map(([type, key]) => {
|
||||
const data = summary[type];
|
||||
return {
|
||||
label: `${key}${$lang.UI_Colon} ${data.value} ${$lang[data.judge]}`,
|
||||
grade: data.grade,
|
||||
}
|
||||
});
|
||||
|
||||
talents.sort(({id:a, grade:ag}, {id:b, grade:bg},)=>{
|
||||
if(a == lastExtendTalent) return -1;
|
||||
@@ -81,45 +41,17 @@ export default class Summary extends SummaryUI {
|
||||
this.#selectedTalent = talents[0].id;
|
||||
this.listSelectedTalents.array = talents;
|
||||
}
|
||||
|
||||
renderSummary(box) {
|
||||
const {label, grade} = box.dataSource;
|
||||
box.label = label;
|
||||
$_.deepMapSet(box, $ui.common.summary[grade]);
|
||||
}
|
||||
renderTalent(box) {
|
||||
const dataSource = box.dataSource;
|
||||
|
||||
const labTitle = box.getChildByName("labTitle");
|
||||
const grade1 = box.getChildByName("grade1");
|
||||
const grade2 = box.getChildByName("grade2");
|
||||
const grade3 = box.getChildByName("grade3");
|
||||
const labDescription = box.getChildByName("labDescription");
|
||||
const selected = box.getChildByName("selected");
|
||||
const unselected = box.getChildByName("unselected");
|
||||
|
||||
labTitle.text = dataSource.name;
|
||||
labDescription.text = dataSource.description;
|
||||
switch (dataSource.grade) {
|
||||
case 1:
|
||||
grade1.visible = true;
|
||||
grade2.visible = false;
|
||||
grade3.visible = false;
|
||||
break;
|
||||
case 2:
|
||||
grade1.visible = false;
|
||||
grade2.visible = true;
|
||||
grade3.visible = false;
|
||||
break;
|
||||
case 3:
|
||||
grade1.visible = false;
|
||||
grade2.visible = false;
|
||||
grade3.visible = true;
|
||||
break;
|
||||
default:
|
||||
grade1.visible = false;
|
||||
grade2.visible = false;
|
||||
grade3.visible = false;
|
||||
break;
|
||||
}
|
||||
|
||||
selected.visible = dataSource.id == this.#selectedTalent;
|
||||
unselected.visible = !selected.visible;
|
||||
box.label = $_.format($lang.F_TalentSelection, dataSource);
|
||||
const style = $ui.common.card[dataSource.grade];
|
||||
$_.deepMapSet(box, dataSource.id == this.#selectedTalent? style.selected: style.normal);
|
||||
box.getChildByName('blank').pause = dataSource.id != this.#selectedTalent;
|
||||
box.off(Laya.Event.CLICK, this, this.onSelectTalent);
|
||||
box.on(Laya.Event.CLICK, this, this.onSelectTalent, [dataSource.id]);
|
||||
}
|
||||
|
||||
@@ -36,10 +36,16 @@ export default class Talent extends TalentUI {
|
||||
renderTalent(box, index) {
|
||||
const dataSource = box.dataSource;
|
||||
|
||||
box.label = `${dataSource.name}(${dataSource.description})`;
|
||||
const style = $ui.common.card[dataSource.grade];
|
||||
const blank = box.getChildByName('blank');
|
||||
box.label = $_.format($lang.F_TalentSelection, dataSource);
|
||||
|
||||
$_.mapSet(box, this.#selected.has(index)? style.selected: style.normal);
|
||||
const style = $ui.common.card[dataSource.grade];
|
||||
const changeStyle = () => {
|
||||
const selected = this.#selected.has(index);
|
||||
blank.pause = !selected;
|
||||
$_.deepMapSet(box, selected? style.selected: style.normal);
|
||||
}
|
||||
changeStyle();
|
||||
|
||||
box.offAll(Laya.Event.CLICK);
|
||||
box.on(Laya.Event.CLICK, this, () => {
|
||||
@@ -56,7 +62,7 @@ export default class Talent extends TalentUI {
|
||||
? 'UI_Next'
|
||||
: 'UI_Talent_Select_Uncomplete';
|
||||
|
||||
$_.mapSet(box, this.#selected.has(index)? style.selected: style.normal);
|
||||
changeStyle();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -14,40 +14,6 @@ export default class Trajectory extends TrajectoryUI {
|
||||
this.btnSummary.on(Laya.Event.CLICK, this, this.onSummary);
|
||||
|
||||
this.panelTrajectory.vScrollBar.elasticDistance = 150;
|
||||
|
||||
let interval = null;
|
||||
let timeout = null;
|
||||
|
||||
const scroll = alter => {
|
||||
let value = this.panelTrajectory.vScrollBar.value + alter;
|
||||
if(value < 0) value = 0;
|
||||
if(value > this.panelTrajectory.vScrollBar.max) value = this.panelTrajectory.vScrollBar.max;
|
||||
this.panelTrajectory.scrollTo(0, value);
|
||||
}
|
||||
const on = (btn, alter) => {
|
||||
btn.off(Laya.Event.CLICK, this, scroll);
|
||||
btn.on(Laya.Event.CLICK, this, scroll, [100*alter]);
|
||||
timeout = setTimeout(() => {
|
||||
btn.off(Laya.Event.CLICK, this, scroll);
|
||||
interval = setInterval(() => scroll(10*alter), 10);
|
||||
}, 100);
|
||||
}
|
||||
const clear = () => {
|
||||
if(interval) {
|
||||
clearInterval(interval);
|
||||
interval = null;
|
||||
}
|
||||
if(timeout) {
|
||||
clearTimeout(timeout);
|
||||
timeout = null;
|
||||
}
|
||||
};
|
||||
this.btnUp.on(Laya.Event.MOUSE_DOWN, this, on, [this.btnUp, -1]);
|
||||
this.btnDown.on(Laya.Event.MOUSE_DOWN, this, on, [this.btnDown, 1]);
|
||||
this.btnUp.on(Laya.Event.MOUSE_UP, this, clear);
|
||||
this.btnUp.on(Laya.Event.MOUSE_OUT, this, clear);
|
||||
this.btnDown.on(Laya.Event.MOUSE_UP, this, clear);
|
||||
this.btnDown.on(Laya.Event.MOUSE_OUT, this, clear);
|
||||
this.scbSpeed.on(Laya.Event.CHANGE, this, () => this.speed = this.scbSpeed.value);
|
||||
this.scbSpeed.on(Laya.Event.MOUSE_UP, this, () => this.onNext());
|
||||
}
|
||||
@@ -56,7 +22,10 @@ export default class Trajectory extends TrajectoryUI {
|
||||
#auto;
|
||||
|
||||
static load() {
|
||||
return ['images/slider/vslider_1@3x$bar.png'];
|
||||
return [
|
||||
"images/atlas/images/progress.atlas",
|
||||
'images/atlas/images/slider.atlas',
|
||||
];
|
||||
}
|
||||
|
||||
static #createComponent = plugin.extractComponents(Trajectory.uiView, ['boxTrajectoryItem']);
|
||||
@@ -64,6 +33,10 @@ export default class Trajectory extends TrajectoryUI {
|
||||
const item = Trajectory.#createComponent('boxTrajectoryItem');
|
||||
item.labContent = item.getChildByName('labContent');
|
||||
item.labAge = item.getChildByName('hboxAge').getChildByName('labAge');
|
||||
const config = $ui.common.trajectoryItem;
|
||||
$_.deepMapSet(item, config.box);
|
||||
item.getChildByName('hboxAge')._childs.forEach(child => child.color = config.ageColor);
|
||||
item.labContent.color = config.contentColor;
|
||||
return item;
|
||||
}
|
||||
#isEnd;
|
||||
|
||||
@@ -13,9 +13,6 @@ const popups = {
|
||||
ACHIEVEMENT: 'POPUP_ACHIEVEMENT',
|
||||
};
|
||||
|
||||
const colors = {
|
||||
}
|
||||
|
||||
const cyber = {
|
||||
pages: {
|
||||
[pages.LOADING]: "loading",
|
||||
@@ -62,6 +59,21 @@ const def = {
|
||||
configs: {
|
||||
bgColor: '#222831',
|
||||
common: {
|
||||
defaultFontColor: '#eeeeee',
|
||||
trajectoryItem: {
|
||||
box: {
|
||||
defaultColor: '#4a5361',
|
||||
defaultStroke: '#eeeeee',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#4a5361',
|
||||
hoverStroke: '#eeeeee',
|
||||
hoverLabel: '#eeeeee',
|
||||
lineWidth: 2,
|
||||
radius: 0,
|
||||
},
|
||||
ageColor: '#ffffee',
|
||||
contentColor: '#eeeeee',
|
||||
},
|
||||
grade: [
|
||||
'#cccccc',
|
||||
'#55fffe',
|
||||
@@ -153,25 +165,105 @@ const def = {
|
||||
radius: 4,
|
||||
},
|
||||
selected: {
|
||||
defaultColor: '#f8f8f8',
|
||||
defaultStroke: '#a5ff88',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#3b3b3b',
|
||||
hoverStroke: '#a5ff88',
|
||||
defaultColor: '#f7a989',
|
||||
defaultStroke: '#f8f8f8',
|
||||
defaultLabel: '#3b3b3b',
|
||||
hoverColor: '#f7a989',
|
||||
hoverStroke: '#f8f8f8',
|
||||
hoverLabel: '#3b3b3b',
|
||||
lineWidth: 4,
|
||||
radius: 4,
|
||||
}
|
||||
}
|
||||
],
|
||||
summary: [
|
||||
{
|
||||
defaultColor: '#464646',
|
||||
defaultStroke: '#f8f8f8',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#c0c0c0',
|
||||
hoverStroke: '#f8f8f8',
|
||||
hoverLabel: '#3b3b3b',
|
||||
lineWidth: 2,
|
||||
radius: 0,
|
||||
},{
|
||||
defaultColor: '#6495ed',
|
||||
defaultStroke: '#f8f8f8',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#87cefa',
|
||||
hoverStroke: '#f8f8f8',
|
||||
hoverLabel: '#3b3b3b',
|
||||
lineWidth: 2,
|
||||
radius: 0,
|
||||
},{
|
||||
defaultColor: '#e2a7ff',
|
||||
defaultStroke: '#f8f8f8',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#e7beff',
|
||||
hoverStroke: '#f8f8f8',
|
||||
hoverLabel: '#3b3b3b',
|
||||
lineWidth: 2,
|
||||
radius: 0,
|
||||
},
|
||||
{
|
||||
defaultColor: '#ffa07a',
|
||||
defaultStroke: '#f8f8f8',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#f7a989',
|
||||
hoverStroke: '#f8f8f8',
|
||||
hoverLabel: '#3b3b3b',
|
||||
lineWidth: 2,
|
||||
radius: 0,
|
||||
}
|
||||
],
|
||||
achievement: [
|
||||
{
|
||||
defaultColor: '#464646',
|
||||
defaultStroke: '#f8f8f8',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#c0c0c0',
|
||||
hoverStroke: '#f8f8f8',
|
||||
hoverLabel: '#3b3b3b',
|
||||
lineWidth: 4,
|
||||
radius: 0,
|
||||
},{
|
||||
defaultColor: '#6495ed',
|
||||
defaultStroke: '#f8f8f8',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#87cefa',
|
||||
hoverStroke: '#f8f8f8',
|
||||
hoverLabel: '#3b3b3b',
|
||||
lineWidth: 4,
|
||||
radius: 0,
|
||||
},{
|
||||
defaultColor: '#e2a7ff',
|
||||
defaultStroke: '#f8f8f8',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#e7beff',
|
||||
hoverStroke: '#f8f8f8',
|
||||
hoverLabel: '#3b3b3b',
|
||||
lineWidth: 4,
|
||||
radius: 0,
|
||||
},
|
||||
{
|
||||
defaultColor: '#ffa07a',
|
||||
defaultStroke: '#f8f8f8',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#f7a989',
|
||||
hoverStroke: '#f8f8f8',
|
||||
hoverLabel: '#3b3b3b',
|
||||
lineWidth: 4,
|
||||
radius: 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
class: {
|
||||
btn_main: {
|
||||
defaultColor: '#393e46',
|
||||
defaultStroke: '#eeeeee',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#ff7878',
|
||||
hoverStroke: '#eeeeee',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverLabel: '#eeeeee',
|
||||
lineWidth: 2,
|
||||
radius: 4,
|
||||
@@ -179,15 +271,18 @@ const def = {
|
||||
btn_small: {
|
||||
defaultColor: '#5865f2',
|
||||
defaultStroke: '#eeeeee',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#1160b0',
|
||||
hoverStroke: '#eeeeee',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverLabel: '#eeeeee',
|
||||
lineWidth: 0,
|
||||
radius: 4,
|
||||
},
|
||||
title: {
|
||||
color: '#ffffff',
|
||||
},
|
||||
font_default: {
|
||||
color: '#eeeeee',
|
||||
}
|
||||
},
|
||||
pages: {
|
||||
@@ -205,10 +300,85 @@ const def = {
|
||||
vars: {
|
||||
btnDrawCard: 'btn_main',
|
||||
btnNext: 'btn_main',
|
||||
},
|
||||
names: {
|
||||
title: 'title',
|
||||
}
|
||||
},
|
||||
[pages.PROPERTY]: {
|
||||
vars: {
|
||||
btnRandomAllocate: 'btn_main',
|
||||
btnNext: 'btn_main',
|
||||
title: 'title',
|
||||
},
|
||||
names: {
|
||||
font_default: 'font_default',
|
||||
property: {
|
||||
colorFilter: '#eeeeeeff'
|
||||
}
|
||||
}
|
||||
},
|
||||
[pages.TRAJECTORY]: {
|
||||
vars: {
|
||||
btnSummary: 'btn_main',
|
||||
boxTrajectory: {
|
||||
defaultColor: '#393e46',
|
||||
defaultStroke: '#eeeeee',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#393e46',
|
||||
hoverStroke: '#eeeeee',
|
||||
hoverLabel: '#eeeeee',
|
||||
lineWidth: 2,
|
||||
radius: 4,
|
||||
},
|
||||
boxSpeed: {
|
||||
colorFilter: '#ffffffff'
|
||||
}
|
||||
},
|
||||
names: {
|
||||
propertyBox: {
|
||||
defaultColor: '#222831',
|
||||
defaultStroke: '#eeeeee',
|
||||
defaultLabel: '#eeeeee',
|
||||
hoverColor: '#222831',
|
||||
hoverStroke: '#eeeeee',
|
||||
hoverLabel: '#eeeeee',
|
||||
lineWidth: 2,
|
||||
radius: 4,
|
||||
},
|
||||
propertyValue: {
|
||||
defaultColor: '#eeeeee',
|
||||
defaultStroke: '#eeeeee',
|
||||
defaultLabel: '#222831',
|
||||
hoverColor: '#eeeeee',
|
||||
hoverStroke: '#eeeeee',
|
||||
hoverLabel: '#222831',
|
||||
lineWidth: 0,
|
||||
radius: 4,
|
||||
}
|
||||
}
|
||||
},
|
||||
[pages.SUMMARY]: {
|
||||
vars: {
|
||||
btnAgain: 'btn_main',
|
||||
title: 'title',
|
||||
},
|
||||
names: {
|
||||
font_default: 'font_default',
|
||||
}
|
||||
},
|
||||
[pages.ACHIEVEMENT]: {
|
||||
vars: {
|
||||
btnBack: 'btn_small',
|
||||
btnRank: 'btn_small',
|
||||
},
|
||||
names: {
|
||||
font_default: 'font_default',
|
||||
title: 'title',
|
||||
}
|
||||
},
|
||||
[pages.THANKS]: {
|
||||
vars: {
|
||||
btnBack: 'btn_small',
|
||||
},
|
||||
}
|
||||
},
|
||||
popups: {
|
||||
|
||||
@@ -7,7 +7,7 @@ export default class UIManager {
|
||||
stage = Laya.stage;
|
||||
}
|
||||
this.#stage = stage;
|
||||
this.#stage.bgColor = this.#configs.bgColor;
|
||||
this.theme = 'default';
|
||||
|
||||
stage.addChild(this.#viewLayer);
|
||||
this.#viewLayer.zOrder = 1;
|
||||
@@ -192,7 +192,7 @@ export default class UIManager {
|
||||
if(typeof config == 'string') {
|
||||
config = this.#configs?.class?.[config];
|
||||
}
|
||||
for(const key in config) target[key] = config[key];
|
||||
$_.deepMapSet(target, config);
|
||||
};
|
||||
|
||||
if(config.names)
|
||||
@@ -285,6 +285,7 @@ export default class UIManager {
|
||||
set theme(value) {
|
||||
this.#theme = value;
|
||||
this.#stage.bgColor = this.#configs.bgColor;
|
||||
document?.querySelector?.('meta[name="theme-color"]')?.setAttribute?.('content', this.#configs.bgColor);
|
||||
}
|
||||
|
||||
get #pages() {
|
||||
|
||||
Reference in New Issue
Block a user