觉醒时刻
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.
 
 
 

211 lines
6.9 KiB

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 UserManager from "../../Manager/UserManager";
const { ccclass, property } = cc._decorator;
enum AddSub {
Add,
Sub
}
@ccclass
export default class SaleStockBox extends cc.Component {
@property(cc.Node)
stockName: cc.Node = null
@property(cc.Node)
saleGet: cc.Node = null
@property(cc.Node)
shouXuFei: cc.Node = null
@property(cc.Node)
yingLiMoney: 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
historyBuyPrice: number = 0
historyProssess: number = 0
onLoad() {
this.openTouchEvent(this.btn_add)
this.openTouchEvent(this.btn_reduce)
}
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)
}
initBoxContent(stockConfig) {
this.curPrice = stockConfig.curPrice
this.curStockName = stockConfig.stockName
this.stockName.getComponent(cc.Label).string = stockConfig.stockName
this.saleGet.getComponent(cc.Label).string = Common5.getNumberChangeHanzi(this.curPrice, '1', 1) + ""
let myStockHistoryData = User.getMyStockData()
let curStockHistoryData = myStockHistoryData[this.curStockName]
//购买价
this.historyBuyPrice = curStockHistoryData.buyPrice
//拥有数量
this.historyProssess = curStockHistoryData.prossess
let yingLi = this.curPrice - this.historyBuyPrice
if (yingLi >= 0) {
this.yingLiMoney.color = new cc.Color().fromHEX("#D20D00")
this.yingLiMoney.getComponent(cc.Label).string = "盈利:" + Common5.getNumberChangeHanzi(yingLi, '1', 1)
} else {
this.yingLiMoney.color = new cc.Color().fromHEX("#03A239")
this.yingLiMoney.getComponent(cc.Label).string = "亏损:" + Common5.getNumberChangeHanzi(Math.abs(yingLi), '1', 1)
}
this.leftStockNum.getComponent(cc.Label).string = "还剩:" + (this.historyProssess - 1) + "股"
}
onBtnClose() {
// Common5.playEffect("CommonRes/sound/按键点击")
this.node.active = false
this.reportKey(() => {
GameReport.BtnsReport('关闭卖出')
})
}
refreshLabelShow() {
this.saleGet.getComponent(cc.Label).string = Common5.getNumberChangeHanzi(this.curPrice * this.curAmount, '1', 1) + ""
let bb = Common5.getNumberChangeHanzi(this.curAmount, '1')
this.amount.getComponent(cc.Label).string = bb + ""
let yingLi = this.curPrice - this.historyBuyPrice
if (yingLi >= 0) {
this.yingLiMoney.color = new cc.Color().fromHEX("#D20D00")
this.yingLiMoney.getComponent(cc.Label).string = "盈利:" + Common5.getNumberChangeHanzi(yingLi * this.curAmount, '1', 1)
} else {
this.yingLiMoney.color = new cc.Color().fromHEX("#03A239")
this.yingLiMoney.getComponent(cc.Label).string = "亏损:" + Common5.getNumberChangeHanzi(Math.abs(yingLi * this.curAmount), '1', 1)
}
this.leftStockNum.getComponent(cc.Label).string = "还剩:" + (this.historyProssess - this.curAmount) + "股"
}
//出售
onBtnSale() {
// Common5.playEffect("CommonRes/sound/按键点击")
let shuiLv = 0.02
let truthMoney = Math.floor(this.curPrice * this.curAmount * (1 - shuiLv))
this.refreshMyStockStorageData()
UserManager.addMoney(truthMoney, this.node.parent)
this.reportKey(() => {
GameReport.BtnsReport('确认卖出')
})
this.node.active = false
}
//刷新我的股票购买数据
refreshMyStockStorageData() {
let myStockHistoryData = User.getMyStockData()
console.log("已存在数据==", myStockHistoryData)
let curStockHistoryData = myStockHistoryData[this.curStockName]
let historyProssess = curStockHistoryData.prossess
let newProssess = historyProssess - this.curAmount
//全部卖出
if (newProssess <= 0) {
delete myStockHistoryData[this.curStockName]
} else {
curStockHistoryData.prossess = newProssess
}
EventMgr.emitEvent_custom(ryw_Event.updateStockView);
}
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.historyProssess) {
this.curAmount = this.historyProssess
}
this.refreshLabelShow()
}
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.curAmount = this.historyProssess
this.refreshLabelShow()
this.reportKey(() => {
GameReport.BtnsReport('最大卖出')
})
}
buyMinClick() {
this.curAmount = 1
this.refreshLabelShow()
this.reportKey(() => {
GameReport.BtnsReport('最小卖出')
})
}
protected reportKey(callfunc: Function) {
GameReport.SetCurGame("股票");
callfunc()
}
}