231 lines
7.8 KiB
JavaScript
231 lines
7.8 KiB
JavaScript
var PathTool = require("pathtool");
|
|
var BattleConst = require("battle_const");
|
|
var RoleController = require("role_controller");
|
|
var BattleController = require("battle_controller");
|
|
var BattleEvent = require("battle_event");
|
|
const FxSVC = require( "nx.fx.sv.expand" );
|
|
const BridgeWindow = require("bridge.window")
|
|
|
|
cc.Class({
|
|
extends: BridgeWindow,
|
|
|
|
properties: {
|
|
svcList:{
|
|
default:null,
|
|
type:FxSVC
|
|
},
|
|
mvp_con:{
|
|
default:null,
|
|
type:cc.Node
|
|
},
|
|
harm_con:{
|
|
default:null,
|
|
type:cc.Node
|
|
},
|
|
progress_pb:{
|
|
default:null,
|
|
type:cc.ProgressBar
|
|
},
|
|
proTxt_lb:{
|
|
default:null,
|
|
type:cc.Label
|
|
},
|
|
roleLvTxt_lb:{
|
|
default:null,
|
|
type:cc.Label
|
|
},
|
|
bust_icon_sp:{
|
|
default:null,
|
|
type:cc.Sprite
|
|
},
|
|
hurtTxt_lb:{
|
|
default:null,
|
|
type:cc.Label
|
|
},
|
|
progressEffect:{
|
|
default:null,
|
|
type:sp.Skeleton
|
|
},
|
|
topNd:{
|
|
default:null,
|
|
type:cc.Node
|
|
},
|
|
fab_head:{
|
|
default:null,
|
|
type:cc.Prefab
|
|
}
|
|
},
|
|
|
|
// LIFE-CYCLE CALLBACKS:
|
|
|
|
onLoad () {
|
|
this.ani_isover = false;
|
|
this.item_list = {};
|
|
|
|
this.role_vo = RoleController.getInstance().getRoleVo();
|
|
this.ctrl = BattleController.getInstance();
|
|
this.model = this.ctrl.getModel();
|
|
},
|
|
|
|
start () {
|
|
this.head_icon = cc.instantiate(this.fab_head);
|
|
let cmp = this.head_icon.getComponent("cmp.common.header");
|
|
cmp.rebind(0,this.role_vo);
|
|
this.head_icon.parent = this.topNd;
|
|
this.head_icon.scale = 0.8;
|
|
this.head_icon.position = cc.v2(-200, 20);
|
|
|
|
nx.audio.playSFX("audios/effects/win");
|
|
},
|
|
|
|
// 重载:关闭前
|
|
onPreClosed: function() {
|
|
this.svcList.rebuild( [] );
|
|
|
|
require("hero_controller").getInstance().openEquipTips(false)
|
|
require("tips_controller").getInstance().closeAllTips();
|
|
|
|
|
|
if (this.fight_type == BattleConst.Fight_Type.Darma) {
|
|
gcore.GlobalEvent.fire(BattleEvent.MOVE_DRAMA_EVENT, this.fight_type);
|
|
}
|
|
this.handleEffect(false)
|
|
if (this.model.getBattleScene() && this.ctrl.getIsSameBattleType(this.fight_type)) {
|
|
this.model.result(this.data, null)
|
|
}
|
|
},
|
|
|
|
onOpenConfigs(data){
|
|
this.data = data;
|
|
this.result = data.result
|
|
this.reward_list = data.item_rewards || []
|
|
this.fight_type = data.combat_type || BattleConst.Fight_Type.Darma
|
|
this.partner_bid = data.partner_bid || 0
|
|
this.partner_hurt = data.partner_hurt || 0
|
|
this.partner_total_hurt = data.partner_total_hurt || 0
|
|
this.role_exp = data.exp || 0
|
|
this.role_lv = data.lev || 1
|
|
this.role_nowlv = data.new_lev || 1
|
|
this.role_nowexp = data.new_exp || 0;
|
|
this.use_skin = data.use_skin || 0;
|
|
|
|
//等级
|
|
this.roleLvTxt_lb.string = cc.js.formatStr("Lv.%d", this.role_nowlv);
|
|
|
|
let partner_config = game.configs.partner_data.data_partner_base[this.partner_bid];
|
|
let skin_config = game.configs.partner_skin_data.data_skin_info[this.use_skin];
|
|
|
|
//名称和立绘
|
|
if (partner_config) {
|
|
// this.roleNameTxt_lb.string = partner_config.name;
|
|
let bustid = null;
|
|
if(skin_config){
|
|
bustid = skin_config.bustid;
|
|
}else{
|
|
bustid = partner_config.bustid;
|
|
}
|
|
|
|
var bust_res = PathTool.getIconPath("models/"+bustid,"half_show");
|
|
nx.gui.setSpriteFrame(this.bust_icon_sp.node,"",bust_res);
|
|
// cc.loader.loadRes(bust_res, cc.SpriteFrame,(err,bg_sf)=> {
|
|
// if(err){
|
|
// let emp = PathTool.getIconPath("empty","half_show");
|
|
// nx.gui.setSpriteFrame(this.bust_icon_sp.node,"",emp);
|
|
// }
|
|
// this.bust_icon_sp.spriteFrame = bg_sf;
|
|
// });
|
|
}
|
|
|
|
//伤害统计
|
|
var hurtPercent = cc.js.formatStr("%s", Math.floor(this.partner_hurt / this.partner_total_hurt * 100)) + "%";
|
|
this.hurtTxt_lb.string = cc.js.formatStr("%d(%s)", Math.ceil(Number(this.partner_hurt)), hurtPercent);
|
|
|
|
this.showProgressEffect();
|
|
|
|
this.svcList.rebuild(this.reward_list);
|
|
},
|
|
|
|
showProgressEffect: function () {
|
|
var baseCurMaxExp = game.configs.role_data.data_role_attr[this.role_lv].exp_max;
|
|
var basePercent = this.role_exp / baseCurMaxExp;
|
|
var maxPercent = this.role_nowexp / baseCurMaxExp;
|
|
if (this.role_lv != this.role_nowlv) {//有升级
|
|
maxPercent = 1;
|
|
}
|
|
// if (this.data.auto_num && this.data.auto_num > 0) {
|
|
// this.auto_combat_num_lb.node.active = true;
|
|
// this.auto_combat_num_lb.string = cc.js.formatStr("Continuous customs clearance times: %s", this.data.auto_num);
|
|
// }
|
|
|
|
this.progress_pb.progress = basePercent;
|
|
this.proTxt_lb.string = cc.js.formatStr("%d/%d", Number(this.role_exp), Number(baseCurMaxExp));
|
|
|
|
let call_back = function () {
|
|
basePercent = basePercent + 0.01;
|
|
if (basePercent > maxPercent) {
|
|
if (this.role_lv == this.role_nowlv) {
|
|
baseCurMaxExp = game.configs.role_data.data_role_attr[this.role_nowlv].exp_max;
|
|
basePercent = this.role_nowexp / baseCurMaxExp;
|
|
this.progress_pb.progress = basePercent;
|
|
this.proTxt_lb.string = cc.js.formatStr("%d/%d", this.role_nowexp, Number(baseCurMaxExp))
|
|
} else {
|
|
//播放升级特效
|
|
if (this.progressEffect.skeletonData == null) {
|
|
var res = PathTool.getSpinePath(PathTool.getEffectRes(275),null);
|
|
this.loadRes(res, function (res_object) {
|
|
this.progressEffect.skeletonData = res_object;
|
|
// this.progressEffect.setAnimation(0, PlayerAction.action, false)
|
|
}.bind(this))
|
|
} else {
|
|
// this.progressEffect.setAnimation(0, PlayerAction.action, false)
|
|
}
|
|
this.role_lv = this.role_lv + 1;
|
|
basePercent = 0;
|
|
maxPercent = 1;
|
|
baseCurMaxExp = game.configs.role_data.data_role_attr[this.role_lv].exp_max;
|
|
if (this.role_lv == this.role_nowlv) {
|
|
maxPercent = this.role_nowexp / game.configs.role_data.data_role_attr[this.role_nowlv].exp_max;
|
|
}
|
|
}
|
|
} else {
|
|
this.progress_pb.progress = basePercent;
|
|
this.proTxt_lb.string = cc.js.formatStr("%d/%d", Math.ceil(baseCurMaxExp * basePercent), Number(baseCurMaxExp))
|
|
}
|
|
}.bind(this)
|
|
|
|
this.scheduleOnce(call_back,0.1);
|
|
},
|
|
|
|
handleEffect: function (status) {
|
|
if (!status) {
|
|
if (this.progressEffect) {
|
|
this.progressEffect.setToSetupPose();
|
|
this.progressEffect.clearTracks();
|
|
}
|
|
}
|
|
},
|
|
|
|
clickHarm(){
|
|
if(this.harm_con.scaleX == 0){
|
|
this.harm_con.scaleX = 1;
|
|
this.mvp_con.scaleX = 0;
|
|
gcore.GlobalEvent.fire(BattleEvent.BATTLE_HARM_DATA,this.data);
|
|
}else{
|
|
this.harm_con.scaleX = 0;
|
|
this.mvp_con.scaleX = 1;
|
|
}
|
|
},
|
|
|
|
clickMvp(){
|
|
if(this.mvp_con.scaleX == 0){
|
|
this.mvp_con.scaleX = 1;
|
|
this.harm_con.scaleX = 0;
|
|
}else{
|
|
this.harm_con.scaleX = 1;
|
|
this.mvp_con.scaleX = 0;
|
|
}
|
|
}
|
|
|
|
// update (dt) {},
|
|
});
|