咸鱼的反击
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/DuiCeHua/ZouCeHuaScript.ts

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