Files
fc/dev/project/library/imports/22/22ab2669-9470-4c0d-8013-d08642b7d37e.js
2026-05-24 10:21:26 +08:00

244 lines
8.4 KiB
JavaScript

"use strict";
cc._RF.push(module, '22ab2ZplHBMDYAT0IZCt9N+', 'cmp.daily.rewards');
// Scripts/mod/task/cmp/cmp.daily.rewards.js
"use strict";
var TaskConst = require("task_const");
var TaskEvent = require("task_event");
var TaskController = require("task_controller");
var RoleController = require("role_controller");
var _require = require("define"),
PlayerAction = _require.PlayerAction;
cc.Class({
"extends": cc.Component,
properties: {
awards: {
"default": [],
type: [cc.Node]
},
score: {
"default": null,
type: cc.Label
},
score_bar: {
"default": null,
type: cc.ProgressBar
},
nodClose: {
"default": null,
type: cc.Node
}
},
// LIFE-CYCLE CALLBACKS:
onLoad: function onLoad() {
this.cfg_list = [];
this.role_vo = RoleController.getInstance().getRoleVo();
this.box_list = [109, 108, 108, 110];
//注册事件
if (this.role_vo != null) {
if (this.role_assets_event == null) {
this.role_assets_event = this.role_vo.bind(EventId.UPDATE_ROLE_ATTRIBUTE, function (key, value) {
if (key == "activity") this.updateActivity(true);
}.bind(this));
}
}
//更新活跃度以及激发活跃宝箱
if (this.update_activity_info == null) {
this.update_activity_info = gcore.GlobalEvent.bind(TaskEvent.UpdateActivityInfo, function (_data) {
this.updateActivityData(_data);
}.bind(this));
}
this.initCfg();
},
start: function start() {
this.updateActivity(false);
},
onDestroy: function onDestroy() {
this.tweens.forEach(function (_tween) {
_tween.stop();
});
if (this.role_assets_event != null) {
if (this.role_vo != null) {
this.role_vo.unbind(this.role_assets_event);
}
this.role_assets_event = null;
}
if (this.update_activity_info != null) {
gcore.GlobalEvent.unbind(this.update_activity_info);
this.update_activity_info = null;
}
},
onEnable: function onEnable() {
this.initCfg();
},
initCfg: function initCfg() {
var TM = TaskController.getInstance().getModel();
var rewards = [];
this.tweens = [];
if (TM) {
rewards = TM.getActivityData();
}
this.rewards = rewards;
// console.log( "領取相關" + JSON.stringify( rewards ) );
var dealShow = function dealShow(_nod, _data) {
// for (let j in rewards ) {
// // nx.gui.setActive( _nod, "tip", parseInt( j ) >= _data );
// nx.gui.setActive( _nod, "got", parseInt( j ) >= _data );
// }
};
// nx.gui.setActive( this.awards[i], "got", false );
var len = this.awards.length;
for (var i = 0; i < len; i++) {
var config = null;
if (gdata("activity_data", "data_get", [i + 1]) != null) {
config = gdata("activity_data", "data_get", [i + 1]);
var target_val = nx.gui.getComponent(this.awards[i], "score/txt", cc.Label);
target_val.string = config.activity;
this.awards[i].status = TaskConst.action_status.normal;
dealShow(this.awards[i], config.activity);
var items = nx.gui.getComponent(this.awards[i], "show", "cmp.common.itemlayout");
if (items) {
items.rebuild(config.rewards);
}
nx.gui.setActive(this.awards[i], "show", false);
if (nx.dt.objEmpty(rewards)) {
nx.gui.setActive(this.awards[i], "got", false);
nx.gui.setActive(this.awards[i], "tip", config.activity <= this.role_vo.activity);
} else {
var reward = rewards[config.activity];
if (reward) {
nx.gui.setActive(this.awards[i], "tip", false);
nx.gui.setActive(this.awards[i], "got", true);
} else {
nx.gui.setActive(this.awards[i], "tip", config.activity <= this.role_vo.activity);
nx.gui.setActive(this.awards[i], "got", false);
}
}
nx.gui.setActive(this.awards[i], "icon", !nx.gui.find(this.awards[i], "got").active);
var nod = nx.gui.find(this.awards[i], "tip");
if (nod.active) {
var cnod = nx.gui.find(this.awards[i], "icon");
var tween = cc.tween(cnod).to(0.5, {
scale: 0.95,
angle: 0
}).to(0.5, {
scale: 1,
angle: 0
}).union().repeatForever().start();
this.tweens.push(tween);
}
this.cfg_list.push(config);
}
}
},
touchAwardGet: function touchAwardGet(e) {
var _this = this;
if (!this.cfg_list[e]) return;
var config = this.cfg_list[e];
if (this.role_vo && this.role_vo.activity >= config.activity && !this.rewards[config.activity]) {
TaskController.getInstance().requestGetActivityAwards(config.activity);
return;
}
this.cfg_list.forEach(function (_item) {
if (_item.index != parseInt(e) + 1) {
nx.gui.setActive(_this.awards[_item.index - 1], "show", false);
}
});
var nod = nx.gui.find(this.awards[e], "show");
nx.gui.setActive(this.awards[e], "show", !nod.active);
nx.gui.setActive(this.nodClose, "", nod.active == true);
},
updateActivity: function updateActivity(need_update) {
this.need_update = need_update;
if (this.role_vo != null) {
var activity_config = gdata("activity_data", "data_get", [game.configs.activity_data.data_get_length]);
var max_activity = 100;
if (activity_config != null) max_activity = activity_config.activity;
this.score.string = this.role_vo.activity + "/" + max_activity;
this.score_bar.progress = this.role_vo.activity / max_activity;
if (need_update) this.updateActivityData(TaskController.getInstance().getModel().getActivityData());
}
},
updateActivityData: function updateActivityData(data) {
if (this.role_vo == null) return;
var data_list = data;
//判断这个活跃度的宝箱是否已经领取了
var check_activity = function check_activity(activity) {
if (data_list == null) return false;
return data_list[activity];
};
for (var i in this.awards) {
var item = this.awards[i];
var cfg = this.cfg_list[i];
if (item && cfg) {
if (check_activity(cfg.activity)) {
item.is_show_tips = true;
item.status = TaskConst.action_status.finish;
} else {
if (cfg.activity <= this.role_vo.activity) {
item.is_show_tips = false;
item.status = TaskConst.action_status.activity;
} else {
item.is_show_tips = true;
item.status = TaskConst.action_status.un_activity;
}
}
// var box_action = PlayerAction.action_1;
// if (item.status == TaskConst.action_status.finish){
// box_action = PlayerAction.action_3;
// }else if (item.status == TaskConst.action_status.activity){
// box_action = PlayerAction.action_2;
// }
nx.gui.setActive(item, "tip", !item.is_show_tips);
nx.gui.setActive(item, "icon", item.status != TaskConst.action_status.finish);
var nod = nx.gui.find(item, "tip");
var cnod = nx.gui.find(item, "icon");
if (nod.active) {
var tween = cc.tween(cnod).to(0.5, {
scale: 0.95,
angle: 2
}).to(0.5, {
scale: 1,
angle: -3
}).union().repeatForever().start();
this.tweens.push(tween);
} else {
cc.Tween.stopAllByTarget(cnod);
}
nx.gui.setActive(item, "got", item.status == TaskConst.action_status.finish);
// //宝箱特效
// var effect_nd = nx.gui.find(item,"effect_container");
// let skel = nx.gui.getComponent(effect_nd,"",sp.Skeleton);
// if(effect_nd){
// if (skel.skeletonData) {
// if (item.box_action != box_action) {
// skel.setAnimation(0, box_action, true);
// item.box_action = box_action;
// }
// }else{
// var res_id = gdata("effect_data", "data_effect_info", this.box_list[i]);
// var path = cc.js.formatStr("spine/%s/action.atlas", res_id)
// this.createEffect(skel, path, box_action);
// }
// }
}
}
},
//生成宝箱
createEffect: function createEffect(_skeleton, path, box_action) {
cc.loader.loadRes(path, sp.SkeletonData, function (res) {
_skeleton.skeletonData = res;
_skeleton.setAnimation(0, box_action, true);
});
} // update (dt) {},
});
cc._RF.pop();