好友:修改详情界面关卡显示

This commit is contained in:
luying
2021-02-23 09:37:21 +08:00
parent 8e4e97ee82
commit 41b57d0e04
3 changed files with 31 additions and 18 deletions

View File

@@ -610,7 +610,7 @@ export class FriendHandler {
let dbHeroes = await HeroModel.findByRole(oppoRoleId); let dbHeroes = await HeroModel.findByRole(oppoRoleId);
let role = await RoleModel.findByRoleId(oppoRoleId, null, true); let role = await RoleModel.findByRoleId(oppoRoleId, null, true);
let { topFive, topFiveCe } = role; let { topFive, topFiveCe, towerLv } = role;
let heroes = new Array<PlayerDetailHero>(); let heroes = new Array<PlayerDetailHero>();
for(let {hid, lv, star, colorStar, quality } of dbHeroes) { for(let {hid, lv, star, colorStar, quality } of dbHeroes) {
@@ -625,7 +625,7 @@ export class FriendHandler {
let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, oppoRoleId);//去redis中获取排名 let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, oppoRoleId);//去redis中获取排名
result = new PlayerDetail({...role, defCe: topFiveCe, heroes}); result = new PlayerDetail({...role, defCe: topFiveCe, heroes});
result.setWarStar(role.warStar, rank); result.setWarStar(role.warStar, rank, towerLv);
return resResult(STATUS.SUCCESS, result); return resResult(STATUS.SUCCESS, result);
} }

View File

@@ -2,6 +2,7 @@ import { PvpEnemies, PvpOtherHeroes } from "../../domain/dbGeneral";
import { GuildType } from "../../db/Guild"; import { GuildType } from "../../db/Guild";
import { RoleType, WarStar } from "../../db/Role"; import { RoleType, WarStar } from "../../db/Role";
import { WAR_TYPE } from "../../consts/consts"; import { WAR_TYPE } from "../../consts/consts";
import { gameData } from "../../pubUtils/data";
export class PlayerDetailHero { export class PlayerDetailHero {
actorId: number; actorId: number;
@@ -22,22 +23,24 @@ export class PlayerDetailHero {
} }
class PlayerDetailBattle { class PlayerDetailBattle {
main: number = 0; main: string[] = [];
tower: number = 0; tower: string[] = [];
dungeon: number = 0; pvp: string[] = [];
pvp: number = 0;
constructor(warStar: WarStar[], pvp: number) { constructor(warStar: WarStar[], pvp: number, tower: number) {
let main = 0;
for(let { id, warType } of warStar) { for(let { id, warType } of warStar) {
if(warType == WAR_TYPE.NORMAL) { if(warType == WAR_TYPE.NORMAL) {
if(id > this.main) this.main = id; if(id > main) main = id;
} else if (warType == WAR_TYPE.TOWER) {
if(id > this.tower) this.tower = id;
} else if (warType == WAR_TYPE.MYSTERY) {
if(id > this.dungeon) this.dungeon = id;
} }
} }
this.pvp = pvp; let curDicWar = gameData.war.get(main);
if(curDicWar) {
this.main = curDicWar.detailUIBg;
}
this.pvp.push(pvp.toString());
this.tower.push(tower.toString());
} }
} }
@@ -56,7 +59,7 @@ export class PlayerDetail {
heroes: PlayerDetailHero[]; heroes: PlayerDetailHero[];
rank?:number = 0; rank?:number = 0;
battle?: PlayerDetailBattle = new PlayerDetailBattle([], 0); battle?: PlayerDetailBattle = new PlayerDetailBattle([], 0, 0);
constructor(detail: PlayerDetail) { constructor(detail: PlayerDetail) {
if(detail.roleId) this.roleId = detail.roleId; if(detail.roleId) this.roleId = detail.roleId;
@@ -72,8 +75,8 @@ export class PlayerDetail {
if(detail.rank) this.rank = detail.rank; if(detail.rank) this.rank = detail.rank;
} }
setWarStar?(warStar: WarStar[], pvp: number) { setWarStar?(warStar: WarStar[], pvp: number, tower: number) {
this.battle = new PlayerDetailBattle(warStar, pvp); this.battle = new PlayerDetailBattle(warStar, pvp, tower);
} }
} }

View File

@@ -1,5 +1,5 @@
// 关卡表 // 关卡表
import {decodeArrayListStr, readJsonFile} from '../util' import {decodeArrayListStr, decodeArrayStr, readJsonFile} from '../util'
import { WAR_RELATE_TABLES, WAR_TYPE } from '../../consts'; import { WAR_RELATE_TABLES, WAR_TYPE } from '../../consts';
export interface DicWar { export interface DicWar {
@@ -26,7 +26,8 @@ export interface DicWar {
readonly previousGk: number; readonly previousGk: number;
// 每日任务下的小类型 // 每日任务下的小类型
readonly dailyType: number; readonly dailyType: number;
// 显示章节名
readonly detailUIBg: string[];
} }
export const dicWar = new Map<number, DicWar>(); export const dicWar = new Map<number, DicWar>();
@@ -40,6 +41,8 @@ for(let filename of WAR_RELATE_TABLES) {
o.fixReward = parseFixReward(o.fixReward); o.fixReward = parseFixReward(o.fixReward);
o.conditionReward = parseConditionReward(o.conditionReward); o.conditionReward = parseConditionReward(o.conditionReward);
o.parseRandomReward = parseRandomReward(o.parseRandomReward); o.parseRandomReward = parseRandomReward(o.parseRandomReward);
o.detailUIBg = parseDetailUIBg(o.detailUIBg);
dicWar.set(o.war_id, o); dicWar.set(o.war_id, o);
if(o.warType == WAR_TYPE.PVP) { if(o.warType == WAR_TYPE.PVP) {
dicWarPvp.push(o); dicWarPvp.push(o);
@@ -84,4 +87,11 @@ function parseRandomReward(str: string = '') {
result.push({id: parseInt(id), count: parseInt(count), frequency: parseInt(frequency)}); result.push({id: parseInt(id), count: parseInt(count), frequency: parseInt(frequency)});
} }
return result return result
}
function parseDetailUIBg(str: string = '') {
let result = new Array<string>();
if(!str) return result;
let decodeArr = decodeArrayStr(str, '_');
return decodeArr;
} }