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.
 
 
 
 
AdLike2048/assets/script/ui/BattleGame/ui_boxAdLayer.ts

249 lines
10 KiB

import { _decorator, Color, Component, Label, Node, Sprite } from 'cc';
import { GEvent } from 'db://assets/mx/module/event/GEvent';
const { ccclass, property } = _decorator;
enum BoxAdType {
AddAtk = 0, //攻击力
AddCoolDown = 1, //技能冷却
AddCritRate = 2, //暴击率
AddDamage = 3, //宝箱增伤
/** Boss减速 */
reduceBoss = 4,
}
@ccclass('ui_boxAdLayer')
export class ui_boxAdLayer extends Component {
@property(Node)
nodeArray: Node[] = []
dataArray = [
{ id: 0, addType: BoxAdType.AddAtk, addxishu: 5, subTime: 0, addTime: 30, allTimes: 3, isUpdate: false },
{ id: 1, addType: BoxAdType.AddCoolDown, addxishu: 5, subTime: 0, addTime: 30, allTimes: 3, isUpdate: false },
{ id: 2, addType: BoxAdType.AddCritRate, addxishu: 3, subTime: 0, addTime: 30, allTimes: 3, isUpdate: false },
{ id: 3, addType: BoxAdType.AddDamage, addxishu: 10, subTime: 0, addTime: 30, allTimes: 3, isUpdate: false },
{ id: 4, addType: BoxAdType.reduceBoss, addxishu: 10, subTime: 0, addTime: 30, allTimes: 3, isUpdate: false },
]
addTimeFix = 30
allTimesFix = 5
protected update(dt: number): void {
if (!gg.game.CurentBattle.canUpdateFrame()) {
return
}
//处理时间
for (let i = 0; i < this.dataArray.length; i++) {
let item = this.dataArray[i]
if (item.isUpdate) {
let id = item.id
if (item.subTime > 0) {
item.subTime -= dt * gg.game.CurentBattle.TimeScale
this.refreshProgress(this.nodeArray[id], item.subTime, item.addTime)
} else {
item.isUpdate = false
item.subTime = 0
item.addTime = 0
this.refreshNode(this.nodeArray[id], item.allTimes, item.subTime)
this.refreshProgress(this.nodeArray[id], item.subTime, this.addTimeFix)
}
}
}
}
start() {
this.nodeArray[3].active = false;
this.nodeArray[4].active = false;
const atkNum = [0, 0, 0, 0, 0];
for (let i = 0; i < atkNum.length; i++) {
this.dataArray[i].addxishu = Number(atkNum[i]) //万分之
this.dataArray[i].subTime = 0
this.dataArray[i].addTime = 0
this.dataArray[i].allTimes = this.allTimesFix //可以使用的次数
this.dataArray[i].isUpdate = false
let id = this.dataArray[i].id
let addBtn = this.nodeArray[id]
let tagLab = addBtn.getChildByName('tagLab').getComponent(Label)
tagLab.string = `${this.dataArray[i].addxishu / 100}%`
this.refreshNode(addBtn, this.dataArray[i].allTimes, this.dataArray[i].subTime)
this.refreshProgress(addBtn, this.dataArray[i].subTime, this.addTimeFix)
}
}
addZsBtnClick(index) {
//宝箱增伤
let findData = this.dataArray.find((item) => item.addType == BoxAdType.AddDamage)
if (findData.allTimes > 0) {
gg.sdk.showVideoAd((res) => {
if (res) {
let repName = "章节";
gg.sdk.reportDY("inLevel", `章节${gg.game.CurentBattle.getReportDYChapterId()}-AD-${repName}宝箱增伤`)
findData.subTime += this.addTimeFix //倒计时的时间
findData.addTime += this.addTimeFix //倒计时固定的总时间
findData.allTimes-- //可以使用的次数
findData.isUpdate = true
let id = findData.id
let addBtn = this.nodeArray[id]
this.refreshNode(addBtn, findData.allTimes, findData.subTime)
GEvent.Ins.emit(GEvent.ShowLevelSpine, gg.lang.get('宝箱增伤')+'+' + findData.addxishu / 100 + '%')
} else {
gg.ui.showToast('观看视频失败');
}
})
} else {
gg.ui.showToast("本局次数已经使用完");
}
}
addBaojiBtnClick(index) {
//暴击率
let findData = this.dataArray.find((item) => item.addType == BoxAdType.AddCritRate)
if (findData.allTimes > 0) {
gg.sdk.showVideoAd((res) => {
if (res) {
let repName = "章节";
gg.sdk.reportDY("inLevel", `章节${gg.game.CurentBattle.getReportDYChapterId()}-AD-${repName}增加暴击率`)
findData.subTime += this.addTimeFix //倒计时的时间
findData.addTime += this.addTimeFix //倒计时固定的总时间
findData.allTimes-- //可以使用的次数
findData.isUpdate = true
let id = findData.id
let addBtn = this.nodeArray[id]
this.refreshNode(addBtn, findData.allTimes, findData.subTime)
GEvent.Ins.emit(GEvent.ShowLevelSpine, gg.lang.get('暴击率')+'+' + findData.addxishu / 100 + '%')
} else {
gg.ui.showToast('观看视频失败');
}
})
} else {
gg.ui.showToast("本局次数已经使用完");
}
}
addLqBtnClick(index) {
//冷却
let findData = this.dataArray.find((item) => item.addType == BoxAdType.AddCoolDown)
if (findData.allTimes > 0) {
gg.sdk.showVideoAd((res) => {
if (res) {
let repName = "章节";
gg.sdk.reportDY("inLevel", `章节${gg.game.CurentBattle.getReportDYChapterId()}-AD-${repName}减冷却`)
findData.subTime += this.addTimeFix //倒计时的时间
findData.addTime += this.addTimeFix //倒计时固定的总时间
findData.allTimes-- //可以使用的次数
findData.isUpdate = true
let id = findData.id
let addBtn = this.nodeArray[id]
this.refreshNode(addBtn, findData.allTimes, findData.subTime)
GEvent.Ins.emit(GEvent.ShowLevelSpine, gg.lang.get('冷却')+'-' + findData.addxishu / 100 + '%')
} else {
gg.ui.showToast('观看视频失败');
}
})
} else {
gg.ui.showToast("本局次数已经使用完");
}
}
addAtkBtnClick(index) {
//攻击力
let findData = this.dataArray.find((item) => item.addType == BoxAdType.AddAtk)
if (findData.allTimes > 0) {
gg.sdk.showVideoAd((res) => {
if (res) {
let repName = "章节";
gg.sdk.reportDY("inLevel", `章节${gg.game.CurentBattle.getReportDYChapterId()}-AD-${repName}增加攻击力`)
findData.subTime += this.addTimeFix //倒计时的时间
findData.addTime += this.addTimeFix //倒计时固定的总时间
findData.allTimes-- //可以使用的次数
findData.isUpdate = true
let id = findData.id
let addBtn = this.nodeArray[id]
this.refreshNode(addBtn, findData.allTimes, findData.subTime)
GEvent.Ins.emit(GEvent.ShowLevelSpine, gg.lang.get('攻击力')+'+' + findData.addxishu / 100 + '%')
} else {
gg.ui.showToast('观看视频失败');
}
})
} else {
gg.ui.showToast("本局次数已经使用完");
}
}
reduceBoss() {
//boss减速
let findData = this.dataArray.find((item) => item.addType == BoxAdType.reduceBoss)
if (findData.allTimes > 0) {
gg.sdk.showVideoAd((res) => {
if (res) {
let repName = "章节";
gg.sdk.reportDY("inLevel", `章节${gg.game.CurentBattle.getReportDYChapterId()}-AD-${repName}减速`)
findData.subTime += this.addTimeFix //倒计时的时间
findData.addTime += this.addTimeFix //倒计时固定的总时间
findData.allTimes-- //可以使用的次数
findData.isUpdate = true
let id = findData.id
let addBtn = this.nodeArray[id]
this.refreshNode(addBtn, findData.allTimes, findData.subTime)
GEvent.Ins.emit(GEvent.ShowLevelSpine, gg.lang.get('减速')+'+' + findData.addxishu / 100 + '%')
} else {
gg.ui.showToast('观看视频失败');
}
})
} else {
gg.ui.showToast("本局次数已经使用完");
}
}
refreshNode(btnNode, levelTime, subTime) {
let cishuNum = btnNode.getChildByName('cishus').getComponent(Label)
cishuNum.string = `${levelTime}/${this.allTimesFix}`
let tagLab = btnNode.getChildByName('tagLab').getComponent(Label)
if (levelTime <= 0) {
let spComp = btnNode.getComponent(Sprite);
if (!spComp) spComp = btnNode.getComponentInChildren(Sprite);
spComp.grayscale = true
btnNode.getChildByName('ad').active = false
}
if (levelTime <= 0 && subTime <= 0) {
levelTime = Math.max(levelTime, 0)
tagLab.color = new Color(210, 210, 210, 255)
} else {
//btnNode.getComponent(Sprite).grayscale = false
//btnNode.getChildByName('ad').active = true
if (subTime > 0) {
tagLab.color = new Color(168, 255, 66, 255)
this.refreshProgress(btnNode, subTime, this.addTimeFix)
} else {
tagLab.color = new Color(255, 102, 66, 255)
}
}
}
refreshProgress(btnNode, subTime, allTime) {
let progress = btnNode.getChildByName('progress').getComponent(Sprite)
// let allLeng = 72
progress.fillRange = subTime / allTime
}
}