咸鱼的反击
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.
 
 
 

580 lines
19 KiB

import GameReport from "../../FrameWork/Report/ZyZyReport";
import User from "../../FrameWork/User/User";
import AppPlatform from "../../FrameWork/Util/AppPlatform";
import Common5 from "../../Platform/th/Common5";
import GMManager from "../Manager/GMManager";
import UserManager from "../Manager/UserManager";
import PrefabManage from "../PrefabManager/PrefabManage";
import GameBase from "../SCommon/GameBase";
const { ccclass, property } = cc._decorator;
enum BallPosIndex {
StartPos,
Pos1,
Pos2,
Pos3
}
let rateArray = {
//默认
DanKai_0: [50, 60, 75],
ShuangKai_0: [60, 80, 80],
//长白山WX_6
DanKai_1: [45, 55, 65],
ShuangKai_1: [50, 70, 80],
//垃圾堆WX_8
DanKai_2: [35, 45, 60],
ShuangKai_2: [45, 60, 70],
//快递站WX_11
DanKai_3: [30, 40, 50],
ShuangKai_3: [40, 50, 60],
//松花江WX_13
DanKai_4: [25, 35, 45],
ShuangKai_4: [30, 40, 50],
//冰雪世界WX_16
DanKai_5: [15, 25, 35],
ShuangKai_5: [20, 30, 40],
//下水道DH_11
DanKai_6: [10, 20, 30],
ShuangKai_6: [15, 25, 35],
MoneyRate: [0.1, 0.05, 0.01],
GMDanKai: [100, 100, 100],
GMShuangKai: [0, 100, 100]
}
@ccclass
export default class SanXianGuiDong extends GameBase {
@property(cc.Node)
ballNode: cc.Node = null;
@property(cc.Node)
spineMove: cc.Node = null;
@property(cc.Node)
successBox: cc.Node = null;
@property(cc.Node)
failBox: cc.Node = null;
@property(cc.Node)
moveball: cc.Node = null;
@property(cc.Label)
successlab: cc.Label = null;
@property(cc.Node)
btn_twice: cc.Node = null;
@property(cc.Node)
btn_restart: cc.Node = null;
@property(cc.Node)
btn_ad: cc.Node = null;
@property(cc.Label)
menkanLab: cc.Label = null
touchArea1: cc.Node = null;
touchArea2: cc.Node = null;
touchArea3: cc.Node = null;
ball: cc.Node = null;
ballStartPos: cc.Node = null;
ballPos1: cc.Node = null;
ballPos2: cc.Node = null;
ballPos3: cc.Node = null;
// designRate:number = 0.34
expendMoney: number = 1000
awardMoney: number = 4000
isFinishAni: boolean = true
isCanSelectCup: boolean = false
curChooseNode: cc.Node = null;
curChooseBallIndex: number = 0
tipsArray = [
'搏一搏单车变摩托',
'时也、命也,来一把',
]
onDestroy(): void {
super.onDestroy()
}
onLoad() {
super.onLoad()
Common5.playMusic("bg");
this.touchArea1 = this.spineMove.getChildByName("touchArea1")
this.touchArea2 = this.spineMove.getChildByName("touchArea2")
this.touchArea3 = this.spineMove.getChildByName("touchArea3")
this.ball = this.ballNode.getChildByName("ball")
this.ballStartPos = this.ballNode.getChildByName("ballStartPos")
this.ballPos1 = this.ballNode.getChildByName("ballPos1")
this.ballPos2 = this.ballNode.getChildByName("ballPos2")
this.ballPos3 = this.ballNode.getChildByName("ballPos3")
this.initTouchEvent(this.touchArea1, "1")
this.initTouchEvent(this.touchArea2, "2")
this.initTouchEvent(this.touchArea3, "3")
this.initGame()
this.setBallPos(BallPosIndex.StartPos, false)
this.refreshBtnStatus()
}
protected start(): void {
// let qipao = this.node.getChildByName('qipao')
// let lab = qipao.getChildByName('lab').getComponent(cc.Label)
// lab.string = '还在犹豫什么?机会不要错过'
// qipao.scale = 0.1
// qipao.active = true
let _rand = Common5.getRandomNum(0, 2)
this.menkanLab.string = this.tipsArray[_rand]
}
initGame() {
let rateIndex = 1//User.getSanXianGuiDongRateIndex()
let colorArray = ['ball_100', 'ball_50', 'ball_10']
for (let i = 0; i < this.moveball.childrenCount; i++) {
let qiuNode = this.moveball.children[i]
let ballNode = qiuNode.getChildByName('ball')
qiuNode['nodecolorTag'] = colorArray[i]
// if(GMManager.getToggleStatus_SanXianGuiDong()){
// qiuNode['danRate'] = rateArray.GMDanKai[i]
// qiuNode['shuangRate'] = rateArray.GMShuangKai[i]
// }else{
qiuNode['danRate'] = rateArray['DanKai_' + rateIndex][i]
qiuNode['shuangRate'] = rateArray['ShuangKai_' + rateIndex][i]
// }
qiuNode["moneyRate"] = rateArray.MoneyRate[i]
if (i == 0) {
qiuNode['needMoney'] = 'ALLIN'
}
this.openTouchEvent(qiuNode)
}
}
onStartBtnClick() {
Common5.playEffect("CommonRes/sound/按键点击")
if (!this.curChooseNode) {
PrefabManage.showTextTips('请选择任意小球', 1)
return
}
if (!this.isFinishAni) {
return
}
if (UserManager.getCurMoney() < this.expendMoney) {
PrefabManage.showTextTips('余额不足挣钱去吧', 1)
return
}
// User.setSanXianGuiDongFreeNum(User.getSanXianGuiDongFreeNum() - 1)
this.refreshBtnStatus()
this.moveball.active = false
this.isFinishAni = false
UserManager.subMoney(this.expendMoney)
User.setYunshiChallenge(User.getYunshiChallenge() + 1)
this.spineMove.getComponent(sp.Skeleton).setAnimation(0, "kaishi", false)
cc.tween(this.node)
.delay(0.5)
.call(() => {
this.setBallPos(BallPosIndex.StartPos, false)
})
.delay(2.2)
.call(() => {
this.isCanSelectCup = true
})
.start()
}
onBtnGetTimesAdClick() {
if (!this.isFinishAni) {
return
}
let tab = {
onClose: (finish) => {
if (finish) {
Common5.ReportDY("inLevel", '时来运转-AD-获取次数');
// User.setSanXianGuiDongFreeNum(3)
// User.setSanXianGuiDongVDTime(User.getSanXianGuiDongVDTime()+1)
this.refreshBtnStatus()
}
else {
Common5.showTips_custom("广告未观看完");
}
}, onFailed: () => {
}
}
AppPlatform.playVideo_custom(tab)
}
refreshBtnStatus() {
let freeNum = 1//User.getSanXianGuiDongFreeNum()
if (freeNum > 0) {
this.btn_restart.active = true
this.btn_ad.active = false
// this.btn_restart.getChildByName("leftNums").getComponent(cc.Label).string = `开始(${freeNum}/3)`
this.btn_restart.getChildByName("leftNums").getComponent(cc.Label).string = `开始`
} else {
// let vdTime = User.getSanXianGuiDongVDTime()
// if(vdTime>=3){
// this.btn_restart.active = true
// this.btn_ad.active = false
// this.btn_restart.getChildByName("leftNums").getComponent(cc.Label).string = `开始`
// }else{
this.btn_restart.active = false
this.btn_ad.active = true
// this.btn_ad.getChildByName("freeNums").getComponent(cc.Label).string = `免费畅玩(${vdTime}/3)`
// }
}
}
countOpenTwice() {
let arr = [0, 1, 2]
let randomArr = Common5.getNumberFromArray(0, 3, 2)
let openOneIndex = randomArr[0]
let openTwoIndex = randomArr[1]
let leftIndex = 0
let temp = []
temp.push(openOneIndex)
temp.push(openTwoIndex)
for (var i = 0; i < 3; i++) {
if (arr[i] != openOneIndex && arr[i] != openTwoIndex) {
leftIndex = arr[i]
}
}
console.log("开第1个杯子=", openOneIndex)
console.log("开第2个杯子=", openTwoIndex)
let ballIndex = 0
let num = Math.floor(Math.random() * 100)
console.log("num=", num)
if (num < this.curChooseNode['shuangRate']) {
ballIndex = temp[Math.floor(Math.random() * 2)]
console.log("中了", ballIndex)
} else {
ballIndex = leftIndex
console.log("没中", leftIndex)
}
let spineStr = ""
if ((openOneIndex == 0 && openTwoIndex == 1) || (openOneIndex == 1 && openTwoIndex == 0)) {
spineStr = "erlian1"
} else if ((openOneIndex == 1 && openTwoIndex == 2) || (openOneIndex == 2 && openTwoIndex == 1)) {
spineStr = "erlian2"
} else {
spineStr = "erlian3"
}
this.setBallPos(BallPosIndex["Pos" + (ballIndex + 1)], true)
this.spineMove.getComponent(sp.Skeleton).setAnimation(0, spineStr, false)
this.scheduleOnce(() => {
this.isFinishAni = true
//选中了
if (ballIndex == openOneIndex || ballIndex == openTwoIndex) {
this.successBox.active = true
//恭喜您选对了,获得4000元!
let aaa = Common5.getNumberChangeHanzi(this.awardMoney) + ""
this.successlab.string = '恭喜您选对了,获得' + aaa + "元!"
Common5.showInterstitialAd()
} else {
this.failBox.active = true
}
}, 3)
}
onTwiceBtnClick() {
Common5.playEffect("CommonRes/sound/按键点击")
if (!this.curChooseNode) {
PrefabManage.showTextTips('请选择任意小球', 1)
return
}
let needMoney = this.curChooseNode['needMoney']
// if(needMoney == 'ALLIN'){
// PrefabManage.showTextTips('ALLIN不可二连开',1)
// return
// }
if (UserManager.getCurMoney() < this.expendMoney) {
PrefabManage.showTextTips('余额不足挣钱去吧', 1)
return
}
if (!this.isFinishAni) {
return
}
let tab = {
onClose: (finish) => {
if (finish) {
UserManager.subMoney(this.expendMoney)
this.reportKey(() => {
GameReport.ADReport('时来运转二连开', 1)
})
Common5.ReportDY("inLevel", '时来运转-AD-二连开');
User.setYunshiChallenge(User.getYunshiChallenge() + 1)
this.moveball.active = false
this.isFinishAni = false
this.spineMove.getComponent(sp.Skeleton).setAnimation(0, "kaishi", false)
cc.tween(this.node)
.delay(0.5)
.call(() => {
this.setBallPos(BallPosIndex.StartPos, false)
})
.delay(2.2)
.call(() => {
// this.isCanSelectCup = true
this.countOpenTwice()
})
.start()
}
else {
this.reportKey(() => {
GameReport.ADReport('时来运转二连开', 0)
})
Common5.showTips_custom("广告未观看完");
}
}, onFailed: () => {
}
}
AppPlatform.playVideo_custom(tab)
}
initTouchEvent(node, index) {
node.on(cc.Node.EventType.TOUCH_START, this.touchStartEvent, this, true);
node.attr({ idIndex: index })
}
touchStartEvent(event) {
Common5.playEffect("CommonRes/sound/按键点击")
if (!this.isFinishAni && this.isCanSelectCup) {
this.isCanSelectCup = false
let selectId = event.target.idIndex
let bSelect = this.countIsSelectTure()
if (bSelect) {
this.setBallPos(BallPosIndex["Pos" + selectId], true)
this.spineMove.getComponent(sp.Skeleton).setAnimation(0, "kai" + selectId, false)
console.log("选择正确")
} else {
console.log("选择错误")
this.spineMove.getComponent(sp.Skeleton).setAnimation(0, "kai" + selectId, false)
}
this.scheduleOnce(() => {
this.isFinishAni = true
if (bSelect) {
this.successBox.active = true
//恭喜您选对了,获得4000元!
let aaa = Common5.getNumberChangeHanzi(this.awardMoney) + ""
this.successlab.string = '恭喜您选对了,获得' + aaa + "元!"
Common5.showInterstitialAd()
} else {
this.failBox.active = true
}
}, 1)
}
}
onSuccessSureBtnClick() {
Common5.playEffect("CommonRes/sound/按键点击")
this.successBox.active = false
UserManager.addMoney(this.awardMoney)
// Common5.showMoneyFlyParticle(this.successBox)
this.refreshAniStatus()
}
onFailSureBtnClick() {
Common5.playEffect("CommonRes/sound/按键点击")
this.failBox.active = false
this.refreshAniStatus()
}
onFanQianBtnClick() {
Common5.playEffect("CommonRes/sound/按键点击")
let tab = {
onClose: (finish) => {
if (finish) {
this.reportKey(() => {
GameReport.ADReport('时来运转返钱50%', 1)
})
Common5.ReportDY("inLevel", '时来运转-AD-返钱50%');
this.failBox.active = false
this.refreshAniStatus()
UserManager.addMoney(Math.floor(this.expendMoney * 0.5))
}
else {
this.reportKey(() => {
GameReport.ADReport('时来运转返钱50%', 0)
})
Common5.showTips_custom("广告未观看完");
}
}, onFailed: () => {
}
}
AppPlatform.playVideo_custom(tab)
}
onAdBtnClick() {
Common5.playEffect("CommonRes/sound/按键点击")
let tab = {
onClose: (finish) => {
if (finish) {
this.successBox.active = false
UserManager.addMoney(this.awardMoney * 2)
// Common5.showMoneyFlyParticle(this.saleGet)
this.refreshAniStatus()
}
else {
Common5.showTips_custom("广告未观看完");
}
}, onFailed: () => {
}
}
AppPlatform.playVideo_custom(tab)
}
refreshAniStatus() {
this.curChooseNode = null
this.moveball.active = true
for (let i = 0; i < this.moveball.childrenCount; i++) {
let qiuNode = this.moveball.children[i]
let ballNode = qiuNode.getChildByName('ball')
ballNode.active = true
}
this.setBallPos(BallPosIndex.StartPos, false)
this.spineMove.getComponent(sp.Skeleton).clearTracks()
this.spineMove.getComponent(sp.Skeleton).setToSetupPose()
}
setBallPos(pos, isShow) {
let parentNode = null
if (pos == BallPosIndex.StartPos) {
parentNode = this.ballStartPos
} else if (pos == BallPosIndex.Pos1) {
parentNode = this.ballPos1
} else if (pos == BallPosIndex.Pos2) {
parentNode = this.ballPos2
} else if (pos == BallPosIndex.Pos3) {
parentNode = this.ballPos3
}
this.ball.setPosition(0, 0)
this.ball.active = isShow
this.ball.setParent(parentNode)
}
//计算是否中奖
countIsSelectTure() {
let num = Math.floor(Math.random() * 100)
console.log("Random num==", num)
if (num < this.curChooseNode['danRate']) {
return true
} else {
return false
}
}
openTouchEvent(node) {
node.on(cc.Node.EventType.TOUCH_START, this.touchStartNode, this)
node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEndNode, this)
node.on(cc.Node.EventType.TOUCH_END, this.touchEndNode, this)
}
closeTouchEvent(node: cc.Node) {
node.off(cc.Node.EventType.TOUCH_START, this.touchStartNode, this)
node.off(cc.Node.EventType.TOUCH_CANCEL, this.touchEndNode, this)
node.off(cc.Node.EventType.TOUCH_END, this.touchEndNode, this)
}
touchStartNode(event) {
//
Common5.playEffect("CommonRes/sound/按键点击")
let target = event.target
target.scale = 1.05
}
touchEndNode(event) {
let target = event.target
target.scale = 1.0
if (this.curChooseNode == target) {
console.log('一样的')
return
}
if (User.getMoney() <= 0) {
PrefabManage.showTextTips('去地摊或商人处换钱再来', 1)
return
}
// let needMoneySpec = target['needMoney']
// if(needMoneySpec == 'ALLIN'){
// if(User.getMoney()<2000000){
// Common5.showTips_customTime('最低限额200万ALLIN',2)
// return
// }
// this.btn_twice.active = false
// }else{
// this.btn_twice.active = true
// }
for (let i = 0; i < this.moveball.childrenCount; i++) {
let qiuNode = this.moveball.children[i]
let ballNode = qiuNode.getChildByName('ball')
ballNode.active = true
}
for (let i = 0; i < this.moveball.childrenCount; i++) {
let qiuNode = this.moveball.children[i]
if (qiuNode == target) {
let ballNode = qiuNode.getChildByName('ball')
ballNode.active = false
}
}
this.curChooseNode = target
this.ball.active = true
for (let i = 0; i < this.ball.childrenCount; i++) {
let qiuNode = this.ball.children[i]
qiuNode.active = false
}
//copynode节点
let samllballNode = target.getChildByName('ball')
var prefabNode = cc.instantiate(samllballNode);
prefabNode.parent = target.parent;
prefabNode.active = true
let posi = Common5.getNodeToTargetPos(prefabNode, this.ball)
prefabNode.setPosition(target.getPosition())
cc.tween(prefabNode)
.to(0.2, { x: posi.x, y: posi.y })
.call(() => {
//小球变化
let needMoney = Math.floor(this.curChooseNode['moneyRate'] * User.getMoney())
let nodecolorTag = this.curChooseNode['nodecolorTag']
this.awardMoney = needMoney * 2
this.expendMoney = needMoney
for (let i = 0; i < this.ball.childrenCount; i++) {
let node_ = this.ball.children[i]
node_.active = false
}
let nodeball_ = this.ball.getChildByName(nodecolorTag)
nodeball_.active = true
prefabNode.removeFromParent()
})
.start()
}
}