Files
ZYZ/shared/domain/gameField/serverlist.ts
2021-06-11 10:10:32 +08:00

75 lines
2.4 KiB
TypeScript

import { RoleType } from '../../db/Role';
import { getSeconds } from '../../pubUtils/timeUtil';
import { ServerlistType } from '@db/Serverlist';
export class ServerParam {
id: number; // 区号
serverId: number; // 显示的区号
serverStr: string; // 显示的区号 S1
name: string; // 区名
host: string; // pinus地址
port: number; // pinus端口
status: number; // 状态
openTime: number; // 开服时间
serverType: string; // 分区类型 官服 测试服 开发服
constructor(server: ServerlistType) {
this.id = server.id;
this.serverId = server.serverId;
this.serverStr = `S${server.serverId}`;
this.name = server.name;
this.host = server.host;
this.port = server.port;
this.status = server.status;
this.openTime = getSeconds(server.openTime);
this.serverType = server.serverType;
}
}
export class GroupParam {
groupId: number; // 大区号
groupName: string; // 大区名
groupStr: string; // 大区内小区编号 S1-S10
servers: ServerParam[]; // 区
constructor(server: ServerlistType) {
this.groupId = server.groupId;
this.groupName = server.groupName;
this.groupStr = `S${server.serverId}-S${server.serverId + 9}`;
this.servers = new Array<ServerParam>();
}
public pushServer(server: ServerlistType) {
let srv = new ServerParam(server);
this.servers.push(srv);
let min = this.servers.reduce((pre, cur) => pre < cur? pre: cur);
this.groupStr = `${min.serverId}-${min.serverId + 9}`
}
}
export class ServerParamWithRole extends ServerParam {
groupId: number; // 大区号
groupName: string; // 大区名
roleId: string; // 玩家账号
roleName: string; // 玩家名
head: number; // 头像
frame: number; // 相框
spine: number; // 形象
lv: number; // 等级
updatedAt: Date;
constructor(role: RoleType, server: ServerlistType) {
super(server);
this.groupId = server.groupId;
this.groupName = server.groupName;
this.roleId = role.roleId;
this.roleName = role.roleName;
this.head = role.head;
this.frame = role.frame;
this.spine = role.spine;
this.lv = role.lv;
this.updatedAt = role.updatedAt;
}
}