Files
2026-05-23 22:10:14 +08:00

949 lines
34 KiB
JavaScript

const BasePage = require( "act.page.base" );
const ItemLayout = require( "cmp.common.itemlayout" );
const FxSVC = require( "nx.fx.sv.expand" );
const NxSpine = require( "nx.fx.spine" );
const TipsController = require( "tips_controller" );
const MainUiController = require( "mainui_controller" );
const { data2Icon } = require( "bridge.utils.item" );
const FID = require( "bridge.function.ids" );
const MCT = require( "mall_const" );
const RoleController = require("role_controller");
const 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( _data ) {
this._super( _data );
nx.gui.setCdTxt( this.nodTips, "top/time/txt", ( _data.end_time - Math.floor( cc.sys.now() / 1000 ) ), () => {
// nx.gui.setString( this.nodEndTime, "txt", nx.text.getKey( "lab_planesafk_main_have_over" ) );
} );
let cfgs = gdata( this.data.config, "data_star_const" );
let efg = gdata( this.data.config, "data_explain" );
let 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(){
if( this.twwn ){
this.twwn.stop();
}
this.stopAllTwwen();
this.unscheduleAllCallbacks();
if( nx.dt.arrNEmpty( this.anims ) ){
for ( let i = 0; i < this.anims.length; i++ ) {
let nod = this.anims[i];
if( nod ){
nod.stop();
}
}
}
this.mod.reqBaseInfo();
this.dealOps( true );
nx.gui.setActive( this, "jump", false );
},
onDisable: function(){
this.isdoing = false;
this.actdoing = false;
this.stopAllTwwen();
let chd = nx.gui.find( this.nodAwards, "content" ).children;
//切换光环位置
for (let i = 0; i < chd.length; i++) {
let nod = chd[i];
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
nx.gui.setActive( nod, "node/focus", false );
}
},
// 销毁
onDestroy: function() {
// 活动监听解除
if( this.mod ) {
this.mod.vunbind( this );
}
if( nx.dt.arrNEmpty( this.anims ) ){
for ( let i = 0; i < this.anims.length; i++ ) {
let nod = this.anims[i];
if( nod ){
nod.stop();
}
}
}
this._super();
},
// 刷新基本顯示相關
freshInfo: function( _data ){
let period = _data;
this.period = period;
let rfg = gdata( this.data.config, "data_static_reward" )[ period ];
// let first = [];
let rfgs = gdata( this.data.config, "data_reward" )[ period ];
let chd = this.nodReaches.children;
for (let i = 0; i < chd.length; i++ ) {
let nod = chd[i];
let rewardd = rfgs[i+1].items[0];
let 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 = [];
let chdline = this.nodLineR.children;
// let count = Object.keys( rfg ).length;
for (let i in rfg ) {
let info = rfg[i];
let nod = chdline[info.id - 1];
let cmp = nx.gui.getComponent( nod, "", "cmp.item.base" );
nx.gui.find( nod, "get" ).idd = info.id;
nx.gui.setActive( nod, "get", false );
nx.gui.setActive( nod, "got", false );
nx.gui.setActive( nod, "cannot", true );
nx.gui.setActive( nod, "rare", false );
if( cmp ){
cmp.setData( info.rewards[0] );
}
}
let mfg = gdata( this.data.config, "data_star_card" )[period];
let mat = mfg.one_loss[0][0];
let 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, ( _e ) => {
if( !_e ) {
this.spRole.action( "drama4", true );
} else {
this.spRole.stop();
}
} );
nx.gui.setString( this, "panel/periodtip/txt", mfg.str1 );
let mcmp = nx.gui.getComponent( this.nodMat, "", "bridge.binder.item.icon.count" );
if( mcmp ){
mcmp.setID( mat );
}
let 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(){
let carddss = [];
if( this.data && this.data.config ){
let cfg = gdata( this.data.config, "data_card_info" )[ this.period ];
for (let r in cfg ) {
let card = nx.dt.objClone( cfg[r] ) ;
card.status = 0;
carddss.push( card );
}
carddss.sort( ( a, b) =>{
return a.position - b.position;
})
}
return carddss;
},
stopAllTwwen: function(){
if( this.twween && nx.dt.arrNEmpty( this.twween ) ){
this.twween.forEach( _tw =>{
_tw.stop();
} )
this.twween = [];
}
},
// 處理集卡活動基本數據
freshCollectCardInfo: function( _carddata ){
if( !_carddata ){
return;
}
let carddss = this.dealShow();
let info = _carddata;
let havecard = info.ids;
let reachreward = info.reach_reward;
let linereward = info.rewards;
let times = info.draw_times;
nx.gui.setString( this.nodTimes, "txt", times );
// 積分顯示 爲了做動畫效果
let role = RoleController.getInstance().getRoleVo();
if( !this.isdoing ){
nx.gui.setString( this.nodScore, "txt", role.star_card_point );
}
if( nx.dt.arrNEmpty( reachreward ) && this.nodReaches ){
let chd = this.nodReaches.children;
for (let r = 0; r < reachreward.length; r++) {
let reward = reachreward[r];
let 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 ){
let chd = nx.gui.find( this.nodAwards, "content" ).children;
let shows = [];
if( chd ){
for( let i = 0; i < havecard.length; ++i ) {
let have = havecard[i];
let temp = chd[ have.id - 1 ];
let show = carddss[have.id - 1 ];
show.status = 1;
if( temp.svItem && !this.isdoing ) {
temp.svItem.rebind( i, show );
}
}
chd.forEach( _nod=>{
if( _nod.svItem.mdata.status == 0 && _nod.svItem.mdata.is_show == 1 ){
shows.push( _nod );
}
} )
}
}
if( nx.dt.arrNEmpty( linereward ) && this.nodLineR ){
let chd = this.nodLineR.children;
let chda = nx.gui.find( this.nodAwards, "content" ).children;
for (let i = 0; i < linereward.length; i++) {
let award = linereward[i];
let nod = chd[ award.id - 1 ];
if( !this.isdoing ){
let linecontent = lines[ award.id - 1 ];
for (let idx = 0; idx < linecontent.length; idx++) {
let idds = linecontent[idx];
let nod = chda[idds-1];
let nxpine = nx.gui.getComponent( nod, "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( nod, "get", award.status == 1 );
nx.gui.setActive( nod, "got", award.status == 2 );
nx.gui.setActive( nod, "cannot", award.status == 0 );
nx.gui.setActive( nod, "rare", award.status == 1 );
}else{
if( award.status == 2 ){
// nx.gui.setActive( nod, "get", award.status == 1 );
nx.gui.setActive( nod, "got", true );
nx.gui.setActive( nod, "get", false );
}
}
}
}
// reachreward
},
onTouchReachTime: function( _item ){
let idd = _item.idd;
this.mod.reqGetCollectReachTimesReward( idd );
},
onTouchHelp: function(){
let TC = TipsController.getInstance();
let explain = gdata( this.mod.data.config, "data_explain" )[1];
let probcfg = gdata( this.mod.data.config, "data_prob_info" );
let prob = "";
for (let i in probcfg ) {
let desc = probcfg[i];
prob += "\n" + desc.name + "\t\t\t\t\t" + desc.probability + "%";
}
let txt = explain.desc + "\n" + nx.text.getKey( "PrayRate" ) + prob;
TC.showTextPanel( explain.name, txt );
},
onTouchCollectCard: function( _btn ){
let 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, ( _ret, _data, _code )=>{
if( ( !_ret && _code == 101 ) || !_data.face_list ){
nx.tbox( _data );
this.onTouchMat();
return;
}
if( this.actdoing ){
nx.tbox( "ActDoing" );
return;
}
this.dealOps( false );
this.actdoing = true;
_data.face_list.sort( ( a, b )=>{
return a.is_debris - b.is_debris;
} )
// 動畫表現
this.unscheduleAllCallbacks();
this.onDoAni( 0, _data, 0 );
} );
nx.gui.setActive( this, "jump", true );
},
dealOps : function( _status ){
let ops = this.nodOps.children;
for (let o = 0; o < ops.length; o++) {
let opnod = ops[o];
let cmp = nx.gui.getComponent( opnod, "", cc.Button );
if( cmp ){
cmp.interactable = _status;
}
}
},
onTouchGetLineReward : function( _btn ){
let idd = _btn.idd;
this.mod.reqGetLineCollectReward( idd );
},
onTouchMat: function(){
let 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(){
nx.bridge.jumper.jump2Window( FID.Shop, {
p1 : MCT.MallType.SummonShop,
p2: MCT.MallType.CollectCardStore,
} )
},
// 播放輪轉動畫
onDoAni: function( _time, _result, _loop, _usetype ){
// let animnod = nx.gui.find( this, "item" );
// let chd = nx.gui.find( this.nodAwards, "content" ).children;
let posss = nx.gui.find( this.nodAwards.node, "pos" );
let chd = nx.gui.find( this.nodAwards, "content" ).children;
let animcount = [];
chd.forEach( _item =>{
if( _item.svItem.mdata.status == 0 ){
animcount.push( _item.svItem.mdata.position )
}
} )
let result = _result.face_list;
let rewards = _result.item_list;
if( this.tween ){
this.tween.stop();
}
this.loopCount = _loop >= 0 ? _loop : this.loopCount;
// this.nodFocus.opacity = 156;
let num = 1;
// self.posssnod = [];
let all = num + this.circleCount * ( chd.length );
this.unscheduleAllCallbacks();
let self = this;
this.scheduleOnce(() => {
this.index++;
//循环到最后一个值之后从0开始
if ( this.index >= chd.length ) {
this.index = 0;
}
if( this.loopCount > 0 ){
this.delayTime = 0.08;
this.onDoing = true;
}
//当前运行次数++
if ( this.loopCount >= ( chd.length * ( this.circleCount - 0.2 ) ) ) {
//加速度,为最大时间间隔/空转之外需要运行的间隔(空转之外需要运行的间隔是一圈+抽奖的结果)
this.delayTime = 0.2;
}
if ( this.loopCount >= ( all - 6 ) ) {
//加速度,为最大时间间隔/空转之外需要运行的间隔(空转之外需要运行的间隔是一圈+抽奖的结果)
this.delayTime = 0.3;
}
this.loopCount++;
if( this.loopCount > all ){
this.loopCount = all ;
}
//总的运行次数 = 空转三圈 + 一圈缓冲 + 抽奖结果
this.count = chd.length * ( this.circleCount + 0.3 ) + _time;
//判断是不是运行完了
if ( this.loopCount >= all ) {
let cfg = gdata( self.data.config, "data_card_info" )[self.period];
for (let i = 0; i < chd.length; i++) {
let nod = chd[i];
nx.gui.setActive( nod, "node/focus", false );
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
}
self.stopAllTwwen();
let rewardnods = [];
let cell = posss;
let poss = cell.convertToWorldSpaceAR( cc.Vec2.ZERO );
// let pos = self.nodAwards.node.parent.parent.convertToWorldSpaceAR( cc.Vec2.ZERO );
cell.position = self.nodAwards.node.convertToNodeSpaceAR( poss );
let nodtwen = cc.tween( self.nodAwards )
.delay( 0.001 )
.call( ()=>{
// TODO 閃卡牌 設置相關顯示
let domain = function(){
if( nx.dt.arrEmpty( result ) ){
for (let i = 0; i < chd.length; i++) {
let nod = chd[i];
let nxpine = nx.gui.getComponent( nod, "node/spine", "nx.fx.spine" );
if( nxpine ){
nxpine.stop();
}
let rewardnode = nx.gui.find( nod, "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 );/
let resultitem = result.shift();
// console.log( "當前的數據顯示相關" + JSON.stringify( resultitem ) );
let item = resultitem;
let pos = cfg[item.id].position;
let nod = chd[pos-1];
let cost = cfg[item.id].debris;
let twen = cc.tween( nod )
.delay( 0.001 )
.call( ()=>{
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( ()=>{
nx.gui.setActive( nod, "node/focus", false );
let 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 );
let nxpine = nx.gui.getComponent( nod, "node/spine", "nx.fx.spine" );
if( item.is_debris == 0 ){
if( nxpine ){
nxpine.load( path, ( _e ) => {
// console.log( "change动画设置数据xxxx" + JSON.stringify( _e ) );
if( !_e ) {
nxpine.action( "action", false, ( _event ) => {
// console.log( path + "change设置数据xxxx" + JSON.stringify( item ) );
// console.log( "動畫節點" + _event );
if( _event == "change" ) {
// raffle();
nx.audio.playSFX( "audios/effects/cardboom" );
let show = nod.svItem.mdata;
show.status = 1;
if( nod.svItem ) {
nod.svItem.rebind( nod.svItem.index, show );
}
domain();
// return;
}
});
} else {
nxpine.stop();
}
} );
}
}else{
let noddd = nx.gui.find( nod, "node/itemnormal" );
let 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 ){
let show = nod.svItem.mdata;
show.status = 1;
if( nod.svItem ) {
nod.svItem.rebind( nod.svItem.index, show );
}
}
let dataa = {
bid : self.spriteid,
num : cost
}
if( cmpp.mdata ){
dataa = {
bid : self.spriteid,
num : cost + cmpp.mdata.num
}
}
// reward.push( dataa );
cmpp.setData( dataa );
}
let goto = cc.tween( noddd )
.delay( 0.03 )
.call( ()=>{
( noddd.active && noddd.opacity == 255 ) || noddd.opacity == 255 ? "" : nx.tween.fadeIn( noddd, "", 0.02 );
} )
.delay( 0.5 )
.call( ()=>{
domain();
} )
.union()
.start();
self.twween.push( goto );
}
} )
// .delay( )
.start();
self.twween.push( twen );
}
domain();
} )
.start();
self.twween.push( nodtwen );
return;
} else {
//切换光环位置
for (let i = 0; i < chd.length; i++) {
let nod = chd[i];
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
nx.gui.setActive( nod, "node/focus", false );
}
let indexxx = nx.dt.randomRange( this.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" );
this.onDoAni( _time, _result, self.loopCount );
}
}, this.delayTime, 0 ); //执行次数为0,实际执行次数为1
},
doOtherAnimation: function( _nodds ){
let self = this;
let chd = nx.gui.find( this.nodAwards, "content" ).children;
let chdr = self.nodLineR.children;
let rewardss = [];
let rewardnow = self.mod.vget( "ActsCollectCard" ).rewards;
for ( let rr = 0; rr < rewardnow.length; rr++ ) {
let line = rewardnow[rr];
let focus = nx.gui.find( chdr[ line.id - 1], "get" );
if( line.status == 1 && !focus.active ){
rewardss.push( line );
}
}
for (let i = 0; i < chd.length; i++) {
let nod = chd[i];
nx.gui.setActive( nod, "node/focus", false );
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
let nodd = nx.gui.find( nod, "node/itemnormal" );
nodd.position = cc.Vec2.ZERO;
nodd.scale = 1;
}
// let rewardss = self.mod.vget( "ActsCollectCard" ).rewards;
let doindex = 0;
// console.log( JSON.stringify( self.mod.vget( "ActsCollectCard" ) ) + "當前的連綫獎勵--" + JSON.stringify( rewardss ) );
let doanimaline = function( _idx ){
if( nx.dt.arrEmpty( rewardss ) ){
self.flyToMat( _nodds );
return;
}
let ritem = rewardss.shift();
let linereward = chdr[ ritem.id - 1 ];
let linecontent = lines[ ritem.id - 1 ];
let rewardshowtween = cc.tween( self.nodAwards.node )
.delay( 0.01 )
.call( ()=>{
nx.audio.playSFX( "audios/effects/liner" );
for (let idx = 0; idx < linecontent.length; idx++) {
let idds = linecontent[idx];
let nod = chd[idds-1];
nx.gui.setActive( nod, "node/focus", true );
// nx.tween.fadeIn( nod, "node/focus", 0.1 );
}
} )
.delay( 1 )
.call( ()=>{
for (let idx = 0; idx < linecontent.length; idx++) {
let idds = linecontent[idx];
let nod = chd[idds-1];
nx.gui.setActive( nod, "node/focus", false );
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
}
} )
.delay( 0.2 )
.call( ()=>{
for (let idx = 0; idx < linecontent.length; idx++) {
let idds = linecontent[idx];
let nod = chd[idds-1];
nx.gui.setActive( nod, "node/focus", true );
// nx.tween.fadeIn( nod, "node/focus", 0.1 );
}
} )
.delay( 0.6 )
.call( ()=>{
for (let idx = 0; idx < linecontent.length; idx++) {
let idds = linecontent[idx];
let nod = chd[idds-1];
nx.gui.setActive( nod, "node/focus", false );
// nx.tween.fadeOut( nod, "node/focus", 0.01 );
}
} )
.delay( 0.1 )
.call( ()=>{
doindex++;
let nxpine = nx.gui.getComponent( linereward, "reachspine", "nx.fx.spine" );
if( nxpine ){
nxpine.load( "resDB/effects/E90911/action", ( _e ) => {
if( !_e ) {
nxpine.action( "action", false, ( _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( _noddds ){
let self = this;
let chd = nx.gui.find( this.nodAwards, "content" ).children;
if( nx.dt.arrEmpty( _noddds ) ){
for (let i = 0; i < chd.length; i++) {
let nod = chd[i];
let 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;
}
let cell = this.nodScore;
let tonod = cell.parent.convertToWorldSpaceAR( cell.position );
let gotoscore = cc.tween( this.nodAwards.node )
.delay( 0.01 )
.call( ()=>{
for (let n = 0; n < _noddds.length; n++) {
let noddd = _noddds[n];
let twengoto = cc.tween( noddd )
.to( 0.6, { position : noddd.parent.convertToNodeSpaceAR( tonod ), scale : 0.5, opacity : 0 } )
.call( ()=>{
nx.audio.playSFX( "audios/effects/getscore" );
noddd.position = cc.Vec2.ZERO;
noddd.scale = 1;
let cmpp = nx.gui.getComponent( noddd, "item", "cmp.item.base" );
if( cmpp ){
let data = {
bid : self.spriteid,
num : 0
}
cmpp.setData( data );
}
} )
.start();
self.twween.push( twengoto );
}
} )
.delay( 0.1 )
.call( ()=>{
for (let i = 0; i < chd.length; i++) {
let nod = chd[i];
let nodd = nx.gui.find( nod, "node/itemnormal" );
nodd.position = cc.Vec2.ZERO;
nodd.scale = 1;
}
let role = RoleController.getInstance().getRoleVo();
nx.gui.setString( self.nodScore, "txt", role.star_card_point );
self.isdoing = false;
self.actdoing = false;
this.dealOps( true );
} )
.start();
this.twween.push( gotoscore );
},
onTouchScore: function(){
let TC = TipsController.getInstance();
TC.showItemTips( this.scoreid );
},
onTouchStopAnim: function(){
this.isdoing = false;
this.actdoing = false;
this.stopAllTwwen();
nx.gui.setActive( this, "jump", false );
let chd = nx.gui.find( this.nodAwards, "content" ).children;
//切换光环位置
for (let i = 0; i < chd.length; i++) {
let 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 ( let i = 0; i < this.anims.length; i++ ) {
let nod = this.anims[i];
if( nod ){
nod.stop();
}
}
}
this.mod.reqBaseInfo();
this.dealOps( true );
},
});