|
@@ -1,19 +1,54 @@
|
|
|
-import { _decorator, instantiate, Label, Node, Sprite } from 'cc';
|
|
|
+import { _decorator, Label, Toggle, tween, UIOpacity } from 'cc';
|
|
|
import { BaseView } from '../../../framework/layer/BaseView';
|
|
|
import { ServerItem } from './ServerItem';
|
|
|
import { AudioID } from '../../../framework/config/AudioConf';
|
|
|
import { Framework } from '../../../framework/Framework';
|
|
|
import { UserData } from '../../data/UserData';
|
|
|
-import { LoginMgr } from '../../common/LoginManager';
|
|
|
+import List from '../../../framework/list/List';
|
|
|
+import { StringUtil } from '../../../framework/util/StringUtil';
|
|
|
+import { GameEvent } from '../../data/GameEvent';
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
|
|
-@ccclass('ServerList')
|
|
|
-export class ServerList extends BaseView {
|
|
|
- private server_list = []
|
|
|
+@ccclass('SelectServer')
|
|
|
+export class SelectServer extends BaseView {
|
|
|
+ @property({ type: Label, tooltip: "关闭提示" })
|
|
|
+ closeTips: Label = null;
|
|
|
+
|
|
|
+ @property({ type: Label, tooltip: "标题" })
|
|
|
+ titlteTx: Label = null;
|
|
|
+
|
|
|
+ @property({ type: Label, tooltip: "分区文字1" })
|
|
|
+ arenaTx1: Label = null;
|
|
|
+
|
|
|
+ @property({ type: Label, tooltip: "分区文字2" })
|
|
|
+ arenaTx2: Label = null;
|
|
|
+
|
|
|
+ @property({ type: Label, tooltip: "分区文字3" })
|
|
|
+ arenaTx3: Label = null;
|
|
|
+
|
|
|
+ @property({ type: List, tooltip: "服务器组容器" })
|
|
|
+ serverGroupSv: List = null;
|
|
|
+
|
|
|
+ @property({ type: List, tooltip: "服务器容器" })
|
|
|
+ serverItemSv: List = null;
|
|
|
+
|
|
|
+ private groupList = []
|
|
|
+
|
|
|
+ private serverList = []
|
|
|
private Server_data = null;
|
|
|
private tabulation = 'recently_login';
|
|
|
+ private initialized = false;
|
|
|
+
|
|
|
protected onLoad() {
|
|
|
super.onLoad();
|
|
|
+ this.closeTips.string = StringUtil.getLanguageData('点击空白关闭');
|
|
|
+ this.titlteTx.string = StringUtil.getLanguageData('邮件');
|
|
|
+ this.closeTips.node.getComponent(UIOpacity).opacity = 0;
|
|
|
+
|
|
|
+ Framework.event.addEvent(GameEvent.SelectServer, () => {
|
|
|
+ Framework.layer.close(this);
|
|
|
+ }, this);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
protected onDestroy() {
|
|
@@ -21,76 +56,82 @@ export class ServerList extends BaseView {
|
|
|
}
|
|
|
|
|
|
|
|
|
- onOpen(game, data?) {
|
|
|
- let choose_server = UserData.save_locally('choose_server', null, {})
|
|
|
- this.server_list.push(choose_server)
|
|
|
-
|
|
|
- this.Node.close.active = game;
|
|
|
-
|
|
|
- if (!game) {
|
|
|
- LoginMgr.getServerList((data) => {
|
|
|
- if (data) {
|
|
|
- this.Server_data = data;
|
|
|
- let num = 0;
|
|
|
- let idx = 1;
|
|
|
- for (let list in data.server_list) {
|
|
|
- num++
|
|
|
- if (!this.server_list[idx]) {
|
|
|
- this.server_list[idx] = []
|
|
|
- }
|
|
|
- if (num == 10) {
|
|
|
- idx++
|
|
|
- num = 0;
|
|
|
-
|
|
|
- if (idx > 1) {
|
|
|
- let newTab = instantiate(this.Node.serverTab.getChildByName('10'));
|
|
|
- newTab.name = String(idx * 10);
|
|
|
- this.Node.serverTab.addChild(newTab)
|
|
|
- }
|
|
|
- }
|
|
|
- this.server_list[idx].push(data.server_list[list])
|
|
|
- }
|
|
|
- if (Object.keys(this.server_list[0]).length < 1) {
|
|
|
- let idx = this.server_list.length - 1
|
|
|
- let choosePic = this.Node.serverTab.getChildByName(this.tabulation).getComponent(Sprite).spriteFrame;
|
|
|
- this.Node.serverTab.getChildByName(this.tabulation).getComponent(Sprite).spriteFrame = this.Node.serverTab.getChildByName(String(idx * 10)).getComponent(Sprite).spriteFrame;
|
|
|
- this.Node.serverTab.getChildByName(String(idx * 10)).getComponent(Sprite).spriteFrame = choosePic;
|
|
|
- this.tabulation = String(idx * 10);
|
|
|
- this.List.server.numItems = this.server_list[idx].length
|
|
|
- } else {
|
|
|
- this.List.server.numItems = 0;
|
|
|
+ onOpen() {
|
|
|
+ tween(this.closeTips.node.getComponent(UIOpacity))
|
|
|
+ .to(1, { opacity: 255 })
|
|
|
+ .to(1.2, { opacity: 10 })
|
|
|
+ .union()
|
|
|
+ .repeatForever()
|
|
|
+ .start()
|
|
|
+
|
|
|
+
|
|
|
+ let roles = UserData.getRoleServers();
|
|
|
+ if (roles.length != 0) {
|
|
|
+ let roleList = [];
|
|
|
+ for (const v of roles) {
|
|
|
+ if (v && v.sid) {
|
|
|
+ roleList.push(v);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.groupList.push({ name: 'lately', data: [roleList[0]] });
|
|
|
+ this.groupList.push({ name: 'user', data: roleList });
|
|
|
+ } else {
|
|
|
+ let recmds = UserData.getRecmdServers();
|
|
|
+ if (recmds.length != 0) {
|
|
|
+ let recommendList = [];
|
|
|
+ for (const v of recmds) {
|
|
|
+ if (v && v.sid) {
|
|
|
+ recommendList.push(v);
|
|
|
}
|
|
|
}
|
|
|
- }, data)
|
|
|
+ this.groupList.push({ name: 'recommend', data: recommendList });
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- onServerListEvent(item, idx) {
|
|
|
- let nowList = (this.tabulation == 'recently_login') ? this.server_list[0] : this.server_list[Number(this.tabulation) / 10][Math.abs(idx)];
|
|
|
- item.getComponent(ServerItem).init(nowList, this.Server_data)
|
|
|
|
|
|
- }
|
|
|
- serverTab(event: Event) {
|
|
|
- if (!this.Server_data) {
|
|
|
- Framework.tips.setTips('完蛋,服务器开小差了')
|
|
|
- return;
|
|
|
- }
|
|
|
- let target: any = event.target;
|
|
|
- let choosePic = this.Node.serverTab.getChildByName(this.tabulation).getComponent(Sprite).spriteFrame;
|
|
|
- this.Node.serverTab.getChildByName(this.tabulation).getComponent(Sprite).spriteFrame = target.getComponent(Sprite).spriteFrame;
|
|
|
- target.getComponent(Sprite).spriteFrame = choosePic;
|
|
|
- this.tabulation = target.name;
|
|
|
- if (target.name == 'recently_login') {
|
|
|
- if (Object.keys(UserData.save_locally('choose_server', null, {})).length > 0) {
|
|
|
- this.List.server.numItems = 1
|
|
|
- } else {
|
|
|
- this.List.server.numItems = 0;
|
|
|
+ let allList = UserData.getAllServers();
|
|
|
+ let num = 0;
|
|
|
+ let idx = 1;
|
|
|
+ let serverList = {};
|
|
|
+ for (let list in allList) {
|
|
|
+ num++;
|
|
|
+ if (!serverList[idx]) {
|
|
|
+ serverList[idx] = []
|
|
|
}
|
|
|
- } else {
|
|
|
- this.List.server.numItems = this.server_list[target.name / 10].length
|
|
|
+ if (num == 10) {
|
|
|
+ idx++
|
|
|
+ num = 0;
|
|
|
+ }
|
|
|
+ serverList[idx].push(allList[list])
|
|
|
+ }
|
|
|
+ for (const key in serverList) {
|
|
|
+ const element = serverList[key];
|
|
|
+ this.groupList.push({ name: Number(key) * 10, data: element });
|
|
|
}
|
|
|
+
|
|
|
+ this.serverGroupSv.numItems = this.groupList.length;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
onClose() {
|
|
|
|
|
@@ -112,8 +153,62 @@ export class ServerList extends BaseView {
|
|
|
let target: any = event.target;
|
|
|
if (target.name == 'serverItem') {
|
|
|
let idx = target.getChildByName('Index').getComponent(Label).string
|
|
|
- } else if (target.name == 'Node.close') {
|
|
|
+ } else if (target.name == 'mask') {
|
|
|
Framework.layer.close(this)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ onEventSelectArena(target: Toggle, customEventData: string) {
|
|
|
+ if (target.isChecked) {
|
|
|
+ console.log('============== 大区id', customEventData)
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ onEventSelectGroup(target: Toggle) {
|
|
|
+ if (target.isChecked) {
|
|
|
+ let idx = Number(target.node.name);
|
|
|
+ this.serverList = this.groupList[idx].data;
|
|
|
+ this.serverItemSv.numItems = this.groupList[idx].data.length;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ onServerListEvent(item, idx) {
|
|
|
+ item.name = String(idx);
|
|
|
+ let nameTx = item.getChildByName('name_tx').getComponent(Label);
|
|
|
+ let gData = this.groupList[idx]
|
|
|
+ if (gData.name == 'lately') {
|
|
|
+ nameTx.string = StringUtil.getLanguageData('最近登录');
|
|
|
+ this.initialized = true;
|
|
|
+ item.getComponent(Toggle).isChecked = false;
|
|
|
+ item.getComponent(Toggle).isChecked = true;
|
|
|
+ } else if (gData.name == 'user') {
|
|
|
+ nameTx.string = StringUtil.getLanguageData('拥有角色');
|
|
|
+ } else if (gData.name == 'recommend') {
|
|
|
+ nameTx.string = StringUtil.getLanguageData('推荐服务器');
|
|
|
+ if (!this.initialized) {
|
|
|
+ this.initialized = true
|
|
|
+ item.getComponent(Toggle).isChecked = false;
|
|
|
+ item.getComponent(Toggle).isChecked = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (gData.name > 10) {
|
|
|
+ nameTx.string = (gData.name + 1) + "_" + (gData.name + 10)
|
|
|
+ } else {
|
|
|
+ nameTx.string = "1-10";
|
|
|
+ if (!this.initialized) {
|
|
|
+ this.initialized = true
|
|
|
+ item.getComponent(Toggle).isChecked = false;
|
|
|
+ item.getComponent(Toggle).isChecked = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ onServerEvent(item, idx) {
|
|
|
+ item.getComponent(ServerItem).init(this.serverList[idx]);
|
|
|
+ }
|
|
|
}
|