feat(gvg): 征战中原排行榜奖励

This commit is contained in:
luying
2023-02-04 12:08:29 +08:00
parent fc2a86ad81
commit eb772484c2
21 changed files with 678 additions and 100 deletions

View File

@@ -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}[]) {

View File

@@ -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;