Compare commits
117 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a96ea74205 | |||
| f46b37ec39 | |||
| 33d60c77be | |||
| 38ea96f3c2 | |||
| 3bd903bf66 | |||
| f95d0be231 | |||
| 666120de80 | |||
| 2be3daa548 | |||
| 9034584856 | |||
| bb97bf57dd | |||
| 9109cb225e | |||
| fb72706ade | |||
| 79990a2ae8 | |||
| 034832d913 | |||
| 1b33734c39 | |||
| 80057d6957 | |||
| 21e7324b54 | |||
| 861865bc78 | |||
| 6e2c230b52 | |||
| 47e506ce41 | |||
| d0e95f15a3 | |||
| b437ac5cae | |||
| 7954f5ea43 | |||
| 4c32b9f6bd | |||
| dd333d4c59 | |||
| b05312de5f | |||
| 3ab56dca39 | |||
| 35fa919d8a | |||
| 04084da893 | |||
| 87e7307d0d | |||
| 6ea378001e | |||
| 9ad38a43b5 | |||
| 13bde0b065 | |||
| c0b0b26b6a | |||
| 9ce053f24e | |||
| 245629db0f | |||
| 816b16ee90 | |||
| 1e724360fd | |||
| 99ede74d03 | |||
| 037c0e8bdb | |||
| fa4c6036b7 | |||
| 5f2a879c46 | |||
| 45f7a03d48 | |||
| d8f70ea441 | |||
| 87b89c26e5 | |||
| 651d496e7e | |||
| d6eb489f91 | |||
| b7452276c6 | |||
| 3f493a1b03 | |||
| a3af4554f2 | |||
| 166a896c3e | |||
| 510bd4a1b9 | |||
| 1daffc9c3e | |||
| 6ea1408f2c | |||
| b6849b164c | |||
| 5b25f3b84b | |||
| 8a5991213e | |||
| bd986ec2b0 | |||
| a30636116b | |||
| a93b9c419a | |||
| 915622f6df | |||
| 9ebddd0267 | |||
| 5f380d78e9 | |||
| 3064eea720 | |||
| 63eb22ac04 | |||
| 850dcfd590 | |||
| 0aee3c1015 | |||
| 548a5cc5b0 | |||
| d7d29b7446 | |||
| fcea3dded4 | |||
| 5f7bb6c610 | |||
| 273273a10e | |||
| 04c603b294 | |||
| 061af3f7b1 | |||
| 5de21fe1e6 | |||
| d3207a0658 | |||
| 51633de04d | |||
| 7b7c812d43 | |||
| 4e8f5bd9a9 | |||
| 128b4e89a0 | |||
| 9d94fb4b72 | |||
| 6c9f4d7cb2 | |||
| 1dfe419d9f | |||
| 72436618c8 | |||
| 17f06b9682 | |||
| e22955be9a | |||
| c1d2d0f52a | |||
| 34190e9fea | |||
| b666f5272c | |||
| 26e40d8703 | |||
| 85cec2c085 | |||
| f466306084 | |||
| 4806cbd36a | |||
| 5a92faeeea | |||
| 0ab2bdb723 | |||
| c182f6656c | |||
| 32f2a53274 | |||
| 5ee7467d98 | |||
| a506f742cc | |||
| d3e998b287 | |||
| 4af1253369 | |||
| 9ca0d6cc1d | |||
| 0efd166fae | |||
| 8c73a82ba5 | |||
| dfc34caa37 | |||
| 50afec8afb | |||
| bb84af7753 | |||
| 940414a9ab | |||
| dce8428efd | |||
| 3484c23c93 | |||
| 7d70cd2527 | |||
| 81c8616f6f | |||
| c3b8f68602 | |||
| 5a21d3f8c9 | |||
| c3cdd2253f | |||
| 9078d4fc6d | |||
| 766d922617 |
35
.gitea/workflows/deploy.yaml
Normal file
@ -0,0 +1,35 @@
|
||||
name: Gitea Actions Demo
|
||||
on:
|
||||
push:
|
||||
tags: '*'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
working-directory: /Users/mac/rp_games/rp_11001
|
||||
|
||||
jobs:
|
||||
Explore-Gitea-Actions:
|
||||
runs-on: mac-local
|
||||
steps:
|
||||
- name: update code
|
||||
run: |
|
||||
pwd
|
||||
git pull
|
||||
echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
|
||||
- name: npm i
|
||||
run: |
|
||||
npm i
|
||||
- name: build
|
||||
run: |
|
||||
echo 'build'
|
||||
code=0
|
||||
/Applications/CocosCreator/Creator/3.8.5/CocosCreator.app/Contents/MacOS/CocosCreator --project ./ --build "configPath=./buildConfig_web-mobile.json;" || code=$?
|
||||
test $code -eq 36
|
||||
- name: image compression
|
||||
run: |
|
||||
compress-imgs.sh -root ./build/web-mobile/
|
||||
- name: upload
|
||||
run: |
|
||||
rsync -av --delete build/web-mobile/ zy@dou-dev:/data/rpgames-static/$(basename $PWD)
|
||||
|
||||
@ -2,11 +2,10 @@
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "b8b9e8c8-a0fe-4da6-8c6b-32f185520cd0",
|
||||
"uuid": "0c826003-fe58-4d0d-8099-9be2a0972aad",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"isBundle": true,
|
||||
"bundleName": "Game"
|
||||
"isBundle": true
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "8708b0ce-ac11-4c8e-bf47-f0b1e688aa54",
|
||||
"uuid": "6a75c968-9ddb-4414-bf8c-cf9fc361ec07",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "1d149d6f-0227-4ece-bf5f-9eec86d24025",
|
||||
"uuid": "20f9f4b6-7fc6-4001-89c6-a7240209ef73",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
26250
assets/Game/SlotRanking/prefab/SlotRanking.prefab
Normal file
@ -2,12 +2,12 @@
|
||||
"ver": "1.1.50",
|
||||
"importer": "prefab",
|
||||
"imported": true,
|
||||
"uuid": "18d912eb-1d34-4d47-a549-ea162e5b540c",
|
||||
"uuid": "93f49f19-92c8-468b-a67d-b423f3be55f9",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"syncNodeName": "NMAniNode"
|
||||
"syncNodeName": "SlotRanking"
|
||||
}
|
||||
}
|
||||
@ -2,12 +2,12 @@
|
||||
"ver": "1.1.50",
|
||||
"importer": "prefab",
|
||||
"imported": true,
|
||||
"uuid": "b4e13e9b-1ee9-4811-8216-79bd4eeec776",
|
||||
"uuid": "094530e3-a444-4ada-a1f2-7d2141da235a",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"syncNodeName": "Turbo"
|
||||
"syncNodeName": "rankListItem"
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.50",
|
||||
"importer": "prefab",
|
||||
"imported": true,
|
||||
"uuid": "c50538f5-db13-41ea-b02d-08299cdd9a88",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"syncNodeName": "rewardHistoryListItem"
|
||||
}
|
||||
}
|
||||
13
assets/Game/SlotRanking/prefab/rewardListItem.prefab.meta
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.50",
|
||||
"importer": "prefab",
|
||||
"imported": true,
|
||||
"uuid": "700a6f2a-7bac-4ea3-86c2-e14928df32f6",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"syncNodeName": "rewardListItem"
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.50",
|
||||
"importer": "prefab",
|
||||
"imported": true,
|
||||
"uuid": "5c602474-bb9a-4277-a9ce-94bb99541f3b",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"syncNodeName": "selfRewardListItem"
|
||||
}
|
||||
}
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "e2340f68-2f4c-4699-b2ce-b70a3cfbbcf9",
|
||||
"uuid": "b10e1441-d351-49bb-b841-fb290059572d",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
102
assets/Game/SlotRanking/scripts/Palette.ts
Normal file
@ -0,0 +1,102 @@
|
||||
import { _decorator, UIRenderer, Component, Color, clamp, director, Director, Sprite, Label } from 'cc';
|
||||
import { DEV, JSB } from 'cc/env';
|
||||
const { ccclass, property, executeInEditMode, requireComponent, menu } = _decorator;
|
||||
@ccclass
|
||||
@executeInEditMode
|
||||
@requireComponent(UIRenderer)
|
||||
@menu('Public/Palette')
|
||||
export class Palette extends Component {
|
||||
@property
|
||||
private _colorLB: Color = new Color(255, 255, 255, 255);
|
||||
@property({ displayName: DEV && '↙ 左下' })
|
||||
public get colorLB() { return this._colorLB };
|
||||
public set colorLB(value: Color) {
|
||||
this._colorLB = value;
|
||||
this.updateColor();
|
||||
}
|
||||
@property
|
||||
private _colorRB: Color = new Color(255, 255, 255, 255);
|
||||
@property({ displayName: DEV && '↘ 右下' })
|
||||
public get colorRB() { return this._colorRB };
|
||||
public set colorRB(value: Color) {
|
||||
this._colorRB = value;
|
||||
this.updateColor();
|
||||
}
|
||||
@property
|
||||
private _colorLT: Color = new Color(255, 255, 255, 255);
|
||||
@property({ displayName: DEV && '↖ 左上' })
|
||||
private get colorLT() { return this._colorLT };
|
||||
private set colorLT(value: Color) {
|
||||
this._colorLT = value;
|
||||
this.updateColor();
|
||||
}
|
||||
@property
|
||||
private _colorRT: Color = new Color(255, 255, 255, 255);
|
||||
@property({ displayName: DEV && '↗ 右上' })
|
||||
private get colorRT() { return this._colorRT };
|
||||
private set colorRT(value: Color) {
|
||||
this._colorRT = value;
|
||||
this.updateColor();
|
||||
}
|
||||
@property
|
||||
private _hueRatio: number = 1;
|
||||
@property({ range: [0, 1], step: 0.01, slide: true, displayName: '🌈 色相' })
|
||||
get hueRatio() { return this._hueRatio; }
|
||||
set hueRatio(val) {
|
||||
this._hueRatio = clamp(val, 0, 1);
|
||||
this.updateHueRatio();
|
||||
this.updateColor();
|
||||
}
|
||||
@property
|
||||
private _darkness: number = 1;
|
||||
@property({ range: [0, 1], step: 0.01, slide: true, displayName: '🌞 暗度' })
|
||||
get darkness() { return this._darkness; }
|
||||
set darkness(val) {
|
||||
this._darkness = clamp(val, 0, 1);
|
||||
this.updateColor();
|
||||
}
|
||||
private ur: UIRenderer = null;
|
||||
private hue: number[] = [1, 1, 1]; //色相分量
|
||||
protected onLoad() {
|
||||
this.ur = this.node.getComponent(UIRenderer);
|
||||
if (!(this.ur instanceof Sprite || this.ur instanceof Label)) {
|
||||
console.warn('Palette只对Sprite和Label有效!');
|
||||
this.destroy();
|
||||
return;
|
||||
}
|
||||
this.ur['_useVertexOpacity'] = true; //启用顶点透明度(否则透明度只受color.a影响)
|
||||
}
|
||||
protected onEnable() {
|
||||
this.updateHueRatio();
|
||||
director.once(Director.EVENT_AFTER_DRAW, this.updateColor, this);
|
||||
}
|
||||
protected onDisable() {
|
||||
if (!this.ur['_renderData']) return;
|
||||
let vb = this.ur['_renderData'].chunk.vb;
|
||||
let color = this.ur.color;
|
||||
vb[5] = vb[14] = vb[23] = vb[32] = color.r / 255;
|
||||
vb[6] = vb[15] = vb[24] = vb[33] = color.g / 255;
|
||||
vb[7] = vb[16] = vb[25] = vb[34] = color.b / 255;
|
||||
vb[8] = vb[17] = vb[26] = vb[35] = color.a / 255;
|
||||
}
|
||||
private updateColor() {
|
||||
let vb = this.ur['_renderData'].chunk.vb;
|
||||
let lb = this._colorLB, rb = this._colorRB, lt = this._colorLT, rt = this._colorRT;
|
||||
let d = this._darkness / 255, h = this.hue, r = h[0] * d, g = h[1] * d, b = h[2] * d;
|
||||
vb[5] = lb.r * r; vb[6] = lb.g * g; vb[7] = lb.b * b; vb[8] = lb.a / 255;
|
||||
vb[14] = rb.r * r; vb[15] = rb.g * g; vb[16] = rb.b * b; vb[17] = rb.a / 255;
|
||||
vb[23] = lt.r * r; vb[24] = lt.g * g; vb[25] = lt.b * b; vb[26] = lt.a / 255;
|
||||
vb[32] = rt.r * r; vb[33] = rt.g * g; vb[34] = rt.b * b; vb[35] = rt.a / 255;
|
||||
}
|
||||
private updateHueRatio(): void {
|
||||
const step = 1 / 7;
|
||||
let hueRatio = this._hueRatio;
|
||||
if (hueRatio < step) this.hue = [1, hueRatio / step, 0];
|
||||
else if (hueRatio < step * 2) this.hue = [2 - hueRatio / step, 1, 0];
|
||||
else if (hueRatio < step * 3) this.hue = [0, 1, hueRatio / step - 2];
|
||||
else if (hueRatio < step * 4) this.hue = [0, 4 - hueRatio / step, 1];
|
||||
else if (hueRatio < 5 * step) this.hue = [hueRatio / step - 4, 0, 1];
|
||||
else if (hueRatio < 6 * step) this.hue = [1, 0, 6 - hueRatio / step];
|
||||
else { this.hue = [1, hueRatio / step - 6, hueRatio / step - 6]; }
|
||||
}
|
||||
}
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "5fc10665-ee55-4ef7-bfeb-af6275bb1587",
|
||||
"uuid": "11aa7c13-7832-4d35-aae9-daf89262e33c",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
336
assets/Game/SlotRanking/scripts/RankHistoryList.ts
Normal file
@ -0,0 +1,336 @@
|
||||
import { _decorator, Color, Component, Label, Node, Tween, tween } from 'cc';
|
||||
import { VirtualScrollView } from './VScrollView';
|
||||
import { Palette } from './Palette';
|
||||
import { SlotRankingDataManager } from './SlotRankingDataManager';
|
||||
import { callGameApiForRank, getGameId, truncateString } from 'db://assets/Loading/scripts/comm';
|
||||
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('RankHistoryList')
|
||||
export class RankHistoryList extends Component {
|
||||
// ==================== 历史排行榜 ====================
|
||||
rankHistoryList: Node = null; // 历史排行榜节点
|
||||
rankHistoryLoadingNode: Node = null; // 历史记录加载节点
|
||||
|
||||
// 历史排行榜 - 翻页按钮
|
||||
rightBtn: Node = null; // 右箭头按钮(下一期)
|
||||
leftBtn: Node = null; // 左箭头按钮(上一期)
|
||||
|
||||
closeBtn: Node = null; // 关闭按钮
|
||||
|
||||
rankingHistoryListVScroll: VirtualScrollView = null; // 历史排行榜虚拟列表
|
||||
selfInfo: Node = null; // 自己的信息节点
|
||||
|
||||
// 历史排行榜 - 日周月切换
|
||||
rankHistoryRadioDWM: Node = null; // 历史记录日周月单选按钮父节点
|
||||
rankHistoryRadioDayBtn: Node = null; // 历史记录日榜单选按钮
|
||||
rankHistoryRadioWeekBtn: Node = null; // 历史记录周榜单选按钮
|
||||
rankHistoryRadioMonthBtn: Node = null; // 历史记录月榜单选按钮
|
||||
|
||||
// 活动未开启提示
|
||||
activityNotOpenTip: Node = null; // 活动未开启提示 label
|
||||
|
||||
currentHistoryType: string = '';
|
||||
historyIndex: number = 1; // 历史记录索引,1表示上一期,最大为10
|
||||
maxHistoryIndex: number = 10; // 最大历史记录数
|
||||
availableTypes: Set<string> = new Set(); // 可用的类型
|
||||
|
||||
// 回调函数
|
||||
onBack: () => void = null; // 返回到主列表
|
||||
|
||||
init(rankHistoryListNode: Node) {
|
||||
this.rankHistoryList = rankHistoryListNode;
|
||||
|
||||
let titleChange = this.rankHistoryList.getChildByName('titleChange');
|
||||
this.rightBtn = titleChange.getChildByName('rightBtn');
|
||||
this.leftBtn = titleChange.getChildByName('leftBtn');
|
||||
this.selfInfo = this.rankHistoryList.getChildByName('list').getChildByName('self');
|
||||
this.rankHistoryLoadingNode = this.rankHistoryList.getChildByName('list').getChildByName('loading');
|
||||
this.rankingHistoryListVScroll = this.rankHistoryList.getChildByName('list').getChildByName('vScroll').getComponent(VirtualScrollView);
|
||||
this.rankHistoryRadioDWM = this.rankHistoryList.getChildByName('rankHistoryRadioDWM');
|
||||
this.rankHistoryRadioDayBtn = this.rankHistoryRadioDWM.getChildByName('dayBtn');
|
||||
this.rankHistoryRadioWeekBtn = this.rankHistoryRadioDWM.getChildByName('weekBtn');
|
||||
this.rankHistoryRadioMonthBtn = this.rankHistoryRadioDWM.getChildByName('monthBtn');
|
||||
|
||||
this.activityNotOpenTip = this.rankHistoryList.getChildByName('list').getChildByName('activityNotOpenTip');
|
||||
|
||||
this.rankHistoryList.active = false;
|
||||
this.rankHistoryLoadingNode.active = false;
|
||||
this.activityNotOpenTip.active = false;
|
||||
this.closeBtn = this.rankHistoryList.getChildByName('closeHistory');
|
||||
|
||||
this.rightBtn.on(Node.EventType.TOUCH_END, this.onClickRightBtn, this);
|
||||
this.leftBtn.on(Node.EventType.TOUCH_END, this.onClickLeftBtn, this);
|
||||
this.closeBtn.on(Node.EventType.TOUCH_END, this.closeRankHistoryPopup, this);
|
||||
|
||||
this.rankHistoryRadioDayBtn.on(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioDayBtn, this);
|
||||
this.rankHistoryRadioWeekBtn.on(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioWeekBtn, this);
|
||||
this.rankHistoryRadioMonthBtn.on(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioMonthBtn, this);
|
||||
}
|
||||
|
||||
// ==================== 对外接口 ====================
|
||||
async show(type: string) {
|
||||
this.rankHistoryList.active = true;
|
||||
|
||||
this.updateAvailableTypes();
|
||||
|
||||
this.currentHistoryType = type;
|
||||
|
||||
this.historyIndex = 1;
|
||||
|
||||
this.updateHistoryArrows();
|
||||
this.refreshSelfRankingInfo(null);
|
||||
await this.loadHistoryData(this.currentHistoryType, this.historyIndex);
|
||||
}
|
||||
|
||||
updateAvailableTypes() {
|
||||
let rankList = SlotRankingDataManager.instance.rankList;
|
||||
this.availableTypes.clear();
|
||||
if (rankList && rankList.List) {
|
||||
for (let item of rankList.List) {
|
||||
this.availableTypes.add(item.Type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
isTypeAvailable(type: string): boolean {
|
||||
return this.availableTypes.has(type);
|
||||
}
|
||||
|
||||
showActivityNotOpenTip() {
|
||||
this.activityNotOpenTip.active = true;
|
||||
this.rankingHistoryListVScroll.setTotalCount(0);
|
||||
}
|
||||
|
||||
hideActivityNotOpenTip() {
|
||||
this.activityNotOpenTip.active = false;
|
||||
}
|
||||
|
||||
hide() {
|
||||
this.rankHistoryList.active = false;
|
||||
}
|
||||
|
||||
// ==================== 历史记录逻辑 ====================
|
||||
async loadHistoryData(type: string, index: number) {
|
||||
this.setRankHistoryRadioBtn(type);
|
||||
this.refreshSelfRankingInfo(null);
|
||||
if (!this.isTypeAvailable(type)) {
|
||||
console.log(`${type} 历史榜单活动未开启`);
|
||||
this.rankHistoryLoadingNode.active = false;
|
||||
this.showActivityNotOpenTip();
|
||||
return;
|
||||
}
|
||||
|
||||
this.hideActivityNotOpenTip();
|
||||
|
||||
this.rankingHistoryListVScroll.setTotalCount(0);
|
||||
|
||||
Tween.stopAllByTarget(this.rankHistoryLoadingNode);
|
||||
this.rankHistoryLoadingNode.active = true;
|
||||
tween(this.rankHistoryLoadingNode)
|
||||
.by(0.3, { angle: 360 })
|
||||
.repeatForever()
|
||||
.start();
|
||||
|
||||
let historyDate = this.getHistoryDate(type, index);
|
||||
|
||||
let data = {
|
||||
Type: type,
|
||||
GameId: getGameId(),
|
||||
Date: historyDate,
|
||||
}
|
||||
|
||||
try {
|
||||
let rankInfos = await callGameApiForRank('getRankInfos', data);
|
||||
|
||||
Tween.stopAllByTarget(this.rankHistoryLoadingNode);
|
||||
this.rankHistoryLoadingNode.active = false;
|
||||
|
||||
this.openRankHistoryPopup(rankInfos);
|
||||
this.refreshSelfRankingInfo(rankInfos.Self);
|
||||
} catch (error) {
|
||||
console.error('获取历史排行榜数据失败:', error);
|
||||
|
||||
Tween.stopAllByTarget(this.rankHistoryLoadingNode);
|
||||
this.rankHistoryLoadingNode.active = false;
|
||||
}
|
||||
}
|
||||
|
||||
refreshSelfRankingInfo(selfInfo: any) {
|
||||
if (!selfInfo) {
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_1').active = false;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_2').active = false;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_3').active = false;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = true;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = '-';
|
||||
this.selfInfo.getChildByName('Uid').getComponent(Label).string = '-';
|
||||
this.selfInfo.getChildByName('Shop').getComponent(Label).string = '-';
|
||||
this.selfInfo.getChildByName('Win').getComponent(Label).string = '-';
|
||||
return;
|
||||
}
|
||||
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_1').active = selfInfo.Rank === 1;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_2').active = selfInfo.Rank === 2;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_3').active = selfInfo.Rank === 3;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = selfInfo.Rank >= 4;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = selfInfo.Rank.toString();
|
||||
if (selfInfo.Rank === -1) {
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = true;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = '-';
|
||||
}
|
||||
this.selfInfo.getChildByName('Uid').getComponent(Label).string = truncateString(selfInfo.Uid);
|
||||
this.selfInfo.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
|
||||
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Bet.toString();
|
||||
}
|
||||
|
||||
getHistoryDate(type: string, index: number): string {
|
||||
let now = new Date();
|
||||
let date = new Date(now);
|
||||
|
||||
if (type === 'day') {
|
||||
date.setDate(date.getDate() - index);
|
||||
} else if (type === 'week') {
|
||||
date.setDate(date.getDate() - index * 7);
|
||||
} else if (type === 'month') {
|
||||
date.setMonth(date.getMonth() - index);
|
||||
}
|
||||
|
||||
let year = date.getFullYear();
|
||||
let month = (date.getMonth() + 1).toString();
|
||||
let day = date.getDate().toString();
|
||||
if (month.length < 2) month = '0' + month;
|
||||
if (day.length < 2) day = '0' + day;
|
||||
return `${year}${month}${day}`;
|
||||
}
|
||||
|
||||
updateHistoryArrows() {
|
||||
this.rightBtn.active = this.historyIndex > 1;
|
||||
this.leftBtn.active = this.historyIndex < this.maxHistoryIndex;
|
||||
}
|
||||
|
||||
openRankHistoryPopup(rankInfos: any) {
|
||||
this.rankingHistoryListVScroll.setTotalCount(rankInfos.List.length);
|
||||
this.rankingHistoryListVScroll.renderItemFn = (node: Node, idx: number) => {
|
||||
let itemData = rankInfos.List[idx];
|
||||
if (!itemData) {
|
||||
return;
|
||||
}
|
||||
node.getChildByName('bg').active = idx % 2 === 0;
|
||||
node.getChildByName('bg2').active = idx % 2 !== 0;
|
||||
node.getChildByName('Rank').getChildByName('sp_1').active = idx === 0;
|
||||
node.getChildByName('Rank').getChildByName('sp_2').active = idx === 1;
|
||||
node.getChildByName('Rank').getChildByName('sp_3').active = idx === 2;
|
||||
node.getChildByName('Rank').getChildByName('rankLab').active = idx >= 3;
|
||||
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = (idx + 1).toString();
|
||||
node.getChildByName('Uid').getComponent(Label).string = truncateString(itemData.Uid);
|
||||
node.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
|
||||
node.getChildByName('Win').getComponent(Label).string = itemData.Bet.toString();
|
||||
}
|
||||
|
||||
this.rankingHistoryListVScroll.refreshList(rankInfos.List);
|
||||
}
|
||||
|
||||
// ==================== 按钮状态管理 ====================
|
||||
setRankHistoryRadioBtn(type: string) {
|
||||
let selectedColor = new Color(219, 180, 180, 255);
|
||||
let unselectedColor = new Color(197, 255, 175, 255);
|
||||
|
||||
this.setRadioBtnState(this.rankHistoryRadioDayBtn, type === 'day', selectedColor, unselectedColor);
|
||||
this.setRadioBtnState(this.rankHistoryRadioWeekBtn, type === 'week', selectedColor, unselectedColor);
|
||||
this.setRadioBtnState(this.rankHistoryRadioMonthBtn, type === 'month', selectedColor, unselectedColor);
|
||||
}
|
||||
|
||||
setRadioBtnState(btn: Node, isSelected: boolean, selectedColor: Color, unselectedColor: Color) {
|
||||
let check = btn.getChildByName('check');
|
||||
let unCheck = btn.getChildByName('unCheck');
|
||||
let label = btn.getChildByName('label');
|
||||
let palette = label?.getComponent(Palette);
|
||||
|
||||
if (isSelected) {
|
||||
check.active = true;
|
||||
unCheck.active = false;
|
||||
if (palette) {
|
||||
palette.colorLB = selectedColor;
|
||||
palette.colorRB = selectedColor;
|
||||
}
|
||||
} else {
|
||||
check.active = false;
|
||||
unCheck.active = true;
|
||||
if (palette) {
|
||||
palette.colorLB = unselectedColor;
|
||||
palette.colorRB = unselectedColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 按钮事件 ====================
|
||||
async onClickLeftBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
if (this.historyIndex >= this.maxHistoryIndex) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.historyIndex++;
|
||||
this.updateHistoryArrows();
|
||||
await this.loadHistoryData(this.currentHistoryType, this.historyIndex);
|
||||
}
|
||||
|
||||
async onClickRightBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
if (this.historyIndex <= 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.historyIndex--;
|
||||
this.updateHistoryArrows();
|
||||
await this.loadHistoryData(this.currentHistoryType, this.historyIndex);
|
||||
}
|
||||
|
||||
async onClickRankHistoryRadioDayBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
if (this.currentHistoryType === 'day') {
|
||||
return;
|
||||
}
|
||||
this.currentHistoryType = 'day';
|
||||
this.historyIndex = 1;
|
||||
this.updateHistoryArrows();
|
||||
await this.loadHistoryData('day', this.historyIndex);
|
||||
}
|
||||
|
||||
async onClickRankHistoryRadioWeekBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
if (this.currentHistoryType === 'week') {
|
||||
return;
|
||||
}
|
||||
this.currentHistoryType = 'week';
|
||||
this.historyIndex = 1;
|
||||
this.updateHistoryArrows();
|
||||
await this.loadHistoryData('week', this.historyIndex);
|
||||
}
|
||||
|
||||
async onClickRankHistoryRadioMonthBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
if (this.currentHistoryType === 'month') {
|
||||
return;
|
||||
}
|
||||
this.currentHistoryType = 'month';
|
||||
this.historyIndex = 1;
|
||||
this.updateHistoryArrows();
|
||||
await this.loadHistoryData('month', this.historyIndex);
|
||||
}
|
||||
|
||||
closeRankHistoryPopup() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.onBack?.call(null);
|
||||
}
|
||||
|
||||
onDestroy() {
|
||||
this.rightBtn.off(Node.EventType.TOUCH_END, this.onClickRightBtn, this);
|
||||
this.leftBtn.off(Node.EventType.TOUCH_END, this.onClickLeftBtn, this);
|
||||
this.rankHistoryRadioDayBtn.off(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioDayBtn, this);
|
||||
this.rankHistoryRadioWeekBtn.off(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioWeekBtn, this);
|
||||
this.rankHistoryRadioMonthBtn.off(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioMonthBtn, this);
|
||||
this.closeBtn.off(Node.EventType.TOUCH_END, this.closeRankHistoryPopup, this);
|
||||
}
|
||||
}
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "a07dd3af-4f42-4bfa-bc2d-9ed7ed2f8553",
|
||||
"uuid": "29c8497d-e5f2-42c9-8c58-ce06ee470ef8",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
518
assets/Game/SlotRanking/scripts/RankList.ts
Normal file
@ -0,0 +1,518 @@
|
||||
import { _decorator, Button, Color, Component, Label, Node, Sprite, Tween, tween, UITransform, v3, Vec2 } from 'cc';
|
||||
import { VirtualScrollView } from './VScrollView';
|
||||
import { Palette } from './Palette';
|
||||
import { SlotRankingDataManager } from './SlotRankingDataManager';
|
||||
import { callGameApiForRank, getGameId, truncateString } from 'db://assets/Loading/scripts/comm';
|
||||
import { I18nManager } from 'db://assets/Loading/scripts/manager/I18nManager';
|
||||
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('RankList')
|
||||
export class RankList extends Component {
|
||||
// ==================== 当前排行榜 ====================
|
||||
msg_1: Node = null // 跑马灯信息
|
||||
currentMarqueeIndex: number = 0; // 当前跑马灯文本索引
|
||||
marqueeTexts: string[] = []; // 跑马灯文本数组
|
||||
rankList: Node = null; // 当前排行榜节点
|
||||
rankingEndTime: Node = null; // 排行榜结束时间节点
|
||||
rankLoadingNode: Node = null; // 加载动画节点
|
||||
rankingListVScroll: VirtualScrollView = null; // 排行榜虚拟列表
|
||||
selfInfo: Node = null; // 自己的信息节点
|
||||
|
||||
// 当前排行榜 - 日周月切换
|
||||
rankRadioDWM: Node = null; // 日周月单选按钮父节点
|
||||
rankRadioDayBtn: Node = null; // 日榜单选按钮
|
||||
rankRadioWeekBtn: Node = null; // 周榜单选按钮
|
||||
rankRadioMonthBtn: Node = null; // 月榜单选按钮
|
||||
|
||||
rankingHistoryBtn: Node = null; // 历史记录按钮
|
||||
rankingRewardBtn: Node = null; // 奖励按钮
|
||||
|
||||
// 活动未开启提示
|
||||
activityNotOpenTip: Node = null; // 活动未开启提示 label
|
||||
|
||||
currentRankType: string = '';
|
||||
countdownTimer: any = null; // 存储定时器
|
||||
availableTypes: Set<string> = new Set(); // 可用的类型
|
||||
|
||||
// 回调函数
|
||||
onShowHistory: (type: string) => void = null; // 跳转到历史记录
|
||||
onShowReward: (type: string) => void = null; // 跳转到奖励列表
|
||||
onClose: () => void = null; // 关闭主弹窗
|
||||
|
||||
init(rankListNode: Node) {
|
||||
this.rankList = rankListNode;
|
||||
|
||||
this.msg_1 = this.rankList.getChildByName('msg').getChildByName('Mask').getChildByName('msg_1');
|
||||
this.rankLoadingNode = this.rankList.getChildByName('list').getChildByName('loading');
|
||||
this.rankingEndTime = this.rankList.getChildByName('endTime');
|
||||
this.rankingListVScroll = this.rankList.getChildByName('list').getChildByName('vScroll').getComponent(VirtualScrollView);
|
||||
this.selfInfo = this.rankList.getChildByName('list').getChildByName('self');
|
||||
this.rankRadioDWM = this.rankList.getChildByName('rankRadioDWM');
|
||||
this.rankRadioDayBtn = this.rankRadioDWM.getChildByName('dayBtn');
|
||||
this.rankRadioWeekBtn = this.rankRadioDWM.getChildByName('weekBtn');
|
||||
this.rankRadioMonthBtn = this.rankRadioDWM.getChildByName('monthBtn');
|
||||
|
||||
this.rankingHistoryBtn = this.rankList.getChildByName('history');
|
||||
let radioTitle = this.rankList.getChildByName('radioTitle');
|
||||
this.rankingRewardBtn = radioTitle.getChildByName('rewardBtn');
|
||||
|
||||
this.activityNotOpenTip = this.rankList.getChildByName('list').getChildByName('activityNotOpenTip');
|
||||
|
||||
this.rankList.active = false;
|
||||
this.rankLoadingNode.active = false;
|
||||
this.activityNotOpenTip.active = false;
|
||||
|
||||
this.rankingHistoryBtn.on(Node.EventType.TOUCH_END, this.onClickRankHistoryBtn, this);
|
||||
this.rankingRewardBtn.on(Node.EventType.TOUCH_END, this.onClickRewardBtn, this);
|
||||
|
||||
this.rankRadioDayBtn.on(Node.EventType.TOUCH_END, this.onClickRankRadioDayBtn, this);
|
||||
this.rankRadioWeekBtn.on(Node.EventType.TOUCH_END, this.onClickRankRadioWeekBtn, this);
|
||||
this.rankRadioMonthBtn.on(Node.EventType.TOUCH_END, this.onClickRankRadioMonthBtn, this);
|
||||
}
|
||||
|
||||
// ==================== 对外接口 ====================
|
||||
async show(defaultType: string = 'day') {
|
||||
this.rankList.active = true;
|
||||
this.currentRankType = '';
|
||||
this.updateRankButtonsAvailability();
|
||||
this.refreshSelfRankingInfo(null);
|
||||
await this.switchRankTab(defaultType);
|
||||
}
|
||||
|
||||
hide() {
|
||||
this.rankList.active = false;
|
||||
if (this.countdownTimer) {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
}
|
||||
// 停止跑马灯
|
||||
if (this.msg_1 && this.msg_1.isValid) {
|
||||
Tween.stopAllByTarget(this.msg_1);
|
||||
this.msg_1.active = false;
|
||||
}
|
||||
this.marqueeTexts = [];
|
||||
this.currentMarqueeIndex = 0;
|
||||
}
|
||||
|
||||
getCurrentType(): string {
|
||||
return this.currentRankType;
|
||||
}
|
||||
|
||||
// ==================== 排行榜逻辑 ====================
|
||||
isTypeAvailable(type: string): boolean {
|
||||
return this.availableTypes.has(type);
|
||||
}
|
||||
|
||||
showActivityNotOpenTip() {
|
||||
this.activityNotOpenTip.active = true;
|
||||
this.rankingListVScroll.setTotalCount(0);
|
||||
this.rankingEndTime.getComponent(Label).string = "--:--:--";
|
||||
}
|
||||
|
||||
hideActivityNotOpenTip() {
|
||||
this.activityNotOpenTip.active = false;
|
||||
}
|
||||
|
||||
async switchRankTab(type: string) {
|
||||
if (this.currentRankType === type) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.currentRankType = type;
|
||||
|
||||
this.setRankRadioBtn(type);
|
||||
this.refreshSelfRankingInfo(null);
|
||||
if (!this.isTypeAvailable(type)) {
|
||||
console.log(`${type} 榜单活动未开启`);
|
||||
this.rankLoadingNode.active = false;
|
||||
if (this.msg_1 && this.msg_1.isValid) {
|
||||
this.msg_1.active = false;
|
||||
}
|
||||
this.marqueeTexts = [];
|
||||
this.currentMarqueeIndex = 0;
|
||||
this.showActivityNotOpenTip();
|
||||
if (this.countdownTimer) {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
this.hideActivityNotOpenTip();
|
||||
|
||||
this.rankingListVScroll.setTotalCount(0);
|
||||
|
||||
Tween.stopAllByTarget(this.rankLoadingNode);
|
||||
this.rankLoadingNode.active = true;
|
||||
tween(this.rankLoadingNode)
|
||||
.by(0.3, { angle: 360 })
|
||||
.repeatForever()
|
||||
.start();
|
||||
|
||||
|
||||
|
||||
let currentRankInfo = SlotRankingDataManager.instance.getRankInfoByType(type);
|
||||
|
||||
|
||||
if (this.msg_1 && this.msg_1.isValid) {
|
||||
Tween.stopAllByTarget(this.msg_1);
|
||||
}
|
||||
|
||||
|
||||
this.setupMarquee(currentRankInfo);
|
||||
|
||||
this.setRankingEndTime(type);
|
||||
|
||||
let data = {
|
||||
Type: type,
|
||||
GameId: getGameId(),
|
||||
Date: this.getCurrentDateString(),
|
||||
}
|
||||
|
||||
try {
|
||||
let rankInfos = await callGameApiForRank('getRankInfos', data);
|
||||
|
||||
Tween.stopAllByTarget(this.rankLoadingNode);
|
||||
this.rankLoadingNode.active = false;
|
||||
|
||||
this.openRankingPopup(rankInfos);
|
||||
} catch (error) {
|
||||
console.error('获取排行榜数据失败:', error);
|
||||
this.showActivityNotOpenTip();
|
||||
Tween.stopAllByTarget(this.rankLoadingNode);
|
||||
if (this.countdownTimer) {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
}
|
||||
this.rankingEndTime.getComponent(Label).string = "--:--:--";
|
||||
this.rankLoadingNode.active = false;
|
||||
// 停止跑马灯
|
||||
if (this.msg_1 && this.msg_1.isValid) {
|
||||
Tween.stopAllByTarget(this.msg_1);
|
||||
this.msg_1.active = false;
|
||||
}
|
||||
this.marqueeTexts = [];
|
||||
this.currentMarqueeIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 跑马灯逻辑 ====================
|
||||
setupMarquee(currentRankInfo: any) {
|
||||
if (!this.msg_1 || !this.msg_1.isValid) return;
|
||||
|
||||
// 获取活动数据
|
||||
let rewardsCount = currentRankInfo.Rewards?.length || 0;
|
||||
let spinLimit = currentRankInfo.SpinLimit || 0;
|
||||
let betLimit = currentRankInfo.BetLimit || 0;
|
||||
|
||||
// 获取翻译文本并替换XX
|
||||
let text1 = I18nManager.instance.t('During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!');
|
||||
let text2 = I18nManager.instance.t('Accumulate XX bets or a total wager of XX to participate in the event');
|
||||
|
||||
// 替换第一段文本中的XX为Rewards的length
|
||||
text1 = text1.replace('XX', rewardsCount.toString());
|
||||
|
||||
// 替换第二段文本中的两个XX(SpinLimit和BetLimit)
|
||||
text2 = text2.replace(/XX/, spinLimit.toString()).replace(/XX/, (betLimit / 10000).toString());
|
||||
|
||||
// 保存两段文本
|
||||
this.marqueeTexts = [text1, text2];
|
||||
this.currentMarqueeIndex = 0;
|
||||
|
||||
// 显示跑马灯并播放第一段文本
|
||||
this.msg_1.active = true;
|
||||
this.playMarquee();
|
||||
}
|
||||
|
||||
playMarquee() {
|
||||
if (!this.msg_1 || !this.msg_1.isValid || this.marqueeTexts.length === 0) return;
|
||||
|
||||
let labelComp = this.msg_1.getComponent(Label);
|
||||
if (!labelComp) return;
|
||||
|
||||
// 获取当前要显示的文本
|
||||
let currentText = this.marqueeTexts[this.currentMarqueeIndex];
|
||||
|
||||
// 确保Label的overflow设置为NONE,以便完整显示文本
|
||||
labelComp.overflow = Label.Overflow.NONE;
|
||||
labelComp.string = currentText;
|
||||
|
||||
// 强制更新Label的渲染数据,确保宽度正确计算
|
||||
labelComp.updateRenderData(true);
|
||||
|
||||
// 等待下一帧更新UITransform
|
||||
this.scheduleOnce(() => {
|
||||
if (!this.msg_1 || !this.msg_1.isValid) return;
|
||||
|
||||
// 再次强制更新以确保宽度准确
|
||||
labelComp.updateRenderData(true);
|
||||
let labelLength = labelComp.node.getComponent(UITransform).width;
|
||||
let maskLength = this.msg_1.parent.getComponent(UITransform).width
|
||||
|
||||
// 设置初始位置
|
||||
let endX = 0
|
||||
let duration = 0
|
||||
|
||||
if (labelLength <= maskLength) {
|
||||
labelComp.node.getComponent(UITransform).setAnchorPoint(new Vec2(0.5, 0.5))
|
||||
this.msg_1.setPosition(0, this.msg_1.position.y, this.msg_1.position.z);
|
||||
endX = - maskLength / 2 - labelLength / 2 - 30
|
||||
duration = Math.max(3, labelLength / 80);
|
||||
} else {
|
||||
labelComp.node.getComponent(UITransform).setAnchorPoint(new Vec2(0, 0.5))
|
||||
this.msg_1.setPosition(- maskLength / 2, this.msg_1.position.y, this.msg_1.position.z);
|
||||
endX = - maskLength / 2 - labelLength - 30
|
||||
duration = Math.max(3, (- maskLength / 2 + labelLength) / 80);
|
||||
|
||||
}
|
||||
|
||||
// 启动跑马灯动画
|
||||
Tween.stopAllByTarget(this.msg_1);
|
||||
tween(this.msg_1)
|
||||
.delay(1)
|
||||
.to(duration, { position: v3(endX, this.msg_1.position.y, this.msg_1.position.z) })
|
||||
.call(() => {
|
||||
// 切换到下一段文本
|
||||
this.currentMarqueeIndex = (this.currentMarqueeIndex + 1) % this.marqueeTexts.length;
|
||||
// 播放下一段文本
|
||||
this.playMarquee();
|
||||
})
|
||||
.start();
|
||||
}, 0);
|
||||
}
|
||||
|
||||
// ==================== 排行榜列表逻辑 ====================
|
||||
openRankingPopup(rankInfos: any) {
|
||||
this.rankingListVScroll.setTotalCount(rankInfos.List.length);
|
||||
this.rankingListVScroll.renderItemFn = (node: Node, idx: number) => {
|
||||
let itemData = rankInfos.List[idx];
|
||||
if (!itemData) {
|
||||
return;
|
||||
}
|
||||
node.getChildByName('bg').active = idx % 2 === 0;
|
||||
node.getChildByName('bg2').active = idx % 2 !== 0;
|
||||
node.getChildByName('Rank').getChildByName('sp_1').active = idx === 0;
|
||||
node.getChildByName('Rank').getChildByName('sp_2').active = idx === 1;
|
||||
node.getChildByName('Rank').getChildByName('sp_3').active = idx === 2;
|
||||
node.getChildByName('Rank').getChildByName('rankLab').active = idx >= 3;
|
||||
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = itemData.Rank.toString();
|
||||
node.getChildByName('Uid').getComponent(Label).string = truncateString(itemData.Uid);
|
||||
node.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
|
||||
node.getChildByName('Win').getComponent(Label).string = itemData.Bet.toString();
|
||||
}
|
||||
|
||||
this.rankingListVScroll.refreshList(rankInfos.List);
|
||||
this.refreshSelfRankingInfo(rankInfos.Self);
|
||||
}
|
||||
|
||||
refreshSelfRankingInfo(selfInfo: any) {
|
||||
if (!selfInfo) {
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_1').active = false;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_2').active = false;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_3').active = false;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = true;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = '-';
|
||||
this.selfInfo.getChildByName('Uid').getComponent(Label).string = '-';
|
||||
this.selfInfo.getChildByName('Shop').getComponent(Label).string = '-';
|
||||
this.selfInfo.getChildByName('Win').getComponent(Label).string = '-';
|
||||
return;
|
||||
}
|
||||
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_1').active = selfInfo.Rank === 1;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_2').active = selfInfo.Rank === 2;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('sp_3').active = selfInfo.Rank === 3;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = selfInfo.Rank >= 4;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = selfInfo.Rank.toString();
|
||||
if (selfInfo.Rank === -1) {
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = true;
|
||||
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = '-';
|
||||
}
|
||||
this.selfInfo.getChildByName('Uid').getComponent(Label).string = truncateString(selfInfo.Uid);
|
||||
this.selfInfo.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
|
||||
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Bet.toString();
|
||||
}
|
||||
|
||||
// ==================== 按钮状态管理 ====================
|
||||
updateRankButtonsAvailability() {
|
||||
let rankList = SlotRankingDataManager.instance.rankList;
|
||||
|
||||
this.availableTypes.clear();
|
||||
if (rankList && rankList.List) {
|
||||
for (let item of rankList.List) {
|
||||
this.availableTypes.add(item.Type);
|
||||
}
|
||||
}
|
||||
|
||||
this.updateButtonAvailability(this.rankRadioDayBtn);
|
||||
this.updateButtonAvailability(this.rankRadioWeekBtn);
|
||||
this.updateButtonAvailability(this.rankRadioMonthBtn);
|
||||
}
|
||||
|
||||
updateButtonAvailability(btn: Node) {
|
||||
btn.active = true;
|
||||
|
||||
let button = btn.getComponent(Button);
|
||||
if (button) {
|
||||
button.interactable = true;
|
||||
}
|
||||
|
||||
let check = btn.getChildByName('check');
|
||||
let unCheck = btn.getChildByName('unCheck');
|
||||
let whiteColor = Color.WHITE;
|
||||
|
||||
if (check) {
|
||||
let checkSprite = check.getComponent(Sprite);
|
||||
if (checkSprite) {
|
||||
checkSprite.color = whiteColor;
|
||||
}
|
||||
}
|
||||
|
||||
if (unCheck) {
|
||||
let unCheckSprite = unCheck.getComponent(Sprite);
|
||||
if (unCheckSprite) {
|
||||
unCheckSprite.color = whiteColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setRankRadioBtn(type: string) {
|
||||
let selectedColor = new Color(219, 180, 180, 255);
|
||||
let unselectedColor = new Color(197, 255, 175, 255);
|
||||
|
||||
this.setRadioBtnState(this.rankRadioDayBtn, type === 'day', selectedColor, unselectedColor);
|
||||
this.setRadioBtnState(this.rankRadioWeekBtn, type === 'week', selectedColor, unselectedColor);
|
||||
this.setRadioBtnState(this.rankRadioMonthBtn, type === 'month', selectedColor, unselectedColor);
|
||||
}
|
||||
|
||||
setRadioBtnState(btn: Node, isSelected: boolean, selectedColor: Color, unselectedColor: Color) {
|
||||
let check = btn.getChildByName('check');
|
||||
let unCheck = btn.getChildByName('unCheck');
|
||||
let label = btn.getChildByName('label');
|
||||
let palette = label?.getComponent(Palette);
|
||||
|
||||
if (isSelected) {
|
||||
check.active = true;
|
||||
unCheck.active = false;
|
||||
if (palette) {
|
||||
palette.colorLB = selectedColor;
|
||||
palette.colorRB = selectedColor;
|
||||
}
|
||||
} else {
|
||||
check.active = false;
|
||||
unCheck.active = true;
|
||||
if (palette) {
|
||||
palette.colorLB = unselectedColor;
|
||||
palette.colorRB = unselectedColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 倒计时功能 ====================
|
||||
setRankingEndTime(type: string) {
|
||||
if (this.countdownTimer) {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
}
|
||||
|
||||
let endTime = SlotRankingDataManager.instance.getRankEndTimeByType(type);
|
||||
if (!endTime) {
|
||||
this.rankingEndTime.getComponent(Label).string = "--:--:--";
|
||||
return;
|
||||
}
|
||||
|
||||
this.updateCountdown(endTime);
|
||||
|
||||
this.countdownTimer = setInterval(() => {
|
||||
this.updateCountdown(endTime);
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
// 1. 客户端可定时通过HTTP请求轮询服务器,定期拉取活动状态或结束时间(如每分钟或每次切换排行榜时),如果发现状态变为停止,则立即处理。
|
||||
// 2. 在每次需要用到活动信息前(如展示排行榜、下注等),都重新请求活动状态信息,避免缓存已过期的信息。
|
||||
// 3. 可以在服务器接口响应中增加“活动状态”字段,每次请求都返回当前的活动状态(如active、stopped),客户端据此判定。
|
||||
// 4. 如有WebSocket等实时通道,可让服务器主动推送“活动已结束”通知,客户端收到后立刻更新活动状态并做相应提示。
|
||||
// 5. 若客户端检测到接口数据异常(如活动相关接口返回错误代码、空列表或特定标记等),也可判定活动可能已停止并刷新状态。
|
||||
|
||||
updateCountdown(endTime: number) {
|
||||
let now = Math.floor(Date.now() / 1000);
|
||||
let remainingSeconds = endTime - now;
|
||||
|
||||
if (remainingSeconds <= 0) {
|
||||
this.rankingEndTime.getComponent(Label).string = "--:--:--";
|
||||
if (this.countdownTimer) {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
let timeStr = this.formatCountdown(remainingSeconds);
|
||||
this.rankingEndTime.getComponent(Label).string = I18nManager.instance.t('Countdown to end') + ' : ' + timeStr;
|
||||
}
|
||||
|
||||
formatCountdown(seconds: number): string {
|
||||
let days = Math.floor(seconds / 86400);
|
||||
let hours = Math.floor((seconds % 86400) / 3600);
|
||||
let minutes = Math.floor((seconds % 3600) / 60);
|
||||
let secs = seconds % 60;
|
||||
|
||||
if (days >= 1) {
|
||||
return `${days}d ${hours}h ${minutes}min ${secs}s`;
|
||||
} else {
|
||||
return `${hours}h ${minutes}min ${secs}s`;
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 按钮事件 ====================
|
||||
onClickRankRadioDayBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.switchRankTab('day');
|
||||
}
|
||||
|
||||
onClickRankRadioWeekBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.switchRankTab('week');
|
||||
}
|
||||
|
||||
onClickRankRadioMonthBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.switchRankTab('month');
|
||||
}
|
||||
|
||||
onClickRankHistoryBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.onShowHistory?.call(null, this.currentRankType || 'day');
|
||||
}
|
||||
|
||||
onClickRewardBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.onShowReward?.call(null, this.currentRankType || 'day');
|
||||
}
|
||||
|
||||
closeRankingPopup() {
|
||||
this.onClose?.call(null);
|
||||
}
|
||||
|
||||
// ==================== 工具方法 ====================
|
||||
getCurrentDateString(): string {
|
||||
let now = new Date();
|
||||
let year = now.getFullYear();
|
||||
let month = (now.getMonth() + 1).toString();
|
||||
let day = now.getDate().toString();
|
||||
if (month.length < 2) month = '0' + month;
|
||||
if (day.length < 2) day = '0' + day;
|
||||
return `${year}${month}${day}`;
|
||||
}
|
||||
|
||||
onDestroy() {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
this.rankingHistoryBtn.off(Node.EventType.TOUCH_END, this.onClickRankHistoryBtn, this);
|
||||
this.rankingRewardBtn.off(Node.EventType.TOUCH_END, this.onClickRewardBtn, this);
|
||||
this.rankRadioDayBtn.off(Node.EventType.TOUCH_END, this.onClickRankRadioDayBtn, this);
|
||||
this.rankRadioWeekBtn.off(Node.EventType.TOUCH_END, this.onClickRankRadioWeekBtn, this);
|
||||
this.rankRadioMonthBtn.off(Node.EventType.TOUCH_END, this.onClickRankRadioMonthBtn, this);
|
||||
}
|
||||
}
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "fff06ff8-efe2-4de7-a99a-f141dbd008f8",
|
||||
"uuid": "ecd05ce0-a6f1-4905-a43a-6f2c486cca21",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
122
assets/Game/SlotRanking/scripts/RewardHistoryList.ts
Normal file
@ -0,0 +1,122 @@
|
||||
import { _decorator, Component, Label, Node, Tween, tween } from 'cc';
|
||||
import { VirtualScrollView } from './VScrollView';
|
||||
import { callGameApiForRank } from 'db://assets/Loading/scripts/comm';
|
||||
import { I18nManager } from 'db://assets/Loading/scripts/manager/I18nManager';
|
||||
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('RewardHistoryList')
|
||||
export class RewardHistoryList extends Component {
|
||||
rewardHistoryList: Node = null; // 历史记录列表节点
|
||||
rewardHistoryLoadingNode: Node = null; // 历史记录加载节点
|
||||
closeBtn: Node = null; // 关闭按钮
|
||||
rewardHistoryListVScroll: VirtualScrollView = null; // 历史记录列表虚拟列表
|
||||
|
||||
historyData: any[] = [];
|
||||
|
||||
// 回调函数
|
||||
onBack: () => void = null;
|
||||
|
||||
init(rewardHistoryListNode: Node) {
|
||||
this.rewardHistoryList = rewardHistoryListNode;
|
||||
this.rewardHistoryLoadingNode = this.rewardHistoryList.getChildByName('list').getChildByName('loading');
|
||||
this.rewardHistoryListVScroll = this.rewardHistoryList.getChildByName('list').getChildByName('vScroll').getComponent(VirtualScrollView);
|
||||
this.closeBtn = this.rewardHistoryList.getChildByName('closeHistory');
|
||||
|
||||
this.rewardHistoryList.active = false;
|
||||
this.rewardHistoryLoadingNode.active = false;
|
||||
|
||||
this.closeBtn.on(Node.EventType.TOUCH_END, this.onClickCloseBtn, this);
|
||||
}
|
||||
|
||||
// ==================== 对外接口 ====================
|
||||
async show() {
|
||||
this.rewardHistoryList.active = true;
|
||||
await this.loadHistoryData();
|
||||
}
|
||||
|
||||
hide() {
|
||||
this.rewardHistoryList.active = false;
|
||||
}
|
||||
|
||||
// ==================== 历史记录逻辑 ====================
|
||||
async loadHistoryData() {
|
||||
this.rewardHistoryListVScroll.setTotalCount(0);
|
||||
|
||||
Tween.stopAllByTarget(this.rewardHistoryLoadingNode);
|
||||
this.rewardHistoryLoadingNode.active = true;
|
||||
tween(this.rewardHistoryLoadingNode)
|
||||
.by(0.3, { angle: 360 })
|
||||
.repeatForever()
|
||||
.start();
|
||||
|
||||
try {
|
||||
let historyData = await callGameApiForRank('getRewardsHistory', {});
|
||||
|
||||
Tween.stopAllByTarget(this.rewardHistoryLoadingNode);
|
||||
this.rewardHistoryLoadingNode.active = false;
|
||||
|
||||
this.openHistoryPopup(historyData);
|
||||
} catch (error) {
|
||||
console.error('获取奖励历史记录失败:', error);
|
||||
|
||||
Tween.stopAllByTarget(this.rewardHistoryLoadingNode);
|
||||
this.rewardHistoryLoadingNode.active = false;
|
||||
}
|
||||
}
|
||||
|
||||
openHistoryPopup(historyData: any) {
|
||||
if (!historyData || !historyData.List || historyData.List.length === 0) {
|
||||
this.rewardHistoryListVScroll.setTotalCount(0);
|
||||
return;
|
||||
}
|
||||
|
||||
this.historyData = historyData.List;
|
||||
this.rewardHistoryListVScroll.setTotalCount(this.historyData.length);
|
||||
this.rewardHistoryListVScroll.renderItemFn = (node: Node, idx: number) => {
|
||||
let itemData = this.historyData[idx];
|
||||
if (!itemData) {
|
||||
return;
|
||||
}
|
||||
|
||||
let typeMap: { [key: string]: string } = {
|
||||
'day': I18nManager.instance.t('Daily Ranking'),
|
||||
'week': I18nManager.instance.t('Weekly Ranking'),
|
||||
'month': I18nManager.instance.t('Monthly Ranking')
|
||||
};
|
||||
let typeLabel = typeMap[itemData.Type] || itemData.Type;
|
||||
|
||||
node.getChildByName('Activity').getComponent(Label).string = typeLabel;
|
||||
|
||||
node.getChildByName('ActivityTime').getComponent(Label).string = itemData.Date;
|
||||
|
||||
node.getChildByName('Rank').getChildByName('sp_1').active = itemData.Rank === 1;
|
||||
node.getChildByName('Rank').getChildByName('sp_2').active = itemData.Rank === 2;
|
||||
node.getChildByName('Rank').getChildByName('sp_3').active = itemData.Rank === 3;
|
||||
node.getChildByName('Rank').getChildByName('rankLab').active = itemData.Rank >= 4;
|
||||
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = itemData.Rank.toString();
|
||||
|
||||
node.getChildByName('Win').getComponent(Label).string = itemData.Rewards.toString();
|
||||
|
||||
let received = node.getChildByName('HasReceived').getChildByName('received');
|
||||
let unReceived = node.getChildByName('HasReceived').getChildByName('unReceived');
|
||||
received.active = true;
|
||||
unReceived.active = false;
|
||||
}
|
||||
|
||||
this.rewardHistoryListVScroll.refreshList(this.historyData);
|
||||
}
|
||||
|
||||
// ==================== 按钮事件 ====================
|
||||
onClickCloseBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.onBack?.call(null);
|
||||
}
|
||||
|
||||
onDestroy() {
|
||||
if (this.closeBtn) {
|
||||
this.closeBtn.off(Node.EventType.TOUCH_END, this.onClickCloseBtn, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "f1e2776d-f0b6-4ffb-a779-bc43897792d9",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
514
assets/Game/SlotRanking/scripts/RewardList.ts
Normal file
@ -0,0 +1,514 @@
|
||||
import { _decorator, Button, Color, Component, Label, Node, Sprite, Tween, tween } from 'cc';
|
||||
import { VirtualScrollView } from './VScrollView';
|
||||
import { Palette } from './Palette';
|
||||
import { SlotRankingDataManager } from './SlotRankingDataManager';
|
||||
import { callGameApiForRank } from 'db://assets/Loading/scripts/comm';
|
||||
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
|
||||
import { I18nManager } from 'db://assets/Loading/scripts/manager/I18nManager';
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('RewardList')
|
||||
export class RewardList extends Component {
|
||||
rewardList: Node = null; // 奖励列表节点
|
||||
rewardLoadingNode: Node = null; // 奖励加载动画节点
|
||||
|
||||
// 奖励列表 - 虚拟列表
|
||||
rewardListVScroll: VirtualScrollView = null; // 奖励列表虚拟列表
|
||||
|
||||
// 奖励列表 - 日周月切换
|
||||
rewardRadioDWM: Node = null; // 奖励日周月单选按钮父节点
|
||||
rewardRadioDayBtn: Node = null; // 奖励日榜单选按钮
|
||||
rewardRadioWeekBtn: Node = null; // 奖励周榜单选按钮
|
||||
rewardRadioMonthBtn: Node = null; // 奖励月榜单选按钮
|
||||
|
||||
rewardHistoryBtn: Node = null; // 历史记录按钮
|
||||
rewardReceivedBtn: Node = null; // 一键领奖按钮
|
||||
rewardBackBtn: Node = null; // 返回排行榜按钮
|
||||
|
||||
selfRewardListVScroll: VirtualScrollView = null; // 自己的奖励列表虚拟列表
|
||||
|
||||
// 活动未开启提示
|
||||
activityNotOpenTip: Node = null; // 活动未开启提示 label
|
||||
|
||||
currentRewardType: string = '';
|
||||
countdownTimer: any = null; // 存储定时器
|
||||
availableTypes: Set<string> = new Set(); // 可用的类型
|
||||
rewardsData: any = null; // 奖励数据
|
||||
selfRewardsList: any[] = []; // 自己的奖励列表
|
||||
isReceiving: boolean = false; // 是否正在领取中
|
||||
slotScene: any = null; // SlotScene 引用
|
||||
|
||||
// 回调函数
|
||||
onShowHistory: (type: string) => void = null; // 跳转到领奖记录
|
||||
onShowRank: (type: string) => void = null; // 跳转回排行榜
|
||||
onClose: () => void = null; // 关闭主弹窗
|
||||
|
||||
init(rewardListNode: Node) {
|
||||
this.rewardList = rewardListNode;
|
||||
|
||||
this.rewardLoadingNode = this.rewardList.getChildByName('list').getChildByName('loading');
|
||||
this.rewardListVScroll = this.rewardList.getChildByName('list').getChildByName('vScroll').getComponent(VirtualScrollView);
|
||||
this.rewardRadioDWM = this.rewardList.getChildByName('rewardRadioDWM');
|
||||
this.rewardRadioDayBtn = this.rewardRadioDWM.getChildByName('dayBtn');
|
||||
this.rewardRadioWeekBtn = this.rewardRadioDWM.getChildByName('weekBtn');
|
||||
this.rewardRadioMonthBtn = this.rewardRadioDWM.getChildByName('monthBtn');
|
||||
|
||||
this.rewardHistoryBtn = this.rewardList.getChildByName('history');
|
||||
this.rewardReceivedBtn = this.rewardList.getChildByName('receiveBtn');
|
||||
let radioTitle = this.rewardList.getChildByName('radioTitle');
|
||||
this.rewardBackBtn = radioTitle.getChildByName('rankBtn');
|
||||
|
||||
this.selfRewardListVScroll = this.rewardList.getChildByName('selfRewardList').getChildByName('vScroll').getComponent(VirtualScrollView);
|
||||
|
||||
this.activityNotOpenTip = this.rewardList.getChildByName('list').getChildByName('activityNotOpenTip');
|
||||
|
||||
this.rewardList.active = false;
|
||||
this.rewardLoadingNode.active = false;
|
||||
this.activityNotOpenTip.active = false;
|
||||
|
||||
this.rewardHistoryBtn.on(Node.EventType.TOUCH_END, this.onClickHistoryBtn, this);
|
||||
this.rewardReceivedBtn.on(Node.EventType.TOUCH_END, this.onClickReceiveBtn, this);
|
||||
this.rewardBackBtn.on(Node.EventType.TOUCH_END, this.onClickBackBtn, this);
|
||||
this.rewardRadioDayBtn.on(Node.EventType.TOUCH_END, this.onClickRewardRadioDayBtn, this);
|
||||
this.rewardRadioWeekBtn.on(Node.EventType.TOUCH_END, this.onClickRewardRadioWeekBtn, this);
|
||||
this.rewardRadioMonthBtn.on(Node.EventType.TOUCH_END, this.onClickRewardRadioMonthBtn, this);
|
||||
}
|
||||
|
||||
// ==================== 对外接口 ====================
|
||||
setSlotScene(slotScene: any) {
|
||||
this.slotScene = slotScene;
|
||||
}
|
||||
|
||||
async show(defaultType: string = 'day') {
|
||||
this.rewardList.active = true;
|
||||
this.currentRewardType = '';
|
||||
this.updateRewardButtonsAvailability();
|
||||
|
||||
await this.switchRewardTab(defaultType);
|
||||
}
|
||||
|
||||
hide() {
|
||||
this.rewardList.active = false;
|
||||
if (this.countdownTimer) {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
}
|
||||
}
|
||||
|
||||
getCurrentType(): string {
|
||||
return this.currentRewardType;
|
||||
}
|
||||
|
||||
// ==================== 奖励列表逻辑 ====================
|
||||
isTypeAvailable(type: string): boolean {
|
||||
return this.availableTypes.has(type);
|
||||
}
|
||||
|
||||
showActivityNotOpenTip() {
|
||||
this.activityNotOpenTip.active = true;
|
||||
this.rewardListVScroll.setTotalCount(0);
|
||||
}
|
||||
|
||||
async switchRewardTab(type: string) {
|
||||
if (this.currentRewardType === type) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.currentRewardType = type;
|
||||
|
||||
this.setRewardRadioBtn(type);
|
||||
|
||||
if (!this.isTypeAvailable(type) || SlotRankingDataManager.instance.getRankListStatusByType(type) !== 0) {
|
||||
console.log(`${type} 奖励榜单活动未开启`);
|
||||
this.rewardLoadingNode.active = false;
|
||||
this.showActivityNotOpenTip();
|
||||
if (this.countdownTimer) {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
this.activityNotOpenTip.active = false;
|
||||
|
||||
this.rewardListVScroll.setTotalCount(0);
|
||||
this.selfRewardListVScroll.setTotalCount(0);
|
||||
|
||||
Tween.stopAllByTarget(this.rewardLoadingNode);
|
||||
this.rewardLoadingNode.active = true;
|
||||
tween(this.rewardLoadingNode)
|
||||
.by(0.3, { angle: 360 })
|
||||
.repeatForever()
|
||||
.start();
|
||||
|
||||
this.setRewardEndTime(type);
|
||||
|
||||
try {
|
||||
let rewardsData = await callGameApiForRank('rewardsList', {});
|
||||
this.rewardsData = rewardsData;
|
||||
Tween.stopAllByTarget(this.rewardLoadingNode);
|
||||
this.rewardLoadingNode.active = false;
|
||||
|
||||
this.openRewardPopup();
|
||||
|
||||
this.openSelfRewardPopup();
|
||||
} catch (error) {
|
||||
console.error('获取奖励列表数据失败:', error);
|
||||
this.showActivityNotOpenTip();
|
||||
Tween.stopAllByTarget(this.rewardLoadingNode);
|
||||
this.rewardLoadingNode.active = false;
|
||||
}
|
||||
}
|
||||
|
||||
openRewardPopup() {
|
||||
let rankList = SlotRankingDataManager.instance.rankList;
|
||||
if (!rankList || !rankList.List) {
|
||||
this.rewardListVScroll.setTotalCount(0);
|
||||
return;
|
||||
}
|
||||
|
||||
let currentActivity = rankList.List.find((item: any) => item.Type === this.currentRewardType);
|
||||
if (!currentActivity || !currentActivity.Rewards || currentActivity.Rewards.length === 0) {
|
||||
this.rewardListVScroll.setTotalCount(0);
|
||||
return;
|
||||
}
|
||||
|
||||
let rewards = currentActivity.Rewards;
|
||||
this.rewardListVScroll.setTotalCount(rewards.length);
|
||||
this.rewardListVScroll.renderItemFn = (node: Node, idx: number) => {
|
||||
let rewardAmount = rewards[idx];
|
||||
if (rewardAmount === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
let rank = idx + 1;
|
||||
|
||||
node.getChildByName('bg').active = idx % 2 === 0;
|
||||
node.getChildByName('bg2').active = idx % 2 !== 0;
|
||||
|
||||
node.getChildByName('Rank').getChildByName('sp_1').active = rank === 1;
|
||||
node.getChildByName('Rank').getChildByName('sp_2').active = rank === 2;
|
||||
node.getChildByName('Rank').getChildByName('sp_3').active = rank === 3;
|
||||
node.getChildByName('Rank').getChildByName('rankLab').active = rank >= 4;
|
||||
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = rank.toString();
|
||||
|
||||
node.getChildByName('Win').getComponent(Label).string = rewardAmount.toString();
|
||||
}
|
||||
|
||||
this.rewardListVScroll.refreshList(rewards);
|
||||
}
|
||||
|
||||
openSelfRewardPopup() {
|
||||
if (!this.rewardsData) {
|
||||
this.selfRewardListVScroll.setTotalCount(0);
|
||||
return;
|
||||
}
|
||||
|
||||
this.selfRewardsList = [];
|
||||
|
||||
if (this.rewardsData.DayRanks && this.rewardsData.DayRanks.length > 0) {
|
||||
for (let item of this.rewardsData.DayRanks) {
|
||||
this.selfRewardsList.push({ ...item, TypeLabel: I18nManager.instance.t('Daily Ranking') });
|
||||
}
|
||||
}
|
||||
|
||||
if (this.rewardsData.WeekRanks && this.rewardsData.WeekRanks.length > 0) {
|
||||
for (let item of this.rewardsData.WeekRanks) {
|
||||
this.selfRewardsList.push({ ...item, TypeLabel: I18nManager.instance.t('Weekly Ranking') });
|
||||
}
|
||||
}
|
||||
|
||||
if (this.rewardsData.MonthRanks && this.rewardsData.MonthRanks.length > 0) {
|
||||
for (let item of this.rewardsData.MonthRanks) {
|
||||
this.selfRewardsList.push({ ...item, TypeLabel: I18nManager.instance.t('Monthly Ranking') });
|
||||
}
|
||||
}
|
||||
|
||||
if (this.selfRewardsList.length === 0) {
|
||||
this.selfRewardListVScroll.setTotalCount(0);
|
||||
return;
|
||||
}
|
||||
|
||||
this.selfRewardListVScroll.setTotalCount(this.selfRewardsList.length);
|
||||
this.selfRewardListVScroll.renderItemFn = (node: Node, idx: number) => {
|
||||
let itemData = this.selfRewardsList[idx];
|
||||
if (!itemData) {
|
||||
return;
|
||||
}
|
||||
|
||||
node.getChildByName('Activity').getComponent(Label).string = itemData.TypeLabel;
|
||||
|
||||
let activityTime = itemData.Id.split('_')[0];
|
||||
node.getChildByName('ActivityTime').getComponent(Label).string = activityTime;
|
||||
node.getChildByName('Rank').getChildByName('sp_1').active = itemData.Rank === 1;
|
||||
node.getChildByName('Rank').getChildByName('sp_2').active = itemData.Rank === 2;
|
||||
node.getChildByName('Rank').getChildByName('sp_3').active = itemData.Rank === 3;
|
||||
node.getChildByName('Rank').getChildByName('rankLab').active = itemData.Rank >= 4;
|
||||
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = itemData.Rank.toString();
|
||||
|
||||
node.getChildByName('Win').getComponent(Label).string = itemData.Rewards.toString();
|
||||
|
||||
let received = node.getChildByName('HasReceived').getChildByName('received');
|
||||
let unReceived = node.getChildByName('HasReceived').getChildByName('unReceived');
|
||||
received.active = itemData.IsPrize;
|
||||
unReceived.active = !itemData.IsPrize;
|
||||
}
|
||||
|
||||
this.selfRewardListVScroll.refreshList(this.selfRewardsList);
|
||||
}
|
||||
|
||||
// ==================== 一键领奖 ====================
|
||||
async receiveAllRewards() {
|
||||
if (this.isReceiving) {
|
||||
console.log('正在领取中,请稍候...');
|
||||
return;
|
||||
}
|
||||
|
||||
// 收集所有未领取的奖励ID
|
||||
let pendingIds: string[] = [];
|
||||
for (let item of this.selfRewardsList) {
|
||||
if (!item.IsPrize) {
|
||||
pendingIds.push(item.Id);
|
||||
}
|
||||
}
|
||||
|
||||
if (pendingIds.length === 0) {
|
||||
console.log('没有可领取的奖励');
|
||||
return;
|
||||
}
|
||||
|
||||
this.isReceiving = true;
|
||||
this.setButtonsInteractable(false);
|
||||
|
||||
try {
|
||||
// 一次性发送所有ID
|
||||
let result = await callGameApiForRank('getRewards', { Ids: pendingIds });
|
||||
console.log('一键领奖成功', result);
|
||||
|
||||
// 处理返回的成功ID数组
|
||||
if (result && result.Ids && Array.isArray(result.Ids)) {
|
||||
// 更新成功领取的item状态
|
||||
for (let successId of result.Ids) {
|
||||
let item = this.selfRewardsList.find((item: any) => item.Id === successId);
|
||||
if (item) {
|
||||
item.IsPrize = true;
|
||||
}
|
||||
}
|
||||
|
||||
// 刷新列表显示
|
||||
this.selfRewardListVScroll.refreshList(this.selfRewardsList);
|
||||
|
||||
// 更新 slotScene 的 balance
|
||||
if (result.Balance !== undefined && this.slotScene && this.slotScene.slotBar) {
|
||||
this.slotScene.slotBar.setBalance(result.Balance);
|
||||
}
|
||||
|
||||
|
||||
console.log(`成功领取 ${result.Ids.length} 个奖励,新余额: ${result.Balance}`);
|
||||
} else {
|
||||
console.warn('领奖返回数据格式异常', result);
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('一键领奖失败', error);
|
||||
} finally {
|
||||
this.isReceiving = false;
|
||||
this.setButtonsInteractable(true);
|
||||
}
|
||||
}
|
||||
|
||||
setButtonsInteractable(interactable: boolean) {
|
||||
let receiveBtn = this.rewardReceivedBtn.getComponent(Button);
|
||||
if (receiveBtn) {
|
||||
receiveBtn.interactable = interactable;
|
||||
}
|
||||
|
||||
let backBtn = this.rewardBackBtn.getComponent(Button);
|
||||
if (backBtn) {
|
||||
backBtn.interactable = interactable;
|
||||
}
|
||||
|
||||
let historyBtn = this.rewardHistoryBtn.getComponent(Button);
|
||||
if (historyBtn) {
|
||||
historyBtn.interactable = interactable;
|
||||
}
|
||||
|
||||
let dayBtn = this.rewardRadioDayBtn.getComponent(Button);
|
||||
if (dayBtn) {
|
||||
dayBtn.interactable = interactable;
|
||||
}
|
||||
|
||||
let weekBtn = this.rewardRadioWeekBtn.getComponent(Button);
|
||||
if (weekBtn) {
|
||||
weekBtn.interactable = interactable;
|
||||
}
|
||||
|
||||
let monthBtn = this.rewardRadioMonthBtn.getComponent(Button);
|
||||
if (monthBtn) {
|
||||
monthBtn.interactable = interactable;
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 按钮状态管理 ====================
|
||||
updateRewardButtonsAvailability() {
|
||||
let rankList = SlotRankingDataManager.instance.rankList;
|
||||
|
||||
this.availableTypes.clear();
|
||||
if (rankList && rankList.List) {
|
||||
for (let item of rankList.List) {
|
||||
this.availableTypes.add(item.Type);
|
||||
}
|
||||
}
|
||||
|
||||
this.updateButtonAvailability(this.rewardRadioDayBtn);
|
||||
this.updateButtonAvailability(this.rewardRadioWeekBtn);
|
||||
this.updateButtonAvailability(this.rewardRadioMonthBtn);
|
||||
}
|
||||
|
||||
updateButtonAvailability(btn: Node) {
|
||||
btn.active = true;
|
||||
|
||||
let button = btn.getComponent(Button);
|
||||
if (button) {
|
||||
button.interactable = true;
|
||||
}
|
||||
|
||||
let check = btn.getChildByName('check');
|
||||
let unCheck = btn.getChildByName('unCheck');
|
||||
let whiteColor = Color.WHITE;
|
||||
|
||||
if (check) {
|
||||
let checkSprite = check.getComponent(Sprite);
|
||||
if (checkSprite) {
|
||||
checkSprite.color = whiteColor;
|
||||
}
|
||||
}
|
||||
|
||||
if (unCheck) {
|
||||
let unCheckSprite = unCheck.getComponent(Sprite);
|
||||
if (unCheckSprite) {
|
||||
unCheckSprite.color = whiteColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setRewardRadioBtn(type: string) {
|
||||
let selectedColor = new Color(57, 1, 3, 255);
|
||||
let unselectedColor = new Color(37, 78, 21, 255);
|
||||
|
||||
this.setRadioBtnState(this.rewardRadioDayBtn, type === 'day', selectedColor, unselectedColor);
|
||||
this.setRadioBtnState(this.rewardRadioWeekBtn, type === 'week', selectedColor, unselectedColor);
|
||||
this.setRadioBtnState(this.rewardRadioMonthBtn, type === 'month', selectedColor, unselectedColor);
|
||||
}
|
||||
|
||||
setRadioBtnState(btn: Node, isSelected: boolean, selectedColor: Color, unselectedColor: Color) {
|
||||
let check = btn.getChildByName('check');
|
||||
let unCheck = btn.getChildByName('unCheck');
|
||||
let label = btn.getChildByName('label');
|
||||
let palette = label?.getComponent(Palette);
|
||||
|
||||
if (isSelected) {
|
||||
check.active = true;
|
||||
unCheck.active = false;
|
||||
if (palette) {
|
||||
palette.colorLB = selectedColor;
|
||||
palette.colorRB = selectedColor;
|
||||
}
|
||||
} else {
|
||||
check.active = false;
|
||||
unCheck.active = true;
|
||||
if (palette) {
|
||||
palette.colorLB = unselectedColor;
|
||||
palette.colorRB = unselectedColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 倒计时功能 ====================
|
||||
setRewardEndTime(type: string) {
|
||||
if (this.countdownTimer) {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
}
|
||||
|
||||
let endTime = SlotRankingDataManager.instance.getRankEndTimeByType(type);
|
||||
|
||||
this.updateCountdown(endTime);
|
||||
|
||||
this.countdownTimer = setInterval(() => {
|
||||
this.updateCountdown(endTime);
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
updateCountdown(endTime: number) {
|
||||
let now = Math.floor(Date.now() / 1000);
|
||||
let remainingSeconds = endTime - now;
|
||||
|
||||
if (remainingSeconds <= 0) {
|
||||
if (this.countdownTimer) {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
let timeStr = this.formatCountdown(remainingSeconds);
|
||||
}
|
||||
|
||||
formatCountdown(seconds: number): string {
|
||||
let days = Math.floor(seconds / 86400);
|
||||
let hours = Math.floor((seconds % 86400) / 3600);
|
||||
let minutes = Math.floor((seconds % 3600) / 60);
|
||||
let secs = seconds % 60;
|
||||
|
||||
if (days >= 1) {
|
||||
return `${days}d ${hours}h ${minutes}min ${secs}s`;
|
||||
} else {
|
||||
return `${hours}h ${minutes}min ${secs}s`;
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 按钮事件 ====================
|
||||
onClickRewardRadioDayBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.switchRewardTab('day');
|
||||
}
|
||||
|
||||
onClickRewardRadioWeekBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.switchRewardTab('week');
|
||||
}
|
||||
|
||||
onClickRewardRadioMonthBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.switchRewardTab('month');
|
||||
}
|
||||
|
||||
onClickHistoryBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.onShowHistory?.call(null, this.currentRewardType || 'day');
|
||||
}
|
||||
|
||||
onClickReceiveBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.receiveAllRewards();
|
||||
}
|
||||
|
||||
onClickBackBtn() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.onShowRank?.call(null, this.currentRewardType || 'day');
|
||||
}
|
||||
|
||||
onDestroy() {
|
||||
clearInterval(this.countdownTimer);
|
||||
this.countdownTimer = null;
|
||||
|
||||
this.rewardHistoryBtn.off(Node.EventType.TOUCH_END, this.onClickHistoryBtn, this);
|
||||
this.rewardReceivedBtn.off(Node.EventType.TOUCH_END, this.onClickReceiveBtn, this);
|
||||
this.rewardBackBtn.off(Node.EventType.TOUCH_END, this.onClickBackBtn, this);
|
||||
this.rewardRadioDayBtn.off(Node.EventType.TOUCH_END, this.onClickRewardRadioDayBtn, this);
|
||||
this.rewardRadioWeekBtn.off(Node.EventType.TOUCH_END, this.onClickRewardRadioWeekBtn, this);
|
||||
this.rewardRadioMonthBtn.off(Node.EventType.TOUCH_END, this.onClickRewardRadioMonthBtn, this);
|
||||
}
|
||||
}
|
||||
9
assets/Game/SlotRanking/scripts/RewardList.ts.meta
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "822e651d-8015-44fa-90d7-2cd5a93cb6af",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
363
assets/Game/SlotRanking/scripts/SlotRanking.ts
Normal file
@ -0,0 +1,363 @@
|
||||
import { _decorator, Button, Color, Component, EventTouch, Node, sp, Sprite, tween, UITransform, v3, Vec3 } from 'cc';
|
||||
import { RankList } from './RankList';
|
||||
import { RankHistoryList } from './RankHistoryList';
|
||||
import { RewardList } from './RewardList';
|
||||
import { RewardHistoryList } from './RewardHistoryList';
|
||||
import { SlotRankingDataManager } from './SlotRankingDataManager';
|
||||
import { callGameApiForRank, getGameId } from 'db://assets/Loading/scripts/comm';
|
||||
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
|
||||
import { SlotScene } from '../../scripts/SlotScene';
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('SlotRanking')
|
||||
export class SlotRanking extends Component {
|
||||
// ==================== 排行榜入口 ====================
|
||||
rankingBtn: Node = null; // 排行榜入口按钮
|
||||
|
||||
// ==================== 主弹窗节点 ====================
|
||||
rankingRewardNode: Node = null; // 排行榜弹窗主节点
|
||||
|
||||
@property(RankList)
|
||||
rankList: RankList = null;
|
||||
|
||||
@property(RankHistoryList)
|
||||
rankHistoryList: RankHistoryList = null;
|
||||
|
||||
@property(RewardList)
|
||||
rewardList: RewardList = null;
|
||||
|
||||
@property(RewardHistoryList)
|
||||
rewardHistoryList: RewardHistoryList = null;
|
||||
|
||||
// 设计分辨率
|
||||
DESIGN_WIDTH: number = 1080;
|
||||
DESIGN_HEIGHT: number = 1920;
|
||||
|
||||
slotScene: SlotScene = null; // SlotScene 引用
|
||||
isMove: boolean = false; // 是否是拖动状态
|
||||
isClick: boolean = false; // 是否是点击状态
|
||||
startPos: Vec3 = v3(432, 650, 0);
|
||||
|
||||
touchStartPos: Vec3 = v3(0, 0, 0); // 触摸开始位置(世界坐标)
|
||||
nodeStartPos: Vec3 = v3(0, 0, 0); // 节点开始位置
|
||||
uiTransform: UITransform = null; // 节点UI变换组件
|
||||
parentUITransform: UITransform = null; // 父节点UI变换组件
|
||||
|
||||
async onLoad() {
|
||||
this.rankingBtn = this.node.getChildByName("rankingBtn");
|
||||
this.rankingRewardNode = this.node.getChildByName("rankingRewardNode");
|
||||
this.rankingBtn.active = false;
|
||||
this.rankingRewardNode.active = false;
|
||||
try {
|
||||
let rankList = await callGameApiForRank("ranklist", { GameId: getGameId() });
|
||||
if (!rankList || !rankList.List || rankList.List.length === 0) {
|
||||
return;
|
||||
}
|
||||
SlotRankingDataManager.instance.rankList = rankList;
|
||||
} catch (error) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.rankingBtn = this.node.getChildByName("rankingBtn");
|
||||
this.rankingRewardNode = this.node.getChildByName("rankingRewardNode");
|
||||
|
||||
this.uiTransform = this.rankingBtn.getComponent(UITransform);
|
||||
this.parentUITransform = this.rankingBtn.parent.getComponent(UITransform);
|
||||
|
||||
this.initComponents();
|
||||
|
||||
this.rankingBtn.setPosition(this.startPos);
|
||||
this.rankingBtn.active = SlotRankingDataManager.instance.getRankListStatus() === 0 || SlotRankingDataManager.instance.getRankListStatus() === 1 || SlotRankingDataManager.instance.getRankMaxCloseTimeIsBiggerThanCurTime();
|
||||
|
||||
this.rankingBtn.getComponent(Button).interactable = SlotRankingDataManager.instance.getRankListStatus() === 0;
|
||||
this.rankingBtn.getChildByName('icon').getComponent(sp.Skeleton).color = SlotRankingDataManager.instance.getRankListStatus() === 0 ? Color.WHITE : Color.GRAY;
|
||||
|
||||
this.rankingBtn.on(Node.EventType.TOUCH_START, this.onTouchStart, this);
|
||||
this.rankingBtn.on(Node.EventType.TOUCH_MOVE, this.onTouchMove, this);
|
||||
this.rankingBtn.on(Node.EventType.TOUCH_CANCEL, this.onTouchCancel, this);
|
||||
this.rankingBtn.on(Node.EventType.TOUCH_END, this.onTouchEnd, this);
|
||||
|
||||
this.rankingRewardNode.active = false;
|
||||
}
|
||||
|
||||
initComponents() {
|
||||
this.rankList.init(this.rankingRewardNode.getChildByName('rankList'));
|
||||
|
||||
this.rankList.onShowHistory = (type: string) => {
|
||||
this.showRankHistoryList(type);
|
||||
};
|
||||
this.rankList.onShowReward = (type: string) => {
|
||||
this.showRewardListFromRank(type);
|
||||
};
|
||||
this.rankList.onClose = () => {
|
||||
this.closeRankingPopup();
|
||||
};
|
||||
|
||||
this.rankHistoryList.init(this.rankingRewardNode.getChildByName('rankHistoryList'));
|
||||
|
||||
this.rankHistoryList.onBack = () => {
|
||||
this.showRankList();
|
||||
};
|
||||
|
||||
this.rewardList.init(this.rankingRewardNode.getChildByName('rewardList'));
|
||||
|
||||
this.rewardList.onShowRank = (type: string) => {
|
||||
this.showRankListFromReward(type);
|
||||
};
|
||||
this.rewardList.onShowHistory = () => {
|
||||
this.showRewardHistoryList();
|
||||
};
|
||||
this.rewardHistoryList.onBack = () => {
|
||||
this.showRewardList();
|
||||
};
|
||||
|
||||
this.rewardHistoryList.init(this.rankingRewardNode.getChildByName('rewardHistoryList'));
|
||||
|
||||
this.rewardList.onClose = () => {
|
||||
this.closeRankingPopup();
|
||||
};
|
||||
}
|
||||
|
||||
setSlotScene(slotScene: SlotScene) {
|
||||
this.slotScene = slotScene;
|
||||
// 将 slotScene 引用传递给 RewardList
|
||||
if (this.rewardList) {
|
||||
this.rewardList.setSlotScene(slotScene);
|
||||
}
|
||||
}
|
||||
|
||||
// 检查是否可以点击排行榜按钮
|
||||
canClickRankingBtn(): boolean {
|
||||
console.log('slotScene', this.slotScene)
|
||||
|
||||
if (!this.slotScene) return true;
|
||||
console.log('isAutoSpin', this.slotScene.gameState.isAutoSpin)
|
||||
console.log('isInFreeSpin', this.slotScene.gameState.isInFreeSpin)
|
||||
console.log('isFeatureBuySpin', this.slotScene.gameState.isFeatureBuySpin)
|
||||
console.log('isEliminating', this.slotScene.gameState.isEliminating)
|
||||
// 如果正在滚动,不可点击
|
||||
if (this.slotScene.slotGame && this.slotScene.slotGame.isScroll()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 如果正在自动旋转,不可点击
|
||||
if (this.slotScene.gameState.isAutoSpin) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.slotScene.gameState.isInFreeSpin) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.slotScene.gameState.isFeatureBuySpin) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.slotScene.gameState.isEliminating) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!this.rankingBtn.getComponent(Button).interactable) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// ==================== 触摸事件处理 ====================
|
||||
onTouchStart(event: EventTouch) {
|
||||
this.isMove = false;
|
||||
this.isClick = true;
|
||||
|
||||
let touchPos = event.getUILocation();
|
||||
|
||||
if (this.parentUITransform) {
|
||||
let localPos = this.parentUITransform.convertToNodeSpaceAR(v3(touchPos.x, touchPos.y, 0));
|
||||
this.touchStartPos.set(localPos);
|
||||
} else {
|
||||
this.touchStartPos.set(v3(touchPos.x, touchPos.y, 0));
|
||||
}
|
||||
|
||||
this.nodeStartPos.set(this.rankingBtn.position);
|
||||
}
|
||||
|
||||
onTouchMove(event: EventTouch) {
|
||||
if (!this.isClick) return;
|
||||
|
||||
this.isMove = true;
|
||||
|
||||
let touchPos = event.getUILocation();
|
||||
|
||||
let currentTouchPos;
|
||||
if (this.parentUITransform) {
|
||||
currentTouchPos = this.parentUITransform.convertToNodeSpaceAR(v3(touchPos.x, touchPos.y, 0));
|
||||
} else {
|
||||
currentTouchPos = v3(touchPos.x, touchPos.y, 0);
|
||||
}
|
||||
|
||||
let deltaX = currentTouchPos.x - this.touchStartPos.x;
|
||||
let deltaY = currentTouchPos.y - this.touchStartPos.y;
|
||||
|
||||
let newX = this.nodeStartPos.x + deltaX;
|
||||
let newY = this.nodeStartPos.y + deltaY;
|
||||
|
||||
let clampedPos = this.clampPosition(newX, newY);
|
||||
|
||||
this.rankingBtn.setPosition(v3(clampedPos.x, clampedPos.y, 0));
|
||||
}
|
||||
|
||||
onTouchCancel(event: EventTouch) {
|
||||
if (this.isClick && !this.isMove) return;
|
||||
|
||||
if (this.isMove) {
|
||||
this.snapToEdge();
|
||||
}
|
||||
|
||||
this.isMove = false;
|
||||
this.isClick = false;
|
||||
}
|
||||
|
||||
onTouchEnd(event: EventTouch) {
|
||||
if (this.isMove) {
|
||||
this.snapToEdge();
|
||||
this.isMove = false;
|
||||
this.isClick = false;
|
||||
return;
|
||||
}
|
||||
console.log('isClick', this.isClick)
|
||||
if (this.isClick) {
|
||||
// 检查是否可以点击
|
||||
if (!this.canClickRankingBtn()) {
|
||||
this.isMove = false;
|
||||
this.isClick = false;
|
||||
return;
|
||||
}
|
||||
this.handleClickEvent();
|
||||
}
|
||||
|
||||
this.isMove = false;
|
||||
this.isClick = false;
|
||||
}
|
||||
|
||||
clampPosition(newX: number, newY: number): { x: number, y: number } {
|
||||
if (this.uiTransform) {
|
||||
let nodeWidth = this.uiTransform.width;
|
||||
let nodeHeight = this.uiTransform.height;
|
||||
let anchorX = this.uiTransform.anchorX;
|
||||
let anchorY = this.uiTransform.anchorY;
|
||||
|
||||
let leftBound = -this.DESIGN_WIDTH / 2 + nodeWidth * anchorX;
|
||||
let rightBound = this.DESIGN_WIDTH / 2 - nodeWidth * (1 - anchorX);
|
||||
let bottomBound = -this.DESIGN_HEIGHT / 2 + nodeHeight * anchorY;
|
||||
let topBound = this.DESIGN_HEIGHT / 2 - nodeHeight * (1 - anchorY);
|
||||
|
||||
newX = Math.max(leftBound, Math.min(rightBound, newX));
|
||||
newY = Math.max(bottomBound, Math.min(topBound, newY));
|
||||
} else {
|
||||
let halfWidth = this.DESIGN_WIDTH / 2;
|
||||
let halfHeight = this.DESIGN_HEIGHT / 2;
|
||||
newX = Math.max(-halfWidth, Math.min(halfWidth, newX));
|
||||
newY = Math.max(-halfHeight, Math.min(halfHeight, newY));
|
||||
}
|
||||
|
||||
return { x: newX, y: newY };
|
||||
}
|
||||
|
||||
snapToEdge() {
|
||||
let currentPos = this.rankingBtn.position;
|
||||
let screenCenterX = 0;
|
||||
let targetX: number;
|
||||
|
||||
if (this.uiTransform) {
|
||||
let nodeWidth = this.uiTransform.width;
|
||||
let anchorX = this.uiTransform.anchorX;
|
||||
|
||||
if (currentPos.x > screenCenterX) {
|
||||
targetX = this.DESIGN_WIDTH / 2 - nodeWidth * (1 - anchorX);
|
||||
} else {
|
||||
targetX = -this.DESIGN_WIDTH / 2 + nodeWidth * anchorX;
|
||||
}
|
||||
} else {
|
||||
let edgeMargin = 20;
|
||||
if (currentPos.x > screenCenterX) {
|
||||
targetX = this.DESIGN_WIDTH / 2 - edgeMargin;
|
||||
} else {
|
||||
targetX = -this.DESIGN_WIDTH / 2 + edgeMargin;
|
||||
}
|
||||
}
|
||||
|
||||
tween(this.rankingBtn)
|
||||
.to(0.05, { position: v3(targetX, currentPos.y, 0) })
|
||||
.start();
|
||||
}
|
||||
|
||||
// ==================== 主弹窗控制 ====================
|
||||
async handleClickEvent() {
|
||||
AudioManager.instance.playSFX("Common_Button_Click");
|
||||
this.rankingRewardNode.active = true;
|
||||
await this.showRankList('day');
|
||||
}
|
||||
|
||||
async showRankList(defaultType: string = 'day') {
|
||||
this.rankHistoryList.hide();
|
||||
this.rewardList.hide();
|
||||
this.rewardHistoryList.hide();
|
||||
await this.rankList.show(defaultType);
|
||||
}
|
||||
|
||||
showRankHistoryList(type: string) {
|
||||
this.rankList.hide();
|
||||
this.rewardList.hide();
|
||||
this.rewardHistoryList.hide();
|
||||
this.rankHistoryList.show(type);
|
||||
}
|
||||
|
||||
async showRankListFromReward(rewardType: string) {
|
||||
this.rewardList.hide();
|
||||
this.rankHistoryList.hide();
|
||||
this.rewardHistoryList.hide();
|
||||
await this.rankList.show(rewardType);
|
||||
}
|
||||
|
||||
showRewardHistoryList() {
|
||||
this.rankList.hide();
|
||||
this.rankHistoryList.hide();
|
||||
this.rewardList.hide();
|
||||
this.rewardHistoryList.show();
|
||||
}
|
||||
|
||||
async showRewardList(defaultType: string = 'day') {
|
||||
this.rankList.hide();
|
||||
this.rankHistoryList.hide();
|
||||
this.rewardHistoryList.hide();
|
||||
await this.rewardList.show(defaultType);
|
||||
}
|
||||
|
||||
async showRewardListFromRank(rankType: string) {
|
||||
this.rankList.hide();
|
||||
this.rankHistoryList.hide();
|
||||
this.rewardHistoryList.hide();
|
||||
await this.rewardList.show(rankType);
|
||||
}
|
||||
|
||||
closeRankingPopup() {
|
||||
this.rankingRewardNode.active = false;
|
||||
this.rankList.hide();
|
||||
this.rankHistoryList.hide();
|
||||
this.rewardList.hide();
|
||||
this.rewardHistoryList.hide();
|
||||
}
|
||||
|
||||
setStartPosition(pos: Vec3) {
|
||||
this.startPos.set(pos);
|
||||
this.rankingBtn.setPosition(pos);
|
||||
}
|
||||
|
||||
onDestroy() {
|
||||
this.rankingBtn.off(Node.EventType.TOUCH_START, this.onTouchStart, this);
|
||||
this.rankingBtn.off(Node.EventType.TOUCH_MOVE, this.onTouchMove, this);
|
||||
this.rankingBtn.off(Node.EventType.TOUCH_CANCEL, this.onTouchCancel, this);
|
||||
this.rankingBtn.off(Node.EventType.TOUCH_END, this.onTouchEnd, this);
|
||||
}
|
||||
}
|
||||
9
assets/Game/SlotRanking/scripts/SlotRanking.ts.meta
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "e9415bc6-3200-4c15-a5d0-f4b2339c16ec",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
158
assets/Game/SlotRanking/scripts/SlotRankingDataManager.ts
Normal file
@ -0,0 +1,158 @@
|
||||
export class SlotRankingDataManager {
|
||||
static _instance: SlotRankingDataManager = null;
|
||||
|
||||
static get instance(): SlotRankingDataManager {
|
||||
if (!this._instance) {
|
||||
this._instance = new SlotRankingDataManager();
|
||||
}
|
||||
return this._instance;
|
||||
}
|
||||
|
||||
_rankList: any = null;
|
||||
|
||||
set rankList(list: any) { this._rankList = list; }
|
||||
get rankList(): any { return this._rankList; }
|
||||
|
||||
/**
|
||||
*
|
||||
* {
|
||||
"List": [
|
||||
{
|
||||
"Id": "20251225_day_faketrans-VND",
|
||||
"Name": "",
|
||||
"Type": "day",
|
||||
"StartTime": 1766592000,
|
||||
"EndTime": 1766689200,
|
||||
"CloseTime": 1766775600,
|
||||
"Status": 0,
|
||||
"Rewards": [
|
||||
10,
|
||||
8,
|
||||
5,
|
||||
3,
|
||||
3,
|
||||
3,
|
||||
3,
|
||||
3,
|
||||
3,
|
||||
3
|
||||
],
|
||||
"SpinLimit": 10,
|
||||
"BetLimit": 1000000
|
||||
},
|
||||
{
|
||||
"Id": "20251222_week_faketrans-VND",
|
||||
"Name": "",
|
||||
"Type": "week",
|
||||
"StartTime": 1766592000,
|
||||
"EndTime": 1766678400,
|
||||
"CloseTime": 1766764800,
|
||||
"Status": 0,
|
||||
"Rewards": [
|
||||
10,
|
||||
5,
|
||||
5,
|
||||
5,
|
||||
5,
|
||||
5,
|
||||
5,
|
||||
5,
|
||||
5,
|
||||
5
|
||||
],
|
||||
"SpinLimit": 10,
|
||||
"BetLimit": 5000000
|
||||
}
|
||||
]
|
||||
}
|
||||
*/
|
||||
|
||||
getRankMaxCloseTimeIsBiggerThanCurTime(): boolean {
|
||||
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
|
||||
// 代表当前没有活动开启,则说明关闭入口按钮
|
||||
return false;
|
||||
}
|
||||
|
||||
let maxCloseTime = 0;
|
||||
for (let item of this._rankList.List) {
|
||||
if (item.CloseTime > maxCloseTime) {
|
||||
maxCloseTime = item.CloseTime;
|
||||
}
|
||||
}
|
||||
|
||||
return Date.now() <= (maxCloseTime * 1000);
|
||||
}
|
||||
|
||||
getRankListStatusByType(type: string): number {
|
||||
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
let item = this._rankList.List.find((item: any) => item.Type === type);
|
||||
return item ? item.Status : 2;
|
||||
}
|
||||
|
||||
getRankListStatus(): number {
|
||||
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
let hasEnabled = false; // 是否有启用的
|
||||
let hasMaintenance = false; // 是否有维护的
|
||||
|
||||
for (let item of this._rankList.List) {
|
||||
if (item.Status === 0) {
|
||||
hasEnabled = true;
|
||||
break;
|
||||
} else if (item.Status === 1) {
|
||||
hasMaintenance = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (hasEnabled) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (hasMaintenance) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 2;
|
||||
}
|
||||
|
||||
getRankListServerId(): string | null {
|
||||
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
let id = this._rankList.List[0].Id;
|
||||
if (!id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
let parts = id.split('_');
|
||||
if (parts.length >= 3) {
|
||||
return parts[2];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
getRankEndTimeByType(type: string): number | null {
|
||||
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
let item = this._rankList.List.find((item: any) => item.Type === type);
|
||||
return item ? item.EndTime : null;
|
||||
}
|
||||
|
||||
getRankInfoByType(type: string): any | null {
|
||||
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
let item = this._rankList.List.find((item: any) => item.Type === type);
|
||||
return item || null;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "54eb3ccb-500c-4075-b108-6b21d7cfe65e",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
1887
assets/Game/SlotRanking/scripts/VScrollView.ts
Normal file
9
assets/Game/SlotRanking/scripts/VScrollView.ts.meta
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "f94d0735-0c94-4946-9d3f-545a3522f123",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
219
assets/Game/SlotRanking/scripts/VScrollViewItem.ts
Normal file
@ -0,0 +1,219 @@
|
||||
//@ts-ignore
|
||||
import { _decorator, Component, Node, EventTouch, Vec2, Label, Tween, tween, Vec3, settings, Sorting2D, RichText, sys } from 'cc';
|
||||
const { ccclass } = _decorator;
|
||||
|
||||
const hasSorting2d = Sorting2D !== undefined;
|
||||
if (!hasSorting2d) {
|
||||
// console.warn(`❌当前引擎版本不支持Sorting2D组件,如果需要请切换到3.8.7及以上版本`);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更改UI节点的渲染排序层级
|
||||
* @param sortingNode Node
|
||||
* @param sortingLayer number
|
||||
* @param sortingOrder number
|
||||
*/
|
||||
export function changeUISortingLayer(sortingNode: Node, sortingLayer: number, sortingOrder?: number) {
|
||||
if (!hasSorting2d) {
|
||||
return;
|
||||
}
|
||||
let sortingLayers = settings.querySettings('engine', 'sortingLayers') as any[];
|
||||
|
||||
//编辑器bug,默认有default,但是读取出来没有,需要自己配置一个后才会有默认数据.
|
||||
if (!sortingLayers || sortingLayers.length === 0) {
|
||||
sortingLayers = [{ id: 0, value: 0, name: 'default' }];
|
||||
}
|
||||
|
||||
const result = sortingLayers.find(layer => layer.value === sortingLayer);
|
||||
//如果没有找到对应的layer,则使用引擎内置默认层,并给出警告
|
||||
if (!result) {
|
||||
console.warn(`❌未找到对应的sortingLayer:${sortingLayer},请检查是否已在项目设置中配置该层级。将使用默认层级代替。`);
|
||||
sortingLayer = sortingLayers[0].value;
|
||||
}
|
||||
const sort2d = sortingNode.getComponent(Sorting2D) || sortingNode.addComponent(Sorting2D);
|
||||
if (sort2d) {
|
||||
//@ts-ignore
|
||||
sort2d.sortingLayer = sortingLayer;
|
||||
if (sortingOrder !== undefined) {
|
||||
//@ts-ignore
|
||||
sort2d.sortingOrder = sortingOrder;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 挂载在每个 item 预制体的根节点上
|
||||
* 负责处理点击逻辑,通过回调通知父组件
|
||||
*/
|
||||
@ccclass('VScrollViewItem')
|
||||
export class VScrollViewItem extends Component {
|
||||
/** 当前 item 对应的数据索引 */
|
||||
public dataIndex: number = -1;
|
||||
|
||||
public useItemClickEffect: boolean = true;
|
||||
|
||||
/** 点击回调(由 VirtualScrollView 注入) */
|
||||
public onClickCallback: ((index: number) => void) | null = null;
|
||||
|
||||
/** 长按回调(由 VirtualScrollView 注入) */
|
||||
public onLongPressCallback: ((index: number) => void) | null = null;
|
||||
|
||||
/** 长按触发时长(秒) */
|
||||
public longPressTime: number = 0.6;
|
||||
|
||||
private _touchStartNode: Node | null = null;
|
||||
private _isCanceled: boolean = false;
|
||||
private _startPos: Vec2 = new Vec2();
|
||||
private _moveThreshold: number = 40; // 滑动阈值
|
||||
private _clickThreshold: number = 10; // 点击阈值
|
||||
private _longPressTimer: number = 0; // 长按计时器
|
||||
private _isLongPressed: boolean = false; // 是否已触发长按
|
||||
|
||||
onLoad() {
|
||||
// 一次性注册事件,生命周期内不变
|
||||
this.node.on(Node.EventType.TOUCH_START, this._onTouchStart, this);
|
||||
this.node.on(Node.EventType.TOUCH_MOVE, this._onTouchMove, this);
|
||||
this.node.on(Node.EventType.TOUCH_END, this._onTouchEnd, this);
|
||||
this.node.on(Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this);
|
||||
}
|
||||
|
||||
protected start(): void {
|
||||
// this.onSortLayer();
|
||||
}
|
||||
|
||||
onDestroy() {
|
||||
// 清理事件
|
||||
this.node.off(Node.EventType.TOUCH_START, this._onTouchStart, this);
|
||||
this.node.off(Node.EventType.TOUCH_MOVE, this._onTouchMove, this);
|
||||
this.node.off(Node.EventType.TOUCH_END, this._onTouchEnd, this);
|
||||
this.node.off(Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将所有子节点的 Label 组件渲染单独排序在一起,并且item的每个lable组件都独立一个orderNumber,以免交错断合批
|
||||
* @param node
|
||||
*/
|
||||
public onSortLayer() {
|
||||
let orderNumber = 1;
|
||||
const labels = this.node.getComponentsInChildren(Label);
|
||||
for (let i = 0; i < labels.length; i++) {
|
||||
changeUISortingLayer(labels[i].node, 0, orderNumber);
|
||||
orderNumber++;
|
||||
}
|
||||
}
|
||||
|
||||
/** 关闭渲染分层 */
|
||||
public offSortLayer() {
|
||||
let orderNumber = 0;
|
||||
const labels = this.node.getComponentsInChildren(Label);
|
||||
for (let i = 0; i < labels.length; i++) {
|
||||
changeUISortingLayer(labels[i].node, 0, orderNumber);
|
||||
// const item = labels[i];
|
||||
// const sort2d = item.node.getComponent(Sorting2D);
|
||||
// sort2d && (sort2d.enabled = false);
|
||||
// orderNumber++;
|
||||
}
|
||||
}
|
||||
|
||||
/** 外部调用:更新数据索引 */
|
||||
public setDataIndex(index: number) {
|
||||
this.dataIndex = index;
|
||||
}
|
||||
|
||||
|
||||
protected update(dt: number): void {
|
||||
// 如果正在触摸且未取消,累加长按计时
|
||||
if (this._touchStartNode && !this._isCanceled && !this._isLongPressed) {
|
||||
this._longPressTimer += dt;
|
||||
if (this._longPressTimer >= this.longPressTime) {
|
||||
this._triggerLongPress();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private _triggerLongPress() {
|
||||
this._isLongPressed = true;
|
||||
if (this.onLongPressCallback) {
|
||||
this.onLongPressCallback(this.dataIndex);
|
||||
}
|
||||
// 触发长按后恢复缩放
|
||||
this._restoreScale();
|
||||
}
|
||||
|
||||
private _onTouchStart(e: EventTouch) {
|
||||
// console.log("_onTouchStart");
|
||||
this._touchStartNode = this.node;
|
||||
this._isCanceled = false;
|
||||
this._isLongPressed = false;
|
||||
this._longPressTimer = 0;
|
||||
e.getLocation(this._startPos);
|
||||
|
||||
// 缩放反馈(假设第一个子节点是内容容器)
|
||||
if (this.useItemClickEffect && this.node.children.length > 0) {
|
||||
this.node.setScale(0.95, 0.95);
|
||||
}
|
||||
}
|
||||
|
||||
private _onTouchMove(e: EventTouch) {
|
||||
if (this._isCanceled) return;
|
||||
|
||||
const movePos = e.getLocation();
|
||||
const dx = movePos.x - this._startPos.x;
|
||||
const dy = movePos.y - this._startPos.y;
|
||||
const dist = Math.sqrt(dx * dx + dy * dy);
|
||||
|
||||
// 超过阈值认为是滑动,取消点击和长按
|
||||
if (dist > this._moveThreshold) {
|
||||
this._isCanceled = true;
|
||||
this._restoreScale();
|
||||
this._touchStartNode = null;
|
||||
}
|
||||
}
|
||||
|
||||
private _onTouchEnd(e: EventTouch) {
|
||||
if (this._isCanceled) {
|
||||
this._reset();
|
||||
return;
|
||||
}
|
||||
|
||||
// 如果已经触发了长按,不再触发点击
|
||||
if (this._isLongPressed) {
|
||||
this._reset();
|
||||
return;
|
||||
}
|
||||
|
||||
this._restoreScale();
|
||||
|
||||
const endPos = e.getLocation();
|
||||
const dx = endPos.x - this._startPos.x;
|
||||
const dy = endPos.y - this._startPos.y;
|
||||
const dist = Math.sqrt(dx * dx + dy * dy);
|
||||
|
||||
// 移动距离小于阈值才算点击
|
||||
if (dist < this._clickThreshold && this._touchStartNode === this.node) {
|
||||
if (this.onClickCallback) {
|
||||
this.onClickCallback(this.dataIndex);
|
||||
}
|
||||
}
|
||||
|
||||
this._reset();
|
||||
}
|
||||
|
||||
private _onTouchCancel(e: EventTouch) {
|
||||
this._restoreScale();
|
||||
this._reset();
|
||||
}
|
||||
|
||||
private _restoreScale() {
|
||||
if (this.useItemClickEffect && this.node.children.length > 0) {
|
||||
this.node.setScale(1.0, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
private _reset() {
|
||||
this._touchStartNode = null;
|
||||
this._isCanceled = false;
|
||||
this._longPressTimer = 0;
|
||||
this._isLongPressed = false;
|
||||
}
|
||||
}
|
||||
9
assets/Game/SlotRanking/scripts/VScrollViewItem.ts.meta
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "eb01f13e-2ad1-4d80-9974-008ca1553138",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "c4927955-15fb-4a10-ba3e-9bdfe54bbe36",
|
||||
"uuid": "ac8502dd-4f1c-4de7-b639-a4ce95f8fb08",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "22238ee1-c0b3-4876-9610-e1b14c8e6676",
|
||||
"uuid": "4a074098-ef4f-4f6a-b8c9-1c75ffbe94ba",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
132
assets/Game/SlotRanking/spine/icon/icon.atlas
Normal file
@ -0,0 +1,132 @@
|
||||
|
||||
icon.png
|
||||
size: 1127,322
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
42
|
||||
rotate: true
|
||||
xy: 952, 165
|
||||
size: 155, 80
|
||||
orig: 200, 112
|
||||
offset: 26, 9
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0019_图层-30
|
||||
rotate: true
|
||||
xy: 857, 165
|
||||
size: 155, 93
|
||||
orig: 200, 112
|
||||
offset: 22, 11
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0020_图层-28
|
||||
rotate: true
|
||||
xy: 843, 7
|
||||
size: 155, 94
|
||||
orig: 200, 112
|
||||
offset: 22, 10
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0021_图层-26
|
||||
rotate: false
|
||||
xy: 162, 8
|
||||
size: 157, 94
|
||||
orig: 200, 112
|
||||
offset: 21, 10
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0022_图层-24
|
||||
rotate: true
|
||||
xy: 1032, 12
|
||||
size: 151, 92
|
||||
orig: 200, 112
|
||||
offset: 24, 12
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0023_图层-22
|
||||
rotate: true
|
||||
xy: 939, 8
|
||||
size: 155, 91
|
||||
orig: 200, 112
|
||||
offset: 21, 12
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0024_图层-20
|
||||
rotate: true
|
||||
xy: 764, 164
|
||||
size: 156, 91
|
||||
orig: 200, 112
|
||||
offset: 21, 12
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0025_图层-18
|
||||
rotate: true
|
||||
xy: 670, 164
|
||||
size: 156, 92
|
||||
orig: 200, 112
|
||||
offset: 21, 11
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0027_图层-14
|
||||
rotate: true
|
||||
xy: 1034, 170
|
||||
size: 150, 91
|
||||
orig: 200, 112
|
||||
offset: 26, 12
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0029_图层-10
|
||||
rotate: false
|
||||
xy: 2, 8
|
||||
size: 158, 94
|
||||
orig: 200, 112
|
||||
offset: 20, 10
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0030_图层-8
|
||||
rotate: false
|
||||
xy: 495, 51
|
||||
size: 157, 94
|
||||
orig: 200, 112
|
||||
offset: 21, 10
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0031_图层-6
|
||||
rotate: true
|
||||
xy: 574, 163
|
||||
size: 157, 94
|
||||
orig: 200, 112
|
||||
offset: 21, 10
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0032_图层-4
|
||||
rotate: true
|
||||
xy: 749, 6
|
||||
size: 156, 92
|
||||
orig: 200, 112
|
||||
offset: 20, 12
|
||||
index: -1
|
||||
a/看图王批量图片转换结果/-qkNJhy_0033_图层-2
|
||||
rotate: true
|
||||
xy: 654, 5
|
||||
size: 156, 93
|
||||
orig: 200, 112
|
||||
offset: 21, 10
|
||||
index: -1
|
||||
hu
|
||||
rotate: false
|
||||
xy: 321, 2
|
||||
size: 172, 128
|
||||
orig: 180, 129
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
long
|
||||
rotate: true
|
||||
xy: 220, 132
|
||||
size: 188, 178
|
||||
orig: 191, 180
|
||||
offset: 2, 1
|
||||
index: -1
|
||||
qiu
|
||||
rotate: true
|
||||
xy: 400, 147
|
||||
size: 173, 172
|
||||
orig: 175, 174
|
||||
offset: 1, 1
|
||||
index: -1
|
||||
qiu2
|
||||
rotate: false
|
||||
xy: 2, 104
|
||||
size: 216, 216
|
||||
orig: 218, 218
|
||||
offset: 1, 1
|
||||
index: -1
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "1.0.0",
|
||||
"importer": "*",
|
||||
"imported": true,
|
||||
"uuid": "48a23beb-b7e4-486c-9689-3516288bcbfc",
|
||||
"uuid": "40a78051-01cd-4985-87d6-06379fccc65f",
|
||||
"files": [
|
||||
".atlas",
|
||||
".json"
|
||||
1
assets/Game/SlotRanking/spine/icon/icon.json
Normal file
@ -2,7 +2,7 @@
|
||||
"ver": "1.2.6",
|
||||
"importer": "spine-data",
|
||||
"imported": true,
|
||||
"uuid": "60909bfc-2af4-45d3-9f3b-6ac50df88aa5",
|
||||
"uuid": "9c23e37c-aa91-406e-95ea-5a0e324ff93e",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
BIN
assets/Game/SlotRanking/spine/icon/icon.png
Normal file
|
After Width: | Height: | Size: 428 KiB |
134
assets/Game/SlotRanking/spine/icon/icon.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "de6e593a-8af8-4f91-a6c6-3fcf5926f6f4",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "de6e593a-8af8-4f91-a6c6-3fcf5926f6f4@6c48a",
|
||||
"displayName": "icon",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "de6e593a-8af8-4f91-a6c6-3fcf5926f6f4",
|
||||
"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": "de6e593a-8af8-4f91-a6c6-3fcf5926f6f4@f9941",
|
||||
"displayName": "icon",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 2,
|
||||
"trimY": 2,
|
||||
"width": 1123,
|
||||
"height": 318,
|
||||
"rawWidth": 1127,
|
||||
"rawHeight": 322,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-561.5,
|
||||
-159,
|
||||
0,
|
||||
561.5,
|
||||
-159,
|
||||
0,
|
||||
-561.5,
|
||||
159,
|
||||
0,
|
||||
561.5,
|
||||
159,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
2,
|
||||
320,
|
||||
1125,
|
||||
320,
|
||||
2,
|
||||
2,
|
||||
1125,
|
||||
2
|
||||
],
|
||||
"nuv": [
|
||||
0.001774622892635315,
|
||||
0.006211180124223602,
|
||||
0.9982253771073647,
|
||||
0.006211180124223602,
|
||||
0.001774622892635315,
|
||||
0.9937888198757764,
|
||||
0.9982253771073647,
|
||||
0.9937888198757764
|
||||
],
|
||||
"minPos": [
|
||||
-561.5,
|
||||
-159,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
561.5,
|
||||
159,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "de6e593a-8af8-4f91-a6c6-3fcf5926f6f4@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "de6e593a-8af8-4f91-a6c6-3fcf5926f6f4@6c48a"
|
||||
}
|
||||
}
|
||||
9
assets/Game/SlotRanking/textures.meta
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "b171bd89-273f-45ba-bde4-249b6962f615",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/btn_dt.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
134
assets/Game/SlotRanking/textures/btn_dt.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "b9e25a78-98c2-42a5-83bb-516d22a5604c",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "b9e25a78-98c2-42a5-83bb-516d22a5604c@6c48a",
|
||||
"displayName": "btn_dt",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "b9e25a78-98c2-42a5-83bb-516d22a5604c",
|
||||
"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": "b9e25a78-98c2-42a5-83bb-516d22a5604c@f9941",
|
||||
"displayName": "btn_dt",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0.5,
|
||||
"offsetY": 0,
|
||||
"trimX": 1,
|
||||
"trimY": 0,
|
||||
"width": 216,
|
||||
"height": 237,
|
||||
"rawWidth": 217,
|
||||
"rawHeight": 237,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-108,
|
||||
-118.5,
|
||||
0,
|
||||
108,
|
||||
-118.5,
|
||||
0,
|
||||
-108,
|
||||
118.5,
|
||||
0,
|
||||
108,
|
||||
118.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
1,
|
||||
237,
|
||||
217,
|
||||
237,
|
||||
1,
|
||||
0,
|
||||
217,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0.004608294930875576,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0.004608294930875576,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-108,
|
||||
-118.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
108,
|
||||
118.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "b9e25a78-98c2-42a5-83bb-516d22a5604c@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "b9e25a78-98c2-42a5-83bb-516d22a5604c@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/ic_jiantou_01.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
134
assets/Game/SlotRanking/textures/ic_jiantou_01.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "e24d5bb3-6583-44c4-b7c7-ffaa8c8c6305",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "e24d5bb3-6583-44c4-b7c7-ffaa8c8c6305@6c48a",
|
||||
"displayName": "ic_jiantou_01",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "e24d5bb3-6583-44c4-b7c7-ffaa8c8c6305",
|
||||
"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": "e24d5bb3-6583-44c4-b7c7-ffaa8c8c6305@f9941",
|
||||
"displayName": "ic_jiantou_01",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 61,
|
||||
"height": 74,
|
||||
"rawWidth": 61,
|
||||
"rawHeight": 74,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-30.5,
|
||||
-37,
|
||||
0,
|
||||
30.5,
|
||||
-37,
|
||||
0,
|
||||
-30.5,
|
||||
37,
|
||||
0,
|
||||
30.5,
|
||||
37,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
74,
|
||||
61,
|
||||
74,
|
||||
0,
|
||||
0,
|
||||
61,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-30.5,
|
||||
-37,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
30.5,
|
||||
37,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "e24d5bb3-6583-44c4-b7c7-ffaa8c8c6305@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "e24d5bb3-6583-44c4-b7c7-ffaa8c8c6305@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/ic_jiantou_02.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
@ -2,7 +2,7 @@
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "8f1ba23f-548a-4d9d-9b8b-6a9559a467ec",
|
||||
"uuid": "d5ebea81-4248-4dc6-8fcb-589e7a4a9bc2",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
@ -10,14 +10,14 @@
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "8f1ba23f-548a-4d9d-9b8b-6a9559a467ec@6c48a",
|
||||
"displayName": "BarA_Frame_01",
|
||||
"uuid": "d5ebea81-4248-4dc6-8fcb-589e7a4a9bc2@6c48a",
|
||||
"displayName": "ic_jiantou_02",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "8f1ba23f-548a-4d9d-9b8b-6a9559a467ec",
|
||||
"imageUuidOrDatabaseUri": "d5ebea81-4248-4dc6-8fcb-589e7a4a9bc2",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
@ -34,8 +34,8 @@
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "8f1ba23f-548a-4d9d-9b8b-6a9559a467ec@f9941",
|
||||
"displayName": "BarA_Frame_01",
|
||||
"uuid": "d5ebea81-4248-4dc6-8fcb-589e7a4a9bc2@f9941",
|
||||
"displayName": "ic_jiantou_02",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
@ -46,10 +46,10 @@
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 529,
|
||||
"height": 58,
|
||||
"rawWidth": 529,
|
||||
"rawHeight": 58,
|
||||
"width": 58,
|
||||
"height": 73,
|
||||
"rawWidth": 58,
|
||||
"rawHeight": 73,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
@ -61,17 +61,17 @@
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-264.5,
|
||||
-29,
|
||||
-36.5,
|
||||
0,
|
||||
29,
|
||||
-36.5,
|
||||
0,
|
||||
264.5,
|
||||
-29,
|
||||
36.5,
|
||||
0,
|
||||
-264.5,
|
||||
29,
|
||||
0,
|
||||
264.5,
|
||||
29,
|
||||
36.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
@ -84,12 +84,12 @@
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
73,
|
||||
58,
|
||||
529,
|
||||
58,
|
||||
73,
|
||||
0,
|
||||
0,
|
||||
529,
|
||||
58,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
@ -103,18 +103,18 @@
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-264.5,
|
||||
-29,
|
||||
-36.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
264.5,
|
||||
29,
|
||||
36.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "8f1ba23f-548a-4d9d-9b8b-6a9559a467ec@6c48a",
|
||||
"imageUuidOrDatabaseUri": "d5ebea81-4248-4dc6-8fcb-589e7a4a9bc2@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
@ -129,6 +129,6 @@
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "8f1ba23f-548a-4d9d-9b8b-6a9559a467ec@6c48a"
|
||||
"redirect": "d5ebea81-4248-4dc6-8fcb-589e7a4a9bc2@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/ic_jz.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
@ -2,7 +2,7 @@
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "c2b5ef32-d60f-4744-b0d1-3b21c3039238",
|
||||
"uuid": "593b6976-7307-431c-bdc4-631765de366a",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
@ -10,14 +10,14 @@
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "c2b5ef32-d60f-4744-b0d1-3b21c3039238@6c48a",
|
||||
"displayName": "1",
|
||||
"uuid": "593b6976-7307-431c-bdc4-631765de366a@6c48a",
|
||||
"displayName": "ic_jz",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "c2b5ef32-d60f-4744-b0d1-3b21c3039238",
|
||||
"imageUuidOrDatabaseUri": "593b6976-7307-431c-bdc4-631765de366a",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
@ -34,8 +34,8 @@
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "c2b5ef32-d60f-4744-b0d1-3b21c3039238@f9941",
|
||||
"displayName": "1",
|
||||
"uuid": "593b6976-7307-431c-bdc4-631765de366a@f9941",
|
||||
"displayName": "ic_jz",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
@ -45,9 +45,9 @@
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 2,
|
||||
"trimY": 0,
|
||||
"width": 100,
|
||||
"height": 96,
|
||||
"height": 100,
|
||||
"rawWidth": 100,
|
||||
"rawHeight": 100,
|
||||
"borderTop": 0,
|
||||
@ -62,16 +62,16 @@
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-50,
|
||||
-48,
|
||||
-50,
|
||||
0,
|
||||
50,
|
||||
-48,
|
||||
-50,
|
||||
0,
|
||||
-50,
|
||||
48,
|
||||
50,
|
||||
0,
|
||||
50,
|
||||
48,
|
||||
50,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
@ -84,37 +84,37 @@
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
98,
|
||||
100,
|
||||
98,
|
||||
100,
|
||||
100,
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
100,
|
||||
2
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0.02,
|
||||
1,
|
||||
0.02,
|
||||
0,
|
||||
0.98,
|
||||
1,
|
||||
0.98
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-50,
|
||||
-48,
|
||||
-50,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
50,
|
||||
48,
|
||||
50,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "c2b5ef32-d60f-4744-b0d1-3b21c3039238@6c48a",
|
||||
"imageUuidOrDatabaseUri": "593b6976-7307-431c-bdc4-631765de366a@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
@ -129,6 +129,6 @@
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "c2b5ef32-d60f-4744-b0d1-3b21c3039238@6c48a"
|
||||
"redirect": "593b6976-7307-431c-bdc4-631765de366a@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/jz_01.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
134
assets/Game/SlotRanking/textures/jz_01.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "3f3b7b12-34fc-47a9-859c-7c8d084ae64f",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "3f3b7b12-34fc-47a9-859c-7c8d084ae64f@6c48a",
|
||||
"displayName": "jz_01",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "3f3b7b12-34fc-47a9-859c-7c8d084ae64f",
|
||||
"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": "3f3b7b12-34fc-47a9-859c-7c8d084ae64f@f9941",
|
||||
"displayName": "jz_01",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 1.5,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 1073,
|
||||
"height": 83,
|
||||
"rawWidth": 1073,
|
||||
"rawHeight": 86,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-536.5,
|
||||
-41.5,
|
||||
0,
|
||||
536.5,
|
||||
-41.5,
|
||||
0,
|
||||
-536.5,
|
||||
41.5,
|
||||
0,
|
||||
536.5,
|
||||
41.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
86,
|
||||
1073,
|
||||
86,
|
||||
0,
|
||||
3,
|
||||
1073,
|
||||
3
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0.03488372093023256,
|
||||
1,
|
||||
0.03488372093023256,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-536.5,
|
||||
-41.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
536.5,
|
||||
41.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "3f3b7b12-34fc-47a9-859c-7c8d084ae64f@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "3f3b7b12-34fc-47a9-859c-7c8d084ae64f@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/jz_02.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
134
assets/Game/SlotRanking/textures/jz_02.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "7c164458-0479-4e78-a2e8-9c4f4eaf49fa",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "7c164458-0479-4e78-a2e8-9c4f4eaf49fa@6c48a",
|
||||
"displayName": "jz_02",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "7c164458-0479-4e78-a2e8-9c4f4eaf49fa",
|
||||
"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": "7c164458-0479-4e78-a2e8-9c4f4eaf49fa@f9941",
|
||||
"displayName": "jz_02",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 1.5,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 1073,
|
||||
"height": 83,
|
||||
"rawWidth": 1073,
|
||||
"rawHeight": 86,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-536.5,
|
||||
-41.5,
|
||||
0,
|
||||
536.5,
|
||||
-41.5,
|
||||
0,
|
||||
-536.5,
|
||||
41.5,
|
||||
0,
|
||||
536.5,
|
||||
41.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
86,
|
||||
1073,
|
||||
86,
|
||||
0,
|
||||
3,
|
||||
1073,
|
||||
3
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0.03488372093023256,
|
||||
1,
|
||||
0.03488372093023256,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-536.5,
|
||||
-41.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
536.5,
|
||||
41.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "7c164458-0479-4e78-a2e8-9c4f4eaf49fa@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "7c164458-0479-4e78-a2e8-9c4f4eaf49fa@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/jz_03.png
Normal file
|
After Width: | Height: | Size: 811 KiB |
134
assets/Game/SlotRanking/textures/jz_03.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "2080dd01-e043-402b-8b3a-b1a1ed9574a5",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "2080dd01-e043-402b-8b3a-b1a1ed9574a5@6c48a",
|
||||
"displayName": "jz_03",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "2080dd01-e043-402b-8b3a-b1a1ed9574a5",
|
||||
"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": "2080dd01-e043-402b-8b3a-b1a1ed9574a5@f9941",
|
||||
"displayName": "jz_03",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 945,
|
||||
"height": 1162,
|
||||
"rawWidth": 945,
|
||||
"rawHeight": 1162,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-472.5,
|
||||
-581,
|
||||
0,
|
||||
472.5,
|
||||
-581,
|
||||
0,
|
||||
-472.5,
|
||||
581,
|
||||
0,
|
||||
472.5,
|
||||
581,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
1162,
|
||||
945,
|
||||
1162,
|
||||
0,
|
||||
0,
|
||||
945,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-472.5,
|
||||
-581,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
472.5,
|
||||
581,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "2080dd01-e043-402b-8b3a-b1a1ed9574a5@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "2080dd01-e043-402b-8b3a-b1a1ed9574a5@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/jz_04.png
Normal file
|
After Width: | Height: | Size: 614 KiB |
134
assets/Game/SlotRanking/textures/jz_04.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "c8673caf-b43a-48e3-b1b9-1372123f59ca",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "c8673caf-b43a-48e3-b1b9-1372123f59ca@6c48a",
|
||||
"displayName": "jz_04",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "c8673caf-b43a-48e3-b1b9-1372123f59ca",
|
||||
"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": "c8673caf-b43a-48e3-b1b9-1372123f59ca@f9941",
|
||||
"displayName": "jz_04",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 945,
|
||||
"height": 863,
|
||||
"rawWidth": 945,
|
||||
"rawHeight": 863,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-472.5,
|
||||
-431.5,
|
||||
0,
|
||||
472.5,
|
||||
-431.5,
|
||||
0,
|
||||
-472.5,
|
||||
431.5,
|
||||
0,
|
||||
472.5,
|
||||
431.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
863,
|
||||
945,
|
||||
863,
|
||||
0,
|
||||
0,
|
||||
945,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-472.5,
|
||||
-431.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
472.5,
|
||||
431.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "c8673caf-b43a-48e3-b1b9-1372123f59ca@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "c8673caf-b43a-48e3-b1b9-1372123f59ca@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/jz_05.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
134
assets/Game/SlotRanking/textures/jz_05.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "0619ba34-c60c-434d-9153-e301bf4c490e",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "0619ba34-c60c-434d-9153-e301bf4c490e@6c48a",
|
||||
"displayName": "jz_05",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "0619ba34-c60c-434d-9153-e301bf4c490e",
|
||||
"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": "0619ba34-c60c-434d-9153-e301bf4c490e@f9941",
|
||||
"displayName": "jz_05",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 53,
|
||||
"height": 358,
|
||||
"rawWidth": 53,
|
||||
"rawHeight": 358,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-26.5,
|
||||
-179,
|
||||
0,
|
||||
26.5,
|
||||
-179,
|
||||
0,
|
||||
-26.5,
|
||||
179,
|
||||
0,
|
||||
26.5,
|
||||
179,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
358,
|
||||
53,
|
||||
358,
|
||||
0,
|
||||
0,
|
||||
53,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-26.5,
|
||||
-179,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
26.5,
|
||||
179,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "0619ba34-c60c-434d-9153-e301bf4c490e@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "0619ba34-c60c-434d-9153-e301bf4c490e@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/jz_06.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
134
assets/Game/SlotRanking/textures/jz_06.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d@6c48a",
|
||||
"displayName": "jz_06",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d",
|
||||
"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": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d@f9941",
|
||||
"displayName": "jz_06",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 53,
|
||||
"height": 358,
|
||||
"rawWidth": 53,
|
||||
"rawHeight": 358,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-26.5,
|
||||
-179,
|
||||
0,
|
||||
26.5,
|
||||
-179,
|
||||
0,
|
||||
-26.5,
|
||||
179,
|
||||
0,
|
||||
26.5,
|
||||
179,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
358,
|
||||
53,
|
||||
358,
|
||||
0,
|
||||
0,
|
||||
53,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-26.5,
|
||||
-179,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
26.5,
|
||||
179,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_btn_01.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
134
assets/Game/SlotRanking/textures/lhb_btn_01.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "807e941e-42a9-450d-8568-2f37d63dfa56",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "807e941e-42a9-450d-8568-2f37d63dfa56@6c48a",
|
||||
"displayName": "lhb_btn_01",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "807e941e-42a9-450d-8568-2f37d63dfa56",
|
||||
"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": "807e941e-42a9-450d-8568-2f37d63dfa56@f9941",
|
||||
"displayName": "lhb_btn_01",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 285,
|
||||
"height": 108,
|
||||
"rawWidth": 285,
|
||||
"rawHeight": 108,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-142.5,
|
||||
-54,
|
||||
0,
|
||||
142.5,
|
||||
-54,
|
||||
0,
|
||||
-142.5,
|
||||
54,
|
||||
0,
|
||||
142.5,
|
||||
54,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
108,
|
||||
285,
|
||||
108,
|
||||
0,
|
||||
0,
|
||||
285,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-142.5,
|
||||
-54,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
142.5,
|
||||
54,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "807e941e-42a9-450d-8568-2f37d63dfa56@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "807e941e-42a9-450d-8568-2f37d63dfa56@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_btn_02.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
134
assets/Game/SlotRanking/textures/lhb_btn_02.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "fc844223-cc11-416a-9019-be9ff4e74cc5",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "fc844223-cc11-416a-9019-be9ff4e74cc5@6c48a",
|
||||
"displayName": "lhb_btn_02",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "fc844223-cc11-416a-9019-be9ff4e74cc5",
|
||||
"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": "fc844223-cc11-416a-9019-be9ff4e74cc5@f9941",
|
||||
"displayName": "lhb_btn_02",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 285,
|
||||
"height": 108,
|
||||
"rawWidth": 285,
|
||||
"rawHeight": 108,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-142.5,
|
||||
-54,
|
||||
0,
|
||||
142.5,
|
||||
-54,
|
||||
0,
|
||||
-142.5,
|
||||
54,
|
||||
0,
|
||||
142.5,
|
||||
54,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
108,
|
||||
285,
|
||||
108,
|
||||
0,
|
||||
0,
|
||||
285,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-142.5,
|
||||
-54,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
142.5,
|
||||
54,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "fc844223-cc11-416a-9019-be9ff4e74cc5@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "fc844223-cc11-416a-9019-be9ff4e74cc5@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_btn_03.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
134
assets/Game/SlotRanking/textures/lhb_btn_03.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "76f8933d-dc09-49e9-9249-db7a0bd9ad7a",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "76f8933d-dc09-49e9-9249-db7a0bd9ad7a@6c48a",
|
||||
"displayName": "lhb_btn_03",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "76f8933d-dc09-49e9-9249-db7a0bd9ad7a",
|
||||
"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": "76f8933d-dc09-49e9-9249-db7a0bd9ad7a@f9941",
|
||||
"displayName": "lhb_btn_03",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 505,
|
||||
"height": 140,
|
||||
"rawWidth": 505,
|
||||
"rawHeight": 140,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-252.5,
|
||||
-70,
|
||||
0,
|
||||
252.5,
|
||||
-70,
|
||||
0,
|
||||
-252.5,
|
||||
70,
|
||||
0,
|
||||
252.5,
|
||||
70,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
140,
|
||||
505,
|
||||
140,
|
||||
0,
|
||||
0,
|
||||
505,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-252.5,
|
||||
-70,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
252.5,
|
||||
70,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "76f8933d-dc09-49e9-9249-db7a0bd9ad7a@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "76f8933d-dc09-49e9-9249-db7a0bd9ad7a@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_btn_close.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
134
assets/Game/SlotRanking/textures/lhb_btn_close.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "b77bd8f1-7c08-4f64-bc13-503cf458c08e",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "b77bd8f1-7c08-4f64-bc13-503cf458c08e@6c48a",
|
||||
"displayName": "lhb_btn_close",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "b77bd8f1-7c08-4f64-bc13-503cf458c08e",
|
||||
"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": "b77bd8f1-7c08-4f64-bc13-503cf458c08e@f9941",
|
||||
"displayName": "lhb_btn_close",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 109,
|
||||
"height": 109,
|
||||
"rawWidth": 109,
|
||||
"rawHeight": 109,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-54.5,
|
||||
-54.5,
|
||||
0,
|
||||
54.5,
|
||||
-54.5,
|
||||
0,
|
||||
-54.5,
|
||||
54.5,
|
||||
0,
|
||||
54.5,
|
||||
54.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
109,
|
||||
109,
|
||||
109,
|
||||
0,
|
||||
0,
|
||||
109,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-54.5,
|
||||
-54.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
54.5,
|
||||
54.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "b77bd8f1-7c08-4f64-bc13-503cf458c08e@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "b77bd8f1-7c08-4f64-bc13-503cf458c08e@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_db_xinxi.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
@ -2,7 +2,7 @@
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "52b3fddb-f88e-4857-b33a-ddc3495487db",
|
||||
"uuid": "57b82869-63dd-4e83-9d66-187cbfd4725b",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
@ -10,14 +10,14 @@
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "52b3fddb-f88e-4857-b33a-ddc3495487db@6c48a",
|
||||
"displayName": "megawin_d",
|
||||
"uuid": "57b82869-63dd-4e83-9d66-187cbfd4725b@6c48a",
|
||||
"displayName": "lhb_db_xinxi",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "52b3fddb-f88e-4857-b33a-ddc3495487db",
|
||||
"imageUuidOrDatabaseUri": "57b82869-63dd-4e83-9d66-187cbfd4725b",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
@ -34,8 +34,8 @@
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "52b3fddb-f88e-4857-b33a-ddc3495487db@f9941",
|
||||
"displayName": "megawin_d",
|
||||
"uuid": "57b82869-63dd-4e83-9d66-187cbfd4725b@f9941",
|
||||
"displayName": "lhb_db_xinxi",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
@ -47,9 +47,9 @@
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 1080,
|
||||
"height": 2360,
|
||||
"height": 59,
|
||||
"rawWidth": 1080,
|
||||
"rawHeight": 2360,
|
||||
"rawHeight": 59,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
@ -62,16 +62,16 @@
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-540,
|
||||
-1180,
|
||||
-29.5,
|
||||
0,
|
||||
540,
|
||||
-1180,
|
||||
-29.5,
|
||||
0,
|
||||
-540,
|
||||
1180,
|
||||
29.5,
|
||||
0,
|
||||
540,
|
||||
1180,
|
||||
29.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
@ -84,9 +84,9 @@
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
2360,
|
||||
59,
|
||||
1080,
|
||||
2360,
|
||||
59,
|
||||
0,
|
||||
0,
|
||||
1080,
|
||||
@ -104,17 +104,17 @@
|
||||
],
|
||||
"minPos": [
|
||||
-540,
|
||||
-1180,
|
||||
-29.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
540,
|
||||
1180,
|
||||
29.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "52b3fddb-f88e-4857-b33a-ddc3495487db@6c48a",
|
||||
"imageUuidOrDatabaseUri": "57b82869-63dd-4e83-9d66-187cbfd4725b@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
@ -129,6 +129,6 @@
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "52b3fddb-f88e-4857-b33a-ddc3495487db@6c48a"
|
||||
"redirect": "57b82869-63dd-4e83-9d66-187cbfd4725b@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_hz_01.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
@ -2,7 +2,7 @@
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "cd894b1d-e8fe-47fc-a218-62f21c8a8060",
|
||||
"uuid": "3c5f22b2-9c54-4aa7-854d-9d435e727a4f",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
@ -10,14 +10,14 @@
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "cd894b1d-e8fe-47fc-a218-62f21c8a8060@6c48a",
|
||||
"displayName": "16",
|
||||
"uuid": "3c5f22b2-9c54-4aa7-854d-9d435e727a4f@6c48a",
|
||||
"displayName": "lhb_hz_01",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "cd894b1d-e8fe-47fc-a218-62f21c8a8060",
|
||||
"imageUuidOrDatabaseUri": "3c5f22b2-9c54-4aa7-854d-9d435e727a4f",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
@ -34,8 +34,8 @@
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "cd894b1d-e8fe-47fc-a218-62f21c8a8060@f9941",
|
||||
"displayName": "16",
|
||||
"uuid": "3c5f22b2-9c54-4aa7-854d-9d435e727a4f@f9941",
|
||||
"displayName": "lhb_hz_01",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
@ -46,10 +46,10 @@
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 96,
|
||||
"height": 96,
|
||||
"rawWidth": 96,
|
||||
"rawHeight": 96,
|
||||
"width": 62,
|
||||
"height": 62,
|
||||
"rawWidth": 62,
|
||||
"rawHeight": 62,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
@ -61,17 +61,17 @@
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-48,
|
||||
-48,
|
||||
-31,
|
||||
-31,
|
||||
0,
|
||||
48,
|
||||
-48,
|
||||
31,
|
||||
-31,
|
||||
0,
|
||||
-48,
|
||||
48,
|
||||
-31,
|
||||
31,
|
||||
0,
|
||||
48,
|
||||
48,
|
||||
31,
|
||||
31,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
@ -84,12 +84,12 @@
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
96,
|
||||
96,
|
||||
96,
|
||||
62,
|
||||
62,
|
||||
62,
|
||||
0,
|
||||
0,
|
||||
96,
|
||||
62,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
@ -103,18 +103,18 @@
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-48,
|
||||
-48,
|
||||
-31,
|
||||
-31,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
48,
|
||||
48,
|
||||
31,
|
||||
31,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "cd894b1d-e8fe-47fc-a218-62f21c8a8060@6c48a",
|
||||
"imageUuidOrDatabaseUri": "3c5f22b2-9c54-4aa7-854d-9d435e727a4f@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
@ -129,6 +129,6 @@
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "cd894b1d-e8fe-47fc-a218-62f21c8a8060@6c48a"
|
||||
"redirect": "3c5f22b2-9c54-4aa7-854d-9d435e727a4f@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_hz_02.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
134
assets/Game/SlotRanking/textures/lhb_hz_02.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "5b5977b4-43c2-49d4-bd4c-d69eda0f7f5d",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "5b5977b4-43c2-49d4-bd4c-d69eda0f7f5d@6c48a",
|
||||
"displayName": "lhb_hz_02",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "5b5977b4-43c2-49d4-bd4c-d69eda0f7f5d",
|
||||
"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": "5b5977b4-43c2-49d4-bd4c-d69eda0f7f5d@f9941",
|
||||
"displayName": "lhb_hz_02",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 62,
|
||||
"height": 61,
|
||||
"rawWidth": 62,
|
||||
"rawHeight": 61,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-31,
|
||||
-30.5,
|
||||
0,
|
||||
31,
|
||||
-30.5,
|
||||
0,
|
||||
-31,
|
||||
30.5,
|
||||
0,
|
||||
31,
|
||||
30.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
61,
|
||||
62,
|
||||
61,
|
||||
0,
|
||||
0,
|
||||
62,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-31,
|
||||
-30.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
31,
|
||||
30.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "5b5977b4-43c2-49d4-bd4c-d69eda0f7f5d@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "5b5977b4-43c2-49d4-bd4c-d69eda0f7f5d@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_hz_03.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
134
assets/Game/SlotRanking/textures/lhb_hz_03.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "eed2cfea-6574-4872-a0bc-47bc4ccc1e52",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "eed2cfea-6574-4872-a0bc-47bc4ccc1e52@6c48a",
|
||||
"displayName": "lhb_hz_03",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "eed2cfea-6574-4872-a0bc-47bc4ccc1e52",
|
||||
"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": "eed2cfea-6574-4872-a0bc-47bc4ccc1e52@f9941",
|
||||
"displayName": "lhb_hz_03",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 62,
|
||||
"height": 61,
|
||||
"rawWidth": 62,
|
||||
"rawHeight": 61,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-31,
|
||||
-30.5,
|
||||
0,
|
||||
31,
|
||||
-30.5,
|
||||
0,
|
||||
-31,
|
||||
30.5,
|
||||
0,
|
||||
31,
|
||||
30.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
61,
|
||||
62,
|
||||
61,
|
||||
0,
|
||||
0,
|
||||
62,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-31,
|
||||
-30.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
31,
|
||||
30.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "eed2cfea-6574-4872-a0bc-47bc4ccc1e52@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "eed2cfea-6574-4872-a0bc-47bc4ccc1e52@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_ic_cha.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
@ -2,7 +2,7 @@
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "cfa7d01c-040d-4fdc-98c5-2fed629342f5",
|
||||
"uuid": "6733817d-45f3-4c6c-8ef8-4869b7d3fce2",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
@ -10,14 +10,14 @@
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "cfa7d01c-040d-4fdc-98c5-2fed629342f5@6c48a",
|
||||
"displayName": "vfx_stars_01",
|
||||
"uuid": "6733817d-45f3-4c6c-8ef8-4869b7d3fce2@6c48a",
|
||||
"displayName": "lhb_ic_cha",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "cfa7d01c-040d-4fdc-98c5-2fed629342f5",
|
||||
"imageUuidOrDatabaseUri": "6733817d-45f3-4c6c-8ef8-4869b7d3fce2",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
@ -34,8 +34,8 @@
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "cfa7d01c-040d-4fdc-98c5-2fed629342f5@f9941",
|
||||
"displayName": "vfx_stars_01",
|
||||
"uuid": "6733817d-45f3-4c6c-8ef8-4869b7d3fce2@f9941",
|
||||
"displayName": "lhb_ic_cha",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
@ -46,10 +46,10 @@
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 56,
|
||||
"height": 56,
|
||||
"rawWidth": 56,
|
||||
"rawHeight": 56,
|
||||
"width": 54,
|
||||
"height": 52,
|
||||
"rawWidth": 54,
|
||||
"rawHeight": 52,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
@ -61,17 +61,17 @@
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-28,
|
||||
-28,
|
||||
-27,
|
||||
-26,
|
||||
0,
|
||||
28,
|
||||
-28,
|
||||
27,
|
||||
-26,
|
||||
0,
|
||||
-28,
|
||||
28,
|
||||
-27,
|
||||
26,
|
||||
0,
|
||||
28,
|
||||
28,
|
||||
27,
|
||||
26,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
@ -84,12 +84,12 @@
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
56,
|
||||
56,
|
||||
56,
|
||||
52,
|
||||
54,
|
||||
52,
|
||||
0,
|
||||
0,
|
||||
56,
|
||||
54,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
@ -103,18 +103,18 @@
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-28,
|
||||
-28,
|
||||
-27,
|
||||
-26,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
28,
|
||||
28,
|
||||
27,
|
||||
26,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "cfa7d01c-040d-4fdc-98c5-2fed629342f5@6c48a",
|
||||
"imageUuidOrDatabaseUri": "6733817d-45f3-4c6c-8ef8-4869b7d3fce2@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
@ -129,6 +129,6 @@
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "cfa7d01c-040d-4fdc-98c5-2fed629342f5@6c48a"
|
||||
"redirect": "6733817d-45f3-4c6c-8ef8-4869b7d3fce2@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_ic_gou.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
@ -2,7 +2,7 @@
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "84c9a773-21c6-4b5c-9864-3656db19841d",
|
||||
"uuid": "97f7e50b-8772-4456-8393-706cd43327d4",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
@ -10,14 +10,14 @@
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "84c9a773-21c6-4b5c-9864-3656db19841d@6c48a",
|
||||
"displayName": "vfx_stars_01",
|
||||
"uuid": "97f7e50b-8772-4456-8393-706cd43327d4@6c48a",
|
||||
"displayName": "lhb_ic_gou",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "84c9a773-21c6-4b5c-9864-3656db19841d",
|
||||
"imageUuidOrDatabaseUri": "97f7e50b-8772-4456-8393-706cd43327d4",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
@ -34,8 +34,8 @@
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "84c9a773-21c6-4b5c-9864-3656db19841d@f9941",
|
||||
"displayName": "vfx_stars_01",
|
||||
"uuid": "97f7e50b-8772-4456-8393-706cd43327d4@f9941",
|
||||
"displayName": "lhb_ic_gou",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
@ -46,9 +46,9 @@
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 56,
|
||||
"width": 66,
|
||||
"height": 56,
|
||||
"rawWidth": 56,
|
||||
"rawWidth": 66,
|
||||
"rawHeight": 56,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
@ -61,16 +61,16 @@
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-28,
|
||||
-33,
|
||||
-28,
|
||||
0,
|
||||
28,
|
||||
33,
|
||||
-28,
|
||||
0,
|
||||
-28,
|
||||
-33,
|
||||
28,
|
||||
0,
|
||||
28,
|
||||
33,
|
||||
28,
|
||||
0
|
||||
],
|
||||
@ -85,11 +85,11 @@
|
||||
"uv": [
|
||||
0,
|
||||
56,
|
||||
56,
|
||||
66,
|
||||
56,
|
||||
0,
|
||||
0,
|
||||
56,
|
||||
66,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
@ -103,18 +103,18 @@
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-28,
|
||||
-33,
|
||||
-28,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
28,
|
||||
33,
|
||||
28,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "84c9a773-21c6-4b5c-9864-3656db19841d@6c48a",
|
||||
"imageUuidOrDatabaseUri": "97f7e50b-8772-4456-8393-706cd43327d4@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
@ -129,6 +129,6 @@
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "84c9a773-21c6-4b5c-9864-3656db19841d@6c48a"
|
||||
"redirect": "97f7e50b-8772-4456-8393-706cd43327d4@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_ic_ljjl.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
134
assets/Game/SlotRanking/textures/lhb_ic_ljjl.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "1c0e017b-7b4b-49cd-a7a4-3972a0fa2217",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "1c0e017b-7b4b-49cd-a7a4-3972a0fa2217@6c48a",
|
||||
"displayName": "lhb_ic_ljjl",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "1c0e017b-7b4b-49cd-a7a4-3972a0fa2217",
|
||||
"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": "1c0e017b-7b4b-49cd-a7a4-3972a0fa2217@f9941",
|
||||
"displayName": "lhb_ic_ljjl",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 1.5,
|
||||
"offsetY": 0,
|
||||
"trimX": 3,
|
||||
"trimY": 0,
|
||||
"width": 137,
|
||||
"height": 94,
|
||||
"rawWidth": 140,
|
||||
"rawHeight": 94,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-68.5,
|
||||
-47,
|
||||
0,
|
||||
68.5,
|
||||
-47,
|
||||
0,
|
||||
-68.5,
|
||||
47,
|
||||
0,
|
||||
68.5,
|
||||
47,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
3,
|
||||
94,
|
||||
140,
|
||||
94,
|
||||
3,
|
||||
0,
|
||||
140,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0.02142857142857143,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0.02142857142857143,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-68.5,
|
||||
-47,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
68.5,
|
||||
47,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "1c0e017b-7b4b-49cd-a7a4-3972a0fa2217@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "1c0e017b-7b4b-49cd-a7a4-3972a0fa2217@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_ic_lsjl.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
134
assets/Game/SlotRanking/textures/lhb_ic_lsjl.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "2ea20f98-c36e-4d61-98fb-6c80729d5766",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "2ea20f98-c36e-4d61-98fb-6c80729d5766@6c48a",
|
||||
"displayName": "lhb_ic_lsjl",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "2ea20f98-c36e-4d61-98fb-6c80729d5766",
|
||||
"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": "2ea20f98-c36e-4d61-98fb-6c80729d5766@f9941",
|
||||
"displayName": "lhb_ic_lsjl",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 97,
|
||||
"height": 119,
|
||||
"rawWidth": 97,
|
||||
"rawHeight": 119,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-48.5,
|
||||
-59.5,
|
||||
0,
|
||||
48.5,
|
||||
-59.5,
|
||||
0,
|
||||
-48.5,
|
||||
59.5,
|
||||
0,
|
||||
48.5,
|
||||
59.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
119,
|
||||
97,
|
||||
119,
|
||||
0,
|
||||
0,
|
||||
97,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-48.5,
|
||||
-59.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
48.5,
|
||||
59.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "2ea20f98-c36e-4d61-98fb-6c80729d5766@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "2ea20f98-c36e-4d61-98fb-6c80729d5766@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_jl_db_01.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
134
assets/Game/SlotRanking/textures/lhb_jl_db_01.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1@6c48a",
|
||||
"displayName": "lhb_jl_db_01",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1",
|
||||
"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": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1@f9941",
|
||||
"displayName": "lhb_jl_db_01",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 983,
|
||||
"height": 416,
|
||||
"rawWidth": 983,
|
||||
"rawHeight": 416,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-491.5,
|
||||
-208,
|
||||
0,
|
||||
491.5,
|
||||
-208,
|
||||
0,
|
||||
-491.5,
|
||||
208,
|
||||
0,
|
||||
491.5,
|
||||
208,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
416,
|
||||
983,
|
||||
416,
|
||||
0,
|
||||
0,
|
||||
983,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-491.5,
|
||||
-208,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
491.5,
|
||||
208,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_jl_db_02.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
134
assets/Game/SlotRanking/textures/lhb_jl_db_02.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "76a8d495-56f4-4797-a520-59ac5f2bee1a",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "76a8d495-56f4-4797-a520-59ac5f2bee1a@6c48a",
|
||||
"displayName": "lhb_jl_db_02",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "76a8d495-56f4-4797-a520-59ac5f2bee1a",
|
||||
"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": "76a8d495-56f4-4797-a520-59ac5f2bee1a@f9941",
|
||||
"displayName": "lhb_jl_db_02",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 921,
|
||||
"height": 65,
|
||||
"rawWidth": 921,
|
||||
"rawHeight": 65,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-460.5,
|
||||
-32.5,
|
||||
0,
|
||||
460.5,
|
||||
-32.5,
|
||||
0,
|
||||
-460.5,
|
||||
32.5,
|
||||
0,
|
||||
460.5,
|
||||
32.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
65,
|
||||
921,
|
||||
65,
|
||||
0,
|
||||
0,
|
||||
921,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-460.5,
|
||||
-32.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
460.5,
|
||||
32.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "76a8d495-56f4-4797-a520-59ac5f2bee1a@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "76a8d495-56f4-4797-a520-59ac5f2bee1a@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_jl_db_03.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
134
assets/Game/SlotRanking/textures/lhb_jl_db_03.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "333934a3-7407-470c-97b9-ba0d937b9b97",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "333934a3-7407-470c-97b9-ba0d937b9b97@6c48a",
|
||||
"displayName": "lhb_jl_db_03",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "333934a3-7407-470c-97b9-ba0d937b9b97",
|
||||
"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": "333934a3-7407-470c-97b9-ba0d937b9b97@f9941",
|
||||
"displayName": "lhb_jl_db_03",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 915,
|
||||
"height": 9,
|
||||
"rawWidth": 915,
|
||||
"rawHeight": 9,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-457.5,
|
||||
-4.5,
|
||||
0,
|
||||
457.5,
|
||||
-4.5,
|
||||
0,
|
||||
-457.5,
|
||||
4.5,
|
||||
0,
|
||||
457.5,
|
||||
4.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
9,
|
||||
915,
|
||||
9,
|
||||
0,
|
||||
0,
|
||||
915,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-457.5,
|
||||
-4.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
457.5,
|
||||
4.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "333934a3-7407-470c-97b9-ba0d937b9b97@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "333934a3-7407-470c-97b9-ba0d937b9b97@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_pm_01.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
@ -2,7 +2,7 @@
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "cb3aefa4-64b9-4158-b3a9-4a883eb00217",
|
||||
"uuid": "1db16d2d-60f7-4835-895f-421dac3c3903",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
@ -10,14 +10,14 @@
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "cb3aefa4-64b9-4158-b3a9-4a883eb00217@6c48a",
|
||||
"displayName": "zy_btn_xuanzhuanzhihui",
|
||||
"uuid": "1db16d2d-60f7-4835-895f-421dac3c3903@6c48a",
|
||||
"displayName": "lhb_pm_01",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "cb3aefa4-64b9-4158-b3a9-4a883eb00217",
|
||||
"imageUuidOrDatabaseUri": "1db16d2d-60f7-4835-895f-421dac3c3903",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
@ -34,8 +34,8 @@
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "cb3aefa4-64b9-4158-b3a9-4a883eb00217@f9941",
|
||||
"displayName": "zy_btn_xuanzhuanzhihui",
|
||||
"uuid": "1db16d2d-60f7-4835-895f-421dac3c3903@f9941",
|
||||
"displayName": "lhb_pm_01",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
@ -46,10 +46,10 @@
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 220,
|
||||
"height": 210,
|
||||
"rawWidth": 220,
|
||||
"rawHeight": 210,
|
||||
"width": 865,
|
||||
"height": 145,
|
||||
"rawWidth": 865,
|
||||
"rawHeight": 145,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
@ -61,17 +61,17 @@
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-110,
|
||||
-105,
|
||||
-432.5,
|
||||
-72.5,
|
||||
0,
|
||||
110,
|
||||
-105,
|
||||
432.5,
|
||||
-72.5,
|
||||
0,
|
||||
-110,
|
||||
105,
|
||||
-432.5,
|
||||
72.5,
|
||||
0,
|
||||
110,
|
||||
105,
|
||||
432.5,
|
||||
72.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
@ -84,12 +84,12 @@
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
210,
|
||||
220,
|
||||
210,
|
||||
145,
|
||||
865,
|
||||
145,
|
||||
0,
|
||||
0,
|
||||
220,
|
||||
865,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
@ -103,18 +103,18 @@
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-110,
|
||||
-105,
|
||||
-432.5,
|
||||
-72.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
110,
|
||||
105,
|
||||
432.5,
|
||||
72.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "cb3aefa4-64b9-4158-b3a9-4a883eb00217@6c48a",
|
||||
"imageUuidOrDatabaseUri": "1db16d2d-60f7-4835-895f-421dac3c3903@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
@ -129,6 +129,6 @@
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "cb3aefa4-64b9-4158-b3a9-4a883eb00217@6c48a"
|
||||
"redirect": "1db16d2d-60f7-4835-895f-421dac3c3903@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_pm_02.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
134
assets/Game/SlotRanking/textures/lhb_pm_02.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b@6c48a",
|
||||
"displayName": "lhb_pm_02",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b",
|
||||
"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": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b@f9941",
|
||||
"displayName": "lhb_pm_02",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 849,
|
||||
"height": 72,
|
||||
"rawWidth": 849,
|
||||
"rawHeight": 72,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-424.5,
|
||||
-36,
|
||||
0,
|
||||
424.5,
|
||||
-36,
|
||||
0,
|
||||
-424.5,
|
||||
36,
|
||||
0,
|
||||
424.5,
|
||||
36,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
72,
|
||||
849,
|
||||
72,
|
||||
0,
|
||||
0,
|
||||
849,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-424.5,
|
||||
-36,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
424.5,
|
||||
36,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_pm_03.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
134
assets/Game/SlotRanking/textures/lhb_pm_03.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "1d500614-1592-4df5-9336-2679e6235ca1",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "1d500614-1592-4df5-9336-2679e6235ca1@6c48a",
|
||||
"displayName": "lhb_pm_03",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "1d500614-1592-4df5-9336-2679e6235ca1",
|
||||
"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": "1d500614-1592-4df5-9336-2679e6235ca1@f9941",
|
||||
"displayName": "lhb_pm_03",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 847,
|
||||
"height": 72,
|
||||
"rawWidth": 847,
|
||||
"rawHeight": 72,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-423.5,
|
||||
-36,
|
||||
0,
|
||||
423.5,
|
||||
-36,
|
||||
0,
|
||||
-423.5,
|
||||
36,
|
||||
0,
|
||||
423.5,
|
||||
36,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
72,
|
||||
847,
|
||||
72,
|
||||
0,
|
||||
0,
|
||||
847,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-423.5,
|
||||
-36,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
423.5,
|
||||
36,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "1d500614-1592-4df5-9336-2679e6235ca1@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "1d500614-1592-4df5-9336-2679e6235ca1@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/Game/SlotRanking/textures/lhb_top.png
Normal file
|
After Width: | Height: | Size: 269 KiB |
134
assets/Game/SlotRanking/textures/lhb_top.png.meta
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "419b067f-d095-4af6-96ef-048e500fbd5b",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "419b067f-d095-4af6-96ef-048e500fbd5b@6c48a",
|
||||
"displayName": "lhb_top",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "419b067f-d095-4af6-96ef-048e500fbd5b",
|
||||
"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": "419b067f-d095-4af6-96ef-048e500fbd5b@f9941",
|
||||
"displayName": "lhb_top",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 1080,
|
||||
"height": 953,
|
||||
"rawWidth": 1080,
|
||||
"rawHeight": 953,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-540,
|
||||
-476.5,
|
||||
0,
|
||||
540,
|
||||
-476.5,
|
||||
0,
|
||||
-540,
|
||||
476.5,
|
||||
0,
|
||||
540,
|
||||
476.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
953,
|
||||
1080,
|
||||
953,
|
||||
0,
|
||||
0,
|
||||
1080,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-540,
|
||||
-476.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
540,
|
||||
476.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "419b067f-d095-4af6-96ef-048e500fbd5b@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "419b067f-d095-4af6-96ef-048e500fbd5b@6c48a"
|
||||
}
|
||||
}
|
||||