805 lines
28 KiB
JavaScript
805 lines
28 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, '2d1c1J0o6NPRYWn46qe4GjT', 'act.collect.wnd');
|
||
|
|
// Scripts/mod/acts/collect/act.collect.wnd.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
var BasePage = require("act.page.base");
|
||
|
|
var ItemLayout = require("cmp.common.itemlayout");
|
||
|
|
var FxSVC = require("nx.fx.sv.expand");
|
||
|
|
var NxSpine = require("nx.fx.spine");
|
||
|
|
var TipsController = require("tips_controller");
|
||
|
|
var MainUiController = require("mainui_controller");
|
||
|
|
var _require = require("bridge.utils.item"),
|
||
|
|
data2Icon = _require.data2Icon;
|
||
|
|
var FID = require("bridge.function.ids");
|
||
|
|
var MCT = require("mall_const");
|
||
|
|
var RoleController = require("role_controller");
|
||
|
|
var lines = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [5, 9, 13, 17, 21], [1, 6, 11, 16, 21], [2, 7, 12, 17, 22], [3, 8, 13, 18, 23], [4, 9, 14, 19, 24], [5, 10, 15, 20, 25], [1, 7, 13, 19, 25]];
|
||
|
|
cc.Class({
|
||
|
|
"extends": BasePage,
|
||
|
|
properties: {
|
||
|
|
nodAwards: {
|
||
|
|
"default": null,
|
||
|
|
type: FxSVC,
|
||
|
|
displayName: "所有道具列表"
|
||
|
|
},
|
||
|
|
spRole: {
|
||
|
|
"default": null,
|
||
|
|
type: NxSpine,
|
||
|
|
displayName: "人物動畫"
|
||
|
|
},
|
||
|
|
nodTips: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "说明"
|
||
|
|
},
|
||
|
|
nodReaches: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "纍計獎勵"
|
||
|
|
},
|
||
|
|
nodTimes: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "纍計次數"
|
||
|
|
},
|
||
|
|
nodMat: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "右上角材料"
|
||
|
|
},
|
||
|
|
nodScore: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "積分"
|
||
|
|
},
|
||
|
|
nodOps: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "操作"
|
||
|
|
},
|
||
|
|
nodLineR: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "連綫獎勵"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 初始化
|
||
|
|
build: function build(_data) {
|
||
|
|
this._super(_data);
|
||
|
|
nx.gui.setCdTxt(this.nodTips, "top/time/txt", _data.end_time - Math.floor(cc.sys.now() / 1000), function () {
|
||
|
|
// nx.gui.setString( this.nodEndTime, "txt", nx.text.getKey( "lab_planesafk_main_have_over" ) );
|
||
|
|
});
|
||
|
|
var cfgs = gdata(this.data.config, "data_star_const");
|
||
|
|
var efg = gdata(this.data.config, "data_explain");
|
||
|
|
var scoreid = cfgs.card_shard_id.val;
|
||
|
|
this.scoreid = scoreid;
|
||
|
|
nx.bridge.setIconS(this.nodScore, "icon", scoreid);
|
||
|
|
this.spriteid = scoreid;
|
||
|
|
// 右邊 次數獎勵設置
|
||
|
|
nx.gui.setActive(this, "jump", false);
|
||
|
|
this.anims = [];
|
||
|
|
nx.gui.setString(this.nodTips, "cnt/view/content/tip", efg[2].desc);
|
||
|
|
this.twween = [];
|
||
|
|
this.freshInfo(this.mod.period);
|
||
|
|
|
||
|
|
// 视图监听
|
||
|
|
this.mod.vbind(this, [["ActsCollectCard", this.freshCollectCardInfo.bind(this)]]);
|
||
|
|
this.isdoing = false;
|
||
|
|
this.actdoing = false;
|
||
|
|
// // this.mod.reqBaseData();
|
||
|
|
// nx.debug( "$ActPage onEnable");
|
||
|
|
// 获取指定主题信息
|
||
|
|
},
|
||
|
|
|
||
|
|
onEnable: function onEnable() {
|
||
|
|
if (this.twwn) {
|
||
|
|
this.twwn.stop();
|
||
|
|
}
|
||
|
|
this.stopAllTwwen();
|
||
|
|
this.unscheduleAllCallbacks();
|
||
|
|
if (nx.dt.arrNEmpty(this.anims)) {
|
||
|
|
for (var i = 0; i < this.anims.length; i++) {
|
||
|
|
var nod = this.anims[i];
|
||
|
|
if (nod) {
|
||
|
|
nod.stop();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this.mod.reqBaseInfo();
|
||
|
|
this.dealOps(true);
|
||
|
|
nx.gui.setActive(this, "jump", false);
|
||
|
|
},
|
||
|
|
onDisable: function onDisable() {
|
||
|
|
this.isdoing = false;
|
||
|
|
this.actdoing = false;
|
||
|
|
this.stopAllTwwen();
|
||
|
|
var chd = nx.gui.find(this.nodAwards, "content").children;
|
||
|
|
//切换光环位置
|
||
|
|
for (var i = 0; i < chd.length; i++) {
|
||
|
|
var nod = chd[i];
|
||
|
|
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
|
||
|
|
nx.gui.setActive(nod, "node/focus", false);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 销毁
|
||
|
|
onDestroy: function onDestroy() {
|
||
|
|
// 活动监听解除
|
||
|
|
if (this.mod) {
|
||
|
|
this.mod.vunbind(this);
|
||
|
|
}
|
||
|
|
if (nx.dt.arrNEmpty(this.anims)) {
|
||
|
|
for (var i = 0; i < this.anims.length; i++) {
|
||
|
|
var nod = this.anims[i];
|
||
|
|
if (nod) {
|
||
|
|
nod.stop();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this._super();
|
||
|
|
},
|
||
|
|
// 刷新基本顯示相關
|
||
|
|
freshInfo: function freshInfo(_data) {
|
||
|
|
var _this = this;
|
||
|
|
var period = _data;
|
||
|
|
this.period = period;
|
||
|
|
var rfg = gdata(this.data.config, "data_static_reward")[period];
|
||
|
|
// let first = [];
|
||
|
|
|
||
|
|
var rfgs = gdata(this.data.config, "data_reward")[period];
|
||
|
|
var chd = this.nodReaches.children;
|
||
|
|
for (var i = 0; i < chd.length; i++) {
|
||
|
|
var nod = chd[i];
|
||
|
|
var rewardd = rfgs[i + 1].items[0];
|
||
|
|
var itemcmp = nx.gui.getComponent(nod, "reward", "cmp.item.base");
|
||
|
|
nx.gui.find(nod, "get").idd = rfgs[i + 1].id;
|
||
|
|
nx.gui.setString(nod, "times", rfgs[i + 1].count);
|
||
|
|
if (itemcmp) {
|
||
|
|
itemcmp.setData(rewardd);
|
||
|
|
}
|
||
|
|
nx.gui.setActive(nod, "get", false);
|
||
|
|
nx.gui.setActive(nod, "got", false);
|
||
|
|
}
|
||
|
|
|
||
|
|
// let second = [];
|
||
|
|
var chdline = this.nodLineR.children;
|
||
|
|
// let count = Object.keys( rfg ).length;
|
||
|
|
for (var _i in rfg) {
|
||
|
|
var info = rfg[_i];
|
||
|
|
var _nod2 = chdline[info.id - 1];
|
||
|
|
var cmp = nx.gui.getComponent(_nod2, "", "cmp.item.base");
|
||
|
|
nx.gui.find(_nod2, "get").idd = info.id;
|
||
|
|
nx.gui.setActive(_nod2, "get", false);
|
||
|
|
nx.gui.setActive(_nod2, "got", false);
|
||
|
|
nx.gui.setActive(_nod2, "cannot", true);
|
||
|
|
nx.gui.setActive(_nod2, "rare", false);
|
||
|
|
if (cmp) {
|
||
|
|
cmp.setData(info.rewards[0]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
var mfg = gdata(this.data.config, "data_star_card")[period];
|
||
|
|
var mat = mfg.one_loss[0][0];
|
||
|
|
var path = "resDB/models/" + mfg.partner_model + "/show";
|
||
|
|
this.spRole.node.scaleX = mfg.is_flip == 1 ? -this.spRole.node.scaleX : this.spRole.node.scaleX;
|
||
|
|
this.spRole.load(path, function (_e) {
|
||
|
|
if (!_e) {
|
||
|
|
_this.spRole.action("drama4", true);
|
||
|
|
} else {
|
||
|
|
_this.spRole.stop();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
nx.gui.setString(this, "panel/periodtip/txt", mfg.str1);
|
||
|
|
var mcmp = nx.gui.getComponent(this.nodMat, "", "bridge.binder.item.icon.count");
|
||
|
|
if (mcmp) {
|
||
|
|
mcmp.setID(mat);
|
||
|
|
}
|
||
|
|
var showtxtxt = "";
|
||
|
|
switch (mfg.ten_loss[0][1]) {
|
||
|
|
case 10:
|
||
|
|
{
|
||
|
|
showtxtxt = nx.text.getKey("ActCollectTenTime");
|
||
|
|
}
|
||
|
|
;
|
||
|
|
break;
|
||
|
|
case 5:
|
||
|
|
{
|
||
|
|
showtxtxt = nx.text.getKey("ActCollectFiveTime");
|
||
|
|
}
|
||
|
|
;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
nx.gui.setString(this.nodOps, "one/txt", nx.text.getKey("ActCollectOne"));
|
||
|
|
nx.gui.setString(this.nodOps, "noone/txt", nx.text.format("ActCollectTen", showtxtxt));
|
||
|
|
nx.gui.find(this.nodOps, "noone").times = mfg.ten_loss[0][1];
|
||
|
|
nx.gui.find(this.nodOps, "one").times = mfg.one_loss[0][1];
|
||
|
|
nx.bridge.setIconS(this.nodOps, "one/mat/icon", mat);
|
||
|
|
nx.gui.setString(this.nodOps, "one/mat/count", "X" + mfg.one_loss[0][1]);
|
||
|
|
nx.bridge.setIconS(this.nodOps, "noone/mat/icon", mat);
|
||
|
|
nx.gui.setString(this.nodOps, "noone/mat/count", "X" + mfg.ten_loss[0][1]);
|
||
|
|
this.nodAwards.rebuild(this.dealShow());
|
||
|
|
},
|
||
|
|
dealShow: function dealShow() {
|
||
|
|
var carddss = [];
|
||
|
|
if (this.data && this.data.config) {
|
||
|
|
var cfg = gdata(this.data.config, "data_card_info")[this.period];
|
||
|
|
for (var r in cfg) {
|
||
|
|
var card = nx.dt.objClone(cfg[r]);
|
||
|
|
card.status = 0;
|
||
|
|
carddss.push(card);
|
||
|
|
}
|
||
|
|
carddss.sort(function (a, b) {
|
||
|
|
return a.position - b.position;
|
||
|
|
});
|
||
|
|
}
|
||
|
|
return carddss;
|
||
|
|
},
|
||
|
|
stopAllTwwen: function stopAllTwwen() {
|
||
|
|
if (this.twween && nx.dt.arrNEmpty(this.twween)) {
|
||
|
|
this.twween.forEach(function (_tw) {
|
||
|
|
_tw.stop();
|
||
|
|
});
|
||
|
|
this.twween = [];
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 處理集卡活動基本數據
|
||
|
|
freshCollectCardInfo: function freshCollectCardInfo(_carddata) {
|
||
|
|
if (!_carddata) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var carddss = this.dealShow();
|
||
|
|
var info = _carddata;
|
||
|
|
var havecard = info.ids;
|
||
|
|
var reachreward = info.reach_reward;
|
||
|
|
var linereward = info.rewards;
|
||
|
|
var times = info.draw_times;
|
||
|
|
nx.gui.setString(this.nodTimes, "txt", times);
|
||
|
|
|
||
|
|
// 積分顯示 爲了做動畫效果
|
||
|
|
var role = RoleController.getInstance().getRoleVo();
|
||
|
|
if (!this.isdoing) {
|
||
|
|
nx.gui.setString(this.nodScore, "txt", role.star_card_point);
|
||
|
|
}
|
||
|
|
if (nx.dt.arrNEmpty(reachreward) && this.nodReaches) {
|
||
|
|
var chd = this.nodReaches.children;
|
||
|
|
for (var r = 0; r < reachreward.length; r++) {
|
||
|
|
var reward = reachreward[r];
|
||
|
|
var nod = chd[reward.id - 1];
|
||
|
|
nx.gui.setActive(nod, "get", reward.status == 1);
|
||
|
|
nx.gui.setActive(nod, "got", reward.status == 2);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (nx.dt.arrNEmpty(havecard) && this.nodAwards) {
|
||
|
|
var _chd = nx.gui.find(this.nodAwards, "content").children;
|
||
|
|
var shows = [];
|
||
|
|
if (_chd) {
|
||
|
|
for (var i = 0; i < havecard.length; ++i) {
|
||
|
|
var have = havecard[i];
|
||
|
|
var temp = _chd[have.id - 1];
|
||
|
|
var show = carddss[have.id - 1];
|
||
|
|
show.status = 1;
|
||
|
|
if (temp.svItem && !this.isdoing) {
|
||
|
|
temp.svItem.rebind(i, show);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
_chd.forEach(function (_nod) {
|
||
|
|
if (_nod.svItem.mdata.status == 0 && _nod.svItem.mdata.is_show == 1) {
|
||
|
|
shows.push(_nod);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (nx.dt.arrNEmpty(linereward) && this.nodLineR) {
|
||
|
|
var _chd2 = this.nodLineR.children;
|
||
|
|
var chda = nx.gui.find(this.nodAwards, "content").children;
|
||
|
|
for (var _i2 = 0; _i2 < linereward.length; _i2++) {
|
||
|
|
var award = linereward[_i2];
|
||
|
|
var _nod3 = _chd2[award.id - 1];
|
||
|
|
if (!this.isdoing) {
|
||
|
|
var linecontent = lines[award.id - 1];
|
||
|
|
for (var idx = 0; idx < linecontent.length; idx++) {
|
||
|
|
var idds = linecontent[idx];
|
||
|
|
var _nod4 = chda[idds - 1];
|
||
|
|
var nxpine = nx.gui.getComponent(_nod4, "node/linespine", "nx.fx.spine");
|
||
|
|
if (nxpine) {
|
||
|
|
if (award.status != 1) {
|
||
|
|
nxpine.stop();
|
||
|
|
} else {
|
||
|
|
nxpine.stop();
|
||
|
|
// nxpine.load( "resDB/effects/E90912/action", ( _e ) => {
|
||
|
|
// if( !_e ) {
|
||
|
|
// nxpine.action( "action", true );
|
||
|
|
// } else {
|
||
|
|
// nxpine.stop();
|
||
|
|
// }
|
||
|
|
// } );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
nx.gui.setActive(_nod3, "get", award.status == 1);
|
||
|
|
nx.gui.setActive(_nod3, "got", award.status == 2);
|
||
|
|
nx.gui.setActive(_nod3, "cannot", award.status == 0);
|
||
|
|
nx.gui.setActive(_nod3, "rare", award.status == 1);
|
||
|
|
} else {
|
||
|
|
if (award.status == 2) {
|
||
|
|
// nx.gui.setActive( nod, "get", award.status == 1 );
|
||
|
|
nx.gui.setActive(_nod3, "got", true);
|
||
|
|
nx.gui.setActive(_nod3, "get", false);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// reachreward
|
||
|
|
},
|
||
|
|
|
||
|
|
onTouchReachTime: function onTouchReachTime(_item) {
|
||
|
|
var idd = _item.idd;
|
||
|
|
this.mod.reqGetCollectReachTimesReward(idd);
|
||
|
|
},
|
||
|
|
onTouchHelp: function onTouchHelp() {
|
||
|
|
var TC = TipsController.getInstance();
|
||
|
|
var explain = gdata(this.mod.data.config, "data_explain")[1];
|
||
|
|
var probcfg = gdata(this.mod.data.config, "data_prob_info");
|
||
|
|
var prob = "";
|
||
|
|
for (var i in probcfg) {
|
||
|
|
var desc = probcfg[i];
|
||
|
|
prob += "\n" + desc.name + "\t\t\t\t\t" + desc.probability + "%";
|
||
|
|
}
|
||
|
|
var txt = explain.desc + "\n" + nx.text.getKey("PrayRate") + prob;
|
||
|
|
TC.showTextPanel(explain.name, txt);
|
||
|
|
},
|
||
|
|
onTouchCollectCard: function onTouchCollectCard(_btn) {
|
||
|
|
var _this2 = this;
|
||
|
|
var times = _btn.times;
|
||
|
|
this.isdoing = true;
|
||
|
|
this.index = -1; //当前光环在哪个奖品上
|
||
|
|
// this.nodFocus.position = this.nodReward.children[this.index].position; //初始化光环位置
|
||
|
|
this.delayTime = 0.1; //开始的时候延迟调用的时间(最小时间间隔)
|
||
|
|
this.delayTime_max = 1.5; //最大时间间隔
|
||
|
|
// this.addOrSub = false; //增加还是减少的bool值
|
||
|
|
this.loopCount = 0; //循环次数
|
||
|
|
this.circleCount = 1; //前面循环的圈数(效果圈,只为效果,和奖品无关)
|
||
|
|
// 動畫表現形式 ---- 先閃隨機動畫 然後定點顯示相關獲得 呈現達成效果 最終彈出相關的固定獎勵
|
||
|
|
this.mod.reqCollectCard(times, function (_ret, _data, _code) {
|
||
|
|
if (!_ret && _code == 101 || !_data.face_list) {
|
||
|
|
nx.tbox(_data);
|
||
|
|
_this2.onTouchMat();
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if (_this2.actdoing) {
|
||
|
|
nx.tbox("ActDoing");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
_this2.dealOps(false);
|
||
|
|
_this2.actdoing = true;
|
||
|
|
_data.face_list.sort(function (a, b) {
|
||
|
|
return a.is_debris - b.is_debris;
|
||
|
|
});
|
||
|
|
// 動畫表現
|
||
|
|
_this2.unscheduleAllCallbacks();
|
||
|
|
_this2.onDoAni(0, _data, 0);
|
||
|
|
});
|
||
|
|
nx.gui.setActive(this, "jump", true);
|
||
|
|
},
|
||
|
|
dealOps: function dealOps(_status) {
|
||
|
|
var ops = this.nodOps.children;
|
||
|
|
for (var o = 0; o < ops.length; o++) {
|
||
|
|
var opnod = ops[o];
|
||
|
|
var cmp = nx.gui.getComponent(opnod, "", cc.Button);
|
||
|
|
if (cmp) {
|
||
|
|
cmp.interactable = _status;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
onTouchGetLineReward: function onTouchGetLineReward(_btn) {
|
||
|
|
var idd = _btn.idd;
|
||
|
|
this.mod.reqGetLineCollectReward(idd);
|
||
|
|
},
|
||
|
|
onTouchMat: function onTouchMat() {
|
||
|
|
var jump_shop = gdata(this.data.config, "data_star_card")[this.period].shop_id;
|
||
|
|
if (this.actRoot && jump_shop) {
|
||
|
|
this.actRoot.jumpToMenu(jump_shop);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
onTouchExchange: function onTouchExchange() {
|
||
|
|
nx.bridge.jumper.jump2Window(FID.Shop, {
|
||
|
|
p1: MCT.MallType.SummonShop,
|
||
|
|
p2: MCT.MallType.CollectCardStore
|
||
|
|
});
|
||
|
|
},
|
||
|
|
// 播放輪轉動畫
|
||
|
|
onDoAni: function onDoAni(_time, _result, _loop, _usetype) {
|
||
|
|
var _this3 = this;
|
||
|
|
// let animnod = nx.gui.find( this, "item" );
|
||
|
|
// let chd = nx.gui.find( this.nodAwards, "content" ).children;
|
||
|
|
var posss = nx.gui.find(this.nodAwards.node, "pos");
|
||
|
|
var chd = nx.gui.find(this.nodAwards, "content").children;
|
||
|
|
var animcount = [];
|
||
|
|
chd.forEach(function (_item) {
|
||
|
|
if (_item.svItem.mdata.status == 0) {
|
||
|
|
animcount.push(_item.svItem.mdata.position);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
var result = _result.face_list;
|
||
|
|
var rewards = _result.item_list;
|
||
|
|
if (this.tween) {
|
||
|
|
this.tween.stop();
|
||
|
|
}
|
||
|
|
this.loopCount = _loop >= 0 ? _loop : this.loopCount;
|
||
|
|
// this.nodFocus.opacity = 156;
|
||
|
|
var num = 1;
|
||
|
|
// self.posssnod = [];
|
||
|
|
var all = num + this.circleCount * chd.length;
|
||
|
|
this.unscheduleAllCallbacks();
|
||
|
|
var self = this;
|
||
|
|
this.scheduleOnce(function () {
|
||
|
|
_this3.index++;
|
||
|
|
|
||
|
|
//循环到最后一个值之后从0开始
|
||
|
|
if (_this3.index >= chd.length) {
|
||
|
|
_this3.index = 0;
|
||
|
|
}
|
||
|
|
if (_this3.loopCount > 0) {
|
||
|
|
_this3.delayTime = 0.08;
|
||
|
|
_this3.onDoing = true;
|
||
|
|
}
|
||
|
|
|
||
|
|
//当前运行次数++
|
||
|
|
if (_this3.loopCount >= chd.length * (_this3.circleCount - 0.2)) {
|
||
|
|
//加速度,为最大时间间隔/空转之外需要运行的间隔(空转之外需要运行的间隔是一圈+抽奖的结果)
|
||
|
|
_this3.delayTime = 0.2;
|
||
|
|
}
|
||
|
|
if (_this3.loopCount >= all - 6) {
|
||
|
|
//加速度,为最大时间间隔/空转之外需要运行的间隔(空转之外需要运行的间隔是一圈+抽奖的结果)
|
||
|
|
_this3.delayTime = 0.3;
|
||
|
|
}
|
||
|
|
_this3.loopCount++;
|
||
|
|
if (_this3.loopCount > all) {
|
||
|
|
_this3.loopCount = all;
|
||
|
|
}
|
||
|
|
//总的运行次数 = 空转三圈 + 一圈缓冲 + 抽奖结果
|
||
|
|
|
||
|
|
_this3.count = chd.length * (_this3.circleCount + 0.3) + _time;
|
||
|
|
|
||
|
|
//判断是不是运行完了
|
||
|
|
if (_this3.loopCount >= all) {
|
||
|
|
var cfg = gdata(self.data.config, "data_card_info")[self.period];
|
||
|
|
for (var i = 0; i < chd.length; i++) {
|
||
|
|
var nod = chd[i];
|
||
|
|
nx.gui.setActive(nod, "node/focus", false);
|
||
|
|
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
|
||
|
|
}
|
||
|
|
|
||
|
|
self.stopAllTwwen();
|
||
|
|
var rewardnods = [];
|
||
|
|
var cell = posss;
|
||
|
|
var poss = cell.convertToWorldSpaceAR(cc.Vec2.ZERO);
|
||
|
|
// let pos = self.nodAwards.node.parent.parent.convertToWorldSpaceAR( cc.Vec2.ZERO );
|
||
|
|
cell.position = self.nodAwards.node.convertToNodeSpaceAR(poss);
|
||
|
|
var nodtwen = cc.tween(self.nodAwards).delay(0.001).call(function () {
|
||
|
|
// TODO 閃卡牌 設置相關顯示
|
||
|
|
var domain = function domain() {
|
||
|
|
if (nx.dt.arrEmpty(result)) {
|
||
|
|
for (var _i3 = 0; _i3 < chd.length; _i3++) {
|
||
|
|
var _nod5 = chd[_i3];
|
||
|
|
var nxpine = nx.gui.getComponent(_nod5, "node/spine", "nx.fx.spine");
|
||
|
|
if (nxpine) {
|
||
|
|
nxpine.stop();
|
||
|
|
}
|
||
|
|
var rewardnode = nx.gui.find(_nod5, "node/itemnormal");
|
||
|
|
if (rewardnode.active) {
|
||
|
|
rewardnods.push(rewardnode);
|
||
|
|
}
|
||
|
|
// nx.gui.setActive( nod, "node/itemnormal", false );
|
||
|
|
}
|
||
|
|
|
||
|
|
self.doOtherAnimation(rewardnods);
|
||
|
|
// self.actdoing = false;
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
// console.log( "遞加" + first );/
|
||
|
|
var resultitem = result.shift();
|
||
|
|
// console.log( "當前的數據顯示相關" + JSON.stringify( resultitem ) );
|
||
|
|
var item = resultitem;
|
||
|
|
var pos = cfg[item.id].position;
|
||
|
|
var nod = chd[pos - 1];
|
||
|
|
var cost = cfg[item.id].debris;
|
||
|
|
var twen = cc.tween(nod).delay(0.001).call(function () {
|
||
|
|
nx.gui.setActive(nod, "node/focus", true);
|
||
|
|
// nx.tween.fadeIn( nod, "node/focus", 0.01 );
|
||
|
|
nx.audio.playSFX("audios/effects/cardsure");
|
||
|
|
}).delay(0.5).call(function () {
|
||
|
|
nx.gui.setActive(nod, "node/focus", false);
|
||
|
|
var path = cc.path.join("resDB/effects/E9090" + nod.svItem.mdata.quality, "action");
|
||
|
|
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
|
||
|
|
nx.gui.setActive(nod, "node/bgspine", false);
|
||
|
|
var nxpine = nx.gui.getComponent(nod, "node/spine", "nx.fx.spine");
|
||
|
|
if (item.is_debris == 0) {
|
||
|
|
if (nxpine) {
|
||
|
|
nxpine.load(path, function (_e) {
|
||
|
|
// console.log( "change动画设置数据xxxx" + JSON.stringify( _e ) );
|
||
|
|
if (!_e) {
|
||
|
|
nxpine.action("action", false, function (_event) {
|
||
|
|
// console.log( path + "change设置数据xxxx" + JSON.stringify( item ) );
|
||
|
|
// console.log( "動畫節點" + _event );
|
||
|
|
if (_event == "change") {
|
||
|
|
// raffle();
|
||
|
|
nx.audio.playSFX("audios/effects/cardboom");
|
||
|
|
var show = nod.svItem.mdata;
|
||
|
|
show.status = 1;
|
||
|
|
if (nod.svItem) {
|
||
|
|
nod.svItem.rebind(nod.svItem.index, show);
|
||
|
|
}
|
||
|
|
domain();
|
||
|
|
// return;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
nxpine.stop();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
var noddd = nx.gui.find(nod, "node/itemnormal");
|
||
|
|
var cmpp = nx.gui.getComponent(noddd, "item", "cmp.item.base");
|
||
|
|
if (cmpp) {
|
||
|
|
nx.audio.playSFX("audios/effects/cardboom");
|
||
|
|
if (!nx.gui.find(nod, "node/get").active) {
|
||
|
|
var show = nod.svItem.mdata;
|
||
|
|
show.status = 1;
|
||
|
|
if (nod.svItem) {
|
||
|
|
nod.svItem.rebind(nod.svItem.index, show);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
var dataa = {
|
||
|
|
bid: self.spriteid,
|
||
|
|
num: cost
|
||
|
|
};
|
||
|
|
if (cmpp.mdata) {
|
||
|
|
dataa = {
|
||
|
|
bid: self.spriteid,
|
||
|
|
num: cost + cmpp.mdata.num
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
// reward.push( dataa );
|
||
|
|
cmpp.setData(dataa);
|
||
|
|
}
|
||
|
|
var _goto = cc.tween(noddd).delay(0.03).call(function () {
|
||
|
|
noddd.active && noddd.opacity == 255 || noddd.opacity == 255 ? "" : nx.tween.fadeIn(noddd, "", 0.02);
|
||
|
|
}).delay(0.5).call(function () {
|
||
|
|
domain();
|
||
|
|
}).union().start();
|
||
|
|
self.twween.push(_goto);
|
||
|
|
}
|
||
|
|
})
|
||
|
|
// .delay( )
|
||
|
|
.start();
|
||
|
|
self.twween.push(twen);
|
||
|
|
};
|
||
|
|
domain();
|
||
|
|
}).start();
|
||
|
|
self.twween.push(nodtwen);
|
||
|
|
return;
|
||
|
|
} else {
|
||
|
|
//切换光环位置
|
||
|
|
for (var _i4 = 0; _i4 < chd.length; _i4++) {
|
||
|
|
var _nod6 = chd[_i4];
|
||
|
|
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
|
||
|
|
nx.gui.setActive(_nod6, "node/focus", false);
|
||
|
|
}
|
||
|
|
var indexxx = nx.dt.randomRange(_this3.index, chd.length - 1);
|
||
|
|
nx.gui.setActive(chd[indexxx], "node/focus", true);
|
||
|
|
// nx.tween.fadeIn( chd[ indexxx ], "node/focus", 0.01 );
|
||
|
|
nx.audio.playSFX("audios/effects/cardsure");
|
||
|
|
_this3.onDoAni(_time, _result, self.loopCount);
|
||
|
|
}
|
||
|
|
}, this.delayTime, 0); //执行次数为0,实际执行次数为1
|
||
|
|
},
|
||
|
|
|
||
|
|
doOtherAnimation: function doOtherAnimation(_nodds) {
|
||
|
|
var self = this;
|
||
|
|
var chd = nx.gui.find(this.nodAwards, "content").children;
|
||
|
|
var chdr = self.nodLineR.children;
|
||
|
|
var rewardss = [];
|
||
|
|
var rewardnow = self.mod.vget("ActsCollectCard").rewards;
|
||
|
|
for (var rr = 0; rr < rewardnow.length; rr++) {
|
||
|
|
var line = rewardnow[rr];
|
||
|
|
var focus = nx.gui.find(chdr[line.id - 1], "get");
|
||
|
|
if (line.status == 1 && !focus.active) {
|
||
|
|
rewardss.push(line);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
for (var i = 0; i < chd.length; i++) {
|
||
|
|
var nod = chd[i];
|
||
|
|
nx.gui.setActive(nod, "node/focus", false);
|
||
|
|
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
|
||
|
|
var nodd = nx.gui.find(nod, "node/itemnormal");
|
||
|
|
nodd.position = cc.Vec2.ZERO;
|
||
|
|
nodd.scale = 1;
|
||
|
|
}
|
||
|
|
// let rewardss = self.mod.vget( "ActsCollectCard" ).rewards;
|
||
|
|
|
||
|
|
var doindex = 0;
|
||
|
|
|
||
|
|
// console.log( JSON.stringify( self.mod.vget( "ActsCollectCard" ) ) + "當前的連綫獎勵--" + JSON.stringify( rewardss ) );
|
||
|
|
|
||
|
|
var doanimaline = function doanimaline(_idx) {
|
||
|
|
if (nx.dt.arrEmpty(rewardss)) {
|
||
|
|
self.flyToMat(_nodds);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var ritem = rewardss.shift();
|
||
|
|
var linereward = chdr[ritem.id - 1];
|
||
|
|
var linecontent = lines[ritem.id - 1];
|
||
|
|
var rewardshowtween = cc.tween(self.nodAwards.node).delay(0.01).call(function () {
|
||
|
|
nx.audio.playSFX("audios/effects/liner");
|
||
|
|
for (var idx = 0; idx < linecontent.length; idx++) {
|
||
|
|
var idds = linecontent[idx];
|
||
|
|
var _nod7 = chd[idds - 1];
|
||
|
|
nx.gui.setActive(_nod7, "node/focus", true);
|
||
|
|
// nx.tween.fadeIn( nod, "node/focus", 0.1 );
|
||
|
|
}
|
||
|
|
}).delay(1).call(function () {
|
||
|
|
for (var idx = 0; idx < linecontent.length; idx++) {
|
||
|
|
var idds = linecontent[idx];
|
||
|
|
var _nod8 = chd[idds - 1];
|
||
|
|
nx.gui.setActive(_nod8, "node/focus", false);
|
||
|
|
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
|
||
|
|
}
|
||
|
|
}).delay(0.2).call(function () {
|
||
|
|
for (var idx = 0; idx < linecontent.length; idx++) {
|
||
|
|
var idds = linecontent[idx];
|
||
|
|
var _nod9 = chd[idds - 1];
|
||
|
|
nx.gui.setActive(_nod9, "node/focus", true);
|
||
|
|
// nx.tween.fadeIn( nod, "node/focus", 0.1 );
|
||
|
|
}
|
||
|
|
}).delay(0.6).call(function () {
|
||
|
|
for (var idx = 0; idx < linecontent.length; idx++) {
|
||
|
|
var idds = linecontent[idx];
|
||
|
|
var _nod10 = chd[idds - 1];
|
||
|
|
nx.gui.setActive(_nod10, "node/focus", false);
|
||
|
|
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
|
||
|
|
}
|
||
|
|
}).delay(0.1).call(function () {
|
||
|
|
doindex++;
|
||
|
|
var nxpine = nx.gui.getComponent(linereward, "reachspine", "nx.fx.spine");
|
||
|
|
if (nxpine) {
|
||
|
|
nxpine.load("resDB/effects/E90911/action", function (_e) {
|
||
|
|
if (!_e) {
|
||
|
|
nxpine.action("action", false, function (_event) {
|
||
|
|
if (_event == "complete") {
|
||
|
|
nxpine.stop();
|
||
|
|
// raffle();
|
||
|
|
nx.audio.playSFX("audios/effects/lineresult");
|
||
|
|
nx.gui.setActive(linereward, "cannot", false);
|
||
|
|
nx.gui.setActive(linereward, "get", true);
|
||
|
|
nx.gui.setActive(linereward, "rare", true);
|
||
|
|
doanimaline(doindex);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
nxpine.stop();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
})
|
||
|
|
// .delay( 0.3 )
|
||
|
|
// .call( ()=>{
|
||
|
|
// for (let idx = 0; idx < linecontent.length; idx++) {
|
||
|
|
// let idds = linecontent[idx];
|
||
|
|
// let nod = chd[idds-1];
|
||
|
|
// let nxpine = nx.gui.getComponent( nod, "node/linespine", "nx.fx.spine" );
|
||
|
|
// if( nxpine ){
|
||
|
|
// nxpine.load( "resDB/effects/E90912/action", ( _e ) => {
|
||
|
|
// if( !_e ) {
|
||
|
|
// nxpine.stop();
|
||
|
|
// // nxpine.action( "action", true );
|
||
|
|
// } else {
|
||
|
|
// nxpine.stop();
|
||
|
|
// }
|
||
|
|
// } );
|
||
|
|
// }
|
||
|
|
|
||
|
|
// }
|
||
|
|
// } )
|
||
|
|
.start();
|
||
|
|
self.twween.push(rewardshowtween);
|
||
|
|
};
|
||
|
|
doanimaline(doindex);
|
||
|
|
},
|
||
|
|
flyToMat: function flyToMat(_noddds) {
|
||
|
|
var _this4 = this;
|
||
|
|
var self = this;
|
||
|
|
var chd = nx.gui.find(this.nodAwards, "content").children;
|
||
|
|
if (nx.dt.arrEmpty(_noddds)) {
|
||
|
|
for (var i = 0; i < chd.length; i++) {
|
||
|
|
var nod = chd[i];
|
||
|
|
var nodd = nx.gui.find(nod, "node/itemnormal");
|
||
|
|
nodd.position = cc.Vec2.ZERO;
|
||
|
|
nodd.scale = 1;
|
||
|
|
}
|
||
|
|
this.isdoing = false;
|
||
|
|
this.actdoing = false;
|
||
|
|
this.dealOps(true);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var cell = this.nodScore;
|
||
|
|
var tonod = cell.parent.convertToWorldSpaceAR(cell.position);
|
||
|
|
var gotoscore = cc.tween(this.nodAwards.node).delay(0.01).call(function () {
|
||
|
|
var _loop2 = function _loop2() {
|
||
|
|
var noddd = _noddds[n];
|
||
|
|
var twengoto = cc.tween(noddd).to(0.6, {
|
||
|
|
position: noddd.parent.convertToNodeSpaceAR(tonod),
|
||
|
|
scale: 0.5,
|
||
|
|
opacity: 0
|
||
|
|
}).call(function () {
|
||
|
|
nx.audio.playSFX("audios/effects/getscore");
|
||
|
|
noddd.position = cc.Vec2.ZERO;
|
||
|
|
noddd.scale = 1;
|
||
|
|
var cmpp = nx.gui.getComponent(noddd, "item", "cmp.item.base");
|
||
|
|
if (cmpp) {
|
||
|
|
var data = {
|
||
|
|
bid: self.spriteid,
|
||
|
|
num: 0
|
||
|
|
};
|
||
|
|
cmpp.setData(data);
|
||
|
|
}
|
||
|
|
}).start();
|
||
|
|
self.twween.push(twengoto);
|
||
|
|
};
|
||
|
|
for (var n = 0; n < _noddds.length; n++) {
|
||
|
|
_loop2();
|
||
|
|
}
|
||
|
|
}).delay(0.1).call(function () {
|
||
|
|
for (var _i5 = 0; _i5 < chd.length; _i5++) {
|
||
|
|
var _nod11 = chd[_i5];
|
||
|
|
var _nodd = nx.gui.find(_nod11, "node/itemnormal");
|
||
|
|
_nodd.position = cc.Vec2.ZERO;
|
||
|
|
_nodd.scale = 1;
|
||
|
|
}
|
||
|
|
var role = RoleController.getInstance().getRoleVo();
|
||
|
|
nx.gui.setString(self.nodScore, "txt", role.star_card_point);
|
||
|
|
self.isdoing = false;
|
||
|
|
self.actdoing = false;
|
||
|
|
_this4.dealOps(true);
|
||
|
|
}).start();
|
||
|
|
this.twween.push(gotoscore);
|
||
|
|
},
|
||
|
|
onTouchScore: function onTouchScore() {
|
||
|
|
var TC = TipsController.getInstance();
|
||
|
|
TC.showItemTips(this.scoreid);
|
||
|
|
},
|
||
|
|
onTouchStopAnim: function onTouchStopAnim() {
|
||
|
|
this.isdoing = false;
|
||
|
|
this.actdoing = false;
|
||
|
|
this.stopAllTwwen();
|
||
|
|
nx.gui.setActive(this, "jump", false);
|
||
|
|
var chd = nx.gui.find(this.nodAwards, "content").children;
|
||
|
|
//切换光环位置
|
||
|
|
for (var i = 0; i < chd.length; i++) {
|
||
|
|
var nod = chd[i];
|
||
|
|
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
|
||
|
|
nx.gui.setActive(nod, "node/focus", false);
|
||
|
|
}
|
||
|
|
if (this.twwn) {
|
||
|
|
this.twwn.stop();
|
||
|
|
}
|
||
|
|
this.stopAllTwwen();
|
||
|
|
this.unscheduleAllCallbacks();
|
||
|
|
if (nx.dt.arrNEmpty(this.anims)) {
|
||
|
|
for (var _i6 = 0; _i6 < this.anims.length; _i6++) {
|
||
|
|
var _nod12 = this.anims[_i6];
|
||
|
|
if (_nod12) {
|
||
|
|
_nod12.stop();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this.mod.reqBaseInfo();
|
||
|
|
this.dealOps(true);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|