难度选择功能
This commit is contained in:
parent
5bf674aa9e
commit
eeb4158187
@ -574,9 +574,9 @@
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 130,
|
||||
"g": 214,
|
||||
"b": 40,
|
||||
"r": 255,
|
||||
"g": 246,
|
||||
"b": 187,
|
||||
"a": 255
|
||||
},
|
||||
"_spriteFrame": {
|
||||
@ -1058,9 +1058,9 @@
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 130,
|
||||
"g": 214,
|
||||
"b": 40,
|
||||
"r": 255,
|
||||
"g": 246,
|
||||
"b": 187,
|
||||
"a": 255
|
||||
},
|
||||
"_spriteFrame": {
|
||||
|
||||
@ -1158,7 +1158,6 @@
|
||||
"multiNode": {
|
||||
"__id__": 36
|
||||
},
|
||||
"bombNode": null,
|
||||
"multiSpriteFrames": [
|
||||
{
|
||||
"__uuid__": "41856c4f-db7d-41ef-bd58-cd9c9987baee@f9941",
|
||||
|
||||
@ -899,7 +899,6 @@
|
||||
"__id__": 26
|
||||
},
|
||||
"multiNode": null,
|
||||
"bombNode": null,
|
||||
"multiSpriteFrames": [],
|
||||
"blurMultiSpriteFrames": [],
|
||||
"_id": ""
|
||||
|
||||
@ -28,8 +28,8 @@ export class Icon extends Component {
|
||||
@property(Node)
|
||||
multiNode: Node = null;
|
||||
|
||||
@property(Node)
|
||||
bombNode: Node = null;
|
||||
// @property(Node)
|
||||
// bombNode: Node = null;
|
||||
|
||||
@property([SpriteFrame])
|
||||
multiSpriteFrames: SpriteFrame[] = [];
|
||||
@ -63,8 +63,14 @@ export class Icon extends Component {
|
||||
this.normalNode.active = true;
|
||||
this.showFastIcon(false);
|
||||
this.spineNode.active = false;
|
||||
if (this.multiNode) this.multiNode.active = false;
|
||||
if (this.bombNode) this.bombNode.active = false;
|
||||
if (this.multiNode) {
|
||||
this.multiNode.active = false;
|
||||
this.multiNode.setScale(1, 1, 1);
|
||||
}
|
||||
// if (this.bombNode) {
|
||||
// this.bombNode.active = false;
|
||||
// this.bombNode.setScale(1, 1, 1);
|
||||
// }
|
||||
|
||||
let spine = this.spineNode.getChildByName('spine').getComponent(sp.Skeleton);
|
||||
if (spine) {
|
||||
@ -172,6 +178,20 @@ export class Icon extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
playMultiSpine() {
|
||||
this.spineNode.active = true;
|
||||
this.normalNode.active = false;
|
||||
let spine = this.spineNode.getChildByName('spine').getComponent(sp.Skeleton);
|
||||
if (spine) {
|
||||
// spine.setAnimation(0, 'xiaoshi', false);
|
||||
// spine.setCompleteListener(() => {
|
||||
// spine.setCompleteListener(null);
|
||||
// this.spineNode.active = false;
|
||||
// this.bombNode.active = true;
|
||||
// })
|
||||
}
|
||||
}
|
||||
|
||||
playDeleteSpine() {
|
||||
let spine = this.spineNode.getChildByName('spine').getComponent(sp.Skeleton);
|
||||
|
||||
|
||||
@ -158,12 +158,11 @@ export class Roller extends Component {
|
||||
}
|
||||
|
||||
for (let i = 0; i < this.row; i++) {
|
||||
this.createNormalIcon(i, data[i], 1);
|
||||
|
||||
this.createNormalIcon(i, data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
createNormalIcon(pos: number, iconIndex: number, test: number = 0): Node {
|
||||
createNormalIcon(pos: number, iconIndex: number): Node {
|
||||
let iconNode = this.iconFactory.icfactoryCreateIcon(iconIndex);
|
||||
let icon = iconNode.getComponent(Icon);
|
||||
icon.initIcon(iconIndex, 1, this._rollerId);
|
||||
@ -222,18 +221,17 @@ export class Roller extends Component {
|
||||
let seen = new Set<Node>();
|
||||
let exitTopY = this.getIconPosition(4).y - (this.row - 2) * this.iconHeight;
|
||||
|
||||
// 图标向上飞出,顶行先出(行间隔 0.03s,快速模式同时)
|
||||
// 修改为图标向下飞出,底行先出,速度不变
|
||||
// 开转时旧图标快速退场:底行先出,普通模式做轻微错峰
|
||||
for (let i = this.row - 1; i >= 0; i--) {
|
||||
let icon = this.grid[i];
|
||||
if (icon && !seen.has(icon)) {
|
||||
seen.add(icon);
|
||||
this._exitingIcons.push(icon);
|
||||
let iconRef = icon;
|
||||
let exitDelay = this._info.isFastSpin ? 0 : (this.row - i) * 0.03;
|
||||
let exitDelay = this._info.isFastSpin ? 0 : (this.row - 1 - i) * 0.02;
|
||||
tween(iconRef)
|
||||
.delay(exitDelay)
|
||||
.to(0.18, { position: v3(0, exitTopY, 0) }, { easing: 'quadIn' })
|
||||
.to(0.14, { position: v3(0, exitTopY, 0) }, { easing: 'quadIn' })
|
||||
.call(() => {
|
||||
let idx = this._exitingIcons.indexOf(iconRef);
|
||||
if (idx !== -1) this._exitingIcons.splice(idx, 1);
|
||||
@ -253,7 +251,7 @@ export class Roller extends Component {
|
||||
this._info.state = ROLLER_STATE.ACCELERATE;
|
||||
|
||||
// 退场结束后标记"可掉落"
|
||||
let exitDuration = this._info.isFastSpin ? 0.18 : 0.18 + (this.row - 1) * 0.03;
|
||||
let exitDuration = this._info.isFastSpin ? 0.14 : 0.14 + (this.row - 1) * 0.02;
|
||||
this.scheduleOnce(() => {
|
||||
if (this._info.state !== ROLLER_STATE.ACCELERATE) return;
|
||||
this._info.state = ROLLER_STATE.UNIFORM;
|
||||
@ -287,8 +285,8 @@ export class Roller extends Component {
|
||||
|
||||
let topY = this.getIconPosition(0, 1).y;
|
||||
let isFast = this._info.isFastSpin;
|
||||
// 普通模式行间隔 0.05s;快速/急停无间隔
|
||||
let rowInterval = isFast ? 0 : 0.05;
|
||||
// 普通模式行间隔更紧凑;快速/急停无间隔
|
||||
let rowInterval = isFast ? 0 : 0.035;
|
||||
let maxTime = 0;
|
||||
|
||||
for (let i = 0; i < this.row; i++) {
|
||||
@ -321,7 +319,7 @@ export class Roller extends Component {
|
||||
// 列延迟 + 行内延迟
|
||||
let rowDelay = extraDelay + (this.row - 1 - i) * rowInterval; // 底行先落,顶行后落
|
||||
let distance = Math.abs(startY - targetPos.y);
|
||||
let fallTime = Math.min(Math.max(Math.sqrt(distance) / 55, 0.15), 0.32);
|
||||
let fallTime = Math.min(Math.max(Math.sqrt(distance) / 55, 0.12), 0.24);
|
||||
let iconRef = iconNode;
|
||||
|
||||
if (this._info.noBounce) {
|
||||
@ -340,8 +338,8 @@ export class Roller extends Component {
|
||||
maxTime = Math.max(maxTime, rowDelay + fallTime);
|
||||
} else {
|
||||
let bounceH = Math.min(Math.max(distance * 0.08, 6), 18);
|
||||
let bounceUp = 0.08;
|
||||
let bounceDown = 0.06;
|
||||
let bounceUp = 0.05;
|
||||
let bounceDown = 0.04;
|
||||
let bouncePos = targetPos.clone().add(v3(0, bounceH, 0));
|
||||
|
||||
tween(iconRef)
|
||||
@ -469,7 +467,7 @@ export class Roller extends Component {
|
||||
allIcons = [...this._newCreateIconNode, ...allIcons];
|
||||
allIcons.sort((a, b) => b.position.y - a.position.y);
|
||||
|
||||
let interval = 0.05;
|
||||
let interval = 0.03;
|
||||
let targetPos = this.row;
|
||||
let dealyCount = 0;
|
||||
let timeEnd = 0;
|
||||
@ -484,13 +482,13 @@ export class Roller extends Component {
|
||||
if (iconNode.position.y !== targetPosition.y) {
|
||||
let distance = Math.abs(iconNode.position.y - targetPosition.y);
|
||||
|
||||
let fallTime = Math.min(Math.max(Math.sqrt(distance) / 55, 0.12), 0.28);
|
||||
let fallTime = Math.min(Math.max(Math.sqrt(distance) / 55, 0.10), 0.20);
|
||||
|
||||
let bounceH1 = Math.min(Math.max(distance * 0.18, 12), 26);
|
||||
let bounceH2 = Math.floor(bounceH1 * 0.5);
|
||||
|
||||
let bounceTime1Up = Math.min(Math.max(0.06 + bounceH1 * 0.002, 0.08), 0.12);
|
||||
let bounceTime1Down = bounceTime1Up * 0.85;
|
||||
let bounceTime1Up = Math.min(Math.max(0.05 + bounceH1 * 0.0015, 0.05), 0.08);
|
||||
let bounceTime1Down = bounceTime1Up * 0.8;
|
||||
|
||||
let bouncePos2 = targetPosition.clone().add(v3(0, bounceH2, 0));
|
||||
|
||||
|
||||
@ -5,17 +5,8 @@ import { ICON_HEIGHT, ICON_WIDTH, IParsedGameData, ROLLER_COMBINE_EVENT, ROLLER_
|
||||
import { AudioManager } from '../../Main/Scripts/managers/AudioManager';
|
||||
let { ccclass, property, executeInEditMode } = _decorator;
|
||||
|
||||
// 帧到启动ID映射(按帧序)
|
||||
let frameOrder = [
|
||||
{ frame: 1, ids: [0] },
|
||||
{ frame: 5, ids: [1] },
|
||||
{ frame: 8, ids: [2] },
|
||||
{ frame: 11, ids: [3] },
|
||||
{ frame: 14, ids: [4] },
|
||||
{ frame: 17, ids: [5] },
|
||||
];
|
||||
|
||||
let fps = 30;
|
||||
// 普通模式下各列起转的间隔(秒)
|
||||
let startScrollStagger = 0.08;
|
||||
|
||||
@ccclass('RollerManager')
|
||||
@executeInEditMode
|
||||
@ -181,18 +172,14 @@ export class RollerManager extends Component {
|
||||
this.node.emit(ROLLER_COMBINE_EVENT.ROLLER_BOUNCE, rollerId);
|
||||
|
||||
let stopData = this._resultStopData[rollerId];
|
||||
let isWild = stopData.indexOf(0) !== -1;
|
||||
let isScatter = stopData.indexOf(1) !== -1;
|
||||
let isScatter = stopData.indexOf(0) !== -1;
|
||||
if (!this._isFreeSpin && !this._isManualStop && !this._isFastSpin) {
|
||||
if (isWild && !isScatter) {
|
||||
AudioManager.instance.playSFX('Appear_Wild_Sound');
|
||||
}
|
||||
|
||||
if (isScatter) {
|
||||
AudioManager.instance.playSFX('Appear_Scatter_Sound');
|
||||
}
|
||||
|
||||
if (!isWild && !isScatter) {
|
||||
if (!isScatter) {
|
||||
AudioManager.instance.playSFX('Roller_Down');
|
||||
}
|
||||
}
|
||||
@ -230,18 +217,13 @@ export class RollerManager extends Component {
|
||||
this.hasEmitScatterTween = false;
|
||||
|
||||
if (this._isFastSpin || this._isManualStop) {
|
||||
let hasScatter = this._parsedData.PanData.indexOf(1) !== -1;
|
||||
let hasWild = this._parsedData.PanData.indexOf(0) !== -1;
|
||||
|
||||
if (hasWild && !hasScatter) {
|
||||
AudioManager.instance.playSFX('Appear_Wild_Sound');
|
||||
}
|
||||
let hasScatter = this._parsedData.PanData.indexOf(0) !== -1;
|
||||
|
||||
if (hasScatter) {
|
||||
AudioManager.instance.playSFX('Appear_Scatter_Sound');
|
||||
}
|
||||
|
||||
if (!hasWild && !hasScatter) {
|
||||
if (!hasScatter) {
|
||||
AudioManager.instance.playSFX('Roller_Down');
|
||||
}
|
||||
}
|
||||
@ -421,18 +403,16 @@ export class RollerManager extends Component {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
frameOrder.forEach(({ frame, ids }) => {
|
||||
let delay = Math.max(0, (frame - 1) / fps);
|
||||
ids.forEach(id => {
|
||||
let roller = this.allRollers[id];
|
||||
for (let i = 0; i < this.allRollers.length; i++) {
|
||||
let roller = this.allRollers[i];
|
||||
let delay = i * startScrollStagger;
|
||||
if (roller) {
|
||||
this.scheduleOnce(() => {
|
||||
if (this._isManualStop) return;
|
||||
roller.startScroll();
|
||||
}, delay);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -452,9 +432,9 @@ export class RollerManager extends Component {
|
||||
roller.stopScroll(this._resultStopData[i], 0);
|
||||
}
|
||||
} else {
|
||||
// 普通模式:从左到右依次掉落,每列间隔 0.12s
|
||||
// 普通模式:从左到右依次掉落,每列间隔更紧凑
|
||||
for (let i = 0; i < this.allRollers.length; i++) {
|
||||
const colDelay = i * 0.12;
|
||||
const colDelay = i * 0.09;
|
||||
const roller = this.allRollers[i];
|
||||
const stopData = this._resultStopData[i];
|
||||
this.scheduleOnce(() => {
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
import { _decorator, Component, instantiate, Label, Node, sp, Sprite, Tween, tween, UIOpacity, UITransform, v3, Vec3 } from 'cc';
|
||||
import { _decorator, Component, director, instantiate, Label, Node, sp, Sprite, Tween, tween, UIOpacity, UITransform, v3, Vec3 } from 'cc';
|
||||
import { I18nManager } from '../../Main/Scripts/managers/I18nManager';
|
||||
import { getLanguage, gold2cash } from '../../Main/Scripts/main/comm';
|
||||
import { UIManager } from '../../Main/Scripts/managers/UIManager';
|
||||
import { AudioManager } from '../../Main/Scripts/managers/AudioManager';
|
||||
import { Icon } from './Icon';
|
||||
import { SlotGame } from './SlotGame';
|
||||
import { SlotBar } from './SlotBar';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('SlotMsg')
|
||||
@ -148,6 +150,7 @@ export class SlotMsg extends Component {
|
||||
let msg = this.middleMsgSpine.node.getChildByName('msg');
|
||||
let winCount = msg.getChildByName('winCount');
|
||||
winCount.getComponent(Label).string = gold2cash(endScore);
|
||||
AudioManager.instance.playSFX('Slot_Msg_Normal_Win');
|
||||
}
|
||||
|
||||
showTotalWinMsg(endScore: number) {
|
||||
@ -173,11 +176,137 @@ export class SlotMsg extends Component {
|
||||
this.largeMsgSpine.node.active = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示多倍炸弹倍率动画
|
||||
* @param spinData 当前spin数据
|
||||
* @param callBack 动画结束回调
|
||||
*
|
||||
* 此函数内部的run是async,从上到下用await/同步promise的方式,严格保证顺序和队列效果,一步一步地执行动画和界面更新。
|
||||
* 下面会对run里每一行的逻辑做中文注释,逐步解析
|
||||
*/
|
||||
showMultiWinAnimation(spinData, callBack: () => void) {
|
||||
this.scheduleOnce(() => {
|
||||
this.showTotalWinMsg(spinData.WinInfo.MulDesc.Multied);
|
||||
callBack();
|
||||
}, 1)
|
||||
// 获取倍率描述,多模式下兼容字段名
|
||||
let mulDesc = spinData?.WinInfo?.MulDesc || spinData?.WinInfo?.muldesc;
|
||||
let multiedScore = mulDesc?.Multied; // 最终得到的分数
|
||||
let mulValue = mulDesc?.Mul; // 总倍率
|
||||
let slotGame = director.getScene()?.getComponentInChildren(SlotGame);
|
||||
let bombInfos = slotGame?.getCurrentBombSettleInfos?.() || []; // 炸弹节点信息
|
||||
|
||||
if (!bombInfos.length) {
|
||||
console.error('SlotGame not find bombInfos msg');
|
||||
return;
|
||||
}
|
||||
|
||||
// 提示分数的spine节点和最终显示位置
|
||||
let msg = this.largeMsgSpine.node.getChildByName('msg');
|
||||
let winCount = msg.getChildByName('winCount');
|
||||
let uiTf = this.node.getComponent(UITransform);
|
||||
let centerLocalPos = v3(0, -315, 0); // 动画中心点坐标(本地)
|
||||
let targetLocalPos = uiTf.convertToNodeSpaceAR(winCount.getWorldPosition()); // 目标分数字显示位置
|
||||
|
||||
// 设置一个节点的多倍文本
|
||||
let setMulText = (node: Node, mul: number) => {
|
||||
let labNode = node.getChildByName('lab');
|
||||
if (!labNode) return;
|
||||
let lab = labNode.getComponent(Label);
|
||||
if (!lab) return;
|
||||
lab.string = `x${mul}`;
|
||||
};
|
||||
|
||||
// 节点tween到目标位置的promise(动画完resolve)
|
||||
let tweenToAsync = (node: Node, toPos: Vec3, duration: number) => {
|
||||
return new Promise<void>((resolve) => {
|
||||
tween(node)
|
||||
.to(duration, { position: toPos }, { easing: 'quadInOut' })
|
||||
.call(() => resolve())
|
||||
.start();
|
||||
});
|
||||
};
|
||||
|
||||
// 放大动画(脉冲)的promise(动画完resolve)
|
||||
let pulseAsync = (node: Node) => {
|
||||
return new Promise<void>((resolve) => {
|
||||
tween(node)
|
||||
.to(0.2, { scale: v3(1.5, 1.5, 1.5) }, { easing: 'quadOut' })
|
||||
.call(() => resolve())
|
||||
.start();
|
||||
});
|
||||
};
|
||||
|
||||
// 延迟promise,用于动画间隔
|
||||
let delayAsync = (seconds: number) => {
|
||||
return new Promise<void>((resolve) => {
|
||||
this.scheduleOnce(() => resolve(), seconds);
|
||||
});
|
||||
};
|
||||
|
||||
// === 跑队列 ===
|
||||
// 这部分run内部就是完整的队列模式,所有动画/节点操作都是await同步执行
|
||||
let run = async () => {
|
||||
// 1. 克隆一个multiNode,做为动画的中心倍率展示
|
||||
let seedNode = bombInfos[0]?.multiNode;
|
||||
let centerMulNode = instantiate(seedNode);
|
||||
this.node.addChild(centerMulNode);
|
||||
centerMulNode.setPosition(centerLocalPos);
|
||||
centerMulNode.setScale(1, 1, 1);
|
||||
centerMulNode.active = false;
|
||||
setMulText(centerMulNode, 0);
|
||||
|
||||
let sumMul = 0;
|
||||
// 2. 遍历每一个待结算的bomb多倍icon,按顺序“飞入中心”, 逐步累加
|
||||
for (let i = 0; i < bombInfos.length; i++) {
|
||||
let info = bombInfos[i];
|
||||
if (!info?.multiNode?.isValid) continue;
|
||||
|
||||
let iconComp = info.iconNode?.getComponent(Icon);
|
||||
// 2.1 播放爆炸动画 加入队列,爆炸完之后再进行下一步
|
||||
await new Promise<void>((resolve) => {
|
||||
iconComp.playMultiSpine();
|
||||
this.scheduleOnce(() => resolve(), 0.2);
|
||||
});
|
||||
|
||||
// 2.2 当前multiNode放大(脉冲动画),await保证上一步结束
|
||||
await pulseAsync(info.multiNode);
|
||||
|
||||
// 2.3 复制multiNode,实际用于“飞入中心”
|
||||
let sourceWorldPos = info.multiNode.getWorldPosition();
|
||||
let sourceLocalPos = uiTf.convertToNodeSpaceAR(sourceWorldPos);
|
||||
let flyNode = instantiate(info.multiNode);
|
||||
info.multiNode.active = false;
|
||||
this.node.addChild(flyNode);
|
||||
flyNode.setPosition(sourceLocalPos);
|
||||
|
||||
// 2.4 飞到中心动画
|
||||
await tweenToAsync(flyNode, centerLocalPos, 0.3);
|
||||
flyNode.destroy();
|
||||
|
||||
// 2.5 累加倍率,中心节点显示最新总倍率
|
||||
sumMul += info.mul;
|
||||
centerMulNode.active = true;
|
||||
setMulText(centerMulNode, sumMul);
|
||||
|
||||
// 2.6 中心放大动画(脉冲)
|
||||
await pulseAsync(centerMulNode);
|
||||
|
||||
// 2.7 小延迟,准备下一个icon
|
||||
await delayAsync(0.08);
|
||||
}
|
||||
|
||||
|
||||
// 4. 中心multi飞到最终目标位置
|
||||
await tweenToAsync(centerMulNode, targetLocalPos, 0.2);
|
||||
centerMulNode.destroy();
|
||||
|
||||
// 5. 展示最终总分获胜弹窗
|
||||
this.showTotalWinMsg(multiedScore);
|
||||
// 直接调用回调(如果业务上需要动画结束后再回调可考虑调整)
|
||||
if (callBack) callBack();
|
||||
let slotBar = director.getScene()?.getComponentInChildren(SlotBar);
|
||||
if (slotBar) slotBar.updateWinMsg(spinData.AllScore);
|
||||
};
|
||||
|
||||
// 直接触发队列执行,不等待run()结束,动画流程内部用await限定顺序,外部流程不依赖
|
||||
run();
|
||||
}
|
||||
|
||||
showTipSmall(tips: string, Type: string = "") {
|
||||
|
||||
@ -112,6 +112,9 @@ export class SlotScene extends Component {
|
||||
GameDataManager.instance.canClickIconMsg = false;
|
||||
this.slotBar.setGameInfo(this.gameInfo);
|
||||
this.slotMsg.showLabelMsgForTween();
|
||||
this.node.getChildByName('Choose').children.forEach((child: Node, index: number) => {
|
||||
child.active = index == GameDataManager.instance.chooseDiff - 1;
|
||||
})
|
||||
this.updateGameState();
|
||||
this.isFreeSpin = this.spinData.Free != null && this.spinData && this.spinData.Free && this.spinData.Free.LeftCount > 0;
|
||||
if (this.isFreeSpin) {
|
||||
@ -146,6 +149,7 @@ export class SlotScene extends Component {
|
||||
this.slotBar.manualStop(this.hasEliminate);
|
||||
this.slotGame.playIconWinAni(this.spinData);
|
||||
this.slotMsg.showRoundWinMsg(this.spinData.WinInfo.Score);
|
||||
this.slotBar.updateWinMsg(this.spinData.AllScore);
|
||||
if (this.isDebug) {
|
||||
this.nextSpinInfo = GAME_DATA;
|
||||
} else {
|
||||
@ -351,6 +355,7 @@ export class SlotScene extends Component {
|
||||
if (this.hasEliminate) {
|
||||
this.slotGame.playIconWinAni(this.spinData);
|
||||
this.slotMsg.showRoundWinMsg(this.spinData.WinInfo.Score);
|
||||
this.slotBar.updateWinMsg(this.spinData.AllScore);
|
||||
if (this.isDebug) {
|
||||
this.nextSpinInfo = GAME_DATA;
|
||||
} else {
|
||||
@ -405,6 +410,7 @@ export class SlotScene extends Component {
|
||||
if (this.hasEliminate) {
|
||||
this.slotGame.playIconWinAni(this.spinData);
|
||||
this.slotMsg.showRoundWinMsg(this.spinData.WinInfo.Score);
|
||||
this.slotBar.updateWinMsg(this.spinData.AllScore);
|
||||
if (this.isDebug) {
|
||||
this.nextSpinInfo = GAME_DATA;
|
||||
} else {
|
||||
@ -419,7 +425,7 @@ export class SlotScene extends Component {
|
||||
handleSpinResult() {
|
||||
this.lastSpinInfo = this.spinInfo;
|
||||
this.spinData = this.spinInfo.Data;
|
||||
// this.spinData.AllScore = 700000;
|
||||
// this.spinData.AllScore = 7000000000;
|
||||
this.isReceiveMsg = true;
|
||||
if (this.spinInfo.Frb.Ongoing && this.isAutoSpin)
|
||||
this.slotBar.closeAutoSpin();
|
||||
@ -448,9 +454,7 @@ export class SlotScene extends Component {
|
||||
this.slotGame.upLayer.playScatterWaitSpine(true);
|
||||
this.scheduleOnce(() => {
|
||||
this.slotGame.upLayer.playScatterSpine(false);
|
||||
this.updateBg(true);
|
||||
this.slotBar.updateIsFreeSpin(true);
|
||||
this.slotBar.setLeftCount(this.spinData.Free.MaxCount);
|
||||
this.scheduleOnce(() => { this.updateBg(true); this.slotBar.updateIsFreeSpin(true); this.slotBar.setLeftCount(this.spinData.Free.MaxCount); }, 1)
|
||||
NodePoolManager.instance.getNodeFromPoolDynamic("FreeSpinEnter", "Prefab/FreeSpinEnter", "Game").then((prefab: Node) => {
|
||||
this.node.addChild(prefab);
|
||||
let freeCount = this.spinData.Free.MaxCount;
|
||||
@ -584,13 +588,14 @@ export class SlotScene extends Component {
|
||||
|
||||
if (this.spinData.WinInfo.MulDesc == null) {
|
||||
this.slotMsg.showTotalWinMsg(this.spinData.RoundInfo.Score);
|
||||
this.slotBar.updateWinMsg(this.spinData.RoundInfo.Score);
|
||||
callBack();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.spinData.WinInfo.MulDesc !== null) {
|
||||
this.slotMsg.showTotalWinMsg(this.spinData.WinInfo.MulDesc.UnMultied);
|
||||
this.slotMsg.showMultiWinAnimation(this.spinData, callBack)
|
||||
this.slotMsg.showMultiWinAnimation(this.spinData, callBack);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -188,17 +188,6 @@ export class UpLayer extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
playReadyHandAni(rollerId: number) {
|
||||
this.readHandLayer.active = true;
|
||||
this.setReadHandSkeletonActive(true);
|
||||
this.readyHandNode.getComponent(sp.Skeleton).setAnimation(0, 'animation', true);
|
||||
|
||||
this.readyHandGrayNode.children.forEach(child => child.active = true)
|
||||
this.readyHandGrayNode.children[rollerId].active = false;
|
||||
|
||||
this.readyHandNode.setPosition(this.readyHandGrayNode.children[rollerId].position.clone());
|
||||
}
|
||||
|
||||
setReadHandSkeletonActive(bol: boolean) {
|
||||
this.readyHandNode.active = bol;
|
||||
this.readyHandGrayNode.active = bol;
|
||||
|
||||
@ -25545,7 +25545,7 @@
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "choose",
|
||||
"_name": "Choose",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
@ -26106,7 +26106,7 @@
|
||||
},
|
||||
"component": "",
|
||||
"_componentId": "869a6c2dfpJV5PioVAJJ/Lk",
|
||||
"handler": "",
|
||||
"handler": "onBtnChooseDiff",
|
||||
"customEventData": ""
|
||||
},
|
||||
{
|
||||
|
||||
9
assets/Game/Textures/Spines/ChooseDiff.meta
Normal file
9
assets/Game/Textures/Spines/ChooseDiff.meta
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "ab66cc55-1313-4bf9-83e0-dd497d468b1f",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
13
assets/Game/Textures/Spines/ChooseDiff/Volatility.atlas
Normal file
13
assets/Game/Textures/Spines/ChooseDiff/Volatility.atlas
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
Volatility.png
|
||||
size: 122,122
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
5ueJ
|
||||
rotate: false
|
||||
xy: 2, 2
|
||||
size: 118, 118
|
||||
orig: 128, 128
|
||||
offset: 5, 5
|
||||
index: -1
|
||||
12
assets/Game/Textures/Spines/ChooseDiff/Volatility.atlas.meta
Normal file
12
assets/Game/Textures/Spines/ChooseDiff/Volatility.atlas.meta
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"importer": "*",
|
||||
"imported": true,
|
||||
"uuid": "477dc91c-e91a-4480-a469-6e3288a8e463",
|
||||
"files": [
|
||||
".atlas",
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
1
assets/Game/Textures/Spines/ChooseDiff/Volatility.json
Normal file
1
assets/Game/Textures/Spines/ChooseDiff/Volatility.json
Normal file
File diff suppressed because one or more lines are too long
11
assets/Game/Textures/Spines/ChooseDiff/Volatility.json.meta
Normal file
11
assets/Game/Textures/Spines/ChooseDiff/Volatility.json.meta
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"ver": "1.2.6",
|
||||
"importer": "spine-data",
|
||||
"imported": true,
|
||||
"uuid": "9030fe79-4cec-4ffe-bcc0-0e8ea00c664e",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
assets/Game/Textures/Spines/ChooseDiff/Volatility.png
Normal file
BIN
assets/Game/Textures/Spines/ChooseDiff/Volatility.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
134
assets/Game/Textures/Spines/ChooseDiff/Volatility.png.meta
Normal file
134
assets/Game/Textures/Spines/ChooseDiff/Volatility.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "3ae2b507-4b12-456b-b1e4-a54ac604cd16",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "3ae2b507-4b12-456b-b1e4-a54ac604cd16@6c48a",
|
||||
"displayName": "Volatility",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "3ae2b507-4b12-456b-b1e4-a54ac604cd16",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "3ae2b507-4b12-456b-b1e4-a54ac604cd16@f9941",
|
||||
"displayName": "Volatility",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 2,
|
||||
"trimY": 2,
|
||||
"width": 118,
|
||||
"height": 118,
|
||||
"rawWidth": 122,
|
||||
"rawHeight": 122,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-59,
|
||||
-59,
|
||||
0,
|
||||
59,
|
||||
-59,
|
||||
0,
|
||||
-59,
|
||||
59,
|
||||
0,
|
||||
59,
|
||||
59,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
2,
|
||||
120,
|
||||
120,
|
||||
120,
|
||||
2,
|
||||
2,
|
||||
120,
|
||||
2
|
||||
],
|
||||
"nuv": [
|
||||
0.01639344262295082,
|
||||
0.01639344262295082,
|
||||
0.9836065573770492,
|
||||
0.01639344262295082,
|
||||
0.01639344262295082,
|
||||
0.9836065573770492,
|
||||
0.9836065573770492,
|
||||
0.9836065573770492
|
||||
],
|
||||
"minPos": [
|
||||
-59,
|
||||
-59,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
59,
|
||||
59,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "3ae2b507-4b12-456b-b1e4-a54ac604cd16@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "3ae2b507-4b12-456b-b1e4-a54ac604cd16@6c48a"
|
||||
}
|
||||
}
|
||||
@ -68,8 +68,18 @@
|
||||
"Reward claim records": "Præmiehistorik",
|
||||
"Event": "Event",
|
||||
"Claim": "Hent",
|
||||
"Event Time": "Eventtid"
|
||||
|
||||
"Event Time": "Eventtid",
|
||||
"AID_VOLATILITY_BUTTON": "Bekræft",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Afslappet",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Eventyr",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "High Roller",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Lav)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Medium)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Høj)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Uendelige gevinster",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Spændingsspil",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Mega gevinster",
|
||||
"AID_VOLATILITY_TITLE": "Volatilitetstilstand"
|
||||
},
|
||||
"de": {
|
||||
"AID_AUTO_BUTTON": "Auto-Dreh starten",
|
||||
@ -140,7 +150,18 @@
|
||||
"Reward claim records": "Belohnungsverlauf",
|
||||
"Event": "Event",
|
||||
"Claim": "Abholen",
|
||||
"Event Time": "Eventzeit"
|
||||
"Event Time": "Eventzeit",
|
||||
"AID_VOLATILITY_BUTTON": "Bestätigen",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Gelegenheitsspieler",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Abenteurer",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "High Roller",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Niedrig)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Mittel)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Hoch)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Endlose Gewinne",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Spannungsspiel",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Mega-Gewinne",
|
||||
"AID_VOLATILITY_TITLE": "Volatilitätsmodus"
|
||||
},
|
||||
"en": {
|
||||
"AID_AUTO_BUTTON": "Start Auto Spin",
|
||||
@ -211,7 +232,18 @@
|
||||
"Reward claim records": "Reward claim records",
|
||||
"Event": "Event",
|
||||
"Claim": "Claim",
|
||||
"Event Time": "Event Time"
|
||||
"Event Time": "Event Time",
|
||||
"AID_VOLATILITY_BUTTON": "Confirm",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Casual",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Adventure",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "High Roller",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Low)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Medium)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(High)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Endless Wins",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Thrill Play",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Mega Wins",
|
||||
"AID_VOLATILITY_TITLE": "Volatility Mode"
|
||||
},
|
||||
"es": {
|
||||
"AID_AUTO_BUTTON": "Iniciar Giros Automáticos",
|
||||
@ -282,7 +314,18 @@
|
||||
"Reward claim records": "Historial de Reclamaciones",
|
||||
"Event": "Evento",
|
||||
"Claim": "Reclamar",
|
||||
"Event Time": "Tiempo del evento"
|
||||
"Event Time": "Tiempo del evento",
|
||||
"AID_VOLATILITY_BUTTON": "Confirmar",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Ocasional",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Aventura",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "Jugador de alto riesgo",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Baja)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Media)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Alta)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Ganancias infinitas",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Juego de emoción",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Megaganancias",
|
||||
"AID_VOLATILITY_TITLE": "Modo de volatilidad"
|
||||
},
|
||||
"fi": {
|
||||
"AID_AUTO_BUTTON": "Käynnistä Automaattipyöritys",
|
||||
@ -353,7 +396,18 @@
|
||||
"Reward claim records": "Palkintohistoria",
|
||||
"Event": "Tapahtuma",
|
||||
"Claim": "Lunasta",
|
||||
"Event Time": "Tapahtuma-aika"
|
||||
"Event Time": "Tapahtuma-aika",
|
||||
"AID_VOLATILITY_BUTTON": "Vahvista",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Rentoutuja",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Seikkailija",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "Korkea panostaja",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Matala)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Keskitaso)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Korkea)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Loputtomat voitot",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Jännityspeli",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Megavoitot",
|
||||
"AID_VOLATILITY_TITLE": "Volatiliteettitila"
|
||||
},
|
||||
"fr": {
|
||||
"AID_AUTO_BUTTON": "Démarrer Lancement Auto",
|
||||
@ -424,7 +478,18 @@
|
||||
"Reward claim records": "Historique des réclamations",
|
||||
"Event": "Événement",
|
||||
"Claim": "Réclamer",
|
||||
"Event Time": "Temps de l’événement"
|
||||
"Event Time": "Temps de l’événement",
|
||||
"AID_VOLATILITY_BUTTON": "Confirmer",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Décontracté",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Aventure",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "Gros parieur",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Faible)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Moyenne)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Élevée)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Gains infinis",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Jeu de sensation",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Méga gains",
|
||||
"AID_VOLATILITY_TITLE": "Mode de volatilité"
|
||||
},
|
||||
"id": {
|
||||
"AID_AUTO_BUTTON": "Mulai Putar Otomatis",
|
||||
@ -495,7 +560,18 @@
|
||||
"Reward claim records": "Riwayat Klaim Hadiah",
|
||||
"Event": "Acara",
|
||||
"Claim": "Klaim",
|
||||
"Event Time": "Waktu Event"
|
||||
"Event Time": "Waktu Event",
|
||||
"AID_VOLATILITY_BUTTON": "Konfirmasi",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Santal",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Petualang",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "Pemain Taruhan Besar",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Rendah)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Sedang)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Tinggi)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Kemenangan Tanpa Henti",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Permainan Seru",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Kemenangan Mega",
|
||||
"AID_VOLATILITY_TITLE": "Mode Volatilitas"
|
||||
},
|
||||
"it": {
|
||||
"AID_AUTO_BUTTON": "Avvia Giocata Automatica",
|
||||
@ -566,7 +642,18 @@
|
||||
"Reward claim records": "Cronologia dei Riscatti",
|
||||
"Event": "Evento",
|
||||
"Claim": "Riscatta",
|
||||
"Event Time": "Tempo evento"
|
||||
"Event Time": "Tempo evento",
|
||||
"AID_VOLATILITY_BUTTON": "Conferma",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Casuale",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Avventura",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "Giocatore dalto livello",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Bassa)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Media)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Alta)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Vincite infinite",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Gioco emozionante",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Mega vincite",
|
||||
"AID_VOLATILITY_TITLE": "Modalità di volatilità"
|
||||
},
|
||||
"ja": {
|
||||
"AID_AUTO_BUTTON": "オートスピン開始",
|
||||
@ -637,7 +724,18 @@
|
||||
"Reward claim records": "受け取り履歴",
|
||||
"Event": "イベント",
|
||||
"Claim": "受け取る",
|
||||
"Event Time": "イベント時間"
|
||||
"Event Time": "イベント時間",
|
||||
"AID_VOLATILITY_BUTTON": "確認",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "カジュアル",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "アドベンチャー",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "ハイローラー",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(低)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(中)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(高)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "エンドレスウィン",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "スリルプレイ",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "メガウィン",
|
||||
"AID_VOLATILITY_TITLE": "ボラティリティモード"
|
||||
},
|
||||
"ko": {
|
||||
"AID_AUTO_BUTTON": "자동 회전 시작",
|
||||
@ -708,7 +806,18 @@
|
||||
"Reward claim records": "보상 수령 기록",
|
||||
"Event": "이벤트",
|
||||
"Claim": "수령",
|
||||
"Event Time": "이벤트 시간"
|
||||
"Event Time": "이벤트 시간",
|
||||
"AID_VOLATILITY_BUTTON": "확인",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "캐주얼",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "어드벤처",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "하이 롤러",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(낮음)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(중간)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(높음)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "엔드리스 윈",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "스릴 플레이",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "메가 윈",
|
||||
"AID_VOLATILITY_TITLE": "변동성 모드"
|
||||
},
|
||||
"my": {
|
||||
"AID_AUTO_BUTTON": "အလိုအလျောက် လည်ခြင်းကို စတင်မည်",
|
||||
@ -779,7 +888,18 @@
|
||||
"Reward claim records": "ဆုလက်ခံမှတ်တမ်း",
|
||||
"Event": "ပွဲလှုပ်ရှားမှု",
|
||||
"Claim": "ဆုလက်ခံမည်",
|
||||
"Event Time": "ပွဲအချိန်"
|
||||
"Event Time": "ပွဲအချိန်",
|
||||
"AID_VOLATILITY_BUTTON": "အတည်ပြုပါ",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "ပုံမှန်",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "စွန့်စားခန်း",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "အမြင့်ဆုံးလောင်းကြေးထားသူ",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(အနိမ့်)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(အလယ်အလတ်)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(အမြင့်)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "အဆုံးမရှိသော အနိုင်ရမှုများ",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "စိတ်လှုပ်ရှားဖွယ်ကစားနည်း",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "မဂါအနိုင်ရမှုများ",
|
||||
"AID_VOLATILITY_TITLE": "အတက်အကျမုဒ်"
|
||||
},
|
||||
"nl": {
|
||||
"AID_AUTO_BUTTON": "Start Automatisch Draaien",
|
||||
@ -850,7 +970,18 @@
|
||||
"Reward claim records": "Claimgeschiedenis",
|
||||
"Event": "Evenement",
|
||||
"Claim": "Claimen",
|
||||
"Event Time": "Eventtijd"
|
||||
"Event Time": "Eventtijd",
|
||||
"AID_VOLATILITY_BUTTON": "Bevestigen",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Casual",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Avontuur",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "High Roller",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Laag)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Gemiddeld)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Hoog)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Eindeloze winsten",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Thrill Play",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Megawinsten",
|
||||
"AID_VOLATILITY_TITLE": "Volatiliteitsmodus"
|
||||
},
|
||||
"pt": {
|
||||
"AID_AUTO_BUTTON": "Iniciar Voltas Automáticas",
|
||||
@ -921,7 +1052,18 @@
|
||||
"Reward claim records": "Histórico de Resgates",
|
||||
"Event": "Evento",
|
||||
"Claim": "Resgatar",
|
||||
"Event Time": "Tempo do evento"
|
||||
"Event Time": "Tempo do evento",
|
||||
"AID_VOLATILITY_BUTTON": "Confirmar",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Descontraído",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Aventura",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "Apostador de alto risco",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Baixa)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Média)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Alta)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Ganhos infinitos",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Jogo de emoção",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Megaganhos",
|
||||
"AID_VOLATILITY_TITLE": "Modo de volatilidade"
|
||||
},
|
||||
"ro": {
|
||||
"AID_AUTO_BUTTON": "Începe Rotirea Automată",
|
||||
@ -992,7 +1134,18 @@
|
||||
"Reward claim records": "Istoric revendicări",
|
||||
"Event": "Eveniment",
|
||||
"Claim": "Revendică",
|
||||
"Event Time": "Timp eveniment"
|
||||
"Event Time": "Timp eveniment",
|
||||
"AID_VOLATILITY_BUTTON": "Confirmă",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Ocazional",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Aventură",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "Jucător cu miză mare",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Scăzut)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Mediu)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Ridicat)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Câștiguri nesfârșite",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Joc de senzație",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Megacâștiguri",
|
||||
"AID_VOLATILITY_TITLE": "Modul de volatilitate"
|
||||
},
|
||||
"ru": {
|
||||
"AID_AUTO_BUTTON": "Запустить автоспин",
|
||||
@ -1063,7 +1216,18 @@
|
||||
"Reward claim records": "История получений",
|
||||
"Event": "Событие",
|
||||
"Claim": "Забрать",
|
||||
"Event Time": "Время события"
|
||||
"Event Time": "Время события",
|
||||
"AID_VOLATILITY_BUTTON": "Подтвердить",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Для начинающих",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Приключение",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "Хайроллер",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Низкая)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Средняя)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Высокая)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Бесконечные выигрыши",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Острые ощущения",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Мега-выигрыши",
|
||||
"AID_VOLATILITY_TITLE": "Режим волатильности"
|
||||
},
|
||||
"sv": {
|
||||
"AID_AUTO_BUTTON": "Starta autospinn",
|
||||
@ -1134,7 +1298,18 @@
|
||||
"Reward claim records": "Belöningshistorik",
|
||||
"Event": "Evenemang",
|
||||
"Claim": "Hämta",
|
||||
"Event Time": "Eventtid"
|
||||
"Event Time": "Eventtid",
|
||||
"AID_VOLATILITY_BUTTON": "Bekräfta",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Avslappnad",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Äventyr",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "High Roller",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Låg)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Medel)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Hög)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Oändliga vinster",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Spänning",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Megavinster",
|
||||
"AID_VOLATILITY_TITLE": "Volatilitetsläge"
|
||||
},
|
||||
"th": {
|
||||
"AID_AUTO_BUTTON": "เริ่มหมุนอัตโนมัติ",
|
||||
@ -1205,7 +1380,18 @@
|
||||
"Reward claim records": "ประวัติการรับรางวัล",
|
||||
"Event": "กิจกรรม",
|
||||
"Claim": "รับรางวัล",
|
||||
"Event Time": "เวลาอีเวนต์"
|
||||
"Event Time": "เวลาอีเวนต์",
|
||||
"AID_VOLATILITY_BUTTON": "ยืนยัน",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "ทั่วไป",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "ผจญภัย",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "นักเดิมพันสูง",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(ต่ำ)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(ปานกลาง)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(สูง)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "ชนะไม่สิ้นสุด",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "การเล่นที่เร้าใจ",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "ชนะรางวัลใหญ่",
|
||||
"AID_VOLATILITY_TITLE": "โหมดความผันผวน"
|
||||
},
|
||||
"tr": {
|
||||
"AID_AUTO_BUTTON": "Otomatik Oynatmayı Başlat",
|
||||
@ -1276,7 +1462,18 @@
|
||||
"Reward claim records": "Ödül Alma Geçmişi",
|
||||
"Event": "Etkinlik",
|
||||
"Claim": "Al",
|
||||
"Event Time": "Etkinlik Süresi"
|
||||
"Event Time": "Etkinlik Süresi",
|
||||
"AID_VOLATILITY_BUTTON": "Onayla",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Gündelik",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Macera",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "Yüksek Bahisli",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Düşük)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Orta)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Yüksek)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Sonsuz Kazançlar",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Heyecan Oyunu",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Büyük Kazançlar",
|
||||
"AID_VOLATILITY_TITLE": "Oynaklık Modu"
|
||||
},
|
||||
"vi": {
|
||||
"AID_AUTO_BUTTON": "Bắt Đầu Quay Tự Động",
|
||||
@ -1347,7 +1544,18 @@
|
||||
"Reward claim records": "Lịch sử nhận thưởng",
|
||||
"Event": "Sự kiện",
|
||||
"Claim": "Nhận thưởng",
|
||||
"Event Time": "Thời gian sự kiện"
|
||||
"Event Time": "Thời gian sự kiện",
|
||||
"AID_VOLATILITY_BUTTON": "Xác nhận",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "Phổ thông",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "Phiêu lưu",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "Cao thủ",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(Thấp)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(Trung bình)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(Cao)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "Chiến thắng bất tận",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "Lối chơi kịch tính",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "Chiến thắng lớn",
|
||||
"AID_VOLATILITY_TITLE": "Chế độ biến động"
|
||||
},
|
||||
"zh": {
|
||||
"AID_AUTO_BUTTON": "開始自動旋轉",
|
||||
@ -1418,6 +1626,17 @@
|
||||
"Reward claim records": "領獎紀錄",
|
||||
"Event": "活動",
|
||||
"Claim": "領取",
|
||||
"Event Time": "活動時間"
|
||||
"Event Time": "活動時間",
|
||||
"AID_VOLATILITY_BUTTON": "確認",
|
||||
"AID_VOLATILITY_CONTENT_1_1": "輕鬆模式",
|
||||
"AID_VOLATILITY_CONTENT_1_2": "冒險模式",
|
||||
"AID_VOLATILITY_CONTENT_1_3": "高能量模式",
|
||||
"AID_VOLATILITY_CONTENT_2_1": "(低)",
|
||||
"AID_VOLATILITY_CONTENT_2_2": "(中)",
|
||||
"AID_VOLATILITY_CONTENT_2_3": "(高)",
|
||||
"AID_VOLATILITY_CONTENT_3_1": "中獎不斷",
|
||||
"AID_VOLATILITY_CONTENT_3_2": "有輸有贏",
|
||||
"AID_VOLATILITY_CONTENT_3_3": "更多大獎",
|
||||
"AID_VOLATILITY_TITLE": "波動模式"
|
||||
}
|
||||
}
|
||||
@ -3,8 +3,9 @@
|
||||
|
||||
import { path } from "cc"
|
||||
import { PREVIEW } from "cc/env"
|
||||
import { GameDataManager } from "../managers/GameDataManager";
|
||||
|
||||
const gameId = "rp_11008_1";
|
||||
const gameId = "rp_11008";
|
||||
// let apiaddr = "https://rpgames-api.rpfafafahkdev.com";
|
||||
let apiaddr = "";
|
||||
let token = "eyJQIjoxMDEzNzAsIkUiOjE3NjI4ODQxNjksIlMiOjEwMDIsIkQiOiJycF8xMDAxNyJ9.nb071g5rB617sJNMMhSKh7kXM0C0oTWSfPo90pejoc4";
|
||||
@ -97,8 +98,31 @@ AbortSignal.timeout ??= function timeout(ms) {
|
||||
return ctrl.signal
|
||||
}
|
||||
|
||||
export async function callGamePendingApi(argsObj: any) {
|
||||
const url = apiaddr + path.join("/gameapi/getgamepending")
|
||||
const payload = JSON.stringify(argsObj)
|
||||
|
||||
const res = await fetch(url, {
|
||||
signal: AbortSignal.timeout(10000),
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"X-Rp-Token": token,
|
||||
},
|
||||
method: "POST",
|
||||
body: payload,
|
||||
mode: 'cors',
|
||||
})
|
||||
|
||||
if (res.status != 200) {
|
||||
const errstr = await res.text()
|
||||
throw new Error(errstr || res.statusText)
|
||||
}
|
||||
const obj = await res.json()
|
||||
return obj
|
||||
}
|
||||
|
||||
export async function callGameApi(action: string, argsObj: any) {
|
||||
const url = apiaddr + path.join("/gameapi/", gameId, action)
|
||||
const url = apiaddr + path.join("/gameapi/", GameDataManager.instance.gamePending, action)
|
||||
const payload = JSON.stringify(argsObj)
|
||||
|
||||
const res = await fetch(url, {
|
||||
|
||||
@ -12,6 +12,7 @@ import {
|
||||
import {
|
||||
callGameApi,
|
||||
callGameApiForRank,
|
||||
callGamePendingApi,
|
||||
getGameId,
|
||||
getIsRB7,
|
||||
getLanguage,
|
||||
@ -108,7 +109,7 @@ export class Loading extends Component {
|
||||
private async initializeSystem() {
|
||||
this.rb7Logo.active = getIsRB7();
|
||||
if (DEBUG) {
|
||||
await getTestToken("xingxi", "faketrans");
|
||||
await getTestToken("yysky", "faketrans");
|
||||
}
|
||||
}
|
||||
|
||||
@ -128,6 +129,19 @@ export class Loading extends Component {
|
||||
this.updateLoadingText("Loading");
|
||||
|
||||
try {
|
||||
let gamePending = await callGamePendingApi({ GameId: getGameId() });
|
||||
if (gamePending.Data.length > 0) {
|
||||
GameDataManager.instance.gamePending = gamePending.Data[0];
|
||||
GameDataManager.instance.chooseDiff = +gamePending.Data[0].split('_')[2];
|
||||
} else {
|
||||
if (localStorage.getItem('HasGamePending') !== null) {
|
||||
GameDataManager.instance.gamePending = String(getGameId()) + '_' + localStorage.getItem('HasGamePending');
|
||||
GameDataManager.instance.chooseDiff = +localStorage.getItem('HasGamePending');
|
||||
} else {
|
||||
GameDataManager.instance.chooseDiff = 2;
|
||||
GameDataManager.instance.gamePending = getGameId() + '_' + 2;
|
||||
}
|
||||
}
|
||||
let gameInfo = await callGameApi("gameinfo", {});
|
||||
|
||||
GameDataManager.instance.gameInfo = gameInfo;
|
||||
|
||||
@ -1354,9 +1354,9 @@
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 130,
|
||||
"g": 214,
|
||||
"b": 40,
|
||||
"r": 255,
|
||||
"g": 246,
|
||||
"b": 187,
|
||||
"a": 255
|
||||
},
|
||||
"_spriteFrame": {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user