import { _decorator, Component, instantiate, Label, Node } from 'cc'; import { RewardData } from './UIsign7Day'; import { ItemData } from '../../game/ConfigProjectData'; import { ItemGrid } from '../../com/ItemGrid'; const { ccclass, property } = _decorator; @ccclass('SingItem') export class SingItem extends Component { bg: Node = null; bg1: Node = null; rewardList: Node = null; dayDesc: Label = null; lightdown: Node = null; lightUp: Node = null; gou: Node = null; protected onLoad(): void { this.bg = this.node.getChildByName("bg"); this.bg1 = this.node.getChildByName("bg1"); this.rewardList = this.node.getChildByName("rewardList"); this.dayDesc = this.node.getChildByName("dayDesc").getComponent(Label); this.lightdown = this.node.getChildByName("lightdown"); this.lightUp = this.node.getChildByName("lightUp"); this.gou = this.node.getChildByName("gou"); } setData(rewardArray: RewardData[], index: number, curSign: number, curSignStatus: number) { this._rewardArray = rewardArray; this._index = index; this._curSign = curSign; this._curSignStatus = curSignStatus; this._items = []; for (let i = 0; i < this._rewardArray.length; i++) { let item = this._rewardArray[i]; if (item.type == 1) { let itemConf = gg.data.table.getItemData(item.prop_id); if (!itemConf) { console.error('[SingItem] item config missing', item.prop_id); continue; } if (itemConf.type == 5) { // 皮肤奖励已移除,按原 prop_id 展示 } this._items.push(new ItemData(itemConf.id, item.num, itemConf)); } else { let conf = gg.data.project.getWeaponData(item.prop_id); if (!conf) { console.error('[SingItem] weapon config missing', item.prop_id); continue; } const scrapId = gg.data.project.getWeaponScrapId(conf.id); if (!scrapId) { console.error('[SingItem] weapon scrapId missing', item.prop_id); continue; } let itemConf = gg.data.table.getItemData(scrapId); if (!itemConf) { console.error('[SingItem] scrap item missing', scrapId, 'weapon', item.prop_id); continue; } this._items.push(new ItemData(scrapId, item.num, itemConf)); } } this.updateUI(); } private _rewardArray: RewardData[] = []; private _index: number = 0; private _curSign: number = 0; private _curSignStatus: number = 0; private _items: ItemData[] = []; updateUI() { this.dayDesc.string = gg.lang.get('第{1}天', [this._index + 1])//`第${i + 1}天`; this.gou.active = this._index < this._curSign || (this._index == this._curSign && this._curSignStatus >= 1); this.lightdown.children[0].active = this._index <= this._curSign; this.bg1.active = this._index == this._curSign && this._curSignStatus == 0; this.rewardList.children.map(x => x.active = false); for (let i = 0; i < this._items.length; i++) { let item = this._items[i]; let n: Node = null; if (i < this.rewardList.children.length) { n = this.rewardList.children[i]; } else { n = instantiate(this.rewardList.children[0]); this.rewardList.addChild(n); } n.active = true; n.getComponent(ItemGrid).setData(item); } } }