diff --git a/assets/Game/Prefab/AutoSpinPanel.prefab b/assets/Game/Prefab/AutoSpinPanel.prefab index 257fc6f..fb0d100 100644 --- a/assets/Game/Prefab/AutoSpinPanel.prefab +++ b/assets/Game/Prefab/AutoSpinPanel.prefab @@ -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": { diff --git a/assets/Game/Prefab/Icons/10.prefab b/assets/Game/Prefab/Icons/10.prefab index a190fe6..66f02f2 100644 --- a/assets/Game/Prefab/Icons/10.prefab +++ b/assets/Game/Prefab/Icons/10.prefab @@ -1158,7 +1158,6 @@ "multiNode": { "__id__": 36 }, - "bombNode": null, "multiSpriteFrames": [ { "__uuid__": "41856c4f-db7d-41ef-bd58-cd9c9987baee@f9941", diff --git a/assets/Game/Prefab/Icons/4.prefab b/assets/Game/Prefab/Icons/4.prefab index 067c407..0b1d159 100644 --- a/assets/Game/Prefab/Icons/4.prefab +++ b/assets/Game/Prefab/Icons/4.prefab @@ -899,7 +899,6 @@ "__id__": 26 }, "multiNode": null, - "bombNode": null, "multiSpriteFrames": [], "blurMultiSpriteFrames": [], "_id": "" diff --git a/assets/Game/Scripts/Icon.ts b/assets/Game/Scripts/Icon.ts index 45821c9..64bd977 100644 --- a/assets/Game/Scripts/Icon.ts +++ b/assets/Game/Scripts/Icon.ts @@ -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); diff --git a/assets/Game/Scripts/Roller.ts b/assets/Game/Scripts/Roller.ts index 613b588..d8b26af 100644 --- a/assets/Game/Scripts/Roller.ts +++ b/assets/Game/Scripts/Roller.ts @@ -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(); 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)); diff --git a/assets/Game/Scripts/RollerManager.ts b/assets/Game/Scripts/RollerManager.ts index 64170d4..5945fe1 100644 --- a/assets/Game/Scripts/RollerManager.ts +++ b/assets/Game/Scripts/RollerManager.ts @@ -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'); } } @@ -214,7 +201,7 @@ export class RollerManager extends Component { hasEmitScatterTween: boolean = false; onRollerStop(rollerId: number) { - this.node.emit(ROLLER_COMBINE_EVENT.ONE_ROLLER_STOP, rollerId); + this.node.emit(ROLLER_COMBINE_EVENT.ONE_ROLLER_STOP, rollerId); let allRollerStop = true; for (let i = 0; i < this.allRollers.length; i++) { @@ -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]; - if (roller) { - this.scheduleOnce(() => { - if (this._isManualStop) return; - roller.startScroll(); - }, delay); - } - }); - }); + 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); + } + } } } @@ -443,8 +423,8 @@ export class RollerManager extends Component { let panData = data.PanData; this._resultStopData = this.splitArray(panData, [5, 5, 5, 5, 5, 5]); - this.distributeFreeMulMap(data.FreeMulMap); - + this.distributeFreeMulMap(data.FreeMulMap); + if (this._isFastSpin) { // 快速模式:所有列同时掉落 for (let i = 0; i < this.allRollers.length; i++) { @@ -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(() => { diff --git a/assets/Game/Scripts/SlotMsg.ts b/assets/Game/Scripts/SlotMsg.ts index 2c98406..4da5aaa 100644 --- a/assets/Game/Scripts/SlotMsg.ts +++ b/assets/Game/Scripts/SlotMsg.ts @@ -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((resolve) => { + tween(node) + .to(duration, { position: toPos }, { easing: 'quadInOut' }) + .call(() => resolve()) + .start(); + }); + }; + + // 放大动画(脉冲)的promise(动画完resolve) + let pulseAsync = (node: Node) => { + return new Promise((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((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((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 = "") { diff --git a/assets/Game/Scripts/SlotScene.ts b/assets/Game/Scripts/SlotScene.ts index 270b8d6..791adc3 100644 --- a/assets/Game/Scripts/SlotScene.ts +++ b/assets/Game/Scripts/SlotScene.ts @@ -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; } } diff --git a/assets/Game/Scripts/UpLayer.ts b/assets/Game/Scripts/UpLayer.ts index 49ad44d..7bd62b7 100644 --- a/assets/Game/Scripts/UpLayer.ts +++ b/assets/Game/Scripts/UpLayer.ts @@ -186,18 +186,7 @@ export class UpLayer extends Component { for (let i = 0; i < rm.allRollers.length; i++) { this.syncSpecialFromRoller(rm.allRollers[i]); } - } - - 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; diff --git a/assets/Game/SlotScene.prefab b/assets/Game/SlotScene.prefab index b7b5c42..e96b900 100644 --- a/assets/Game/SlotScene.prefab +++ b/assets/Game/SlotScene.prefab @@ -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": "" }, { diff --git a/assets/Game/Textures/Spines/ChooseDiff.meta b/assets/Game/Textures/Spines/ChooseDiff.meta new file mode 100644 index 0000000..b055901 --- /dev/null +++ b/assets/Game/Textures/Spines/ChooseDiff.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "ab66cc55-1313-4bf9-83e0-dd497d468b1f", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Game/Textures/Spines/ChooseDiff/Volatility.atlas b/assets/Game/Textures/Spines/ChooseDiff/Volatility.atlas new file mode 100644 index 0000000..5e96307 --- /dev/null +++ b/assets/Game/Textures/Spines/ChooseDiff/Volatility.atlas @@ -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 diff --git a/assets/Game/Textures/Spines/ChooseDiff/Volatility.atlas.meta b/assets/Game/Textures/Spines/ChooseDiff/Volatility.atlas.meta new file mode 100644 index 0000000..4612d2f --- /dev/null +++ b/assets/Game/Textures/Spines/ChooseDiff/Volatility.atlas.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.0.0", + "importer": "*", + "imported": true, + "uuid": "477dc91c-e91a-4480-a469-6e3288a8e463", + "files": [ + ".atlas", + ".json" + ], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Game/Textures/Spines/ChooseDiff/Volatility.json b/assets/Game/Textures/Spines/ChooseDiff/Volatility.json new file mode 100644 index 0000000..68db920 --- /dev/null +++ b/assets/Game/Textures/Spines/ChooseDiff/Volatility.json @@ -0,0 +1 @@ +{"skeleton":{"hash":"qGwrP/Xxgy3GycXezqKYcgMy7uQ","spine":"3.8.99","x":-563.75,"y":-961,"width":1104.75,"height":1922,"images":"./i2/","audio":"E:/项目/Slot/拉布布/源文件/Volatility/i2"},"bones":[{"name":"root"},{"name":"a","parent":"root"},{"name":"1","parent":"a"},{"name":"A","parent":"1"},{"name":"K","parent":"a"},{"name":"K1","parent":"K"},{"name":"K2","parent":"K","x":-18.55,"y":-28.43},{"name":"K3","parent":"K","x":-39.54,"y":-60.66},{"name":"K4","parent":"K","x":-60.23,"y":-96.2},{"name":"K5","parent":"K","x":-81.83,"y":-131.38},{"name":"K6","parent":"K","x":-103.61,"y":-168.22},{"name":"K7","parent":"K","x":-128.79,"y":-206.6},{"name":"K8","parent":"K","x":-152.36,"y":-244.27},{"name":"K9","parent":"K","x":-177.27,"y":-283.82},{"name":"K10","parent":"K","x":-201.29,"y":-324.15},{"name":"K11","parent":"K","x":-225.56,"y":-367.43},{"name":"K12","parent":"K","x":-251.05,"y":-406.62},{"name":"K13","parent":"K","x":-275.55,"y":-446.79},{"name":"K14","parent":"K","x":-301.58,"y":-489.06},{"name":"K15","parent":"K","x":-327.67,"y":-532.96},{"name":"bone","parent":"root","length":956.43,"rotation":-121.57,"x":0.08,"y":-0.06,"color":"ff00004a"},{"name":"K16","parent":"K","x":-350.61,"y":-570.25},{"name":"K17","parent":"K","x":-374.03,"y":-607.05},{"name":"K18","parent":"K","x":-396.02,"y":-643.86},{"name":"K19","parent":"K","x":-416.1,"y":-678.75},{"name":"K20","parent":"K","x":-440,"y":-716.04},{"name":"K21","parent":"K","x":-461.03,"y":-749.97},{"name":"K22","parent":"K","x":-480.63,"y":-783.43},{"name":"K23","parent":"K","x":-499.75,"y":-813.07},{"name":"K24","parent":"K","x":-499.75,"y":-813.07},{"name":"K25","parent":"K","x":-499.75,"y":-813.07},{"name":"K26","parent":"K","x":-499.75,"y":-813.07},{"name":"K27","parent":"K","x":-499.75,"y":-813.07},{"name":"K28","parent":"K","x":-499.75,"y":-813.07},{"name":"KK","parent":"K"},{"name":"KK2","parent":"K","x":-499.75,"y":-813.07},{"name":"骨骼","parent":"root","x":-499.01,"y":-800.95},{"name":"骨骼2","parent":"root","x":-499.01,"y":-800.95}],"slots":[{"name":"bg","bone":"a"},{"name":"组 5","bone":"a"},{"name":"IconDifficulty","bone":"骨骼"},{"name":"IconDifficulty3","bone":"骨骼","blend":"additive"},{"name":"IconDifficulty2","bone":"骨骼2"},{"name":"TitleAndBtn","bone":"1"},{"name":"组 4","bone":"1"},{"name":"组 6","bone":"A","color":"ffffff00","blend":"additive"},{"name":"Confirm","bone":"1"},{"name":"k1","bone":"K1","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k29","bone":"KK","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k2","bone":"K2","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k3","bone":"K3","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k4","bone":"K4","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k5","bone":"K5","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k6","bone":"K6","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k7","bone":"K7","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k8","bone":"K8","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k9","bone":"K9","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k10","bone":"K10","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k11","bone":"K11","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k12","bone":"K12","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k13","bone":"K13","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k14","bone":"K14","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k15","bone":"K15","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k16","bone":"K16","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k17","bone":"K17","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k18","bone":"K18","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k19","bone":"K19","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k20","bone":"K20","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k21","bone":"K21","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k22","bone":"K22","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k23","bone":"K23","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k24","bone":"K24","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k25","bone":"K25","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k26","bone":"K26","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k27","bone":"K27","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k28","bone":"K28","color":"ffffff00","attachment":"5ueJ","blend":"additive"},{"name":"k30","bone":"KK2","color":"ffffff00","attachment":"5ueJ","blend":"additive"}],"skins":[{"name":"default","attachments":{"k1":{"5ueJ":{"width":128,"height":128}},"k2":{"5ueJ":{"width":128,"height":128}},"k3":{"5ueJ":{"width":128,"height":128}},"k4":{"5ueJ":{"width":128,"height":128}},"k5":{"5ueJ":{"width":128,"height":128}},"k6":{"5ueJ":{"width":128,"height":128}},"k7":{"5ueJ":{"width":128,"height":128}},"k8":{"5ueJ":{"width":128,"height":128}},"k9":{"5ueJ":{"width":128,"height":128}},"k10":{"5ueJ":{"width":128,"height":128}},"k11":{"5ueJ":{"width":128,"height":128}},"k12":{"5ueJ":{"width":128,"height":128}},"k13":{"5ueJ":{"width":128,"height":128}},"k14":{"5ueJ":{"width":128,"height":128}},"k15":{"5ueJ":{"width":128,"height":128}},"k16":{"5ueJ":{"width":128,"height":128}},"k17":{"5ueJ":{"width":128,"height":128}},"k18":{"5ueJ":{"width":128,"height":128}},"k19":{"5ueJ":{"width":128,"height":128}},"k20":{"5ueJ":{"width":128,"height":128}},"k21":{"5ueJ":{"width":128,"height":128}},"k22":{"5ueJ":{"width":128,"height":128}},"k23":{"5ueJ":{"width":128,"height":128}},"k24":{"5ueJ":{"width":128,"height":128}},"k25":{"5ueJ":{"width":128,"height":128}},"k26":{"5ueJ":{"width":128,"height":128}},"k27":{"5ueJ":{"width":128,"height":128}},"k28":{"5ueJ":{"width":128,"height":128}},"k29":{"5ueJ":{"width":128,"height":128}},"k30":{"5ueJ":{"width":128,"height":128}}}}],"animations":{"animation":{"slots":{"k1":{"color":[{"color":"ffffff00"},{"time":0.0605,"color":"ffffffff","curve":"stepped"},{"time":0.1091,"color":"ffffffff"},{"time":0.3523,"color":"ffffff00"}]},"k2":{"color":[{"time":0.0361,"color":"ffffff00"},{"time":0.0848,"color":"ffffffff","curve":"stepped"},{"time":0.1333,"color":"ffffffff"},{"time":0.3767,"color":"ffffff00"}]},"k3":{"color":[{"time":0.0605,"color":"ffffff00"},{"time":0.1091,"color":"ffffffff","curve":"stepped"},{"time":0.158,"color":"ffffffff"},{"time":0.4008,"color":"ffffff00"}]},"k4":{"color":[{"time":0.0848,"color":"ffffff00"},{"time":0.1333,"color":"ffffffff","curve":"stepped"},{"time":0.1817,"color":"ffffffff"},{"time":0.4254,"color":"ffffff00"}]},"k5":{"color":[{"time":0.1091,"color":"ffffff00"},{"time":0.158,"color":"ffffffff","curve":"stepped"},{"time":0.2064,"color":"ffffffff"},{"time":0.4497,"color":"ffffff00"}]},"k6":{"color":[{"time":0.1333,"color":"ffffff00"},{"time":0.1817,"color":"ffffffff","curve":"stepped"},{"time":0.2311,"color":"ffffffff"},{"time":0.4741,"color":"ffffff00"}]},"k7":{"color":[{"time":0.158,"color":"ffffff00"},{"time":0.2064,"color":"ffffffff","curve":"stepped"},{"time":0.2551,"color":"ffffffff"},{"time":0.4984,"color":"ffffff00"}]},"k8":{"color":[{"time":0.1817,"color":"ffffff00"},{"time":0.2311,"color":"ffffffff","curve":"stepped"},{"time":0.2795,"color":"ffffffff"},{"time":0.5227,"color":"ffffff00"}]},"k9":{"color":[{"time":0.2064,"color":"ffffff00"},{"time":0.2551,"color":"ffffffff","curve":"stepped"},{"time":0.3038,"color":"ffffffff"},{"time":0.5471,"color":"ffffff00"}]},"k10":{"color":[{"time":0.2311,"color":"ffffff00"},{"time":0.2795,"color":"ffffffff","curve":"stepped"},{"time":0.3281,"color":"ffffffff"},{"time":0.5714,"color":"ffffff00"}]},"k11":{"color":[{"time":0.2551,"color":"ffffff00"},{"time":0.3038,"color":"ffffffff","curve":"stepped"},{"time":0.3523,"color":"ffffffff"},{"time":0.5957,"color":"ffffff00"}]},"k12":{"color":[{"time":0.2795,"color":"ffffff00"},{"time":0.3281,"color":"ffffffff","curve":"stepped"},{"time":0.3767,"color":"ffffffff"},{"time":0.62,"color":"ffffff00"}]},"k13":{"color":[{"time":0.3038,"color":"ffffff00"},{"time":0.3523,"color":"ffffffff","curve":"stepped"},{"time":0.4008,"color":"ffffffff"},{"time":0.6444,"color":"ffffff00"}]},"k14":{"color":[{"time":0.3281,"color":"ffffff00"},{"time":0.3767,"color":"ffffffff","curve":"stepped"},{"time":0.4254,"color":"ffffffff"},{"time":0.6688,"color":"ffffff00"}]},"k15":{"color":[{"time":0.3523,"color":"ffffff00"},{"time":0.4008,"color":"ffffffff","curve":"stepped"},{"time":0.4497,"color":"ffffffff"},{"time":0.6929,"color":"ffffff00"}]},"k16":{"color":[{"time":0.3767,"color":"ffffff00"},{"time":0.4254,"color":"ffffffff","curve":"stepped"},{"time":0.4741,"color":"ffffffff"},{"time":0.7174,"color":"ffffff00"}]},"k17":{"color":[{"time":0.4008,"color":"ffffff00"},{"time":0.4497,"color":"ffffffff","curve":"stepped"},{"time":0.4984,"color":"ffffffff"},{"time":0.742,"color":"ffffff00"}]},"k18":{"color":[{"time":0.4254,"color":"ffffff00"},{"time":0.4741,"color":"ffffffff","curve":"stepped"},{"time":0.5227,"color":"ffffffff"},{"time":0.7661,"color":"ffffff00"}]},"k19":{"color":[{"time":0.4497,"color":"ffffff00"},{"time":0.4984,"color":"ffffffff","curve":"stepped"},{"time":0.5471,"color":"ffffffff"},{"time":0.7904,"color":"ffffff00"}]},"k20":{"color":[{"time":0.4741,"color":"ffffff00"},{"time":0.5227,"color":"ffffffff","curve":"stepped"},{"time":0.5714,"color":"ffffffff"},{"time":0.815,"color":"ffffff00"}]},"k21":{"color":[{"time":0.4984,"color":"ffffff00"},{"time":0.5471,"color":"ffffffff","curve":"stepped"},{"time":0.5957,"color":"ffffffff"},{"time":0.8393,"color":"ffffff00"}]},"k22":{"color":[{"time":0.5227,"color":"ffffff00"},{"time":0.5714,"color":"ffffffff","curve":"stepped"},{"time":0.62,"color":"ffffffff"},{"time":0.8633,"color":"ffffff00"}]},"k23":{"color":[{"time":0.5714,"color":"ffffff00"},{"time":0.62,"color":"ffffffff","curve":"stepped"},{"time":0.6688,"color":"ffffffff"},{"time":0.912,"color":"ffffff00"}]},"k24":{"color":[{"time":0.5957,"color":"ffffff00"},{"time":0.6444,"color":"ffffffff","curve":"stepped"},{"time":0.6929,"color":"ffffffff"},{"time":0.9361,"color":"ffffff00"}]},"k25":{"color":[{"time":0.62,"color":"ffffff00"},{"time":0.6688,"color":"ffffffff","curve":"stepped"},{"time":0.7174,"color":"ffffffff"},{"time":0.9607,"color":"ffffff00"}]},"k26":{"color":[{"time":0.6444,"color":"ffffff00"},{"time":0.6929,"color":"ffffffff","curve":"stepped"},{"time":0.742,"color":"ffffffff"},{"time":0.985,"color":"ffffff00"}]},"k27":{"color":[{"time":0.6688,"color":"ffffff00"},{"time":0.7174,"color":"ffffffff","curve":"stepped"},{"time":0.7661,"color":"ffffffff"},{"time":1.0093,"color":"ffffff00"}]},"k28":{"color":[{"time":0.6929,"color":"ffffff00"},{"time":0.742,"color":"ffffffff","curve":"stepped"},{"time":0.7904,"color":"ffffffff"},{"time":1.0333,"color":"ffffff00"}]},"k29":{"color":[{"color":"ffffff00"},{"time":0.0605,"color":"ffffffff","curve":"stepped"},{"time":0.1091,"color":"ffffffff"},{"time":0.3523,"color":"ffffff00"}]},"k30":{"color":[{"time":0.6929,"color":"ffffff00"},{"time":0.742,"color":"ffffffff","curve":"stepped"},{"time":0.7904,"color":"ffffffff"},{"time":1.0333,"color":"ffffff00"}]}},"bones":{"K2":{"rotate":[{"angle":10}]},"K3":{"rotate":[{"angle":20}]},"K4":{"rotate":[{"angle":30}]},"K5":{"rotate":[{"angle":40}]},"K6":{"rotate":[{"angle":50}]},"K7":{"rotate":[{"angle":60}]},"K8":{"rotate":[{"angle":70}]},"K9":{"rotate":[{"angle":80}]},"K10":{"rotate":[{"angle":90}]},"K11":{"rotate":[{"angle":10}]},"K12":{"rotate":[{"angle":20}]},"K13":{"rotate":[{"angle":30}]},"K14":{"rotate":[{"angle":40}]},"K15":{"rotate":[{"angle":50}]},"K16":{"rotate":[{"angle":60}]},"K17":{"rotate":[{"angle":70}]},"K18":{"rotate":[{"angle":80}]},"K20":{"rotate":[{"angle":10}]},"K21":{"rotate":[{"angle":20}]},"K22":{"rotate":[{"angle":30}]},"K23":{"rotate":[{"angle":40}]},"K24":{"rotate":[{"angle":50}]},"K25":{"rotate":[{"angle":60}]},"K26":{"rotate":[{"angle":70}]},"K27":{"rotate":[{"angle":80}]},"KK":{"scale":[{"curve":0.412,"c2":0.6,"c3":0.75},{"time":0.3667,"x":1.5,"y":1.5}]},"KK2":{"scale":[{"time":0.6667,"curve":0.412,"c2":0.6,"c3":0.75},{"time":1.0333,"x":1.4,"y":1.4}]}}},"animation2":{"slots":{"Confirm":{"color":[{"time":0.4667,"color":"ffffffff"},{"time":0.5027,"color":"ffffff00"}]},"IconDifficulty":{"attachment":[{"name":null},{"time":1.1333,"name":null}]},"IconDifficulty2":{"color":[{"color":"ffffff00","curve":"stepped"},{"time":1.1333,"color":"ffffff00"},{"time":1.1667,"color":"ffffffff"},{"time":1.3333,"color":"ffffff00"}],"attachment":[{"name":null},{"time":1.1333,"name":null},{"time":1.6667,"name":null}]},"IconDifficulty3":{"color":[{"color":"ffffff00","curve":"stepped"},{"time":1.1333,"color":"ffffff00"},{"time":1.1667,"color":"ffffffff"},{"time":1.3333,"color":"ffffff00"}],"attachment":[{"name":null},{"time":1.1333,"name":null}]},"TitleAndBtn":{"color":[{"time":0.4667,"color":"ffffffff"},{"time":0.5027,"color":"ffffff00"}]},"k1":{"color":[{"time":0.4667,"color":"ffffff00"},{"time":0.527,"color":"ffffffff","curve":"stepped"},{"time":0.5757,"color":"ffffffff"},{"time":0.819,"color":"ffffff00"}]},"k2":{"color":[{"time":0.5027,"color":"ffffff00"},{"time":0.5514,"color":"ffffffff","curve":"stepped"},{"time":0.6,"color":"ffffffff"},{"time":0.8433,"color":"ffffff00"}]},"k3":{"color":[{"time":0.527,"color":"ffffff00"},{"time":0.5757,"color":"ffffffff","curve":"stepped"},{"time":0.6244,"color":"ffffffff"},{"time":0.8673,"color":"ffffff00"}]},"k4":{"color":[{"time":0.5514,"color":"ffffff00"},{"time":0.6,"color":"ffffffff","curve":"stepped"},{"time":0.6487,"color":"ffffffff"},{"time":0.892,"color":"ffffff00"}]},"k5":{"color":[{"time":0.5757,"color":"ffffff00"},{"time":0.6244,"color":"ffffffff","curve":"stepped"},{"time":0.673,"color":"ffffffff"},{"time":0.9163,"color":"ffffff00"}]},"k6":{"color":[{"time":0.6,"color":"ffffff00"},{"time":0.6487,"color":"ffffffff","curve":"stepped"},{"time":0.6973,"color":"ffffffff"},{"time":0.9406,"color":"ffffff00"}]},"k7":{"color":[{"time":0.6244,"color":"ffffff00"},{"time":0.673,"color":"ffffffff","curve":"stepped"},{"time":0.7217,"color":"ffffffff"},{"time":0.965,"color":"ffffff00"}]},"k8":{"color":[{"time":0.6487,"color":"ffffff00"},{"time":0.6973,"color":"ffffffff","curve":"stepped"},{"time":0.746,"color":"ffffffff"},{"time":0.9893,"color":"ffffff00"}]},"k9":{"color":[{"time":0.673,"color":"ffffff00"},{"time":0.7217,"color":"ffffffff","curve":"stepped"},{"time":0.7703,"color":"ffffffff"},{"time":1.0136,"color":"ffffff00"}]},"k10":{"color":[{"time":0.6973,"color":"ffffff00"},{"time":0.746,"color":"ffffffff","curve":"stepped"},{"time":0.7947,"color":"ffffffff"},{"time":1.038,"color":"ffffff00"}]},"k11":{"color":[{"time":0.7217,"color":"ffffff00"},{"time":0.7703,"color":"ffffffff","curve":"stepped"},{"time":0.819,"color":"ffffffff"},{"time":1.0623,"color":"ffffff00"}]},"k12":{"color":[{"time":0.746,"color":"ffffff00"},{"time":0.7947,"color":"ffffffff","curve":"stepped"},{"time":0.8433,"color":"ffffffff"},{"time":1.0866,"color":"ffffff00"}]},"k13":{"color":[{"time":0.7703,"color":"ffffff00"},{"time":0.819,"color":"ffffffff","curve":"stepped"},{"time":0.8673,"color":"ffffffff"},{"time":1.1109,"color":"ffffff00"}]},"k14":{"color":[{"time":0.7947,"color":"ffffff00"},{"time":0.8433,"color":"ffffffff","curve":"stepped"},{"time":0.892,"color":"ffffffff"},{"time":1.1354,"color":"ffffff00"}]},"k15":{"color":[{"time":0.819,"color":"ffffff00"},{"time":0.8673,"color":"ffffffff","curve":"stepped"},{"time":0.9163,"color":"ffffffff"},{"time":1.1596,"color":"ffffff00"}]},"k16":{"color":[{"time":0.8433,"color":"ffffff00"},{"time":0.892,"color":"ffffffff","curve":"stepped"},{"time":0.9406,"color":"ffffffff"},{"time":1.1839,"color":"ffffff00"}]},"k17":{"color":[{"time":0.8673,"color":"ffffff00"},{"time":0.9163,"color":"ffffffff","curve":"stepped"},{"time":0.965,"color":"ffffffff"},{"time":1.2083,"color":"ffffff00"}]},"k18":{"color":[{"time":0.892,"color":"ffffff00"},{"time":0.9406,"color":"ffffffff","curve":"stepped"},{"time":0.9893,"color":"ffffffff"},{"time":1.2327,"color":"ffffff00"}]},"k19":{"color":[{"time":0.9163,"color":"ffffff00"},{"time":0.965,"color":"ffffffff","curve":"stepped"},{"time":1.0136,"color":"ffffffff"},{"time":1.2569,"color":"ffffff00"}]},"k20":{"color":[{"time":0.9406,"color":"ffffff00"},{"time":0.9893,"color":"ffffffff","curve":"stepped"},{"time":1.038,"color":"ffffffff"},{"time":1.2813,"color":"ffffff00"}]},"k21":{"color":[{"time":0.965,"color":"ffffff00"},{"time":1.0136,"color":"ffffffff","curve":"stepped"},{"time":1.0623,"color":"ffffffff"},{"time":1.3056,"color":"ffffff00"}]},"k22":{"color":[{"time":0.9893,"color":"ffffff00"},{"time":1.038,"color":"ffffffff","curve":"stepped"},{"time":1.0866,"color":"ffffffff"},{"time":1.3299,"color":"ffffff00"}]},"k23":{"color":[{"time":1.038,"color":"ffffff00"},{"time":1.0866,"color":"ffffffff","curve":"stepped"},{"time":1.1354,"color":"ffffffff"},{"time":1.3786,"color":"ffffff00"}]},"k24":{"color":[{"time":1.0623,"color":"ffffff00"},{"time":1.1109,"color":"ffffffff","curve":"stepped"},{"time":1.1596,"color":"ffffffff"},{"time":1.4027,"color":"ffffff00"}]},"k25":{"color":[{"time":1.0866,"color":"ffffff00"},{"time":1.1354,"color":"ffffffff","curve":"stepped"},{"time":1.1839,"color":"ffffffff"},{"time":1.4272,"color":"ffffff00"}]},"k26":{"color":[{"time":1.1109,"color":"ffffff00"},{"time":1.1596,"color":"ffffffff","curve":"stepped"},{"time":1.2083,"color":"ffffffff"},{"time":1.4516,"color":"ffffff00"}]},"k27":{"color":[{"time":1.1354,"color":"ffffff00"},{"time":1.1839,"color":"ffffffff","curve":"stepped"},{"time":1.2327,"color":"ffffffff"},{"time":1.4759,"color":"ffffff00"}]},"k28":{"color":[{"time":1.1596,"color":"ffffff00"},{"time":1.2083,"color":"ffffffff","curve":"stepped"},{"time":1.2569,"color":"ffffffff"},{"time":1.5,"color":"ffffff00"}]},"k29":{"color":[{"time":0.4667,"color":"ffffff00"},{"time":0.527,"color":"ffffffff","curve":"stepped"},{"time":0.5757,"color":"ffffffff"},{"time":0.819,"color":"ffffff00"}]},"k30":{"color":[{"time":1.1596,"color":"ffffff00"},{"time":1.2083,"color":"ffffffff","curve":"stepped"},{"time":1.2569,"color":"ffffffff"},{"time":1.5,"color":"ffffff00"}]},"组 4":{"color":[{"time":0.4667,"color":"ffffffff"},{"time":0.5027,"color":"ffffff00"}]},"组 6":{"color":[{"color":"ffffff00"},{"time":0.0667,"color":"ffffff6a"},{"time":0.3333,"color":"ffffff00"}]}},"bones":{"A":{"scale":[{"curve":0.394,"c2":0.58,"c3":0.75},{"time":0.3333,"x":1.1,"y":1.1}]},"1":{"scale":[{"time":0.3333,"curve":0.25,"c3":0.75},{"time":0.5027,"x":0.043,"y":0.043}]},"K2":{"rotate":[{"time":0.4667,"angle":10}]},"K3":{"rotate":[{"time":0.4667,"angle":20}]},"K4":{"rotate":[{"time":0.4667,"angle":30}]},"K5":{"rotate":[{"time":0.4667,"angle":40}]},"K6":{"rotate":[{"time":0.4667,"angle":50}]},"K7":{"rotate":[{"time":0.4667,"angle":60}]},"K8":{"rotate":[{"time":0.4667,"angle":70}]},"K9":{"rotate":[{"time":0.4667,"angle":80}]},"K10":{"rotate":[{"time":0.4667,"angle":90}]},"K11":{"rotate":[{"time":0.4667,"angle":10}]},"K12":{"rotate":[{"time":0.4667,"angle":20}]},"K13":{"rotate":[{"time":0.4667,"angle":30}]},"K14":{"rotate":[{"time":0.4667,"angle":40}]},"K15":{"rotate":[{"time":0.4667,"angle":50}]},"K16":{"rotate":[{"time":0.4667,"angle":60}]},"K17":{"rotate":[{"time":0.4667,"angle":70}]},"K18":{"rotate":[{"time":0.4667,"angle":80}]},"K20":{"rotate":[{"time":0.4667,"angle":10}]},"K21":{"rotate":[{"time":0.4667,"angle":20}]},"K22":{"rotate":[{"time":0.4667,"angle":30}]},"K23":{"rotate":[{"time":0.4667,"angle":40}]},"K24":{"rotate":[{"time":0.4667,"angle":50}]},"K25":{"rotate":[{"time":0.4667,"angle":60}]},"K26":{"rotate":[{"time":0.4667,"angle":70}]},"K27":{"rotate":[{"time":0.4667,"angle":80}]},"KK":{"scale":[{"time":0.4667,"curve":0.412,"c2":0.6,"c3":0.75},{"time":0.8333,"x":1.5,"y":1.5}]},"KK2":{"scale":[{"time":1.1333,"curve":0.412,"c2":0.6,"c3":0.75},{"time":1.5,"x":1.4,"y":1.4}]},"骨骼2":{"scale":[{"time":1.1333,"curve":0.448,"c2":0.75,"c3":0.75},{"time":1.3333,"x":1.2,"y":1.2}]}}}}} \ No newline at end of file diff --git a/assets/Game/Textures/Spines/ChooseDiff/Volatility.json.meta b/assets/Game/Textures/Spines/ChooseDiff/Volatility.json.meta new file mode 100644 index 0000000..f7e1679 --- /dev/null +++ b/assets/Game/Textures/Spines/ChooseDiff/Volatility.json.meta @@ -0,0 +1,11 @@ +{ + "ver": "1.2.6", + "importer": "spine-data", + "imported": true, + "uuid": "9030fe79-4cec-4ffe-bcc0-0e8ea00c664e", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Game/Textures/Spines/ChooseDiff/Volatility.png b/assets/Game/Textures/Spines/ChooseDiff/Volatility.png new file mode 100644 index 0000000..77e64a6 Binary files /dev/null and b/assets/Game/Textures/Spines/ChooseDiff/Volatility.png differ diff --git a/assets/Game/Textures/Spines/ChooseDiff/Volatility.png.meta b/assets/Game/Textures/Spines/ChooseDiff/Volatility.png.meta new file mode 100644 index 0000000..37db01c --- /dev/null +++ b/assets/Game/Textures/Spines/ChooseDiff/Volatility.png.meta @@ -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" + } +} diff --git a/assets/Main/I18nJson/lang.json b/assets/Main/I18nJson/lang.json index 8514958..25a3205 100644 --- a/assets/Main/I18nJson/lang.json +++ b/assets/Main/I18nJson/lang.json @@ -40,7 +40,7 @@ "AID_TIP_MAX_BET": "Maksimumsindsats", "AID_TIP_MIN_BET": "Minimumsindsats", "AID_TIP_TURBO_DISABLED": "Turbospin deaktiveret", - "Prize Symbol": "Præmie symbol", + "Prize Symbol": "Præmie symbol", "AID_TIP_TURBO_ENABLED": "Turbospin aktiveret", "The event is currently under maintenance": "Eventet er under vedligeholdelse", "Next refresh time": "Næste opdateringstid", @@ -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", @@ -111,7 +121,7 @@ "AID_SWITCH_PORTRAIT_MODE": "Bitte wechsle in den Hochformat-Modus", "AID_TIP_MAX_BET": "Höchsteinsatz", "AID_TIP_MIN_BET": "Mindesteinsatz", - "Prize Symbol": "Preissymbol", + "Prize Symbol": "Preissymbol", "AID_TIP_TURBO_DISABLED": "Turbo-Dreh deaktiviert", "AID_TIP_TURBO_ENABLED": "Turbo-Dreh aktiviert", "The event is currently under maintenance": "Event wird gewartet", @@ -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", @@ -161,7 +182,7 @@ "AID_GET_STARTED": "GET STARTED", "AID_LOADING": "Loading…", "AID_MAIN_OPERATE_CLOSE": "Close", - "Prize Symbol": "Prize Symbol", + "Prize Symbol": "Prize Symbol", "AID_MAIN_OPERATE_HISTORY": "History", "AID_MAIN_OPERATE_PAYTABLE": "Paytable", "AID_MAIN_OPERATE_QUIT": "Quit", @@ -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", @@ -231,7 +263,7 @@ "AID_ERROR_TITLE": "Transacción Fallida", "AID_GET_STARTED": "Comenzar", "AID_LOADING": "Cargando…", - "Prize Symbol": "Símbolo de premio", + "Prize Symbol": "Símbolo de premio", "AID_MAIN_OPERATE_CLOSE": "Cerrar", "AID_MAIN_OPERATE_HISTORY": "Historial", "AID_MAIN_OPERATE_PAYTABLE": "Tabla de Pagos", @@ -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", @@ -537,7 +613,7 @@ "AID_SWITCH_PORTRAIT_MODE": "Seleziona la modalità verticale", "AID_TIP_MAX_BET": "Puntata Massima", "AID_TIP_MIN_BET": "Puntata Minima", - "Prize Symbol": "Simbolo del premio", + "Prize Symbol": "Simbolo del premio", "AID_TIP_TURBO_DISABLED": "Turbo Disattivato", "AID_TIP_TURBO_ENABLED": "Turbo Attivato", "The event is currently under maintenance": "Evento in manutenzione", @@ -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": "オートスピン開始", @@ -608,7 +695,7 @@ "AID_SWITCH_PORTRAIT_MODE": "ポートレートモードに切りえてください", "AID_TIP_MAX_BET": "最大ベット", "AID_TIP_MIN_BET": "最小ベット", - "Prize Symbol": "賞品のシンボル", + "Prize Symbol": "賞品のシンボル", "AID_TIP_TURBO_DISABLED": "ターボスピン オフ", "AID_TIP_TURBO_ENABLED": "ターボスピン オン", "The event is currently under maintenance": "イベントはメンテナンス中です", @@ -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": "자동 회전 시작", @@ -647,7 +745,7 @@ "AID_ERROR_CODE_2": "(에러 코드: 2)", "AID_ERROR_CODE_3": "(에러 코드: 3)", "AID_ERROR_CODE_4": "(에러 코드: 4)", - "Prize Symbol": "상금 기호", + "Prize Symbol": "상금 기호", "AID_ERROR_CONTENT_1": "세션이 만료되었거나 다른 기기에서 로그인되었습니다.", "AID_ERROR_CONTENT_2": "잔액이 부족합니다. 배팅 금액을 변경해 주세요.", "AID_ERROR_CONTENT_3": "잘못된 배팅 금액입니다. 올바른 배팅 금액을 선택해 주세요.", @@ -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": "အလိုအလျောက် လည်ခြင်းကို စတင်မည်", @@ -718,7 +827,7 @@ "AID_ERROR_CODE_2": "(အမှားကုဒ်: 2)", "AID_ERROR_CODE_3": "(အမှားကုဒ်: 3)", "AID_ERROR_CODE_4": "(အမှားကုဒ်: 4)", - "Prize Symbol": "ဆုတံဆိပ်", + "Prize Symbol": "ဆုတံဆိပ်", "AID_ERROR_CONTENT_1": "ဆက်သွယ်မှုကျမှတ်ချိန်ကုန်သွားပါပြီ (သို့) အကောင့်သည် တခြားကိရိယာမှ log in ဝင်ထားပါသည်။", "AID_ERROR_CONTENT_2": "လက်ကျန်ငွေ မလုံလောက်ပါ။ အရောင်းပမာဏကို ပြောင်းလဲကြည့်ရှုပါ။", "AID_ERROR_CONTENT_3": "တရားမဝင်သော အရောင်းပမာဏ။ မှန်ကန်သော အရောင်းပမာဏကို ရွေးချယ်ပါ။", @@ -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", @@ -787,7 +907,7 @@ "AID_AUTO_TITLE": "Automatisch Draaien", "AID_ERROR_CODE_1": "(Foutcode: 1)", "AID_ERROR_CODE_2": "(Foutcode: 2)", - "Prize Symbol": "Prijs symbool", + "Prize Symbol": "Prijs symbool", "AID_ERROR_CODE_3": "(Foutcode: 3)", "AID_ERROR_CODE_4": "(Foutcode: 4)", "AID_ERROR_CONTENT_1": "Sessie verlopen of account is op een ander apparaat ingelogd.", @@ -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ă", @@ -942,7 +1084,7 @@ "AID_GET_STARTED": "ÎNCEPE", "AID_LOADING": "Se încarcă…", "AID_MAIN_OPERATE_CLOSE": "Închide", - "Prize Symbol": "Simbolul premiului", + "Prize Symbol": "Simbolul premiului", "AID_MAIN_OPERATE_HISTORY": "Istoric", "AID_MAIN_OPERATE_PAYTABLE": "Tabel de Plăți", "AID_MAIN_OPERATE_QUIT": "Ieșire", @@ -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": "Запустить автоспин", @@ -1008,7 +1161,7 @@ "AID_ERROR_CONTENT_4": "Не удалось подключиться к серверу. Проверьте подключение к сети и повторите попытку.", "AID_ERROR_OK_BUTTON": "OK", "AID_ERROR_QUIT_BUTTON": "Выход", - "Prize Symbol": "Символ приза", + "Prize Symbol": "Символ приза", "AID_ERROR_RETRY_BUTTON": "Повторить", "AID_ERROR_TITLE": "Ошибка операции", "AID_GET_STARTED": "НАЧАТЬ", @@ -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", @@ -1083,7 +1247,7 @@ "AID_ERROR_TITLE": "Transaktion misslyckades", "AID_GET_STARTED": "KOM IGÅNG", "AID_LOADING": "Laddar…", - "Prize Symbol": "Prissymbol", + "Prize Symbol": "Prissymbol", "AID_MAIN_OPERATE_CLOSE": "Stäng", "AID_MAIN_OPERATE_HISTORY": "Historik", "AID_MAIN_OPERATE_PAYTABLE": "Vinsttabell", @@ -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": "เริ่มหมุนอัตโนมัติ", @@ -1161,7 +1336,7 @@ "AID_MAIN_OPERATE_RULES": "กติกากา​รเล่น", "AID_MAIN_OPERATE_SOUND": "เสียง", "AID_MAIN_SHOW_BALANCE": "ยอดเงิน", - "Prize Symbol": "สัญลักษณ์รางวัล", + "Prize Symbol": "สัญลักษณ์รางวัล", "AID_MAIN_SHOW_BET": "เดิมพัน", "AID_MAIN_SHOW_WIN": "เงินรางวัล", "AID_NETWORK_RETRY_1": "เครือข่ายไม่ว่าง กำลังลองใหม่...(ครั้งที่ 1)", @@ -1205,13 +1380,24 @@ "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", "AID_AUTO_CONTENT": "Otomatik Oyun Sayısı", "AID_AUTO_TITLE": "Otomatik Oyna", - "Prize Symbol": "Ödül Sembolü", + "Prize Symbol": "Ödül Sembolü", "AID_ERROR_CODE_1": "(Hata kodu: 1)", "AID_ERROR_CODE_2": "(Hata kodu: 2)", "AID_ERROR_CODE_3": "(Hata kodu: 3)", @@ -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", @@ -1291,7 +1488,7 @@ "AID_ERROR_CONTENT_3": "Mức cược không hợp lệ. Vui lòng chọn Mức Cược chính xác.", "AID_ERROR_CONTENT_4": "Kết nối đến máy chủ thất bại. Vui lòng kiểm tra kết nối mạng hoặc thử lại.", "AID_ERROR_OK_BUTTON": "ĐỒNG Ý", - "Prize Symbol": "Biểu tượng giải thưởng", + "Prize Symbol": "Biểu tượng giải thưởng", "AID_ERROR_QUIT_BUTTON": "Thoát", "AID_ERROR_RETRY_BUTTON": "Thử Lại", "AID_ERROR_TITLE": "Giao Dịch Thất Bại", @@ -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": "開始自動旋轉", @@ -1376,7 +1584,7 @@ "AID_MAIN_SHOW_BALANCE": "餘額", "AID_MAIN_SHOW_BET": "投注", "AID_MAIN_SHOW_WIN": "贏得", - "Prize Symbol": "獎金符號", + "Prize Symbol": "獎金符號", "AID_NETWORK_RETRY_1": "網路繁忙,正在重新嘗試...(第1次)", "AID_NETWORK_RETRY_2": "網路繁忙,正在重新嘗試...(第2次)", "AID_NETWORK_RETRY_3": "網路繁忙,正在重新嘗試...(第3次)", @@ -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": "波動模式" } } \ No newline at end of file diff --git a/assets/Main/Scripts/main/comm.ts b/assets/Main/Scripts/main/comm.ts index 4baa5c8..f395221 100644 --- a/assets/Main/Scripts/main/comm.ts +++ b/assets/Main/Scripts/main/comm.ts @@ -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, { diff --git a/assets/Main/Scripts/main/loading.ts b/assets/Main/Scripts/main/loading.ts index c67569a..cbacfb3 100644 --- a/assets/Main/Scripts/main/loading.ts +++ b/assets/Main/Scripts/main/loading.ts @@ -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; diff --git a/assets/Main/TipMessagePanel.prefab b/assets/Main/TipMessagePanel.prefab index 0968761..de5188d 100644 --- a/assets/Main/TipMessagePanel.prefab +++ b/assets/Main/TipMessagePanel.prefab @@ -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": {