import { _decorator, Component, Node } from 'cc'; import JNLayerBase from '../../../../extensions/ngame/assets/ngame/ui/base/JNLayerBase'; import { Prefab } from 'cc'; import PlayerPetData from '../../data/PlayerPetData'; import JNScrollView from '../../../../extensions/ngame/assets/ngame/util/components/scrollview/JNScrollView'; import { NodeEventType } from 'cc'; import { sp } from 'cc'; import { app } from '../../App'; import { API, PlayerPetOV } from '../../consts/API'; import { UIPetAnim } from '../../consts/GData'; import { GUI } from '../UIConfig'; import PlayerTacticalData from '../../data/PlayerTacticalData'; import { PetIconSelectScroll } from '../Consts/Pet/PetIconSelectScroll'; import { PetPreviewWindow } from '../Consts/Pet/info/PetPreviewWindow'; const { ccclass, property } = _decorator; //上阵页面 @ccclass('IntoBattleView') export class IntoBattleView extends JNLayerBase { @property(JNScrollView) views:JNScrollView; //宠物列表 @property(PetPreviewWindow) petPreview:PetPreviewWindow; //宠物显示窗口 //宠物数据 pets:PlayerPetOV[] = []; //当前选中 index:number = -1; tIndex:number = -1; //阵法下标 onJNLoad(data: {index}): void { super.onJNLoad(); //获取传入的下标 this.tIndex = data.index; console.log("你选择的是",this.tIndex); this.onUpdateView(); } //刷新页面 onUpdateView(){ //获取所有玩家宠物 this.pets = PlayerPetData.getIns().getData(); this.views.refreshData(this.pets); //设置不可选中 this.views.getItems().forEach(item => { if(PlayerTacticalData.getIns().getTacticalInfo().indexOf(item.data.petId) != -1) item.select.isNoSelect = true; //如果在阵法里则不可选中 }) //向子节点添加点击事件 this.views.addItemEvent(NodeEventType.TOUCH_START,this.onClickItem.bind(this)); this.onUpdateSelect(); } //刷新选中 onUpdateSelect(){ //默认都不选中 this.views.getItems().forEach(item => { item.select.isSelect = false; }) //设置选中 if(this.index != -1){ let current = this.views.getItems()[this.index] current.select.isSelect = true; //显示选中宠物 this.petPreview.bind(this.pets[this.index]); } } //点击Item onClickItem(index:number){ //设置当前选中 this.index = index; //刷新 this.onUpdateSelect(); } //点击上阵 async onClickTactical(){ if(this.index < 0){ app.layer.Open(GUI.Tips,{text:"请选择要上阵的宠物."}) return; } if(this.views.getItems()[this.index].select.isNoSelect) { app.layer.Open(GUI.Tips,{text:"当前宠物已上阵"}) return; } //修改上阵信息 await PlayerTacticalData.getIns().UpdateIndexTactical(this.tIndex,this.pets[this.index].petId); //上阵完 关闭页面 app.layer.CloseNode(this.node); } //点击升星页面 async onClickUpStar(){ if(this.index < 0){ app.layer.Open(GUI.Tips,{text:"请选择宠物."}) return; } app.layer.Open(GUI.PetUpStarView,this.pets[this.index]); } //点击升级 async onClickUpLevel(){ if(this.index < 0){ app.layer.Open(GUI.Tips,{text:"请选择宠物."}) return; } await API.PetUpLevel(this.pets[this.index].petId) } }