咸鱼的反击
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.
xianyudefanji/assets/Scripts/stock/BuyStockBox.ts

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)
}
}