Files
fc/dev/project/assets/Scripts/mod/pve/planesafk/cmp/cmp.planesafk.wnd.evt.js
T

165 lines
4.8 KiB
JavaScript
Raw Normal View History

2026-05-23 22:10:14 +08:00
const BridgeWindow = require("bridge.window");
const NxExpand = require("nx.fx.sv.expand");
const PlanesafkController = require("planesafk_controller");
const PlanesafkEvent = require("planesafk_event");
const PlanesafkConst = require("planesafk_const");
//复活和回血事件
cc.Class({
extends: BridgeWindow,
properties: {
list:{
default:null,
type:NxExpand
},
btn_comfirm:{
default:null,
type:cc.Node
},
title_txt:{
default:null,
type:cc.Label
},
desc:{
default:null,
type:cc.RichText
},
ico:{
default:null,
type:cc.Node
},
title_bg:{
default:null,
type:cc.Node
}
},
// LIFE-CYCLE CALLBACKS:
onLoad() {
this.ctrl = PlanesafkController.getInstance();
this.model = this.ctrl.getModel();
this.bindGEvent( PlanesafkEvent.Get_Hero_Live_Event, this.getLiveHero.bind( this ) );
this.bindGEvent( PlanesafkEvent.Look_Other_Hero_Event, this.lookOtherHero.bind( this ) );
},
getLiveHero(){
let list = this.model.getAllPlanesHeroData();
list.sort(Utils.tableLowerSorter(["hp_per"]));
this.setListData(list);
},
lookOtherHero(data){
if (! data) { return };
this.is_ther_send = false;
this.dic_other_hero[data.pos] = data;
},
start() {
},
onOpenConfigs(param) {
this.board_id = param.id
this.data = param.data
var setting = param.setting || {}
this.board_cfg = setting.board_cfg
this.setData(param.id)
var list = this.model.getAllPlanesHeroData();
if (list == null) {
this.ctrl.sender28613();
}
else{
list.sort(Utils.tableLowerSorter(["hp_per"]));
this.setListData(list);
}
var evt_data = this.ctrl.getMapEvtData(this.data.line, this.data.index);
if (evt_data && evt_data.is_black) {
this.btn_comfirm.active = false;
}
let path = null;
if (this.board_id == PlanesafkConst.Recover_Id) {
path = cc.path.join("prefab/pve/planesafk/ui","bg_event_blue");
}else if(this.board_id == PlanesafkConst.Revive_Id){
path = cc.path.join("prefab/pve/planesafk/ui","bg_event_puple");
}
if(path != null){
nx.gui.setSpriteFrame(this.title_bg,path);
}
},
setListData:function(list){
this.hero_list = list;
this.list.rebuild(this.hero_list);
},
setData:function(id){
if(! id)return;
var board_cfg = this.board_cfg;
if (nx.dt.objEmpty(board_cfg)) {
//避免报错的
board_cfg = game.configs.SecretDunData.data_board[id]
}
if (! board_cfg)return;
// 按钮
if (board_cfg.btn_str != "" ) {
this.btn_comfirm.active = true;
nx.gui.setString(this.btn_comfirm,"txt",board_cfg.btn_str);
}
else{
this.btn_comfirm.active = false;
}
// 图片
// 标题
this.title_txt.string = board_cfg.title;
// 描述内容一
this.desc.string = board_cfg.desc_1;
},
onPreClosed() {
this.list.rebuild([]);
},
onClickComfirmBtn:function( ){
if (! this.board_id || ! this.data)return;
let self = this;
// 告示牌和升降台无需操作
if (this.board_id == PlanesafkConst.Recover_Id || this.board_id == PlanesafkConst.Revive_Id) {
if (this.board_id == PlanesafkConst.Recover_Id && ! this.model.checkIsHaveHpNotFullHero()) { // 回复泉水时,所有英雄都是满血
nx.mbox(nx.text.getKey("msg_planesafk_reply_tip"),["cancel","confirm"],(_key,_box)=>{
_box.close();
if(_key =="confirm"){
self.ctrl.sender28600(self.data.line, self.data.index, 1, {});
self.ctrl.openPlanesafkBoardWindow(false)
}
});
}
else if ( this.board_id == PlanesafkConst.Revive_Id && ! this.model.checkIsHaveDieHero()) { // 复活时,没有死亡的英雄
nx.mbox(nx.text.getKey("msg_planesafk_death_tip"),["cancel","confirm"],(_key,_box)=>{
_box.close();
if(_key =="confirm"){
self.ctrl.sender28600(self.data.line, self.data.index, 1, {});
self.ctrl.openPlanesafkBoardWindow(false)
}
});
}
else{
this.ctrl.sender28600(this.data.line, this.data.index, 1, {} );
this.ctrl.openPlanesafkBoardWindow(false)
}
}
},
// update (dt) {},
});