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