const GameModule = require("../utils/GameModule"); const DWTool = require("../utils/DWTool"); const Api = require('../net/Api'); const GameNotificationKey = require('../utils/GameEnum').GameNotificationKey; const TapTapTool = require("../utils/TapTapTool"); // var cityList = require('../data/city'); // const BuildingModel = require('./utils/BuildingModel'); // const AlertManager = require('./utils/AlertManager'); // const ReportType = require("./utils/GameEnum").ReportType; cc.Class({ extends: cc.Component, properties: { _reportFailDuration: 0, grossIncomeLabel: cc.Label, grossCoin: sp.Skeleton, grossIncomeRichText: cc.RichText, rateRichText: cc.RichText, clickCoinRichText: cc.RichText, rateCoinRichText: cc.RichText, headSprite: cc.Sprite, starsLabel: cc.Label, starsProgress: cc.ProgressBar, diamondLabel: cc.Label, recordModify: [], recordUnlockModify: [], _stars: 0, stars: { get: function () { return this._stars; }, set: function (value) { console.log('星星增加数 ' + value); this._stars = value; } }, _gold: 0, gold: { get: function () { return this._gold; }, set: function (value) { this._gold = value; this.grossIncomeRichText.string = `${TapTapTool.parseToString(this._gold)}`; } }, //建筑每秒自动生成的金币数 _rateGold: 0, rateGold: { get: function () { return this._rateGold; }, set: function (value) { this._rateGold = value; if (this._rateGold.n > 0) { this.rateRichText.node.active = true; let rate = TapTapTool.multiple(GameModule.skill.multiple, this.perpetualMt); let newValue = TapTapTool.multiple(rate, this._rateGold); this.rateRichText.string = `+${TapTapTool.parseToString(newValue)}`; this.rateCoinRichText.string = `${TapTapTool.parseToString(newValue)}`; } else { this.rateRichText.node.active = false; this.rateCoinRichText.string = "0"; } } }, //自动每次点击需要的秒数 _secondClick: 0, secondClick: { get: function () { return this._secondClick; }, set: function (value) { this._secondClick = value < 0 ? 0 : parseFloat(value); this.unschedule(this.autoClickGetGold, this); if (this._secondClick > 0) { this.schedule(this.autoClickGetGold, this._secondClick); } } }, _diamond: 0, diamond: { get: function () { return this._diamond; }, set: function (value) { this._diamond = value; this.diamondLabel.string = this._diamond; } }, _clickCount: 0, clickCount: { get: function () { return this._clickCount; }, set: function (value) { this._clickCount = value; } }, _buyStarCount: 0, buyStarCount: { get: function () { return this._buyStarCount; }, set: function (value) { this._buyStarCount = value; } }, _buildingLevel: 1, buildingLevel: { get: function () { return this._buildingLevel; }, set: function (value) { this._buildingLevel = value; // 把用户的总部等级上报给微信 DWTool.submitWechatScore(this._buildingLevel); } }, // //获得奖励的永久产出倍数 // perpetualMt: { // default: 1, // visible: false, // type: cc.Float // }, // //获得奖励的永久点击倍数 // perpetualClickMt: { // default: 1, // visible: false, // type: cc.Float // }, //入驻在建筑的明星加成倍数 // starMt: { // default: 1, // visible: false, // type: cc.Float // }, levelHomeItemFullCount: 0 }, onLoad() { GameModule.userInfo = this; this._rate = 0; this._isPlayAnimation = false; this.seq = 1; this._rateGold = {'n': 0, 'e': 0}; this._gold = {'n': 0, 'e': 0}; this.coinTap = {'n': 0, 'e': 0}; this.buildingLevel = Global.userData.buildingLevel; // let objc = TapTapTool.goldStrToClass('3.265;29'); // let str = TapTapTool.parseToString(objc); // let sub = TapTapTool.compare({'n': 323, 'e': 25}, objc); // let n = {'n': 423, 'e': 0}; // let m = {'n': 1.1, 'e': 0}; // console.log(TapTapTool.multiple(n, m)); // console.log(sub); // console.log(str); // 初始化用户信息 this.initUserInfo(); // 轮询上报游戏数据 this.reportFunc = () => { if (this._reportFailDuration > 0) { this._reportFailDuration -= 3; return; } this.doReport(); }; this.schedule(this.reportFunc, 3.0); //建筑每秒自动赚的钱 this.addMoneyFunc = () => { this.buildingAddMoney(); }; this.schedule(this.addMoneyFunc, 1.0); }, /** * 每秒增加金币 */ buildingAddMoney() { if (this.rateGold.n > 0) { // this.gold = TapTapTool.add(this.rateGold, this.gold); let add = TapTapTool.multiple(this.rateGold, GameModule.skill.multiple); this.gold = TapTapTool.add(this.gold, TapTapTool.multiple(add, this.perpetualMt)); // this.gold += (this.rateGold * GameModule.skill.multiple * this.perpetualMt); this.secondRateTextAnimation(); } }, secondRateTextAnimation() { let fadeIn = cc.fadeIn(0.2); let delay = cc.delayTime(0.3); let fadeOut = cc.fadeOut(0.3); let action = cc.sequence(fadeIn, delay, fadeOut); this.rateRichText.node.runAction(action); }, refreshSecondText() { if (this._rateGold.n > 0) { this.rateRichText.node.active = true; let rate = TapTapTool.multiple(GameModule.skill.multiple, this.perpetualMt); let newValue = TapTapTool.multiple(rate, this._rateGold); this.rateRichText.string = `+${TapTapTool.parseToString(newValue)}`; this.rateCoinRichText.string = `${TapTapTool.parseToString(newValue)}`; } else { this.rateRichText.node.active = false; } if (GameModule.userInfo.coinTap.n > 0) { this.clickCoinRichText.string = `${TapTapTool.parseToString(GameModule.userInfo.coinTap)}`; } else { this.clickCoinRichText.string = "0"; } }, /** * 每秒自动点击次数 */ autoClickGetGold() { GameEvent.fire(GameNotificationKey.AutoClickGold); }, /** * 上报用户数据 */ doReport() { // return; let goldStr = this._gold.n + ";" + this._gold.e; DWTool.reportInfo(this.seq, goldStr, this.stars, this.clickCount, this.recordModify, this.recordUnlockModify) .then(() => { this._reportFailDuration = 0; this.recordModify = []; this.recordUnlockModify = []; this.seq += 1; }).catch(err => { if (err.code === -4) { this._reportFailDuration = 60; } console.log('上报失败 ' + err.msg); }) }, /** * 初始化用户数据 */ initUserInfo() { let userInfo = this.userInfo = Global.userData; if (userInfo != undefined) { this.updateUserRes({ gold: userInfo.goldObj, stars: userInfo.ogStars, diamond: userInfo.diamond, ticket: userInfo.ticket, clickCount: userInfo.clickCount }); this.perpetualMt = userInfo.mtObj; this.perpetualClickMt = userInfo.clickMtObj; this.buyStarCount = userInfo.buyStarCount; } }, /** * 更新用户资源数据 * @param {object} data 更新资源对象 * @param {number} data.grossIncome 增加的金币 * @param {number} data.stars 星星 * @param {number} data.diamond 钻石 * @param {number} data.ticket 艺人券 */ updateUserRes(data) { console.log("Update userData: ", JSON.stringify(data)); if (data.gold) { this.gold = TapTapTool.add(data.gold, this.gold); } if (data.stars) { this.stars += parseInt(data.stars); } if (data.diamond) { this.diamond += parseInt(data.diamond); } if (data.ticket) { this.ticket += parseInt(data.ticket); } if (data.clickCount) { this.clickCount += parseInt(data.clickCount); } }, updateRecordModify(buildingInfo) { for (let i = 0; i < this.recordModify.length; i++) { let temp = this.recordModify[i]; if (buildingInfo.roomId == temp.roomId) { this.recordModify.splice(i, 1, buildingInfo); return; } } this.recordModify.push(buildingInfo); } });