future vor 1 Jahr
Ursprung
Commit
40c4445234

+ 370 - 19
assets/resources/ui/car_info.prefab

@@ -35,28 +35,34 @@
       },
       {
         "__id__": 282
+      },
+      {
+        "__id__": 327
+      },
+      {
+        "__id__": 333
       }
     ],
     "_active": true,
     "_components": [
       {
-        "__id__": 326
+        "__id__": 340
       },
       {
-        "__id__": 328
+        "__id__": 342
       },
       {
-        "__id__": 330
+        "__id__": 344
       },
       {
-        "__id__": 332
+        "__id__": 346
       },
       {
-        "__id__": 334
+        "__id__": 348
       }
     ],
     "_prefab": {
-      "__id__": 336
+      "__id__": 350
     },
     "_lpos": {
       "__type__": "cc.Vec3",
@@ -7067,10 +7073,13 @@
     "_components": [
       {
         "__id__": 323
+      },
+      {
+        "__id__": 325
       }
     ],
     "_prefab": {
-      "__id__": 325
+      "__id__": 339
     },
     "_lpos": {
       "__type__": "cc.Vec3",
@@ -8151,6 +8160,354 @@
     "__type__": "cc.CompPrefabInfo",
     "fileId": "e5PJ0q9HdNjI/tVjpqCmIq"
   },
+  {
+    "__type__": "fe621xVOKhH8adceGk7nd8g",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 282
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 326
+    },
+    "btn_look_video": {
+      "__id__": 283
+    },
+    "btn_share": {
+      "__id__": 303
+    },
+    "lab_look_video_count": {
+      "__id__": 327
+    },
+    "lab_share_count": {
+      "__id__": 333
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "e017KXEPZJOo+yMVNcy1oB"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "lab_count_look_video",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 328
+      },
+      {
+        "__id__": 330
+      }
+    ],
+    "_prefab": {
+      "__id__": 332
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -250,
+      "y": -800,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 327
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 329
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 380,
+      "height": 50.4
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "015RLW+VJIl5Fx+2XQLKxA"
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 327
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 331
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 232,
+      "g": 245,
+      "b": 85,
+      "a": 255
+    },
+    "_string": "",
+    "_horizontalAlign": 1,
+    "_verticalAlign": 1,
+    "_actualFontSize": 40,
+    "_fontSize": 40,
+    "_fontFamily": "Arial",
+    "_lineHeight": 40,
+    "_overflow": 1,
+    "_enableWrapText": false,
+    "_font": null,
+    "_isSystemFontUsed": true,
+    "_spacingX": 0,
+    "_isItalic": false,
+    "_isBold": false,
+    "_isUnderline": false,
+    "_underlineHeight": 2,
+    "_cacheMode": 0,
+    "_enableOutline": false,
+    "_outlineColor": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 255
+    },
+    "_outlineWidth": 2,
+    "_enableShadow": false,
+    "_shadowColor": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 255
+    },
+    "_shadowOffset": {
+      "__type__": "cc.Vec2",
+      "x": 2,
+      "y": 2
+    },
+    "_shadowBlur": 2,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "64+LwjCq9NDaR4pQBYWY6o"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "a4iFa1AsVN0rEKvYEZ2g1P",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "lab_count_share",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 334
+      },
+      {
+        "__id__": 336
+      }
+    ],
+    "_prefab": {
+      "__id__": 338
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 250,
+      "y": -800,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 333
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 335
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 380,
+      "height": 50.4
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "92Tt2dM+5HJ78EHx0HLCMT"
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 333
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 337
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 232,
+      "g": 245,
+      "b": 85,
+      "a": 255
+    },
+    "_string": "",
+    "_horizontalAlign": 1,
+    "_verticalAlign": 1,
+    "_actualFontSize": 40,
+    "_fontSize": 40,
+    "_fontFamily": "Arial",
+    "_lineHeight": 40,
+    "_overflow": 1,
+    "_enableWrapText": false,
+    "_font": null,
+    "_isSystemFontUsed": true,
+    "_spacingX": 0,
+    "_isItalic": false,
+    "_isBold": false,
+    "_isUnderline": false,
+    "_underlineHeight": 2,
+    "_cacheMode": 0,
+    "_enableOutline": false,
+    "_outlineColor": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 255
+    },
+    "_outlineWidth": 2,
+    "_enableShadow": false,
+    "_shadowColor": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 255
+    },
+    "_shadowOffset": {
+      "__type__": "cc.Vec2",
+      "x": 2,
+      "y": 2
+    },
+    "_shadowBlur": 2,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "641QDTHpBA3oXG6QXY2bBL"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "59WMwaInRHcoa8MPdIBGkD",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -8174,7 +8531,7 @@
     },
     "_enabled": true,
     "__prefab": {
-      "__id__": 327
+      "__id__": 341
     },
     "_contentSize": {
       "__type__": "cc.Size",
@@ -8202,7 +8559,7 @@
     },
     "_enabled": true,
     "__prefab": {
-      "__id__": 329
+      "__id__": 343
     },
     "_alignFlags": 45,
     "_target": null,
@@ -8238,7 +8595,7 @@
     },
     "_enabled": true,
     "__prefab": {
-      "__id__": 331
+      "__id__": 345
     },
     "public_bg": {
       "__id__": 2
@@ -8270,18 +8627,12 @@
     "btn_zhuangbei": {
       "__id__": 251
     },
-    "btn_duihuang": {
+    "btn_duihuan": {
       "__id__": 265
     },
     "get_suipian_node": {
       "__id__": 282
     },
-    "btn_look_video": {
-      "__id__": 283
-    },
-    "btn_share": {
-      "__id__": 303
-    },
     "_id": ""
   },
   {
@@ -8298,7 +8649,7 @@
     },
     "_enabled": true,
     "__prefab": {
-      "__id__": 333
+      "__id__": 347
     },
     "playOnLoad": true,
     "_clips": [
@@ -8327,7 +8678,7 @@
     },
     "_enabled": true,
     "__prefab": {
-      "__id__": 335
+      "__id__": 349
     },
     "_id": ""
   },

+ 24 - 12
assets/script/GameManager.ts

@@ -283,25 +283,37 @@ export class GameManager extends Component {
         })
     }
 
-    // 请求同步数
-    public static requestSyncNumber(opt,success_cb=null,fail_cb=null) {
-        http.post(config.API.sync_free_number, opt, (err,data)=>{
-            console.log('请求分享===',data)
+    // 请求用户同步免费
+    public static requestUserSyncFreeNumber(opt,success_cb=null,fail_cb=null) {
+        http.post(config.API.user_sync_free_number, opt, (err,data)=>{
+            // console.log('请求分享===',data)
             if(!err) {
                 let _data = JSON.parse(data)
                 if(_data.code==config.status.SUCCESS) {
-                    if(success_cb) {
-                        success_cb(_data.content)
-                    }
+                    success_cb && success_cb(_data.content)
                 } else {
-                    if(fail_cb) {
-                        fail_cb(_data.code)
-                    }
+                    fail_cb && fail_cb(data.code)
                 }
             } else {
-                if(fail_cb) {
-                    fail_cb(err)
+                fail_cb && fail_cb(err)
+            }
+        })
+    }
+    
+    // 请求用户同步车碎片数
+    public static requestUserSyncCarDebrisNumber(opt, success_cb=null, fail_cb=null) {
+        uiManager.Instance().showLoading()
+        http.post(config.API.user_syc_car_debris_number, opt, (err,data)=>{
+            uiManager.Instance().hideLoading()
+            if(!err) {
+                let _data = JSON.parse(data)
+                if(_data.code==config.status.SUCCESS) {
+                    success_cb && success_cb(_data.content)
+                } else {
+                    fail_cb && fail_cb(data.code)
                 }
+            } else {
+                fail_cb && fail_cb(err)
             }
         })
     }

+ 5 - 3
assets/script/config.ts

@@ -3,7 +3,7 @@ const { ccclass, property } = _decorator;
 
 @ccclass('config')
 export class config  {
-    static debug = false
+    static debug = true
     static gameName = "开局自行车";
     static websocket_domain = config.debug?'wss://snakews.xwrun.com':"wss://snakews.hainanmlwl.com" 
     public static Platform_id = {
@@ -30,7 +30,8 @@ export class config  {
         unlock_number_status: "/snake/user/unlock_number_status",
         feedback: "/snake/user/feedback",
         upload_img: "/tool/file/up_feedback_img",
-        sync_free_number: "/snake/user/sync_free_number",  
+        user_sync_free_number: "/snake/user/sync_free_number",  
+        user_syc_car_debris_number: "/snake/user/syc_car_debris_number",
         msg: "/snakestatic/msg.json",
         rankings: (region_id)=>{
             return `/snakestatic/rankings/${region_id}.json`
@@ -46,6 +47,7 @@ export class config  {
         user_total_receive:"/snake/user/total_receive", //用户累计签到领取
         user_red_dot:"/snake/user/red_dot",
         user_up_red_dot:"/snake/user/up_red_dot",
+        user_expand:"/snake/user/user_expand",          //用户扩展
     }
     public static STATIC_API = {
         sysconfig : "/snakestatic/sysconfig.json",
@@ -181,7 +183,7 @@ export class config  {
         ADS_ID_RESTART:"50u85j05scv25idia2",                //在玩一局
         ADS_ID_SIGN_DOUBLE:"1in5bgcgg9np642ak6",            //签到双倍
         ADS_ID_SIGN_BUQIAN:"ct7255k7es1w97svm4",            //签到补签
-        ADS_ID_GET_SUIPIAN:"",            //获取碎片
+        ADS_ID_GET_SUIPIAN:"23i59fd7sd31n9ctc3",            //获取碎片
     }
     public static WX_CONFIG = {
         SHARE_RELIFE_TITLE:"",            //分享复活标题

+ 19 - 13
assets/script/data.ts

@@ -60,10 +60,7 @@ export class userData{
     public token:string = ""
     public province_name:string = ""
     public city_name:string = ""
-    public update_region_status:number = 1 //1:本周已经设置 0:本周未设置
     public tt_sidebar_reward_status:number = 0 //1:已经领取 0:未领取
-    public free_game_number:number = 0 //今日免费玩游戏次数
-    public share_number:number = 0     //今日分享次数
 }
 
 export class rankData{
@@ -110,14 +107,15 @@ export class user_results{
 }
 
 export class sysConfig{
-    public game_introduction_img:string = ""//游戏介绍
-    public free_ads_number:number = 0  //免费广告数量
-    public free_game_time:number = 0   //免费游戏时间,单位s
-    public free_game_number:number = 0 //今日免费玩游戏次数
-    public share_number:number = 0     //今日分享次数
-    public share_des:string = ''       //分享描述
-    public game_end_prompt:string[] = []     //游戏结束提示
-    public k_region:number = 0         //0关1开
+    public game_introduction_img:string = ""      //游戏介绍
+    public free_ads_number:number = 0             //免费广告数量
+    public free_game_time:number = 0              //免费游戏时间,单位s
+    public free_game_number:number = 0            //今日免费玩游戏次数
+    public share_number:number = 0                //今日分享次数
+    public share_des:string = ''                  //分享描述
+    public game_end_prompt:string[] = []          //游戏结束提示
+    public share_car_number:number = 0            //车详情,获取车碎片,分享和看视频数量
+    public k_region:number = 0                    //0关1开
 }
 
 export class user_free_ads_data{
@@ -133,6 +131,14 @@ export class user_red_dot_data {
     public mail_unread_number:number = 0  //邮件 未读数量 
 }
 
+export class user_expand { 
+    public update_region_status:number = 1        //1:本周已经设置 0:本周未设置
+    public share_car_number:number = 0            //分享获得车碎片次数
+    public video_car_number:number = 0            //看视频获得车碎片次数
+    public free_game_number:number = 0            //今日免费玩游戏次数
+    public share_number:number = 0                //今日分享次数
+}
+
 export enum car_type {
     score = 0,
     suipian = 1,
@@ -166,10 +172,10 @@ export class mail_item_data {
     public user_id:number = 0
     public state:number = 0      // 状态 0:未领取 1:已经领取
     public content:string = ''
-    public rewards_list:mail_rewards_item_data[] = []  // 奖励列表
+    public rewards_list:rewards_item_data[] = []  // 奖励列表
 }
 
-export class mail_rewards_item_data {
+export class rewards_item_data {
     public name:string = ''
     public icon:string = ''
     public quantity:number = 0 //数量

+ 22 - 2
assets/script/manager/dataManager.ts

@@ -107,7 +107,7 @@ export class dataManager  {
 
   // 获取今日用户游戏免费次数
   public static getTodayUserGameFreeCount():number {
-    return userDataManager.user_data.free_game_number
+    return userDataManager.user_expand.free_game_number
   }
 
   // 获取今日分享免费总次数
@@ -117,7 +117,27 @@ export class dataManager  {
 
   // 获取今日用户分享免费次数
   public static getTodayUserShareFreeCount():number {
-    return userDataManager.user_data.share_number
+    return userDataManager.user_expand.share_number
+  }
+
+  // 获取车碎片用户看视频数量
+  public static getCarDebrisUserLookVideoCount():number {
+    return userDataManager.user_expand.video_car_number
+  }
+
+  // 获取车碎片看视频总数量
+  public static getCarDebrisLookVideoTotalCount():number {
+    return tools.sys_config.share_car_number
+  }
+
+  // 获取车碎片用户分享次数
+  public static getCarDebrisUserShareCount():number {
+    return userDataManager.user_expand.share_car_number
+  }
+
+  // 获取车碎片分享总数量
+  public static getCarDebrisShareTotalCount():number {
+    return tools.sys_config.share_car_number
   }
 
 }

+ 49 - 13
assets/script/manager/userDataManager.ts

@@ -1,5 +1,5 @@
 import { _decorator, sys } from 'cc';
-import { user_car_list, user_free_ads_data, userData } from '../data';
+import { user_car_list, user_expand, user_free_ads_data, user_red_dot_data, userData } from '../data';
 import { config } from '../config';
 import { tools } from '../tools';
 import { GameManager } from '../GameManager';
@@ -10,42 +10,78 @@ const { ccclass, property } = _decorator;
 export class userDataManager  {
     public static user_data:userData = null
     public static user_car_list:user_car_list = null
+    public static user_red_dot_data:user_red_dot_data = new user_red_dot_data  //用户红点数据
+    public static user_expand:user_expand = null  //用户扩展
     public static free_ads_data:user_free_ads_data = null
 
     // 今天分享相关
     public static isTodayCanShare():boolean {
-        if(userDataManager.user_data.share_number>=dataManager.getTodayShareFreeTotalCount()) {
+        if(userDataManager.user_expand.share_number>=dataManager.getTodayShareFreeTotalCount()) {
             return false
         }
         return true
     }
 
     public static addTodayShareNumber() {
-        if(userDataManager.user_data.share_number>=dataManager.getTodayShareFreeTotalCount()) {
+        if(userDataManager.user_expand.share_number>=dataManager.getTodayShareFreeTotalCount()) {
             return 
         }
-        userDataManager.user_data.share_number+=1
-        console.log('同步接口  今天分享数:',userDataManager.user_data.share_number)
-        let opt = {'share_number':userDataManager.user_data.share_number}
-        GameManager.requestSyncNumber(opt)
+        userDataManager.user_expand.share_number+=1
+        // console.log('同步接口  今天分享数:',userDataManager.user_expand.share_number)
+        let opt = {'share_number':userDataManager.user_expand.share_number}
+        GameManager.requestUserSyncFreeNumber(opt)
     }
 
     // 每天免费玩游戏
     public static isTodayCanFreePlayGame():boolean {
-        if(userDataManager.user_data.free_game_number>=dataManager.getTodayGameFreeTotalCount()) {
+        if(userDataManager.user_expand.free_game_number>=dataManager.getTodayGameFreeTotalCount()) {
             return false
         }
         return true
     }
 
     public static addTodayPlayGameNumber() {
-        if(userDataManager.user_data.free_game_number>=dataManager.getTodayGameFreeTotalCount()) {
+        if(userDataManager.user_expand.free_game_number>=dataManager.getTodayGameFreeTotalCount()) {
             return
         }
-        userDataManager.user_data.free_game_number+=1
-        // console.log('同步接口  今天玩游戏数:',userDataManager.user_data.free_game_number)
-        let opt = {'free_game_number':userDataManager.user_data.free_game_number}
-        GameManager.requestSyncNumber(opt)
+        userDataManager.user_expand.free_game_number+=1
+        // console.log('同步接口  今天玩游戏数:',userDataManager.user_expand.free_game_number)
+        let opt = {'free_game_number':userDataManager.user_expand.free_game_number}
+        GameManager.requestUserSyncFreeNumber(opt)
+    }
+
+    // 获取车碎片,看视频相关
+    public static isGetCarDebrisLookVideo():boolean {
+        if(userDataManager.user_expand.video_car_number>=dataManager.getCarDebrisLookVideoTotalCount()) {
+            return false
+        }
+        return true
+    }
+
+    public static addGetCarDebrisLookVideoNumber(car_id:number,success_cb) {
+        if(userDataManager.user_expand.video_car_number>=dataManager.getCarDebrisLookVideoTotalCount()) {
+            return
+        }
+        userDataManager.user_expand.video_car_number+=1
+        let opt = {'stype':1,'car_id':car_id}
+        GameManager.requestUserSyncCarDebrisNumber(opt,success_cb)
+    }
+
+    // 获取车碎片,分享相关
+    public static isGetCarDebrisShare():boolean {
+        if(userDataManager.user_expand.share_car_number>=dataManager.getCarDebrisShareTotalCount()) {
+            return false
+        }
+        return true
+    }
+
+    public static addGetCarDebrisShareNumber(car_id:number,success_cb) {
+        if(userDataManager.user_expand.share_car_number>=dataManager.getCarDebrisShareTotalCount()) {
+            return
+        }
+        userDataManager.user_expand.share_car_number+=1
+        let opt = {'stype':2,'car_id':car_id}
+        GameManager.requestUserSyncCarDebrisNumber(opt,success_cb)
     }
 
     // 用户免广告相关

+ 0 - 1
assets/script/tools.ts

@@ -15,7 +15,6 @@ export class tools  {
     public static all_car_list:car_item_data[] =[]
     public static all_car_map:Map<number,car_item_data> = new Map
     public static all_car_page_list = []
-    public static user_red_dot_data:user_red_dot_data = new user_red_dot_data
     public static init(n:Node){
         tools.parent = n
     }

+ 3 - 2
assets/script/ui/announcement.ts

@@ -5,6 +5,7 @@ import { http } from '../http';
 import { config } from '../config';
 import { GameManager } from '../GameManager';
 import { ClientEvent } from '../lib/clientEvent';
+import { userDataManager } from '../manager/userDataManager';
 const { ccclass, property } = _decorator;
 
 @ccclass('announcement')
@@ -59,11 +60,11 @@ export class announcement extends base_ui {
     }
 
     private setRead() {
-        if(tools.user_red_dot_data.bulletin_red_dot==0) {
+        if(userDataManager.user_red_dot_data.bulletin_red_dot==0) {
             return
         }
         GameManager.requestUserSetReadRedDot(config.RED_DOT_TYPE.announcement, ()=>{
-            tools.user_red_dot_data.bulletin_red_dot = 0
+            userDataManager.user_red_dot_data.bulletin_red_dot = 0
             ClientEvent.dispatchEvent(config.UI_EVENT.UPDATE_RED_DOT_STATUS,config.RED_DOT_TYPE.announcement)
         })
     }

+ 20 - 12
assets/script/ui/car_info/car_info.ts

@@ -5,6 +5,7 @@ import { imageCacheManager } from '../../manager/imageCacheManager';
 import { userDataManager } from '../../manager/userDataManager';
 import { car_info_shuxing } from './car_info_shuxing';
 import { dataManager } from '../../manager/dataManager';
+import { car_info_get_suipian } from './car_info_get_suipian';
 const { ccclass, property } = _decorator;
 
 @ccclass('car_info')
@@ -21,13 +22,12 @@ export class car_info extends base_ui {
 
     @property(Node) operate_btn_node:Node = null
     @property(Node) btn_zhuangbei:Node = null
-    @property(Node) btn_duihuang:Node = null
+    @property(Node) btn_duihuan:Node = null
 
     @property(Node) get_suipian_node:Node = null
-    @property(Node) btn_look_video:Node = null
-    @property(Node) btn_share:Node = null
 
     private m_data:car_item_data = null
+    private m_is_jiesuo:boolean = false
     private m_zhuangbei_cb = null
     private m_duihuan_cb = null
     private m_look_video_cb = null
@@ -44,19 +44,21 @@ export class car_info extends base_ui {
             this.close()
             this.m_zhuangbei_cb && this.m_zhuangbei_cb(this)
         })
-        this.onButtonListen(this.btn_duihuang, ()=>{
+        this.onButtonListen(this.btn_duihuan, ()=>{
             this.m_duihuan_cb && this.m_duihuan_cb(this)
         })
-        this.onButtonListen(this.btn_look_video, ()=>{
+
+        this.get_suipian_node.getComponent(car_info_get_suipian).initView(()=>{
             this.m_look_video_cb && this.m_look_video_cb(this)
-        })
-        this.onButtonListen(this.btn_share, ()=>{
+        }, ()=>{
             this.m_share_cb && this.m_share_cb(this)
         })
+        this.setCarSuipianData()
     }
 
     public initView(data:car_item_data, is_jiesuo:boolean) {
         this.m_data = data
+        this.m_is_jiesuo = is_jiesuo
         if(is_jiesuo) {
             this.img_suo.active = false
             this.lab_car_name.active = false
@@ -97,19 +99,19 @@ export class car_info extends base_ui {
             } else {
                 this.btn_zhuangbei.active = true
             }
-            this.btn_duihuang.active = false
+            this.btn_duihuan.active = false
         } else {
             if(data.stype==car_type.suipian) {
                 if(dataManager.userCarListHavCar(data.id)) {
                     this.showOperateNode(true)
                     this.btn_zhuangbei.active = true
-                    this.btn_duihuang.active = false
+                    this.btn_duihuan.active = false
                 } else {
                     let cur_count = data.temp_bag_list_item_data.quantity
                     if(cur_count-data.unlock_points>=0) {
                         this.showOperateNode(true)
                         this.btn_zhuangbei.active = false
-                        this.btn_duihuang.active = true
+                        this.btn_duihuan.active = true
                     } else {
                         // 看视频/分享 碎片
                         this.showOperateNode(false)
@@ -129,6 +131,10 @@ export class car_info extends base_ui {
         this.m_share_cb = share_cb
     }
 
+    public setCarSuipianData() {
+        this.get_suipian_node.getComponent(car_info_get_suipian).setData()
+    }
+
     public closeSelf() {
         this.close()
     }
@@ -137,6 +143,10 @@ export class car_info extends base_ui {
         return this.m_data
     }
 
+    public getIsJiesuo():boolean {
+        return this.m_is_jiesuo
+    }
+
     private showOperateNode(is_show:boolean) {
         if(is_show) {
             this.operate_btn_node.active = true
@@ -145,8 +155,6 @@ export class car_info extends base_ui {
             this.operate_btn_node.active = false
             this.get_suipian_node.active = true
         }
-        //注意注意注意注意注意
-        this.get_suipian_node.active = false
     }
 }
 

+ 40 - 0
assets/script/ui/car_info/car_info_get_suipian.ts

@@ -0,0 +1,40 @@
+import { _decorator, Component, Label, Node } from 'cc';
+import { base_ui } from '../../fw/base_ui';
+import { dataManager } from '../../manager/dataManager';
+const { ccclass, property } = _decorator;
+
+@ccclass('car_info_get_suipian')
+export class car_info_get_suipian extends base_ui {
+    @property(Node) btn_look_video:Node = null
+    @property(Node) btn_share:Node = null
+    @property(Node) lab_look_video_count:Node = null
+    @property(Node) lab_share_count:Node = null
+
+    private m_look_video_cb = null
+    private m_share_cb = null
+
+    start() {
+        this.onButtonListen(this.btn_look_video, ()=>{
+            this.m_look_video_cb && this.m_look_video_cb(this)
+        })
+        this.onButtonListen(this.btn_share, ()=>{
+            this.m_share_cb && this.m_share_cb(this)
+        })
+    }
+
+    initView(look_video_cb, share_cb) {
+        this.m_look_video_cb = look_video_cb
+        this.m_share_cb = share_cb
+    }
+
+    setData() {
+        let look_video_count = dataManager.getCarDebrisLookVideoTotalCount() - dataManager.getCarDebrisUserLookVideoCount()
+        if(look_video_count<0){ look_video_count=0 }
+        this.lab_look_video_count.getComponent(Label).string = `今日剩余${look_video_count}次`
+
+        let share_count = dataManager.getCarDebrisShareTotalCount() - dataManager.getCarDebrisUserShareCount()
+        if(share_count<0){ share_count=0 }
+        this.lab_share_count.getComponent(Label).string = `今日剩余${share_count}次`
+    }
+}
+

+ 9 - 0
assets/script/ui/car_info/car_info_get_suipian.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "fe621c55-38a8-47f1-a75c-78693b9ddf20",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 57 - 5
assets/script/ui/car_lib/car_lib_bottom.ts

@@ -6,9 +6,11 @@ import { car_lib_page_item } from './car_lib_page_item';
 import { uiManager } from '../../manager/uiManager';
 import { config } from '../../config';
 import { GameManager } from '../../GameManager';
-import { bag_type, car_type } from '../../data';
+import { bag_type, car_type, rewards_item_data } from '../../data';
 import { car_info } from '../car_info/car_info';
 import { SdkUtil } from '../../sdkUtil';
+import { userDataManager } from '../../manager/userDataManager';
+import { reward_tips_view } from '../reward_tips_view/reward_tips_view';
 const { ccclass, property } = _decorator;
 
 @ccclass('car_lib_bottom')
@@ -24,6 +26,7 @@ export class car_lib_bottom extends base_ui {
     private num_total_count:number = 1
     private current_select_list_item:car_lib_list_item = null
 
+    private m_car_suipian_list = null
     private m_click_item_cb = null
 
     private game_status_parent:Node = null
@@ -53,11 +56,17 @@ export class car_lib_bottom extends base_ui {
 
     public init(click_item_cb) {
         this.m_click_item_cb = click_item_cb
+        this.requestData()
+    }
+
+    private requestData() {
         this.num_total_count = tools.all_car_page_list.length
         this.updateNumStatus()
 
+        this.pageView.getComponent(PageView).removeAllPages()
         let id = bag_type.car_suipian
         GameManager.requestBagList(id, (car_suipian_list)=>{
+            this.m_car_suipian_list = car_suipian_list
             // console.log('car_suipian_list=',car_suipian_list)
             for (let index = 0; index < this.num_total_count; index++) {
                 let page = instantiate(this.pageView_page_item)
@@ -127,18 +136,61 @@ export class car_lib_bottom extends base_ui {
             })
             car_info_component.initGetSuipianNodeCallback((v:car_info)=>{
                 // 看视频
+                if(userDataManager.isGetCarDebrisLookVideo()==false) {
+                    return uiManager.showToast('今日看视频已到上限')
+                }
                 GameManager.showVideoAd(config.ADS_TYPE.GAME_GET_SUIPIAN, ()=>{
-
-                })
+                    userDataManager.addGetCarDebrisLookVideoNumber(v.getData().id, (data)=>{
+                        this.getCarDebrisOperation(data, list_item, v)
+                    })
+                }) 
             }, (v:car_info)=>{
                 // 分享
-                SdkUtil.shareGame("","",()=>{
-                    
+                if(userDataManager.isGetCarDebrisShare()==false) {
+                    return uiManager.showToast('今日分享已到上限')
+                }
+                SdkUtil.shareGame("",tools.sys_config.share_des,(r)=>{
+                    if(r==true) {
+                        userDataManager.addGetCarDebrisShareNumber(v.getData().id, (data)=>{
+                            this.getCarDebrisOperation(data, list_item, v)
+                        })
+                    }
                 })
             })
         })
     }
 
+    private getCarDebrisOperation(data, list_item:car_lib_list_item, v:car_info) {
+        // console.log('data=',data)
+        let car_info_data = v.getData()
+        car_info_data.temp_bag_list_item_data.quantity+=data.quantity
+
+        // 解锁了
+        if(car_info_data.temp_bag_list_item_data.quantity>=car_info_data.unlock_points) {
+            // 关闭车信息
+            v.getComponent(car_info).closeSelf()
+            // 列表更新数据
+            this.requestData()
+            // 兑换弹框
+            GameManager.showExchangeCarView(car_info_data.id, data.icon, car_info_data.temp_bag_list_item_data.quantity, ()=>{
+                list_item.setJiesuoSelectedStatus()
+            })
+            return
+        }
+
+        // 奖励弹框
+        uiManager.Instance().showUi(config.UI.ui_reward_tips_view, null, (node:Node)=>{
+            node.getComponent(reward_tips_view).initView([data])
+            
+            // 车信息更新数据
+            v.initView(car_info_data,v.getIsJiesuo())
+            v.setCarSuipianData()
+
+            // 列表更新数据
+            this.requestData()
+        })
+    }
+
     public initGameStatusParent(parent:Node){
         this.game_status_parent = parent
     }

+ 2 - 2
assets/script/ui/car_lib/car_lib_top.ts

@@ -24,7 +24,7 @@ export class car_lib_top extends Component {
     protected start(): void {
         if(tools.sys_config.k_region==1) {
             uiManager.Instance().onButtonListen(this.btn_region,()=>{
-                if(userDataManager.user_data.update_region_status==1) {
+                if(userDataManager.user_expand.update_region_status==1) {
                     uiManager.Instance().showUi(config.UI.ui_tips_view)
                     return
                 }
@@ -66,7 +66,7 @@ export class car_lib_top extends Component {
         GameManager.requestUserSetRegion(data.id, 2, (d)=>{
             uiManager.showToast('修改成功')
             //更改数据
-            userDataManager.user_data.update_region_status = d.update_region_status
+            userDataManager.user_expand.update_region_status = d.update_region_status
             //关闭
             obj.closeSelf()
         },true)

+ 5 - 5
assets/script/ui/home/home.ts

@@ -122,11 +122,11 @@ export class home extends Component {
                 }
                 break;
             case config.MSG_TYPE.announcement:
-                tools.user_red_dot_data.bulletin_red_dot = msg.bulletin_red_dot
+                userDataManager.user_red_dot_data.bulletin_red_dot = msg.bulletin_red_dot
                 this.updateAnnouncementRedDotStatus()
                 break
             case config.MSG_TYPE.mail:
-                tools.user_red_dot_data.mail_unread_number = msg.mail_unread_number
+                userDataManager.user_red_dot_data.mail_unread_number = msg.mail_unread_number
                 this.updateMailRedDotStatus()
                 break
             default:
@@ -135,7 +135,7 @@ export class home extends Component {
     }
 
     private updateAnnouncementRedDotStatus() {
-        if(tools.user_red_dot_data.bulletin_red_dot==1) {
+        if(userDataManager.user_red_dot_data.bulletin_red_dot==1) {
             this.modules.getComponent(home_modules).showRedDotGonggao(true)
         } else {
             this.modules.getComponent(home_modules).showRedDotGonggao(false)
@@ -143,7 +143,7 @@ export class home extends Component {
     }
 
     private updateSignRedDotStatus() {
-        if(tools.user_red_dot_data.sign_red_dot==1) {
+        if(userDataManager.user_red_dot_data.sign_red_dot==1) {
             this.modules.getComponent(home_modules).showRedDotQiandao(true)
         } else {
             this.modules.getComponent(home_modules).showRedDotQiandao(false)
@@ -151,7 +151,7 @@ export class home extends Component {
     }
 
     private updateMailRedDotStatus() {
-        if(tools.user_red_dot_data.mail_unread_number>0) {
+        if(userDataManager.user_red_dot_data.mail_unread_number>0) {
             this.modules.getComponent(home_modules).showRedDotYoujian(true)
         } else {
             this.modules.getComponent(home_modules).showRedDotYoujian(false)

+ 3 - 2
assets/script/ui/home/home_modules.ts

@@ -4,6 +4,7 @@ import { uiManager } from '../../manager/uiManager';
 import { config } from '../../config';
 import { home_modules_more } from './home_modules_more';
 import { tools } from '../../tools';
+import { userDataManager } from '../../manager/userDataManager';
 const { ccclass, property } = _decorator;
 
 @ccclass('home_modules')
@@ -47,11 +48,11 @@ export class home_modules extends base_ui {
     }
 
     public init() {
-        let data = tools.user_red_dot_data
+        let data = userDataManager.user_red_dot_data
         this.showRedDotQiandao(data.sign_red_dot==1?true:false)
         this.showRedDotGonggao(data.bulletin_red_dot==1?true:false)
 
-        let is_mail_read = tools.user_red_dot_data.mail_unread_number>0?true:false
+        let is_mail_read = userDataManager.user_red_dot_data.mail_unread_number>0?true:false
         this.showRedDotYoujian(is_mail_read)
     }
 

+ 34 - 26
assets/script/ui/loading_view.ts

@@ -67,41 +67,47 @@ export class loading_view extends Component {
                     break
                 case 0.2:
                     this.m_pause_status = true
-                    this.initSysConfig(()=>{
+                    this.initUserExpand(()=>{
                         this.m_pause_status = false
                     })
                     break
                 case 0.3:
                     this.m_pause_status = true
-                    this.initMineRank(()=>{
+                    this.initSysConfig(()=>{
                         this.m_pause_status = false
                     })
                     break
                 case 0.4:
                     this.m_pause_status = true
-                    this.initUserCarList(()=>{
+                    this.initMineRank(()=>{
                         this.m_pause_status = false
                     })
                     break
                 case 0.5:
                     this.m_pause_status = true
-                    this.initLevels(()=>{
+                    this.initUserCarList(()=>{
                         this.m_pause_status = false
                     })
                     break
                 case 0.6:
                     this.m_pause_status = true
-                    this.initAllCarList(()=>{
+                    this.initLevels(()=>{
                         this.m_pause_status = false
                     })
                     break
                 case 0.7:
                     this.m_pause_status = true
-                    this.initUserRedDotData(()=>{
+                    this.initAllCarList(()=>{
                         this.m_pause_status = false
                     })
                     break
                 case 0.8:
+                    this.m_pause_status = true
+                    this.initUserRedDotData(()=>{
+                        this.m_pause_status = false
+                    })
+                    break
+                case 0.9:
                     this.m_pause_status = true
                     imageCacheManager.start_cache(()=>{
                         this.m_pause_status = false
@@ -207,6 +213,20 @@ export class loading_view extends Component {
         })
     }
 
+    private initUserExpand(cb) {
+        http.post(config.API.user_expand, null, (err,d)=>{
+            if(!err) {
+                let data = JSON.parse(d)
+                if(data.code===config.status.SUCCESS){
+                    userDataManager.user_expand = data.content
+                    cb && cb()
+                }
+            } else{
+                console.log("initUserExpand err",err)
+            }
+        },'GET')
+    }
+
     private initSysConfig(cb) {
         http.get(config.STATIC_API.sysconfig,(err,d)=>{
             if(!err){
@@ -214,9 +234,7 @@ export class loading_view extends Component {
                 if(data.code===config.status.SUCCESS){
                     tools.sys_config = data.content
                     // console.log('系统配置=',tools.sys_config)
-                    if(cb!=null) {
-                        cb()
-                    }
+                    cb && cb()
                 }
             }else{
                 console.log("initSysConfig err",err)
@@ -227,9 +245,7 @@ export class loading_view extends Component {
     private initMineRank(cb) {
         GameManager.requestMineRank(0, (d_content)=>{
             tools.mine_rank_data = d_content
-            if(cb!=null) {
-                cb()
-            }
+            cb && cb()
         })
     }
 
@@ -237,9 +253,7 @@ export class loading_view extends Component {
         GameManager.requestUserCarList((d_content)=>{
             userDataManager.user_car_list = d_content
             // console.log('user_car_list=',userDataManager.user_car_list)
-            if(cb!=null) {
-                cb()
-            }
+            cb && cb()
         })
     }
 
@@ -254,9 +268,7 @@ export class loading_view extends Component {
                     // console.log("tools.levels",tools.levels)
                     // console.log("tools.tpl_list",tools.tpl_list)
                     // console.log("tools.game_config",tools.game_config)
-                    if(cb!=null) {
-                        cb()
-                    }
+                    cb && cb()
                 }
             }else{
                 console.log("initLevels err",err)
@@ -276,9 +288,7 @@ export class loading_view extends Component {
                         let group = tools.all_car_list.slice(i, i + slice_size)
                         tools.all_car_page_list.push(group)
                     }
-                    if(cb!=null) {
-                        cb()
-                    }
+                    cb && cb()
                 }
             }else{
                 console.log("init all_car_list err",err)
@@ -291,11 +301,9 @@ export class loading_view extends Component {
             if(!err){
                 let data = JSON.parse(d)
                 if(data.code===config.status.SUCCESS){
-                    tools.user_red_dot_data = data.content
-                    // console.log("tools.user_red_dot_data",tools.user_red_dot_data)
-                    if(cb!=null) {
-                        cb()
-                    }
+                    userDataManager.user_red_dot_data = data.content
+                    // console.log("user_red_dot_data",userDataManager.user_red_dot_data)
+                    cb && cb()
                 }
             }else{
                 console.log("init userRedDotData err",err)

+ 4 - 3
assets/script/ui/mailbox/mailbox.ts

@@ -9,6 +9,7 @@ import { mailbox_details } from './mailbox_details';
 import { reward_tips_view } from '../reward_tips_view/reward_tips_view';
 import { ClientEvent } from '../../lib/clientEvent';
 import { tools } from '../../tools';
+import { userDataManager } from '../../manager/userDataManager';
 const { ccclass, property } = _decorator;
 
 @ccclass('mailbox')
@@ -157,7 +158,7 @@ export class mailbox extends base_ui {
 
     // 领取邮件 stype 0:普通领取 1:一键领取
     private requestRetrieve(stype:number, id:number, success_cb) {
-        if(stype==1&&tools.user_red_dot_data.mail_unread_number==0) {
+        if(stype==1&&userDataManager.user_red_dot_data.mail_unread_number==0) {
             return uiManager.showToast('邮件已全部领取')
         }
         let opt = {'stype':stype, 'id':id}
@@ -181,9 +182,9 @@ export class mailbox extends base_ui {
 
     private retrieveLaterRedDotHandle(stype:number) {
         if(stype==1) {
-            tools.user_red_dot_data.mail_unread_number = 0
+            userDataManager.user_red_dot_data.mail_unread_number = 0
         } else {
-            tools.user_red_dot_data.mail_unread_number -=1
+            userDataManager.user_red_dot_data.mail_unread_number -=1
         }
         ClientEvent.dispatchEvent(config.UI_EVENT.UPDATE_RED_DOT_STATUS,config.RED_DOT_TYPE.mail)
     }

+ 4 - 4
assets/script/ui/mailbox/mailbox_reward_item.ts

@@ -1,5 +1,5 @@
 import { _decorator, Component, Label, Node, Sprite } from 'cc';
-import { mail_rewards_item_data } from '../../data';
+import { rewards_item_data } from '../../data';
 import { tools } from '../../tools';
 const { ccclass, property } = _decorator;
 
@@ -10,9 +10,9 @@ export class mailbox_reward_item extends Component {
     @property(Node) lab_count:Node = null
     @property(Node) lab_name:Node = null
 
-    private m_data:mail_rewards_item_data = null
+    private m_data:rewards_item_data = null
     
-    initView(data:mail_rewards_item_data, is_receive:boolean) {
+    initView(data:rewards_item_data, is_receive:boolean) {
         this.m_data = data
         tools.loadRemoteImg(data.icon, (d)=>{
             this.img_icon.getComponent(Sprite).spriteFrame = d.sf
@@ -23,7 +23,7 @@ export class mailbox_reward_item extends Component {
         this.img_icon_mask.active = is_receive
     }
 
-    public getData():mail_rewards_item_data {
+    public getData():rewards_item_data {
         return this.m_data
     }
 }

+ 2 - 2
assets/script/ui/reward_tips_view/reward_tips_item.ts

@@ -1,6 +1,6 @@
 import { _decorator, Component, Label, Node, Sprite } from 'cc';
 import { tools } from '../../tools';
-import { mail_rewards_item_data } from '../../data';
+import { rewards_item_data } from '../../data';
 const { ccclass, property } = _decorator;
 
 @ccclass('reward_tips_item')
@@ -9,7 +9,7 @@ export class reward_tips_item extends Component {
     @property(Node) lab_name:Node = null
     @property(Node) lab_count:Node = null
 
-    initView(data:mail_rewards_item_data) {
+    initView(data:rewards_item_data) {
         tools.loadRemoteImg(data.icon, (r)=>{
             this.img_icon.getComponent(Sprite).spriteFrame = r.sf
         })

+ 2 - 2
assets/script/ui/reward_tips_view/reward_tips_view.ts

@@ -1,6 +1,6 @@
 import { __private, _decorator, Component, instantiate, Layout, Node, Prefab, UITransform, Widget } from 'cc';
 import { base_ui } from '../../fw/base_ui';
-import { mail_rewards_item_data } from '../../data';
+import { rewards_item_data } from '../../data';
 import { reward_tips_item } from './reward_tips_item';
 const { ccclass, property } = _decorator;
 
@@ -16,7 +16,7 @@ export class reward_tips_view extends base_ui {
         })
     }
 
-    initView(data_list:mail_rewards_item_data[]) {
+    initView(data_list:rewards_item_data[]) {
         this.list_content.removeAllChildren()
         let count = data_list.length
         if(count==0) { return }

+ 2 - 1
assets/script/ui/sign_view/sign_view.ts

@@ -10,6 +10,7 @@ import { GameManager } from '../../GameManager';
 import { ClientEvent } from '../../lib/clientEvent';
 import { tools } from '../../tools';
 import { uiManager } from '../../manager/uiManager';
+import { userDataManager } from '../../manager/userDataManager';
 const { ccclass, property } = _decorator;
 
 @ccclass('sign_view')
@@ -136,7 +137,7 @@ export class sign_view extends base_ui {
         }
         
         if(is_sign_all) {
-            tools.user_red_dot_data.sign_red_dot = 0
+            userDataManager.user_red_dot_data.sign_red_dot = 0
             ClientEvent.dispatchEvent(config.UI_EVENT.UPDATE_RED_DOT_STATUS,config.RED_DOT_TYPE.sign)
         }
     }

+ 2 - 2
settings/v2/packages/information.json

@@ -7,7 +7,7 @@
       "enable": true,
       "customSplash": {
         "complete": true,
-        "form": "https://creator-api.cocos.com/api/form/show?sid=03d76cb652aad5a52ddc8d5cc6571dac"
+        "form": "https://creator-api.cocos.com/api/form/show?sid=8e125ea0415dad462fae4bbdd116626f"
       }
     },
     "removeSplash": {
@@ -16,7 +16,7 @@
       "enable": true,
       "removeSplash": {
         "complete": true,
-        "form": "https://creator-api.cocos.com/api/form/show?sid=03d76cb652aad5a52ddc8d5cc6571dac"
+        "form": "https://creator-api.cocos.com/api/form/show?sid=8e125ea0415dad462fae4bbdd116626f"
       }
     }
   }