import { ryw_Event } from "../../../FrameWork/Event/EventEnum"; import EventMgr from "../../../FrameWork/Event/EventMgr"; import GameReport from "../../../FrameWork/Report/ZyZyReport"; import User from "../../../FrameWork/User/User"; import Common5 from "../../../Platform/th/Common5"; import JuQingManager from "../../JuQingChat/JuQingManager"; import TaskManager, { MainTaskIdEnum } from "../../JuQingChat/TaskManager"; import UserManager from "../../Manager/UserManager"; import PrefabManage from "../../PrefabManager/PrefabManage"; import StockManager from "./StockManager"; const { ccclass, property } = cc._decorator; enum AddSub { Add, Sub } @ccclass export default class BuyStockBox extends cc.Component { @property(cc.Node) stockName: cc.Node = null @property(cc.Node) huafei: cc.Node = null @property(cc.Node) amount: cc.Node = null @property(cc.Node) leftStockNum: cc.Node = null @property(cc.Node) btn_reduce: cc.Node = null @property(cc.Node) btn_add: cc.Node = null curStockName: string = "" curAmount: number = 1 curPrice: number = 0 stockSum: number = 0 onLoad() { this.openTouchEvent(this.btn_add) this.openTouchEvent(this.btn_reduce) } initBoxContent(stockConfig) { this.curPrice = stockConfig.curPrice this.curStockName = stockConfig.stockName let singConfig = StockManager.getSingleCompanyConfig(stockConfig.stockName) this.stockSum = singConfig.stockSum let myStockHistoryData = User.getMyStockData() let curStockHistoryData = myStockHistoryData[this.curStockName] let historyProssess = (curStockHistoryData ? curStockHistoryData.prossess : 0) console.log(this.curPrice, this.curStockName, this.stockSum, historyProssess, 'this.curStockName +++++++===') this.stockName.getComponent(cc.Label).string = stockConfig.stockName this.huafei.getComponent(cc.Label).string = Common5.getNumberChangeHanzi(stockConfig.curPrice, '1', 1) + "" this.amount.getComponent(cc.Label).string = "1" if (this.stockSum - this.curAmount - historyProssess <= 0) { this.leftStockNum.getComponent(cc.Label).string = "还剩(0股)" this.amount.getComponent(cc.Label).string = "0" this.huafei.getComponent(cc.Label).string = '0' this.curAmount = 0 } else { this.leftStockNum.getComponent(cc.Label).string = "还剩(" + (this.stockSum - this.curAmount - historyProssess) + "股)" } //this.leftStockNum.getComponent(cc.Label).string = "还剩("+(this.stockSum - this.curAmount - historyProssess)+"股)" } onBtnClose() { // Common5.playEffect("CommonRes/sound/按键点击") this.node.active = false this.reportKey(() => { GameReport.BtnsReport('关闭买入') }) } //购买 onBtnSure() { // Common5.playEffect("CommonRes/sound/按键点击") this.reportKey(() => { GameReport.BtnsReport('确认买入') }) if (this.curAmount == 0) { //Common5.showTips_customTime('当前股票卖完了换一支股票吧',1) PrefabManage.showTextTips('当前股票卖完了换一支股票吧') return } let allMoney = User.getMoney() let expendMoney = this.curAmount * this.curPrice console.log("钱总数==花钱==", allMoney, expendMoney) if (expendMoney > allMoney) { //Common5.showTips_customTime('余额不足挣钱去吧',1) PrefabManage.showTextTips('余额不足挣钱去吧') } else { UserManager.subMoney(expendMoney) this.refreshMyStockStorageData() } this.node.active = false } refreshLabelShow(leftAmount) { this.huafei.getComponent(cc.Label).string = Common5.getNumberChangeHanzi(this.curAmount * this.curPrice, '1', 1) + "" console.log(this.curAmount, 'this.curAmount+++=') console.log(this.curPrice, 'this.curPrice+++=') let bb = Common5.getNumberChangeHanzi(this.curAmount, '1') this.amount.getComponent(cc.Label).string = bb + "" let aa = Common5.getNumberChangeHanzi(leftAmount, '1') this.leftStockNum.getComponent(cc.Label).string = "还剩(" + aa + "股)" } //刷新我的股票购买数据 refreshMyStockStorageData() { let myStockHistoryData = User.getMyStockData() console.log("已存在数据==", myStockHistoryData) let curStockHistoryData = myStockHistoryData[this.curStockName] let newProssess = this.curAmount //已经购买过该股票 if (curStockHistoryData) { let historyBuyPrice = curStockHistoryData.buyPrice let historyProssess = curStockHistoryData.prossess newProssess = historyProssess + this.curAmount let newBuyPrice = Math.floor((historyBuyPrice * historyProssess + this.curPrice * this.curAmount) / newProssess) let buyStockTab = { stockName: this.curStockName, buyPrice: newBuyPrice, prossess: newProssess } User.setMyStockData(buyStockTab) //首次购买该股票 } else { newProssess = this.curAmount let buyStockTab = { stockName: this.curStockName, buyPrice: this.curPrice, prossess: newProssess } User.setMyStockData(buyStockTab) } if (this.curStockName == '钱氏集团' && newProssess >= this.stockSum) { let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id if (mainId == MainTaskIdEnum.MainTask_1106) { // JuQingManager.unLockNewJuQing('WX_2002'); TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_1106); TaskManager.setCurUnLockMainTaskInfo(MainTaskIdEnum.MainTask_1201); EventMgr.emitEvent_custom(ryw_Event.EnterNextGame, true) } }else if (this.curStockName == '傅氏医疗' && newProssess >= this.stockSum) { let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id if (mainId == MainTaskIdEnum.MainTask_1404) { TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_1404); TaskManager.setCurUnLockMainTaskInfo(MainTaskIdEnum.MainTask_1405); } }else if (this.curStockName == '傅氏股票' && newProssess >= this.stockSum) { let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id if (mainId == MainTaskIdEnum.MainTask_1806) { TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_1806); TaskManager.setCurUnLockMainTaskInfo(MainTaskIdEnum.MainTask_1901); } }else if (this.curStockName == '安氏集团' && newProssess >= this.stockSum) { let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id if (mainId == MainTaskIdEnum.MainTask_2104) { TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_2104); TaskManager.setCurUnLockMainTaskInfo(MainTaskIdEnum.MainTask_2105); } }else if (this.curStockName == '龙氏集团' && newProssess >= this.stockSum) { let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id if (mainId == MainTaskIdEnum.MainTask_2404) { TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_2404); TaskManager.setCurUnLockMainTaskInfo(MainTaskIdEnum.MainTask_2405); } } EventMgr.emitEvent_custom(ryw_Event.updateStockView); } openTouchEvent(node) { node.on(cc.Node.EventType.TOUCH_START, this.touchStartNode, this) node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMoveNode, this) node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEndNode, this) node.on(cc.Node.EventType.TOUCH_END, this.touchEndNode, this) } touchStartNode(event) { // Common5.playEffect("CommonRes/sound/按键点击") let target = event.target target.scale = 1.05 if (target.name == 'btn_reduce') { this.addOrSubMoneyCommon(AddSub.Sub) this.reportKey(() => { GameReport.BtnsReport('买入减') }) } else if (target.name == 'btn_add') { this.addOrSubMoneyCommon(AddSub.Add) this.reportKey(() => { GameReport.BtnsReport('买入加') }) } } touchMoveNode(event) { } addOrSubMoneyCommon(type) { if (AddSub.Sub == type) { this.curAmount -= 1 } else if (AddSub.Add == type) { this.curAmount += 1 } let callFunc = () => { if (this.curAmount < 1) { this.curAmount = 1 } if (this.curAmount * this.curPrice >= User.getMoney()) { this.curAmount = Math.floor(User.getMoney() / this.curPrice) } else { } let myStockHistoryData = User.getMyStockData() let curStockHistoryData = myStockHistoryData[this.curStockName] let historyProssess = curStockHistoryData ? curStockHistoryData.prossess : 0 console.log("this.stockSum=", this.stockSum) console.log("this.curAmount=", this.curAmount) console.log("historyProssess=", historyProssess) let leftAmount = this.stockSum - this.curAmount - historyProssess if (leftAmount <= 0) { leftAmount = 0 } if (this.stockSum - historyProssess <= 0) { this.curAmount = 0 } if (this.curAmount >= this.stockSum) { this.curAmount = this.stockSum } this.refreshLabelShow(leftAmount) } callFunc() cc.tween(this.node) .delay(0.3) .call(() => { let random = Common5.getRandomNum(100, 20000) if (AddSub.Sub == type) { this.curAmount -= random } else if (AddSub.Add == type) { this.curAmount += random } callFunc() }) .union() .repeatForever() .start() } touchEndNode(event) { let target = event.target target.scale = 1.00 this.node.stopAllActions() } buyMaxClick() { this.reportKey(() => { GameReport.BtnsReport('最大买入') }) let myStockHistoryData = User.getMyStockData() let curStockHistoryData = myStockHistoryData[this.curStockName] let historyProssess = curStockHistoryData ? curStockHistoryData.prossess : 0 if (this.stockSum * this.curPrice >= User.getMoney()) { this.curAmount = Math.floor(User.getMoney() / this.curPrice) this.curAmount = this.stockSum - historyProssess if (this.curAmount <= 0) { this.curAmount = 0 } } else { this.curAmount = this.stockSum - historyProssess if (this.curAmount <= 0) { this.curAmount = 0 } } let leftAmount = this.stockSum - this.curAmount - historyProssess if (leftAmount <= 0) { leftAmount = 0 } console.log("this.stockSum=", this.stockSum) console.log("this.curAmount=", this.curAmount) console.log("historyProssess=", historyProssess) this.refreshLabelShow(leftAmount) } buyMinClick() { this.reportKey(() => { GameReport.BtnsReport('最小买入') }) this.curAmount = 1 let myStockHistoryData = User.getMyStockData() let curStockHistoryData = myStockHistoryData[this.curStockName] let historyProssess = curStockHistoryData ? curStockHistoryData.prossess : 0 let leftAmount = this.stockSum - this.curAmount - historyProssess if (leftAmount <= 0) { leftAmount = 0 this.curAmount = 0 } this.refreshLabelShow(leftAmount) } protected reportKey(callfunc: Function) { GameReport.SetCurGame("股票"); callfunc() } }