Files
fc/dev/project/library/imports/e5/e55a2347-17a3-4765-bf4b-26cf620936ad.js
2026-05-24 10:21:26 +08:00

152 lines
4.9 KiB
JavaScript

"use strict";
cc._RF.push(module, 'e55a2NHF6NHZb9LJs9iCTat', 'hallows_vo');
// Scripts/mod/partner/hallows/hallows_vo.js
"use strict";
/*-----------------------------------------------------+
圣器数据
+-----------------------------------------------------*/
var HallowsVo = cc.Class({
"extends": gcore.BaseEvent,
ctor: function ctor() {
this.initData();
},
//初始化数据
initData: function initData() {
this.id = 0; // 圣器id
this.step = 1; // 圣器阶数
this.lucky = 0; // 当前幸运值
this.lucky_endtime = 0; // 幸运值清零时间
this.power = 0; // 圣器战力
this.seal = 0; // 当前圣印数量
this.add_attr = {}; // 总属性加成 attr_id attr_val
this.reward = {}; // 奖励列表
this.skill_bid = 0; // 神器技能id
this.skill_lev = 1; // 神器技能等级
this.refine_lev = 0; // 精炼等级
this.is_update = false;
this.red_status_list = {}; // 红点状态
},
initAttributeData: function initAttributeData(data) {
this.is_update = true;
for (var k in data) {
if (this[k] != null) {
this.updateSingleData(k, data[k]);
}
if (k == "add_attr") {
this.updateAddAttr(data[k]);
} else if (k == "skill") {
this.updateSkill(data[k]);
}
}
},
updateSingleData: function updateSingleData(key, value) {
if (this[key] != value) {
this[key] = value;
}
},
//总属性
updateAddAttr: function updateAddAttr(value) {
this.add_attr = value || {};
},
//计算红点状态
checkRedStatus: function checkRedStatus(force) {
if (this.is_update || force) {
this.is_update = false;
this.red_status_list = {};
return false;
// -- 旧的红点逻辑,可能加回来,暂时保留。
// --[[local is_can_upgrade = self:checkCanUpgrade()
// local is_can_trace = self:checkCanUseTrace()
// local is_can_skill = self:checkCanUpgradeSkill()
// self.red_status_list[HallowsConst.red_type.advance] = is_can_upgrade
// self.red_status_list[HallowsConst.red_type.rewards] = is_can_rewards
// self.red_status_list[HallowsConst.red_type.trace] = is_can_trace
// self.red_status_list[HallowsConst.red_type.skill] = is_can_skill
// return is_can_upgrade or is_can_rewards or is_can_trace or is_can_skill--]]
} else {
for (var i in this.red_status_list) {
if (this.red_status_list[i]) {
return true;
}
}
}
return false;
},
getRedStatus: function getRedStatus(type) {
return this.red_status_list[type];
},
// 是否可以进阶(暂时屏蔽)
checkCanUpgrade: function checkCanUpgrade() {
return false;
},
// 判断是否可以使用圣印(暂时屏蔽)
checkCanUseTrace: function checkCanUseTrace() {
return false;
// --[[if self.step < 3 then return false end --小于三阶不可以吃圣印
// local trace_config = game.configs.hallows_data.data_trace_cost(getNorKey(self.id, self.step))
// if trace_config == null then return false end
// if self.seal >= trace_config.num then return false end
// local bid = 72003
// local backpack_model = BackpackController:getInstance():getModel()
// local sum = backpack_model:getBackPackItemNumByBid(bid)
// return sum > 0--]]
},
//判断是否可以升技能(暂时屏蔽)
checkCanUpgradeSkill: function checkCanUpgradeSkill() {
return false;
// --[[
// local bid = 72002
// local backpack_model = BackpackController:getInstance():getModel()
// local red_status = false
// return red_status--]]
},
//更新圣技属性
updateSkill: function updateSkill(data) {
if (data[0]) {
//圣技只有一个技能,写死读取列表第一个
this.skill_bid = data[0].skill_bid;
this.skill_lev = data[0].lev;
}
},
//判断一个阶数奖励是否已经领取过了
checkRewardsIsOver: function checkRewardsIsOver(step) {
return this.reward[step];
},
//获取神器技能伤害值、精炼伤害值
getHallowsSkillAndRefineAtkVal: function getHallowsSkillAndRefineAtkVal() {
var atkval = {
skill_atk_val: 0,
refine_atk_val: 0
};
var hallows_skill = gdata("hallows_data", "data_skill_up", Utils.getNorKey(this.id, this.skill_lev));
if (hallows_skill) {
var skill_cfg = gskilldata('data_get_skill', hallows_skill.skill_bid);
if (skill_cfg) {
atkval.skill_atk_val = skill_cfg.hallows_atk ? skill_cfg.hallows_atk : 0;
}
}
var refine_cfg = game.configs.hallows_refine_data.data_refine[this.id];
if (refine_cfg) {
var hallows_refine_cfg = refine_cfg[this.refine_lev];
if (hallows_refine_cfg) {
atkval.refine_atk_val = hallows_refine_cfg.add_dps ? hallows_refine_cfg.add_dps : 0;
}
}
return atkval;
},
_delete: function _delete() {}
});
module.exports = HallowsVo;
cc._RF.pop();