Files
2026-05-23 22:10:14 +08:00

153 lines
5.4 KiB
JavaScript

/******************************************************************
*
* 行星武器奖励弹窗
*
******************************************************************/
const BridgeWindow = require( "bridge.window" );
const HallowsController = require("hallows_controller")
cc.Class( {
extends: BridgeWindow,
properties: {
skill_item:{default:null,type:cc.Prefab},
lab_name:{default:null,type:cc.RichText},
lab_dec:{default:null,type:cc.RichText},
attr_val:{default:[],type:[cc.Label]},
special_name_list:{default:[],type:[cc.Label]},
special_info_list:{default:[],type:[cc.Label]},
},
// 重载:参数打开
onOpenConfigs: function( hallows_data ) {
if(!hallows_data)return;
let hallows_vo = null;
this.ctrl = HallowsController.getInstance();
this.model = this.ctrl.getModel();
hallows_vo = this.model.getDetailHallow();
if(typeof hallows_data == "number"){
hallows_vo = this.model.getHallowsById(hallows_data);
if(!hallows_vo){
hallows_vo = HallowsController.getInstance().getModel().makeHighestHallowVo(hallows_data);
}
}else{
hallows_vo = hallows_data;
}
// if(!hallows_vo){
// return this.close();
// }
var hallows_id = hallows_vo.id;
var skill_lev = 1;
var is_lock = false;
if(hallows_vo){
skill_lev = hallows_vo.skill_lev;
}else{
is_lock = true;
}
this.config = gdata("hallows_data","data_base",hallows_id);
if(!this.config)return;
//名字
var str = cc.js.formatStr("%s <color=#85e668>+%s</color><color=#23f2ff>[+%s]</color>", this.config.name, hallows_vo.step,hallows_vo.refine_lev);
this.lab_name.string = str;
var item_config = Utils.getItemConfig(this.config.item_id)
if(item_config){
if(!this.hallows_item){
this.hallows_item = cc.instantiate(this.skill_item);
this.hallows_item.parent = this.node;
this.hallows_item.position = cc.v2(-230,170);
let cmp = this.hallows_item.getComponent("cmp.item.base");
cmp.rebind(0,gitemdata(this.config.item_id),"");
}
var skill_key = Utils.getNorKey(hallows_id, skill_lev);
var skill_up_config = gdata("hallows_data","data_skill_up",skill_key);
if(skill_up_config){
var skill_config = gskilldata("data_get_skill",skill_up_config.skill_bid);
if(skill_config){
let atk_val = this.getHallowsSkillAndRefineAtkVal(hallows_id,skill_lev,hallows_vo.refine_lev);
let skill_atk_val = atk_val.skill_atk_val;
let refine_atk_val = atk_val.refine_atk_val;
let total_atk_val = skill_atk_val + refine_atk_val;
//技能描述
this.lab_dec.string = cc.js.formatStr(skill_config.des, total_atk_val, refine_atk_val)
}
}
}
//属性
var attr_data = hallows_vo.add_attr;
for(var i in this.attr_val){
var item = this.attr_val[i];
var attr = attr_data[i];
if(attr){
var attr_id = attr.attr_id
var attr_val = attr.attr_val
var attr_str = gdata("attr_data","data_id_to_key",attr_id);
var attr_name = gdata("attr_data","data_key_to_name",attr_str);
var name = cc.js.formatStr("%s%s+%s",nx.text.getKey("lab_hallows_task_windoiw_tip2"), attr_name, attr_val);
item.string = name;
item.node.active = true;
}else{
item.node.active = false;
// item.attr_icon.active = false;
}
}
//特殊属性
var attr_config = gdata("hallows_data","data_skill_attr",hallows_id);
if(attr_config){
for(let j in attr_config){
let config = attr_config[j];
let name = this.special_name_list[Number(j)-1];
let info = this.special_info_list[Number(j)-1];
if(config && config.desc){
info.string = config.desc;
var str = cc.js.formatStr(nx.text.getKey("lab_hallows_tips_windoiw_tip3"), config.lev_limit)
name.string = str;
}else{
name.node.active = false;
info.node.active = false;
}
}
}
},
getHallowsSkillAndRefineAtkVal(id,lev,refine_lev){
var atkval = {
skill_atk_val:0,
refine_atk_val:0
}
let hallows_skill =gdata("hallows_data","data_skill_up",Utils.getNorKey(id, lev));
if (hallows_skill){
let skill_cfg = gskilldata( 'data_get_skill', hallows_skill.skill_bid);
if (skill_cfg){
atkval.skill_atk_val = skill_cfg.hallows_atk?skill_cfg.hallows_atk:0;
}
}
let refine_cfg = game.configs.hallows_refine_data.data_refine[id];
if (refine_cfg) {
let hallows_refine_cfg = refine_cfg[refine_lev]
if(hallows_refine_cfg){
atkval.refine_atk_val = hallows_refine_cfg.add_dps?hallows_refine_cfg.add_dps:0;
}
}
return atkval;
},
} );