You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
311 lines
9.8 KiB
311 lines
9.8 KiB
2 months ago
|
import { ryw_Event } from "../../FrameWork/Event/EventEnum";
|
||
|
import EventMgr from "../../FrameWork/Event/EventMgr";
|
||
|
|
||
|
import User from "../../FrameWork/User/User";
|
||
|
import Common5 from "../../Platform/th/Common5";
|
||
|
import TaskManager, { MainTaskIdEnum } from "../JuQingChat/TaskManager";
|
||
|
|
||
|
import UserManager from "../Manager/UserManager";
|
||
|
|
||
|
import PrefabManage, { GameType } 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("sound/按键点击")
|
||
|
this.node.active = false
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
//购买
|
||
|
onBtnSure(){
|
||
|
//Common5.playEffect("sound/按键点击")
|
||
|
|
||
|
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){
|
||
|
//完成任务533
|
||
|
let mainTaskInfo:any = TaskManager.getCurUnLockMainTaskInfo()
|
||
|
let mainId = mainTaskInfo.Id
|
||
|
if(mainId == MainTaskIdEnum.MainTask_530){
|
||
|
|
||
|
//EventMgr.emitEvent_custom(ryw_Event.RefreshUnLockGame);
|
||
|
TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_530)
|
||
|
this.node.parent.removeFromParent()
|
||
|
this.node.parent.destroy()
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
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("sound/按键点击")
|
||
|
let target = event.target
|
||
|
target.scale = 1.05
|
||
|
if(target.name == 'btn_reduce'){
|
||
|
this.addOrSubMoneyCommon(AddSub.Sub)
|
||
|
|
||
|
|
||
|
|
||
|
}else if(target.name == 'btn_add'){
|
||
|
this.addOrSubMoneyCommon(AddSub.Add)
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
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(){
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
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.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)
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|