Files
ZYZ/shared/domain/rank.ts
2021-03-31 17:52:34 +08:00

133 lines
3.3 KiB
TypeScript

import { EXTERIOR } from "../pubUtils/dicParam";
import { WoodenHorse } from "./battleField/guildActivity";
// 排行榜返回玩家值
export class RankParam {
roleName: string;
lv: number;
vLv: number;
guildName: string = "";
head: number = EXTERIOR.EXTERIOR_FACE;
frame: number = EXTERIOR.EXTERIOR_FACECASE;
spine: number = EXTERIOR.EXTERIOR_APPEARANCE;
title: number;
constructor(roleName: string, lv: number, vLv: number, head: number, frame: number, spine: number, title: number) {
this.roleName = roleName;
this.lv = lv;
this.vLv = vLv;
this.head = head;
this.frame = frame;
this.spine = spine;
this.title = title;
}
}
// 公会排行榜返回值
export class GuildRankParam {
icon: number;
name: string;
lv: number;
leader: {
roleName: string;
title: number;
lv: number;
head: number;
frame: number;
spine: number;
}
constructor(icon: number, name: string, lv: number, leader: {roleName: string, title: number, lv: number, head: number, frame: number, spine: number}) {
this.icon = icon;
this.name = name;
this.lv = lv;
let _leader = new GuildLeader(leader);
this.leader = _leader;
}
}
export class GuildLeader {
roleName: string;
title: number;
lv: number;
head: number;
frame: number;
spine: number;
constructor(leader: {roleName: string, title: number, lv: number, head: number, frame: number, spine: number}) {
this.roleName = leader.roleName;
this.title = leader.title;
this.lv = leader.lv;
this.head = leader.head;
this.frame = leader.frame;
this.spine = leader.spine;
}
}
export class SimpleGuildRankParam {
rank: number = 0;
code: string = "";
name: string = "";
num: number = 0;
constructor(rank: number, code: string, name: string, num: number) {
this.rank = rank;
this.code = code;
this.name = name;
this.num = num;
}
}
export class SimpleGuildRankWithTimeParam extends SimpleGuildRankParam {
time: number = 0;
durability: number = 0;
constructor(rank: number, code: string, name: string, obj: WoodenHorse|false) {
super(rank, code, name, obj?obj.distance:0);
if(obj) {
this.num = obj.distance;
this.time = Math.floor((obj.time - obj.startTime)/1000);
this.durability = obj.durability;
}
}
}
export class SimpleRoleRankParam {
rank: number;
roleId: string;
roleName: string;
num: number;
constructor(rank: number, roleId: string, roleName: string, num: number) {
this.rank = rank;
this.roleId = roleId;
this.roleName = roleName;
this.num = num;
}
}
export class KeyName {
key: string;
serverId?: number;
guildCode?: string;
constructor(key: string) {
this.key = key;
}
getName() {
let res = this.key;
if(this.serverId) res += `:${this.serverId}`;
if(this.guildCode) res += `:${this.guildCode}`;
return res;
}
getNameWithPlus(...plus: string[]) {
let res = this.getName();
for(let p of plus) {
res += `:${p}`;
}
return res;
}
}