657 lines
25 KiB
JavaScript
657 lines
25 KiB
JavaScript
/******************************************************************
|
|
*
|
|
* 联盟天赋
|
|
*
|
|
******************************************************************/
|
|
const Toggle = require( "nx.fx.togs" );
|
|
const BridgeWindow = require( "bridge.window" );
|
|
const GuildskillController = require( "guildskill_controller" );
|
|
const GuildskillEvent = require( "guildskill_event" );
|
|
const GuildConst = require( "guild_const" );
|
|
const BackpackController = require( "backpack_controller" );
|
|
const SkillBase = require( "cmp.skill.base" );
|
|
const paths = {
|
|
40002 : "res_p2",
|
|
40001 : "res_p1",
|
|
30002 : "res_p2",
|
|
30001 : "res_p1",
|
|
20002 : "dam2",
|
|
20001 : "dam1",
|
|
10002 : "dam2",
|
|
10001 : "dam1",
|
|
}
|
|
|
|
|
|
cc.Class( {
|
|
|
|
extends: BridgeWindow,
|
|
|
|
properties: {
|
|
|
|
nodMenu: { default: null, type: Toggle },
|
|
nodModel: { default: null, type: Toggle },
|
|
nodInfo: { default: null, type: cc.Node },
|
|
nodShow: { default: null, type: cc.Node },
|
|
nodLock: { default: null, type: cc.Node },
|
|
nodPvpAttr: { default: [], type: cc.Node },
|
|
|
|
},
|
|
|
|
onLoad: function(){
|
|
|
|
this.bindGEvent( GuildskillEvent.UpdateSkilUpgradeEvent, this.freshSkill.bind( this ));
|
|
this.bindGEvent( GuildskillEvent.UpdateGuildSkillEvent, this.freshSkill.bind( this ));
|
|
this.bindGEvent( GuildskillEvent.UpdateSkillStatusEvent, this.freshSkill.bind( this ));
|
|
this.bindGEvent( GuildskillEvent.Guild_Pvp_Career_Info_Event, this.freshUpGrade.bind( this ));
|
|
// this.bindGEvent( GuildskillEvent.Guild_Pvp_Career_Info_Event, this.freshSkill.bind( this ) );
|
|
this.nodMenu.posTog = this.onTogMenu.bind( this );
|
|
this.nodModel.posTog = this.onTogModel.bind( this );
|
|
|
|
},
|
|
|
|
// 重载:参数打开
|
|
onOpenConfigs: function( _params ) {
|
|
|
|
this.nodMenu.togTo( 0 );
|
|
// this.nodModel.togTo( 1 );
|
|
this.activeMenu( 2 );
|
|
// this.activeModel( GuildConst.guildAttrType.PVE );
|
|
|
|
},
|
|
|
|
// 商城切换
|
|
onTogMenu: function( _index ) {
|
|
this.activeMenu( parseInt( _index ) + 2 );
|
|
},
|
|
|
|
// 模式切换
|
|
onTogModel: function( _index ) {
|
|
|
|
this.activeModel( parseInt( _index ) + 1 );
|
|
},
|
|
|
|
// 模式切換 pve pvp 需要刷新數據
|
|
activeModel: function( _index ) {
|
|
|
|
let model = _index;
|
|
nx.gui.setActive( this.nodLock, "", nx.dt.arrEmpty( this.PVPSkills.attr_formation ) );
|
|
nx.gui.setActive( this.nodShow, "pvp", model == GuildConst.guildAttrType.PVP );
|
|
nx.gui.setActive( this.nodShow, "pve", model == GuildConst.guildAttrType.PVE );
|
|
model == GuildConst.guildAttrType.PVP ? this.freshPvpAttr() : this.freshProps();
|
|
|
|
},
|
|
|
|
// 激活菜单 职业选择 切換職業 刷數據
|
|
activeMenu: function( _index ) {
|
|
|
|
this.career = _index;
|
|
let GS = GuildskillController.getInstance();
|
|
let model = GS.getModel();
|
|
this.select = 0;
|
|
this.PVPSkills = model.getPvpskillInfoByCareer( this.career );
|
|
|
|
// 默認顯示控制 pve ? pvp
|
|
if( nx.dt.arrEmpty( this.PVPSkills.attr_formation ) ){
|
|
this.nodModel.togTo( 1 );
|
|
this.activeModel( GuildConst.guildAttrType.PVE );
|
|
}else{
|
|
this.nodModel.togTo( 0 );
|
|
this.activeModel( GuildConst.guildAttrType.PVP );
|
|
}
|
|
let skills = model.getCareerSkillInfo( this.career );
|
|
if( nx.dt.objEmpty( skills ) ){
|
|
GS.requestCareerSkillInfo( this.career );
|
|
return;
|
|
}
|
|
|
|
// this.skills = skills;
|
|
this.freshSkill();
|
|
|
|
},
|
|
|
|
// 刷新属性相关 pve相關
|
|
freshProps: function( ){
|
|
|
|
if( !this.skills ){
|
|
return;
|
|
}
|
|
|
|
|
|
nx.gui.setActive( this.nodInfo, "cnt/pvp_tip", false );
|
|
nx.gui.setActive( this.nodInfo, "cnt/ops/reset", false );
|
|
let results = [];
|
|
let val = this.skills.group_ids;
|
|
let cfgs = game.configs.guild_skill_data;
|
|
if( nx.dt.arrEmpty( val ) ){
|
|
val = [0,0,0,0,0,0];
|
|
|
|
this.base = cfgs.data_info_group[this.skills.group_id];
|
|
|
|
}else{
|
|
|
|
// 處理需要叠加計算的數據相關
|
|
let lst = [];
|
|
let attrs = [];
|
|
results = [];
|
|
let seq = [0,0,0,0,0,0];
|
|
// 获取所有的 需要处理的属性总
|
|
let dealVal = function( _data ){
|
|
let attr_list = "";
|
|
let dealResult = function( _itemd ){
|
|
attr_list = cfgs.data_info[_itemd.id].attr_list[0][0];
|
|
seq[_itemd.seq -1] += cfgs.data_info[_itemd.id].attr_list[0][1];
|
|
results[_itemd.seq -1 ] = [attr_list,seq[_itemd.seq -1], _itemd.id ];
|
|
};
|
|
|
|
lst.forEach( _item => {
|
|
if( _item.seq == 1 ){
|
|
dealResult( _item );
|
|
}
|
|
if( _item.seq == 2 ){
|
|
dealResult( _item );
|
|
}
|
|
if( _item.seq == 3 ){
|
|
dealResult( _item );
|
|
}
|
|
if( _item.seq == 4 ){
|
|
dealResult( _item );
|
|
}
|
|
if( _item.seq == 5 ){
|
|
dealResult( _item );
|
|
}
|
|
if( _item.seq == 6 ){
|
|
dealResult( _item );
|
|
}
|
|
|
|
} );
|
|
}
|
|
|
|
// 获取所有的 需要处理的属性总
|
|
let deal = function( _data ){
|
|
let gs = cfgs.data_info_group[_data];
|
|
attrs = nx.dt.objClone( gs[0] );
|
|
for (let j = 0; j < gs.length; j++) {
|
|
let g = gs[j];
|
|
lst.push( g );
|
|
}
|
|
|
|
}
|
|
|
|
for (let i = 0; i < this.skills.group_ids.length; i++) {
|
|
let d = this.skills.group_ids[i].group_id;
|
|
deal( d );
|
|
}
|
|
dealVal( lst );
|
|
}
|
|
|
|
|
|
let group_id = this.skills.group_id;
|
|
/**
|
|
* [23700]:{"career":2,"group_id":2001,"skill_ids":[{"skill_id":20011}],"group_ids":[]}
|
|
*/
|
|
let afg = game.configs.guild_skill_data.data_const;
|
|
let sfg = game.configs.guild_skill_data.data_group;
|
|
let dfg = game.configs.guild_skill_data.data_info;
|
|
let key = this.career + "_" + group_id;
|
|
|
|
// 显示的属性 读取相关配置信息
|
|
let attrs = afg["attr_show_" + ( this.career - 1 ) ].val;
|
|
|
|
// 非手动聚焦显示下一个要升级的技能
|
|
let next = 0;
|
|
this.skills.skill_ids.forEach( skill => {
|
|
if( skill.status > 0 ){
|
|
next++;
|
|
}
|
|
});
|
|
|
|
|
|
// 右上 显示相关的技能信息
|
|
let max = afg.max_lv;
|
|
|
|
// 操作及雜項顯示
|
|
this.freshOp( sfg, max, key, next );
|
|
|
|
if( next == this.skills.skill_ids.length ){
|
|
next = 0;
|
|
}
|
|
|
|
// 屬性相關
|
|
let cnode = nx.gui.find( this.nodShow, "pve/nod" ).children;
|
|
let chd = nx.gui.find( this.nodInfo, "cnt/props" ).children;
|
|
let nod_s = nx.gui.find( this.nodInfo, "top" );
|
|
// let cfg = game.configs.attr_data;
|
|
for (let i = 0; i < chd.length; i++) {
|
|
|
|
|
|
let clr = "";
|
|
// 右边属性 相关
|
|
let item = chd[i];
|
|
let nod = cnode[i];
|
|
if( nx.dt.arrEmpty( this.skills.group_ids ) ){
|
|
nx.bridge.attrs.setAttribute( item, [ attrs[i], val[i] ] );
|
|
nx.gui.setSpriteFrame( item, "iconsp", cc.path.join( "prefab/guild/icon/" + attrs[i] ) );
|
|
|
|
}else{
|
|
// 当升级了 天赋后显示
|
|
nx.bridge.attrs.setAttribute( item, [ results[i][0], results[i][1] ] );
|
|
nx.gui.setSpriteFrame( item, "iconsp", cc.path.join( "prefab/guild/icon/" + results[i][0] ) );
|
|
}
|
|
|
|
nx.gui.setString( nod, "level", dfg[this.skills.skill_ids[i].id].lev + "/" + afg.max_lv.val );
|
|
nx.gui.setActive( nod, "abg", next > i );
|
|
nx.gui.setActive( nod, "focus", next == i );
|
|
|
|
if( next == i ){
|
|
|
|
clr = new cc.Color().fromHEX( "#EAEDF2" );
|
|
if( nx.dt.arrEmpty( this.skills.group_ids ) ){
|
|
if( nx.dt.arrEmpty( this.PVPSkills.attr_formation ) ){
|
|
this.freshMat( nx.gui.find( this.nodInfo, "cnt/mat" ), dfg[this.base[i].id].loss );
|
|
}
|
|
nx.bridge.attrs.setAttribute( nod, [ attrs[i], val[i] ] );
|
|
nx.gui.setSpriteFrame( nod, "iconsp", ( "prefab/guild/icon/w" + attrs[i] ) );
|
|
nx.bridge.attrs.setAttribute( nod_s, [ attrs[i], val[i] ] );
|
|
nx.gui.setSpriteFrame( nod_s, "iconsp", ( "prefab/guild/icon/" + attrs[i] ) );
|
|
}else{
|
|
if( nx.dt.arrEmpty( this.PVPSkills.attr_formation ) ){
|
|
|
|
|
|
this.freshMat( nx.gui.find( this.nodInfo, "cnt/mat" ), dfg[this.skills.skill_ids[i].id].loss );
|
|
}
|
|
nx.bridge.attrs.setAttribute( nod, [ results[i][0], results[i][1] ] );
|
|
nx.gui.setSpriteFrame( nod, "iconsp", ( "prefab/guild/icon/w" + results[i][0] ) );
|
|
nx.bridge.attrs.setAttribute( nod_s, [ attrs[i], cfgs.data_info[results[i][2]].attr_list[0][1] ]);
|
|
nx.gui.setSpriteFrame( nod_s, "iconsp", ( "prefab/guild/icon/" + attrs[i] ) );
|
|
}
|
|
|
|
nx.gui.setString( nod_s, "add/lev", nx.text.format( "LvNumber", dfg[this.skills.skill_ids[i].id].lev ) );
|
|
nx.gui.setString( nod_s, "add/txt", dfg[this.skills.skill_ids[i].id].lev + 1 );
|
|
|
|
}else{
|
|
if( i < next ){
|
|
clr = new cc.Color().fromHEX( "#030303" );
|
|
nx.bridge.attrs.setAttribute( nod, [ attrs[i], val[i], i + 1 ] );
|
|
nx.gui.setSpriteFrame( nod, "iconsp", ( "prefab/guild/icon/" + attrs[i] ) );
|
|
}else{
|
|
clr = new cc.Color().fromHEX( "#EAEDF2" );
|
|
nx.bridge.attrs.setAttribute( nod, [ attrs[i], val[i], i + 1 ] );
|
|
nx.gui.setSpriteFrame( nod, "iconsp", ( "prefab/guild/icon/w" + attrs[i] ) );
|
|
}
|
|
|
|
}
|
|
nx.gui.setColor( nod, "level", clr );
|
|
nx.gui.setActive( item, "", true );
|
|
|
|
}
|
|
nx.gui.setActive( this.nodInfo, "cnt/mat", nx.dt.arrEmpty( this.PVPSkills.attr_formation ) );
|
|
nx.gui.setActive( this.nodInfo, "cnt/pve_tip", !nx.dt.arrEmpty( this.PVPSkills.attr_formation ) );
|
|
|
|
|
|
},
|
|
|
|
freshOp: function( _sfg, _max, _key, _next ){
|
|
|
|
let next = _next;
|
|
let key = _key;
|
|
let sfg = _sfg;
|
|
let max = _max;
|
|
let show_name = "";
|
|
if( sfg[key] ){
|
|
show_name = sfg[key].group_name;
|
|
// 操作刷新----
|
|
|
|
this.cb = ()=>{
|
|
let GS = GuildskillController.getInstance();
|
|
let sfg = game.configs.guild_skill_data.data_info_group;
|
|
|
|
// 取相应职业的属性升级序列
|
|
let skills = sfg[this.skills.group_id];
|
|
|
|
let count = 0;
|
|
this.skills.skill_ids.forEach( skill => {
|
|
if( skill.status > 0 ){
|
|
count++;
|
|
}
|
|
});
|
|
GS.requestActivitySkill( skills[count].id );
|
|
}
|
|
nx.gui.setActive( this.nodInfo, "cnt/ops/other/uplevel", sfg[key].group_seq < max.val || ( sfg[key].group_seq == max.val && next < this.skills.skill_ids.length ) );
|
|
nx.gui.setActive( this.nodInfo, "cnt/ops/other/upgrade", next == this.skills.skill_ids.length && sfg[key].group_seq == max.val && nx.dt.arrEmpty( this.PVPSkills.attr_formation ) );
|
|
|
|
}
|
|
// nx.gui.setActive( this.nodInfo, "cnt/ops", true );
|
|
nx.gui.setString( this.nodInfo, "top/name", show_name );
|
|
|
|
},
|
|
|
|
freshPvpAttr:function(){
|
|
//
|
|
/******
|
|
* {"career":4,"attr_formation":[
|
|
* {"id":30001,"lev":0},
|
|
* {"id":30002,"lev":0},
|
|
* {"id":30003,"lev":0},
|
|
* {"id":30004,"lev":0}
|
|
* ],"skill_id":0,"skill_lev":0}
|
|
*/
|
|
|
|
nx.gui.setActive( this.nodInfo, "cnt/pve_tip", false );
|
|
nx.gui.setActive( this.nodInfo, "cnt/pvp_tip", true );
|
|
this.unscheduleAllCallbacks();
|
|
let attr_form = this.PVPSkills.attr_formation;
|
|
let afg = game.configs.guild_skill_data.data_const;
|
|
let skills = [];
|
|
let chd = nx.gui.find( this.nodInfo, "cnt/props" ).children;
|
|
for (let i = 0; i < chd.length; i++) {
|
|
let dat = attr_form[i];
|
|
let item = chd[i];
|
|
if( !dat ){
|
|
nx.gui.setActive( item, "", false );
|
|
continue;
|
|
}
|
|
if( dat.lev > 0 ){
|
|
skills.push( dat );
|
|
}
|
|
let key = dat.id + "_" + dat.lev;
|
|
let cfg = gdata( "guild_skill_data", "data_pvp_attr_info", key );
|
|
let resspn = "";
|
|
if( dat.lev > 0 ){
|
|
resspn = ( paths[dat.id] ) ? cc.path.join( "prefab/guild/icon/" + paths[dat.id] ) : cc.path.join( "prefab/guild/icon/" + cfg.client_attr[0][0] );
|
|
}else{
|
|
resspn = ( paths[dat.id] ) ? cc.path.join( "prefab/guild/icon/w" + paths[dat.id] ) : cc.path.join( "prefab/guild/icon/w" + cfg.client_attr[0][0] );
|
|
}
|
|
|
|
let ressp = ( paths[dat.id] ) ? cc.path.join( "prefab/guild/icon/" + paths[dat.id] ) : cc.path.join( "prefab/guild/icon/" + cfg.client_attr[0][0] );
|
|
if( cfg ){
|
|
|
|
nx.bridge.attrs.setAttribute( this.nodPvpAttr[i], [ cfg.client_attr[0][0], cfg.client_attr[0][1], i +1 ] );
|
|
nx.gui.setSpriteFrame( this.nodPvpAttr[i], "iconsp", resspn );
|
|
nx.bridge.attrs.setAttribute( item, cfg.client_attr[0] );
|
|
nx.gui.setSpriteFrame( item, "iconsp", ressp );
|
|
}
|
|
nx.gui.setActive( item, "", true );
|
|
nx.gui.setActive( this.nodPvpAttr[i], "abg", dat.lev > 0 );
|
|
nx.gui.setString( this.nodPvpAttr[i], "level", dat.lev + "/" + afg.max_lv.val );
|
|
}
|
|
nx.gui.setActive( this.nodInfo, "cnt/ops/reset", !nx.dt.arrEmpty( skills ) );
|
|
nx.gui.setActive( this.nodInfo, "cnt/ops/other/uplevel", true );
|
|
nx.gui.setActive( this.nodInfo, "cnt/ops/other/upgrade", false );
|
|
|
|
let skill_nod = nx.gui.find( this.nodShow, "pvp/skill" );
|
|
|
|
let cmp = skill_nod.getComponent( SkillBase );
|
|
if( cmp ){
|
|
cmp.setData( this.PVPSkills.skill_id );
|
|
|
|
nx.gui.setActive( skill_nod, "lock", this.PVPSkills.skill_id == 0 );
|
|
nx.gui.setString( skill_nod, "lev/lev", nx.text.format( "LvNumber",this.PVPSkills.skill_lev ) );
|
|
nx.gui.setActive( skill_nod, "lev", this.PVPSkills.skill_id != 0 );
|
|
}
|
|
|
|
this.scheduleOnce( ()=>{
|
|
this.onTouchPVPAttr( this.select );
|
|
}, 0.01 );
|
|
|
|
},
|
|
|
|
|
|
freshMat: function( _nod, _mat ){
|
|
|
|
nx.gui.setActive( this.nodInfo, "cnt/mat", true );
|
|
// 刷新材料显示
|
|
let nod = _nod;
|
|
let mats = _mat;
|
|
if( mats ){
|
|
let chd = nod.children;
|
|
let model = BackpackController.getInstance().getModel();
|
|
for (let i = 0; i < chd.length; i++) {
|
|
let item = chd[i];
|
|
let mat = mats[i];
|
|
if( !mat || nx.dt.arrEmpty( mat ) ){
|
|
nx.gui.setActive( item, "", false );
|
|
continue;
|
|
}
|
|
nx.gui.setActive( item, "", true );
|
|
nx.bridge.setIconS( item, "icon", mat[0] );
|
|
|
|
let have = model.getItemNumByBid( mat[0] );
|
|
let str = mat[1];
|
|
|
|
let clr = ( have >= mat[1] ) ? cc.Color.WHITE : cc.Color.WHITE;
|
|
nx.gui.setString( item, "txt", str );
|
|
nx.gui.setColor( item, "txt", clr );
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
freshSkill: function(){
|
|
|
|
let GS = GuildskillController.getInstance();
|
|
let model = GS.getModel();
|
|
this.skills = model.getCareerSkillInfo( this.career );
|
|
this.PVPSkills = model.getPvpskillInfoByCareer( this.career );
|
|
|
|
|
|
nx.dt.arrEmpty( this.PVPSkills.attr_formation) ? this.freshProps() : this.freshPvpAttr();
|
|
|
|
|
|
},
|
|
|
|
// 突破后顯示變化 取消pvp的鎖定狀態
|
|
freshUpGrade: function(){
|
|
|
|
let GS = GuildskillController.getInstance();
|
|
let model = GS.getModel();
|
|
this.PVPSkills = model.getPvpskillInfoByCareer( this.career );
|
|
nx.gui.setActive( this.nodInfo, "cnt/mat", false );
|
|
nx.gui.setActive( this.nodLock, "", false );
|
|
nx.gui.setActive( this.nodInfo, "cnt/ops/other/upgrade", false );
|
|
this.nodModel.togTo( 0 );
|
|
this.activeModel( GuildConst.guildAttrType.PVP );
|
|
|
|
},
|
|
|
|
onTouchLock: function(){
|
|
let afg = game.configs.guild_skill_data.data_const;
|
|
let max = afg.max_lv.val;
|
|
nx.tbox( nx.text.format( "GuildSkillPvpTip", max ) );
|
|
return;
|
|
},
|
|
|
|
// 点击升级
|
|
onTouchUpLev: function(){
|
|
|
|
nx.dt.fnInvoke( this.cb );
|
|
|
|
},
|
|
|
|
// 突破
|
|
onTouchBreak: function(){
|
|
|
|
let GS = GuildskillController.getInstance();
|
|
if( GS ){
|
|
GS.send23706( this.career );
|
|
}
|
|
|
|
},
|
|
|
|
// 重置 天赋属性
|
|
onTouchReset: function(){
|
|
|
|
let total_lev = 0;
|
|
let GS = GuildskillController.getInstance();
|
|
let model = GS.getModel();
|
|
let is_first = model.isPvpFisrtReset();
|
|
let ress = [];
|
|
let attr = this.PVPSkills.attr_formation[0];
|
|
let ak = attr.id + "_" + attr.lev;
|
|
let sg = gdata( "guild_skill_data", "data_pvp_attr_info", ak );
|
|
for (let i = 0; i < sg.return_res.length; i++) {
|
|
const it = nx.dt.objClone( sg.return_res[i] );
|
|
it[1] = 0;
|
|
ress.push( it );
|
|
}
|
|
|
|
this.PVPSkills.attr_formation.forEach( item => {
|
|
if( item.lev > 0 ){
|
|
total_lev += item.lev;
|
|
let key = item.id + "_" + item.lev;
|
|
let sfg = gdata( "guild_skill_data", "data_pvp_attr_info", key );
|
|
let res = sfg.return_res;
|
|
// console.log( item.id + "处理的属性数据" + JSON.stringify( sfg.return_res ) );
|
|
for (let i = 0; i < res.length; i++) {
|
|
let item = res[i];
|
|
let ritem = ress[i];
|
|
if( item[0] == ritem[0] ){
|
|
ritem[1] += item[1];
|
|
// console.log(item[1] + "当前所有的属性数值相关累加sssss" + JSON.stringify( item[0] ) + "SSS" + ritem[1] );
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
} )
|
|
// console.log( "当前所有的属性数值相关---->>>>" + JSON.stringify( ress ) );
|
|
|
|
let count = 0
|
|
if (is_first) {
|
|
count = 300
|
|
let config = game.configs.guild_skill_data.data_const.pvp_first_reset_consume
|
|
if (config) {
|
|
count = config.val
|
|
}
|
|
}else{
|
|
let reset_consume_var1 = 500
|
|
let config = game.configs.guild_skill_data.data_const.reset_consume_var1
|
|
if (config) {
|
|
reset_consume_var1 = config.val
|
|
}
|
|
|
|
let reset_consume_var2 = 15
|
|
let config2 = game.configs.guild_skill_data.data_const.reset_consume_var2
|
|
if (config2) {
|
|
reset_consume_var2 = config.val
|
|
}
|
|
// --本系技能總等級 * 係數2
|
|
let cost_count = total_lev * reset_consume_var2
|
|
count = Math.max(reset_consume_var1, cost_count)
|
|
}
|
|
|
|
let key = this.career + "_" + this.PVPSkills.skill_lev;
|
|
let sfg = gdata( "guild_skill_data", "data_pvp_skill_info", key );
|
|
let mfg = game.configs.guild_skill_data.data_const.first_reset_consume;
|
|
for (let j = 0; j < sfg.return_res.length; j++) {
|
|
let ss = sfg.return_res[j];
|
|
let ritem = ress[j];
|
|
if( ss[0] == ritem[0] ){
|
|
ritem[1] += ss[1];
|
|
}
|
|
}
|
|
|
|
let info = {
|
|
first : is_first,
|
|
tip: is_first ? nx.text.format( "tip_guildTalent_reset", mfg.val ) : nx.text.format( "tip_guildTalent_resetn", count ),
|
|
res: ress,
|
|
career: this.career,
|
|
cb : ()=>{
|
|
let GS = GuildskillController.getInstance();
|
|
if( GS ){
|
|
GS.send23709( this.career );
|
|
}
|
|
}
|
|
}
|
|
nx.bridge.createPanel( "WndGuildTalentReset", info );
|
|
|
|
|
|
},
|
|
|
|
// 點擊 pvp技能 彈出彈窗
|
|
onTouchSkillIcon: function(){
|
|
|
|
let info = {
|
|
career : this.career,
|
|
lev : this.PVPSkills,
|
|
}
|
|
nx.bridge.createPanel( "WndGuildTalentSkillUplev", info );
|
|
|
|
},
|
|
|
|
// 點擊 pvp天賦
|
|
onTouchPVPAttr: function( _index ){
|
|
|
|
let gsd = game.configs.guild_skill_data.data_const.pvp_max_lv;
|
|
let max = gsd.val / 4;
|
|
let attr_form = this.PVPSkills.attr_formation;
|
|
let nod_s = nx.gui.find( this.nodInfo, "top" );
|
|
for (let i = 0; i < this.nodPvpAttr.length; i++) {
|
|
nx.gui.setActive( this.nodPvpAttr[i], "focus", i == _index );
|
|
let dat = attr_form[i];
|
|
let key = dat.id + "_" + dat.lev;
|
|
let cfg = gdata( "guild_skill_data", "data_pvp_attr_info", key );
|
|
let ressp = "";
|
|
let clr = "";
|
|
if( cfg ){
|
|
if( i == _index ){
|
|
this.select = _index;
|
|
// clr = new cc.Color().fromHEX( "#030303" );
|
|
nx.bridge.attrs.setAttribute( this.nodPvpAttr[i], cfg.client_attr[0] );
|
|
|
|
|
|
|
|
if( dat.lev > 0 ){
|
|
clr = new cc.Color().fromHEX( "#030303" );
|
|
ressp = ( paths[dat.id] ) ? cc.path.join( "prefab/guild/icon/" + paths[dat.id] ) : cc.path.join( "prefab/guild/icon/" + cfg.client_attr[0][0] );
|
|
}else{
|
|
|
|
clr = new cc.Color().fromHEX( "EAEDF2" );
|
|
ressp = ( paths[dat.id] ) ? cc.path.join( "prefab/guild/icon/w" + paths[dat.id] ) : cc.path.join( "prefab/guild/icon/w" + cfg.client_attr[0][0] );
|
|
}
|
|
|
|
|
|
let ressps = ( paths[dat.id] ) ? cc.path.join( "prefab/guild/icon/" + paths[dat.id] ) : cc.path.join( "prefab/guild/icon/" + cfg.client_attr[0][0] );
|
|
nx.bridge.attrs.setAttribute( nod_s, cfg.client_attr[0] );
|
|
nx.gui.setSpriteFrame( this.nodPvpAttr[i], "iconsp", ressp );
|
|
nx.gui.setSpriteFrame( nod_s, "iconsp", ressps );
|
|
nx.gui.setString( this.nodInfo, "top/name", cfg.desc + nx.text.format( "SLevel", cfg.lev ) );
|
|
nx.gui.setString( nod_s, "add/lev", nx.text.format( "LvNumber", cfg.lev ) );
|
|
nx.gui.setString( nod_s, "add/txt", cfg.lev + 1 );
|
|
nx.gui.setActive( this.nodInfo, "cnt/ops/other/uplevel", dat.lev != max );
|
|
this.freshMat( nx.gui.find( this.nodInfo, "cnt/mat" ), cfg.loss );
|
|
|
|
}else{
|
|
// clr = new cc.Color().fromHEX( "#EAEDF2" );
|
|
// let ressp = ( paths[dat.id] ) ? cc.path.join( "prefab/guild/icon/w" + paths[dat.id] ) : cc.path.join( "prefab/guild/icon/w" + cfg.client_attr[0][0] );
|
|
if( dat.lev > 0 ){
|
|
clr = new cc.Color().fromHEX( "#030303" );
|
|
ressp = ( paths[dat.id] ) ? cc.path.join( "prefab/guild/icon/" + paths[dat.id] ) : cc.path.join( "prefab/guild/icon/" + cfg.client_attr[0][0] );
|
|
}else{
|
|
|
|
clr = new cc.Color().fromHEX( "EAEDF2" );
|
|
ressp = ( paths[dat.id] ) ? cc.path.join( "prefab/guild/icon/w" + paths[dat.id] ) : cc.path.join( "prefab/guild/icon/w" + cfg.client_attr[0][0] );
|
|
}
|
|
|
|
nx.bridge.attrs.setAttribute( this.nodPvpAttr[i], [ cfg.client_attr[0][0], cfg.client_attr[0][1], i+1 ] );
|
|
nx.gui.setSpriteFrame( this.nodPvpAttr[i], "iconsp", ressp );
|
|
}
|
|
nx.gui.setColor( this.nodPvpAttr[i], "level", clr );
|
|
}
|
|
}
|
|
|
|
this.cb = ()=>{
|
|
|
|
let GS = GuildskillController.getInstance();
|
|
GS.send23707( this.career, attr_form[_index].id );
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
} );
|