rp_11001/assets/Game/scripts/SlotBar.ts
TJH 1b33734c39
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
自动旋转和小游戏中也可以点击屏幕停止滚动
2025-12-31 12:22:48 +08:00

784 lines
23 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* eslint-disable */
// @ts-nocheck
import {
_decorator,
Component,
Prefab,
Node,
Label,
Animation,
Color,
Button,
Sprite,
Tween,
tween,
v3,
UIOpacity,
Vec3,
UITransform,
Size,
view,
Layout,
sp,
AsyncDelegate,
instantiate,
} from "cc";
import { SLOT_BAR_EVENT } from "./game/Define";
import { AutoSpinPanel } from "./game/AutoSpinPanel";
import { NodePoolManager } from "../../Loading/scripts/manager/NodePoolManager";
import { webView } from "./game/WebView";
import {
cash2gold,
getHistoryUrl,
getOddsUrl,
getSupportUrl,
gold2cash,
} from "../../Loading/scripts/comm";
import { GameDataManager } from "../../Loading/scripts/manager/GameDataManager";
import { I18nManager } from "../../Loading/scripts/manager/I18nManager";
import { LocalizedSprite } from "../../Loading/scripts/i18n/LocalizedSprite";
import { AudioManager } from "../../Loading/scripts/manager/AudioManager";
import { showFromBottom, hideToBottom } from "./game/Tools";
import { SpinAni } from "./game/SpinAni";
import { SlotGame } from "./SlotGame";
const { ccclass, property } = _decorator;
@ccclass("SlotBar")
export class SlotBar extends Component {
@property({ type: Prefab })
private autoSpinPanel: Prefab = null;
@property(Node)
private tipSmall: Node = null;
@property(SlotGame)
private slotGame: SlotGame = null;
@property(Prefab)
pfb_history: Prefab = null;
@property(Prefab)
pfb_paytable: Prefab = null;
@property(Prefab)
pfb_rules: Prefab = null;
@property(Node)
private manualStopNode: Node = null;
private MaskNode: Node = null;
private balanceLabel: Label = null;
private betLabel: Label = null;
private winLabel: Label = null;
private btns1: Node = null;
private btns2: Node = null;
private btns3: Node = null;
private autoBtn: Node = null;
private turboBtn: Node = null;
private subBtn: Button = null;
private addBtn: Button = null;
private menuBtn: Button = null;
spinNode: Node = null;
msg: Node = null;
spinBtn: Button = null;
spinAni: SpinAni = null;
stopAutoBtn: Button = null;
private leftAutoCount: Label = null;
private autoBtnAni: Animation = null;
private turboBtnAni: Animation = null;
private freeSpinBg: Node = null;
private left_1: Node = null;
private leftCount: Label = null;
private left_2: Node = null;
private gameInfo: any = null; // 初始信息
private betGrade: number[] = []; // 下注区间
private curBalance: number = 0; // 当前剩余金币
private curBet: number = 0; // 当前下注区间
private curWin: number = 0; // 当前赢分
private betIndex: number = 0; // 下注区间下标
private tweenIsEnd: boolean = true; // 动画是否完成
isAuto: boolean = false;
isFastSpin: boolean = false;
private btnPositions: Map<string, Vec3> = new Map();
private isAnimating: boolean = false;
private readonly DURATION = 0.1;
private readonly OFFSET_Y = -200;
private hasClickSpin: boolean = false;
private hasClickManualStop: boolean = false;
protected onLoad(): void {
this.MaskNode = this.node.parent.parent;
let Msg = this.node.getChildByName("Msg");
let Labels = Msg.getChildByName("Labels");
this.balanceLabel = Labels.getChildByName("balance").getComponent(Label);
this.betLabel = Labels.getChildByName("bet").getComponent(Label);
this.winLabel = Labels.getChildByName("win").getComponent(Label);
this.spinNode = this.node.getChildByName("SpinNode");
this.msg = this.node.getChildByName("Msg");
this.spinAni = this.spinNode.getComponent(SpinAni);
this.spinBtn = this.spinNode.getChildByName("BtnSpin").getComponent(Button);
this.stopAutoBtn = this.spinNode
.getChildByName("BtnStopAuto")
.getComponent(Button);
this.leftAutoCount = this.stopAutoBtn.node
.getChildByName("count")
.getComponent(Label);
this.btns1 = this.node.getChildByName("Btns1");
this.autoBtn = this.btns1.getChildByName("Auto");
this.turboBtn = this.btns1.getChildByName("Turbo");
this.subBtn = this.btns1.getChildByName("ic_subChips").getComponent(Button);
this.addBtn = this.btns1.getChildByName("ic_addChips").getComponent(Button);
this.menuBtn = this.btns1.getChildByName("ic_menu").getComponent(Button);
this.freeSpinBg = this.node.getChildByName("FreeSpinBg");
this.left_1 = this.freeSpinBg.getChildByName("left_1");
this.left_2 = this.freeSpinBg.getChildByName("left_2");
this.leftCount = this.left_1
.getChildByPath("leftCount/Count")
.getComponent(Label);
this.autoBtnAni = this.autoBtn.getComponent(Animation);
this.turboBtnAni = this.turboBtn.getComponent(Animation);
this.autoBtn.on(Node.EventType.TOUCH_START, this.autoAin, this);
this.autoBtn.on(Node.EventType.MOUSE_ENTER, this.autoAin, this);
this.turboBtn.on(Node.EventType.TOUCH_START, this.fastAni, this);
this.turboBtn.on(Node.EventType.MOUSE_ENTER, this.fastAni, this);
this.btns2 = this.node.getChildByName("Btns2");
this.btns3 = this.node.getChildByName("Btns3");
// 保存初始位置
["SpinNode", "Btns1", "Btns2", "Btns3"].forEach((name) => {
const node = this.node.getChildByName(name);
if (node) this.btnPositions.set(name, node.position.clone());
});
}
protected onDestroy(): void {
this.node.targetOff(this);
}
// spinBtn有两个动画idle状态循环旋转一圈spin状态速度加快
setGameInfo(gameInfo: any) {
this.gameInfo = gameInfo;
this.betGrade = gameInfo.BetGrade;
this.curBalance = gameInfo.Balance;
this.curBet = gameInfo.Data.Bet;
this.curWin = gameInfo.Data.AllScore;
// 非空处理
this.betIndex = this.betGrade.indexOf(this.curBet);
if (this.betIndex == -1) {
this.betIndex = 0;
}
// this.setBtnEnable(this.subBtn, this.betIndex > 0);
this.setBalance(this.curBalance);
this.setBet(this.curBet);
this.setWin(this.curWin);
}
async openMenu() {
if (this.isAnimating) return;
AudioManager.instance.playSFX("Common_Button_Click");
this.isAnimating = true;
const [spinBtn, btns1, btns2, btns3] = [
"SpinNode",
"Btns1",
"Btns2",
"Btns3",
].map((name) => this.node.getChildByName(name));
// 设置btns2,3初始位置
[btns2, btns3].forEach((btn) => {
btn.active = true;
btn.position = v3(btn.position.x, btn.position.y + this.OFFSET_Y, 0);
});
// 移出btns1和spinBtn
await this.moveButtons([spinBtn, btns1], true);
// 移入btns2和btns3
await this.moveButtons([btns2, btns3], false);
this.isAnimating = false;
}
async closeMenu() {
if (this.isAnimating) return;
AudioManager.instance.playSFX("Common_Button_Click");
this.isAnimating = true;
const [spinBtn, btns1, btns2, btns3] = [
"SpinNode",
"Btns1",
"Btns2",
"Btns3",
].map((name) => this.node.getChildByName(name));
// 移出btns2和btns3
await this.moveButtons([btns2, btns3], true);
// 准备btns1和spinBtn
[spinBtn, btns1].forEach((btn) => {
btn.active = true;
btn.position = v3(btn.position.x, btn.position.y + this.OFFSET_Y, 0);
});
// 移入btns1和spinBtn
await this.moveButtons([spinBtn, btns1], false);
this.isAnimating = false;
}
moveButtons(buttons: Node[], isOut: boolean): Promise<void> {
return new Promise((resolve) => {
const tweens = buttons.map((btn) => {
const targetPos = isOut
? v3(btn.position.x, btn.position.y + this.OFFSET_Y, 0)
: this.btnPositions.get(btn.name);
return tween(btn)
.to(
this.DURATION,
{ position: targetPos },
{ easing: isOut ? "cubicOut" : "cubicOut" }
)
.call(() => {
if (isOut) btn.active = false;
});
});
tween(this.node)
.parallel(...tweens)
.call(() => resolve())
.start();
});
}
allowClickManualStop(bl: boolean) {
this.hasClickSpin = bl;
this.manualStopNode.active = bl
}
notAllowClickManualStop(bl: boolean) {
this.hasClickManualStop = bl;
}
onBtnSpin() {
// 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) {
AudioManager.instance.playSFX("Spin_Button_Click");
this.node.emit(SLOT_BAR_EVENT.ON_SPIN_CLICK);
this.spinAni.startSpin();
this.setBtnEnable(this.subBtn, false);
this.setBtnEnable(this.addBtn, false);
this.setBtnEnable(this.autoBtn, false);
this.setBtnEnable(this.menuBtn, false);
}
// 第二次点击 手动停止
else if (this.hasClickSpin && !this.hasClickManualStop) {
this.node.emit(SLOT_BAR_EVENT.ON_MANUAL_STOP);
}
}
featureBuySpin() {
// 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) {
// AudioManager.instance.playSFX('Spin_Button_Click');
this.setBtnEnable(this.subBtn, false);
this.setBtnEnable(this.addBtn, false);
this.setBtnEnable(this.autoBtn, false);
this.setBtnEnable(this.menuBtn, false);
}
// 第二次点击 手动停止
else if (this.hasClickSpin && !this.hasClickManualStop) {
this.node.emit(SLOT_BAR_EVENT.ON_MANUAL_STOP);
}
}
onBtnTestSpin(event, args) {
// 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) {
// this.hasClickSpin = true;
this.node.emit(SLOT_BAR_EVENT.ON_TEST_SPIN_CLICK, args);
this.setBtnEnable(this.subBtn, false);
this.setBtnEnable(this.addBtn, false);
this.setBtnEnable(this.autoBtn, false);
this.setBtnEnable(this.menuBtn, false);
}
// 第二次点击 手动停止
else if (this.hasClickSpin && !this.hasClickManualStop) {
this.node.emit(SLOT_BAR_EVENT.ON_MANUAL_STOP);
}
}
onBtnManualStop() {
if (this.hasClickSpin && !this.hasClickManualStop) {
this.node.emit(SLOT_BAR_EVENT.ON_MANUAL_STOP);
}
}
manualStop() {
this.notAllowClickManualStop(true)
this.spinAni.stopSpin();
this.setBtnEnable(this.spinBtn, false);
}
// 打开规则界面
openRules() {
if (!this.tweenIsEnd) return;
// AudioManager.instance.playSFX('Common_Button_Click');
// let param = "rule";
// let view = NodePoolManager.instance.getNodeFromPoolStatic(param, this.webViewPre);
// this.MaskNode.addChild(view);
// view.getComponent(webView).open(param, this.curBet);
let rules = instantiate(this.pfb_rules);
this.MaskNode.addChild(rules);
showFromBottom(rules);
}
// 打开赔率界面
openPaytable() {
if (!this.tweenIsEnd) return;
// let url = getOddsUrl();
// window.open(url, '_blank');
// return;
// AudioManager.instance.playSFX('Common_Button_Click');
// let param = "paytable";
// let view = NodePoolManager.instance.getNodeFromPoolStatic(param, this.webViewPre);
// this.MaskNode.addChild(view);
// view.getComponent(webView).open(param, this.curBet);
let paytable = instantiate(this.pfb_paytable);
this.MaskNode.addChild(paytable);
showFromBottom(paytable);
}
openHistory() {
if (!this.tweenIsEnd) return;
let history = instantiate(this.pfb_history);
this.MaskNode.addChild(history);
showFromBottom(history);
}
isON = true;
onBtnSound() {
AudioManager.instance.playSFX("Common_Button_Click");
let btns2 = this.node.getChildByName("Btns2");
let sound = btns2.getChildByName("ic_sound");
let on = sound.getChildByName("on");
let off = sound.getChildByName("off");
this.isON = !this.isON;
on.active = this.isON;
off.active = !this.isON;
AudioManager.instance.setMute(off.active);
}
onBtnAddChips() {
AudioManager.instance.playSFX("Common_Button_Click");
this.betIndex += 1;
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length);
this.setBtnEnable(this.subBtn, this.betIndex > 0);
if (this.betIndex == this.betGrade.length) {
let tip = I18nManager.instance.t("AID_TIP_MAX_BET");
this.showTipSmall(tip); // 显示提示
this.betIndex = this.betGrade.length - 1; // 确保 betIndex 不超出范围
return;
}
this.setBet(this.betGrade[this.betIndex]);
}
onBtnSubChips() {
AudioManager.instance.playSFX("Common_Button_Click");
this.betIndex -= 1;
this.setBtnEnable(this.subBtn, this.betIndex > 0);
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length);
if (this.betIndex < 0) {
let tip = I18nManager.instance.t("AID_TIP_MIN_BET");
this.showTipSmall(tip); // 显示提示
this.betIndex = 0; // 确保 betIndex 不低于0
return;
}
this.setBet(this.betGrade[this.betIndex]);
}
private currentTipTween: Tween<Node> = null;
private hideTimer: number = null;
showTipSmall(str: string) {
// 清理之前的计时器和动画
this.clearTipTimers();
// 设置提示内容
this.tipSmall.getChildByName("Label").getComponent(Label).string = str;
let label = this.tipSmall.getChildByName("Label").getComponent(Label);
label.updateRenderData(true);
let tipWidth = this.tipSmall
.getChildByName("Label")
.getComponent(UITransform).width;
let frame = this.tipSmall.getChildByName("Frame_Assets");
frame.getComponent(UITransform).setContentSize(tipWidth + 100, 105);
// 调整框架大小
setTimeout(() => {
this.tipSmall.active = true;
// 显示动画
this.tipSmall.scale = new Vec3(0, 0, 0);
this.currentTipTween = tween(this.tipSmall)
.to(0.1, { scale: new Vec3(1, 1, 1) })
.call(() => {
// 5. 设置隐藏计时器
this.hideTimer = setTimeout(() => {
this.hideTipSmall();
}, 1000); // 1秒后隐藏
})
.start();
}, 0.1);
}
private hideTipSmall() {
if (!this.tipSmall.active) return;
this.clearTipTimers(); // 清理可能存在的计时器
this.currentTipTween = tween(this.tipSmall)
.to(0.1, { scale: new Vec3(0, 0, 0) })
.call(() => {
this.tipSmall.active = false;
this.currentTipTween = null;
})
.start();
}
private clearTipTimers() {
// 停止当前的 tween
if (this.currentTipTween) {
this.currentTipTween.stop();
this.currentTipTween = null;
}
// 取消隐藏计时器
if (this.hideTimer !== null) {
clearTimeout(this.hideTimer);
this.hideTimer = null;
}
// 取消所有可能的计时器(以防万一)
this.unscheduleAllCallbacks();
}
private _balance: number = 0;
setBalance(score: number) {
if (score < 0) return;
this._balance = score;
this.balanceLabel.string = gold2cash(score);
}
getBalance(): number {
return this._balance;
}
setBet(bet: number, isSysGift: boolean = false) {
this.node.emit(SLOT_BAR_EVENT.BET_CHANGE, bet);
this.betLabel.string = gold2cash(bet);
if (isSysGift) {
this.betIndex = -1;
} else {
this.betIndex = this.betGrade.indexOf(bet);
}
// this.setBtnEnable(this.subBtn, this.betIndex > 0);
// 停止当前的 tween 动画
Tween.stopAllByTarget(this.betLabel.node);
// 重置缩放
this.betLabel.node.scale = new Vec3(1, 1, 1);
// 0.1秒内放大缩小动画
tween(this.betLabel.node)
.to(0.15, { scale: new Vec3(1.2, 1.2, 1) }) // 0.05秒内放大
.to(0.015, { scale: new Vec3(1, 1, 1) }) // 0.05秒内缩小回原始大小
.start();
}
getBet() {
if (this.betIndex == -1) {
let betNum = cash2gold(this.betLabel.string);
let betCount = betNum * 10000;
return betCount;
}
return this.betGrade[this.betIndex];
}
setWin(win: number) {
this.winLabel.string = gold2cash(win);
}
onAutoMouseDown() {
this.unscheduleAllCallbacks();
this.autoBtnAni.stop();
AudioManager.instance.playSFX("Common_Button_Click");
if (this.isAuto) {
this.closeAutoSpin();
} else {
this.autoBtnAni.play("autoSpin_Pressed_animation");
let panel = NodePoolManager.instance.getNodeFromPoolStatic(
"AutoSpinPanel",
this.autoSpinPanel
);
panel.getComponent(AutoSpinPanel).setCloseCallback(() => {
this.startAutoSpin();
});
this.node.addChild(panel);
panel.getComponent(AutoSpinPanel).showTween();
}
}
setLeftAutoCount(count: number) {
this.leftAutoCount.string = count.toString();
}
startAutoSpin() {
let circle01 = this.autoBtnAni.node
.getChildByName("AutoSpinCircle01")
.getComponent(Sprite);
let circle02 = this.autoBtnAni.node
.getChildByName("AutoSpinCircle02")
.getComponent(Sprite);
circle01.fillStart = 0;
circle01.fillRange = 0;
circle02.fillStart = 0;
circle02.fillRange = 0;
this.isAuto = true;
this.scheduleOnce(() => {
circle01.node.active = true;
circle02.node.active = true;
this.autoBtnAni.play("autoSpin_Enable_animation");
}, 0.4);
this.setBtnEnable(this.subBtn, false);
this.setBtnEnable(this.addBtn, false);
this.setBtnEnable(this.autoBtn, false);
this.setBtnEnable(this.menuBtn, false);
this.setBtnEnable(this.spinBtn, false);
this.slotGame.showFeatureBuy(true)
this.setBtnVisible(this.spinBtn, false);
this.setBtnVisible(this.stopAutoBtn, true);
this.setLeftAutoCount(GameDataManager.instance.autoCount);
this.node.emit(SLOT_BAR_EVENT.ON_AUTO_SPIN_CLICK, this.isAuto);
}
closeAutoSpin() {
this.isAuto = false;
this.autoBtnAni.stop();
this.autoBtnAni.play("autoSpin_Pressed_animation");
this.scheduleOnce(() => {
this.autoBtnAni.play("autoSpin_Normal_animation");
}, 0.4);
AudioManager.instance.playSFX("Common_Button_Click");
this.node.emit(SLOT_BAR_EVENT.ON_AUTO_SPIN_CLICK, this.isAuto);
this.setBtnVisible(this.spinBtn, true);
this.setBtnVisible(this.stopAutoBtn, false);
this.setBtnEnable(this.spinBtn, false);
this.slotGame.showFeatureBuy(false)
}
reconnectState(hasDelete: boolean = false) {
if (hasDelete) {
this.setBtnEnable(this.subBtn, false);
this.setBtnEnable(this.addBtn, false);
this.setBtnEnable(this.autoBtn, false);
this.setBtnEnable(this.menuBtn, false);
this.setBtnEnable(this.spinBtn, false);
}
}
resetAllState() {
this.allowClickManualStop(false)
this.notAllowClickManualStop(false)
this.isAuto = false;
this.setBtnVisible(this.spinBtn, true);
this.spinAni.stopSpin();
this.setBtnVisible(this.stopAutoBtn, false);
this.setBtnEnable(this.spinBtn, true);
this.setBtnEnable(this.subBtn, true);
this.setBtnEnable(this.addBtn, true);
this.setBtnEnable(this.menuBtn, true);
this.setBtnEnable(this.autoBtn, true);
this.setBtnEnable(this.subBtn, this.betIndex > 0);
}
onTurboMouseDown() {
this.unscheduleAllCallbacks();
this.turboBtnAni.stop();
AudioManager.instance.playSFX("Common_Button_Click");
if (this.isFastSpin) {
this.isFastSpin = false;
this.turboBtnAni.play("turbo_Pressed_animation");
setTimeout(() => {
this.turboBtnAni.play("turbo_Normal_animation");
}, 400);
} else {
this.isFastSpin = true;
this.turboBtnAni.play("turbo_Pressed_animation");
// 修改为timeout
setTimeout(() => {
this.turboBtnAni.play("turbo_Enable_animation");
}, 400);
}
this.node.emit(SLOT_BAR_EVENT.FAST_SPIN, this.isFastSpin);
}
onBtnExit() {
this.node.emit(SLOT_BAR_EVENT.ON_EXIT_CLICK);
AudioManager.instance.playSFX("Common_Button_Click");
}
//111
SPIN_ACTIVE = true;
BTNS1_ACTIVE = true;
BTNS2_ACTIVE = false;
BTNS3_ACTIVE = false;
enterFreeSpin(leftCount: number) {
this.freeSpinBg.active = true;
this.BTNS1_ACTIVE = this.btns1.active;
this.BTNS2_ACTIVE = this.btns2.active;
this.BTNS3_ACTIVE = this.btns3.active;
this.SPIN_ACTIVE = this.spinNode.active;
this.btns1.active = false;
this.btns2.active = false;
this.btns3.active = false;
this.spinNode.active = false;
this.msg.setPosition(0, -900, 0)
this.showLeftCount(leftCount);
}
showLeftCount(leftCount: number) {
if (leftCount >= 1) {
let rfs = this.left_1.getChildByName("rfs");
rfs.getComponent(LocalizedSprite).updateSprite();
this.left_1.getComponent(Layout).updateLayout();
this.left_1.active = true;
this.leftCount.string = leftCount.toString();
this.left_2.active = false;
} else {
this.left_1.active = false;
let rfs = this.left_2.getChildByName("rfs");
rfs.getComponent(LocalizedSprite).updateSprite();
this.left_2.active = true;
}
}
exitFreeSpin() {
this.freeSpinBg.active = false;
this.btns1.active = this.BTNS1_ACTIVE;
this.btns2.active = this.BTNS2_ACTIVE;
this.btns3.active = this.BTNS3_ACTIVE;
this.spinNode.active = this.SPIN_ACTIVE;
this.msg.setPosition(0, -680, 0)
}
// 设置按钮可以点击并且置灰的函数
setBtnEnable(btn: Button | Node, enable: boolean) {
if (btn instanceof Button) {
btn.interactable = enable;
this.setNodeOpacity(btn.node, enable ? 255 : 128);
} else {
btn.getComponent(Button).interactable = enable;
this.setNodeOpacity(btn, enable ? 255 : 128);
}
}
setNodeOpacity(node: Node, opacity: number) {
node.getComponent(UIOpacity).opacity = opacity;
}
// 设置按钮显示隐藏
setBtnVisible(btn: Button, visible: boolean) {
btn.node.active = visible;
}
autoAin() {
if (this.autoBtn.getComponent(Button).interactable) {
this.autoBtnAni.play("autoSpin_Hover_animation");
}
}
fastAni() {
if (this.turboBtn.getComponent(Button).interactable && !this.isFastSpin) {
this.turboBtnAni.play("turbo_Hover_animation");
this.turboBtnAni.once(Animation.EventType.FINISHED, () => {
this.turboBtnAni.play("turbo_Normal_animation");
});
}
}
setSystemGiftContinue() {
this.setBtnEnable(this.subBtn, false);
this.setBtnEnable(this.addBtn, false);
this.setBtnEnable(this.autoBtn, false);
this.setBtnEnable(this.menuBtn, false);
}
protected onDestroy(): void {
this.autoBtn.off(Node.EventType.TOUCH_START, this.autoAin, this);
this.autoBtn.off(Node.EventType.MOUSE_ENTER, this.autoAin, this);
this.turboBtn.off(Node.EventType.TOUCH_START, this.fastAni, this);
this.turboBtn.off(Node.EventType.MOUSE_ENTER, this.fastAni, this);
}
setSystemGiftConfirm() {
this.setBtnEnable(this.subBtn, true);
this.setBtnEnable(this.addBtn, true);
this.setBtnEnable(this.autoBtn, true);
this.setBtnEnable(this.menuBtn, true);
this.betIndex = 0;
this.setBet(this.betGrade[this.betIndex]);
}
setSysGiftBet(bet) {
let found = false;
this.betGrade.forEach((v, i) => {
if (v == bet) {
this.betIndex = i;
found = true;
}
});
if (!found) {
this.setBet(bet, true);
} else {
this.setBet(this.betGrade[this.betIndex], true);
}
}
}