// --------------------------------------------------------------------
// @author: shiraho@syg.com(必填, 创建模块的人员)
// @description:
// 物品单列,显示对象
//
Create: new Date().toISOString()
// --------------------------------------------------------------------
var PathTool = require("pathtool");
var GoodsVo = require("goods_vo");
var PathTool = require("pathtool");
var BackPackConst = require("backpack_const");
var BackPackItem = cc.Class({
extends: BasePanel,
ctor: function () { // 可传参数,第一个是否是自己物品,只有背包或者伙伴身上才算 第二个缩放值,第三个是否点击收缩,第四是否显示tips 第五是否显示额外名字
this.prefabPath = PathTool.getPrefabPath("backpack", "goods_item");
this.scale = 1; // 缩放比
this.is_other = false; // 是否是其他人的物品,只要不是背包和自己伙伴身上的都是其他
this.effect = true; // 是否响应按钮过滤
this.is_show_tips = true; // 是否显示tips
this.item_config = null; // 物品的配置数据
this.item_num = 0; // 物品数量
this.load_item_icon = {}; // 加载过的物品图标
this.before_over_set = false; // 创建完成之后是否要设置
this.star_list = [] // 星星的列表
this.show_check_box = false // 是否需要根据数据现在复选框
if (arguments && arguments.length > 0) {
this.is_other = arguments[0] || false;
this.scale = arguments[1] || 1;
this.effect = arguments[2] || false;
this.is_show_tips = arguments[3] || false;
this.is_show_name = arguments[4] || false;
this.before_over_set = true;
}
this.isUnEnabled = false;
this.isShowBiaoQian = false; //是否显示标签
this.biaoQianStr = "";
this.name_color = null;
this.name_size = 18;
this.isSetEffect = false; //是否手动设置特效
this.isCache = true;//缓存
this.isShowOrderWarLock = false; //是否显示战令锁
this.is_show_get_select = false; //是否显示领取状态
},
initPanel: function () {
this.main_container = this.root_wnd.getChildByName("main_container") // 点击区域
this.block_event = this.root_wnd.getComponent(cc.BlockInputEvents)
this.item = this.main_container.getChildByName("icon")
this.item_icon = this.main_container.getChildByName("icon").getComponent(cc.Sprite) // 物品图标
// this.background = this.main_container.getChildByName("background");
this.quality_bg = this.main_container.getChildByName("background").getComponent(cc.Sprite) // 背景品质框
this.num_bg = this.main_container.getChildByName("num_bg") // 数量容器
this.num_background = this.num_bg.getChildByName("background") // 数量背景,需要根据数量做长度变换
this.num_bg_size = this.num_background.getContentSize()
this.num = this.num_bg.getChildByName("num") // 数量节点
this.num_label = this.num.getComponent(cc.Label) // 数量文本
this.select = this.main_container.getChildByName("select") // 选中框
this.star_node = this.main_container.getChildByName("star_node");
this.star = this.star_node.getChildByName("star") // 星数icon
this.chip = this.main_container.getChildByName("chip") // 碎片标志
this.red_tips = this.main_container.getChildByName("red_tips") // 红点标志
this.progress_node = this.main_container.getChildByName("progress") // 扩展进度条
this.progress = this.progress_node.getComponent(cc.ProgressBar) // 真是进度条
this.progress_label = this.progress_node.getChildByName("label").getComponent(cc.Label) // 进度条上面的值
this.camp = this.main_container.getChildByName("camp") // 阵营
this.camp_sprite = this.camp.getComponent(cc.Sprite)
this.extend_tag = this.main_container.getChildByName("extend_tag");
this.extend_desc = this.main_container.getChildByName("extend_desc").getComponent(cc.Label);
this.play_effect = this.main_container.getChildByName("play_effect").getComponent(sp.Skeleton);
this.mark = this.main_container.getChildByName("mark") // 获取选中
this.extend_label = this.seekChild(this.main_container, "extend_label", cc.Label); // 下部的额外文字描述
if (this.before_over_set) {
this.initSomeSet()
this.before_over_set = false
}
if (this.showItemEffect_cache) {
this.showItemEffect.apply(this, this.showItemEffect_cache);
this.showItemEffect_cache = null;
}
if (this.extend_cache) {
this.setExtendTag.apply(this, this.extend_cache);
this.extend_cache = null;
}
if (this.set_num_bg_cache) {
var arr = this.set_num_bg_cache;
this.setNumBgPos(arr.pos, arr.ar, arr.pos1, arr.ar1);
}
if (this.bg_status != null) {
this.setIsShowBackground(this.bg_status);
}
if (this.add_btn_bool != null) {
this.showAddIcon(this.add_btn_bool);
}
if(this.head_icon != null){
this.setItemIcon(this.head_icon);
}
this.setItemIconUnEnabled(this.isUnEnabled);
},
registerEvent: function () {
},
init(){
//因为会复用需要初始化
this.setPosition(0,0)
this.setAnchorPoint(0.5,0.5)
this.scale = 1
this.item_res_path = null;
this.callback = null;
this.actionCallback = null;
this.data = null;
this.name_color = null;
this.name_size = 18;
if(this.extend_label){
this.extend_label.node.y = -71
this.extend_label.string = "";
}
this.empty_icon_path = null;
this.initConfig(false,false,null,false,false);
if(this.progress_node){
this.progress_node.active = false;
}
this.setRedStatus(false);
this.setExtendTag(false);
this.showItemEffect(false);
this.setDefaultTip(false,false,false,false);
this.setMaskVisible(false);
this.setItemIconUnEnabled(false);
this.showBiaoQian(false);
this.is_comp_num = null;
this.holidHeroExpeditTag(false);
this.showAddIcon(false);
this.setIsShowBackground(true);
this.setReceivedIcon(false);
this.cur_visible = false;
if(this.set_need_num_cache){
this.setNeedNum(0,0,null,false)
this.set_need_num_cache = null;
}
this.setDoubleIcon(false)
this.isSummonNumber = null;
this.showOrderWarLock(false);
this.IsGetStatus(false);
this.showWeekCardTag(false)
if(this.num_label){
this.num_label.string = "";
this.num_label.node.active = true;
}
if(this.num_bg){
this.num_bg.active = false;
this.num_bg.setPosition(51.8,-41)
this.num_bg.setAnchorPoint(1,0.5)
}
if(this.num_background){
this.num_background.setPosition(0,0);
this.num_background.setAnchorPoint(1,0.5)
this.num_background.setContentSize(cc.size(30,22))
}
if (this.num) {
this.num.setPosition(-2.5, -0.1);
this.num.setAnchorPoint(1,0.5);
}
this.setSelected(false);
},
/**
* 初始化一些参数设置
* @param {*} is_other 自己背包或者其他部分,包含了自己伙伴身上背包
* @param {*} scale 缩放值
* @param {*} effect 是否响应按钮过滤 this.click.transition = cc.Button.Transition.NONE //SCALE
* @param {*} is_show_tips 是否显示tips
* @param {*} is_show_name 是否在下方显示物品名字
*/
initConfig: function (is_other, scale, effect, is_show_tips, is_show_name) {
this.is_other = is_other || false;
this.scale = scale || 1;
this.effect = effect == null ? true : effect;
this.is_show_tips = is_show_tips || false;
this.is_show_name = is_show_name || false;
if (this.root_wnd) {
this.initSomeSet()
} else {
this.before_over_set = true
}
},
// 初始化一些设定
initSomeSet: function () {
if (this.root_wnd == null) return
// if (this.scale != 1) {
// this.main_container.scale = this.scale
this.root_wnd.scale = this.scale;
// }
if (this.cache_markselect_status != null) {
this.setMaskVisible(this.cache_markselect_status)
this.cache_markselect_status = null
}
},
onShow: function () {
if (this.root_wnd && !this.click_event) {
this.root_wnd.on(cc.Node.EventType.TOUCH_END,this.onClickRootWnd,this)
this.root_wnd.on(cc.Node.EventType.TOUCH_START, this.onClickRootWnd, this);
this.root_wnd.on(cc.Node.EventType.TOUCH_CANCEL, this.onClickRootWnd, this);
this.click_event = true
if(this.block_event){
this.block_event.enabled = true;
}
}
this.updateData();
},
onClickRootWnd(event){
if (event.type === cc.Node.EventType.TOUCH_START) {
if(this.effect){
this.root_wnd.scale = (this.scale || 1) * 0.9;
}
}
if (event.type === cc.Node.EventType.TOUCH_CANCEL) {
if(this.effect){
this.root_wnd.scale = this.scale || 1;
}
}
if (event.type === cc.Node.EventType.TOUCH_END) {
if(this.effect){
this.root_wnd.scale = this.scale || 1;
}
if (this.callback) {
this.callback.apply(null, [this])
} else {
if (this.is_show_tips && this.item_config) {
var TipsController = require("tips_controller")
if (BackPackConst.checkIsEquip(this.item_config.type)) { // 装备
TipsController.getInstance().showEquipTips(this.item_config)
}else{
var config;
if(this.data.config){
config = this.data.config;
}else if(this.data.bid){
config = Utils.getItemConfig(this.data.bid);
}else if(this.data){
config = this.data
}
if(config){
if(BackPackConst.checkoutIsWeekCard(config.type)){
TipsController.getInstance().showWeekCardTips(true,this.item_config)
}else if(BackPackConst.checkIsHeroSkin(config.type)){
var HeroController = require("hero_controller")
HeroController.getInstance().openHeroSkinTipsPanel(true, this.item_config)
}else{
// 虽然显示物品来源,但是如果没有配置也不需要显示
if(this.is_show_source == true && config.source && Utils.next(config.source)){
var BackpackController = require("backpack_controller");
BackpackController.getInstance().openTipsSource(true, config);
}else if(this.is_tips_source){
TipsController.getInstance().showGoodsTips(config, true, this.is_tips_source)
}else{
TipsController.getInstance().showGoodsTips(config);
}
if(this.source_callback ){
this.source_callback();
}
}
}
}
return;
}
if(this.actionCallback){
this.actionCallback.apply(null, [this]);
}
}
}
},
onHide: function () {
},
/**
* 扩展参数,只有这个对象用在 CommonScrolleView的时候用到
* @param {*} data
*/
setExtendData: function (data) {
this.initConfig(data.is_other, data.scale, data.effect, data.is_show_tips)
// 是否显示碎片进度条
this.is_show_chip_loading = data.is_show_chip_loading || false
if(data.showCheckBox!= null){
this.show_check_box = data.showCheckBox
}
if(data.checkBoxClickCallBack!= null){
this.click_check_callback = data.checkBoxClickCallBack;
}
if(data.adjustCheckBoxPos){
this.check_box_pos = data.adjustCheckBoxPos;
}
if(data.is_comp_num != null){
this.is_comp_num = data.is_comp_num;
}
if(data.is_hide_effect){
this.is_hide_effect = data.is_hide_effect;
}
// --背包是否显示阵营
if(data.is_camptype != null){
this.is_camptype = data.is_camptype
}
if(data.isSummonNumber != null){
this.isSummonNumber = data.isSummonNumber
}
},
/**
* 设置左边斜角的一些戳
* @param {*} status
* @param {*} desc
* @param {*} extend
*/
setExtendTag: function (status, desc, extend) {
if (!this.extend_tag) {
this.extend_cache = [status, desc, extend];
} else if (status) {
this.extend_tag.active = true;
this.extend_desc.node.active = true;
this.extend_desc.string = desc;
} else {
this.extend_tag.active = false;
this.extend_desc.node.active = false;
}
},
setSelfEffect:function(config){
if(this.isSetEffect)return;
if(!this.is_hide_effect == true){
if(config && config.is_effect && config.is_effect == 1){
var effect_id = 156;
var action = PlayerAction.action_2;
if(config.quality >= 4){
action = PlayerAction.action_1;
}
this.showItemEffect(true, effect_id, action, true)
}else{
this.showItemEffect(false);
}
}else{
this.showItemEffect(false);
}
},
/**
* 效果显示
* @param {*} bool
* @param {*} effect_id
* @param {*} action
* @param {*} is_loop
* @param {*} scale
*/
showItemEffect: function (bool, effect_id, action, is_loop, scale) {
if (!this.play_effect) {
this.isSetEffect = true;
this.showItemEffect_cache = arguments;
return;
}
var res_id = Config.effect_data.data_effect_info[effect_id];
if (bool && res_id) {
this.play_effect.node.active = true;
action = action || PlayerAction.action_1;
var path = cc.js.formatStr("spine/%s/action.atlas", res_id);
this.loadRes(path, (function (res) {
this.play_effect.skeletonData = res;
this.play_effect.setAnimation(0, action, is_loop);
}).bind(this));
} else {
this.play_effect.node.active = false;
}
if(scale != null){
this.play_effect.node.scale = scale;
}
},
addCallBack: function (callback) {
this.callback = callback
},
//用于需要根据is_show_tips状态调用callback使用
addActionCallBack: function (callback) {
this.actionCallback = callback
},
/**
* 设置显示数据
* @param {*} data ,当前可以支持 goodsvo ,item_config ,{bid, num}, bid 以及包含 undata的object
*/
setData: function (data,is_hide_effect) {
// if(!data)return;
this.data = data;
this.is_hide_effect = is_hide_effect || false;
if (this.root_wnd) {
this.root_wnd.scale = this.scale;
this.updateData()
}
},
// x下部的额外文字描述
setExtendLabel: function (str, color,font_size) {
if(color){
this.name_color = color;
}
if(font_size && font_size>0){
this.name_size = font_size;
}
if(!this.root_wnd){
return;
}
str = str || "";
if (str == "") {
// this.extend_label.active = false;
this.extend_label.string = str;
} else {
// this.extend_label.active = true;
this.extend_label.string = str;
}
if(color){
var cur_select = this.extend_label.node.color;
if(typeof(color) == "number"){
cur_select.fromHEX(Config.color_data.data_color16[color]);
}else{
cur_select.fromHEX(color);
}
this.extend_label.node.color = cur_select;
}
if(font_size && font_size>0){
this.extend_label.fontSize = this.name_size;
this.extend_label.lineHeight = this.name_size+2;
}
},
// 区分设置进来到具体是什么数据
updateData: function () {
// 设置物品图标
// this.setRedStatus(false)
if(this.tmp_index!= null){
if(this.root_wnd)
this.root_wnd.name = "backpack_item_" + (this.tmp_index + 1);
}
if (this.data == null) {
if (this.empty_icon_path){
this.setItemIcon();
}
this.suspendAllActions();
return;
} else {
}
this.item_config = null // 清空配置数据
var item_num = 0
if (this.data instanceof GoodsVo || this.data.type_vo == "GoodsVo") { // 直接是物品实例对象
this.item_config = this.data.config;
item_num = this.data.quantity;
if (this.item_config.id == "24802")
this.main_container.name = "item_" + this.item_config.id;
} else if (typeof (this.data) == "number") { // 物品bid
this.item_config = Utils.getItemConfig(this.data)
} else if (this.data instanceof Object) {
if (this.data.bid != null && this.data.num != null) { // 基础设置
this.item_config = Utils.getItemConfig(this.data.bid)
item_num = this.data.num;
} else if (this.data.undata == true) { // {sort:-1, quality:-1, undata:true} 这个是需要数据,需要清掉
} else {
if (this.data.id) {
this.item_config = Utils.getItemConfig(this.data.id);
} else {
this.item_config = this.data
}
}
}
this.setQualityBG() // 设置背景色
this.setItemNum(item_num) // 设置当前拥有数量
this.setItemIcon() // 设置物品图标
this.setItemChip() // 设置碎片
this.setItemStar() // 设置物品星数,只针对碎片,装备和符文
this.setCompNumber() // 设置合成进度条,只在背包状态下的物品可见
this.setItemCamp() // 设置物品阵营
this.setSelfEffect(this.item_config) //设置显示特效
//远征右上角显示
if(this.expedit_cahe){
this.holidHeroExpeditTag(this.expedit_cahe.status,this.expedit_cahe.desc)
}
// 是否显示下方的物品名字
if (this.is_show_name) {
this.setExtendLabel(this.item_config.name,this.name_color,this.name_size);
} else {
this.setExtendLabel();
}
if(this.data.showSellStatus!= null){
this.setCheckBoxStatus(this.data.showSellStatus.status, this.data.showSellStatus.select)
}
//设置标签
if(this.isShowBiaoQian && this.biaoQianStr){
this.showBiaoQian(this.isShowBiaoQian,this.biaoQianStr);
}
if (this.cache_red_status) {
this.setRedStatus(this.cache_red_status)
this.cache_red_status = null
} else {
this.setRedStatus(false);
}
if(this.receivedStatus != null){
this.setReceivedIcon(this.receivedStatus)
}
if(this.isSummonNumber != null){
this.setSummonNumber()
}
if(this.isShowOrderWarLock == true){
this.showOrderWarLock(true);
}
this.IsGetStatus(this.is_show_get_select);
if(this.data && this.data.bid){
this.setWeekCardData(this.data.bid)
}
},
setWeekCardData(bid){
let item_config = Utils.getItemConfig(bid)
if(item_config && item_config.tips_btn){
let show_type = this.checkIsWeekCard(item_config.tips_btn)
if(show_type == 50){
this.showWeekCardTag(true)
}
}else{
this.showWeekCardTag(false)
}
},
// 设置基础信息显示
setQualityBG: function (temp_quality) {
var quality = 0;
if(temp_quality!=null){
quality = temp_quality;
}else{
if (this.item_config) {
quality = this.item_config.quality;
}
}
var bg_path = PathTool.getItemQualityBG(quality)
if (this.bg_quality == bg_path) return
this.bg_quality = bg_path
var common_res_path = PathTool.getCommonIcomPath(this.bg_quality);
LoaderManager.getInstance().loadRes(common_res_path, function (sf_obj) {
if(this.root_wnd && this.root_wnd.isValid){
this.quality_bg.spriteFrame = sf_obj;
}
}.bind(this))
},
// 设置数量
setItemNum: function (item_num) {
if(this.is_comp_num){
this.num_bg.active = false
}else{
this.num_bg.active = false;
this.item_num = Utils.getMoneyString(item_num);
if (item_num == null || item_num <= 1) {
this.num_bg.active = false;
} else {
this.num_bg.active = true
this.num_label.string = this.item_num;
var width = this.num.width
this.num_background.width = width + 10
}
if (this.set_need_num_cache) {
var arr = this.set_need_num_cache;
this.setNeedNum(arr.need_num, arr.num, arr.color, arr.force);
}else{
this.num_label._updateRenderData(true);
// Utils.delayRun(this.num_background,1/60,function(){
this.updateNumBGSize();
// }.bind(this))
}
}
},
// 设置物品图标
setItemIcon: function (head_icon) {
if(this.item==null) {
this.head_icon = head_icon;
return
}
if(head_icon){
this.empty_icon_path = head_icon;
}
if (this.item_config == null && !this.empty_icon_path) {
this.item.active = false
return
}
this.item.active = true
var item_res_path = null;
if (!this.item_config) {
item_res_path = this.empty_icon_path;
} else {
item_res_path = PathTool.getItemRes(this.item_config.icon)
}
if(head_icon){
item_res_path = head_icon;
}
if (this.item_res_path == item_res_path) return
this.item_res_path = item_res_path
this.loadRes(item_res_path, function (item_res_path,res_object) {
// this.load_item_icon[item_res_path] = res_object
if(this.item_res_path == item_res_path){
this.item_icon.spriteFrame = res_object;
}
}.bind(this,item_res_path))
},
// 设置英雄碎片
setItemChip: function () {
if (this.item_config == null || this.item_config.type != BackPackConst.item_type.PARTNER_DEBRIS) {
this.chip.active = false
} else {
this.chip.active = true
}
},
// 设置物品的星级
setItemStar: function (bool = true) {
for (let index = 0; index < this.star_list.length; index++) {
const star = this.star_list[index];
star.active = false
}
if (this.item_config == null) return;
var eqm_star = 0
if(bool == true){
if (this.checkIsEquip(this.item_config.type)) {
eqm_star = this.item_config.eqm_star
} else if (this.item_config.type == BackPackConst.item_type.PARTNER_DEBRIS) { // 英雄碎片的时候额外用这个装备阶数标识星级
eqm_star = this.item_config.eqm_jie
} else if (this.item_config.type == BackPackConst.item_type.ARTIFACTCHIPS) { // 符文比较特殊,必须是物品
if (this.data instanceof GoodsVo) {
eqm_star = this.data.enchant
}
}
}
if (eqm_star > 0) {
var width = 12
var x = (1 - eqm_star) * width * 0.5
for (let index = 0; index < eqm_star; index++) {
if (this.star_list[index] == null) {
this.star_list[index] = cc.instantiate(this.star);
this.star_list[index].y = this.star.y
this.star_node.addChild(this.star_list[index])
}
var star = this.star_list[index]
star.active = true
star.x = x + index * width
}
}
},
// 设置碎片合成进度条
setCompNumber: function () {
if (!this.is_show_chip_loading || this.item_config == null || this.data == null || !(this.data instanceof GoodsVo) || this.item_config.type != BackPackConst.item_type.PARTNER_DEBRIS) {
this.progress_node.active = false
} else {
var config = gdata("partner_data", "data_get_compound_info", this.item_config.id);
if (config == null) {
this.progress_node.active = false
} else {
var cur_num = this.data.quantity; // 当前数量
var max_num = config.num; // 需要数量
var per = Math.min(1, Math.max(cur_num / max_num))
this.progress.progress = per
this.progress_label.string = cur_num + "/" + max_num
this.progress_node.active = true
if(per < 1) {
this.setRedStatus(false)
}else{
this.setRedStatus(true)
}
}
}
},
// 阵营图标显示
setItemCamp: function () {
if(this.item_config && this.item_config.sub_type == 3 && !this.is_camptype && this.item_config.lev != 0){
this.camp.active = true
var camp = this.item_config.lev // 取等级标识阵营
var camp_path = PathTool.getHeroCampRes(camp)
if (this.camp_path == camp_path) return
this.camp_path = camp_path
var common_res_path = PathTool.getCommonIcomPath(camp_path);
LoaderManager.getInstance().loadRes(common_res_path, function (sf_obj) {
this.camp_sprite.spriteFrame = sf_obj;
}.bind(this))
}else{
this.camp.active = false;
}
// if (this.item_config == null || this.item_config.sub_type != BackPackConst.item_tab_type.HERO) {
// this.camp.active = false
// } else {
// this.camp.active = true
// var camp = this.item_config.lev // 取等级标识阵营
// var camp_path = PathTool.getHeroCampRes(camp)
// if (this.camp_path == camp_path) return
// this.camp_path = camp_path
// var common_res_path = PathTool.getCommonIcomPath(camp_path);
// LoaderManager.getInstance().loadRes(common_res_path, function (sf_obj) {
// this.camp_sprite.spriteFrame = sf_obj;
// }.bind(this))
// }
},
// 监测是不是装备
checkIsEquip: function (type) {
return type == BackPackConst.item_type.WEAPON || type == BackPackConst.item_type.SHOE || type == BackPackConst.item_type.CLOTHES || type == BackPackConst.item_type.HAT
},
// 选中与否,有一个√的
setMaskVisible: function (status) {
if (this.root_wnd) {
this.mark.active = status
} else {
this.cache_markselect_status = status
}
},
// 设置红点状态
setRedStatus: function (status) {
if (this.red_tips) {
this.red_tips.active = !!status;
} else {
this.cache_red_status = !!status;
}
},
// 返回配置数据
getItemConfig: function () {
return this.item_config
},
// 返回物品对象
getItemData: function () {
return this.data
},
// 除+号和数量以外都置灰
setItemIconUnEnabled: function (bool) {
this.isUnEnabled = bool;
if (this.item_icon) {
this.item_icon.setState(!bool ? cc.Sprite.State.NORMAL : cc.Sprite.State.GRAY);
}
if (this.quality_bg) {
this.quality_bg.setState(!bool ? cc.Sprite.State.NORMAL : cc.Sprite.State.GRAY);
}
if(this.extend_tag && this.extend_tag.active){
this.extend_tag.getComponent(cc.Sprite).setState(!bool ? cc.Sprite.State.NORMAL : cc.Sprite.State.GRAY);
}
if (this.star_list) {
for (var i in this.star_list) {
this.star_list[i].getComponent(cc.Sprite).setState(!bool ? cc.Sprite.State.NORMAL : cc.Sprite.State.GRAY);
}
}
if(this.play_effect && this.play_effect.node){
this.play_effect.node.color = !bool ? new cc.Color(255, 255, 255, 255) : new cc.Color(115, 115, 115, 255);
}
},
// 增加一个标签头
showBiaoQian:function(bool,str){
this.isShowBiaoQian = bool;
this.biaoQianStr = str;
if (this.root_wnd == null) return
if(!this.qian_icon && bool){
var res = PathTool.getCommonIcomPath("common_90015");
this.qian_icon = Utils.createImage(this.main_container,null,-23,27,cc.v2(0.5,0.5),null,10);
this.loadRes(res, function (sf_obj) {
this.qian_icon.spriteFrame = sf_obj;
}.bind(this))
this.qian_label = Utils.createLabel(20,new cc.Color(0xff, 0xff, 0xff, 0xff),new cc.Color(0x0a, 0x0f, 0x0f, 0xff),5,-5,"",this.qian_icon.node,2, cc.v2(0.5,0))
this.qian_label.node.rotation = -45;
}
if(this.qian_icon){
this.qian_icon.node.active = bool;
}
if(this.qian_label){
str = str || "";
this.qian_label.string = str;
}
},
//理论上只用于 00/11 的格式,希望不要乱用
setNeedNum: function (need_num, num, color, force) {
if (this.set_need_num_cache == null) {
this.set_need_num_cache = {};
this.set_need_num_cache.need_num = need_num;
this.set_need_num_cache.num = num;
this.set_need_num_cache.color = color;
this.set_need_num_cache.force = force;
}
if (this.root_wnd == null) return
need_num = need_num || 0;
var status = false;
if (need_num > 0 || force == true) {
status = true
}
var str = need_num;
if (num != null) {
if (need_num > num)
color = new cc.Color(0xff, 0x47, 0x47, 0xff)
else
color = new cc.Color(0xff, 0xff, 0xff, 0xff)
// num = num;
num = Utils.getMoneyString(num);
need_num = Utils.getMoneyString(need_num);
str = num + "/" + need_num;
}
this.num_label.string = str;
this.num_label.node.color = color;
this.num_label.node.active = status;
this.num_bg.active = status;
this.num_label._updateRenderData(true);
// Utils.delayRun(this.num_background,1/60,function(){
this.updateNumBGSize();
// }.bind(this))
},
updateNumBGSize: function () {
var size = this.num.getContentSize();
var width = size.width;
if (width < 30)
width = 21;
this.num_background.setContentSize(cc.size(width + 12, this.num_bg_size.height + 2))
},
// 活动时候远征的物品
holidHeroExpeditTag: function (status, desc) {
if(status){
this.expedit_cahe = {}
this.expedit_cahe.status = status
this.expedit_cahe.desc = desc
}
if (!this.root_wnd) return;
if (status == false) {
this.expedit_cahe = null;
if (this.heroExpeditTag) {
this.heroExpeditTag.node.active = status;
}
} else {
if (this.heroExpeditTag == null) {
this.heroExpeditTag = Utils.createImage(this.main_container, null, 30, 29, cc.v2(0.5, 0.5));
var res = PathTool.getCommonIcomPath("common_90081");
this.loadRes(res, function (sf_obj) {
this.heroExpeditTag.spriteFrame = sf_obj;
}.bind(this))
this.heroExpeditTag_desc = Utils.createLabel(16, new cc.Color(0xff, 0xff, 0xff, 0xff), new cc.Color(0xaf, 0x23, 0x3a, 0xff), 10, 12.5, "", this.heroExpeditTag.node, 2, cc.v2(0.5, 0.5));
this.heroExpeditTag_desc.node.setRotation(45)
}
this.heroExpeditTag.node.action = status;
this.heroExpeditTag_desc.string = desc;
}
},
setNumBgPos: function (pos, ar, pos1, ar1) {
if (this.set_num_bg_cache == null) {
this.set_num_bg_cache = {};
this.set_num_bg_cache.pos = pos;
this.set_num_bg_cache.ar = ar;
this.set_num_bg_cache.pos1 = pos1;
this.set_num_bg_cache.ar1 = ar1;
// return
}
if (this.root_wnd == null) return
if (pos) {
this.num_bg.setPosition(pos.x, pos.y);
}
if (ar) {
this.num_bg.setAnchorPoint(ar);
}
if (ar1) {
this.num.setAnchorPoint(ar1);
this.num_background.setAnchorPoint(ar1);
}
if (pos1) {
this.num_background.setPosition(pos1.x, pos1.y);
this.num.setPosition(pos1.x, pos1.y);
}
},
suspendAllActions: function () {
this.setCheckBoxStatus(false,false);
// this.showAddIcon(false);
this.setRedStatus(false);
this.setItemStar(false);
this.setQualityBG(0);
this.showWeekCardTag(false)
if(this.num_bg){
this.num_bg.active = false;
}
if(this.item){
this.item.active = false;
}
if(this.chip){
this.chip.active = false;
}
if(this.camp){
this.camp.active = false;
}
if(this.progress_node){
this.progress_node.active = false;
}
this.showItemEffect(false);
this.data = null;
},
/**
* 显示tips的开关
* @param {*} is_show_tips
* @param {*} is_show_source
* @param {*} source_callback
* @param {*} is_tips_source 物品信息界面,显示来源按钮(主要针对未获得的物品,却要显示来源的)
*/
setDefaultTip: function (is_show_tips, is_show_source, source_callback,is_tips_source) {
if(is_show_tips!=null){
this.is_show_tips = is_show_tips;
}else{
this.is_show_tips = true;;
}
this.is_show_source = is_show_source || false;
this.source_callback = source_callback;
this.is_tips_source = is_tips_source || false;
},
//加号
//锁
showAddIcon: function (bool) {
if (bool == false && !this.add_btn_sp) return
if (this.main_container == null) {
this.add_btn_bool = bool;
return
}
if (!this.add_btn_sp) {
this.add_btn_sp = Utils.createImage(this.main_container, null, 0, 0, cc.v2(0.5, 0.5));
this.loadRes(PathTool.getCommonIcomPath("common_90026"), function (sp) {
if(this.add_btn_sp){
this.add_btn_sp.spriteFrame = sp;
}
}.bind(this))
var btn = this.add_btn_sp.node.addComponent(cc.Button);
btn.transition = cc.Button.Transition.SCALE;
if (this.callback) {
btn.node.on(cc.Node.EventType.TOUCH_END, function () {
this.callback();
}, this)
}
}
this.add_btn_sp.node.active = bool;
},
//隐藏背景框
setIsShowBackground: function (status) {
this.bg_status = status;
if (this.quality_bg)
this.quality_bg.node.active = status;
},
setEmptyIconPath: function (icon_path) {
this.empty_icon_path = icon_path;
},
getData:function(){
return this.data;
},
setCheckBoxStatus: function (status, is_select) {
if (this.show_check_box == false) return
if (status == false) {
if (this.check_box != null) {
this.check_box.setVisible(false);
}
} else {
if (this.check_box == null) {
var ToggleItem = require("toggle_item");
this.check_box = new ToggleItem();
if (this.check_box_pos) {
this.check_box.setPosition(this.check_box_pos)
} else {
this.check_box.setPosition(cc.v2(25,25));
}
this.check_box.setParent(this.main_container);
this.check_box.setVisible(true);
this.check_box.setData(this.data.showSellStatus)
this.check_box.addClickCallBack(function (isSelected) {
if (this.data != null && this.data.id != null && this.data.showSellStatus) {
this.data.setGoodsAttr("showSellStatus", { status: true, select: isSelected });
if (this.click_check_callback) {
this.click_check_callback(isSelected, this)
}
}
}.bind(this))
} else {
this.check_box.setVisible(true);
this.check_box.setData(this.data.showSellStatus)
}
}
if (is_select == null) {
is_select = false;
}
if (this.check_box) {
this.check_box.setSelected(is_select);
}
},
setReceivedIcon(status){
this.receivedStatus = status;
if(this.root_wnd){
if(status){
if(this.received_icon == null){
this.received_icon = Utils.createImage(this.root_wnd,null,0,0,cc.v2(0.5, 0.5))
let path = PathTool.getCommonIcomPath("common_1000")
this.loadRes(path,function(res){
this.received_icon.spriteFrame = res;
}.bind(this))
}
this.setItemIconUnEnabled(true)
this.received_icon.node.active = true;
}else{
if(this.received_icon){
this.received_icon.node.active = false;
}
this.setItemIconUnEnabled(false)
}
}
},
//显示双倍
setDoubleIcon(status){
if(status){
if(this.double_icon == null){
this.double_icon = Utils.createImage(this.main_container,null,-28,27.5)
this.loadRes(PathTool.getUIIconPath("common","txt_cn_common_90008"),function(res){
this.double_icon.spriteFrame = res
}.bind(this))
}
this.double_icon.node.active = true
}else{
if(this.double_icon){
this.double_icon.node.active = false;
}
}
},
setSummonNumber(){
if(this.root_wnd){
this.extend_label.string = Number(this.data.probability).toFixed(3) + "%";
this.extend_label.fontSize = 22;
this.extend_label.lineHeight = 30;
this.extend_label.node.y = -65
}
},
// 战令活动的个锁
showOrderWarLock:function(bool){
this.isShowOrderWarLock = bool;
if(bool == false && !this.order_war_lock)return;
if(!this.root_wnd){
return;
}
if(!this.order_war_lock){
this.order_war_lock = Utils.createImage(this.root_wnd, PathTool.getUIIconPath("common", "common_90009"), -53,38, cc.v2(0.5, 0.5), false);
}
this.order_war_lock.node.active = bool;
},
// 战令活动 物品是否领取状态
IsGetStatus:function(bool){
this.is_show_get_select = bool;
if(bool == false && !this.is_get_select)return;
if(!this.root_wnd)return;
if(!this.is_get_select){
this.is_get_select = new cc.Node();
this.is_get_select.setContentSize(cc.size(120, 120))
this.is_get_select.setAnchorPoint(0.5,0.5);
this.is_get_select.setPosition(0,0);
this.root_wnd.addChild(this.is_get_select);
var bg = Utils.createImage(this.is_get_select, PathTool.getUIIconPath("common", "common_1074"), 0,0, cc.v2(0.5, 0.5), false,null,true);
bg.node.setContentSize(cc.size(120, 120));
Utils.createImage(this.is_get_select, PathTool.getUIIconPath("common", "common_1043"), 0,0, cc.v2(0.5, 0.5), false);
}
this.is_get_select.active = bool;
},
checkIsWeekCard(data){
let card_type = 0
if(data){
for(let i=0;i