Files
lifeRestart/src/ui/themes/default/summary.js
Vick Scarlet 286828abe7 add game mode
2022-01-25 18:15:22 +08:00

77 lines
2.8 KiB
JavaScript

export default class Summary extends ui.view.DefaultTheme.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);
}
#selectedTalent;
#enableExtend;
onAgain() {
core.talentExtend(this.#selectedTalent);
core.times ++;
$ui.switchView(UI.pages.MAIN);
}
init({talents, enableExtend}) {
const {summary, lastExtendTalent} = core;
this.#enableExtend = enableExtend;
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;
if(b == lastExtendTalent) return 1;
return bg - ag;
});
if(this.#enableExtend) {
this.#selectedTalent = talents[0].id;
} else {
this.#selectedTalent = lastExtendTalent;
}
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;
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]);
}
onSelectTalent(talentId) {
if(!this.#enableExtend) {
return $$event('message', ['M_DisableExtendTalent']);
}
if(talentId == this.#selectedTalent) {
this.#selectedTalent = null;
} else {
this.#selectedTalent = talentId;
}
this.listSelectedTalents.refresh();
}
}