Browse Source

签到优化

薛鸿潇 5 years ago
parent
commit
65b45e24a8

+ 9 - 1
assets/script/game/data/GameData.ts

@@ -257,8 +257,16 @@ class PlayerProp {
     get redMoney(): number {
         return this._redMoney;
     }
+
+    _signInDay = 0;
     /** 累计签到次数 客户端理解 上次签到天数 */
-    signInDay = 0;
+    set signInDay(value: number) {
+        this._signInDay = value;
+        gData.sign.init_data = true;
+    }
+    get signInDay(): number {
+        return this._signInDay;
+    }
     /** 转盘次数 */
     turntableTimes = 0;
     /** 版本号 */

+ 20 - 33
assets/script/game/data/module/SignData.ts

@@ -19,8 +19,6 @@ export class SignData extends Data {
             });
             this.c_sign = gData.gameData.configs.SignIn;
         }
-        // 服务端数据
-        this.sign_last_bar = gData.gameData.gameData.signInDay;
 
         // 客户端测试数据
         // this.sign_last_bar = gData.gameData.getProp(GameProp.sign_last_bar);
@@ -40,15 +38,6 @@ export class SignData extends Data {
         return this._c_sign;
     }
 
-    private _sign_last_bar = 0;
-    /** 上次签到天数 */
-    set sign_last_bar(value: number) {
-        this._sign_last_bar = value;
-        this.init_data = true;
-    }
-    get sign_last_bar(): number {
-        return this._sign_last_bar;
-    }
 
     /** 签到列表数据 */
     public list_data: Array<Array<CSignType>> = [];
@@ -91,9 +80,9 @@ export class SignData extends Data {
      */
     public getStateByDay(login_day: number) {
         let _state = 0;
-        if (login_day <= this.sign_last_bar) {
+        if (login_day <= gData.gameData.gameData.signInDay) {
             _state = RewardState.none;
-        } else if (gData.gameData.gameData.isSignInToday && login_day == (this.sign_last_bar + 1)) {
+        } else if (gData.gameData.gameData.isSignInToday == 0 && login_day == (gData.gameData.gameData.signInDay + 1)) {
             _state = RewardState.unlock;
         } else {
             _state = RewardState.lock;
@@ -106,7 +95,7 @@ export class SignData extends Data {
      * - 签到天数用完后将不可签到
      */
     public haveSignDay() {
-        if (this.sign_last_bar >= this.c_sign.length) {
+        if (gData.gameData.gameData.signInDay >= this.c_sign.length) {
             return false;
         } else {
             return true;
@@ -117,30 +106,28 @@ export class SignData extends Data {
      * 签到完成
      */
     public async signComplete() {
-        gData.gameData.gameData.isSignInToday = 0;
-        this.sign_last_bar++;
         gData.gameData.gameData.signInDay++;
-        gData.gameData.gameData.isSignInToday = 0;
-        // 自定义状态
-        let new_data = [
-            {
-                key: GameProp.sign_can,
-                value: gData.gameData.gameData.isSignInToday
-            },
-            {
-                key: GameProp.sign_last_bar,
-                value: this.sign_last_bar
-            }
-        ]
-        gData.gameData.setProps(new_data);
+        gData.gameData.gameData.isSignInToday = 1;
+        // // 自定义状态
+        // let new_data = [
+        //     {
+        //         key: GameProp.sign_can,
+        //         value: gData.gameData.gameData.isSignInToday
+        //     },
+        //     {
+        //         key: GameProp.sign_last_bar,
+        //         value: this.sign_last_bar
+        //     }
+        // ]
+        // gData.gameData.setProps(new_data);
         // 奖励展示
-        let reward_data = this.c_sign[this.sign_last_bar - 1];
+        let reward_data = this.c_sign[gData.gameData.gameData.signInDay - 1];
         if (reward_data.rewardType === RewardType.redBag) {
             // 红包
             gData.reward.data = [reward_data];// 数据列表
             mk.ui.openPanel('module/reward/reward')
         } else if (reward_data.rewardType === RewardType.rmb) {
-            // 陷阱提现
+            // 现金提现
             let data = {};
             let response = await mk.http.sendRequest('readyCash', 'POST', JSON.stringify(data));
             // let response = await mk.http.sendRequest('readyCash', 'POST', JSON.stringify(data));
@@ -148,7 +135,7 @@ export class SignData extends Data {
                 mk.tip.pop('系统异常');
                 return;
             }
-            
+
             if (response.CashMode == 0) {//星云打款
                 gData.receiptNotice.receip_rmb = reward_data.rewardNum;
                 gData.cashNormal.receip_total_rmb += gData.receiptNotice.receip_rmb;
@@ -176,7 +163,7 @@ export class SignData extends Data {
             const i_count = this.list_data[i].length;
             for (let j = 0; j < i_count; j++) {
                 let state = this.getStateByDay(this.list_data[i][j].loginDay);
-                if (gData.gameData.gameData.isSignInToday) {
+                if (gData.gameData.gameData.isSignInToday == 0) {
                     if (state === RewardState.unlock) {
                         index = i;
                         return index

+ 2 - 2
assets/script/game/module/sign/Sign.ts

@@ -65,7 +65,7 @@ export default class Sign extends cc.Component {
      */
     private clickReceiveReward() {
         mk.audio.playEffect("button");
-        if (!gData.gameData.gameData.isSignInToday) return;
+        if (gData.gameData.gameData.isSignInToday == 1) return;
         if (!gData.sign.haveSignDay()) return;
 
         // 看广告
@@ -96,7 +96,7 @@ export default class Sign extends cc.Component {
      * 初始化按钮样式
      */
     private initBtnStyle() {
-        if (gData.gameData.gameData.isSignInToday && gData.sign.haveSignDay()) {
+        if (gData.gameData.gameData.isSignInToday == 0 && gData.sign.haveSignDay()) {
             this.anim_btn.play();
             this.anim_btn.getComponent('SetGray').setGray(false);
         } else {