import { _decorator, Component, Node, UITransform, tween, Label } from 'cc'; import { DataSystem } from '../core/data/DataSystem'; import { WindowOpenMode } from '../core/ui/window/WindowOpenMode'; import { WindowSystem } from '../core/ui/window/WindowSystem'; import { GodTowerData } from './GodTowerData'; import { GodTowerHero } from './GodTowerHero'; const { ccclass, property } = _decorator; @ccclass('HeroGroup') export class HeroGroup extends Component { @property({ type: [Node], tooltip: "好友组" }) roleGroup: Node[] = []; @property({ type: Label, tooltip: "好友人数文本" }) friendLabel: Label; @property({ tooltip: "好友等级信息" }) friendLv: number = 0; @property({ tooltip: "好友等级信息", type: Node }) herosNode: Node; private lvStr = ["一级好友", "二级好友", "三级好友", "四级好友", "五级好友"]; private data: any = []; private infoData: GodTowerData; start() { this.infoData = DataSystem.getData(GodTowerData); let uiTransform = this.herosNode.getComponent(UITransform); let w = this.friendLv > 0 ? 740 : 700; tween(uiTransform).delay(0.2).to(0.2, { width: w }).start(); } update() { DataSystem.watch(GodTowerData, `g${this.friendLv + 1}Members`) && this.setData(); } private setData() { this.data = this.infoData[`g${this.friendLv + 1}Members`]; this.friendLabel.string = this.lvStr[this.friendLv]; for (let i = 0; i < this.roleGroup.length; i++) { if (i < this.data.length) { this.roleGroup[i].getComponent(GodTowerHero).setData(this.data[i], this.friendLv); } else { this.roleGroup[i].getComponent(GodTowerHero).setData(); } } } public openFriendWindow() { if (!this.data.length) { WindowSystem.showTips("还没有更多好友"); return; } WindowSystem.open('prefabs/ui/godTower/friendList', WindowOpenMode.NotCloseAndCover, [this.friendLv]); } }