Files
Alien_Sniper/assets/scripts/domain/RewardSettlementModel.ts
T
2026-07-17 10:54:32 +08:00

70 lines
2.8 KiB
TypeScript

// @structural-rewrite-v1
export type RewardSelectionMode = 'pointer' | 'claim';
const rewardPolicies: Record<RewardSelectionMode, ReadonlyArray<readonly [
number,
number
]>> = {
"pointer": [[93.079, 5], [224.786, 4], [341.818, 3], [430, 2]],
"claim": [[50, 5], [150, 4], [250, 3], [350, 2], [450, 1]],
};
/** Pure reward calculation used by the Cocos result-panel adapter. */
export class RewardSettlementModel {
private baseCoin = 0;
private selectedMultiplier = 1;
get multiplier(): number {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: return this["selectedMultiplier"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
}
} while (false);
}
finally {
}
}
get rewardCoin(): number {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: return Math["ceil"]((this["baseCoin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) * (this["selectedMultiplier"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
}
} while (false);
}
finally {
}
}
load(baseCoin: number): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (this["baseCoin"] = baseCoin);
}
} while (false);
}
finally {
}
}
select(mode: RewardSelectionMode, distance: number): number {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const selected = rewardPolicies[mode]["find"](([ceiling]) => distance < ceiling)?.[1];
void (this["selectedMultiplier"] = selected ?? this["selectedMultiplier"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
return this["rewardCoin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
}
} while (false);
}
finally {
}
}
}