1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import { _decorator, Sprite, Label, ProgressBar, EventTouch,Node, utils } from 'cc';
- import ListItem from '../../third/ListItem';
- import { ResUtil } from '../../utils/ResUtil';
- import { userIns } from '../../data/UserData';
- const { ccclass, property } = _decorator;
- //枪的属性数据
- @ccclass('UpgradeItem')
- export class UpgradeItem extends ListItem {
- @property({ type: Sprite, tooltip: "枪的属性图片" })
- public attr_sp: Sprite;
- @property({ type: ProgressBar, tooltip: "属性值的最大进度" })
- public progressBar: ProgressBar;
- @property({ type: Label, tooltip: "属性值的数据文本" })
- public atts_label: Label;
- @property({ type: Label, tooltip: "枪的属性多语言名字" })
- public attribute_lang_lable: Label;
- @property({ type: Node, tooltip: "广告按钮" })
- public ad_free_btn: Node;
- @property({ type: Node, tooltip: "视频按钮" })
- public video_btn: Node;
- @property({ type: Node, tooltip: "金币和钻石按钮" })
- public prop_btn: Node;
- @property({ type: Node, tooltip: "最大等级按钮" })
- public max_btn: Node;
- public data: any = null;
- public cb: Function = null;
- public start() {
- this.ad_free_btn.active = false;
- this.video_btn.active = false;
- this.prop_btn.active = true;
- this.max_btn.active = false;
- }
- /**
- * 点击了按钮
- */
- public onBtnClicked(event:EventTouch, param:any){
- if(!this.data)return;
- let idx: number = Number(param);
- this.cb?.(this.data,idx,event.target);
- }
- /**
- * 数据填充
- * @param data 数据
- * @param cb 回调
- */
- public init(data: any,cb?: Function){
- if(!data)return;
- this.data = data;
- this.cb = cb;
- //设置属性图标
- ResUtil.setSpriteFrame(data.attr_icon, this.attr_sp);
- //设置进度条
- this.progressBar.progress = data.attr_value / data.totalValue;
- //设置属性数值文本
- this.atts_label.string = `${data.attr_value}/${data.totalValue}`;
- //设置多语言属性名称
- this.attribute_lang_lable.string = data.attribute_lang;
- //升级需要消耗的材料
- const parts:string[] = data.nextExpenditure.split("_");
- const stuff:any = userIns.itemTable.find(e=>e.id == parts[0]);
- if(stuff){
- //设置材料图标
- ResUtil.setSpriteFrame(stuff.icon, this.prop_btn.getChildByName("icon"));
- //设置材料数量文本
- this.prop_btn.getChildByName("num_lable").getComponent(Label).string = `x${parts[1]}`;
- }
- //判断是否可以升级
- this.prop_btn.active = !data.isMaxLevel;
- this.max_btn.active = data.isMaxLevel;
- }
- }
|