mirror of
https://github.com/VickScarlet/lifeRestart.git
synced 2026-02-04 14:53:12 +08:00
commit870d711162Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Jan 27 16:50:19 2022 +0800 update event commitb327eb1765Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Jan 27 16:36:02 2022 +0800 update event commit4e845bc2ebAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Jan 27 16:35:56 2022 +0800 fix ui feel commitbd508913c5Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Jan 27 16:35:22 2022 +0800 update special thanks commitd097b3bc15Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Jan 27 16:04:55 2022 +0800 add unique character commit8d71b73e94Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Tue Jan 25 21:27:29 2022 +0800 fix: bug save load commit286828abe7Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Tue Jan 25 18:15:22 2022 +0800 add game mode commit0e3c885ad3Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Jan 6 20:09:20 2022 +0800 update special thanks commitb421082374Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Fri Dec 31 20:26:20 2021 +0800 update specialthanks commit765a69294bAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Tue Dec 14 19:10:03 2021 +0800 fix ios goto commit8eb8c3ca72Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Tue Dec 14 19:03:37 2021 +0800 add event grade commitab705dd46cAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Tue Dec 14 18:48:42 2021 +0800 build version commita1e4232369Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Tue Dec 14 18:47:05 2021 +0800 change talent replace before property allocate commitf4d7b3ae3cAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Tue Dec 14 18:06:18 2021 +0800 add event grade commit0567e40ddcAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Dec 2 21:28:10 2021 +0800 add particle commitf17003925eAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Dec 2 20:14:26 2021 +0800 change ui commitf8beda1d8fAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Dec 2 19:08:30 2021 +0800 change popup message ui commit915a2aa17dAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Dec 2 18:34:29 2021 +0800 new build commitb5edabc104Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Dec 2 18:18:46 2021 +0800 add hint message commita143feadafAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Dec 2 17:57:31 2021 +0800 fix copy bug commiteab1975791Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Dec 2 17:56:28 2021 +0800 add save/load commitacf9b92134Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Dec 2 14:35:33 2021 +0800 add theme switch commit488a6054abAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Wed Dec 1 18:30:36 2021 +0800 fix uiManager bug commitf0317eaf14Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Wed Dec 1 16:07:03 2021 +0800 add message popup commiteb02d1ee6fAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Sun Nov 28 21:22:54 2021 +0800 change relocation commit60503eae47Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Sun Nov 28 19:27:16 2021 +0800 change ScaleButton -> Laya.runtime.ScaleButton commit52ef5909c1Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Sun Nov 28 19:26:31 2021 +0800 change ScaleButton -> Laya.runtime.ScaleButton commit0284f6aa71Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Sun Nov 28 19:05:24 2021 +0800 config webpack commit0e272ffd99Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Sun Nov 28 13:17:41 2021 +0800 add thanks commite1e2ab4701Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Sun Nov 28 11:40:21 2021 +0800 add light theme commit4f55c00f86Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Sat Nov 27 22:27:39 2021 +0800 fix bug commit1d07bdfc46Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Sat Nov 27 21:48:47 2021 +0800 daily update commit52d6a0ca8fAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Wed Nov 24 23:10:04 2021 +0800 daily update commitf8dd720d4dAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Wed Nov 24 19:08:13 2021 +0800 daily update commitd088c1a862Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Sun Nov 21 21:41:46 2021 +0800 remove useless commita711fcf3edAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Tue Nov 16 00:53:05 2021 +0800 add achievement popup add page adaptive add talent extends commit05e02de3dbAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Sat Nov 13 01:24:04 2021 +0800 add github and discord commitbff0109cc5Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Sat Nov 13 00:30:01 2021 +0800 add trajectory auto mode commit54c04f65c2Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Fri Nov 12 19:54:31 2021 +0800 fix property judge negative number bug commit660739530bAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Fri Nov 12 19:48:58 2021 +0800 update achievement commitc94e9e7433Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Thu Nov 11 21:37:45 2021 +0800 update daily commitc06cd9ea62Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Tue Nov 9 00:08:05 2021 +0800 update daily commit2666983f89Author: Vick Scarlet <scarlet_vick@outlook.com> Date: Sun Nov 7 23:00:22 2021 +0800 add uiManager auto scan and load skin resource commit22fa5d755aAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Sun Nov 7 22:17:04 2021 +0800 update framework commitf40698d63eAuthor: Vick Scarlet <scarlet_vick@outlook.com> Date: Sun Oct 31 00:13:22 2021 +0800 add laya
184 lines
7.0 KiB
JavaScript
184 lines
7.0 KiB
JavaScript
export default class Property extends ui.view.DefaultTheme.PropertyUI {
|
|
constructor() {
|
|
super();
|
|
|
|
const types =
|
|
this.#types = core.PropertyTypes;
|
|
|
|
this.btnCharmIncrease.on(Laya.Event.CLICK, this, this.onPropertyAllocate, [types.CHR, 1]);
|
|
this.btnCharmReduce.on(Laya.Event.CLICK, this, this.onPropertyAllocate, [types.CHR, -1]);
|
|
|
|
this.btnIntelligenceIncrease.on(Laya.Event.CLICK, this, this.onPropertyAllocate, [types.INT, 1]);
|
|
this.btnIntelligenceReduce.on(Laya.Event.CLICK, this, this.onPropertyAllocate, [types.INT, -1]);
|
|
|
|
this.btnStrengthIncrease.on(Laya.Event.CLICK, this, this.onPropertyAllocate, [types.STR, 1]);
|
|
this.btnStrengthReduce.on(Laya.Event.CLICK, this, this.onPropertyAllocate, [types.STR, -1]);
|
|
|
|
this.btnMoneyIncrease.on(Laya.Event.CLICK, this, this.onPropertyAllocate, [types.MNY, 1]);
|
|
this.btnMoneyReduce.on(Laya.Event.CLICK, this, this.onPropertyAllocate, [types.MNY, -1]);
|
|
|
|
this.inputCharm.on(Laya.Event.INPUT, this, this.onPropertyAllocateInput, [types.CHR]);
|
|
this.inputIntelligence.on(Laya.Event.INPUT, this, this.onPropertyAllocateInput, [types.INT]);
|
|
this.inputStrength.on(Laya.Event.INPUT, this, this.onPropertyAllocateInput, [types.STR]);
|
|
this.inputMoney.on(Laya.Event.INPUT, this, this.onPropertyAllocateInput, [types.MNY]);
|
|
|
|
const selectAll = ({currentTarget: item}) => { item.text=''; };
|
|
this.inputCharm.on(Laya.Event.MOUSE_DOWN, this, selectAll);
|
|
this.inputIntelligence.on(Laya.Event.MOUSE_DOWN, this, selectAll);
|
|
this.inputStrength.on(Laya.Event.MOUSE_DOWN, this, selectAll);
|
|
this.inputMoney.on(Laya.Event.MOUSE_DOWN, this, selectAll);
|
|
|
|
this.btnRandomAllocate.on(Laya.Event.CLICK, this, this.random);
|
|
this.btnNext.on(Laya.Event.CLICK, this, this.next);
|
|
|
|
this.listSelectedTalents.renderHandler = Laya.Handler.create(this, this.renderTalent, null, false);
|
|
}
|
|
|
|
#types;
|
|
#propertyPoints;
|
|
#propertyAllocate;
|
|
#propertyAllocateLimit;
|
|
|
|
init({talents}) {
|
|
this.listSelectedTalents.array = talents;
|
|
const replace = core.remake(talents.map(talent => talent.id));
|
|
if(replace.length > 0) {
|
|
$$event('message', [replace.map(v => ['F_TalentReplace', v])]);
|
|
}
|
|
this.#propertyPoints = core.getPropertyPoints();
|
|
this.#propertyAllocateLimit = core.propertyAllocateLimit;
|
|
this.labLeftPropertyPoint.text = this.#propertyPoints;
|
|
this.#propertyAllocate = {
|
|
[this.#types.CHR]: 0,
|
|
[this.#types.INT]: 0,
|
|
[this.#types.STR]: 0,
|
|
[this.#types.MNY]: 0,
|
|
}
|
|
this.updateAllocate();
|
|
}
|
|
|
|
next() {
|
|
const left = this.#propertyPoints - this.total;
|
|
if (left > 0) {
|
|
return $$event('message', ['F_PropertyPointLeft', left]);
|
|
}
|
|
$ui.switchView(
|
|
UI.pages.TRAJECTORY,
|
|
{
|
|
propertyAllocate: this.#propertyAllocate,
|
|
talents: this.listSelectedTalents.array,
|
|
enableExtend: true,
|
|
}
|
|
);
|
|
}
|
|
|
|
get total() {
|
|
return this.#propertyAllocate[this.#types.CHR]
|
|
+ this.#propertyAllocate[this.#types.INT]
|
|
+ this.#propertyAllocate[this.#types.STR]
|
|
+ this.#propertyAllocate[this.#types.MNY];
|
|
}
|
|
|
|
updateAllocate() {
|
|
const charm = this.#propertyAllocate[this.#types.CHR];
|
|
const intelligence = this.#propertyAllocate[this.#types.INT];
|
|
const strength = this.#propertyAllocate[this.#types.STR];
|
|
const money = this.#propertyAllocate[this.#types.MNY];
|
|
|
|
this.inputCharm.text = ''+charm;
|
|
this.inputIntelligence.text = ''+intelligence;
|
|
this.inputStrength.text = ''+strength;
|
|
this.inputMoney.text = ''+money;
|
|
|
|
this.labLeftPropertyPoint.text = this.#propertyPoints - this.total;
|
|
|
|
this.btnCharmIncrease.disabled = this.btnCharmIncrease.gray = false;
|
|
this.btnCharmReduce.disabled = this.btnCharmReduce.gray = false;
|
|
this.btnIntelligenceIncrease.disabled = this.btnIntelligenceIncrease.gray = false;
|
|
this.btnIntelligenceReduce.disabled = this.btnIntelligenceReduce.gray = false;
|
|
this.btnStrengthIncrease.disabled = this.btnStrengthIncrease.gray = false;
|
|
this.btnStrengthReduce.disabled = this.btnStrengthReduce.gray = false;
|
|
this.btnMoneyIncrease.disabled = this.btnMoneyIncrease.gray = false;
|
|
this.btnMoneyReduce.disabled = this.btnMoneyReduce.gray = false;
|
|
}
|
|
|
|
check(left, right, value) {
|
|
if (value < left) return false;
|
|
if (value > right) return false;
|
|
return true;
|
|
}
|
|
|
|
random() {
|
|
let t = this.#propertyPoints;
|
|
const arr = new Array(4).fill(this.#propertyAllocateLimit[1]);
|
|
|
|
while (t > 0) {
|
|
const sub = Math.round(Math.random() * (Math.min(t, this.#propertyAllocateLimit[1]) - 1)) + 1;
|
|
while(true) {
|
|
const select = Math.floor(Math.random() * 4) % 4;
|
|
if(arr[select] - sub <0) continue;
|
|
arr[select] -= sub;
|
|
t -= sub;
|
|
break;
|
|
}
|
|
}
|
|
this.#propertyAllocate[this.#types.CHR] = this.#propertyAllocateLimit[1] - arr[0];
|
|
this.#propertyAllocate[this.#types.INT] = this.#propertyAllocateLimit[1] - arr[1];
|
|
this.#propertyAllocate[this.#types.STR] = this.#propertyAllocateLimit[1] - arr[2];
|
|
this.#propertyAllocate[this.#types.MNY] = this.#propertyAllocateLimit[1] - arr[3];
|
|
|
|
this.updateAllocate();
|
|
}
|
|
|
|
onPropertyAllocate(type, value) {
|
|
if (!this.check(
|
|
this.#propertyAllocateLimit[0],
|
|
this.#propertyAllocateLimit[1],
|
|
this.#propertyAllocate[type] + value
|
|
)) {
|
|
return;
|
|
}
|
|
if (!this.check(
|
|
0,
|
|
this.#propertyPoints,
|
|
this.total + value
|
|
)) {
|
|
return;
|
|
}
|
|
this.#propertyAllocate[type] += value;
|
|
this.updateAllocate();
|
|
}
|
|
|
|
onPropertyAllocateInput(type, inputItem) {
|
|
let value = parseInt(inputItem.text) || 0;
|
|
const total = this.total;
|
|
if (total + value < 0) {
|
|
value = this.#propertyAllocateLimit[0] * 4 - total;
|
|
} else if (total + value > this.#propertyPoints) {
|
|
value = this.#propertyPoints - total;
|
|
}
|
|
|
|
if (value < this.#propertyAllocateLimit[0]) {
|
|
value = this.#propertyAllocateLimit[0];
|
|
} else if (value > this.#propertyAllocateLimit[1]) {
|
|
value = this.#propertyAllocateLimit[1];
|
|
}
|
|
|
|
|
|
const alter = value - this.#propertyAllocate[type];
|
|
if (alter) {
|
|
this.onPropertyAllocate(type, alter);
|
|
} else {
|
|
this.updateAllocate();
|
|
}
|
|
}
|
|
|
|
renderTalent(box) {
|
|
const dataSource = box.dataSource;
|
|
|
|
box.label = $_.format($lang.F_TalentSelection, dataSource);
|
|
const style = $ui.common.card[dataSource.grade].normal;
|
|
|
|
$_.deepMapSet(box, style);
|
|
}
|
|
} |