Files
fc/dev/project/library/imports/02/02f1621c-6f2a-4af5-b78e-a7d6f55f1e0b.js
T

1644 lines
64 KiB
JavaScript
Raw Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, '02f16IcbypK9beOp9b1Xx4L', 'battle_role');
// Scripts/mod/battle/act/battle_role.js
// // --------------------------------------------------------------------
// // @author: shiraho@syg.com(必填, 创建模块的人员)
// // @description:
// // 战斗单位实例对象
// // <br/>Create: new Date().toISOString()
// // --------------------------------------------------------------------
// const BridgeClass = require( "bridge.class" );
// const { PlayerAction,SCREEN_WIDTH,SCREEN_HEIGHT } = require( "define" );
// const BattleEvent = require("battle_event");
// var BattleRolePool = require("battle_role_pool");
// var PathTool = require("pathtool")
// var BattleConst = require("battle_const");
// var BattleEffect = require("battle_effect");
// var BattleLoop = require("battle_loop")
// var BattleRole = cc.Class({
// extends: cc.Component,
// properties: {
// // skelon_cache: {
// // default: {}
// // }
// },
// ctor:function(){
// // 假战斗才需要,当前这一排是否有其他单位,确定初始位置
// if (arguments && arguments.length > 0){
// this.is_next_offset = arguments[0];
// }else{
// this.is_next_offset = false;
// }
// this.initConfig();
// },
// initConfig:function(){
// this.role = null;
// this.parent = null;
// this.prefabPath = PathTool.getPrefabPath("battle", "battle_real_role");
// this.role_data = null;
// this.top_off_y = 10; // 血条向上的偏移量
// this.is_real = false; // 是否是真战斗单位
// this.play_enter = false; // 是否需要播放进场动画
// this.talk_back = false; // 是否需要通知播放完成
// this.grid_pos = null; // 格子坐标,
// this.scene_pos = null; // 场景坐标
// this.is_friend = false; // 是否是友方
// this.obj_type = 0; // 是己方还是敌方
// // this.skeletonData_list = {} // 动作列表
// this.model_height = 120; // 模型的高度
// this.model_width = 60; // 模型的宽度,暂时先这样,后面加接口计算
// this.pos = 0; // 当前站位
// this.group = 0; // 当前分组
// this.spine_name = ""; // 单位资源名字 ,H10000这种
// this.spine_name_1 = ""; // 单位资源名字 ,H10000这种
// this.base_spine_name = ""; // 单位初始资源模型,防止变身后无法转换回来
// this.play_action_name = ""; // 当前动作名字,
// this.is_aid = false;
// //变身参数
// this.change_spine_res = ""
// this.change_spine_action = ""
// this.is_change_status = false
// this.buff_spine = null;
// this.is_round = false; // 当前技能播报是否播放完成
// this.effect_list = {}; // 挂在身上的特效列表
// this.hp_show_status = true; // 是否显示或者隐藏血条
// this.is_die = false; // 该单位是否是死亡 == role_data.hp == 0
// this.role_cur_zorder = 0; // 当前单位深度值
// this.in_hurt_act = false; // 是否在播放受击效果中
// this.need_play_die = false; // 需要播放死亡动作
// this.is_use_skill = false; // 是否使用皮肤
// this.fashion_id = 0; // 皮肤映射id
// var BattleController = require("battle_controller");
// this.model = BattleController.getInstance().getModel();
// this.hook_model = BattleController.getInstance().getHookModel();
// this.skill_act = require("skill_act");
// this.wait_action_name = null;
// this.wait_res_name = null;
// this.wait_is_loop = null;
// this.tips_list = {}; // 当前飘字记录
// this.buff_list = {}; // 当前buff列表信息,以唯一id作为key
// this.buff_list_data = {}; // 当前buff信息,以buff_config.icon作为key
// this.buff_list_item = {}; // 当前buff的实例化显示对象,以buff_config.icon作为key
// this.action_call_list = {}; // 制动动作回调
// this.wait_add_effect_list = {}; // 待添加特效
// this.dmg_index = 0; // 当前伤害数字的个数
// this.elfin_list = []
// },
// /**
// * 创建战斗单位
// * @param {*} parent 所在父节点
// * @param {*} battle_role_data 对象基础数据,BattleRoleData
// * @param {*} play_enter 是否需要播放进场动画
// * @param {*} talk_back 是否需要通知进场完成
// * @param {*} is_real 是否是真实战斗
// * @param {*} finish_cb 创建完成之后的回调
// */
// createRole:function(parent, battle_role_data, play_enter, talk_back, is_real, finish_cb){
// this.parent = parent;
// this.role_data = battle_role_data;
// this.play_enter = false;
// this.finish_cb = finish_cb;
// if (!is_real)
// this.play_enter = false;
// this.talk_back = talk_back || false;
// this.is_real = is_real || false;
// this.pos = battle_role_data.pos;
// this.group = battle_role_data.group;
// this.sprites = battle_role_data.sprites || []
// this.skills = battle_role_data.skills || []
// this.is_camera = false;//每次战斗每回合敌我双方只有一个加镜头特效
// this.is_not_hide = false;
// nx.res.loadPrefab( this.prefabPath, ( _err, _fab ) => {
// // 载入错误
// if( _err ) {
// nx.error( "$UI:载入失败!", nx.fmtError( _err ) );
// nx.dt.fnInvoke( _cb, false, nx.fmtError( _err ) );
// return;
// }
// // 实例化
// let role = cc.instantiate( _fab );
// this.createRootWnd(role);
// // nx.timers.newTimer( "role"+String(this.pos), 0.1, 1, () => {
// // this.createRootWnd(role);
// // nx.timers.delTimer( "role"+String(this.pos) );
// // } );
// // 预制常驻
// nx.assets.pushResident( this.prefabPath, _fab );
// } );
// },
// // 初始化状态
// resetInitStatus: function () {
// if (this.skeleton) {
// this.skeleton.setToSetupPose();
// this.skeleton.clearTracks();
// }
// },
// //繼續使用假戰鬥單位
// createUnrealRole:function(parent, battle_role_data, play_enter, talk_back, is_real, finish_cb){
// this.parent = parent;
// this.role_data = battle_role_data;
// this.play_enter = false;
// this.finish_cb = finish_cb;
// if (!is_real)
// this.play_enter = false;
// this.talk_back = talk_back || false;
// this.is_real = is_real || false;
// this.pos = battle_role_data.pos;
// this.group = battle_role_data.group;
// this.sprites = battle_role_data.sprites || []
// this.skills = battle_role_data.skills || []
// this.is_die = false;
// if (this.role_data.group == BattleConst.Group_Type.Enemgy){
// this.playUnrealEnterAction();
// }
// // 看看有没有待添加的特效
// // this.checkEffectNeedAdd();
// },
// // 初始化创建对象
// createRootWnd: function (role) {
// let valid = this.parent && this.parent.isValid && role && role.isValid ? true : false;
// if(!valid)return;
// if(this.role)return;
// this.role = role;
// if (this.parent) {
// this.parent.addChild(this.role);
// }
// this.role_node = this.role.getChildByName("role_node"); // 模型节点
// // this.role_black = this.role_node.getChildByName("black");
// this.role_died_sp = this.role_node.getChildByName("died").getComponent(sp.Skeleton);
// this.role_died_sp.node.active = false;
// this.container = this.role_node.getChildByName("container"); // spine节点
// this.role_effect = this.role_node.getChildByName("effect");
// this.top_container = this.role_node.getChildByName("top_container"); // 血条部分
// this.shadow = this.role_node.getChildByName("shadow"); // 脚底阴影
// this.boss_bar = this.role_node.getChildByName("boss").getComponent(cc.ProgressBar);
// this.progress = this.top_container.getChildByName("hp").getComponent(cc.ProgressBar);
// this.red = this.top_container.getChildByName("hp").getChildByName("red");
// this.once = this.top_container.getChildByName("hp").getChildByName("once");
// this.level = this.top_container.getChildByName("level").getComponent(cc.Label);
// this.camp = this.top_container.getChildByName("camp").getComponent(cc.Sprite);
// this.buff_container = this.top_container.getChildByName("buff_container"); // buff的主节点
// this.hallow_node = this.role.getChildByName("hallow_node"); // 神器节点
// // this.round_progress = this.hallow_node.getChildByName("progress").getComponent(cc.ProgressBar); // 回合进度条
// this.spine_renderer = this.role.getChildByName("spine_renderer"); // 精灵技能
// this.spine_renderer.active = false;
// // 神器和模型区分
// if (this.role_data.object_type == BattleConst.Unit_Type.Hallows){
// this.spine = this.hallow_node.getChildByName("spine");
// this.skeleton = this.spine.getComponent(sp.Skeleton);
// this.role_node.active = false;
// this.hallow_node.active = true;
// this.spine_renderer.active = false;
// this.spine.scale = 0.8
// }else if (this.role_data.object_type == BattleConst.Unit_Type.Elfin){
// this.spine = this.hallow_node.getChildByName("spine");
// this.skeleton = this.spine.getComponent(sp.Skeleton);
// this.role_node.active = false;
// this.hallow_node.active = false;
// // 初始化精灵节点
// this.initSpineRenderer();
// }else{
// this.is_allow_black = true;//只有角色允许黑屏处理
// this.spine_renderer.active = false;
// this.spine = this.container.getChildByName("spine");
// this.spine.active = false;
// this.skeleton = this.spine.getComponent(sp.Skeleton);
// this.skeleton.clearTracks();
// this.effect = this.container.getChildByName("effect"); // 10星光环特效
// this.hallow_node.active = false;
// this.role_node.active = true;
// // this.setActive(true);
// // 真实战斗才需要显示这些东西
// if (this.is_real) {
// this.level.string = "Lv." + this.role_data.lev;
// } else {
// this.role.active = false;
// this.updateBossHp();
// }
// }
// this.spine_zorder = this.spine.zIndex;
// // 设置当前的模型速率
// if (this.skeleton_time_scale){
// this.skeleton.timeScale = this.skeleton_time_scale;
// this.setEffectScale(this.skeleton_time_scale);
// this.skeleton_time_scale = null;
// }else{
// var timeScale = this.model.getTimeScale();
// this.skeleton.timeScale = timeScale;
// this.setEffectScale(timeScale);
// }
// // 监听事件
// this.registerEvent();
// // 初始化
// this.resetInitStatus();
// // 设置当前位置
// this.setGridPos();
// if(this.role_data.object_type == BattleConst.Unit_Type.Hallows){
// // 更新神器
// gcore.GlobalEvent.fire(BattleEvent.BATTLE_FORM_VIEW_HALLOW,true,this,this.is_friend,this.role_data.hallows_val, this.role_data.hallows_max);
// // this.setHallowsRound(this.role_data.hallows_val, this.role_data.hallows_max);
// }
// // 实例化模型
// this.instantModelRole();
// // 设置气血
// this.setHP(0);
// // 看看有没有待添加的特效
// // this.checkEffectNeedAdd();
// },
// // 设置10星特效的播放速率
// setEffectScale:function(time_scale){
// if (this.effect_skeleton){
// // this.effect_skeleton.timeScale = time_scale;
// }
// },
// registerEvent:function(){
// this.skeleton.setCompleteListener((function (trackEntry, loopCount) {
// var animationName = trackEntry.animation ? trackEntry.animation.name : "";
// if( this.action_call_list ){
// var action_object = this.action_call_list[animationName];
// if (action_object && action_object.over){
// action_object.over(animationName);
// this.action_call_list[animationName] = null;
// }
// }
// }).bind(this))
// this.skeleton.setEventListener((function (trackEntry, event) {
// var animationName = trackEntry.animation ? trackEntry.animation.name : "";
// if( this.action_call_list ){
// var action_object = this.action_call_list[animationName];
// if (action_object && action_object.event){
// action_object.event(event.data.name);
// }
// }
// }).bind(this))
// },
// // 设置角色格子位置,这个是要确定站位是在左边还是在右边
// setGridPos:function(){
// var is_friend = false;
// if (this.role_data == null){ return; }
// if (this.role == null){ return; }
// // 站位要区分真假战斗
// if (this.is_real == true){
// is_friend = this.model.isFriend(this.role_data.group);
// }else{
// is_friend = (this.role_data.group == 1);
// }
// if(is_friend){
// this.obj_type = BattleConst.Battle_Type_Conf.TYPE_ROLE
// }else{
// this.obj_type = BattleConst.Battle_Type_Conf.TYPE_ENEMY
// }
// this.is_friend = is_friend;
// // 非己方的需要反转处理
// if (this.role_data.object_type == BattleConst.Unit_Type.Hallows){
// if (this.is_friend == false){
// // rnx.gui.setActive(this.hallow_node,"2",true);
// // this.round_pogress = this.hallow_node.getChildByName("2").getComponent(cc.ProgressBar); // 回合进度条
// // this.role.scaleX = -1;
// }else{
// // nx.gui.setActive(this.hallow_node,"1",true);
// // this.round_progress = this.hallow_node.getChildByName("1").getComponent(cc.ProgressBar); // 回合进度条
// // this.role.scaleX = 1;
// }
// }else
// {
// if (this.is_friend == false){
// this.spine.scaleX = -1;
// this.spine_renderer.x = 0
// }else{
// this.spine.scaleX = 1;
// this.spine_renderer.x = 25
// }
// }
// // 获取当前格子站位
// this.grid_pos = this.skill_act.newPos2Gird(this.role_data.pos, is_friend, this.role_data.group, this.is_real);
// this.scene_pos = this.skill_act.gridPosToScreenPos(this.grid_pos);
// this.role.setPosition(this.scene_pos);
// this.resetZOrder();
// },
// // 设置坐标
// setScenePos:function(pos){
// this.role.setPosition(pos);
// },
// // 是否需要反转劫色,因为可能存在背刺技能
// reverse:function(rev){
// rev = rev || -1;
// if (this.rev_value == rev) return;
// this.rev_value = rev;
// if (this.spine){
// this.spine.scaleX = rev;
// }
// if (this.role_data.object_type == BattleConst.Unit_Type.Hallows){
// if (this.spine){
// this.spine.scaleX = rev*0.8;
// }
// }else
// {
// if (this.spine){
// this.spine.scaleX = rev;
// }
// }
// },
// // 实例化角色模型数据
// instantModelRole: function () {
// if (this.role_data == null){ return; }
// // 去配置表数据
// var camp_type = 0; // 当前阵营
// var spine_name = "";
// var encircle_effect = ""; // 10星英雄特效
// var fashion = 0; // 时装数据
// if (this.role_data.object_type == BattleConst.Unit_Type.Hero){
// var key = Utils.getNorKey(this.role_data.object_bid, this.role_data.star);
// var config_data = gdata("partner_data", "data_partner_star", key);
// if (config_data){
// spine_name = config_data.res_id;
// encircle_effect = config_data.fight_effect;
// }
// var base_config = game.configs.partner_data.data_partner_base[this.role_data.object_bid];
// if(base_config){
// camp_type = base_config.camp_type;
// }
// }else if(this.role_data.object_type == BattleConst.Unit_Type.Hallows){
// var config_data = game.configs.hallows_data.data_base[this.role_data.object_bid]
// if (config_data){
// spine_name = config_data.c_res_id;
// }
// }
// else if(this.role_data.object_type == BattleConst.Unit_Type.Elfin){
// spine_name = "H70000"
// }else{
// var config_data = Utils.getUnitConfig(this.role_data.object_bid);
// if(config_data){
// spine_name = config_data.body_id;
// camp_type = config_data.camp_type;
// encircle_effect = config_data.fight_effect;
// }
// }
// // 真是战斗就从服务端那边去,否则从battleloop2里面去数值
// if(this.is_real == true){
// this.role_node.setAnchorPoint(0.5,0.5);
// fashion = this.getBattleRoleExtendData(5); // 时装数据
// }else{
// if(!this.is_friend){//挂机boss需要重设锚点
// this.role_node.setAnchorPoint(0.7,0.5);
// }else{
// this.role_node.setAnchorPoint(0.5,0.5);
// }
// fashion = this.role_data.fashion;
// }
// this.role_data.face_id = this.role_data.object_bid;
// if(fashion != 0){
// let skin_config = game.configs.partner_skin_data.data_skin_info[fashion];
// if(skin_config){
// spine_name = skin_config.res_id;
// this.role_data.face_id = skin_config.head_id;
// if(skin_config.fight_effect != "" && encircle_effect != ""){
// encircle_effect = skin_config.fight_effect;
// }
// }
// this.is_use_skill = true;
// this.fashion_id = fashion;
// }
// if (spine_name == ""){return;}
// this.spine_name = spine_name;
// this.base_spine_name = spine_name;
// // 设置阵营
// if (this.is_real && this.role_data.object_type != BattleConst.Unit_Type.Hallows){
// this.setCampIcon(camp_type);
// }
// // 设置10星光环特效
// // if (encircle_effect != ""){
// // this.createEncircleEffect(encircle_effect);
// // }
// // 设置模型的高度
// var config_model = game.configs.skill_data.data_get_model_data[spine_name];
// if (config_model){
// this.model_height = config_model.model_height ; // 模型的高度再上浮20个像素
// }
// this.top_container.y = this.model_height + this.top_off_y;
// //是否需要播放进场动作
// if (this.play_enter) {
// this.showEnterAction();
// } else {
// if (this.is_real){
// this.doRunToStand(function() {
// if(!this.role)return;
// this.role.active = true;
// this.setActive(true);
// }.bind(this));
// // this.doStand(function() {
// // if(!this.role)return;
// // this.role.active = true;
// // this.setActive(true);
// // }.bind(this));
// }else{
// this.doStand(function() {
// if(!this.role)return;
// if (!this.is_real) {
// this.role.active = true;
// if (this.finish_cb)
// this.finish_cb();
// }
// this.setActive(true);
// if (this.role_data.group == BattleConst.Group_Type.Enemgy){
// this.playUnrealEnterAction();
// }
// }.bind(this));
// // this.doRun(function() {
// // if (!this.is_real) {
// // this.role.active = true;
// // if (this.finish_cb)
// // this.finish_cb();
// // }
// // this.setActive(true);
// // if (this.role_data.group == BattleConst.Group_Type.Enemgy){
// // this.playUnrealEnterAction();
// // }
// // }.bind(this))
// }
// }
// },
// // 获取指定类型的额外数据
// getBattleRoleExtendData:function(key){
// if (this.role_data == null) return 0;
// for (let index = 0; index < this.role_data.extra_data.length; index++) {
// const element = this.role_data.extra_data[index];
// if (element.extra_key == key){
// return element.extra_value;
// }
// }
// return 0;
// },
// // 设置神器回合进度条
// setHallowsRound:function(val, max){
// // if(this.role_data == null || this.role_data.object_type != BattleConst.Unit_Type.Hallows) return;
// // if(val == 0 || val == null){
// // this.round_progress.progress = 0;
// // }else{
// // if (max == 0 || max == null){
// // max = 3;
// // }
// // var per = Math.min(1, Math.max(val / max))
// // this.round_progress.progress = per;
// // }
// },
// // 是否需要播放进场动作
// showEnterAction:function(){
// if(this.role_data && this.role_data.object_type == BattleConst.Unit_Type.Hallows||this.role_data.object_type == BattleConst.Unit_Type.Elfin){ // 神器不需要走任何处理
// this.doStand();
// return;
// }
// var time = 0.5;
// var start_x = this.scene_pos.x
// var offset_x = SCREEN_WIDTH * 0.25
// var move_by = null
// if (this.is_friend == true){
// start_x = start_x - offset_x
// move_by = cc.moveTo(time, this.scene_pos.x, this.scene_pos.y)
// } else {
// start_x = start_x + offset_x
// move_by = cc.moveTo(time, this.scene_pos.x, this.scene_pos.y)
// }
// this.doRun();
// this.role.x = start_x;
// this.role.runAction(cc.sequence(move_by, cc.callFunc(function () {
// this.doStand();
// }.bind(this))))
// },
// // 设置阵营
// setCampIcon:function(camp_type){
// let cfg = game.configs.combat_halo_data.data_halo_icon[camp_type];
// if(!cfg)return;
// var camp_icon = cc.js.formatStr("prefab/battle/ui/camps%s",cfg.id);
// nx.gui.setSpriteFrame(this.camp,"",camp_icon);
// },
// // 假战斗地方的进场效果
// playUnrealEnterAction:function(){
// if (this.role == null) return;
// this.clearNextActTimer();
// this.clearNextCallTimer();
// var skill_plays_data = BattleLoop.play(this.pos);
// if (skill_plays_data) {
// // cc.log("开始准备假战斗");
// var skill_plays_list = this.hook_model.getSkillPlayData(skill_plays_data.actor);
// if (skill_plays_list == null || skill_plays_list.length == 0) {
// this.hook_model.handleSkillPlayData(skill_plays_data, function(start_cb) {
// // cc.log("开始进行假战斗0");
// var wait_time = 2500 - this.hook_model.getFinalMoveTime();
// if (!this.next_ack_mon_timer) {
// this.next_ack_mon_timer = gcore.Timer.set(function () {
// // cc.log("准备攻击1");
// if (start_cb)
// start_cb();
// }.bind(this), wait_time, 1)
// }
// }.bind(this));
// }
// this.hook_model.updateActorPlaysList(skill_plays_data);
// }
// },
// // 清楚下一个攻击的定时器
// clearNextActTimer:function(){
// if (this.next_ack_mon_timer){
// gcore.Timer.del(this.next_ack_mon_timer);
// this.next_ack_mon_timer = null;
// }
// },
// // 清除下一波怪物刷新定时器
// clearNextCallTimer:function(){
// if (this.next_call_mon_timer) {
// gcore.Timer.del(this.next_call_mon_timer);
// this.next_call_mon_timer = null;
// }
// },
// doRun:function(cb){
// this.playActionOnce(PlayerAction.run, this.spine_name, null, null, cb)
// },
// doStand:function(finish_cb){
// this.playActionOnce(PlayerAction.battle_stand, this.spine_name, null, null, finish_cb);
// if (this.pos < 40 && this.talk_back ){
// this.talk_back = false;
// this.model.addReadySum();
// }
// },
// doRunToStand(finish_cb){
// if(!this.role)return;
// if(this.role_data && this.role_data.object_type == BattleConst.Unit_Type.Hallows||this.role_data.object_type == BattleConst.Unit_Type.Elfin){ // 神器不需要走任何处理
// this.doStand(finish_cb);
// return;
// }
// var time = 0.2;
// var start_x = this.scene_pos.x;
// var offset_x = SCREEN_WIDTH * 0.5;
// var move_by = null;
// if (this.is_friend == true){
// start_x = start_x - offset_x
// move_by = cc.moveTo(time, this.scene_pos.x, this.scene_pos.y)
// } else {
// start_x = start_x + offset_x
// move_by = cc.moveTo(time, this.scene_pos.x, this.scene_pos.y)
// }
// this.role.x = start_x;
// this.doRun(()=>{
// if(!this.role)return;
// this.role.runAction(cc.sequence(move_by, cc.delayTime(0.1), cc.callFunc(function () {
// this.role.position = this.scene_pos;
// this.playActionOnce(PlayerAction.battle_stand, this.spine_name, null, null, finish_cb);
// if (this.pos < 40 && this.talk_back ){
// this.talk_back = false;
// this.model.addReadySum();
// }
// }.bind(this))))
// });
// },
// // 设置动作伴随事件和动作结束事件回调
// setAnimationActionFunc:function(event_func, over_func, action_name){
// if (action_name == null) return;
// if(this.action_call_list[action_name] == null){
// this.action_call_list[action_name] = {over:null, event:null};
// }
// this.action_call_list[action_name].over = over_func;
// this.action_call_list[action_name].event = event_func;
// },
// isCHeckDel30075(key){
// let is_del = false;
// if(key == "H30075_jineng21" || key == "H30075_jineng22"||key == "H30075_jineng23"
// || key == "H30075_jineng24" || key == "H30075_jineng25"){
// is_del = true;
// }
// return is_del;
// },
// /**
// * 切换动作,由于处于待机的时候,可能马上切换到其他动作,所以这里要看看要不要处理成待机播放完成之后
// * @param {*} action_name 目标动作名字
// * @param {*} res_name 目标资源名字
// */
// playActionOnce:function(action_name, res_name2, is_loop, force, load_fini){
// if(!this.role)return;
// let res_name = res_name2 ;
// if( res_name2!= "" && res_name2!= null){
// this.spine_name = res_name2;
// }
// let self = this;
// //|| "H99999";
// if(is_loop == null){
// is_loop = true
// }
// if(!this.skeleton){
// return false;
// }
// // this.skeleton.skeletonData = null;
// var skeleton_path = PathTool.getSpinePath(self.spine_name, self.spine_name,false);
// if( this.play_action_res == skeleton_path ) {
// // nx.res.loadRes(skeleton_path,sp.SkeletonData,(_e,res)=>{
// // if(res && self.spine && self.skeleton){
// // this.skeleton.skeletonData = res;
// // self.skeleton.setToSetupPose();
// self.play_action_name = action_name;
// self.skeleton.setAnimation(0, action_name, is_loop);
// self.spine.active = true;
// self.skeleton.node.opacity = 255;
// // }
// // });
// }
// else {
// nx.res.loadRes(skeleton_path,sp.SkeletonData,(_e,_p)=>{
// if( _e ) {
// nx.dt.fnInvoke( load_fini, _e );
// return;
// }
// // 资源绑定
// // nx.assets.cacheAsset( _p, skeleton_path );
// if(self.spine && self.skeleton){
// self.skeleton.skeletonData = _p;
// // self.skeleton.setToSetupPose();
// self.skeleton.setAnimation(0, action_name, is_loop);
// self.spine.active = true;
// self.skeleton.node.opacity = 255;
// }
// self.play_action_name = action_name;
// // nx.assets.uncacheAsset( self.spSkeleton );
// self.spSkeleton = _p;
// self.play_action_res = skeleton_path;
// nx.dt.fnInvoke( load_fini );
// });
// }
// },
// // 重设基础数据,包含切换到战力动作等
// resetBaseInfo:function(){
// if(!this.role)return;
// this.playActionOnce(PlayerAction.battle_stand,this.spine_name);
// if(this.scene_pos){
// this.role.setPosition(this.scene_pos);
// }
// this.resetZOrder();
// this.reverse(this.obj_type);
// },
// // 设置深度值
// resetZOrder: function () {
// if (this.role_data == null) { return; }
// if (this.role == null) { return; }
// if (this.role_base_zorder){
// if(this.role_cur_zorder != this.role_base_zorder){
// this.role_cur_zorder = this.role_base_zorder;
// this.role.zIndex = this.role_base_zorder;
// }
// return;
// }
// var zorder = 0
// var group = this.role_data.group - 1;
// var pos = this.role_data.pos - 1;
// if (this.role_data.group == BattleConst.Group_Type.Enemgy){
// zorder = BattleConst.BattleRoleZorder[group][pos-BattleConst.GIRD_POS_OFFSET];
// }else{
// zorder = BattleConst.BattleRoleZorder[group][pos]
// }
// this.role_base_zorder = zorder;
// this.role_cur_zorder = zorder;
// this.role.zIndex = zorder;
// },
// // 设置深度
// setLocalZOrder:function(zIndex){
// if(this.role_cur_zorder == zIndex){ return; }
// this.role_cur_zorder = zIndex;
// if(this.role){
// this.role.zIndex = zIndex;
// }
// },
// // 当前深度值
// getLocalZOrder:function(){
// return this.role_cur_zorder || 0;
// },
// // 战斗动作播报
// runAction:function(action){
// if(this.role){
// // this.role.stopAllActions();
// if (action) {
// this.role.runAction(action);
// }
// }
// },
// // 添加一个战斗特效,可能是buff, index:0 为上层特效 1:为下层特效
// addBattleEfffect:function(fix, fiy, effect_id, action_name, index, obj_type,tag_pos){
// if(!this.role)return;
// // 这个确定是否要反转特效
// if (obj_type == null){
// obj_type = this.obj_type;
// }
// if(this.effect_list[effect_id] == null){
// this.effect_list[effect_id] = {}
// }
// if (this.effect_list[effect_id][action_name] == null){
// this.effect_list[effect_id][action_name] = {num:1, object:null}
// }
// var effect_object = this.effect_list[effect_id][action_name];
// if (effect_object.object == null){
// effect_object.object = this.model.getEftMgr().createRoleEft(this.pos+effect_id+action_name,this.role_effect, cc.v2(fix, fiy), obj_type, effect_id);
// // effect_object.object = new BattleEffect();
// // effect_object.object.createEffect(this.role_effect, cc.v2(fix, fiy), obj_type, effect_id);
// }else{
// //临时
// effect_object.object = this.model.getEftMgr().findRoleEft(this.pos+effect_id+action_name);
// //临时
// effect_object.num += 1;
// if(effect_object.num > 0){
// effect_object.object.setActiveEffect(true);
// }
// }
// // 设置特效的深度值
// var zorder = this.spine_zorder + 1;
// if (index == 1){
// zorder = this.spine_zorder - 1;
// }
// effect_object.object.setLocalZOrder(zorder);
// return effect_object;
// },
// // 监测是否有待添加特效
// checkEffectNeedAdd:function(){
// // for(var effect_id in this.wait_add_effect_list){
// // for (var action_name in this.wait_add_effect_list[effect_id]){
// // var object = this.wait_add_effect_list[effect_id][action_name];
// // if (object && object.effect_id){
// // this.addBattleEfffect(object.fix, object.fiy, object.effect_id, object.action_name, object.index);
// // }
// // }
// // }
// // this.wait_add_effect_list = {};
// },
// // 移除一个特效,并不是强制移除,只是把计数器-1,如果计数器为0,才是彻底移除
// delBattleEffect:function(effect_id, action_name, tag_pos){
// if (this.wait_add_effect_list[effect_id]){
// if (this.wait_add_effect_list[effect_id][action_name] != null) {
// this.wait_add_effect_list[effect_id][action_name] = null;
// }
// }
// if(this.effect_list[effect_id] == null){
// return;
// }
// var effect_object = this.effect_list[effect_id][action_name];
// if(effect_object == null){
// return;
// }
// effect_object.num -= 1;
// if (effect_object.num <= 0) {
// // this.model.getEftMgr().delRoleEft(effect_id+action_name);
// // this.effect_list[effect_id][action_name].object = null;
// effect_object.object.setActiveEffect(false)
// }
// },
// // 显示或者隐藏掉血条
// showHpRoot:function(status){
// if(!this.role)return;
// if (this.is_real == false ) return; // 假战斗不需要管这个
// if(this.hp_show_status == status){ return; }
// this.hp_show_status = status;
// if(this.top_container){
// this.red.active = false;
// this.top_container.active = status
// }
// },
// /**
// * 血量变化的值
// * @param {*} dmg 正数是治疗,负数是扣血
// * @param {*} is_die 是否死亡
// * @param {*} without 是否提出掉非死亡状态
// * @param {*} is_must_die 如果为0,就标识可以移除了.否则就算死了也不移除.因为可能在连击中
// */
// updateHP:function(dmg, is_die, without, is_must_die){
// if(!this.role)return;
// if(this.role_data == null) { return; }
// if(this.top_container == null) { return; }
// if(this.role_data && this.role_data.object_type == BattleConst.Unit_Type.Hallows) return;
// this.setHP(dmg);
// if (without == null){
// without = false
// }
// if (is_die == 1 && is_must_die == 0){
// if (this.is_die == false){
// if(this.is_real){
// this.died()
// }else{
// this.unrealDied();
// }
// // this.died()
// }
// }else{
// if(this.is_die == true && without == false){
// this.relive()
// }
// }
// },
// // 处理角色复活
// relive: function () {
// if (this.is_die == false) { return };
// this.is_die = false;
// this.showHpRoot(true);
// this.setActive(true)
// this.resetBaseInfo();
// var cur_hp = this.role_data.hp;
// var per = Math.min(1, Math.max(cur_hp / this.role_data.hp_max))
// this.progress.progress = per;
// },
// // 立刻移除对象
// doDied:function(){
// if(this.is_die == true) {
// return;
// }
// this.is_die = true;
// this.showHpRoot(false);
// this.setActive(false)
// this.clearAllEffect();
// },
// //處理假戰鬥角色死亡
// unrealDied: function(){
// this.need_play_die = false;
// if(this.role == null) {
// return;
// }
// if(this.is_die == true) {
// return;
// }
// this.is_die = true;
// this.assetJumpTo();
// if (this.next_call_mon_timer == null){
// this.next_call_mon_timer = gcore.Timer.set(function(){
// this.hook_model.playEnd(this.pos);
// this.hook_model.updateNextRoundData();
// }.bind(this), 300, 1)
// }
// this.updateBossHp();
// },
// updateBossHp(){
// if(!this.role)return;
// let drama_ctrl = require("battle_drama_controller");
// let hookTime = drama_ctrl.getInstance().getModel().getHookAccumulateInfo().hook_time || 0;
// let totalTime = game.configs.dungeon_data.data_drama_const.profit_time_max.val;
// let role_ctrl = require("role_controller").getInstance();
// let afkTime = 1;
// if(role_ctrl.getRoleVo().vip_lev > 0){
// afkTime = game.configs.vip_data.data_get_vip_info[role_ctrl.getRoleVo().vip_lev].val[2][1];
// }
// let vipTime = afkTime * 3600;
// let progress = (totalTime + vipTime - hookTime) / (totalTime + vipTime);
// this.boss_bar.progress = progress;
// },
// // 处理角色死亡
// died: function () {
// if(this.in_hurt_act == true){
// this.need_play_die = true;
// return;
// }
// if(this.role == null) {
// return;
// }
// if(this.is_die == true) {
// return;
// }
// this.showHpRoot(false);
// this.role_died_sp.node.active = true;
// this.role_died_sp.setToSetupPose();
// this.role_died_sp.clearTracks();
// let die_func = (delay)=>{
// this.is_die = true;
// var callFunc_1 = cc.callFunc((function(){
// this.role_died_sp.node.active = false;
// this.is_act_die = true;
// this.setActive(false);
// }).bind(this))
// var act = cc.sequence(cc.delayTime(delay),callFunc_1);
// this.runAction(act);
// // 清除所有的特效
// this.clearAllEffect(false);
// // 回收掉所有buff图标
// // this.removeBuffItemRes();
// this.removeBuffList();
// }
// this.model.getDiedEffectObj((res)=>{
// if(res && this.role_died_sp){
// this.role_died_sp.skeletonData = res;
// this.role_died_sp.setAnimation(0,"action",false);
// die_func(0.2);
// }else{
// die_func(0.2);
// }
// });
// },
// // 设置是否激活
// setActive:function(status){
// if(this.is_real){
// if(status){
// this.active_timer = setTimeout(()=>{
// if(!this.role)return;
// if(!this.is_real){
// this.top_container.active = false;
// if(!this.is_friend){
// this.boss_bar.node.active = true;
// }
// }
// this.role.opacity = status?255:0;
// this.skeleton.markForRender(status);
// this.shadow.active = status;
// // if (this.effect){
// // this.effect.active = status;
// // }
// },400);
// }else{
// if(!this.role)return;
// if(!this.is_real){
// this.top_container.active = false;
// if(!this.is_friend){
// this.boss_bar.node.active = true;
// }
// }
// this.role.opacity = status?255:0;
// this.skeleton.markForRender(status);
// this.shadow.active = status;
// // if (this.effect){
// // this.effect.active = status;
// // }
// }
// }else{
// if(!this.role)return;
// if(!this.is_real){
// this.top_container.active = false;
// if(!this.is_friend){
// this.boss_bar.node.active = true;
// }
// }
// this.role.opacity = status?255:0;
// this.skeleton.markForRender(status);
// this.shadow.active = status;
// // if (this.effect){
// // this.effect.active = status;
// // }
// }
// },
// // 受击动作播放完成之后的处理
// checkIsDied:function(){
// if (this.need_play_die == true){
// this.need_play_die = false;
// this.died();
// }else{
// this.doStand()
// }
// },
// // 设置气血
// setHP:function(dmg){
// if(!this.role)return;
// if(this.role_data == null) { return; }
// var cur_hp = 0;
// if(dmg <= 0){ // 伤害
// cur_hp = Math.max(0, dmg + this.role_data.hp);
// }else{ // 恢复
// cur_hp = Math.min(this.role_data.hp_max, dmg + this.role_data.hp)
// }
// this.role_data.hp = cur_hp;
// var per = Math.min(1, Math.max(cur_hp / this.role_data.hp_max))
// this.progress.progress = per;
// nx.gui.setActive(this.once,"",per == 1);
// if(per <= 0.3){
// this.red.active = true;
// this.red.width = this.progress.totalLength * per;
// }else{
// this.red.active = false;
// }
// },
// // 下一波怪如果是己方需要清掉所有的buff之类的
// updataNextBattleRole:function(data){
// if(!this.role)return;
// if (this.role_data){
// if(this.role_data.updateData){
// this.role_data.updateData(data);
// }
// this.clearAllEffect(false);
// this.removeBuffList();
// if(this.role_data.hp <= 0){
// this.died();
// }else{
// var per = Math.min(1, Math.max(this.role_data.hp / this.role_data.hp_max))
// this.progress.progress = per;
// this.red.width = this.progress.totalLength * per;
// if(per <= 0.3){
// if(per != 0){
// this.red.active = true;
// this.progress.barSprite.node.active = false;
// }
// }else{
// this.red.active = false;
// this.progress.barSprite.node.active = true;
// }
// }
// }
// },
// // 变身操作
// // --- BattleRole:changeSpine 變出處理,後續會用到
// // -- @param bool 是否變身
// // -- @param spine 變身資源
// // -- @param anima_name 變身動作資源
// changeSpine:function(bool, spine2, anima_name2){
// let self = this;
// // 如果是在播放動作過程中,切換模型這個時候不處理
// if (bool && this.in_animation == true) {
// self.change_spine_res = spine2
// self.change_spine_action = anima_name2
// return
// }
// let spine = spine2 || self.base_spine_name;
// if (bool) {
// self.is_change_status = true
// self.buff_spine = spine2
// }else{
// self.is_change_status = false
// self.buff_spine = null;
// spine = self.base_spine_name;
// self.change_spine_res = self.base_spine_name;
// }
// this.spine_name = spine;
// let anima_name = anima_name2 || PlayerAction.battle_stand
// this.playActionOnce(anima_name, this.spine_name, null, null, null)
// },
// // 動作播放完成之後,嘗試切換模型
// reTryChangeSpine(){
// let self = this;
// if (self.change_spine_res && self.change_spine_action ){
// self.changeSpine(true, self.change_spine_res, self.change_spine_action)
// if(!self.is_change_status){
// self.change_spine_action = null
// self.change_spine_res = null
// }
// }
// },
// // 通知播放假战斗资源掉落
// assetJumpTo:function(){
// var node_root_pos = this.role.convertToWorldSpaceAR(cc.v2(0, 0)); // 转到世界坐标
// this.model.playResourceCollect(node_root_pos.x+ this.model_width*2, node_root_pos.y + this.model_height * 0.5); //
// },
// setVisbale(status){
// if(!this.role)return;
// if(status){
// this.role.setPosition(this.scene_pos);
// }else{
// this.role.x = this.is_friend?-2000:3000;
// }
// },
// // 隐身
// setOpacity:function(status, value){
// if(!this.role)return;
// if(status){
// this.role.opacity = value;
// }else{
// this.role.opacity = 0;
// }
// },
// // 更新buff,包含更新buff列表
// updateBuffList:function(buff, buff_cfg){
// if(buff == null || buff_cfg == null){
// return;
// }
// this.buff_list[buff.id] = null;
// this.buff_list[buff.id] = {buff:buff, config:buff_cfg, res_id: buff_cfg.icon};
// var temp_group_list = {};
// var res_id = buff_cfg.icon;
// if(res_id != 0){
// var buff_data = this.buff_list_data[res_id];
// if (buff_data == null){
// buff_data = {res_id: res_id, num: 0, list: []};
// this.buff_list_data[res_id] = buff_data;
// }
// if (buff_data.num == 0 || (buff_cfg.join_type && buff_cfg.join_type != 3)) {
// buff_data.num += 1;
// if (buff_cfg.group) {
// temp_group_list[buff_cfg.group] = true;
// }
// } else if (buff_cfg.join_type && buff_cfg.join_type == 3 && buff_cfg.group && !temp_group_list[buff_cfg.group]) {
// temp_group_list[buff_cfg.group] = true;
// buff_data.num += 1;
// }
// buff_data.list.push(buff.id);
// var temp_ary = []
// for(var key in this.buff_list_data){
// var data = this.buff_list_data[key];
// if(data){
// temp_ary.push(data);
// }
// }
// if (temp_ary.length > 0){
// temp_ary.sort(Utils.tableLowerSorter(["res_id"]));
// // if(this.is_friend){
// // this.model.handleSelfFriendBuff(this.role_data.object_bid,temp_ary);
// // }
// for (let index = 0; index < temp_ary.length; index++) {
// var data = temp_ary[index];
// var buff_object = this.buff_list_item[data.res_id];
// if (buff_object == null){
// buff_object = this.createBuffItem();
// this.buff_list_item[data.res_id] = buff_object;
// }
// buff_object.label.string = data.num;
// nx.bridge.setIcon(buff_object.icon.node,"",data.res_id);
// buff_object.node.active = true;
// }
// }
// }
// },
// // 移除buff没如果没有传参数,就是移除全部
// removeBuffList:function(buff_id){
// if(buff_id == null){
// this.buff_list = {};
// this.buff_list_data = {};
// this.buff_list_item = {};
// if(this.buff_container && this.buff_container.removeAllChildren){
// this.buff_container.removeAllChildren();
// }
// }else{
// var data = this.buff_list[buff_id]; // {buff:buff, config:buff_data, res_id: buff_data.icon};
// if(data){
// var buff_object = this.buff_list_item[data.res_id];
// if (buff_object){
// var buff_data = this.buff_list_data[data.res_id]; // 取出具体数字
// if (buff_data){
// buff_data.num -= 1;
// // 将该buff从列表中删除
// for (let index = 0; index < buff_data.list.length; index++) {
// const element = buff_data.list[index];
// if (element == buff_id){
// buff_data.list.splice(index, 1);
// break;
// }
// }
// // 当前没有可用于显示的buff了,把buff节点丢到对象池里面去
// if (buff_data.num <= 0){
// this.buff_list_item[data.res_id] = null;
// this.buff_list_data[data.res_id] = null;
// delete this.buff_list_item[data.res_id];
// delete this.buff_list_data[data.res_id];
// buff_object.node.removeFromParent();
// }else{
// buff_object.label.string = buff_data.num;
// }
// }
// }
// }
// this.buff_list[buff_id] = null;
// }
// },
// // 回收buff图标的时候,优先清理掉缓存的纹理信息
// removeBuffItemRes:function(){
// },
// // 创建buff,手动创建,但是对象池获取,包含 node, label, path icon
// createBuffItem:function(){
// var buff_object = {node:null, label:null, icon:null, path:""};
// var node = null;
// var label = null;
// var icon = null;
// node = new cc.Node();
// node.setAnchorPoint(0, 0.5);
// node.width = 22;
// node.height = 22;
// var icon_node = new cc.Node();
// icon_node.setAnchorPoint(0, 0.5);
// icon_node.name = "icon_sprite";
// node.addChild(icon_node);
// icon = icon_node.addComponent(cc.Sprite);
// var font_node = new cc.Node();
// font_node.color = new cc.Color(cc.Color.WHITE);
// font_node.setAnchorPoint(1, 0.5);
// font_node.x = 20;
// font_node.y = -3;
// font_node.name = "font_label";
// node.addChild(font_node);
// label = font_node.addComponent(cc.Label);
// label.lineHeight = 14;
// label.fontSize = 14;
// label.horizontalAlign = cc.macro.TextAlignment.RIGHT;
// var outline_label = font_node.addComponent(cc.LabelOutline);
// outline_label.color = new cc.Color(cc.Color.BLACK);
// buff_object.node = node;
// this.buff_container.addChild(node);
// buff_object.label = label;
// buff_object.icon = icon;
// return buff_object;
// },
// // 重新设置buff的位置
// resetBuffPostion:function(){
// },
// // 判断是否拥有当前id的buff
// hadBuff:function(buff_id){
// return (this.buff_list && this.buff_list[buff_id] != null)
// },
// getRoleData:function(){
// return this.role_data;
// },
// addTips:function(bid){
// if(this && this.tips_list){
// this.tips_list[bid] = true;
// }
// },
// removeTips:function(bid){
// if(this && this.tips_list){
// this.tips_list[bid] = false;
// }
// },
// // 设置当前模型和绑在模型上面的特效播放速率
// setTimeScale:function(speed){
// if(!this.role)return;
// if (this.skeleton == null || this.skeleton.skeletonData == null){
// this.skeleton_time_scale = speed;
// }else{
// if (this.skeleton_timeScale == speed) return;
// this.skeleton_timeScale = speed
// this.skeleton.timeScale = speed;
// //// this.setEffectScale(speed);
// // 设置特效
// for (var effect_id in this.effect_list) {
// var effect_object = this.effect_list[effect_id]
// for (var action_name in effect_object) {
// var effect = effect_object[action_name]
// if (effect && effect.object) {
// effect.object.setTimeScale(speed);
// }
// // if(effect){
// // let eft = this.model.getEftMgr().findRoleEft(effect_id+action_name);
// // eft.setTimeScale(speed);
// // }
// }
// }
// }
// },
// // 清空所有特效
// clearAllEffect:function(is_force){
// for (var effect_id in this.effect_list) {
// var effect_object = this.effect_list[effect_id]
// for (var action_name in effect_object) {
// var effect = effect_object[action_name]
// if (effect && effect.object) {//
// //临时 effect.object.deleEffect();
// this.model.getEftMgr().delRoleEft(this.pos+effect_id+action_name);
// this.effect_list[effect_id][action_name] = null;
// }
// }
// }
// if (is_force) {
// this.effect_list = null;
// this.wait_add_effect_list = null;
// }else{
// this.effect_list = {};
// this.wait_add_effect_list = {};
// }
// },
// /**
// * 从场景中移除这个单位,回收掉所有的创建节点和预制,并且删除掉所有的资源纹理信息
// */
// deleteRole: function () {
// if(this.role){
// this.role.stopAllActions();
// }
// this.clearAllEffect(true);
// this.clearNextActTimer();
// this.clearNextCallTimer();
// // this.removeBuffItemRes(); // 优先清掉buff缓存的纹理信息
// if(this.camp){
// this.camp.spriteFrame = null; // 先释放掉节点对象资源引用对象
// }
// this.action_call_list = {};
// this.tips_list = {};
// // 资源释放
// // if( this.spSkeleton ) {
// // nx.assets.uncacheAsset( this.spSkeleton );
// // this.spSkeleton = null;
// // }
// this.spine = null;
// this.skeleton = null;
// this.role_node = null;
// this.role_died_sp = null;
// this.container = null; // spine节点
// this.role_effect = null;
// this.top_container = null // 血条部分
// this.shadow = null // 脚底阴影
// this.boss_bar = null;
// this.progress = null;
// this.red = null;
// this.once = null;
// this.level = null;
// this.camp = null;
// this.hallow_node = null;
// this.spine_renderer = null;
// if(this.active_timer){
// clearTimeout(this.active_timer);
// this.active_timer = 0;
// }
// // 移除掉所有的buff节点
// this.removeBuffList();
// this.buff_container = null;
// // this.role.destroy();
// // this.role = null;
// this.node = this.role;
// this.destroy();
// this.role.destroy();
// // console.log("del1====>",this.role);
// // console.log("del2====>",this);
// },
// getResPath: function(action_name) {
// let spine_name = this.spine_name;
// if(this.spine_name == ""){
// var key = Utils.getNorKey(this.role_data.object_bid, this.role_data.star);
// var config_data = gdata("partner_data", "data_partner_star", key);
// spine_name = config_data.res_id;
// }
// return PathTool.getSpinePath(spine_name,spine_name,false);
// },
// initSpineRenderer: function () {
// if(!this.role)return;
// let path = "prefab/battle/elfin_real_role";
// nx.res.loadPrefab( path, ( _err, _fab ) => {
// // 载入错误
// if( _err ) {
// this.is_err_elfin = true;
// return;
// }
// this.is_err_elfin = false;
// // 预制常驻
// nx.assets.pushResident( path, _fab );
// // 实例化
// let elfin = cc.instantiate( _fab );
// if(this.spine_renderer){
// this.spine_renderer.addChild(elfin);
// let container = nx.gui.find(this.spine_renderer,"elfin_real_role/skills");
// this.elfin_list = []
// for (let i = 0; i < 4; i++) {
// let elfin_panel = {};
// let itemNode = container.children[i];
// elfin_panel.icon = itemNode.getChildByName("skill"); //技能图标
// elfin_panel.icon.active = false;
// elfin_panel.mask = itemNode.getChildByName("mask"); //技能图标
// elfin_panel.mask.active = false;
// elfin_panel.cd_lab = elfin_panel.mask.getChildByName("cd_lab").getComponent(cc.Label); //技能CD
// this.elfin_list.push(elfin_panel);
// }
// this.showElfinSkillIcon(this.sprites, this.skills)
// }
// } );
// },
// showElfinSkillIcon: function (data, skills) {
// if(!this.role)return;
// if (!this.elfin_list) { return }
// this.all_elfin_data = data || []
// if (Utils.next(this.all_elfin_data) != null) {
// let bool = false;
// for (let i = 0; i < 4; i++) {
// let elfin_object = this.elfin_list[i]
// let elfin_data = this.getElfinDataByPos(i + 1)
// if (elfin_data) {
// let item_bid = elfin_data.item_bid || 0
// if (item_bid == 0) { // 解鎖了,但是未佈置精靈
// elfin_object.icon.active = (false)
// elfin_object.mask.active = (false)
// elfin_object.cd_lab.node.active = (false)
// } else {
// bool = true
// let elfin_cfg = game.configs.sprite_data.data_elfin_data[item_bid]
// if (elfin_cfg && elfin_cfg[1]) {
// let skill_cfg = gskilldata("data_get_skill", [elfin_cfg[1]]);
// if (skill_cfg) {
// elfin_object.skill_bid = elfin_cfg[1] // 記錄一下技能bid,用於更新技能cd時間
// }
// }
// elfin_object.icon.active = true
// elfin_object.mask.active = false
// elfin_object.cd_lab.node.active = true
// elfin_object.cd_lab.string = ""
// }
// } else { // 未解鎖
// elfin_object.icon.active = (false)
// elfin_object.mask.active = false
// elfin_object.cd_lab.node.active = false
// }
// }
// if (skills) {
// this.updateElfinSkillState(skills)
// }
// this.spine_renderer.active = bool;
// } else { // 全都未解鎖
// this.spine_renderer.active = false
// }
// },
// addSpriteRole(sp_skill_bid,is_left){
// if(!this.role)return;
// let cmp = nx.gui.getComponent(this.spine_renderer,"elfin_real_role","battle_elfin");
// if(cmp){
// cmp.setRoleSp(sp_skill_bid);
// cmp.setNameString(this.skill_data.name || "");
// }
// },
// spriteAction(){
// if(!this.role)return;
// let spCmp = nx.gui.getComponent(this.spine_renderer,"elfin_real_role/mask/ef","nx.fx.spine");
// if(spCmp){
// spCmp.node.active = true;
// spCmp.action("action", false, ( _key, _name ) => {
// if( _key == "complete" ){
// spCmp.node.active = false;
// return;
// }
// } );
// }
// },
// // 更新精靈技能CD時間
// updateElfinSkillState (data) {
// if (!this.elfin_list) { return }
// data = data || {}
// for (const _ in data) {
// const v = data[_];
// let skill_bid = v.skill_bid
// let end_round = v.end_round
// for (const k in this.elfin_list) {
// const elfin_object = this.elfin_list[k];
// if (elfin_object.skill_bid == skill_bid) {
// let cur_round = this.model.getFightActionCount()
// let cd_round = end_round - cur_round
// if (cd_round <= 0) { // 無CD時間,當前回合播放
// elfin_object.mask.active = false
// } else {
// elfin_object.cd_lab.string = cd_round
// elfin_object.mask.active = true
// }
// break
// }
// }
// }
// },
// //根據位置獲取精靈數據
// getElfinDataByPos (pos) {
// if (!this.all_elfin_data) return
// for (const k in this.all_elfin_data) {
// const v = this.all_elfin_data[k];
// if (v.pos == pos)
// return v
// }
// },
// });
"use strict";
cc._RF.pop();