难度选择ui

This commit is contained in:
TJH 2026-04-10 10:40:03 +08:00
parent 0dcb22bcb0
commit 5bf674aa9e
30 changed files with 9276 additions and 569 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "2718875d-a5d8-4466-a906-91d5d89bbef9",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "ChooseDiff"
}
}

View File

@ -34,14 +34,14 @@
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 42 "__id__": 46
}, },
{ {
"__id__": 44 "__id__": 48
} }
], ],
"_prefab": { "_prefab": {
"__id__": 46 "__id__": 50
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@ -128,7 +128,7 @@
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "spine-002", "_name": "sprite",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_parent": { "_parent": {
@ -404,7 +404,7 @@
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "spine-001", "_name": "sprite",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_parent": { "_parent": {
@ -854,24 +854,75 @@
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "multi", "_name": "multiNode",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_parent": { "_parent": {
"__id__": 1 "__id__": 1
}, },
"_children": [
{
"__id__": 37
}
],
"_active": true,
"_components": [
{
"__id__": 43
}
],
"_prefab": {
"__id__": 45
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "Label",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 36
},
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 37 "__id__": 38
}, },
{ {
"__id__": 39 "__id__": 40
} }
], ],
"_prefab": { "_prefab": {
"__id__": 41 "__id__": 42
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@ -908,11 +959,11 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 36 "__id__": 37
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 38 "__id__": 39
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@ -928,7 +979,7 @@
}, },
{ {
"__type__": "cc.CompPrefabInfo", "__type__": "cc.CompPrefabInfo",
"fileId": "84HpDue1hAT6Qvy3p4pQr1" "fileId": "37Yhrx1hVPapozpY0LOO3U"
}, },
{ {
"__type__": "cc.Label", "__type__": "cc.Label",
@ -936,11 +987,11 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 36 "__id__": 37
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 40 "__id__": 41
}, },
"_customMaterial": null, "_customMaterial": null,
"_srcBlendFactor": 2, "_srcBlendFactor": 2,
@ -999,7 +1050,48 @@
}, },
{ {
"__type__": "cc.CompPrefabInfo", "__type__": "cc.CompPrefabInfo",
"fileId": "1408zhdupIw46e7T15V1Bg" "fileId": "f0iVmCwWtODpWODD+O1VCR"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "1fkrwtBzFGxZJaHWouqsL4",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 36
},
"_enabled": true,
"__prefab": {
"__id__": 44
},
"_contentSize": {
"__type__": "cc.Size",
"width": 133.16,
"height": 40
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "84HpDue1hAT6Qvy3p4pQr1"
}, },
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",
@ -1024,7 +1116,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 43 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@ -1052,7 +1144,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 45 "__id__": 49
}, },
"normalNode": { "normalNode": {
"__id__": 2 "__id__": 2
@ -1063,6 +1155,10 @@
"spineNode": { "spineNode": {
"__id__": 26 "__id__": 26
}, },
"multiNode": {
"__id__": 36
},
"bombNode": null,
"multiSpriteFrames": [ "multiSpriteFrames": [
{ {
"__uuid__": "41856c4f-db7d-41ef-bd58-cd9c9987baee@f9941", "__uuid__": "41856c4f-db7d-41ef-bd58-cd9c9987baee@f9941",

View File

@ -96,7 +96,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": -20, "x": 0,
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
@ -372,7 +372,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": -20, "x": 0,
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
@ -898,6 +898,10 @@
"spineNode": { "spineNode": {
"__id__": 26 "__id__": 26
}, },
"multiNode": null,
"bombNode": null,
"multiSpriteFrames": [],
"blurMultiSpriteFrames": [],
"_id": "" "_id": ""
}, },
{ {

View File

@ -898,6 +898,8 @@
"spineNode": { "spineNode": {
"__id__": 26 "__id__": 26
}, },
"multiNode": null,
"bombNode": null,
"multiSpriteFrames": [], "multiSpriteFrames": [],
"blurMultiSpriteFrames": [], "blurMultiSpriteFrames": [],
"_id": "" "_id": ""

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,116 @@
import { _decorator, Component, Node, sp, tween, Vec3 } from 'cc';
import { GameDataManager } from '../../Main/Scripts/managers/GameDataManager';
import { NodePoolManager } from '../../Main/Scripts/managers/NodePoolManager';
import { getGameId } from '../../Main/Scripts/main/comm';
const { ccclass, property } = _decorator;
@ccclass('ChooseDiff')
export class ChooseDiff extends Component {
@property(Node)
mainNode: Node = null;
@property(sp.Skeleton)
chooseDiffSkeleton: sp.Skeleton = null;
@property(Node)
chooseDiffBgNode: Node = null;
currentDiff: number = 1;
lowBgPos: Vec3 = new Vec3(-330, 16, 0);
mediumBgPos: Vec3 = new Vec3(0, 16, 0);
highBgPos: Vec3 = new Vec3(330, 16, 0);
canClickBtn: boolean = true;
confirmCb: Function = null;
open(diff: number, confirmCb: () => void) {
this.chooseDiffSkeleton.setAnimation(0, null, false);
this.currentDiff = diff;
this.confirmCb = confirmCb;
this.node.getChildByName('grayBg').active = true;
this.canClickBtn = false;
this.mainNode.active = true;
this.mainNode.setScale(0.1, 0.1, 0.1);
tween(this.mainNode)
.to(0.2, { scale: new Vec3(1, 1, 1) }, { easing: 'quadOut' })
.call(() => { this.canClickBtn = true; })
.start();
this.chooseDiffBgNode.setPosition(this.currentDiff == 1 ? this.lowBgPos : this.currentDiff == 2 ? this.mediumBgPos : this.highBgPos);
}
onBtnClose() {
if (!this.canClickBtn) return;
this.canClickBtn = false;
tween(this.mainNode)
.to(0.2, { scale: new Vec3(0.1, 0.1, 0.1) }, { easing: 'quadOut' })
.call(() => {
this.node.getChildByName('grayBg').active = false;
this.mainNode.active = false;
this.chooseDiffSkeleton.setAnimation(0, 'animation', false);
this.chooseDiffSkeleton.setCompleteListener(() => {
this.chooseDiffSkeleton.setAnimation(0, null, false);
this.chooseDiffSkeleton.setCompleteListener(null);
NodePoolManager.instance.putNodeToPool('ChooseDiff', this.node);
})
})
.start();
}
onBtnConfirm() {
if (!this.canClickBtn) return;
this.canClickBtn = false;
GameDataManager.instance.chooseDiff = this.currentDiff;
GameDataManager.instance.gamePending = String(getGameId()) + '_' + this.currentDiff;
localStorage.setItem('HasGamePending', String(this.currentDiff));
tween(this.mainNode)
.to(0.2, { scale: new Vec3(0.1, 0.1, 0.1) }, { easing: 'quadOut' })
.call(() => {
this.mainNode.active = false;
this.node.getChildByName('grayBg').active = false;
this.chooseDiffSkeleton.setAnimation(0, 'animation', false);
this.chooseDiffSkeleton.setCompleteListener(() => {
this.chooseDiffSkeleton.setAnimation(0, null, false);
this.chooseDiffSkeleton.setCompleteListener(null);
NodePoolManager.instance.putNodeToPool('ChooseDiff', this.node);
if (this.confirmCb) this.confirmCb();
})
})
.start();
}
onBtnLow() {
if (this.currentDiff == 1 || !this.canClickBtn) return;
this.currentDiff = 1;
this.canClickBtn = false;
tween(this.chooseDiffBgNode)
.to(0.2, { position: this.lowBgPos }, { easing: 'quadOut' })
.call(() => { this.canClickBtn = true; })
.start();
}
onBtnMedium() {
if (this.currentDiff == 2 || !this.canClickBtn) return;
this.currentDiff = 2;
this.canClickBtn = false;
tween(this.chooseDiffBgNode)
.to(0.2, { position: this.mediumBgPos }, { easing: 'quadOut' })
.call(() => { this.canClickBtn = true; })
.start();
}
onBtnHigh() {
if (this.currentDiff == 3 || !this.canClickBtn) return;
this.currentDiff = 3;
this.canClickBtn = false;
tween(this.chooseDiffBgNode)
.to(0.2, { position: this.highBgPos }, { easing: 'quadOut' })
.call(() => { this.canClickBtn = true; })
.start();
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "b73b4512-b5d1-4bd1-9d7a-0254c183313c",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -43,12 +43,15 @@ export interface IParsedGameData {
PanData: number[]; PanData: number[];
RemoveData: number[]; RemoveData: number[];
NewIconTop: number[][]; NewIconTop: number[][];
HasScatterExpect: boolean;
ScatterPos: number[]; ScatterPos: number[];
BombPos: number[]; BombPos: number[];
MulInfo: any[];
hasSmallGame: boolean; hasSmallGame: boolean;
hasFreeSpinAgain: boolean; hasFreeSpinAgain: boolean;
FreeMulMap: { [pos: number]: number };
RoundScore: number;
MulValue: number;
UnmultiedScore: number;
MultiedScore: number;
} }
export let ICON_SERVER_MAP = { export let ICON_SERVER_MAP = {

View File

@ -1,4 +1,4 @@
import { _decorator, Component, director, find, Node, ProgressBarComponent, sp, Sprite, SpriteFrame, tween, Tween, UITransform, v3 } from 'cc'; import { _decorator, Component, director, find, Label, Node, ProgressBarComponent, sp, Sprite, SpriteFrame, tween, Tween, UITransform, v3 } from 'cc';
import { DEV, EDITOR } from 'cc/env'; import { DEV, EDITOR } from 'cc/env';
import { NodePoolManager } from '../../Main/Scripts/managers/NodePoolManager'; import { NodePoolManager } from '../../Main/Scripts/managers/NodePoolManager';
import { GameDataManager } from '../../Main/Scripts/managers/GameDataManager'; import { GameDataManager } from '../../Main/Scripts/managers/GameDataManager';
@ -25,6 +25,12 @@ export class Icon extends Component {
@property(Node) @property(Node)
spineNode: Node = null; spineNode: Node = null;
@property(Node)
multiNode: Node = null;
@property(Node)
bombNode: Node = null;
@property([SpriteFrame]) @property([SpriteFrame])
multiSpriteFrames: SpriteFrame[] = []; multiSpriteFrames: SpriteFrame[] = [];
@property([SpriteFrame]) @property([SpriteFrame])
@ -37,9 +43,8 @@ export class Icon extends Component {
private isFastMode: boolean = false; private isFastMode: boolean = false;
private isWild: boolean = false; private isWild: boolean = false;
private isScatter: boolean = false; private isScatter: boolean = false;
private isMulti: boolean = false;
set index(id: number) { this.iconId = id; this.isWild = id === 0; this.isScatter = id === 1; this.isMulti = id === 12 } set index(id: number) { this.iconId = id; this.isWild = false; this.isScatter = id === 0; }
get index(): number { return this.iconId } get index(): number { return this.iconId }
get isWildOrScatter(): boolean { get isWildOrScatter(): boolean {
@ -58,6 +63,8 @@ export class Icon extends Component {
this.normalNode.active = true; this.normalNode.active = true;
this.showFastIcon(false); this.showFastIcon(false);
this.spineNode.active = false; this.spineNode.active = false;
if (this.multiNode) this.multiNode.active = false;
if (this.bombNode) this.bombNode.active = false;
let spine = this.spineNode.getChildByName('spine').getComponent(sp.Skeleton); let spine = this.spineNode.getChildByName('spine').getComponent(sp.Skeleton);
if (spine) { if (spine) {
@ -140,9 +147,19 @@ export class Icon extends Component {
} }
} }
playScatterIdleSpine(bol: boolean) {
// let spine = this.spineNode.getChildByName('spine').getComponent(sp.Skeleton);
// if (spine && this.checkHasAnimation(spine, 'chixu')) {
// if (bol) {
// this.normalNode.active = false;
// this.spineNode.active = true;
// }
// }
}
playScatterWaitSpine(bol: boolean) { playScatterWaitSpine(bol: boolean) {
let spine = this.spineNode.getChildByName('spine').getComponent(sp.Skeleton); let spine = this.spineNode.getChildByName('spine').getComponent(sp.Skeleton);
if (this.iconId == 1) { if (this.iconId == 0) {
if (spine && this.checkHasAnimation(spine, 'dengdai')) { if (spine && this.checkHasAnimation(spine, 'dengdai')) {
if (bol) { if (bol) {
// this.normalNode.active = false; // this.normalNode.active = false;
@ -171,18 +188,33 @@ export class Icon extends Component {
} }
playAppearAnimation() { setMulti(multi: number) {
this.scheduleOnce(() => { if (!this.multiNode) return;
tween(this.node) let lab = this.multiNode.getChildByName('Label').getComponent(Label);
.set({ scale: v3(0.1, 0.1, 0.1) }) lab.string = multi.toString() + 'x';
.to(0.2, { scale: v3(1.15, 1.15, 1.15) })
.to(0.1, { scale: v3(0.95, 0.95, 0.95) }) this.normalNode.getChildByName('sprite').getComponent(Sprite).spriteFrame = this.getMultiBgFrames(multi)[0]
.to(0.03, { scale: v3(1, 1, 1) }) this.fastNode.getChildByName('sprite').getComponent(Sprite).spriteFrame = this.getMultiBgFrames(multi)[1]
.call(() => { }
this.playIdleSpine(true);
}) getMulti(): number {
.start(); if (!this.multiNode) return 1;
}, 0) return Number(this.multiNode.children.find(child => child.active).name);
}
getMultiBgFrames(multi: number) {
switch (true) {
case multi <= 8:
return [this.multiSpriteFrames[0], this.blurMultiSpriteFrames[0]]
case multi <= 25:
return [this.multiSpriteFrames[1], this.blurMultiSpriteFrames[1]]
case multi <= 50:
return [this.multiSpriteFrames[2], this.blurMultiSpriteFrames[2]]
case multi <= 100:
return [this.multiSpriteFrames[3], this.blurMultiSpriteFrames[3]]
case multi <= 1000:
return [this.multiSpriteFrames[4], this.blurMultiSpriteFrames[4]]
}
} }
getHeight(): number { getHeight(): number {
@ -198,7 +230,7 @@ export class Icon extends Component {
} }
async onClickIconNode() { async onClickIconNode() {
if (GameDataManager.instance.canClickIconMsg && this.index != 10) { if (GameDataManager.instance.canClickIconMsg) {
AudioManager.instance.playSFX('Click_Icon'); AudioManager.instance.playSFX('Click_Icon');
let iconMsg = await NodePoolManager.instance.getNodeFromPoolDynamic('IconMsg', 'Prefab/Others/IconMsg', 'Game'); let iconMsg = await NodePoolManager.instance.getNodeFromPoolDynamic('IconMsg', 'Prefab/Others/IconMsg', 'Game');
let gameNode = find('Canvas/main/game'); let gameNode = find('Canvas/main/game');

View File

@ -52,6 +52,7 @@ export class Roller extends Component {
protected _info: Info = new Info(); protected _info: Info = new Info();
protected _panData: number[] = []; protected _panData: number[] = [];
private grid: (Node | null)[] = []; private grid: (Node | null)[] = [];
private _freeMulMap: { [relPos: number]: number } = {};
/** 正在退场(向上飞出)的图标,用于急停时强制回收 */ /** 正在退场(向上飞出)的图标,用于急停时强制回收 */
private _exitingIcons: Node[] = []; private _exitingIcons: Node[] = [];
@ -157,21 +158,35 @@ export class Roller extends Component {
} }
for (let i = 0; i < this.row; i++) { for (let i = 0; i < this.row; i++) {
this.createNormalIcon(i, data[i]); this.createNormalIcon(i, data[i], 1);
} }
} }
createNormalIcon(pos: number, iconIndex: number): Node { createNormalIcon(pos: number, iconIndex: number, test: number = 0): Node {
let iconNode = this.iconFactory.icfactoryCreateIcon(iconIndex); let iconNode = this.iconFactory.icfactoryCreateIcon(iconIndex);
iconNode.getComponent(Icon).initIcon(iconIndex, 1, this._rollerId); let icon = iconNode.getComponent(Icon);
icon.initIcon(iconIndex, 1, this._rollerId);
if (iconIndex === 10 && this._freeMulMap[pos] != null) {
icon.setMulti(this._freeMulMap[pos]);
icon.multiNode.active = true;
}
let position = this.getIconPosition(pos, 1); let position = this.getIconPosition(pos, 1);
this.node.addChild(iconNode); this.node.addChild(iconNode);
iconNode.setPosition(position); iconNode.setPosition(position);
iconNode.getComponent(Icon).playIdleSpine(true); if (iconIndex === 0) {
icon.playScatterIdleSpine(true);
} else {
icon.playIdleSpine(false);
}
this.grid[pos] = iconNode; this.grid[pos] = iconNode;
return iconNode; return iconNode;
} }
setFreeMulMap(map: { [relPos: number]: number }) {
this._freeMulMap = map || {};
}
setRollerIconRule(rollerIconRule: number[]) { setRollerIconRule(rollerIconRule: number[]) {
this._info.iconRule = rollerIconRule; this._info.iconRule = rollerIconRule;
} }
@ -219,7 +234,7 @@ export class Roller extends Component {
tween(iconRef) tween(iconRef)
.delay(exitDelay) .delay(exitDelay)
.to(0.18, { position: v3(0, exitTopY, 0) }, { easing: 'quadIn' }) .to(0.18, { position: v3(0, exitTopY, 0) }, { easing: 'quadIn' })
.call(() => { .call(() => {
let idx = this._exitingIcons.indexOf(iconRef); let idx = this._exitingIcons.indexOf(iconRef);
if (idx !== -1) this._exitingIcons.splice(idx, 1); if (idx !== -1) this._exitingIcons.splice(idx, 1);
if (iconRef && iconRef.isValid) this.iconFactory.recycleIcon(iconRef); if (iconRef && iconRef.isValid) this.iconFactory.recycleIcon(iconRef);
@ -289,7 +304,12 @@ export class Roller extends Component {
} }
let iconNode = this.iconFactory.icfactoryCreateIcon(panValue); let iconNode = this.iconFactory.icfactoryCreateIcon(panValue);
iconNode.getComponent(Icon).initIcon(panValue, 1, this._rollerId); let iconComp = iconNode.getComponent(Icon);
iconComp.initIcon(panValue, 1, this._rollerId);
if (panValue === 10 && this._freeMulMap[i] != null) {
iconComp.setMulti(this._freeMulMap[i]);
iconComp.multiNode.active = true;
}
// 起始位置:可见区顶部上方 // 起始位置:可见区顶部上方
let startY = topY + (i + 2) * this.iconHeight; // 底行最高,顶行最低 let startY = topY + (i + 2) * this.iconHeight; // 底行最高,顶行最低
@ -308,7 +328,14 @@ export class Roller extends Component {
tween(iconRef) tween(iconRef)
.delay(rowDelay) .delay(rowDelay)
.to(fallTime, { position: targetPos }, { easing: 'quadIn' }) .to(fallTime, { position: targetPos }, { easing: 'quadIn' })
.call(() => { iconRef.getComponent(Icon)?.playBounceSpine(); }) .call(() => {
let iconCompRef = iconRef.getComponent(Icon);
if (iconCompRef?.index === 0) {
iconCompRef.playScatterIdleSpine(true);
} else {
iconCompRef?.playIdleSpine(false);
}
})
.start(); .start();
maxTime = Math.max(maxTime, rowDelay + fallTime); maxTime = Math.max(maxTime, rowDelay + fallTime);
} else { } else {
@ -320,7 +347,14 @@ export class Roller extends Component {
tween(iconRef) tween(iconRef)
.delay(rowDelay) .delay(rowDelay)
.to(fallTime, { position: targetPos }, { easing: 'quadIn' }) .to(fallTime, { position: targetPos }, { easing: 'quadIn' })
.call(() => { iconRef.getComponent(Icon)?.playBounceSpine(); }) .call(() => {
let iconCompRef = iconRef.getComponent(Icon);
if (iconCompRef?.index === 0) {
iconCompRef.playScatterIdleSpine(true);
} else {
iconCompRef?.playIdleSpine(false);
}
})
.to(bounceUp, { position: bouncePos }, { easing: 'quadOut' }) .to(bounceUp, { position: bouncePos }, { easing: 'quadOut' })
.to(bounceDown, { position: targetPos }, { easing: 'quadIn' }) .to(bounceDown, { position: targetPos }, { easing: 'quadIn' })
.start(); .start();
@ -406,7 +440,12 @@ export class Roller extends Component {
curHeight = allHeight - startPos; curHeight = allHeight - startPos;
let icon = this.iconFactory.icfactoryCreateIcon(iconIndex); let icon = this.iconFactory.icfactoryCreateIcon(iconIndex);
icon.getComponent(Icon).initIcon(iconIndex, lHeight, this._rollerId); let iconComp2 = icon.getComponent(Icon);
iconComp2.initIcon(iconIndex, lHeight, this._rollerId);
if (iconIndex === 10 && this._freeMulMap[i] != null) {
iconComp2.setMulti(this._freeMulMap[i]);
iconComp2.multiNode.active = true;
}
let bornY = topY + curHeight * this.iconHeight - (lHeight - 1) * this.iconHeight / 2; let bornY = topY + curHeight * this.iconHeight - (lHeight - 1) * this.iconHeight / 2;
icon.setPosition(0, bornY, 0); icon.setPosition(0, bornY, 0);
this._newCreateIconNode.push(icon); this._newCreateIconNode.push(icon);
@ -415,7 +454,7 @@ export class Roller extends Component {
this.node.emit(ROLLER_EVENT.ICON_CREATE, this._rollerId); this.node.emit(ROLLER_EVENT.ICON_CREATE, this._rollerId);
} }
iconFallDown(hasExpect: boolean) { iconFallDown() {
let allIcons = []; let allIcons = [];
let seen = new Set<Node>(); let seen = new Set<Node>();
for (let i = 0; i < this.row; i++) { for (let i = 0; i < this.row; i++) {
@ -460,10 +499,12 @@ export class Roller extends Component {
.delay(startDelay) .delay(startDelay)
.to(fallTime, { position: targetPosition }, { easing: 'quadIn' }) .to(fallTime, { position: targetPosition }, { easing: 'quadIn' })
.call(() => { .call(() => {
if (iconNode.getComponent(Icon).iconId == 1 && hasExpect) { let iconCompRef = iconNode.getComponent(Icon);
// AudioManager.instance.playSFX('Elimiante_Has_Scatter'); if (iconCompRef?.index === 0) {
iconCompRef.playScatterIdleSpine(true);
} else {
iconCompRef?.playIdleSpine(false);
} }
iconNode.getComponent(Icon).playBounceSpine();
}) })
.to(bounceTime1Up, { position: bouncePos2 }, { easing: 'quadOut' }) .to(bounceTime1Up, { position: bouncePos2 }, { easing: 'quadOut' })
.to(bounceTime1Down, { position: targetPosition }, { easing: 'quadIn' }) .to(bounceTime1Down, { position: targetPosition }, { easing: 'quadIn' })

View File

@ -214,19 +214,7 @@ export class RollerManager extends Component {
hasEmitScatterTween: boolean = false; hasEmitScatterTween: boolean = false;
onRollerStop(rollerId: number) { onRollerStop(rollerId: number) {
this.node.emit(ROLLER_COMBINE_EVENT.ONE_ROLLER_STOP, rollerId); this.node.emit(ROLLER_COMBINE_EVENT.ONE_ROLLER_STOP, rollerId);
if (this._parsedData.HasScatterExpect) {
this.upLayer.playScatterSpine(true);
let nextRollerId = rollerId + 1 >= this.allRollers.length ? null : rollerId + 1;
if (nextRollerId >= this._scatterStartRollerId && nextRollerId !== null) {
if (!this.hasEmitScatterTween) {
this.node.emit(ROLLER_COMBINE_EVENT.START_GAME_SCALE_TWEEN);
this.hasEmitScatterTween = true;
}
this.stopChainRoller(nextRollerId);
this.upLayer.playReadyHandAni(nextRollerId);
}
}
let allRollerStop = true; let allRollerStop = true;
for (let i = 0; i < this.allRollers.length; i++) { for (let i = 0; i < this.allRollers.length; i++) {
@ -309,6 +297,20 @@ export class RollerManager extends Component {
return false; return false;
} }
distributeFreeMulMap(freeMulMap: { [pos: number]: number }) {
for (let r = 0; r < this.allRollers.length; r++) {
let relMap: { [relPos: number]: number } = {};
let base = r * 5;
for (let relPos = 0; relPos < 5; relPos++) {
let absPos = base + relPos;
if (freeMulMap[absPos] != null) {
relMap[relPos] = freeMulMap[absPos];
}
}
this.allRollers[r].setFreeMulMap(relMap);
}
}
// 初始化滚轮数据 // 初始化滚轮数据
initRollerWithIcon(data: IParsedGameData) { initRollerWithIcon(data: IParsedGameData) {
this._parsedData = data; this._parsedData = data;
@ -317,6 +319,7 @@ export class RollerManager extends Component {
// 分割数据 // 分割数据
this._resultStopData = this.splitArray(panData, [5, 5, 5, 5, 5, 5]); this._resultStopData = this.splitArray(panData, [5, 5, 5, 5, 5, 5]);
this.distributeFreeMulMap(data.FreeMulMap);
// 处理n*1符号 // 处理n*1符号
for (let i = 0; i < this.allRollers.length; i++) { for (let i = 0; i < this.allRollers.length; i++) {
let roller = this.allRollers[i]; let roller = this.allRollers[i];
@ -440,12 +443,8 @@ export class RollerManager extends Component {
let panData = data.PanData; let panData = data.PanData;
this._resultStopData = this.splitArray(panData, [5, 5, 5, 5, 5, 5]); this._resultStopData = this.splitArray(panData, [5, 5, 5, 5, 5, 5]);
this.distributeFreeMulMap(data.FreeMulMap);
// 记录 scatter 起始列onRollerStop 链式逻辑仍需此值)
if (data.HasScatterExpect) {
this._scatterStartRollerId = this.getScatterStartRollerId();
}
if (this._isFastSpin) { if (this._isFastSpin) {
// 快速模式:所有列同时掉落 // 快速模式:所有列同时掉落
for (let i = 0; i < this.allRollers.length; i++) { for (let i = 0; i < this.allRollers.length; i++) {
@ -511,7 +510,7 @@ export class RollerManager extends Component {
iconFallDown() { iconFallDown() {
this.allRollers.forEach(roller => { this.allRollers.forEach(roller => {
roller.iconFallDown(this._parsedData.HasScatterExpect); roller.iconFallDown();
}) })
} }

View File

@ -124,7 +124,7 @@ export class SlotBar extends Component {
this.setBtnEnable(this.getBtnButton(Btn_Key.MenuBtn), false); this.setBtnEnable(this.getBtnButton(Btn_Key.MenuBtn), false);
} }
updatePlayerMsg(spinData: any, callBack: () => void, isFreeSpin: boolean = false) { updatePlayerMsg(spinData: any, callBack: () => void) {
if (spinData.AllScore == 0) { if (spinData.AllScore == 0) {
this.setWin(spinData.AllScore); this.setWin(spinData.AllScore);
@ -133,17 +133,13 @@ export class SlotBar extends Component {
return; return;
} }
this.updateWinMsg(spinData.AllScore, isFreeSpin); this.updateWinMsg(spinData.AllScore);
this.updateBalanceMsg(spinData.Balance, callBack); this.updateBalanceMsg(spinData.Balance, callBack);
} }
updateWinMsg(winCount: number, isFreeSpin: boolean = false) { updateWinMsg(winCount: number) {
let startScore = 0; let startScore = this.curWin;
if (isFreeSpin) { let tw = UIManager.instance.tweenScorelinear(startScore, winCount, 1);
this.curFreeSpinScore += winCount;
startScore = this.curFreeSpinScore;
}
let tw = UIManager.instance.tweenScorelinear(startScore, winCount, 0.2);
if (tw !== null) { if (tw !== null) {
tw.onUpdate((v) => this.setWin(v)) tw.onUpdate((v) => this.setWin(v))
.onComplete(() => this.setWin(winCount)) .onComplete(() => this.setWin(winCount))
@ -152,11 +148,7 @@ export class SlotBar extends Component {
} }
updateBalanceMsg(balance: number, callBack: () => void) { updateBalanceMsg(balance: number, callBack: () => void) {
let tw = UIManager.instance.tweenScorelinear( let tw = UIManager.instance.tweenScorelinear(this.getBalance(), balance, 1);
this.getBalance(),
balance,
0.2
);
if (tw !== null) { if (tw !== null) {
tw.onUpdate((v) => this.setBalance(v)) tw.onUpdate((v) => this.setBalance(v))
.onComplete(() => { .onComplete(() => {
@ -234,7 +226,7 @@ export class SlotBar extends Component {
); );
} }
} }
Tween.stopAllByTarget(this.betLabel.node); Tween.stopAllByTarget(this.betLabel.node);
tween(this.betLabel.node) tween(this.betLabel.node)
.set({ scale: this.betScale }) .set({ scale: this.betScale })
@ -259,6 +251,10 @@ export class SlotBar extends Component {
this.freeSpinWinLabel.string = gold2cash(win); this.freeSpinWinLabel.string = gold2cash(win);
} }
getWin(): number {
return this.curWin;
}
onClickAddChips() { onClickAddChips() {
AudioManager.instance.playSFX("Click_Menu"); AudioManager.instance.playSFX("Click_Menu");
this.betIndex += 1; this.betIndex += 1;

View File

@ -2,6 +2,7 @@ import { _decorator, Button, Component, Label, Layout, Node, Prefab, sp, Sprite,
import { RollerManager } from './RollerManager'; import { RollerManager } from './RollerManager';
import { DELETE_TIME, ICON_SERVER_MAP, IParsedGameData, ISpecialIcon, ROLLER_COMBINE_EVENT, SLOT_GAME_EVENT } from './Define'; import { DELETE_TIME, ICON_SERVER_MAP, IParsedGameData, ISpecialIcon, ROLLER_COMBINE_EVENT, SLOT_GAME_EVENT } from './Define';
import { UpLayer } from './UpLayer'; import { UpLayer } from './UpLayer';
import { Icon } from './Icon';
import { UIManager } from '../../Main/Scripts/managers/UIManager'; import { UIManager } from '../../Main/Scripts/managers/UIManager';
import { GameDataManager } from '../../Main/Scripts/managers/GameDataManager'; import { GameDataManager } from '../../Main/Scripts/managers/GameDataManager';
import { gold2cash } from '../../Main/Scripts/main/comm'; import { gold2cash } from '../../Main/Scripts/main/comm';
@ -32,12 +33,7 @@ export class SlotGame extends Component {
parsedData: IParsedGameData = null; parsedData: IParsedGameData = null;
spinData: any = null; spinData: any = null;
_lastRemoveData: number[] = []; // ← 清除 _lastRemoveData: number[] = []; // ← 清除
// normalWaysLayout: Node = null;
// normalWaysLabelCount: Node = null;
// freeWaysLayout: Node = null;
// freeWaysLabelCount: Node = null;
featureBuyActive: boolean = false; featureBuyActive: boolean = false;
doubleWinIsOn: boolean = false; doubleWinIsOn: boolean = false;
rollersMsg: number[] = [3, 4, 5, 5, 4, 3]; rollersMsg: number[] = [3, 4, 5, 5, 4, 3];
@ -45,11 +41,6 @@ export class SlotGame extends Component {
waysNum = 3 * 4 * 5 * 5 * 4 * 3; waysNum = 3 * 4 * 5 * 5 * 4 * 3;
protected onLoad(): void { protected onLoad(): void {
// this.normalWaysLayout = this.node.getChildByName('NormalGameBg').getChildByName('ways').getChildByName('layout');
// this.normalWaysLabelCount = this.node.getChildByName('NormalGameBg').getChildByName('ways').getChildByName('layout').getChildByName('Label');
// this.freeWaysLayout = this.node.getChildByName('FreeGameBg').getChildByName('ways').getChildByName('layout');
// this.freeWaysLabelCount = this.node.getChildByName('FreeGameBg').getChildByName('ways').getChildByName('layout').getChildByName('Label');
this.rollerManager.node.on(ROLLER_COMBINE_EVENT.ONE_ROLLER_STOP, this.onOneRollerStopped, this); this.rollerManager.node.on(ROLLER_COMBINE_EVENT.ONE_ROLLER_STOP, this.onOneRollerStopped, this);
this.rollerManager.node.on(ROLLER_COMBINE_EVENT.ROLLER_BOUNCE, this.onRollerBounce, this); this.rollerManager.node.on(ROLLER_COMBINE_EVENT.ROLLER_BOUNCE, this.onRollerBounce, this);
this.rollerManager.node.on(ROLLER_COMBINE_EVENT.ALL_ROLLER_STOP, this.onAllRollerStopped, this); this.rollerManager.node.on(ROLLER_COMBINE_EVENT.ALL_ROLLER_STOP, this.onAllRollerStopped, this);
@ -384,6 +375,7 @@ export class SlotGame extends Component {
this.spinData = spinData; this.spinData = spinData;
this.parsedData = this.parseGameData(spinData, this._lastRemoveData); this.parsedData = this.parseGameData(spinData, this._lastRemoveData);
this._lastRemoveData = this.parsedData.RemoveData.slice(); // ← 更新为本轮 this._lastRemoveData = this.parsedData.RemoveData.slice(); // ← 更新为本轮
this.rollerManager.distributeFreeMulMap(this.parsedData.FreeMulMap);
this.rollerManager.createNewIconTop(this.parsedData.NewIconTop); this.rollerManager.createNewIconTop(this.parsedData.NewIconTop);
} }
@ -396,6 +388,28 @@ export class SlotGame extends Component {
this.rollerManager.iconFallDown(); this.rollerManager.iconFallDown();
} }
getCurrentBombSettleInfos(): { pos: number, mul: number, iconNode: Node, multiNode: Node }[] {
let result: { pos: number, mul: number, iconNode: Node, multiNode: Node }[] = [];
if (!this.parsedData || !this.parsedData.BombPos || !this.parsedData.FreeMulMap) return result;
for (let i = 0; i < this.parsedData.BombPos.length; i++) {
let absPos = this.parsedData.BombPos[i];
let mul = this.parsedData.FreeMulMap[absPos];
if (mul == null) continue;
let iconNode = this.rollerManager.getIconNode(absPos);
if (!iconNode || !iconNode.isValid) continue;
let iconComp = iconNode.getComponent(Icon);
if (!iconComp || !iconComp.multiNode || !iconComp.multiNode.isValid) continue;
result.push({
pos: absPos,
mul: mul,
iconNode,
multiNode: iconComp.multiNode,
});
}
return result;
}
onAllRollerIconsFallen() { onAllRollerIconsFallen() {
this.upLayer.resetAndSyncAllSpecials(this.rollerManager); this.upLayer.resetAndSyncAllSpecials(this.rollerManager);
let delay = this.parsedData.hasSmallGame ? 2 : 0; let delay = this.parsedData.hasSmallGame ? 2 : 0;
@ -447,6 +461,13 @@ export class SlotGame extends Component {
parseGameData(spinData: any, lastRemoveData: number[]): IParsedGameData { parseGameData(spinData: any, lastRemoveData: number[]): IParsedGameData {
let { Symbol, WinInfo, Free } = spinData || {}; let { Symbol, WinInfo, Free } = spinData || {};
let serverPanData: number[] = Symbol.Middle; let serverPanData: number[] = Symbol.Middle;
let freeMulMiddlesArr: any[] = Symbol?.FreeMulMiddles || [];
let mulDesc = WinInfo?.MulDesc || null;
let freeMulMap: { [pos: number]: number } = {};
for (let item of freeMulMiddlesArr) {
freeMulMap[item.NumPos] = item.Mul;
}
let removeData: number[] = []; let removeData: number[] = [];
if (WinInfo != null && WinInfo.Desc != null) { if (WinInfo != null && WinInfo.Desc != null) {
@ -495,29 +516,22 @@ export class SlotGame extends Component {
if (iconId == 10) bombPos.push(i); if (iconId == 10) bombPos.push(i);
} }
let hasScatterExpect = scatterPos.length >= 2;
if (hasScatterExpect && scatterPos.length == 2) {
if (this.rollerManager.getLx(scatterPos[1]) == 5) {
hasScatterExpect = false;
}
}
let freeIsSame = Free == null ? false : Free.LeftCount !== Free.MaxCount; let freeIsSame = Free == null ? false : Free.LeftCount !== Free.MaxCount;
console.log(newIconTop, 'newIconTop');
return { return {
Multi: 0, Multi: 0,
PanData: panData, PanData: panData,
RemoveData: removeData, RemoveData: removeData,
NewIconTop: newIconTop, NewIconTop: newIconTop,
HasScatterExpect: hasScatterExpect,
ScatterPos: scatterPos, ScatterPos: scatterPos,
BombPos: bombPos, BombPos: bombPos,
MulInfo: [{
"Pos": 7,
"Mul": 2
}
],
hasSmallGame: scatterPos.length >= 4, hasSmallGame: scatterPos.length >= 4,
hasFreeSpinAgain: scatterPos.length >= 3 && freeIsSame, hasFreeSpinAgain: scatterPos.length >= 3 && freeIsSame,
FreeMulMap: freeMulMap,
RoundScore: WinInfo?.Score,
MulValue: mulDesc?.Mul,
UnmultiedScore: mulDesc?.UnMultied,
MultiedScore: mulDesc?.Multied,
}; };
} }

View File

@ -3,6 +3,7 @@ import { I18nManager } from '../../Main/Scripts/managers/I18nManager';
import { getLanguage, gold2cash } from '../../Main/Scripts/main/comm'; import { getLanguage, gold2cash } from '../../Main/Scripts/main/comm';
import { UIManager } from '../../Main/Scripts/managers/UIManager'; import { UIManager } from '../../Main/Scripts/managers/UIManager';
import { AudioManager } from '../../Main/Scripts/managers/AudioManager'; import { AudioManager } from '../../Main/Scripts/managers/AudioManager';
import { Icon } from './Icon';
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
@ccclass('SlotMsg') @ccclass('SlotMsg')
@ -133,7 +134,7 @@ export class SlotMsg extends Component {
.start(); .start();
} }
showWinMsg(endScore: number) { showRoundWinMsg(endScore: number) {
if (endScore === 0) return; if (endScore === 0) return;
this.smallMsgSpine.node.active = false; this.smallMsgSpine.node.active = false;
this.middleMsgSpine.node.active = true; this.middleMsgSpine.node.active = true;
@ -172,6 +173,13 @@ export class SlotMsg extends Component {
this.largeMsgSpine.node.active = false; this.largeMsgSpine.node.active = false;
} }
showMultiWinAnimation(spinData, callBack: () => void) {
this.scheduleOnce(() => {
this.showTotalWinMsg(spinData.WinInfo.MulDesc.Multied);
callBack();
}, 1)
}
showTipSmall(tips: string, Type: string = "") { showTipSmall(tips: string, Type: string = "") {
Tween.stopAllByTarget(this.grayMsgNode); Tween.stopAllByTarget(this.grayMsgNode);

View File

@ -16,6 +16,7 @@ import { FreeSpinAgain } from "./FreeSpinAgain";
import { SysGift } from "./SysGift"; import { SysGift } from "./SysGift";
import { ErrorManager } from "../../Main/Scripts/managers/ErrorManager"; import { ErrorManager } from "../../Main/Scripts/managers/ErrorManager";
import { SlotRanking } from "../SlotRanking/scripts/SlotRanking"; import { SlotRanking } from "../SlotRanking/scripts/SlotRanking";
import { ChooseDiff } from "./ChooseDiff";
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
@ccclass("SlotScene") @ccclass("SlotScene")
@ -144,7 +145,7 @@ export class SlotScene extends Component {
if (this.hasEliminate) { if (this.hasEliminate) {
this.slotBar.manualStop(this.hasEliminate); this.slotBar.manualStop(this.hasEliminate);
this.slotGame.playIconWinAni(this.spinData); this.slotGame.playIconWinAni(this.spinData);
this.slotMsg.showWinMsg(this.spinData.AllScore); this.slotMsg.showRoundWinMsg(this.spinData.WinInfo.Score);
if (this.isDebug) { if (this.isDebug) {
this.nextSpinInfo = GAME_DATA; this.nextSpinInfo = GAME_DATA;
} else { } else {
@ -175,17 +176,9 @@ export class SlotScene extends Component {
this.slotMsg.hideWinSpine(); this.slotMsg.hideWinSpine();
if (!this.isFreeSpin) { this.slotBar.setWin(0); } if (!this.isFreeSpin) { this.slotBar.setWin(0); }
let msg = !this.isFeatureBuySpin && buyType == 0 let msg = !this.isFeatureBuySpin && buyType == 0 ?
? { { Bet: this.slotBar.getBet(), IsDouble: this.isDoubleWin, }
Bet: this.slotBar.getBet(), : { Bet: this.slotBar.getBet(), IsBuy: true, BuyType: buyType, IsDouble: this.isDoubleWin, };
IsDouble: this.isDoubleWin,
}
: {
Bet: this.slotBar.getBet(),
IsBuy: true,
BuyType: buyType,
IsDouble: this.isDoubleWin,
};
try { try {
this.spinInfo = !this.isDebug ? await this.spinWithRetryMsg(msg) : GAME_DATA; this.spinInfo = !this.isDebug ? await this.spinWithRetryMsg(msg) : GAME_DATA;
this.subBalacne(); this.subBalacne();
@ -357,7 +350,7 @@ export class SlotScene extends Component {
// 如果本次有消除,则进行删除工作。 // 如果本次有消除,则进行删除工作。
if (this.hasEliminate) { if (this.hasEliminate) {
this.slotGame.playIconWinAni(this.spinData); this.slotGame.playIconWinAni(this.spinData);
this.slotMsg.showWinMsg(this.spinData.AllScore); this.slotMsg.showRoundWinMsg(this.spinData.WinInfo.Score);
if (this.isDebug) { if (this.isDebug) {
this.nextSpinInfo = GAME_DATA; this.nextSpinInfo = GAME_DATA;
} else { } else {
@ -411,7 +404,7 @@ export class SlotScene extends Component {
async onAllRollerIconsFallen() { async onAllRollerIconsFallen() {
if (this.hasEliminate) { if (this.hasEliminate) {
this.slotGame.playIconWinAni(this.spinData); this.slotGame.playIconWinAni(this.spinData);
this.slotMsg.showWinMsg(this.spinData.AllScore); this.slotMsg.showRoundWinMsg(this.spinData.WinInfo.Score);
if (this.isDebug) { if (this.isDebug) {
this.nextSpinInfo = GAME_DATA; this.nextSpinInfo = GAME_DATA;
} else { } else {
@ -450,71 +443,78 @@ export class SlotScene extends Component {
handleRoundEnd(isReconnect: boolean = false) { handleRoundEnd(isReconnect: boolean = false) {
if (this.isFreeSpin) { if (this.isFreeSpin) {
if (this.isFirstFreeSpin) { if (this.isFirstFreeSpin) {
this.updateBg(true); // 进入免费前,先给 2 秒展示 scatter 动画并更新信息栏
this.slotBar.updateIsFreeSpin(true); this.slotBar.updatePlayerMsg(this.spinData, null);
this.slotBar.setLeftCount(this.spinData.Free.MaxCount); this.slotGame.upLayer.playScatterWaitSpine(true);
NodePoolManager.instance.getNodeFromPoolDynamic("FreeSpinEnter", "Prefab/FreeSpinEnter", "Game").then((prefab: Node) => { this.scheduleOnce(() => {
this.node.addChild(prefab); this.slotGame.upLayer.playScatterSpine(false);
let freeCount = this.spinData.Free.MaxCount; this.updateBg(true);
prefab.getComponent(FreeSpinEnterSpine).showEnterAni(freeCount, () => { this.slotBar.updateIsFreeSpin(true);
AudioManager.instance.playBGM("Free_Bg_Bgm"); this.slotBar.setLeftCount(this.spinData.Free.MaxCount);
NodePoolManager.instance.putNodeToPool("FreeSpinEnter", prefab); NodePoolManager.instance.getNodeFromPoolDynamic("FreeSpinEnter", "Prefab/FreeSpinEnter", "Game").then((prefab: Node) => {
this.scheduleOnce(() => { this.node.addChild(prefab);
this.handleNextFreeSpin(this.spinData.Free.LeftCount - 1); let freeCount = this.spinData.Free.MaxCount;
}, 1); prefab.getComponent(FreeSpinEnterSpine).showEnterAni(freeCount, () => {
}); AudioManager.instance.playBGM("Free_Bg_Bgm");
}); NodePoolManager.instance.putNodeToPool("FreeSpinEnter", prefab);
} else { this.scheduleOnce(() => {
if (!isReconnect) { this.handleNextFreeSpin(this.spinData.Free.LeftCount - 1);
this.handleBigWin(() => { }, 1);
this.handleFreeSpinAgain(() => {
this.slotBar.setLeftCount(this.spinData.Free.LeftCount);
if (this.isErr) {
this.updateBg(false);
if (
!this.isAutoSpin &&
GameDataManager.instance.frb.Finished == null &&
GameDataManager.instance.frb.Ongoing == null
) {
this.slotGame.setFeatureBuyBtnEnable(true);
}
this.slotBar.updateIsFreeSpin(false);
this.checkAutoSpin(this.spinData.AllScore > 0);
AudioManager.instance.playBGM("Normal_Bg_Bgm");
return;
}
if (this.spinData.Free.LeftCount == 0 && this.spinData.RoundInfo.Current == this.spinData.RoundInfo.Total) {
this.isFreeSpin = false;
this.slotBar.updatePlayerMsg(this.spinData, null, true);
this.scheduleOnce(() => {
this.slotMsg.showTotalWinAnimaiton(this.spinData.AllScore, this.spinData.AllScore, () => {
NodePoolManager.instance.getNodeFromPoolDynamic("TotalWinSpine", "Prefab/TotalWinSpine", "Game").then((prefab: Node) => {
AudioManager.instance.playBGM("Total_Win_Bgm");
this.node.addChild(prefab);
prefab.getComponent(TotalWinSpine).showTotalWinSpine(this.spinData.AllScore, () => {
this.updateBg(false);
if (!this.isAutoSpin && GameDataManager.instance.frb.Finished == null && GameDataManager.instance.frb.Ongoing == null) {
this.slotGame.setFeatureBuyBtnEnable(true);
}
this.slotBar.updateIsFreeSpin(false);
this.checkAutoSpin(this.spinData.AllScore > 0);
AudioManager.instance.playBGM("Normal_Bg_Bgm");
NodePoolManager.instance.putNodeToPool("TotalWinSpine", prefab);
});
});
}
);
}, 1);
} else {
this.slotBar.updateWinMsg(this.spinData.AllScore, true);
this.scheduleOnce(() => {
this.handleNextFreeSpin(this.spinData.Free.LeftCount - 1);
}, 1);
}
}); });
}); });
}, 2);
} else {
if (!isReconnect) {
this.handleFreeSpinRoundWinMsg(() => {
this.handleBigWin(() => {
this.handleFreeSpinAgain(() => {
this.slotBar.setLeftCount(this.spinData.Free.LeftCount);
if (this.isErr) {
this.updateBg(false);
if (
!this.isAutoSpin &&
GameDataManager.instance.frb.Finished == null &&
GameDataManager.instance.frb.Ongoing == null
) {
this.slotGame.setFeatureBuyBtnEnable(true);
}
this.slotBar.updateIsFreeSpin(false);
this.checkAutoSpin(this.spinData.AllScore > 0);
AudioManager.instance.playBGM("Normal_Bg_Bgm");
return;
}
if (this.spinData.Free.LeftCount == 0 && this.spinData.RoundInfo.Current == this.spinData.RoundInfo.Total) {
this.isFreeSpin = false;
let startScore = 0;
this.scheduleOnce(() => {
this.slotMsg.showTotalWinAnimaiton(startScore, this.spinData.AllScore, () => {
NodePoolManager.instance.getNodeFromPoolDynamic("TotalWinSpine", "Prefab/TotalWinSpine", "Game").then((prefab: Node) => {
AudioManager.instance.playBGM("Total_Win_Bgm");
this.node.addChild(prefab);
prefab.getComponent(TotalWinSpine).showTotalWinSpine(this.spinData.AllScore, () => {
this.updateBg(false);
if (!this.isAutoSpin && GameDataManager.instance.frb.Finished == null && GameDataManager.instance.frb.Ongoing == null) {
this.slotGame.setFeatureBuyBtnEnable(true);
}
this.slotBar.updateIsFreeSpin(false);
this.checkAutoSpin(this.spinData.AllScore > 0);
AudioManager.instance.playBGM("Normal_Bg_Bgm");
NodePoolManager.instance.putNodeToPool("TotalWinSpine", prefab);
});
});
});
}, 1);
} else {
this.scheduleOnce(() => {
this.handleNextFreeSpin(this.spinData.Free.LeftCount - 1);
}, 1);
}
});
});
})
} else { } else {
if (this.spinData.Free.LeftCount == 0 && this.spinData.RoundInfo.Current == this.spinData.RoundInfo.Total) { if (this.spinData.Free.LeftCount == 0 && this.spinData.RoundInfo.Current == this.spinData.RoundInfo.Total) {
this.isFreeSpin = false; this.isFreeSpin = false;
@ -576,27 +576,33 @@ export class SlotScene extends Component {
} }
} }
handleFreeSpinRoundWinMsg(callBack: () => void) {
if (this.spinData.WinInfo == null) {
callBack();
return;
}
if (this.spinData.WinInfo.MulDesc == null) {
this.slotMsg.showTotalWinMsg(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)
return;
}
}
handleBigWin(callBack: () => void) { handleBigWin(callBack: () => void) {
let score = this.isFreeSpin let score = this.isFreeSpin ? this.spinData.SpinScore : this.spinData.AllScore;
? this.spinData.SpinScore
: this.spinData.AllScore;
// score = 7000000000;
let winType = score ? this.checkWinType(score) : WIN_TYPE.NONE; let winType = score ? this.checkWinType(score) : WIN_TYPE.NONE;
if (winType >= WIN_TYPE.BIG_WIN) { if (winType >= WIN_TYPE.BIG_WIN) {
NodePoolManager.instance NodePoolManager.instance.getNodeFromPoolDynamic("BigWin", "Prefab/BigWin", "Game").then((prefab: Node) => {
.getNodeFromPoolDynamic("BigWin", "Prefab/BigWin", "Game") this.node.addChild(prefab);
.then((prefab: Node) => { prefab.getComponent(BigWin).open(winType, score, this.slotBar.getBet(), callBack, this.isFreeSpin);
this.node.addChild(prefab); });
prefab
.getComponent(BigWin)
.open(
winType,
score,
this.slotBar.getBet(),
callBack,
this.isFreeSpin
);
});
} else { } else {
callBack(); callBack();
} }
@ -640,8 +646,8 @@ export class SlotScene extends Component {
this.slotBar.node.getChildByName("stopBtn").active = true; this.slotBar.node.getChildByName("stopBtn").active = true;
} }
/** 扣除金币 */ /** 扣除金币,如果是购买需要控制buyType */
subBalacne() { subBalacne(buyType: number = 0) {
let frb = GameDataManager.instance.frb; let frb = GameDataManager.instance.frb;
if (this.spinInfo.Frb && this.spinInfo.Frb.Ongoing != null) { if (this.spinInfo.Frb && this.spinInfo.Frb.Ongoing != null) {
if (!this.isFreeSpin) { if (!this.isFreeSpin) {
@ -666,30 +672,27 @@ export class SlotScene extends Component {
? this.slotBar.getBet() * 1.25 ? this.slotBar.getBet() * 1.25
: this.slotBar.getBet(); : this.slotBar.getBet();
this.slotBar.setBalance( this.slotBar.setBalance(this.slotBar.getBalance() - spinCost);
this.slotBar.getBalance() - spinCost
);
} else { } else {
this.slotBar.setBalance( if (buyType === 1) {
this.slotBar.getBalance() - this.slotBar.setBalance(this.slotBar.getBalance() - this.slotBar.getBet() * this.gameInfo.BuyMul)
this.slotBar.getBet() * this.gameInfo.BuyMul } else {
); this.slotBar.setBalance(this.slotBar.getBalance() - this.slotBar.getBet() * 500)
}
} }
} }
} }
} }
testBtn() { onBtnChooseDiff() {
NodePoolManager.instance NodePoolManager.instance.getNodeFromPoolDynamic("ChooseDiff", "Prefab/ChooseDiff", "Game").then((prefab: Node) => {
.getNodeFromPoolDynamic("FreeSpinEnter", "Prefab/FreeSpinEnter", "Game") this.node.addChild(prefab);
.then((prefab: Node) => { prefab.getComponent(ChooseDiff).open(GameDataManager.instance.chooseDiff, () => {
this.node.addChild(prefab); this.node.getChildByName("Choose").children.forEach((child: Node, index: number) => {
let freeCount = 10; //this.spinData.FreeSpin.MaxCount; child.active = index == GameDataManager.instance.chooseDiff - 1;
freeCount = 10; })
prefab.getComponent(FreeSpinEnterSpine).showEnterAni(freeCount, () => {
NodePoolManager.instance.putNodeToPool("FreeSpinEnter", prefab);
});
}); });
});
} }
showErrorTip(errcode: number, errMsg: string, callBack?) { showErrorTip(errcode: number, errMsg: string, callBack?) {

View File

@ -205,6 +205,10 @@ export class UpLayer extends Component {
} }
playScatterSpine(bol: boolean) { playScatterSpine(bol: boolean) {
this.scatterLayer.children.forEach(child => child.getComponent(Icon).playScatterIdleSpine(bol));
}
playScatterWaitSpine(bol: boolean) {
this.scatterLayer.children.forEach(child => child.getComponent(Icon).playScatterWaitSpine(bol)); this.scatterLayer.children.forEach(child => child.getComponent(Icon).playScatterWaitSpine(bol));
} }
} }

View File

@ -29,22 +29,25 @@
}, },
{ {
"__id__": 1192 "__id__": 1192
},
{
"__id__": 1207
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 1207 "__id__": 1232
}, },
{ {
"__id__": 1209 "__id__": 1234
}, },
{ {
"__id__": 1211 "__id__": 1236
} }
], ],
"_prefab": { "_prefab": {
"__id__": 1213 "__id__": 1238
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@ -2605,7 +2608,7 @@
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
{ {
"__uuid__": "5e3c6a81-0213-4db7-8682-237dab87b17b", "__uuid__": "e0928cff-6e84-4aa5-a100-826094cfbce6",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
{ {
@ -22803,8 +22806,8 @@
"_color": { "_color": {
"__type__": "cc.Color", "__type__": "cc.Color",
"r": 255, "r": 255,
"g": 246, "g": 199,
"b": 187, "b": 47,
"a": 255 "a": 255
}, },
"_spriteFrame": { "_spriteFrame": {
@ -23079,8 +23082,8 @@
"_color": { "_color": {
"__type__": "cc.Color", "__type__": "cc.Color",
"r": 255, "r": 255,
"g": 246, "g": 199,
"b": 187, "b": 47,
"a": 255 "a": 255
}, },
"_spriteFrame": { "_spriteFrame": {
@ -23355,8 +23358,8 @@
"_color": { "_color": {
"__type__": "cc.Color", "__type__": "cc.Color",
"r": 255, "r": 255,
"g": 246, "g": 199,
"b": 187, "b": 47,
"a": 255 "a": 255
}, },
"_spriteFrame": { "_spriteFrame": {
@ -23687,8 +23690,8 @@
"_color": { "_color": {
"__type__": "cc.Color", "__type__": "cc.Color",
"r": 255, "r": 255,
"g": 246, "g": 199,
"b": 187, "b": 47,
"a": 255 "a": 255
}, },
"_string": "Balance", "_string": "Balance",
@ -23871,8 +23874,8 @@
"_color": { "_color": {
"__type__": "cc.Color", "__type__": "cc.Color",
"r": 255, "r": 255,
"g": 246, "g": 199,
"b": 187, "b": 47,
"a": 255 "a": 255
}, },
"_string": "Bet", "_string": "Bet",
@ -24055,8 +24058,8 @@
"_color": { "_color": {
"__type__": "cc.Color", "__type__": "cc.Color",
"r": 255, "r": 255,
"g": 246, "g": 199,
"b": 187, "b": 47,
"a": 255 "a": 255
}, },
"_string": "Win", "_string": "Win",
@ -25540,6 +25543,585 @@
"f4aQq7idZPdbNdUF+cqOcU" "f4aQq7idZPdbNdUF+cqOcU"
] ]
}, },
{
"__type__": "cc.Node",
"_name": "choose",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 1208
},
{
"__id__": 1214
},
{
"__id__": 1220
}
],
"_active": true,
"_components": [
{
"__id__": 1226
},
{
"__id__": 1228
}
],
"_prefab": {
"__id__": 1231
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -483.434,
"y": -801.351,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "IconDifficulty1",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1207
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 1209
},
{
"__id__": 1211
}
],
"_prefab": {
"__id__": 1213
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1208
},
"_enabled": true,
"__prefab": {
"__id__": 1210
},
"_contentSize": {
"__type__": "cc.Size",
"width": 70,
"height": 47
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "5aQJc5hQtPH5wegpCoFjsg"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1208
},
"_enabled": true,
"__prefab": {
"__id__": 1212
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 246,
"b": 187,
"a": 255
},
"_spriteFrame": {
"__uuid__": "31a15ac8-4248-4724-b78f-b1fcff0617c1@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "54ZVjHcF1D27HMcJyO7box"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "5cdbK/en1N/o124vPvpM0F",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "IconDifficulty2",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1207
},
"_children": [],
"_active": false,
"_components": [
{
"__id__": 1215
},
{
"__id__": 1217
}
],
"_prefab": {
"__id__": 1219
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1214
},
"_enabled": true,
"__prefab": {
"__id__": 1216
},
"_contentSize": {
"__type__": "cc.Size",
"width": 70,
"height": 47
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "ccBW9AQfVNuJEFnTCeou35"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1214
},
"_enabled": true,
"__prefab": {
"__id__": 1218
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 246,
"b": 187,
"a": 255
},
"_spriteFrame": {
"__uuid__": "84253048-0179-445c-9ef4-8324a9b6a17c@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "04tMK9ZxFBSp1Ty8qBrZPi"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "52tUBtdIxMD7sq8rRmJ/lD",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "IconDifficulty3",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1207
},
"_children": [],
"_active": false,
"_components": [
{
"__id__": 1221
},
{
"__id__": 1223
}
],
"_prefab": {
"__id__": 1225
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1220
},
"_enabled": true,
"__prefab": {
"__id__": 1222
},
"_contentSize": {
"__type__": "cc.Size",
"width": 70,
"height": 47
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e4CRhqZGBGzqxJBQdlvSBZ"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1220
},
"_enabled": true,
"__prefab": {
"__id__": 1224
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 246,
"b": 187,
"a": 255
},
"_spriteFrame": {
"__uuid__": "5b575db7-d48c-4cec-8683-66b2ee63a4d1@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "f0YOFatehPe7A8joqARDyk"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "b679yHgt9NmqngSzPF83dd",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1207
},
"_enabled": true,
"__prefab": {
"__id__": 1227
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "bdPfNDN5JBFrtUnWyngEXm"
},
{
"__type__": "cc.Button",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1207
},
"_enabled": true,
"__prefab": {
"__id__": 1229
},
"clickEvents": [
{
"__id__": 1230
}
],
"_interactable": true,
"_transition": 0,
"_normalColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_hoverColor": {
"__type__": "cc.Color",
"r": 211,
"g": 211,
"b": 211,
"a": 255
},
"_pressedColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_disabledColor": {
"__type__": "cc.Color",
"r": 124,
"g": 124,
"b": 124,
"a": 255
},
"_normalSprite": null,
"_hoverSprite": null,
"_pressedSprite": null,
"_disabledSprite": null,
"_duration": 0.1,
"_zoomScale": 1.2,
"_target": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "falhGwuUBMGJIwvQNYUNbE"
},
{
"__type__": "cc.ClickEvent",
"target": {
"__id__": 1
},
"component": "",
"_componentId": "869a6c2dfpJV5PioVAJJ/Lk",
"handler": "",
"customEventData": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "f0yNlvPFFLHp47TReWwjc+",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{ {
"__type__": "cc.UITransform", "__type__": "cc.UITransform",
"_name": "", "_name": "",
@ -25550,7 +26132,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 1208 "__id__": 1233
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@ -25578,7 +26160,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 1210 "__id__": 1235
}, },
"_alignFlags": 45, "_alignFlags": 45,
"_target": null, "_target": null,
@ -25614,7 +26196,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 1212 "__id__": 1237
}, },
"slotGame": { "slotGame": {
"__id__": 675 "__id__": 675
@ -25645,13 +26227,13 @@
"instance": null, "instance": null,
"targetOverrides": [ "targetOverrides": [
{ {
"__id__": 1214 "__id__": 1239
}, },
{ {
"__id__": 1216 "__id__": 1241
}, },
{ {
"__id__": 1218 "__id__": 1243
} }
], ],
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
@ -25770,7 +26352,7 @@
"__id__": 1175 "__id__": 1175
}, },
"targetInfo": { "targetInfo": {
"__id__": 1215 "__id__": 1240
} }
}, },
{ {
@ -25782,7 +26364,7 @@
{ {
"__type__": "cc.TargetOverrideInfo", "__type__": "cc.TargetOverrideInfo",
"source": { "source": {
"__id__": 1211 "__id__": 1236
}, },
"sourceInfo": null, "sourceInfo": null,
"propertyPath": [ "propertyPath": [
@ -25792,7 +26374,7 @@
"__id__": 1175 "__id__": 1175
}, },
"targetInfo": { "targetInfo": {
"__id__": 1217 "__id__": 1242
} }
}, },
{ {
@ -25804,7 +26386,7 @@
{ {
"__type__": "cc.TargetOverrideInfo", "__type__": "cc.TargetOverrideInfo",
"source": { "source": {
"__id__": 1211 "__id__": 1236
}, },
"sourceInfo": null, "sourceInfo": null,
"propertyPath": [ "propertyPath": [
@ -25814,7 +26396,7 @@
"__id__": 1192 "__id__": 1192
}, },
"targetInfo": { "targetInfo": {
"__id__": 1219 "__id__": 1244
} }
}, },
{ {

View File

@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "0541d894-54e1-40bb-82ad-dee9e9515a11",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -0,0 +1,505 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>choose</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{360,500}</string>
<key>spriteSourceSize</key>
<string>{360,500}</string>
<key>textureRect</key>
<string>{{0,0},{360,500}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Btn_Large_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{715,101}</string>
<key>spriteSourceSize</key>
<string>{715,101}</string>
<key>textureRect</key>
<string>{{361,0},{715,101}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>toast </key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{532,132}</string>
<key>spriteSourceSize</key>
<string>{532,132}</string>
<key>textureRect</key>
<string>{{463,0},{532,132}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Frame_Tip_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{220,220}</string>
<key>spriteSourceSize</key>
<string>{220,220}</string>
<key>textureRect</key>
<string>{{0,501},{220,220}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Btn_Spin_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{214,213}</string>
<key>spriteSourceSize</key>
<string>{214,213}</string>
<key>textureRect</key>
<string>{{463,533},{214,213}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Frame_Title_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{360,108}</string>
<key>spriteSourceSize</key>
<string>{360,108}</string>
<key>textureRect</key>
<string>{{596,0},{360,108}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Frame_Title_02</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{360,108}</string>
<key>spriteSourceSize</key>
<string>{360,108}</string>
<key>textureRect</key>
<string>{{0,722},{360,108}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Frame_Assets_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{356,109}</string>
<key>spriteSourceSize</key>
<string>{356,109}</string>
<key>textureRect</key>
<string>{{361,748},{356,109}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>high_img</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{240,160}</string>
<key>spriteSourceSize</key>
<string>{240,160}</string>
<key>textureRect</key>
<string>{{0,831},{240,160}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>low_img</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{240,160}</string>
<key>spriteSourceSize</key>
<string>{240,160}</string>
<key>textureRect</key>
<string>{{241,858},{240,160}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Medium_img</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{240,160}</string>
<key>spriteSourceSize</key>
<string>{240,160}</string>
<key>textureRect</key>
<string>{{482,858},{240,160}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Frame_Auto_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{180,181}</string>
<key>spriteSourceSize</key>
<string>{180,181}</string>
<key>textureRect</key>
<string>{{677,361},{180,181}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Btn_Cancel_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{287,87}</string>
<key>spriteSourceSize</key>
<string>{287,87}</string>
<key>textureRect</key>
<string>{{718,543},{287,87}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Btn_Confirm_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{287,87}</string>
<key>spriteSourceSize</key>
<string>{287,87}</string>
<key>textureRect</key>
<string>{{705,0},{287,87}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>BarB_Frame_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{616,36}</string>
<key>spriteSourceSize</key>
<string>{616,36}</string>
<key>textureRect</key>
<string>{{858,0},{616,36}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Frame_Number_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{199,111}</string>
<key>spriteSourceSize</key>
<string>{199,111}</string>
<key>textureRect</key>
<string>{{221,501},{199,111}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>BarB_Fill_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{601,21}</string>
<key>spriteSourceSize</key>
<string>{601,21}</string>
<key>textureRect</key>
<string>{{895,0},{601,21}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Icon_Minus_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{92,92}</string>
<key>spriteSourceSize</key>
<string>{92,92}</string>
<key>textureRect</key>
<string>{{723,831},{92,92}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Icon_Plus_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{92,92}</string>
<key>spriteSourceSize</key>
<string>{92,92}</string>
<key>textureRect</key>
<string>{{723,924},{92,92}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>BarB_Handle_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{85,85}</string>
<key>spriteSourceSize</key>
<string>{85,85}</string>
<key>textureRect</key>
<string>{{806,617},{85,85}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Btn_SoundOFF_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{86,78}</string>
<key>spriteSourceSize</key>
<string>{94,94}</string>
<key>textureRect</key>
<string>{{596,361},{86,78}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Btn_SoundON_01</key>
<dict>
<key>spriteOffset</key>
<string>{-1,0}</string>
<key>spriteSize</key>
<string>{83,78}</string>
<key>spriteSourceSize</key>
<string>{94,94}</string>
<key>textureRect</key>
<string>{{596,448},{83,78}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Btn_Rule_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{88,71}</string>
<key>spriteSourceSize</key>
<string>{94,94}</string>
<key>textureRect</key>
<string>{{705,288},{88,71}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Btn_Close_02</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{78,78}</string>
<key>spriteSourceSize</key>
<string>{94,94}</string>
<key>textureRect</key>
<string>{{806,703},{78,78}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Btn_Quit_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,1}</string>
<key>spriteSize</key>
<string>{78,77}</string>
<key>spriteSourceSize</key>
<string>{94,94}</string>
<key>textureRect</key>
<string>{{816,782},{78,77}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Btn_History_01</key>
<dict>
<key>spriteOffset</key>
<string>{1,0}</string>
<key>spriteSize</key>
<string>{77,77}</string>
<key>spriteSourceSize</key>
<string>{94,94}</string>
<key>textureRect</key>
<string>{{816,860},{77,77}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Btn_Paytable_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{76,76}</string>
<key>spriteSourceSize</key>
<string>{94,94}</string>
<key>textureRect</key>
<string>{{816,938},{76,76}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Divider_02</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{717,5}</string>
<key>spriteSourceSize</key>
<string>{717,5}</string>
<key>textureRect</key>
<string>{{0,1019},{717,5}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Icon_Menu_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{56,49}</string>
<key>spriteSourceSize</key>
<string>{56,49}</string>
<key>textureRect</key>
<string>{{806,543},{56,49}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Btn_Close_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{52,52}</string>
<key>spriteSourceSize</key>
<string>{52,52}</string>
<key>textureRect</key>
<string>{{793,0},{52,52}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>toast _Turbooff</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{34,42}</string>
<key>spriteSourceSize</key>
<string>{42,42}</string>
<key>textureRect</key>
<string>{{677,543},{34,42}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>toast _Turboon</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{32,42}</string>
<key>spriteSourceSize</key>
<string>{42,42}</string>
<key>textureRect</key>
<string>{{677,586},{32,42}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Divider_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{281,4}</string>
<key>spriteSourceSize</key>
<string>{281,4}</string>
<key>textureRect</key>
<string>{{846,0},{281,4}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Icon_Win_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{31,31}</string>
<key>spriteSourceSize</key>
<string>{31,31}</string>
<key>textureRect</key>
<string>{{885,703},{31,31}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Icon_Balance_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{27,27}</string>
<key>spriteSourceSize</key>
<string>{27,27}</string>
<key>textureRect</key>
<string>{{885,735},{27,27}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Icon_Bet_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{24,28}</string>
<key>spriteSourceSize</key>
<string>{24,28}</string>
<key>textureRect</key>
<string>{{892,617},{24,28}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Square_01</key>
<dict>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{10,10}</string>
<key>spriteSourceSize</key>
<string>{10,10}</string>
<key>textureRect</key>
<string>{{895,602},{10,10}}</string>
<key>textureRotated</key>
<false/>
</dict>
</dict>
<key>metadata</key>
<dict>
<key>format</key>
<integer>3</integer>
<key>pixelFormat</key>
<string>RGBA8888</string>
<key>premultiplyAlpha</key>
<false/>
<key>realTextureFileName</key>
<string>CommonUI_01.png</string>
<key>textureFileName</key>
<string>CommonUI_01.png</string>
<key>size</key>
<string>{916,1024}</string>
</dict>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

View File

@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "b1b99b4c-feb9-4332-862c-dc1eda23fd4c",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "b1b99b4c-feb9-4332-862c-dc1eda23fd4c@6c48a",
"displayName": "CommonUI_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "b1b99b4c-feb9-4332-862c-dc1eda23fd4c",
"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": "b1b99b4c-feb9-4332-862c-dc1eda23fd4c@f9941",
"displayName": "CommonUI_01",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 916,
"height": 1024,
"rawWidth": 916,
"rawHeight": 1024,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-458,
-512,
0,
458,
-512,
0,
-458,
512,
0,
458,
512,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
1024,
916,
1024,
0,
0,
916,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-458,
-512,
0
],
"maxPos": [
458,
512,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "b1b99b4c-feb9-4332-862c-dc1eda23fd4c@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "b1b99b4c-feb9-4332-862c-dc1eda23fd4c@6c48a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "31a15ac8-4248-4724-b78f-b1fcff0617c1",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "31a15ac8-4248-4724-b78f-b1fcff0617c1@6c48a",
"displayName": "IconDifficulty1",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "31a15ac8-4248-4724-b78f-b1fcff0617c1",
"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": "31a15ac8-4248-4724-b78f-b1fcff0617c1@f9941",
"displayName": "IconDifficulty1",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 70,
"height": 47,
"rawWidth": 70,
"rawHeight": 47,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-35,
-23.5,
0,
35,
-23.5,
0,
-35,
23.5,
0,
35,
23.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
47,
70,
47,
0,
0,
70,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-35,
-23.5,
0
],
"maxPos": [
35,
23.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "31a15ac8-4248-4724-b78f-b1fcff0617c1@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "31a15ac8-4248-4724-b78f-b1fcff0617c1@6c48a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "84253048-0179-445c-9ef4-8324a9b6a17c",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "84253048-0179-445c-9ef4-8324a9b6a17c@6c48a",
"displayName": "IconDifficulty2",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "84253048-0179-445c-9ef4-8324a9b6a17c",
"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": "84253048-0179-445c-9ef4-8324a9b6a17c@f9941",
"displayName": "IconDifficulty2",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 70,
"height": 47,
"rawWidth": 70,
"rawHeight": 47,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-35,
-23.5,
0,
35,
-23.5,
0,
-35,
23.5,
0,
35,
23.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
47,
70,
47,
0,
0,
70,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-35,
-23.5,
0
],
"maxPos": [
35,
23.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "84253048-0179-445c-9ef4-8324a9b6a17c@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "84253048-0179-445c-9ef4-8324a9b6a17c@6c48a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "5b575db7-d48c-4cec-8683-66b2ee63a4d1",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "5b575db7-d48c-4cec-8683-66b2ee63a4d1@6c48a",
"displayName": "IconDifficulty3",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "5b575db7-d48c-4cec-8683-66b2ee63a4d1",
"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": "5b575db7-d48c-4cec-8683-66b2ee63a4d1@f9941",
"displayName": "IconDifficulty3",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 70,
"height": 47,
"rawWidth": 70,
"rawHeight": 47,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-35,
-23.5,
0,
35,
-23.5,
0,
-35,
23.5,
0,
35,
23.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
47,
70,
47,
0,
0,
70,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-35,
-23.5,
0
],
"maxPos": [
35,
23.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "5b575db7-d48c-4cec-8683-66b2ee63a4d1@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "5b575db7-d48c-4cec-8683-66b2ee63a4d1@6c48a"
}
}

View File

@ -40,6 +40,14 @@ export class GameDataManager {
set canClickIconMsg(bol: boolean) { this._canClickIconMsg = bol; } set canClickIconMsg(bol: boolean) { this._canClickIconMsg = bol; }
get canClickIconMsg(): boolean { return this._canClickIconMsg; } get canClickIconMsg(): boolean { return this._canClickIconMsg; }
private _gamePending: string = null;
set gamePending(pending: string) { this._gamePending = pending; }
get gamePending(): string { return this._gamePending; }
private _chooseDiff: number = 1;
set chooseDiff(diff: number) { this._chooseDiff = diff; }
get chooseDiff(): number { return this._chooseDiff; }
// rankList de 结构 // rankList de 结构
// { // {