SamsaraGame/assets/Script/game/ChargeRewardItem.js

59 lines
1.7 KiB
JavaScript
Raw Permalink Normal View History

2025-04-24 17:03:28 +08:00
import GameModel from "../ts/core/GameModel";
cc.Class({
extends: cc.Component,
properties: {
progress: cc.ProgressBar,
jadesum_label: cc.Label,
jade_label: cc.Label,
reward_button: cc.Node,
gained_sprite: cc.Node,
bag_item: cc.Prefab,
},
/*
* 初始化
* @param reward_money 達到獎勵所需money
* @param charge_sum 總充值
* @param has_gain 是否領取
*/
init(reward_money, charge_sum, has_gain, reward_list, id) {
this.id = id;
if (charge_sum > reward_money)
charge_sum = reward_money;
this.jade_label.string = `${charge_sum}元/${reward_money}`;
this.jadesum_label.string = `${reward_money}`;
this.progress.progress = charge_sum / reward_money;
if (charge_sum / reward_money == 1) {
this.progress.node.active = false;
this.jade_label.node.active = false;
this.reward_button.active = !has_gain;
this.gained_sprite.active = has_gain;
}
else
this.progress.node.active = true;
this.reward_button.active = true
let node_list = [];
for (let item of reward_list) {
let node = cc.instantiate(this.bag_item);
let logic = node.getComponent('BagItem');
logic.item_bg.setScale(0.8);
logic.item_selected.opacity = 0;
node_list.push(node);
node.parent = this.node;
node.setContentSize(80, 80);
node.y = 0;
logic.loadInfo({ itemid: item.gid, count: item.count, });
}
for (let i = 0; i < node_list.length; ++i)
node_list[i].x = 28 + (i - (node_list.length - 1) / 2) * 80;
},
onButtonClick(event, param) {
GameModel.player.rewardrecord |= (1 << (this.id - 1));
GameModel.send('c2s_charge_reward', { rewardid: this.id });
this.gained_sprite.active = true;
this.reward_button.active = false;
},
});