✨ feat(gvg): 征战中原排行榜奖励
This commit is contained in:
@@ -73,7 +73,9 @@ export class OppPlayerInfo {
|
||||
@prop({ required: true })
|
||||
roleId: string = ''; // 角色 id
|
||||
@prop({ required: true })
|
||||
roleName: string = GVG.GVG_ROBOT_NAME; // 角色 名
|
||||
roleName: string = GVG.GVG_ROBOT_NAME; // 角色 名
|
||||
@prop({ required: true })
|
||||
leagueCode: string = ''; // 联军id
|
||||
@prop({ required: true, default: 0 })
|
||||
lv: number = 1; // 等级
|
||||
@prop({ required: true, default: EXTERIOR.EXTERIOR_FACE })
|
||||
@@ -93,7 +95,7 @@ export class OppPlayerInfo {
|
||||
@prop({ required: true })
|
||||
isRobot: boolean = false; // 原排名
|
||||
|
||||
initByPlayer(rank: number, role: RoleType, isSuccess: boolean ) {
|
||||
initByPlayer(rank: number, role: RoleType, leagueCode: string, isSuccess: boolean ) {
|
||||
this.oldRank = rank;
|
||||
this.newRank = rank;
|
||||
this.roleId = role.roleId;
|
||||
@@ -105,6 +107,7 @@ export class OppPlayerInfo {
|
||||
this.lv = role.lv;
|
||||
this.isSuccess = isSuccess;
|
||||
this.isRobot = false;
|
||||
this.leagueCode = leagueCode;
|
||||
}
|
||||
|
||||
setPlayerHeroes(heroes: HeroType[], lineup: {actorId: number, dataId: number, order: number}[]) {
|
||||
|
||||
@@ -6,6 +6,7 @@ import { getSeconds } from "../pubUtils/timeUtil";
|
||||
import { prop } from "@typegoose/typegoose";
|
||||
import { pick } from "underscore";
|
||||
import { RANK_TYPE, REDIS_KEY } from "../consts";
|
||||
import { GVGLeagueType } from "../db/GVGLeague";
|
||||
|
||||
// 排行榜返回玩家值
|
||||
export class RankParam {
|
||||
@@ -194,6 +195,7 @@ export class GuildRankParam {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export class GuildRankInfo extends GuildRankParam {
|
||||
rank: number;
|
||||
code: string;
|
||||
@@ -223,6 +225,65 @@ export class GuildRankInfo extends GuildRankParam {
|
||||
}
|
||||
|
||||
|
||||
export class LeagueLeader {
|
||||
@prop({ required: true })
|
||||
roleId: string;
|
||||
|
||||
@prop({ required: true })
|
||||
roleName: string;
|
||||
|
||||
@prop({ required: true })
|
||||
guildName: string;
|
||||
|
||||
@prop({ required: true })
|
||||
serverId: number;
|
||||
|
||||
constructor(leader: { roleId: string, roleName: string, guildName: string, serverId: number}) {
|
||||
this.roleId = leader.roleId;
|
||||
this.roleName = leader.roleName;
|
||||
this.guildName = leader.guildName;
|
||||
this.serverId = leader.serverId;
|
||||
}
|
||||
}
|
||||
|
||||
// 联军信息
|
||||
export class LeagueRankParam {
|
||||
@prop({ required: true })
|
||||
icon: number;
|
||||
|
||||
@prop({ required: true })
|
||||
name: string;
|
||||
|
||||
@prop({ required: true, _id: false })
|
||||
leader: LeagueLeader;
|
||||
|
||||
constructor(league: GVGLeagueType) {
|
||||
this.icon = league.icon;
|
||||
this.name = league.name;
|
||||
let leader = <RoleType>league.leader;
|
||||
let _leader = new LeagueLeader(leader);
|
||||
this.leader = _leader;
|
||||
}
|
||||
}
|
||||
|
||||
// LeagueRankParam显示到排行榜界面上的信息
|
||||
export class LeagueRankInfo extends LeagueRankParam {
|
||||
rank: number;
|
||||
code: string;
|
||||
num: number;
|
||||
time: number;
|
||||
|
||||
setInfo(rank: number, myId: myIdInter, num: number, time: number) {
|
||||
this.rank = rank;
|
||||
this.code = myId.leagueCode;
|
||||
this.num = num;
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
isMyInfo(myId: myIdInter) {
|
||||
return this.code == myId.leagueCode;
|
||||
}
|
||||
}
|
||||
|
||||
export class RoleAndGuildRankInfo {
|
||||
rank: number;
|
||||
@@ -304,6 +365,7 @@ export class KeyName {
|
||||
vestigeId?: number;
|
||||
groupId?: number;
|
||||
serverType?: number;
|
||||
day?: string;
|
||||
|
||||
constructor(key: string, param: KeyNameParam) {
|
||||
this.key = key;
|
||||
@@ -317,6 +379,7 @@ export class KeyName {
|
||||
if(param.vestigeId) this.vestigeId = param.vestigeId;
|
||||
if(param.groupId) this.groupId = param.groupId;
|
||||
if(param.serverType) this.serverType = param.serverType;
|
||||
if(param.day) this.day = param.day;
|
||||
}
|
||||
|
||||
public getName() {
|
||||
@@ -350,9 +413,11 @@ export class KeyName {
|
||||
case REDIS_KEY.TOP_LINE_SNAPSHOT:
|
||||
return `${this.key}:${this.serverId}:${this.activityId}`;
|
||||
case REDIS_KEY.GVG_VESTIGE_MEMBER:
|
||||
return `${this.key}:${this.groupId}:${this.serverType}:${this.vestigeId}`;
|
||||
return `${this.key}:${this.day}:${this.groupId}:${this.serverType}:${this.vestigeId}`;
|
||||
case REDIS_KEY.GVG_VESTIGE_MEMBER_ALL:
|
||||
return `${this.key}:${this.groupId}`;
|
||||
return `${this.key}:${this.day}:${this.groupId}:${this.serverType}`;
|
||||
case REDIS_KEY.GVG_VESTIGE_LEAGUE:
|
||||
return `${this.key}:${this.day}:${this.groupId}:${this.serverType}`;
|
||||
default:
|
||||
return this.key;
|
||||
}
|
||||
@@ -402,6 +467,7 @@ export interface myIdInter {
|
||||
roleId?: string;
|
||||
guildCode?: string;
|
||||
hid?: number;
|
||||
leagueCode?: string;
|
||||
}
|
||||
|
||||
// 排行榜总览左边的数据
|
||||
@@ -412,7 +478,7 @@ export class GeneralRankParam {
|
||||
num: number = 0;
|
||||
received: number[];
|
||||
|
||||
constructor(type: number, rankInfo: RoleRankInfo|GuildRankInfo, general: number, received?: number[]) {
|
||||
constructor(type: number, rankInfo: RoleRankInfo|GuildRankInfo|LeagueRankInfo, general: number, received?: number[]) {
|
||||
this.type = type;
|
||||
if(general == 1) {
|
||||
let rank = rankInfo? (type == RANK_TYPE.LADDER? rankInfo.num: rankInfo.rank): 0;
|
||||
|
||||
Reference in New Issue
Block a user