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.
531 lines
14 KiB
531 lines
14 KiB
// Learn TypeScript:
|
|
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
|
|
// Learn Attribute:
|
|
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
|
|
// Learn life-cycle callbacks:
|
|
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
|
|
|
|
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 AppPlatform from "../../FrameWork/Util/AppPlatform"
|
|
import Common5 from "../../Platform/th/Common5"
|
|
import taskState from "../DH/taskState"
|
|
import TaskManager from "../JuQingChat/TaskManager"
|
|
import GMManager from "../Manager/GMManager"
|
|
import UserManager from "../Manager/UserManager"
|
|
import PrefabManage, { GameType } from "../PrefabManager/PrefabManage"
|
|
import GetAward from "../SCommon/GetAward"
|
|
import TimeManger from "./TimeManger"
|
|
|
|
const { ccclass, property } = cc._decorator;
|
|
|
|
enum QuanTou {
|
|
up = 1,
|
|
down,
|
|
left,
|
|
right
|
|
}
|
|
|
|
enum GameState {
|
|
kong,
|
|
ready,
|
|
playAnim,
|
|
|
|
}
|
|
|
|
@ccclass
|
|
export default class ZouCeHuaScript extends cc.Component {
|
|
|
|
@property(cc.Node)
|
|
quantouNode: cc.Node = null;
|
|
|
|
@property(cc.Node)
|
|
renwuNode: cc.Node = null;
|
|
|
|
@property(cc.ProgressBar)
|
|
bloodProgress: cc.ProgressBar = null;
|
|
|
|
@property(cc.Node)
|
|
bloodLab: cc.Node = null;
|
|
|
|
@property(cc.Label)
|
|
bloodProgressLab: cc.Label = null;
|
|
|
|
@property(cc.Node)
|
|
qipao: cc.Node = null;
|
|
|
|
@property(cc.Node)
|
|
zourenNode: cc.Node = null;
|
|
|
|
// LIFE-CYCLE CALLBACKS:
|
|
|
|
// onLoad () {}
|
|
CurGameState = GameState.kong
|
|
haoganIndex = 100;
|
|
haoganMax = 100;
|
|
|
|
daijiAnim = 'daiji'
|
|
randIndex = -1
|
|
dongzuoAnims = ['shang1', 'xia1', 'you1', 'zuo1']
|
|
recoveryAnims = ['shang2', 'xia2', 'you2', 'zuo2']
|
|
aidaAnims = ['shang aida', 'xia aida', 'you aida', 'zuo aida']
|
|
|
|
guideIndex = 0
|
|
xinshouGuide = false
|
|
isStartGame = false;
|
|
changeActionDt = 0
|
|
changeActionFixDt = 1
|
|
hitAttck = 2
|
|
|
|
tm: TimeManger = new TimeManger();
|
|
onLoad() {
|
|
// super.onLoad()
|
|
//
|
|
|
|
// let gm = GMManager.getToggleStatus_CEHUA()
|
|
// if(gm){
|
|
this.hitAttck = 20
|
|
// }
|
|
let timeNode = this.node.getChildByName('timeNode')
|
|
timeNode.active = false
|
|
|
|
// let array = UserManager.getFirstInGameArray()
|
|
let array = []
|
|
// if(array.indexOf('ZouCeHua') >= 0){
|
|
// this.xinshouGuide = false
|
|
// }else{
|
|
this.xinshouGuide = true
|
|
this.guideIndex = 0
|
|
array[array.length] = 'ZouCeHua'
|
|
// UserManager.setFirstInGameArray(array)
|
|
// }
|
|
|
|
|
|
// this.setGameType(GameType.ZouCeHua)
|
|
// this.stopTimer()
|
|
EventMgr.onEvent_custom(ryw_Event.timeOut, (tab) => {
|
|
this.gameEndAnim()
|
|
}, this);
|
|
}
|
|
|
|
onDestroy(): void {
|
|
this.isStartGame = false
|
|
|
|
}
|
|
|
|
gameEndAnim() {
|
|
// this.stopTimer()
|
|
this.isStartGame = false
|
|
let resultNode = this.node.getChildByName('resultNode')
|
|
resultNode.getChildByName('successNode').active = false
|
|
resultNode.getChildByName('failNode').active = false
|
|
this.CurGameState = GameState.kong
|
|
if (this.haoganIndex <= 0) {
|
|
|
|
|
|
//失败
|
|
this.renwuNode.active = false
|
|
this.node.getChildByName('shibaiNode').active = true
|
|
|
|
this.showCehuaQiPao('对不起大佬,我再也不敢了', () => {
|
|
//
|
|
// resultNode.active = true
|
|
// resultNode.getChildByName('successNode').active = true
|
|
PrefabManage.loadPrefabByType(GameType.SuccessGetMoney, null, (prefab) => {
|
|
prefab.getComponent('SuccessGetMoney').setViewDate('策划')
|
|
})
|
|
})
|
|
|
|
} else {
|
|
//成功
|
|
this.playNode("daiji", true)
|
|
this.showCehuaQiPao('给你机会你不中用啊', () => {
|
|
|
|
resultNode.active = true
|
|
resultNode.getChildByName('failNode').active = true
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
start() {
|
|
this.zourenNode.active = false
|
|
this.playNode("daiji", true)
|
|
|
|
if (this.xinshouGuide) {
|
|
this.showCehuaQiPao('就凭你?看我身法', () => {
|
|
this.guideAnim()
|
|
this.zourenNode.active = true
|
|
this.CurGameState = GameState.ready
|
|
|
|
})
|
|
} else {
|
|
this.showCehuaQiPao('就凭你?看我身法', () => {
|
|
this.daojishiAnim()
|
|
|
|
|
|
|
|
})
|
|
}
|
|
|
|
|
|
// this.pauseTime()
|
|
|
|
}
|
|
|
|
|
|
playNode(anim, isLoop) {
|
|
this.renwuNode.getComponent(sp.Skeleton).setAnimation(0, anim, isLoop)
|
|
}
|
|
playQuanNode(anim, callFunc) {
|
|
this.quantouNode.active = true
|
|
this.quantouNode.getComponent(sp.Skeleton).setAnimation(0, anim, false)
|
|
this.scheduleOnce(() => {
|
|
this.quantouNode.active = false
|
|
if (callFunc) {
|
|
callFunc()
|
|
}
|
|
}, 0.3)
|
|
}
|
|
zourenClickNode(event, data) {
|
|
if (this.CurGameState == GameState.kong) {
|
|
return
|
|
}
|
|
if (this.CurGameState == GameState.playAnim) {
|
|
return
|
|
}
|
|
|
|
this.isStartGame = false
|
|
|
|
this.CurGameState = GameState.playAnim
|
|
let num = Number(data)
|
|
let animArray = ['shanggouquan', 'xiagouquan', 'zuogouquan', 'yougouquan']
|
|
let anim = animArray[num - 1]
|
|
let isRight = false
|
|
if (num - 1 == this.randIndex) {
|
|
isRight = true
|
|
}
|
|
// this.quantouNode.active = true
|
|
//挥拳打人
|
|
this.node.getChildByName('dianjixiaoguo').active = false
|
|
|
|
if (this.xinshouGuide && this.guideIndex < 4) {
|
|
Common5.playEffect("GameRes/sound/怼策划/揍她/打中音效")
|
|
let aidaAnim = this.aidaAnims[this.randIndex]
|
|
this.playQuanNode(anim, () => {
|
|
this.renwuNode.getComponent(sp.Skeleton).setAnimation(0, aidaAnim, false)
|
|
this.scheduleOnce(() => {
|
|
this.guideIndex++
|
|
if (this.guideIndex < 4) {
|
|
this.guideAnim()
|
|
this.CurGameState = GameState.ready
|
|
} else {
|
|
//倒计时3秒
|
|
this.daojishiAnim()
|
|
}
|
|
|
|
}, 0.3)
|
|
})
|
|
return
|
|
}
|
|
if (isRight) {
|
|
//被打
|
|
Common5.playEffect("GameRes/sound/怼策划/揍她/打中音效")
|
|
|
|
this.haoganIndex -= this.hitAttck
|
|
let aidaAnim = this.aidaAnims[this.randIndex]
|
|
this.playQuanNode(anim, () => {
|
|
this.renwuNode.getComponent(sp.Skeleton).setAnimation(0, aidaAnim, false)
|
|
this.scheduleOnce(() => {
|
|
this.bloodSubAnim()
|
|
this.randAnim()
|
|
this.CurGameState = GameState.ready
|
|
}, 0.3)
|
|
})
|
|
} else {
|
|
//打空
|
|
this.playQuanNode(anim, () => {
|
|
this.randAnim()
|
|
this.CurGameState = GameState.ready
|
|
})
|
|
|
|
}
|
|
}
|
|
|
|
|
|
protected update(dt: number): void {
|
|
|
|
if (!this.isStartGame) {
|
|
return
|
|
}
|
|
|
|
//
|
|
this.changeActionDt += dt
|
|
if (this.changeActionDt >= this.changeActionFixDt) {
|
|
this.changeActionDt = 0
|
|
this.randAnim()
|
|
this.CurGameState = GameState.ready
|
|
}
|
|
}
|
|
|
|
|
|
daojishiAnim() {
|
|
this.zourenNode.active = true
|
|
for (let i = 0; i < this.zourenNode.childrenCount; i++) {
|
|
let node = this.zourenNode.children[i]
|
|
node.active = true
|
|
|
|
}
|
|
|
|
this.node.getChildByName('dianjixiaoguo').active = false
|
|
|
|
|
|
let timeNode = this.node.getChildByName('timeNode')
|
|
timeNode.active = true
|
|
timeNode.getChildByName('3Node').active = true
|
|
timeNode.getChildByName('2Node').active = false
|
|
timeNode.getChildByName('1Node').active = false
|
|
|
|
|
|
this.playNode("daiji", true)
|
|
cc.tween(timeNode)
|
|
.delay(1.0)
|
|
.call(() => {
|
|
timeNode.getChildByName('3Node').active = false
|
|
timeNode.getChildByName('2Node').active = true
|
|
})
|
|
.delay(1.0)
|
|
.call(() => {
|
|
timeNode.getChildByName('2Node').active = false
|
|
timeNode.getChildByName('1Node').active = true
|
|
})
|
|
.delay(1.0)
|
|
.call(() => {
|
|
timeNode.active = false
|
|
|
|
// this.recoveryTime()
|
|
this.randAnim()
|
|
this.CurGameState = GameState.ready
|
|
this.isStartGame = true
|
|
|
|
this.tm.init(100, this.node.getChildByName("addTime").getChildByName("time").getComponent(cc.Label));
|
|
this.tm.setTitle("")
|
|
this.tm.setRotNode(this.node.getChildByName("addTime"));
|
|
})
|
|
.start()
|
|
}
|
|
|
|
|
|
bloodSubAnim() {
|
|
//this.haoganIndex++
|
|
let haogandu = this.bloodLab
|
|
haogandu.setPosition(cc.v2(0, 300))
|
|
|
|
haogandu.active = true
|
|
haogandu.opacity = 255
|
|
cc.tween(haogandu)
|
|
.to(0.5, { y: 400, opacity: 0 })
|
|
.call(() => {
|
|
this.setProgress()
|
|
|
|
})
|
|
.start()
|
|
|
|
}
|
|
|
|
//给你机会你不中用啊
|
|
//对不起大佬,我再也不敢了
|
|
|
|
showCehuaQiPao(str, callFunc?: Function) {
|
|
|
|
Common5.playEffect("GameRes/sound/怼策划/揍她/" + str)
|
|
|
|
|
|
let qipaoNode = this.qipao
|
|
qipaoNode.scale = 0
|
|
qipaoNode.active = true
|
|
qipaoNode.stopAllActions()
|
|
qipaoNode.getChildByName("str").getComponent(cc.Label).string = str
|
|
|
|
|
|
cc.tween(qipaoNode)
|
|
.to(0.2, { scale: 1 })
|
|
|
|
.delay(2)
|
|
.to(0.2, { scale: 0 })
|
|
.call(() => {
|
|
|
|
|
|
if (callFunc) {
|
|
callFunc()
|
|
}
|
|
})
|
|
.start()
|
|
}
|
|
|
|
|
|
setProgress() {
|
|
let index = this.haoganIndex / this.haoganMax
|
|
this.bloodProgress.progress = index
|
|
|
|
let lab = this.bloodProgress.node.getChildByName('lab').getComponent(cc.Label)
|
|
lab.string = '血量:' + this.haoganIndex
|
|
|
|
if (this.haoganIndex <= 0) {
|
|
|
|
this.gameEndAnim()
|
|
}
|
|
|
|
}
|
|
|
|
randAnim() {
|
|
|
|
this.isStartGame = true
|
|
this.changeActionDt = 0
|
|
|
|
let random = Common5.getRandomNum(0, 4)
|
|
this.randIndex = random
|
|
let anim = this.dongzuoAnims[this.randIndex]
|
|
this.playNode(anim, false)
|
|
|
|
}
|
|
|
|
|
|
guideAnim() {
|
|
|
|
for (let i = 0; i < this.zourenNode.childrenCount; i++) {
|
|
let node = this.zourenNode.children[i]
|
|
node.active = false
|
|
}
|
|
|
|
this.zourenNode.children[this.guideIndex].active = true
|
|
this.node.getChildByName('dianjixiaoguo').active = true
|
|
|
|
let random = this.guideIndex
|
|
this.randIndex = random
|
|
let anim = this.dongzuoAnims[this.randIndex]
|
|
this.playNode(anim, false)
|
|
|
|
}
|
|
|
|
jizhongAnim() {
|
|
|
|
}
|
|
|
|
|
|
meijizhongAnim() {
|
|
|
|
}
|
|
|
|
guideStep() {
|
|
|
|
}
|
|
|
|
|
|
|
|
exitGameClickEvent(event) {
|
|
Common5.playEffect("CommonRes/sound/按键点击")
|
|
if (event.target['isClick']) {
|
|
return
|
|
}
|
|
event.target['isClick'] = true
|
|
|
|
|
|
this.node.removeFromParent()
|
|
this.node.destroy()
|
|
}
|
|
|
|
addTimeClickEvent(event) {
|
|
Common5.playEffect("CommonRes/sound/按键点击")
|
|
|
|
let tab = {
|
|
onClose: (finish) => {
|
|
if (finish) {
|
|
|
|
// this.reportKey(()=>{
|
|
// GameReport.ADReport('失败加时',1)
|
|
// })
|
|
User.setShowAdNum(User.getShowAdNum() + 1)
|
|
Common5.ReportDY("inLevel", `任务${TaskManager.getCurUnLockMainTaskId()}-AD-揍策划失败加时`)
|
|
// Common5.ReportDY("inLevel", "揍策划-AD-失败加时");
|
|
|
|
// this.addTimeGame()
|
|
let resultNode = this.node.getChildByName('resultNode')
|
|
resultNode.active = false
|
|
// this.pauseTime()
|
|
this.daojishiAnim()
|
|
|
|
|
|
} else {
|
|
|
|
// this.reportKey(()=>{
|
|
// GameReport.ADReport('失败加时',0)
|
|
// })
|
|
|
|
Common5.showTips_custom("广告未观看完");
|
|
}
|
|
}, onFailed: () => {
|
|
|
|
}
|
|
}
|
|
AppPlatform.playVideo_custom(tab)
|
|
|
|
}
|
|
|
|
chakanGiftClickEvent(event) {
|
|
Common5.playEffect("CommonRes/sound/按键点击")
|
|
|
|
if (event.target['isClick']) {
|
|
return
|
|
}
|
|
event.target['isClick'] = true
|
|
|
|
// let data = User.getCehuaGuide()
|
|
// data.zoucehua = true
|
|
// User.setCehuaGuide(data)
|
|
PrefabManage.loadPrefabByType(GameType.taskState, null, (node) => {
|
|
node.getComponent(taskState).showSuccess("成功", () => {
|
|
UserManager.addMoney(User.getMyLevel() * 10)
|
|
this.node.removeFromParent()
|
|
this.node.destroy()
|
|
})
|
|
})
|
|
|
|
|
|
// let goodArray = [{ goodId: 1403, goodNum: 1 }]
|
|
// PrefabManage.loadPrefabByType(GameType.GetAward, null, (prefabNode) => {
|
|
// prefabNode.getComponent(GetAward).initView(goodArray, () => {
|
|
// this.node.removeFromParent()
|
|
// this.node.destroy()
|
|
// });
|
|
// }, true)
|
|
|
|
|
|
}
|
|
|
|
onBtnAddTimeClick() {
|
|
EventMgr.emitEvent_custom(ryw_Event.stopTimeTick);
|
|
let tab = {
|
|
onClose: (finish) => {
|
|
User.setShowAdNum(User.getShowAdNum() + 1)
|
|
Common5.ReportDY("inLevel", `任务${TaskManager.getCurUnLockMainTaskId()}-AD-揍策划失败加时`)
|
|
if (finish) {
|
|
this.tm.add(60);
|
|
}
|
|
else {
|
|
|
|
}
|
|
// EventMgr.emitEvent_custom(ryw_Event.startTimeTick);
|
|
}, onFailed: () => {
|
|
|
|
}
|
|
}
|
|
AppPlatform.playVideo_custom(tab)
|
|
}
|
|
// update (dt) {}
|
|
}
|
|
|