|
|
@@ -1,1368 +1,1438 @@
|
|
|
-var reGameStates = require('GameStates');
|
|
|
-var AConfig = require('../Config');
|
|
|
+var reGameStates = require('GameStates')
|
|
|
+var AConfig = require('../Config')
|
|
|
|
|
|
-import utils from "../Network/netUtils";
|
|
|
-import GameNet from "../Network/GameNet"
|
|
|
-import gameToast from "../Network/gameToast"
|
|
|
+import utils from '../Network/netUtils'
|
|
|
+import GameNet from '../Network/GameNet'
|
|
|
+import gameToast from '../Network/gameToast'
|
|
|
|
|
|
//全局数据类
|
|
|
cc.Class({
|
|
|
- extends: cc.Component,
|
|
|
- properties: {
|
|
|
- //记录全部道路的index
|
|
|
- GameData_highwayIndex: {
|
|
|
- default: [],
|
|
|
- type: [cc.Integer],
|
|
|
- visible: false,
|
|
|
- serializable: false,
|
|
|
- },
|
|
|
-
|
|
|
- //记录建筑物存储的信息
|
|
|
- GameData_buildings: {
|
|
|
- default: [],
|
|
|
- visible: false,
|
|
|
- serializable: false,
|
|
|
- },
|
|
|
- HighWayPrefabs: cc.Prefab,
|
|
|
- //MyMapNode
|
|
|
- //建筑物的节点
|
|
|
- BuildingsParent: {
|
|
|
- default: null,
|
|
|
- type: cc.Node,
|
|
|
- },
|
|
|
- ManageUI: {
|
|
|
- default: null,
|
|
|
- type: cc.Node,
|
|
|
- },
|
|
|
-
|
|
|
- GameVersion: {
|
|
|
- default: -1,
|
|
|
- type: cc.Integer,
|
|
|
- },
|
|
|
-
|
|
|
- //读取数据
|
|
|
- readData: {
|
|
|
- default: null,
|
|
|
- visible: false,
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
- * 接口
|
|
|
- * todo cnt和snb 由钱包读取
|
|
|
- */
|
|
|
- CNT: {
|
|
|
- default: 0,
|
|
|
- visible: false,
|
|
|
- },
|
|
|
- SNB: {
|
|
|
- default: 0,
|
|
|
- visible: false,
|
|
|
- },
|
|
|
- //站内收益
|
|
|
- CNTDrawBalance: {
|
|
|
- default: 0,
|
|
|
- visible: false,
|
|
|
- },
|
|
|
-
|
|
|
- //读取的土地文件
|
|
|
- ConfigLand: {
|
|
|
- default: null,
|
|
|
- visible: false
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- toast: null,
|
|
|
- scheduleObj: null,
|
|
|
- toastCallback: null,
|
|
|
- isStart: true,
|
|
|
- isInit: false,
|
|
|
-
|
|
|
- /**
|
|
|
- * 限制重复触发支付, 正在支付中转态,
|
|
|
- */
|
|
|
- isPlayingCnt: false,
|
|
|
- isPlayingSnb: false,
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 处理请求
|
|
|
- */
|
|
|
- //现在多次触发
|
|
|
- isOnAddFruit: false,
|
|
|
- isOnSaleFruit: false,
|
|
|
- isOnGrantFruit: false,
|
|
|
-
|
|
|
- //自动存储数据
|
|
|
- AutoSaveData: null
|
|
|
-
|
|
|
+ extends: cc.Component,
|
|
|
+ properties: {
|
|
|
+ //记录全部道路的index
|
|
|
+ GameData_highwayIndex: {
|
|
|
+ default: [],
|
|
|
+ type: [cc.Integer],
|
|
|
+ visible: false,
|
|
|
+ serializable: false,
|
|
|
},
|
|
|
- onLoad() {
|
|
|
- //初始化GameData全局变量
|
|
|
- GlobalD.GameData = this;
|
|
|
- this.GameConfig();
|
|
|
- },
|
|
|
- GameConfig() {
|
|
|
- this.AddBuildingCost = 5;
|
|
|
- this.RemoveBuildingCost = 5;
|
|
|
|
|
|
- //
|
|
|
- this.Dapp = {
|
|
|
- UserInfo: null
|
|
|
- }
|
|
|
+ //记录建筑物存储的信息
|
|
|
+ GameData_buildings: {
|
|
|
+ default: [],
|
|
|
+ visible: false,
|
|
|
+ serializable: false,
|
|
|
},
|
|
|
- start() {
|
|
|
- cc.loader.loadRes("prefab/gameToast", function (err, texture) {
|
|
|
- this.toast = cc.instantiate(texture);
|
|
|
- this.toast.parent = cc.find("Canvas/UICamera");
|
|
|
- this.toast.zIndex = 999;
|
|
|
- this.toast.active = false;
|
|
|
- this.scheduleObj = this.schedule(() => {
|
|
|
- this.updateToast();
|
|
|
- }, 1);
|
|
|
- }.bind(this));
|
|
|
-
|
|
|
- this._tiledMap = GlobalD.TiledMap._tiledMap;
|
|
|
- //调用初始化dapp
|
|
|
- this.isDebugMode(GlobalD.dapp);
|
|
|
+ HighWayPrefabs: cc.Prefab,
|
|
|
+ //MyMapNode
|
|
|
+ //建筑物的节点
|
|
|
+ BuildingsParent: {
|
|
|
+ default: null,
|
|
|
+ type: cc.Node,
|
|
|
},
|
|
|
- /**
|
|
|
- * 根据 不存在dapp 的话,使用本地测试
|
|
|
- * @param {*} bInit
|
|
|
- */
|
|
|
- isDebugMode: function (bInit) {
|
|
|
- if (bInit) {
|
|
|
- //读取网络数据
|
|
|
- try {
|
|
|
- GlobalD.dapp.cntBalance().then((cntBalance) => {
|
|
|
- //会延迟返回
|
|
|
- // console.log("获取cnt:" + cntBalance) // string, 精度18,需要自行处理省略几位小数
|
|
|
- GlobalD.GameData.SetCNT(cntBalance);
|
|
|
- });
|
|
|
- } catch (err) {
|
|
|
- console.error(err) // 初始化失败,运行环境不是钱包环境
|
|
|
- }
|
|
|
- //登录时候已经初始化好snb了
|
|
|
- this.SNB = GlobalD.UserInfo.snb;
|
|
|
-
|
|
|
- this.readData = userData.readData;
|
|
|
- // cc.log('playerPullInfo 读取到数据?:', this.readData)
|
|
|
- this.InitNextworkData();
|
|
|
- this.InitSceneInfo();
|
|
|
-
|
|
|
- // 自动存储数据
|
|
|
- /**
|
|
|
- * todo 如果退出游戏,触发一次存储。
|
|
|
- */
|
|
|
- this.AutoSaveData = function () {
|
|
|
- this.pushData(true);
|
|
|
- };
|
|
|
- this.schedule(this.AutoSaveData, 15);
|
|
|
- } else {
|
|
|
- // 清除
|
|
|
- cc.log("本地数据重新开始,并且不初始化");
|
|
|
- // this.onClearAllData();
|
|
|
- this.Init();
|
|
|
- this.InitSceneInfo();
|
|
|
- this.AutoSaveData = function () {
|
|
|
- this.pushData(false);
|
|
|
- };
|
|
|
- this.schedule(this.AutoSaveData, 10);
|
|
|
- }
|
|
|
+ ManageUI: {
|
|
|
+ default: null,
|
|
|
+ type: cc.Node,
|
|
|
},
|
|
|
|
|
|
- getData: function () {
|
|
|
- //如果开局没有读取到网络数据,就这里初始化
|
|
|
- if (userData.readData == null) {
|
|
|
- cc.log("本地数据:", cc.sys.localStorage.getItem('userdata'));
|
|
|
- let userdata = cc.sys.localStorage.getItem('userdata');
|
|
|
- if (userdata) {
|
|
|
- this.readData = JSON.parse(userdata);
|
|
|
- }
|
|
|
- this.Init();
|
|
|
- this.InitSceneInfo();
|
|
|
- } else {
|
|
|
- this.readData = userData.readData;
|
|
|
- cc.log('读取到数据?:', this.readData)
|
|
|
- this.Init();
|
|
|
- this.InitSceneInfo();
|
|
|
- }
|
|
|
-
|
|
|
- },
|
|
|
-
|
|
|
- InitSceneInfo() {
|
|
|
- //根据顺序生成
|
|
|
- //初始化时间ui
|
|
|
- cc.find("GameNode/ManageTimer").getComponent('ManageTimer').Init();
|
|
|
- //初始化金钱ui,gold,diamond, cnt,snb,
|
|
|
- cc.find("GameNode/ManageGolden").getComponent('ManageGolden').InitManageGlodenUI();
|
|
|
- // //初始化地图物件
|
|
|
- // cc.find("GameNode/ManageMap").getComponent('ManageMap').InitManageMap();
|
|
|
- GlobalD.TiledMap.onInitSolid();
|
|
|
-
|
|
|
- //初始化生成房屋
|
|
|
- /**
|
|
|
- * dapp设定: 如果固定土地冲突,删除冲突的建筑和回收仓库
|
|
|
- */
|
|
|
- this.ManageUI.getComponent('ManageBuildings').InitBuildings();
|
|
|
-
|
|
|
- //初始化道路
|
|
|
- /**
|
|
|
- * 原本游戏设定是先生产道路,现在为了方便处理等房屋生产后,再处理公路
|
|
|
- * dapp设定: 如果固定土地冲突,删除对应的公路
|
|
|
- */
|
|
|
- this.onSpawnHighway();
|
|
|
-
|
|
|
- //初始化生成人物
|
|
|
- /**
|
|
|
- * dapp设定: 如果固定土地位置冲突,把人物生成位置放置到主路
|
|
|
- * onSpawnWorkerAIFromStoredData 此函数处理
|
|
|
- */
|
|
|
- cc.find('GameNode/ManageWorker').getComponent('ManageWorker').InitWorkerAI();
|
|
|
-
|
|
|
- let _BFirstLoadGame = this.readData ? this.readData.BFirstLoadGame : 0;
|
|
|
- //初始化新手教学
|
|
|
- GlobalD.ManageTask.InitTask(_BFirstLoadGame);
|
|
|
-
|
|
|
- this.ManageUI.getComponent('ManageUI').Init();
|
|
|
-
|
|
|
- },
|
|
|
- InitNextworkData() {
|
|
|
- // console.log("this.readData", this.readData);
|
|
|
- this.Golden = this.readData.Golden;
|
|
|
- this.Diamond = this.readData.Diamond;
|
|
|
- this.shareGive = this.readData.shareGive;
|
|
|
- //签到分享给钻石金币
|
|
|
- this.signInGive = this.readData.signInGive;
|
|
|
- //每个月 给的 低保
|
|
|
- this.EveryGive = this.readData.EveryGive;
|
|
|
- //公共分享
|
|
|
- this.publicGive = this.readData.publicGive;
|
|
|
-
|
|
|
- // cc.log('初始化网络数据');
|
|
|
- //读取日期数据
|
|
|
- this.GameYear = this.readData.GameYear;
|
|
|
- this.GameMonth = this.readData.GameMonth;
|
|
|
- this.GameDay = this.readData.GameDay;
|
|
|
-
|
|
|
- //读取金币
|
|
|
- this.Golden = this.readData.Golden;
|
|
|
- //读取钻石
|
|
|
- this.Diamond = this.readData.Diamond;
|
|
|
- // cc.log('this.readData.Diamond', this.readData.Diamond);
|
|
|
- //读取工人等级
|
|
|
- this.WorkerLV = this.readData.WorkerLV;
|
|
|
- //工人数量
|
|
|
- this.WorkerNum = this.readData.WorkerNum;
|
|
|
- //工人容量
|
|
|
- this.WorkerCapacity = this.readData.WorkerCapacity;
|
|
|
- this.GameDate = this.readData.GameDate;
|
|
|
- this.LastTimeEveryDayRewardsDate = this.readData.LastTimeEveryDayRewardsDate;
|
|
|
- this.LastTimeLuckDate = this.readData.LastTimeLuckDate;
|
|
|
- this.EveryDayRewardsArray = this.readData.EveryDayRewardsArray;//.split('_');
|
|
|
- this.TerritoryStateArray = this.readData.TerritoryStateArray;//.split('_');
|
|
|
- //面板状态
|
|
|
- this.BuildingStateArray = this.readData.BuildingStateArray;//.split('_');
|
|
|
-
|
|
|
- //解锁设置为 不用解锁
|
|
|
- // this.BuildingLockStateArray.forEach((value, index, array) => {
|
|
|
- // array[index] = 1;
|
|
|
- // })
|
|
|
- this.BuildingLockStateArray = this.readData.BuildingLockStateArray;//.split('_');
|
|
|
- this.BuildingNumArray = this.readData.BuildingNumArray;//.split('_');
|
|
|
- this.DiamondNumArray = this.readData.DiamondNumArray;//.split('_');
|
|
|
- this.FoodTradeState = this.readData.FoodTradeState;
|
|
|
- this.WoodTradeState = this.readData.WoodTradeState;
|
|
|
- this.MineralTradeState = this.readData.MineralTradeState;
|
|
|
- //工人工作信息
|
|
|
- if (this.readData.characterInfoArray) {
|
|
|
- this.CharacterInfoArray = this.readData.characterInfoArray;
|
|
|
- } else {
|
|
|
- this.CharacterInfoArray = [];
|
|
|
- }
|
|
|
- //道路数据
|
|
|
- if (this.readData.highwayIndex)
|
|
|
- this.GameData_highwayIndex = this.readData.highwayIndex;
|
|
|
-
|
|
|
- //建筑物数据
|
|
|
- if (this.readData.buildingsInfo)
|
|
|
- this.GameData_buildings = this.readData.buildingsInfo;
|
|
|
-
|
|
|
- this.LotteryTimes = this.readData.LotteryTimes;
|
|
|
- //任务
|
|
|
- if (this.readData.TaskIconCountClick)
|
|
|
- task.TaskIconCountClick = this.readData.TaskIconCountClick;
|
|
|
- },
|
|
|
- /**
|
|
|
- * 初始化
|
|
|
- */
|
|
|
- Init: function () {
|
|
|
- let _BFirstLoadGame = false;// this.readData ? this.readData.BFirstLoadGame : 0;
|
|
|
- //date
|
|
|
- this.GameYear = 0;
|
|
|
- this.GameMonth = 0;
|
|
|
- this.GameDay = 0;
|
|
|
- this.GameDate = '0000/00/01';
|
|
|
- /**
|
|
|
- * 新增 CNT 和 SNB
|
|
|
- */
|
|
|
- this.CNT = 0;
|
|
|
- this.SNB = 0;
|
|
|
- this.Golden = 2000;
|
|
|
- this.Diamond = 100;
|
|
|
- this.WorkerLV = 0;
|
|
|
- this.WorkerNum = 0;
|
|
|
- this.CharacterInfoArray = [];
|
|
|
- this.WorkerCapacity = 5;
|
|
|
- this.TerritoryStateArray = [1, 1, 1, 1, 1, 1, 1, 1];//测试,全开地图
|
|
|
- /**
|
|
|
- * 添加建筑往后添加,到时候ManageBuildings 脚本 会初始化根据顺序
|
|
|
- * BuildingStateArray---相关 GetBuildingStateArray 获取建筑状态
|
|
|
- * BuildingNumArray ---相关 GetBuildingNumArray 获取建筑数量
|
|
|
- * BuildingFrameArray ---相关 ManageUI 添加面板是否解锁之类的相关预制
|
|
|
- */
|
|
|
- this.BuildingStateArray = [
|
|
|
- 1, //公路
|
|
|
- 1, //路铲
|
|
|
- 1, //拆迁
|
|
|
- 1, //农舍
|
|
|
- 1, //单元楼
|
|
|
- 1, //别墅
|
|
|
- 1, //农田
|
|
|
- 1,//伐木场
|
|
|
- 1, //矿坑
|
|
|
- 1, //加工厂
|
|
|
- 1,//冷饮摊
|
|
|
- 1,//贩卖机
|
|
|
- 1,//面包房
|
|
|
- 1,//早餐车
|
|
|
- 1, //饮茶店
|
|
|
- 1,//点心店
|
|
|
- 1, //美食店
|
|
|
- 1,//西餐厅
|
|
|
- 1, //花店
|
|
|
- 1, //美发店
|
|
|
- 1,//洋装店
|
|
|
- 1, //珠宝店
|
|
|
- 1, //电影院
|
|
|
- 1,//路灯
|
|
|
- 1, //绿化带
|
|
|
- 1, //花坛
|
|
|
- 1,//喷泉
|
|
|
- 1, //警察局
|
|
|
- 1,//游乐场
|
|
|
- 1, //蓝色城堡
|
|
|
- 1, //粉色城堡
|
|
|
- 1, //Holy Farmland
|
|
|
- 1 //Holy Farmland seed
|
|
|
- ];
|
|
|
- this.BuildingLockStateArray = [
|
|
|
- 1, //公路
|
|
|
- 1, //路铲
|
|
|
- 1, //拆迁
|
|
|
- 1, //农舍
|
|
|
- 0, //单元楼
|
|
|
- 0, //别墅
|
|
|
- 1, //农田
|
|
|
- 0,//伐木场
|
|
|
- 0, //矿坑
|
|
|
- 1, //加工厂
|
|
|
- 0,//冷饮摊
|
|
|
- 0,//贩卖机
|
|
|
- 0,//面包房
|
|
|
- 0,//早餐车
|
|
|
- 0, //饮茶店
|
|
|
- 0,//点心店
|
|
|
- 0, //美食店
|
|
|
- 0,//西餐厅
|
|
|
- 0, //花店
|
|
|
- 0, //美发店
|
|
|
- 0,//洋装店
|
|
|
- 0, //珠宝店
|
|
|
- 0, //电影院
|
|
|
- 1,//路灯
|
|
|
- 1, //绿化带
|
|
|
- 1, //花坛
|
|
|
- 0,//喷泉
|
|
|
- 0, //警察局
|
|
|
- 0,//游乐场
|
|
|
- 0, //蓝色城堡
|
|
|
- 0, //粉色城堡
|
|
|
- 1, //Holy Farmland
|
|
|
- 1, //Holy Farmland seed
|
|
|
- ];
|
|
|
- //建筑物数量
|
|
|
- this.BuildingNumArray = [
|
|
|
- 0, //公路
|
|
|
- 0, //路铲
|
|
|
- 0, //拆迁
|
|
|
- 4, //农舍
|
|
|
- 1, //单元楼
|
|
|
- 1, //别墅
|
|
|
- 4, //农田
|
|
|
- 1,//伐木场
|
|
|
- 1, //矿坑
|
|
|
- 2, //加工厂
|
|
|
- 2,//冷饮摊
|
|
|
- 1,//贩卖机
|
|
|
- 1,//面包房
|
|
|
- 1,//早餐车
|
|
|
- 1, //饮茶店
|
|
|
- 1,//点心店
|
|
|
- 1, //美食店
|
|
|
- 1,//西餐厅
|
|
|
- 1, //花店
|
|
|
- 1, //美发店
|
|
|
- 1,//洋装店
|
|
|
- 1, //珠宝店
|
|
|
- 1, //电影院
|
|
|
- 1,//路灯
|
|
|
- 1, //绿化带
|
|
|
- 1, //花坛
|
|
|
- 1,//喷泉
|
|
|
- 1, //警察局
|
|
|
- 1,//游乐场
|
|
|
- 1, //蓝色城堡
|
|
|
- 1, //粉色城堡
|
|
|
- 1, //Holy Farmland
|
|
|
- 1, //Holy Farmland seed
|
|
|
- ];
|
|
|
-
|
|
|
- this.DiamondNumArray = AConfig.DiamondArray;
|
|
|
- //todo 钻石消耗默认值
|
|
|
- this.DiamondNumArray.forEach((value, index, array) => {
|
|
|
- array[index] = 0;
|
|
|
- })
|
|
|
- cc.log('钻石消耗默认值', this.DiamondNumArray);
|
|
|
- this.EveryDayRewardsArray = [0, 0, 0, 0, 0, 0, 0];
|
|
|
-
|
|
|
- this.LastTimeEveryDayRewardsDate = '0000/00/00';
|
|
|
- this.LastTimeLuckDate = '0000/00/00';
|
|
|
-
|
|
|
- this.FoodTradeState = 1;
|
|
|
- this.WoodTradeState = 1;
|
|
|
- this.MineralTradeState = 1;
|
|
|
- //转盘分享给钻石金币
|
|
|
- this.shareGive = [200, 5];
|
|
|
- //签到分享给钻石金币
|
|
|
- this.signInGive = [200, 5];
|
|
|
- //每个月 给的 低保
|
|
|
- this.EveryGive = [500, 10];
|
|
|
- //公共分享
|
|
|
- this.publicGive = [200, 50];
|
|
|
- //每天抽奖次数
|
|
|
- this.LotteryTimes = 10;
|
|
|
-
|
|
|
- // 1 === _BFirstLoadGame
|
|
|
- if (_BFirstLoadGame) {
|
|
|
- console.log("this.readData", this.readData);
|
|
|
- // cc.log('初始化网络数据');
|
|
|
- //读取日期数据
|
|
|
- this.GameYear = this.readData.GameYear;
|
|
|
- this.GameMonth = this.readData.GameMonth;
|
|
|
- this.GameDay = this.readData.GameDay;
|
|
|
-
|
|
|
- /**
|
|
|
- * 接口
|
|
|
- * todo cnt和snb 由钱包读取
|
|
|
- */
|
|
|
- this.CNT = 0;
|
|
|
- this.SNB = 0;
|
|
|
-
|
|
|
- //读取金币
|
|
|
- this.Golden = this.readData.Golden;
|
|
|
- //读取钻石
|
|
|
- this.Diamond = this.readData.Diamond;
|
|
|
- // cc.log('this.readData.Diamond', this.readData.Diamond);
|
|
|
- //读取工人等级
|
|
|
- this.WorkerLV = this.readData.WorkerLV;
|
|
|
- //工人数量
|
|
|
- this.WorkerNum = this.readData.WorkerNum;
|
|
|
- //工人容量
|
|
|
- this.WorkerCapacity = this.readData.WorkerCapacity;
|
|
|
- this.GameDate = this.readData.GameDate;
|
|
|
- this.LastTimeEveryDayRewardsDate = this.readData.LastTimeEveryDayRewardsDate;
|
|
|
- this.LastTimeLuckDate = this.readData.LastTimeLuckDate;
|
|
|
- this.EveryDayRewardsArray = this.readData.EveryDayRewardsArray;//.split('_');
|
|
|
- this.TerritoryStateArray = this.readData.TerritoryStateArray;//.split('_');
|
|
|
- //面板状态
|
|
|
- this.BuildingStateArray = this.readData.BuildingStateArray;//.split('_');
|
|
|
-
|
|
|
- //解锁设置为 不用解锁
|
|
|
- this.BuildingLockStateArray.forEach((value, index, array) => {
|
|
|
- array[index] = 1;
|
|
|
- })
|
|
|
- // this.BuildingLockStateArray = this.readData.BuildingLockStateArray.split('_');
|
|
|
- this.BuildingNumArray = this.readData.BuildingNumArray;//.split('_');
|
|
|
- this.DiamondNumArray = this.readData.DiamondNumArray;//.split('_');
|
|
|
- this.FoodTradeState = this.readData.FoodTradeState;
|
|
|
- this.WoodTradeState = this.readData.WoodTradeState;
|
|
|
- this.MineralTradeState = this.readData.MineralTradeState;
|
|
|
-
|
|
|
- //工人工作信息
|
|
|
- if (this.readData.characterInfoArray)
|
|
|
- this.CharacterInfoArray = this.readData.characterInfoArray;
|
|
|
- //道路数据
|
|
|
- if (this.readData.highwayIndex)
|
|
|
- this.GameData_highwayIndex = this.readData.highwayIndex;
|
|
|
-
|
|
|
- //建筑物数据
|
|
|
- if (this.readData.buildingsInfo)
|
|
|
- this.GameData_buildings = this.readData.buildingsInfo;
|
|
|
-
|
|
|
- this.LotteryTimes = this.readData.LotteryTimes;
|
|
|
- //任务
|
|
|
- if (this.readData.TaskIconCountClick)
|
|
|
- task.TaskIconCountClick = this.readData.TaskIconCountClick;
|
|
|
- //测试5W
|
|
|
- // this.PlusDiamond(50000);
|
|
|
- }
|
|
|
+ GameVersion: {
|
|
|
+ default: -1,
|
|
|
+ type: cc.Integer,
|
|
|
},
|
|
|
|
|
|
- //GET / SET /Plus
|
|
|
- GetGameDate: function () {
|
|
|
- return this.GameDate;
|
|
|
- },
|
|
|
- SetGameDate: function (num) {
|
|
|
- this.GameDate = num;
|
|
|
- },
|
|
|
- PlusGameDate: function (num) {
|
|
|
- this.GameDate += num;
|
|
|
- },
|
|
|
- GetGolden: function () {
|
|
|
- return parseInt(this.Golden);
|
|
|
- },
|
|
|
- GetGoldenCallBack(_CallBack) {
|
|
|
- if (_CallBack)
|
|
|
- _CallBack({ resGolden: parseInt(this.Golden) });
|
|
|
- },
|
|
|
- SetGolden: function (Num) {
|
|
|
- let LastMoney = this.Golden;
|
|
|
- this.Golden = Num;
|
|
|
- let CurrentMoney = Num;
|
|
|
- this.ManageUI.getComponent('ManageUI').GoldenChangeCallBack(this.GetGolden(), LastMoney, CurrentMoney);
|
|
|
- },
|
|
|
- PlusGolden: function (Num) {
|
|
|
- if (this.Golden + Num < 0) {
|
|
|
- this.SetGolden(0);
|
|
|
- }
|
|
|
- else {
|
|
|
- this.SetGolden(this.Golden + Num);
|
|
|
- }
|
|
|
- // task.task50W();
|
|
|
- },
|
|
|
- GetDiamond: function () {
|
|
|
- return parseInt(this.Diamond);
|
|
|
- },
|
|
|
- SetDiamond: function (num) {
|
|
|
- let LastMoney = this.Diamond;
|
|
|
- this.Diamond = num;
|
|
|
- let CurrentMoney = num;
|
|
|
- this.ManageUI.getComponent('ManageUI').DiamondChangeCallBack(this.GetDiamond(), LastMoney, CurrentMoney);
|
|
|
- },
|
|
|
- PlusDiamond: function (num) {
|
|
|
- if (this.Diamond + num < 0) {
|
|
|
- this.SetDiamond(0);
|
|
|
- }
|
|
|
- else {
|
|
|
- this.SetDiamond(this.Diamond + num);
|
|
|
- }
|
|
|
+ //读取数据
|
|
|
+ readData: {
|
|
|
+ default: null,
|
|
|
+ visible: false,
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
- * 游戏里面的cnt 和神农呗
|
|
|
+ * 接口
|
|
|
+ * todo cnt和snb 由钱包读取
|
|
|
*/
|
|
|
- GetCNT: function () {
|
|
|
- return parseFloat(this.CNT);
|
|
|
- },
|
|
|
- SetCNT: function (Num) {
|
|
|
- this.CNT = Num;
|
|
|
- this.ManageUI.getComponent('ManageUI').CNTChangeCallBack(this.CNT);
|
|
|
+ CNT: {
|
|
|
+ default: 0,
|
|
|
+ visible: false,
|
|
|
},
|
|
|
- GetSNB: function () {
|
|
|
- return parseFloat(this.SNB);
|
|
|
+ SNB: {
|
|
|
+ default: 0,
|
|
|
+ visible: false,
|
|
|
},
|
|
|
- SetSNB: function (Num) {
|
|
|
- this.SNB = Num;
|
|
|
- this.ManageUI.getComponent('ManageUI').SNBChangeCallBack(this.SNB);
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
- GetWorkerLV: function () {
|
|
|
- return parseInt(this.WorkerLV);
|
|
|
- },
|
|
|
- SetWorkerLV: function (num) {
|
|
|
- this.WorkerLV = num;
|
|
|
- },
|
|
|
- PlusWorkerLV: function (num) {
|
|
|
- this.WorkerLV += num;
|
|
|
- },
|
|
|
- GetWorkerNum: function () {
|
|
|
- return parseInt(this.WorkerNum);
|
|
|
- },
|
|
|
- SetWorkerNum: function (num) {
|
|
|
- this.WorkerNum = num;
|
|
|
- },
|
|
|
- PlusWorkerNum: function (num) {
|
|
|
- this.WorkerNum += num;
|
|
|
- },
|
|
|
- GetLastTimeEveryDayRewardsDate: function () {
|
|
|
- return this.LastTimeEveryDayRewardsDate;
|
|
|
- },
|
|
|
- //获取转盘 时间
|
|
|
- GetLastTimeLuckDate: function () {
|
|
|
- return this.LastTimeLuckDate;
|
|
|
- },
|
|
|
- //设置转盘时间
|
|
|
- SetLastTimeLuckDate: function (DateString) {
|
|
|
- this.LastTimeLuckDate = DateString;
|
|
|
- },
|
|
|
- SetLastTimeEveryDayRewardsDate: function (DateString) {
|
|
|
- this.LastTimeEveryDayRewardsDate = DateString;
|
|
|
- },
|
|
|
-
|
|
|
- //工人信息数组
|
|
|
- GetWorkerCharacterInfoArray: function () {
|
|
|
- return this.CharacterInfoArray;
|
|
|
- },
|
|
|
- SetWorkerCharacterInfoArray: function (item) {
|
|
|
- this.CharacterInfoArray = item;
|
|
|
- },
|
|
|
-
|
|
|
- /*** */
|
|
|
- GetWorkerCapacity: function () {
|
|
|
- return parseInt((this.WorkerCapacity));
|
|
|
- },
|
|
|
- SetWorkerCapacity: function (num) {
|
|
|
- this.WorkerCapacity = num;
|
|
|
- },
|
|
|
- PlusWorkerCapacity: function (num) {
|
|
|
- this.WorkerCapacity += num;
|
|
|
- },
|
|
|
- GetTerritoryStateArray: function () {
|
|
|
- return this.TerritoryStateArray;
|
|
|
- },
|
|
|
- SetTerritoryStateArray: function (aTerritoryStateArray) {
|
|
|
- this.TerritoryStateArray = aTerritoryStateArray;
|
|
|
- },
|
|
|
- PlusTerritoryStateArray: function (Item) {
|
|
|
- this.TerritoryStateArray.push(Item);
|
|
|
- },
|
|
|
- GetBuildingStateArray: function () {
|
|
|
- return this.BuildingStateArray;
|
|
|
- },
|
|
|
- SetBuildingStateArray: function (aBuildingStateArray) {
|
|
|
- this.BuildingStateArray = aBuildingStateArray;
|
|
|
- },
|
|
|
- PlusBuildingStateArray: function (Item) {
|
|
|
- this.BuildingStateArray.push(Item);
|
|
|
- },
|
|
|
- GetBuildingLockStateArray: function () {
|
|
|
- return this.BuildingLockStateArray;
|
|
|
- },
|
|
|
- SetBuildingLockStateArray: function (aArray) {
|
|
|
- this.BuildingLockStateArray = aArray;
|
|
|
- },
|
|
|
- PlusBuildingLockStateArray: function (Item) {
|
|
|
- this.BuildingLockStateArray.push(Item);
|
|
|
+ //站内收益
|
|
|
+ CNTDrawBalance: {
|
|
|
+ default: 0,
|
|
|
+ visible: false,
|
|
|
},
|
|
|
|
|
|
- GetBuildingNumArray: function () {
|
|
|
- return this.BuildingNumArray;
|
|
|
- },
|
|
|
- SetBuildingNumArray: function (aBuildingNumArray) {
|
|
|
- this.BuildingNumArray = aBuildingNumArray;
|
|
|
- },
|
|
|
- PlusBuildingNumArray: function (Item) {
|
|
|
- this.BuildingNumArray.push(Item);
|
|
|
+ //读取的土地文件
|
|
|
+ ConfigLand: {
|
|
|
+ default: null,
|
|
|
+ visible: false,
|
|
|
},
|
|
|
- //操作钻石数据
|
|
|
- GetDiamondNumArray: function () {
|
|
|
- return this.DiamondNumArray;
|
|
|
- },
|
|
|
- SetDiamondNumArray: function (aDiamondNumArray) {
|
|
|
- this.DiamondNumArray = aDiamondNumArray;
|
|
|
- },
|
|
|
- GetEveryDayRewardsArray: function () {
|
|
|
- return this.EveryDayRewardsArray;
|
|
|
- },
|
|
|
- SetEveryDayRewardsArray: function (aArray) {
|
|
|
- this.EveryDayRewardsArray = aArray;
|
|
|
- },
|
|
|
- PlusEveryDayRewardsArray: function (Item) {
|
|
|
- this.EveryDayRewardsArray.push(Item);
|
|
|
- },
|
|
|
- GetFoodTradeState: function () {
|
|
|
- return parseInt((this.FoodTradeState));
|
|
|
- },
|
|
|
- SetFoodTradeState: function (num) {
|
|
|
- this.FoodTradeState = num;
|
|
|
- },
|
|
|
- PlusFoodTradeState: function (num) {
|
|
|
- this.FoodTradeState += num;
|
|
|
- },
|
|
|
- GetWoodTradeState: function () {
|
|
|
- return parseInt((this.WoodTradeState));
|
|
|
- },
|
|
|
- SetWoodTradeState: function (num) {
|
|
|
- this.WoodTradeState = num;
|
|
|
- },
|
|
|
- PlusWoodTradeState: function (num) {
|
|
|
- this.WoodTradeState += num;
|
|
|
- },
|
|
|
- GetMineralTradeState: function () {
|
|
|
- return parseInt((this.MineralTradeState));
|
|
|
- },
|
|
|
- SetMineralTradeState: function (num) {
|
|
|
- this.MineralTradeState = num;
|
|
|
- },
|
|
|
- PlusMineralTradeState: function (num) {
|
|
|
- this.MineralTradeState += num;
|
|
|
- },
|
|
|
- GetLotteryTimes: function () {
|
|
|
- return parseInt((this.LotteryTimes));
|
|
|
- },
|
|
|
- SetLotteryTimes: function (num) {
|
|
|
- this.LotteryTimes = num;
|
|
|
- },
|
|
|
- PlusLotteryTimes: function (num) {
|
|
|
- this.LotteryTimes += num;
|
|
|
- },
|
|
|
-
|
|
|
|
|
|
- //初始化道路
|
|
|
- onSpawnHighway() {
|
|
|
- // 获取InitPoint层
|
|
|
- let InitPos = this._tiledMap.getLayer('InitPoint');
|
|
|
- InitPos.enabled = false;
|
|
|
-
|
|
|
- //创建公路数据
|
|
|
- if (this.readData && this.readData.allHighwayStylesAndIndex) {
|
|
|
- //保存到内存中
|
|
|
- this.GameData_highwayIndex = this.readData.highwayIndex;
|
|
|
- //先赋值道路的对象数组
|
|
|
- let _AllHighwayAIndex = Object.assign([], this.readData.allHighwayStylesAndIndex);
|
|
|
- //获取最后建造公路的层级
|
|
|
- this.HighwayLayer = this._tiledMap.getLayer('Highway');
|
|
|
- for (let i = 0; i < _AllHighwayAIndex.length; i++) {
|
|
|
- let _tiledPos = GlobalD.TiledMap.analyticalIndexData(_AllHighwayAIndex[i].highwayInfoIndex);
|
|
|
- /**
|
|
|
- * 解决固定土地时候,道路 和房子 冲突
|
|
|
- *
|
|
|
- */
|
|
|
- if (GlobalD.game.getManageGameIndexArrayAt(cc.v2(_tiledPos.x, _tiledPos.y))) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- let highwayTemp = cc.instantiate(this.HighWayPrefabs);
|
|
|
- highwayTemp.parent = this.HighwayLayer.node;
|
|
|
- let tiledTile = highwayTemp.addComponent('TiledTile');
|
|
|
- tiledTile.x = _tiledPos.x;
|
|
|
- tiledTile.y = _tiledPos.y;
|
|
|
- //地图设置可行走区域公路设置
|
|
|
- AStar.setMapSolid(_tiledPos.x, _tiledPos.y, 0);
|
|
|
- // _buildId ==0 是公路
|
|
|
- let _buildId = 0;
|
|
|
- let occupyTemp = cc.v2(_buildId, _AllHighwayAIndex[i].highwayInfoIndex);
|
|
|
- GlobalD.game.OccupyArray.push(occupyTemp);
|
|
|
- highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(_AllHighwayAIndex[i].highwayInfoType);
|
|
|
-
|
|
|
- GlobalD.game.AllHighwayStylesAndIndex.push(_AllHighwayAIndex[i]);
|
|
|
+ toast: null,
|
|
|
+ scheduleObj: null,
|
|
|
+ toastCallback: null,
|
|
|
+ isStart: true,
|
|
|
+ isInit: false,
|
|
|
|
|
|
- }
|
|
|
- // console.log("end");
|
|
|
- } else {
|
|
|
- //如果用户没有存储数据
|
|
|
- //根据InitPoint 的数据,创建初始化的地图数据 的初始化数据
|
|
|
-
|
|
|
- this.HighwayLayer = this._tiledMap.getLayer('Highway');
|
|
|
- for (var i = 0; i < 32; i++) {
|
|
|
- //去除中间两条路
|
|
|
- if (i == 16 || i == 17) continue;
|
|
|
- for (var j = 0; j < 32; j++) {
|
|
|
- let tilesPos = cc.v2(i, j);
|
|
|
-
|
|
|
- if (InitPos.getTileGIDAt(tilesPos)) {
|
|
|
-
|
|
|
-
|
|
|
- let index = GlobalD.TiledMap.getIndex(tilesPos);
|
|
|
- this.GameData_highwayIndex.push(index);
|
|
|
-
|
|
|
- let highwayTemp = cc.instantiate(this.HighWayPrefabs);
|
|
|
- highwayTemp.parent = this.HighwayLayer.node;
|
|
|
- let tiledTile = highwayTemp.addComponent('TiledTile');
|
|
|
- tiledTile.x = tilesPos.x;
|
|
|
- tiledTile.y = tilesPos.y;
|
|
|
- // cc.log('onSpawnHighway2');
|
|
|
- //地图设置可行走区域公路设置
|
|
|
- AStar.setMapSolid(tilesPos.x, tilesPos.y, 0);
|
|
|
- // _buildId ==0 是公路
|
|
|
- let _buildId = 0;
|
|
|
- let occupyTemp = cc.v2(_buildId, index);
|
|
|
- GlobalD.game.OccupyArray.push(occupyTemp);
|
|
|
-
|
|
|
- let tile = InitPos.getTiledTileAt(tilesPos.x, tilesPos.y, true);
|
|
|
-
|
|
|
- let _MoveType = reGameStates.HighwayType.moveX;
|
|
|
- // if (tile.gid == 15) {
|
|
|
- // _MoveType = reGameStates.HighwayType.moveX;
|
|
|
- // } else
|
|
|
- if (tile.gid == 16) {
|
|
|
- _MoveType = reGameStates.HighwayType.moveY;
|
|
|
- } else if (tile.gid == 11) {
|
|
|
- _MoveType = reGameStates.HighwayType.ZebraCrossingX;
|
|
|
- } else if (tile.gid == 12) {
|
|
|
- _MoveType = reGameStates.HighwayType.ZebraCrossingY;
|
|
|
- }
|
|
|
- // return;
|
|
|
- //更换公路样式
|
|
|
- GlobalD.game.onCreateDifferentRoadStyles({
|
|
|
- _buildId: _buildId,
|
|
|
- _highwayType: _MoveType,
|
|
|
- _roadIndex: index,
|
|
|
- _hightwayNode: highwayTemp
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //外面的两条路
|
|
|
- let initRoad = this._tiledMap.getLayer('Road');
|
|
|
- initRoad.enabled = false;
|
|
|
- for (var i = 16; i < 18; i++) {
|
|
|
- for (var j = 0; j < 32; j++) {
|
|
|
- let tilesPos = cc.v2(i, j);
|
|
|
- // cc.log('road tilesPos',tilesPos)
|
|
|
- if (initRoad.getTileGIDAt(tilesPos)) {
|
|
|
- let index = GlobalD.TiledMap.getIndex(tilesPos);
|
|
|
- this.GameData_highwayIndex.push(index);
|
|
|
- let highwayTemp = cc.instantiate(this.HighWayPrefabs);
|
|
|
- highwayTemp.parent = this.HighwayLayer.node;
|
|
|
- let tiledTile = highwayTemp.addComponent('TiledTile');
|
|
|
- tiledTile.x = tilesPos.x;
|
|
|
- tiledTile.y = tilesPos.y;
|
|
|
- // cc.log('initRoad');
|
|
|
- //地图设置可行走区域公路设置
|
|
|
- AStar.setMapSolid(tilesPos.x, tilesPos.y, 0);
|
|
|
- let _buildId = 0;
|
|
|
- let occupyTemp = cc.v2(_buildId, index);
|
|
|
- GlobalD.game.OccupyArray.push(occupyTemp);
|
|
|
- //更换公路样式
|
|
|
- // if (j >= 25 && j <= 27 || j >= 19 && j <= 21 || j >= 9 && j <= 11)
|
|
|
- // highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(reGameStates.HighwayType.none);
|
|
|
- // else
|
|
|
- // highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(reGameStates.HighwayType.moveY);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- //清除所有的数据
|
|
|
- onClearAllData() {
|
|
|
- this.unschedule(this.AutoSaveData);
|
|
|
- //任务索引
|
|
|
- cc.sys.localStorage.removeItem('userdata');
|
|
|
- //跳回登录场景
|
|
|
- // cc.director.loadScene('Login');
|
|
|
- },
|
|
|
- //保存数据请求
|
|
|
/**
|
|
|
- *
|
|
|
- * 现在转服务器存储,原本所有相关操作通过服务器计算。
|
|
|
- * 一、目前涉及到的是 SNT 和 SNB 两个货币相关,和买田地操作 (可以理解为租聘,三种类型)
|
|
|
- *
|
|
|
- * isNetwork:true,上传到网络
|
|
|
- *
|
|
|
+ * 限制重复触发支付, 正在支付中转态,
|
|
|
*/
|
|
|
- pushData: function (isNetwork) {
|
|
|
- // cc.log(this.EveryDayRewardsArray);
|
|
|
- // console.log(this.readData.BFirstLoadGame);
|
|
|
- var datas = {
|
|
|
- version: this.GameVersion,
|
|
|
- // 转后台处理
|
|
|
- BFirstLoadGame: 1,//只要push数据,就证明已经开始第一次游戏了
|
|
|
-
|
|
|
- /**游戏不修改,默认值 start */
|
|
|
- shareGive: this.shareGive,
|
|
|
- //签到分享给钻石金币
|
|
|
- signInGive: this.signInGive,
|
|
|
- //每个月 给的 低保
|
|
|
- EveryGive: this.EveryGive,
|
|
|
- //公共分享
|
|
|
- publicGive: this.publicGive,
|
|
|
- /**游戏不修改,默认值 end */
|
|
|
-
|
|
|
- //时间
|
|
|
- GameYear: this.GameYear,
|
|
|
- GameMonth: this.GameMonth,
|
|
|
- GameDay: this.GameDay,
|
|
|
-
|
|
|
- //这里只是单纯的存储起来
|
|
|
- CNT: this.CNT,
|
|
|
- SNB: this.SNB,
|
|
|
-
|
|
|
- Golden: this.Golden,
|
|
|
- Diamond: this.Diamond,
|
|
|
- WorkerLV: this.WorkerLV,
|
|
|
- WorkerNum: this.WorkerNum,
|
|
|
- WorkerCapacity: this.WorkerCapacity,
|
|
|
- GameDate: this.GameDate,
|
|
|
- LastTimeEveryDayRewardsDate: this.LastTimeEveryDayRewardsDate,
|
|
|
- LastTimeLuckDate: this.LastTimeLuckDate,
|
|
|
- EveryDayRewardsArray: this.EveryDayRewardsArray,//.join('_'),
|
|
|
- TerritoryStateArray: this.TerritoryStateArray,//.join('_'),
|
|
|
- //面板状态
|
|
|
- BuildingStateArray: this.BuildingStateArray,//.join('_'),
|
|
|
- BuildingLockStateArray: this.BuildingLockStateArray,//.join('_'),
|
|
|
-
|
|
|
- /**
|
|
|
- * SNB和CNT相关,需要后台筛选 田地 和 种子。单独处理
|
|
|
- */
|
|
|
- BuildingNumArray: this.BuildingNumArray,//.join('_'),
|
|
|
- DiamondNumArray: this.DiamondNumArray,//.join('_'),
|
|
|
- FoodTradeState: this.FoodTradeState,
|
|
|
- WoodTradeState: this.WoodTradeState,
|
|
|
- MineralTradeState: this.MineralTradeState,
|
|
|
-
|
|
|
- LotteryTimes: this.LotteryTimes,
|
|
|
-
|
|
|
- /**
|
|
|
- * 这些数据不用服务器初始化
|
|
|
- */
|
|
|
- //工人工作信息
|
|
|
- characterInfoArray: this.CharacterInfoArray,
|
|
|
- //道路数据
|
|
|
- highwayIndex: this.GameData_highwayIndex,
|
|
|
- allHighwayStylesAndIndex: GlobalD.game.AllHighwayStylesAndIndex,
|
|
|
- //建筑物数据
|
|
|
- buildingsInfo: this.GameData_buildings,
|
|
|
- //任务
|
|
|
- TaskIconCountClick: task.TaskIconCountClick
|
|
|
- }
|
|
|
-
|
|
|
- if (isNetwork) {
|
|
|
- var data = [];
|
|
|
- // data["openid"] = userData.openId;
|
|
|
- // data["userdata"] = JSON.stringify(datas);
|
|
|
- data["playerData"] = JSON.stringify(datas);
|
|
|
-
|
|
|
- /** 推送信息 */
|
|
|
- utils.post(utils.api.playerPushInfo, data, (res, playerPushInfoTemp) => {
|
|
|
- // console.log('playerPushInfoTemp', playerPushInfoTemp);
|
|
|
- })
|
|
|
- } else {
|
|
|
- console.log("存储本地:" + isNetwork);
|
|
|
- //保存用户数据到本地
|
|
|
- cc.sys.localStorage.setItem('userdata', JSON.stringify(datas));
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- },
|
|
|
+ isPlayingCnt: false,
|
|
|
+ isPlayingSnb: false,
|
|
|
|
|
|
/**
|
|
|
- * 兑换种子时候,特殊处理数据
|
|
|
- * 扣除相应的钻石
|
|
|
+ * 处理请求
|
|
|
*/
|
|
|
- exchangeSeed() {
|
|
|
- //先暂停存储
|
|
|
- this.unschedule(this.AutoSaveData);
|
|
|
-
|
|
|
- utils.post(utils.api.exchangeSeeds, { diamondAmount: 50000, seedId: 8 }, (res, value) => {
|
|
|
- console.log("兑换种子", value);
|
|
|
- callback(res, value);
|
|
|
- //兑换成功后
|
|
|
- if (0 === value.code) {
|
|
|
- //更新一次数据
|
|
|
- let _playerData = JSON.parse(value.data.playerData);
|
|
|
- //更新本地钻石数据
|
|
|
- this.SetDiamond(_playerData.Diamond);
|
|
|
-
|
|
|
- } else {
|
|
|
- //兑换失败
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- //重新开启存储
|
|
|
- this.schedule(this.AutoSaveData, 15);
|
|
|
+ //现在多次触发
|
|
|
+ isOnAddFruit: false,
|
|
|
+ isOnSaleFruit: false,
|
|
|
+ isOnGrantFruit: false,
|
|
|
+
|
|
|
+ //自动存储数据
|
|
|
+ AutoSaveData: null,
|
|
|
+ },
|
|
|
+ onLoad() {
|
|
|
+ //初始化GameData全局变量
|
|
|
+ GlobalD.GameData = this
|
|
|
+ this.GameConfig()
|
|
|
+ },
|
|
|
+ GameConfig() {
|
|
|
+ this.AddBuildingCost = 5
|
|
|
+ this.RemoveBuildingCost = 5
|
|
|
+
|
|
|
+ //
|
|
|
+ this.Dapp = {
|
|
|
+ UserInfo: null,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ start() {
|
|
|
+ cc.loader.loadRes(
|
|
|
+ 'prefab/gameToast',
|
|
|
+ function (err, texture) {
|
|
|
+ this.toast = cc.instantiate(texture)
|
|
|
+ this.toast.parent = cc.find('Canvas/UICamera')
|
|
|
+ this.toast.zIndex = 999
|
|
|
+ this.toast.active = false
|
|
|
+ this.scheduleObj = this.schedule(() => {
|
|
|
+ this.updateToast()
|
|
|
+ }, 1)
|
|
|
+ }.bind(this)
|
|
|
+ )
|
|
|
+
|
|
|
+ this._tiledMap = GlobalD.TiledMap._tiledMap
|
|
|
+ //调用初始化dapp
|
|
|
+ this.isDebugMode(GlobalD.dapp)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 根据 不存在dapp 的话,使用本地测试
|
|
|
+ * @param {*} bInit
|
|
|
+ */
|
|
|
+ isDebugMode: function (bInit) {
|
|
|
+ if (bInit) {
|
|
|
+ //读取网络数据
|
|
|
+ try {
|
|
|
+ GlobalD.dapp.cntBalance().then((cntBalance) => {
|
|
|
+ //会延迟返回
|
|
|
+ // console.log("获取cnt:" + cntBalance) // string, 精度18,需要自行处理省略几位小数
|
|
|
+ GlobalD.GameData.SetCNT(cntBalance)
|
|
|
})
|
|
|
- },
|
|
|
+ } catch (err) {
|
|
|
+ console.error(err) // 初始化失败,运行环境不是钱包环境
|
|
|
+ }
|
|
|
+ //登录时候已经初始化好snb了
|
|
|
+ this.SNB = GlobalD.UserInfo.snb
|
|
|
+
|
|
|
+ this.readData = userData.readData
|
|
|
+ // cc.log('playerPullInfo 读取到数据?:', this.readData)
|
|
|
+ this.InitNextworkData()
|
|
|
+ this.InitSceneInfo()
|
|
|
+
|
|
|
+ // 自动存储数据
|
|
|
+ /**
|
|
|
+ * todo 如果退出游戏,触发一次存储。
|
|
|
+ */
|
|
|
+ this.AutoSaveData = function () {
|
|
|
+ this.pushData(true)
|
|
|
+ }
|
|
|
+ this.schedule(this.AutoSaveData, 15)
|
|
|
+ } else {
|
|
|
+ // 清除
|
|
|
+ cc.log('本地数据重新开始,并且不初始化')
|
|
|
+ // this.onClearAllData();
|
|
|
+ this.Init()
|
|
|
+ this.InitSceneInfo()
|
|
|
+ this.AutoSaveData = function () {
|
|
|
+ this.pushData(false)
|
|
|
+ }
|
|
|
+ this.schedule(this.AutoSaveData, 10)
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ getData: function () {
|
|
|
+ //如果开局没有读取到网络数据,就这里初始化
|
|
|
+ if (userData.readData == null) {
|
|
|
+ cc.log('本地数据:', cc.sys.localStorage.getItem('userdata'))
|
|
|
+ let userdata = cc.sys.localStorage.getItem('userdata')
|
|
|
+ if (userdata) {
|
|
|
+ this.readData = JSON.parse(userdata)
|
|
|
+ }
|
|
|
+ this.Init()
|
|
|
+ this.InitSceneInfo()
|
|
|
+ } else {
|
|
|
+ this.readData = userData.readData
|
|
|
+ cc.log('读取到数据?:', this.readData)
|
|
|
+ this.Init()
|
|
|
+ this.InitSceneInfo()
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ InitSceneInfo() {
|
|
|
+ //根据顺序生成
|
|
|
+ //初始化时间ui
|
|
|
+ cc.find('GameNode/ManageTimer').getComponent('ManageTimer').Init()
|
|
|
+ //初始化金钱ui,gold,diamond, cnt,snb,
|
|
|
+ cc.find('GameNode/ManageGolden')
|
|
|
+ .getComponent('ManageGolden')
|
|
|
+ .InitManageGlodenUI()
|
|
|
+ // //初始化地图物件
|
|
|
+ // cc.find("GameNode/ManageMap").getComponent('ManageMap').InitManageMap();
|
|
|
+ GlobalD.TiledMap.onInitSolid()
|
|
|
+
|
|
|
+ //初始化生成房屋
|
|
|
/**
|
|
|
- * 获取是否租赁过的状态
|
|
|
+ * dapp设定: 如果固定土地冲突,删除冲突的建筑和回收仓库
|
|
|
*/
|
|
|
- getPlayerExchangeState(callback) {
|
|
|
- utils.get(utils.api.playerExchangeState, {}, (res, vaule) => {
|
|
|
- console.log("租赁状态:", value);
|
|
|
- callback(res, vaule);
|
|
|
- })
|
|
|
- },
|
|
|
+ this.ManageUI.getComponent('ManageBuildings').InitBuildings()
|
|
|
|
|
|
+ //初始化道路
|
|
|
/**
|
|
|
- * 暂时不需要从这里读取
|
|
|
+ * 原本游戏设定是先生产道路,现在为了方便处理等房屋生产后,再处理公路
|
|
|
+ * dapp设定: 如果固定土地冲突,删除对应的公路
|
|
|
*/
|
|
|
- getLandConfig() {
|
|
|
- utils.get(utils.api.landConfig, {}, (res, value) => {
|
|
|
- if (0 === value.code) {
|
|
|
- this.ConfigLand = value.data;
|
|
|
- } else {
|
|
|
- console.warn("未能读取到config土地?");
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- //获取用户全部租赁土地
|
|
|
- getUserLandList() {
|
|
|
- utils.get(utils.api.userLandList, {}, (res, vaule) => {
|
|
|
-
|
|
|
- })
|
|
|
- },
|
|
|
- //获取用户已租赁土地的状态
|
|
|
- getLandState(context) {
|
|
|
- let { landId, callback } = context;
|
|
|
- utils.get(utils.api.landState, { landId: landId }, (res, vaule) => {
|
|
|
- callback(res, vaule);
|
|
|
- })
|
|
|
- },
|
|
|
- //获取商城种子
|
|
|
- getMallSeed(callback) {
|
|
|
- utils.get(utils.api.mallSeed, {}, (res, vaule) => {
|
|
|
- callback(res, vaule);
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- getWarehouseSeedAndFruit(callback) {
|
|
|
- utils.get(utils.api.getSeedAndFruit, {}, (res, vaule) => {
|
|
|
- callback(res, vaule);
|
|
|
- })
|
|
|
- },
|
|
|
- //获取种子状态
|
|
|
- onGetSeedState(data, callback) {
|
|
|
- utils.get(utils.api.getSeedState, data, (res, vaule) => {
|
|
|
- callback(res, vaule);
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- //种植种子
|
|
|
- // data:{landId:1,seedId:1}
|
|
|
- onPlant(data, callback) {
|
|
|
- utils.get(utils.api.plant, data, (res, vaule) => {
|
|
|
- callback(res, vaule);
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- //收取果实
|
|
|
- onAddFruit(data, callback) {
|
|
|
- if (this.isOnAddFruit) {
|
|
|
- console.log("收取果实过快!");
|
|
|
- return;
|
|
|
- }
|
|
|
- this.isOnAddFruit = true;
|
|
|
- utils.post(utils.api.addFruit, data, (res, vaule) => {
|
|
|
- this.isOnAddFruit = false;
|
|
|
- callback(res, vaule);
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- //出售果实
|
|
|
- onSaleFruit(data, callback) {
|
|
|
- if (this.isOnSaleFruit) {
|
|
|
- console.log("出售果实过快!");
|
|
|
- return;
|
|
|
- }
|
|
|
- this.isOnSaleFruit = true;
|
|
|
- utils.post(utils.api.saleFruit, data, (res, vaule) => {
|
|
|
- this.isOnSaleFruit = false;
|
|
|
- callback(res, vaule);
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- //赠送果实
|
|
|
- onGrantFruit(data, callback) {
|
|
|
- if (this.isOnGrantFruit) {
|
|
|
- console.log("赠送果实过快!");
|
|
|
- return;
|
|
|
- }
|
|
|
- this.isOnGrantFruit = true;
|
|
|
- utils.post(utils.api.grantFruit, data, (res, vaule) => {
|
|
|
- this.isOnGrantFruit = false;
|
|
|
- callback(res, vaule);
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- //神农呗购买种子
|
|
|
- onBuySeedsWithSNB(snbAmount, seedId, callback) {
|
|
|
- utils.post(utils.api.snbBuySeeds, { payAmount: snbAmount, seedId: seedId }, (res, vaule) => {
|
|
|
- callback(res, vaule);
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- //获取用户的snb
|
|
|
- onGetUserSnb(callback) {
|
|
|
- utils.get(utils.api.userSnbInfo, {}, (res, value) => {
|
|
|
- GlobalD.GameData.SetSNB(value.data.SNB);
|
|
|
- if (callback)
|
|
|
- callback(res, value);
|
|
|
- })
|
|
|
- },
|
|
|
+ this.onSpawnHighway()
|
|
|
|
|
|
+ //初始化生成人物
|
|
|
/**
|
|
|
- * 支付cnt操作
|
|
|
- * @param {*} amount // 需支付金额
|
|
|
- * @param {*} payType 支付类型,1购买土地租凭, 2自然灾害防护,3野兽防护
|
|
|
- * @param {*} itemType 操作物品的id 字符串
|
|
|
+ * dapp设定: 如果固定土地位置冲突,把人物生成位置放置到主路
|
|
|
+ * onSpawnWorkerAIFromStoredData 此函数处理
|
|
|
*/
|
|
|
- payCNT(cntAmount, payType, itemType, callback) {
|
|
|
- console.log("购买金额:" + cntAmount + "购买类型PlayType:" + payType + "购买物品的id:" + itemType);
|
|
|
- if (!GlobalD.dapp) {
|
|
|
- console.warn("GlobalD.dapp未初始化,不能payCNT!");
|
|
|
- return;
|
|
|
- }
|
|
|
- //
|
|
|
- if (this.isPlayingCnt) {
|
|
|
- console.warn("同时触发支付CNT过快!");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (GlobalD.GameData.GetCNT() < cntAmount) {
|
|
|
- console.log("cnt 不足,GetCNT:" + GlobalD.GameData.GetCNT() + "消费的cntAmount" + cntAmount);
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "CNT不足!", 2, () => {
|
|
|
- console.log("finish toast! CNT不足!");
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- this.isPlayingCnt = true;
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "支付处理中...", 5, () => {
|
|
|
- console.log("finish toast!支付处理中...");
|
|
|
- });
|
|
|
-
|
|
|
- GlobalD.dapp.payCnt(cntAmount, payType, itemType).then((data) => {
|
|
|
- const [err, tx] = data;
|
|
|
- this.isPlayingCnt = false;
|
|
|
- if (err === null) {
|
|
|
- // TODO 成功, 支付为链上操作,需要提供回调接口给这边服务端确认交易成功后修改购买订单结果
|
|
|
- console.log(tx) // 交易hash,唯一标识符
|
|
|
-
|
|
|
- GlobalD.dapp.cntBalance().then((cntBalance) => {
|
|
|
- //会延迟返回
|
|
|
- // console.log("更新cnt:" + cntBalance) // string, 精度18,需要自行处理省略几位小数
|
|
|
- GlobalD.GameData.SetCNT(cntBalance);
|
|
|
- });
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "支付成功!", 5, () => {
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "区块确认中,请耐心等待!", 120);
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
- } else {
|
|
|
- console.log(err)
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), err, 2, () => {
|
|
|
- console.log("finish toast!");
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- if (callback) {
|
|
|
- callback(data);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
+ cc.find('GameNode/ManageWorker').getComponent('ManageWorker').InitWorkerAI()
|
|
|
+
|
|
|
+ let _BFirstLoadGame = this.readData ? this.readData.BFirstLoadGame : 0
|
|
|
+ //初始化新手教学
|
|
|
+ GlobalD.ManageTask.InitTask(_BFirstLoadGame)
|
|
|
+
|
|
|
+ this.ManageUI.getComponent('ManageUI').Init()
|
|
|
+ },
|
|
|
+ InitNextworkData() {
|
|
|
+ // console.log("this.readData", this.readData);
|
|
|
+ this.Golden = this.readData.Golden
|
|
|
+ this.Diamond = this.readData.Diamond
|
|
|
+ this.shareGive = this.readData.shareGive
|
|
|
+ //签到分享给钻石金币
|
|
|
+ this.signInGive = this.readData.signInGive
|
|
|
+ //每个月 给的 低保
|
|
|
+ this.EveryGive = this.readData.EveryGive
|
|
|
+ //公共分享
|
|
|
+ this.publicGive = this.readData.publicGive
|
|
|
+
|
|
|
+ // cc.log('初始化网络数据');
|
|
|
+ //读取日期数据
|
|
|
+ this.GameYear = this.readData.GameYear
|
|
|
+ this.GameMonth = this.readData.GameMonth
|
|
|
+ this.GameDay = this.readData.GameDay
|
|
|
+
|
|
|
+ //读取金币
|
|
|
+ this.Golden = this.readData.Golden
|
|
|
+ //读取钻石
|
|
|
+ this.Diamond = this.readData.Diamond
|
|
|
+ // cc.log('this.readData.Diamond', this.readData.Diamond);
|
|
|
+ //读取工人等级
|
|
|
+ this.WorkerLV = this.readData.WorkerLV
|
|
|
+ //工人数量
|
|
|
+ this.WorkerNum = this.readData.WorkerNum
|
|
|
+ //工人容量
|
|
|
+ this.WorkerCapacity = this.readData.WorkerCapacity
|
|
|
+ this.GameDate = this.readData.GameDate
|
|
|
+ this.LastTimeEveryDayRewardsDate = this.readData.LastTimeEveryDayRewardsDate
|
|
|
+ this.LastTimeLuckDate = this.readData.LastTimeLuckDate
|
|
|
+ this.EveryDayRewardsArray = this.readData.EveryDayRewardsArray //.split('_');
|
|
|
+ this.TerritoryStateArray = this.readData.TerritoryStateArray //.split('_');
|
|
|
+ //面板状态
|
|
|
+ this.BuildingStateArray = this.readData.BuildingStateArray //.split('_');
|
|
|
+
|
|
|
+ //解锁设置为 不用解锁
|
|
|
+ // this.BuildingLockStateArray.forEach((value, index, array) => {
|
|
|
+ // array[index] = 1;
|
|
|
+ // })
|
|
|
+ this.BuildingLockStateArray = this.readData.BuildingLockStateArray //.split('_');
|
|
|
+ this.BuildingNumArray = this.readData.BuildingNumArray //.split('_');
|
|
|
+ this.DiamondNumArray = this.readData.DiamondNumArray //.split('_');
|
|
|
+ this.FoodTradeState = this.readData.FoodTradeState
|
|
|
+ this.WoodTradeState = this.readData.WoodTradeState
|
|
|
+ this.MineralTradeState = this.readData.MineralTradeState
|
|
|
+ //工人工作信息
|
|
|
+ if (this.readData.characterInfoArray) {
|
|
|
+ this.CharacterInfoArray = this.readData.characterInfoArray
|
|
|
+ } else {
|
|
|
+ this.CharacterInfoArray = []
|
|
|
+ }
|
|
|
+ //道路数据
|
|
|
+ if (this.readData.highwayIndex)
|
|
|
+ this.GameData_highwayIndex = this.readData.highwayIndex
|
|
|
+
|
|
|
+ //建筑物数据
|
|
|
+ if (this.readData.buildingsInfo)
|
|
|
+ this.GameData_buildings = this.readData.buildingsInfo
|
|
|
+
|
|
|
+ this.LotteryTimes = this.readData.LotteryTimes
|
|
|
+ //任务
|
|
|
+ if (this.readData.TaskIconCountClick)
|
|
|
+ task.TaskIconCountClick = this.readData.TaskIconCountClick
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 初始化
|
|
|
+ */
|
|
|
+ Init: function () {
|
|
|
+ let _BFirstLoadGame = false // this.readData ? this.readData.BFirstLoadGame : 0;
|
|
|
+ //date
|
|
|
+ this.GameYear = 0
|
|
|
+ this.GameMonth = 0
|
|
|
+ this.GameDay = 0
|
|
|
+ this.GameDate = '0000/00/01'
|
|
|
/**
|
|
|
- * 神农呗转换CNT ,比例是5:1
|
|
|
- * @param {*} snbAmount
|
|
|
- * @param {*} callback
|
|
|
- * @returns
|
|
|
+ * 新增 CNT 和 SNB
|
|
|
*/
|
|
|
- onSnbToCnt(snbAmount, callback) {
|
|
|
- if (!GlobalD.dapp) {
|
|
|
- console.warn("GlobalD.dapp未初始化,不能onSnbToCnt!");
|
|
|
- return;
|
|
|
- }
|
|
|
- // GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "暂不支持兑换CNT!", 2, () => {
|
|
|
- // console.log("finish toast!");
|
|
|
- // });
|
|
|
- // return;
|
|
|
- if (this.isPlayingSnb) {
|
|
|
- console.warn("同时触发支付SNB过快!");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (GlobalD.GameData.GetSNB() <= 0) {
|
|
|
- console.log("神农呗数量GetSNB:", GlobalD.GameData.GetSNB(), "替换snbAmount:", snbAmount);
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "神农呗数量不足!", 2, () => {
|
|
|
- console.log("finish toast!");
|
|
|
- });
|
|
|
- return;
|
|
|
+ this.CNT = 0
|
|
|
+ this.SNB = 0
|
|
|
+ this.Golden = 2000
|
|
|
+ this.Diamond = 100
|
|
|
+ this.WorkerLV = 0
|
|
|
+ this.WorkerNum = 0
|
|
|
+ this.CharacterInfoArray = []
|
|
|
+ this.WorkerCapacity = 5
|
|
|
+ this.TerritoryStateArray = [1, 1, 1, 1, 1, 1, 1, 1] //测试,全开地图
|
|
|
+ /**
|
|
|
+ * 添加建筑往后添加,到时候ManageBuildings 脚本 会初始化根据顺序
|
|
|
+ * BuildingStateArray---相关 GetBuildingStateArray 获取建筑状态
|
|
|
+ * BuildingNumArray ---相关 GetBuildingNumArray 获取建筑数量
|
|
|
+ * BuildingFrameArray ---相关 ManageUI 添加面板是否解锁之类的相关预制
|
|
|
+ */
|
|
|
+ this.BuildingStateArray = [
|
|
|
+ 1, //公路
|
|
|
+ 1, //路铲
|
|
|
+ 1, //拆迁
|
|
|
+ 1, //农舍
|
|
|
+ 1, //单元楼
|
|
|
+ 1, //别墅
|
|
|
+ 1, //农田
|
|
|
+ 1, //伐木场
|
|
|
+ 1, //矿坑
|
|
|
+ 1, //加工厂
|
|
|
+ 1, //冷饮摊
|
|
|
+ 1, //贩卖机
|
|
|
+ 1, //面包房
|
|
|
+ 1, //早餐车
|
|
|
+ 1, //饮茶店
|
|
|
+ 1, //点心店
|
|
|
+ 1, //美食店
|
|
|
+ 1, //西餐厅
|
|
|
+ 1, //花店
|
|
|
+ 1, //美发店
|
|
|
+ 1, //洋装店
|
|
|
+ 1, //珠宝店
|
|
|
+ 1, //电影院
|
|
|
+ 1, //路灯
|
|
|
+ 1, //绿化带
|
|
|
+ 1, //花坛
|
|
|
+ 1, //喷泉
|
|
|
+ 1, //警察局
|
|
|
+ 1, //游乐场
|
|
|
+ 1, //蓝色城堡
|
|
|
+ 1, //粉色城堡
|
|
|
+ 1, //Holy Farmland
|
|
|
+ 1, //Holy Farmland seed
|
|
|
+ ]
|
|
|
+ this.BuildingLockStateArray = [
|
|
|
+ 1, //公路
|
|
|
+ 1, //路铲
|
|
|
+ 1, //拆迁
|
|
|
+ 1, //农舍
|
|
|
+ 0, //单元楼
|
|
|
+ 0, //别墅
|
|
|
+ 1, //农田
|
|
|
+ 0, //伐木场
|
|
|
+ 0, //矿坑
|
|
|
+ 1, //加工厂
|
|
|
+ 0, //冷饮摊
|
|
|
+ 0, //贩卖机
|
|
|
+ 0, //面包房
|
|
|
+ 0, //早餐车
|
|
|
+ 0, //饮茶店
|
|
|
+ 0, //点心店
|
|
|
+ 0, //美食店
|
|
|
+ 0, //西餐厅
|
|
|
+ 0, //花店
|
|
|
+ 0, //美发店
|
|
|
+ 0, //洋装店
|
|
|
+ 0, //珠宝店
|
|
|
+ 0, //电影院
|
|
|
+ 1, //路灯
|
|
|
+ 1, //绿化带
|
|
|
+ 1, //花坛
|
|
|
+ 0, //喷泉
|
|
|
+ 0, //警察局
|
|
|
+ 0, //游乐场
|
|
|
+ 0, //蓝色城堡
|
|
|
+ 0, //粉色城堡
|
|
|
+ 1, //Holy Farmland
|
|
|
+ 1, //Holy Farmland seed
|
|
|
+ ]
|
|
|
+ //建筑物数量
|
|
|
+ this.BuildingNumArray = [
|
|
|
+ 0, //公路
|
|
|
+ 0, //路铲
|
|
|
+ 0, //拆迁
|
|
|
+ 4, //农舍
|
|
|
+ 1, //单元楼
|
|
|
+ 1, //别墅
|
|
|
+ 4, //农田
|
|
|
+ 1, //伐木场
|
|
|
+ 1, //矿坑
|
|
|
+ 2, //加工厂
|
|
|
+ 2, //冷饮摊
|
|
|
+ 1, //贩卖机
|
|
|
+ 1, //面包房
|
|
|
+ 1, //早餐车
|
|
|
+ 1, //饮茶店
|
|
|
+ 1, //点心店
|
|
|
+ 1, //美食店
|
|
|
+ 1, //西餐厅
|
|
|
+ 1, //花店
|
|
|
+ 1, //美发店
|
|
|
+ 1, //洋装店
|
|
|
+ 1, //珠宝店
|
|
|
+ 1, //电影院
|
|
|
+ 1, //路灯
|
|
|
+ 1, //绿化带
|
|
|
+ 1, //花坛
|
|
|
+ 1, //喷泉
|
|
|
+ 1, //警察局
|
|
|
+ 1, //游乐场
|
|
|
+ 1, //蓝色城堡
|
|
|
+ 1, //粉色城堡
|
|
|
+ 1, //Holy Farmland
|
|
|
+ 1, //Holy Farmland seed
|
|
|
+ ]
|
|
|
+
|
|
|
+ this.DiamondNumArray = AConfig.DiamondArray
|
|
|
+ //todo 钻石消耗默认值
|
|
|
+ this.DiamondNumArray.forEach((value, index, array) => {
|
|
|
+ array[index] = 0
|
|
|
+ })
|
|
|
+ cc.log('钻石消耗默认值', this.DiamondNumArray)
|
|
|
+ this.EveryDayRewardsArray = [0, 0, 0, 0, 0, 0, 0]
|
|
|
+
|
|
|
+ this.LastTimeEveryDayRewardsDate = '0000/00/00'
|
|
|
+ this.LastTimeLuckDate = '0000/00/00'
|
|
|
+
|
|
|
+ this.FoodTradeState = 1
|
|
|
+ this.WoodTradeState = 1
|
|
|
+ this.MineralTradeState = 1
|
|
|
+ //转盘分享给钻石金币
|
|
|
+ this.shareGive = [200, 5]
|
|
|
+ //签到分享给钻石金币
|
|
|
+ this.signInGive = [200, 5]
|
|
|
+ //每个月 给的 低保
|
|
|
+ this.EveryGive = [500, 10]
|
|
|
+ //公共分享
|
|
|
+ this.publicGive = [200, 50]
|
|
|
+ //每天抽奖次数
|
|
|
+ this.LotteryTimes = 10
|
|
|
+
|
|
|
+ // 1 === _BFirstLoadGame
|
|
|
+ if (_BFirstLoadGame) {
|
|
|
+ console.log('this.readData', this.readData)
|
|
|
+ // cc.log('初始化网络数据');
|
|
|
+ //读取日期数据
|
|
|
+ this.GameYear = this.readData.GameYear
|
|
|
+ this.GameMonth = this.readData.GameMonth
|
|
|
+ this.GameDay = this.readData.GameDay
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 接口
|
|
|
+ * todo cnt和snb 由钱包读取
|
|
|
+ */
|
|
|
+ this.CNT = 0
|
|
|
+ this.SNB = 0
|
|
|
+
|
|
|
+ //读取金币
|
|
|
+ this.Golden = this.readData.Golden
|
|
|
+ //读取钻石
|
|
|
+ this.Diamond = this.readData.Diamond
|
|
|
+ // cc.log('this.readData.Diamond', this.readData.Diamond);
|
|
|
+ //读取工人等级
|
|
|
+ this.WorkerLV = this.readData.WorkerLV
|
|
|
+ //工人数量
|
|
|
+ this.WorkerNum = this.readData.WorkerNum
|
|
|
+ //工人容量
|
|
|
+ this.WorkerCapacity = this.readData.WorkerCapacity
|
|
|
+ this.GameDate = this.readData.GameDate
|
|
|
+ this.LastTimeEveryDayRewardsDate =
|
|
|
+ this.readData.LastTimeEveryDayRewardsDate
|
|
|
+ this.LastTimeLuckDate = this.readData.LastTimeLuckDate
|
|
|
+ this.EveryDayRewardsArray = this.readData.EveryDayRewardsArray //.split('_');
|
|
|
+ this.TerritoryStateArray = this.readData.TerritoryStateArray //.split('_');
|
|
|
+ //面板状态
|
|
|
+ this.BuildingStateArray = this.readData.BuildingStateArray //.split('_');
|
|
|
+
|
|
|
+ //解锁设置为 不用解锁
|
|
|
+ this.BuildingLockStateArray.forEach((value, index, array) => {
|
|
|
+ array[index] = 1
|
|
|
+ })
|
|
|
+ // this.BuildingLockStateArray = this.readData.BuildingLockStateArray.split('_');
|
|
|
+ this.BuildingNumArray = this.readData.BuildingNumArray //.split('_');
|
|
|
+ this.DiamondNumArray = this.readData.DiamondNumArray //.split('_');
|
|
|
+ this.FoodTradeState = this.readData.FoodTradeState
|
|
|
+ this.WoodTradeState = this.readData.WoodTradeState
|
|
|
+ this.MineralTradeState = this.readData.MineralTradeState
|
|
|
+
|
|
|
+ //工人工作信息
|
|
|
+ if (this.readData.characterInfoArray)
|
|
|
+ this.CharacterInfoArray = this.readData.characterInfoArray
|
|
|
+ //道路数据
|
|
|
+ if (this.readData.highwayIndex)
|
|
|
+ this.GameData_highwayIndex = this.readData.highwayIndex
|
|
|
+
|
|
|
+ //建筑物数据
|
|
|
+ if (this.readData.buildingsInfo)
|
|
|
+ this.GameData_buildings = this.readData.buildingsInfo
|
|
|
+
|
|
|
+ this.LotteryTimes = this.readData.LotteryTimes
|
|
|
+ //任务
|
|
|
+ if (this.readData.TaskIconCountClick)
|
|
|
+ task.TaskIconCountClick = this.readData.TaskIconCountClick
|
|
|
+ //测试5W
|
|
|
+ // this.PlusDiamond(50000);
|
|
|
+
|
|
|
+ //如果用户未租赁过土地且未用钻石兑换过种子,则显示
|
|
|
+ GlobalD.GameData.getPlayerExchangeState((res, vaule) => {
|
|
|
+ //warn 这里需要增加对结果的判断
|
|
|
+ this.ManageUI.getComponent('ManageUI').DiamondGapViewShow()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ //GET / SET /Plus
|
|
|
+ GetGameDate: function () {
|
|
|
+ return this.GameDate
|
|
|
+ },
|
|
|
+ SetGameDate: function (num) {
|
|
|
+ this.GameDate = num
|
|
|
+ },
|
|
|
+ PlusGameDate: function (num) {
|
|
|
+ this.GameDate += num
|
|
|
+ },
|
|
|
+ GetGolden: function () {
|
|
|
+ return parseInt(this.Golden)
|
|
|
+ },
|
|
|
+ GetGoldenCallBack(_CallBack) {
|
|
|
+ if (_CallBack) _CallBack({ resGolden: parseInt(this.Golden) })
|
|
|
+ },
|
|
|
+ SetGolden: function (Num) {
|
|
|
+ let LastMoney = this.Golden
|
|
|
+ this.Golden = Num
|
|
|
+ let CurrentMoney = Num
|
|
|
+ this.ManageUI.getComponent('ManageUI').GoldenChangeCallBack(
|
|
|
+ this.GetGolden(),
|
|
|
+ LastMoney,
|
|
|
+ CurrentMoney
|
|
|
+ )
|
|
|
+ },
|
|
|
+ PlusGolden: function (Num) {
|
|
|
+ if (this.Golden + Num < 0) {
|
|
|
+ this.SetGolden(0)
|
|
|
+ } else {
|
|
|
+ this.SetGolden(this.Golden + Num)
|
|
|
+ }
|
|
|
+ // task.task50W();
|
|
|
+ },
|
|
|
+ GetDiamond: function () {
|
|
|
+ return parseInt(this.Diamond)
|
|
|
+ },
|
|
|
+ SetDiamond: function (num) {
|
|
|
+ let LastMoney = this.Diamond
|
|
|
+ this.Diamond = num
|
|
|
+ let CurrentMoney = num
|
|
|
+ this.ManageUI.getComponent('ManageUI').DiamondChangeCallBack(
|
|
|
+ this.GetDiamond(),
|
|
|
+ LastMoney,
|
|
|
+ CurrentMoney
|
|
|
+ )
|
|
|
+ },
|
|
|
+ PlusDiamond: function (num) {
|
|
|
+ if (this.Diamond + num < 0) {
|
|
|
+ this.SetDiamond(0)
|
|
|
+ } else {
|
|
|
+ this.SetDiamond(this.Diamond + num)
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 游戏里面的cnt 和神农呗
|
|
|
+ */
|
|
|
+ GetCNT: function () {
|
|
|
+ return parseFloat(this.CNT)
|
|
|
+ },
|
|
|
+ SetCNT: function (Num) {
|
|
|
+ this.CNT = Num
|
|
|
+ this.ManageUI.getComponent('ManageUI').CNTChangeCallBack(this.CNT)
|
|
|
+ },
|
|
|
+ GetSNB: function () {
|
|
|
+ return parseFloat(this.SNB)
|
|
|
+ },
|
|
|
+ SetSNB: function (Num) {
|
|
|
+ this.SNB = Num
|
|
|
+ this.ManageUI.getComponent('ManageUI').SNBChangeCallBack(this.SNB)
|
|
|
+ },
|
|
|
+
|
|
|
+ GetWorkerLV: function () {
|
|
|
+ return parseInt(this.WorkerLV)
|
|
|
+ },
|
|
|
+ SetWorkerLV: function (num) {
|
|
|
+ this.WorkerLV = num
|
|
|
+ },
|
|
|
+ PlusWorkerLV: function (num) {
|
|
|
+ this.WorkerLV += num
|
|
|
+ },
|
|
|
+ GetWorkerNum: function () {
|
|
|
+ return parseInt(this.WorkerNum)
|
|
|
+ },
|
|
|
+ SetWorkerNum: function (num) {
|
|
|
+ this.WorkerNum = num
|
|
|
+ },
|
|
|
+ PlusWorkerNum: function (num) {
|
|
|
+ this.WorkerNum += num
|
|
|
+ },
|
|
|
+ GetLastTimeEveryDayRewardsDate: function () {
|
|
|
+ return this.LastTimeEveryDayRewardsDate
|
|
|
+ },
|
|
|
+ //获取转盘 时间
|
|
|
+ GetLastTimeLuckDate: function () {
|
|
|
+ return this.LastTimeLuckDate
|
|
|
+ },
|
|
|
+ //设置转盘时间
|
|
|
+ SetLastTimeLuckDate: function (DateString) {
|
|
|
+ this.LastTimeLuckDate = DateString
|
|
|
+ },
|
|
|
+ SetLastTimeEveryDayRewardsDate: function (DateString) {
|
|
|
+ this.LastTimeEveryDayRewardsDate = DateString
|
|
|
+ },
|
|
|
+
|
|
|
+ //工人信息数组
|
|
|
+ GetWorkerCharacterInfoArray: function () {
|
|
|
+ return this.CharacterInfoArray
|
|
|
+ },
|
|
|
+ SetWorkerCharacterInfoArray: function (item) {
|
|
|
+ this.CharacterInfoArray = item
|
|
|
+ },
|
|
|
+
|
|
|
+ /*** */
|
|
|
+ GetWorkerCapacity: function () {
|
|
|
+ return parseInt(this.WorkerCapacity)
|
|
|
+ },
|
|
|
+ SetWorkerCapacity: function (num) {
|
|
|
+ this.WorkerCapacity = num
|
|
|
+ },
|
|
|
+ PlusWorkerCapacity: function (num) {
|
|
|
+ this.WorkerCapacity += num
|
|
|
+ },
|
|
|
+ GetTerritoryStateArray: function () {
|
|
|
+ return this.TerritoryStateArray
|
|
|
+ },
|
|
|
+ SetTerritoryStateArray: function (aTerritoryStateArray) {
|
|
|
+ this.TerritoryStateArray = aTerritoryStateArray
|
|
|
+ },
|
|
|
+ PlusTerritoryStateArray: function (Item) {
|
|
|
+ this.TerritoryStateArray.push(Item)
|
|
|
+ },
|
|
|
+ GetBuildingStateArray: function () {
|
|
|
+ return this.BuildingStateArray
|
|
|
+ },
|
|
|
+ SetBuildingStateArray: function (aBuildingStateArray) {
|
|
|
+ this.BuildingStateArray = aBuildingStateArray
|
|
|
+ },
|
|
|
+ PlusBuildingStateArray: function (Item) {
|
|
|
+ this.BuildingStateArray.push(Item)
|
|
|
+ },
|
|
|
+ GetBuildingLockStateArray: function () {
|
|
|
+ return this.BuildingLockStateArray
|
|
|
+ },
|
|
|
+ SetBuildingLockStateArray: function (aArray) {
|
|
|
+ this.BuildingLockStateArray = aArray
|
|
|
+ },
|
|
|
+ PlusBuildingLockStateArray: function (Item) {
|
|
|
+ this.BuildingLockStateArray.push(Item)
|
|
|
+ },
|
|
|
+
|
|
|
+ GetBuildingNumArray: function () {
|
|
|
+ return this.BuildingNumArray
|
|
|
+ },
|
|
|
+ SetBuildingNumArray: function (aBuildingNumArray) {
|
|
|
+ this.BuildingNumArray = aBuildingNumArray
|
|
|
+ },
|
|
|
+ PlusBuildingNumArray: function (Item) {
|
|
|
+ this.BuildingNumArray.push(Item)
|
|
|
+ },
|
|
|
+ //操作钻石数据
|
|
|
+ GetDiamondNumArray: function () {
|
|
|
+ return this.DiamondNumArray
|
|
|
+ },
|
|
|
+ SetDiamondNumArray: function (aDiamondNumArray) {
|
|
|
+ this.DiamondNumArray = aDiamondNumArray
|
|
|
+ },
|
|
|
+ GetEveryDayRewardsArray: function () {
|
|
|
+ return this.EveryDayRewardsArray
|
|
|
+ },
|
|
|
+ SetEveryDayRewardsArray: function (aArray) {
|
|
|
+ this.EveryDayRewardsArray = aArray
|
|
|
+ },
|
|
|
+ PlusEveryDayRewardsArray: function (Item) {
|
|
|
+ this.EveryDayRewardsArray.push(Item)
|
|
|
+ },
|
|
|
+ GetFoodTradeState: function () {
|
|
|
+ return parseInt(this.FoodTradeState)
|
|
|
+ },
|
|
|
+ SetFoodTradeState: function (num) {
|
|
|
+ this.FoodTradeState = num
|
|
|
+ },
|
|
|
+ PlusFoodTradeState: function (num) {
|
|
|
+ this.FoodTradeState += num
|
|
|
+ },
|
|
|
+ GetWoodTradeState: function () {
|
|
|
+ return parseInt(this.WoodTradeState)
|
|
|
+ },
|
|
|
+ SetWoodTradeState: function (num) {
|
|
|
+ this.WoodTradeState = num
|
|
|
+ },
|
|
|
+ PlusWoodTradeState: function (num) {
|
|
|
+ this.WoodTradeState += num
|
|
|
+ },
|
|
|
+ GetMineralTradeState: function () {
|
|
|
+ return parseInt(this.MineralTradeState)
|
|
|
+ },
|
|
|
+ SetMineralTradeState: function (num) {
|
|
|
+ this.MineralTradeState = num
|
|
|
+ },
|
|
|
+ PlusMineralTradeState: function (num) {
|
|
|
+ this.MineralTradeState += num
|
|
|
+ },
|
|
|
+ GetLotteryTimes: function () {
|
|
|
+ return parseInt(this.LotteryTimes)
|
|
|
+ },
|
|
|
+ SetLotteryTimes: function (num) {
|
|
|
+ this.LotteryTimes = num
|
|
|
+ },
|
|
|
+ PlusLotteryTimes: function (num) {
|
|
|
+ this.LotteryTimes += num
|
|
|
+ },
|
|
|
+
|
|
|
+ //初始化道路
|
|
|
+ onSpawnHighway() {
|
|
|
+ // 获取InitPoint层
|
|
|
+ let InitPos = this._tiledMap.getLayer('InitPoint')
|
|
|
+ InitPos.enabled = false
|
|
|
+
|
|
|
+ //创建公路数据
|
|
|
+ if (this.readData && this.readData.allHighwayStylesAndIndex) {
|
|
|
+ //保存到内存中
|
|
|
+ this.GameData_highwayIndex = this.readData.highwayIndex
|
|
|
+ //先赋值道路的对象数组
|
|
|
+ let _AllHighwayAIndex = Object.assign(
|
|
|
+ [],
|
|
|
+ this.readData.allHighwayStylesAndIndex
|
|
|
+ )
|
|
|
+ //获取最后建造公路的层级
|
|
|
+ this.HighwayLayer = this._tiledMap.getLayer('Highway')
|
|
|
+ for (let i = 0; i < _AllHighwayAIndex.length; i++) {
|
|
|
+ let _tiledPos = GlobalD.TiledMap.analyticalIndexData(
|
|
|
+ _AllHighwayAIndex[i].highwayInfoIndex
|
|
|
+ )
|
|
|
+ /**
|
|
|
+ * 解决固定土地时候,道路 和房子 冲突
|
|
|
+ *
|
|
|
+ */
|
|
|
+ if (
|
|
|
+ GlobalD.game.getManageGameIndexArrayAt(
|
|
|
+ cc.v2(_tiledPos.x, _tiledPos.y)
|
|
|
+ )
|
|
|
+ ) {
|
|
|
+ continue
|
|
|
}
|
|
|
-
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "已发起兑换!", 5, () => {
|
|
|
- console.log("finish toast!");
|
|
|
- });
|
|
|
- this.isPlayingSnb = true;
|
|
|
- GlobalD.dapp.snbToCnt(snbAmount).then((data) => {
|
|
|
- //更新日志数据
|
|
|
- cc.find("GameNode/ManageDapp").getComponent("ManageDapp").onUpdateSnbList();
|
|
|
- const [err, tx] = data;
|
|
|
- this.isPlayingSnb = false;
|
|
|
- if (err === null) {
|
|
|
- // TODO 成功, 兑换为链上操作,需要提供回调接口给这边服务端确认交易成功后修改扣除SNB数量
|
|
|
- console.log(tx) // 交易hash,唯一标识符
|
|
|
- //扣除对应的神农呗,本地修改显示
|
|
|
- GlobalD.GameData.SetSNB(GlobalD.GameData.GetSNB() - snbAmount);
|
|
|
-
|
|
|
- GlobalD.dapp.cntBalance().then((cntBalance) => {
|
|
|
- //会延迟返回
|
|
|
- // console.log("更新cnt:" + cntBalance) // string, 精度18,需要自行处理省略几位小数
|
|
|
- GlobalD.GameData.SetCNT(cntBalance);
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "区块确认中,请耐心等待!", 5, () => {
|
|
|
- console.log("finish toast!");
|
|
|
- });
|
|
|
-
|
|
|
- } else {
|
|
|
- console.log(err)
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), err, 2, () => {
|
|
|
- console.log("finish toast!");
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- if (callback) {
|
|
|
- callback(data);
|
|
|
+ let highwayTemp = cc.instantiate(this.HighWayPrefabs)
|
|
|
+ highwayTemp.parent = this.HighwayLayer.node
|
|
|
+ let tiledTile = highwayTemp.addComponent('TiledTile')
|
|
|
+ tiledTile.x = _tiledPos.x
|
|
|
+ tiledTile.y = _tiledPos.y
|
|
|
+ //地图设置可行走区域公路设置
|
|
|
+ AStar.setMapSolid(_tiledPos.x, _tiledPos.y, 0)
|
|
|
+ // _buildId ==0 是公路
|
|
|
+ let _buildId = 0
|
|
|
+ let occupyTemp = cc.v2(_buildId, _AllHighwayAIndex[i].highwayInfoIndex)
|
|
|
+ GlobalD.game.OccupyArray.push(occupyTemp)
|
|
|
+ highwayTemp
|
|
|
+ .getComponent('HighwayInfo')
|
|
|
+ .onChangeHighwayStyles(_AllHighwayAIndex[i].highwayInfoType)
|
|
|
+
|
|
|
+ GlobalD.game.AllHighwayStylesAndIndex.push(_AllHighwayAIndex[i])
|
|
|
+ }
|
|
|
+ // console.log("end");
|
|
|
+ } else {
|
|
|
+ //如果用户没有存储数据
|
|
|
+ //根据InitPoint 的数据,创建初始化的地图数据 的初始化数据
|
|
|
+
|
|
|
+ this.HighwayLayer = this._tiledMap.getLayer('Highway')
|
|
|
+ for (var i = 0; i < 32; i++) {
|
|
|
+ //去除中间两条路
|
|
|
+ if (i == 16 || i == 17) continue
|
|
|
+ for (var j = 0; j < 32; j++) {
|
|
|
+ let tilesPos = cc.v2(i, j)
|
|
|
+
|
|
|
+ if (InitPos.getTileGIDAt(tilesPos)) {
|
|
|
+ let index = GlobalD.TiledMap.getIndex(tilesPos)
|
|
|
+ this.GameData_highwayIndex.push(index)
|
|
|
+
|
|
|
+ let highwayTemp = cc.instantiate(this.HighWayPrefabs)
|
|
|
+ highwayTemp.parent = this.HighwayLayer.node
|
|
|
+ let tiledTile = highwayTemp.addComponent('TiledTile')
|
|
|
+ tiledTile.x = tilesPos.x
|
|
|
+ tiledTile.y = tilesPos.y
|
|
|
+ // cc.log('onSpawnHighway2');
|
|
|
+ //地图设置可行走区域公路设置
|
|
|
+ AStar.setMapSolid(tilesPos.x, tilesPos.y, 0)
|
|
|
+ // _buildId ==0 是公路
|
|
|
+ let _buildId = 0
|
|
|
+ let occupyTemp = cc.v2(_buildId, index)
|
|
|
+ GlobalD.game.OccupyArray.push(occupyTemp)
|
|
|
+
|
|
|
+ let tile = InitPos.getTiledTileAt(tilesPos.x, tilesPos.y, true)
|
|
|
+
|
|
|
+ let _MoveType = reGameStates.HighwayType.moveX
|
|
|
+ // if (tile.gid == 15) {
|
|
|
+ // _MoveType = reGameStates.HighwayType.moveX;
|
|
|
+ // } else
|
|
|
+ if (tile.gid == 16) {
|
|
|
+ _MoveType = reGameStates.HighwayType.moveY
|
|
|
+ } else if (tile.gid == 11) {
|
|
|
+ _MoveType = reGameStates.HighwayType.ZebraCrossingX
|
|
|
+ } else if (tile.gid == 12) {
|
|
|
+ _MoveType = reGameStates.HighwayType.ZebraCrossingY
|
|
|
}
|
|
|
- });
|
|
|
- },
|
|
|
- //站内收益
|
|
|
- onCntCanWithdrawBalance(callback) {
|
|
|
- if (!GlobalD.dapp) {
|
|
|
- console.warn("GlobalD.dapp未初始化,不能onGetCNTRevenue!");
|
|
|
- return;
|
|
|
+ // return;
|
|
|
+ //更换公路样式
|
|
|
+ GlobalD.game.onCreateDifferentRoadStyles({
|
|
|
+ _buildId: _buildId,
|
|
|
+ _highwayType: _MoveType,
|
|
|
+ _roadIndex: index,
|
|
|
+ _hightwayNode: highwayTemp,
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
- GlobalD.dapp.cntCanWithdrawBalance().then((data) => {
|
|
|
- const { err, res } = data;
|
|
|
- if (err === null) {
|
|
|
- console.log(res) //Number 返回数字
|
|
|
- GlobalD.GameData.CNTDrawBalance = res;
|
|
|
- }
|
|
|
- //todo ,记录一个信息
|
|
|
- if (callback) {
|
|
|
- callback(data);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- //站内收益提现
|
|
|
- onCntWithdraw(amount, callback) {
|
|
|
- if (!GlobalD.dapp) {
|
|
|
- console.warn("GlobalD.dapp未初始化,不能onCntWithdraw!");
|
|
|
- return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //外面的两条路
|
|
|
+ let initRoad = this._tiledMap.getLayer('Road')
|
|
|
+ initRoad.enabled = false
|
|
|
+ for (var i = 16; i < 18; i++) {
|
|
|
+ for (var j = 0; j < 32; j++) {
|
|
|
+ let tilesPos = cc.v2(i, j)
|
|
|
+ // cc.log('road tilesPos',tilesPos)
|
|
|
+ if (initRoad.getTileGIDAt(tilesPos)) {
|
|
|
+ let index = GlobalD.TiledMap.getIndex(tilesPos)
|
|
|
+ this.GameData_highwayIndex.push(index)
|
|
|
+ let highwayTemp = cc.instantiate(this.HighWayPrefabs)
|
|
|
+ highwayTemp.parent = this.HighwayLayer.node
|
|
|
+ let tiledTile = highwayTemp.addComponent('TiledTile')
|
|
|
+ tiledTile.x = tilesPos.x
|
|
|
+ tiledTile.y = tilesPos.y
|
|
|
+ // cc.log('initRoad');
|
|
|
+ //地图设置可行走区域公路设置
|
|
|
+ AStar.setMapSolid(tilesPos.x, tilesPos.y, 0)
|
|
|
+ let _buildId = 0
|
|
|
+ let occupyTemp = cc.v2(_buildId, index)
|
|
|
+ GlobalD.game.OccupyArray.push(occupyTemp)
|
|
|
+ //更换公路样式
|
|
|
+ // if (j >= 25 && j <= 27 || j >= 19 && j <= 21 || j >= 9 && j <= 11)
|
|
|
+ // highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(reGameStates.HighwayType.none);
|
|
|
+ // else
|
|
|
+ // highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(reGameStates.HighwayType.moveY);
|
|
|
}
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "收益正在提现中", 10, () => {
|
|
|
- console.log("finish toast!");
|
|
|
- });
|
|
|
- GlobalD.dapp.cntWithdraw(amount).then((data) => {
|
|
|
- const [err, tx] = data;
|
|
|
- console.log("onCntWithdraw:", data);
|
|
|
- if (err === null) {
|
|
|
- console.log(tx) //String|null 交易唯一哈市
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "提现成功!", 1, () => {
|
|
|
- console.log("finish toast!");
|
|
|
- });
|
|
|
- } else {
|
|
|
- GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), err, 1, () => {
|
|
|
- console.log("finish toast!");
|
|
|
- });
|
|
|
- }
|
|
|
- if (callback) {
|
|
|
- callback(data);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ //清除所有的数据
|
|
|
+ onClearAllData() {
|
|
|
+ this.unschedule(this.AutoSaveData)
|
|
|
+ //任务索引
|
|
|
+ cc.sys.localStorage.removeItem('userdata')
|
|
|
+ //跳回登录场景
|
|
|
+ // cc.director.loadScene('Login');
|
|
|
+ },
|
|
|
+ //保存数据请求
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 现在转服务器存储,原本所有相关操作通过服务器计算。
|
|
|
+ * 一、目前涉及到的是 SNT 和 SNB 两个货币相关,和买田地操作 (可以理解为租聘,三种类型)
|
|
|
+ *
|
|
|
+ * isNetwork:true,上传到网络
|
|
|
+ *
|
|
|
+ */
|
|
|
+ pushData: function (isNetwork) {
|
|
|
+ // cc.log(this.EveryDayRewardsArray);
|
|
|
+ // console.log(this.readData.BFirstLoadGame);
|
|
|
+ var datas = {
|
|
|
+ version: this.GameVersion,
|
|
|
+ // 转后台处理
|
|
|
+ BFirstLoadGame: 1, //只要push数据,就证明已经开始第一次游戏了
|
|
|
+
|
|
|
+ /**游戏不修改,默认值 start */
|
|
|
+ shareGive: this.shareGive,
|
|
|
+ //签到分享给钻石金币
|
|
|
+ signInGive: this.signInGive,
|
|
|
+ //每个月 给的 低保
|
|
|
+ EveryGive: this.EveryGive,
|
|
|
+ //公共分享
|
|
|
+ publicGive: this.publicGive,
|
|
|
+ /**游戏不修改,默认值 end */
|
|
|
+
|
|
|
+ //时间
|
|
|
+ GameYear: this.GameYear,
|
|
|
+ GameMonth: this.GameMonth,
|
|
|
+ GameDay: this.GameDay,
|
|
|
+
|
|
|
+ //这里只是单纯的存储起来
|
|
|
+ CNT: this.CNT,
|
|
|
+ SNB: this.SNB,
|
|
|
+
|
|
|
+ Golden: this.Golden,
|
|
|
+ Diamond: this.Diamond,
|
|
|
+ WorkerLV: this.WorkerLV,
|
|
|
+ WorkerNum: this.WorkerNum,
|
|
|
+ WorkerCapacity: this.WorkerCapacity,
|
|
|
+ GameDate: this.GameDate,
|
|
|
+ LastTimeEveryDayRewardsDate: this.LastTimeEveryDayRewardsDate,
|
|
|
+ LastTimeLuckDate: this.LastTimeLuckDate,
|
|
|
+ EveryDayRewardsArray: this.EveryDayRewardsArray, //.join('_'),
|
|
|
+ TerritoryStateArray: this.TerritoryStateArray, //.join('_'),
|
|
|
+ //面板状态
|
|
|
+ BuildingStateArray: this.BuildingStateArray, //.join('_'),
|
|
|
+ BuildingLockStateArray: this.BuildingLockStateArray, //.join('_'),
|
|
|
+
|
|
|
+ /**
|
|
|
+ * SNB和CNT相关,需要后台筛选 田地 和 种子。单独处理
|
|
|
+ */
|
|
|
+ BuildingNumArray: this.BuildingNumArray, //.join('_'),
|
|
|
+ DiamondNumArray: this.DiamondNumArray, //.join('_'),
|
|
|
+ FoodTradeState: this.FoodTradeState,
|
|
|
+ WoodTradeState: this.WoodTradeState,
|
|
|
+ MineralTradeState: this.MineralTradeState,
|
|
|
+
|
|
|
+ LotteryTimes: this.LotteryTimes,
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 这些数据不用服务器初始化
|
|
|
+ */
|
|
|
+ //工人工作信息
|
|
|
+ characterInfoArray: this.CharacterInfoArray,
|
|
|
+ //道路数据
|
|
|
+ highwayIndex: this.GameData_highwayIndex,
|
|
|
+ allHighwayStylesAndIndex: GlobalD.game.AllHighwayStylesAndIndex,
|
|
|
+ //建筑物数据
|
|
|
+ buildingsInfo: this.GameData_buildings,
|
|
|
+ //任务
|
|
|
+ TaskIconCountClick: task.TaskIconCountClick,
|
|
|
+ }
|
|
|
|
|
|
- //获取账户站内CNT明细(村长和镇长才有)
|
|
|
- onCntLog(page, limit, callback) {
|
|
|
- if (!GlobalD.dapp) {
|
|
|
- console.warn("GlobalD.dapp未初始化,不能onGetSnbToCntInfo!");
|
|
|
- return;
|
|
|
+ if (isNetwork) {
|
|
|
+ var data = []
|
|
|
+ // data["openid"] = userData.openId;
|
|
|
+ // data["userdata"] = JSON.stringify(datas);
|
|
|
+ data['playerData'] = JSON.stringify(datas)
|
|
|
+
|
|
|
+ /** 推送信息 */
|
|
|
+ utils.post(utils.api.playerPushInfo, data, (res, playerPushInfoTemp) => {
|
|
|
+ // console.log('playerPushInfoTemp', playerPushInfoTemp);
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ console.log('存储本地:' + isNetwork)
|
|
|
+ //保存用户数据到本地
|
|
|
+ cc.sys.localStorage.setItem('userdata', JSON.stringify(datas))
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 兑换种子时候,特殊处理数据
|
|
|
+ * 扣除相应的钻石
|
|
|
+ */
|
|
|
+ exchangeSeed(callback) {
|
|
|
+ //先暂停存储
|
|
|
+ this.unschedule(this.AutoSaveData)
|
|
|
+
|
|
|
+ utils.post(
|
|
|
+ utils.api.exchangeSeeds,
|
|
|
+ { diamondAmount: 30000, seedId: 8 },
|
|
|
+ (res, value) => {
|
|
|
+ console.log('兑换种子', value)
|
|
|
+ callback(res, value)
|
|
|
+ //兑换成功后
|
|
|
+ if (0 === value.code) {
|
|
|
+ //更新一次数据
|
|
|
+ let _playerData = JSON.parse(value.data.playerData)
|
|
|
+ //更新本地钻石数据
|
|
|
+ this.SetDiamond(_playerData.Diamond)
|
|
|
+ callback(res, vaule)
|
|
|
+ } else {
|
|
|
+ //兑换失败
|
|
|
+ GlobalD.GameData.showToast(cc.find('Canvas/UICamera'), '兑换失败', 2)
|
|
|
}
|
|
|
- GlobalD.dapp.cntLog(page, limit).then((data) => {
|
|
|
- const { err, res } = data;
|
|
|
- // if (err === null) {
|
|
|
- // console.log(res) //
|
|
|
- // }
|
|
|
- if (callback) {
|
|
|
- callback(data);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
|
|
|
- //获取 神农呗转 CNT 日志
|
|
|
- onGetSnbToCntInfo(page, limit, callback) {
|
|
|
- if (!GlobalD.dapp) {
|
|
|
- console.warn("GlobalD.dapp未初始化,不能onGetSnbToCntInfo!");
|
|
|
- return;
|
|
|
+ //重新开启存储
|
|
|
+ this.schedule(this.AutoSaveData, 15)
|
|
|
+ }
|
|
|
+ )
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 获取是否租赁过的状态
|
|
|
+ */
|
|
|
+ getPlayerExchangeState(callback) {
|
|
|
+ utils.get(utils.api.playerExchangeState, {}, (res, vaule) => {
|
|
|
+ console.log('租赁状态:', value)
|
|
|
+ callback(res, vaule)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 暂时不需要从这里读取
|
|
|
+ */
|
|
|
+ getLandConfig() {
|
|
|
+ utils.get(utils.api.landConfig, {}, (res, value) => {
|
|
|
+ if (0 === value.code) {
|
|
|
+ this.ConfigLand = value.data
|
|
|
+ } else {
|
|
|
+ console.warn('未能读取到config土地?')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //获取用户全部租赁土地
|
|
|
+ getUserLandList() {
|
|
|
+ utils.get(utils.api.userLandList, {}, (res, vaule) => {})
|
|
|
+ },
|
|
|
+ //获取用户已租赁土地的状态
|
|
|
+ getLandState(context) {
|
|
|
+ let { landId, callback } = context
|
|
|
+ utils.get(utils.api.landState, { landId: landId }, (res, vaule) => {
|
|
|
+ callback(res, vaule)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //获取商城种子
|
|
|
+ getMallSeed(callback) {
|
|
|
+ utils.get(utils.api.mallSeed, {}, (res, vaule) => {
|
|
|
+ callback(res, vaule)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ getWarehouseSeedAndFruit(callback) {
|
|
|
+ utils.get(utils.api.getSeedAndFruit, {}, (res, vaule) => {
|
|
|
+ callback(res, vaule)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //获取种子状态
|
|
|
+ onGetSeedState(data, callback) {
|
|
|
+ utils.get(utils.api.getSeedState, data, (res, vaule) => {
|
|
|
+ callback(res, vaule)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ //种植种子
|
|
|
+ // data:{landId:1,seedId:1}
|
|
|
+ onPlant(data, callback) {
|
|
|
+ utils.get(utils.api.plant, data, (res, vaule) => {
|
|
|
+ callback(res, vaule)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ //收取果实
|
|
|
+ onAddFruit(data, callback) {
|
|
|
+ if (this.isOnAddFruit) {
|
|
|
+ console.log('收取果实过快!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.isOnAddFruit = true
|
|
|
+ utils.post(utils.api.addFruit, data, (res, vaule) => {
|
|
|
+ this.isOnAddFruit = false
|
|
|
+ callback(res, vaule)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ //出售果实
|
|
|
+ onSaleFruit(data, callback) {
|
|
|
+ if (this.isOnSaleFruit) {
|
|
|
+ console.log('出售果实过快!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.isOnSaleFruit = true
|
|
|
+ utils.post(utils.api.saleFruit, data, (res, vaule) => {
|
|
|
+ this.isOnSaleFruit = false
|
|
|
+ callback(res, vaule)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ //赠送果实
|
|
|
+ onGrantFruit(data, callback) {
|
|
|
+ if (this.isOnGrantFruit) {
|
|
|
+ console.log('赠送果实过快!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.isOnGrantFruit = true
|
|
|
+ utils.post(utils.api.grantFruit, data, (res, vaule) => {
|
|
|
+ this.isOnGrantFruit = false
|
|
|
+ callback(res, vaule)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ //神农呗购买种子
|
|
|
+ onBuySeedsWithSNB(snbAmount, seedId, callback) {
|
|
|
+ utils.post(
|
|
|
+ utils.api.snbBuySeeds,
|
|
|
+ { payAmount: snbAmount, seedId: seedId },
|
|
|
+ (res, vaule) => {
|
|
|
+ callback(res, vaule)
|
|
|
+ }
|
|
|
+ )
|
|
|
+ },
|
|
|
+
|
|
|
+ //获取用户的snb
|
|
|
+ onGetUserSnb(callback) {
|
|
|
+ utils.get(utils.api.userSnbInfo, {}, (res, value) => {
|
|
|
+ GlobalD.GameData.SetSNB(value.data.SNB)
|
|
|
+ if (callback) callback(res, value)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 支付cnt操作
|
|
|
+ * @param {*} amount // 需支付金额
|
|
|
+ * @param {*} payType 支付类型,1购买土地租凭, 2自然灾害防护,3野兽防护
|
|
|
+ * @param {*} itemType 操作物品的id 字符串
|
|
|
+ */
|
|
|
+ payCNT(cntAmount, payType, itemType, callback) {
|
|
|
+ console.log(
|
|
|
+ '购买金额:' +
|
|
|
+ cntAmount +
|
|
|
+ '购买类型PlayType:' +
|
|
|
+ payType +
|
|
|
+ '购买物品的id:' +
|
|
|
+ itemType
|
|
|
+ )
|
|
|
+ if (!GlobalD.dapp) {
|
|
|
+ console.warn('GlobalD.dapp未初始化,不能payCNT!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //
|
|
|
+ if (this.isPlayingCnt) {
|
|
|
+ console.warn('同时触发支付CNT过快!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (GlobalD.GameData.GetCNT() < cntAmount) {
|
|
|
+ console.log(
|
|
|
+ 'cnt 不足,GetCNT:' +
|
|
|
+ GlobalD.GameData.GetCNT() +
|
|
|
+ '消费的cntAmount' +
|
|
|
+ cntAmount
|
|
|
+ )
|
|
|
+ GlobalD.GameData.showToast(
|
|
|
+ cc.find('Canvas/UICamera'),
|
|
|
+ 'CNT不足!',
|
|
|
+ 2,
|
|
|
+ () => {
|
|
|
+ console.log('finish toast! CNT不足!')
|
|
|
}
|
|
|
- GlobalD.dapp.swapLog(page, limit).then((data) => {
|
|
|
- const { err, res } = data;
|
|
|
- if (err === null) {
|
|
|
- console.log(res) //
|
|
|
- }
|
|
|
- if (callback) {
|
|
|
- callback(data);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- //获取 snb 流水日志
|
|
|
- onGetSnbInfoList(page, limit, callback) {
|
|
|
-
|
|
|
- utils.get(utils.api.snbList, { page: page, limit: limit }, (res, value) => {
|
|
|
- // console.log("snb操作日志", value);
|
|
|
- if (0 === value.code) {
|
|
|
- if (callback)
|
|
|
- callback(value.data);
|
|
|
- } else {
|
|
|
- let mySnbList = [];
|
|
|
- if (callback)
|
|
|
- callback(mySnbList);
|
|
|
- }
|
|
|
-
|
|
|
+ )
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.isPlayingCnt = true
|
|
|
+ GlobalD.GameData.showToast(
|
|
|
+ cc.find('Canvas/UICamera'),
|
|
|
+ '支付处理中...',
|
|
|
+ 5,
|
|
|
+ () => {
|
|
|
+ console.log('finish toast!支付处理中...')
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
+ GlobalD.dapp.payCnt(cntAmount, payType, itemType).then((data) => {
|
|
|
+ const [err, tx] = data
|
|
|
+ this.isPlayingCnt = false
|
|
|
+ if (err === null) {
|
|
|
+ // TODO 成功, 支付为链上操作,需要提供回调接口给这边服务端确认交易成功后修改购买订单结果
|
|
|
+ console.log(tx) // 交易hash,唯一标识符
|
|
|
+
|
|
|
+ GlobalD.dapp.cntBalance().then((cntBalance) => {
|
|
|
+ //会延迟返回
|
|
|
+ // console.log("更新cnt:" + cntBalance) // string, 精度18,需要自行处理省略几位小数
|
|
|
+ GlobalD.GameData.SetCNT(cntBalance)
|
|
|
})
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- updateToast() {
|
|
|
- if (this.toastEndTime <= 0) {
|
|
|
- this.toast.active = false
|
|
|
- if (this.isStart) {
|
|
|
- if (this.toastCallback != null && this.toastCallback != undefined) {
|
|
|
- this.toastCallback();
|
|
|
- // console.log(this.toastCallback);
|
|
|
- }
|
|
|
- this.isStart = false;
|
|
|
- }
|
|
|
- // console.log("this.toast.active:" + this.toast.active);
|
|
|
+ GlobalD.GameData.showToast(
|
|
|
+ cc.find('Canvas/UICamera'),
|
|
|
+ '支付成功!',
|
|
|
+ 5,
|
|
|
+ () => {
|
|
|
+ GlobalD.GameData.showToast(
|
|
|
+ cc.find('Canvas/UICamera'),
|
|
|
+ '区块确认中,请耐心等待!',
|
|
|
+ 120
|
|
|
+ )
|
|
|
+ }
|
|
|
+ )
|
|
|
+ } else {
|
|
|
+ console.log(err)
|
|
|
+ GlobalD.GameData.showToast(cc.find('Canvas/UICamera'), err, 2, () => {
|
|
|
+ console.log('finish toast!')
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ if (callback) {
|
|
|
+ callback(data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 神农呗转换CNT ,比例是5:1
|
|
|
+ * @param {*} snbAmount
|
|
|
+ * @param {*} callback
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ onSnbToCnt(snbAmount, callback) {
|
|
|
+ if (!GlobalD.dapp) {
|
|
|
+ console.warn('GlobalD.dapp未初始化,不能onSnbToCnt!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "暂不支持兑换CNT!", 2, () => {
|
|
|
+ // console.log("finish toast!");
|
|
|
+ // });
|
|
|
+ // return;
|
|
|
+ if (this.isPlayingSnb) {
|
|
|
+ console.warn('同时触发支付SNB过快!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (GlobalD.GameData.GetSNB() <= 0) {
|
|
|
+ console.log(
|
|
|
+ '神农呗数量GetSNB:',
|
|
|
+ GlobalD.GameData.GetSNB(),
|
|
|
+ '替换snbAmount:',
|
|
|
+ snbAmount
|
|
|
+ )
|
|
|
+ GlobalD.GameData.showToast(
|
|
|
+ cc.find('Canvas/UICamera'),
|
|
|
+ '神农呗数量不足!',
|
|
|
+ 2,
|
|
|
+ () => {
|
|
|
+ console.log('finish toast!')
|
|
|
}
|
|
|
- this.toastEndTime--;
|
|
|
- },
|
|
|
+ )
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- showToast(parent, content, time, callback) {
|
|
|
- if (callback) {
|
|
|
- this.toastCallback = callback;
|
|
|
- } else {
|
|
|
- this.toastCallback = null;
|
|
|
- }
|
|
|
+ GlobalD.GameData.showToast(
|
|
|
+ cc.find('Canvas/UICamera'),
|
|
|
+ '已发起兑换!',
|
|
|
+ 5,
|
|
|
+ () => {
|
|
|
+ console.log('finish toast!')
|
|
|
+ }
|
|
|
+ )
|
|
|
+ this.isPlayingSnb = true
|
|
|
+ GlobalD.dapp.snbToCnt(snbAmount).then((data) => {
|
|
|
+ //更新日志数据
|
|
|
+ cc.find('GameNode/ManageDapp')
|
|
|
+ .getComponent('ManageDapp')
|
|
|
+ .onUpdateSnbList()
|
|
|
+ const [err, tx] = data
|
|
|
+ this.isPlayingSnb = false
|
|
|
+ if (err === null) {
|
|
|
+ // TODO 成功, 兑换为链上操作,需要提供回调接口给这边服务端确认交易成功后修改扣除SNB数量
|
|
|
+ console.log(tx) // 交易hash,唯一标识符
|
|
|
+ //扣除对应的神农呗,本地修改显示
|
|
|
+ GlobalD.GameData.SetSNB(GlobalD.GameData.GetSNB() - snbAmount)
|
|
|
+
|
|
|
+ GlobalD.dapp.cntBalance().then((cntBalance) => {
|
|
|
+ //会延迟返回
|
|
|
+ // console.log("更新cnt:" + cntBalance) // string, 精度18,需要自行处理省略几位小数
|
|
|
+ GlobalD.GameData.SetCNT(cntBalance)
|
|
|
+ })
|
|
|
|
|
|
- this.isStart = true;
|
|
|
- if (this.toast) {
|
|
|
- // console.log(this.toast.active);
|
|
|
- this.toast.active = true;
|
|
|
- this.toast.parent = parent;
|
|
|
- this.toast.zIndex = 999;
|
|
|
- let DetailLabel = this.toast.getChildByName('DetailLabel');
|
|
|
- DetailLabel.getComponent(cc.Label).string = content;
|
|
|
- this.toastEndTime = time;
|
|
|
+ GlobalD.GameData.showToast(
|
|
|
+ cc.find('Canvas/UICamera'),
|
|
|
+ '区块确认中,请耐心等待!',
|
|
|
+ 5,
|
|
|
+ () => {
|
|
|
+ console.log('finish toast!')
|
|
|
+ }
|
|
|
+ )
|
|
|
+ } else {
|
|
|
+ console.log(err)
|
|
|
+ GlobalD.GameData.showToast(cc.find('Canvas/UICamera'), err, 2, () => {
|
|
|
+ console.log('finish toast!')
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ if (callback) {
|
|
|
+ callback(data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //站内收益
|
|
|
+ onCntCanWithdrawBalance(callback) {
|
|
|
+ if (!GlobalD.dapp) {
|
|
|
+ console.warn('GlobalD.dapp未初始化,不能onGetCNTRevenue!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ GlobalD.dapp.cntCanWithdrawBalance().then((data) => {
|
|
|
+ const { err, res } = data
|
|
|
+ if (err === null) {
|
|
|
+ console.log(res) //Number 返回数字
|
|
|
+ GlobalD.GameData.CNTDrawBalance = res
|
|
|
+ }
|
|
|
+ //todo ,记录一个信息
|
|
|
+ if (callback) {
|
|
|
+ callback(data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //站内收益提现
|
|
|
+ onCntWithdraw(amount, callback) {
|
|
|
+ if (!GlobalD.dapp) {
|
|
|
+ console.warn('GlobalD.dapp未初始化,不能onCntWithdraw!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ GlobalD.GameData.showToast(
|
|
|
+ cc.find('Canvas/UICamera'),
|
|
|
+ '收益正在提现中',
|
|
|
+ 10,
|
|
|
+ () => {
|
|
|
+ console.log('finish toast!')
|
|
|
+ }
|
|
|
+ )
|
|
|
+ GlobalD.dapp.cntWithdraw(amount).then((data) => {
|
|
|
+ const [err, tx] = data
|
|
|
+ console.log('onCntWithdraw:', data)
|
|
|
+ if (err === null) {
|
|
|
+ console.log(tx) //String|null 交易唯一哈市
|
|
|
+ GlobalD.GameData.showToast(
|
|
|
+ cc.find('Canvas/UICamera'),
|
|
|
+ '提现成功!',
|
|
|
+ 1,
|
|
|
+ () => {
|
|
|
+ console.log('finish toast!')
|
|
|
+ }
|
|
|
+ )
|
|
|
+ } else {
|
|
|
+ GlobalD.GameData.showToast(cc.find('Canvas/UICamera'), err, 1, () => {
|
|
|
+ console.log('finish toast!')
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (callback) {
|
|
|
+ callback(data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ //获取账户站内CNT明细(村长和镇长才有)
|
|
|
+ onCntLog(page, limit, callback) {
|
|
|
+ if (!GlobalD.dapp) {
|
|
|
+ console.warn('GlobalD.dapp未初始化,不能onGetSnbToCntInfo!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ GlobalD.dapp.cntLog(page, limit).then((data) => {
|
|
|
+ const { err, res } = data
|
|
|
+ // if (err === null) {
|
|
|
+ // console.log(res) //
|
|
|
+ // }
|
|
|
+ if (callback) {
|
|
|
+ callback(data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ //获取 神农呗转 CNT 日志
|
|
|
+ onGetSnbToCntInfo(page, limit, callback) {
|
|
|
+ if (!GlobalD.dapp) {
|
|
|
+ console.warn('GlobalD.dapp未初始化,不能onGetSnbToCntInfo!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ GlobalD.dapp.swapLog(page, limit).then((data) => {
|
|
|
+ const { err, res } = data
|
|
|
+ if (err === null) {
|
|
|
+ console.log(res) //
|
|
|
+ }
|
|
|
+ if (callback) {
|
|
|
+ callback(data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ //获取 snb 流水日志
|
|
|
+ onGetSnbInfoList(page, limit, callback) {
|
|
|
+ utils.get(utils.api.snbList, { page: page, limit: limit }, (res, value) => {
|
|
|
+ // console.log("snb操作日志", value);
|
|
|
+ if (0 === value.code) {
|
|
|
+ if (callback) callback(value.data)
|
|
|
+ } else {
|
|
|
+ let mySnbList = []
|
|
|
+ if (callback) callback(mySnbList)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ updateToast() {
|
|
|
+ if (this.toastEndTime <= 0) {
|
|
|
+ this.toast.active = false
|
|
|
+ if (this.isStart) {
|
|
|
+ if (this.toastCallback != null && this.toastCallback != undefined) {
|
|
|
+ this.toastCallback()
|
|
|
+ // console.log(this.toastCallback);
|
|
|
}
|
|
|
- },
|
|
|
-
|
|
|
- onTestToken() {
|
|
|
- utils.onTestToken();
|
|
|
+ this.isStart = false
|
|
|
+ }
|
|
|
+ // console.log("this.toast.active:" + this.toast.active);
|
|
|
+ }
|
|
|
+ this.toastEndTime--
|
|
|
+ },
|
|
|
+
|
|
|
+ showToast(parent, content, time, callback) {
|
|
|
+ if (callback) {
|
|
|
+ this.toastCallback = callback
|
|
|
+ } else {
|
|
|
+ this.toastCallback = null
|
|
|
}
|
|
|
|
|
|
+ this.isStart = true
|
|
|
+ if (this.toast) {
|
|
|
+ // console.log(this.toast.active);
|
|
|
+ this.toast.active = true
|
|
|
+ this.toast.parent = parent
|
|
|
+ this.toast.zIndex = 999
|
|
|
+ let DetailLabel = this.toast.getChildByName('DetailLabel')
|
|
|
+ DetailLabel.getComponent(cc.Label).string = content
|
|
|
+ this.toastEndTime = time
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
-});
|
|
|
+ onTestToken() {
|
|
|
+ utils.onTestToken()
|
|
|
+ },
|
|
|
+})
|