Files
ZYZ/shared/domain/battleField/guild.ts
2021-04-19 13:17:17 +08:00

122 lines
3.6 KiB
TypeScript

import { PvpEnemies, PvpOtherHeroes, WarStar } from "../../domain/dbGeneral";
import { GuildType } from "../../db/Guild";
import { RoleType } from "../../db/Role";
import { WAR_TYPE } from "../../consts";
import { gameData } from "../../pubUtils/data";
import { EXTERIOR } from "../../pubUtils/dicParam";
export class PlayerDetailHero {
actorId: number;
lv: number;
star: number;
colorStar: number;
quality: number;
score: number;
setPvpHeroInfo?(hero: PvpEnemies|PvpOtherHeroes) {
this.actorId = hero.actorId;
this.lv = hero.lv;
this.star = hero.star;
this.colorStar = hero.colorStar;
this.quality = hero.quality;
this.score = hero.score;
}
}
class PlayerDetailBattle {
main: string[] = [];
tower: string[] = [];
pvp: string[] = [];
constructor(warStar: WarStar[], pvp: number, tower: number) {
let main = 0;
for(let { id, warType } of warStar) {
if(warType == WAR_TYPE.NORMAL) {
if(id > main) main = id;
}
}
let curDicWar = gameData.war.get(main);
if(curDicWar) {
this.main = curDicWar.detailUIBg;
}
this.pvp.push(pvp.toString());
this.tower.push(tower.toString());
}
}
export class PlayerDetail {
roleId: string;
roleName: string;
lv: number;
title?: number = 1;
head?: number = EXTERIOR.EXTERIOR_FACE;
frame?: number = EXTERIOR.EXTERIOR_FACECASE;
spine?: number = EXTERIOR.EXTERIOR_APPEARANCE;
score?: number = 0;
pLv?: number = 1;
defCe?: number = 0;
heroes: PlayerDetailHero[];
rank?:number = 0;
battle?: PlayerDetailBattle = new PlayerDetailBattle([], 0, 0);
constructor(detail: PlayerDetail) {
if(detail.roleId) this.roleId = detail.roleId;
if(detail.roleName) this.roleName = detail.roleName;
if(detail.lv) this.lv = detail.lv;
if(detail.title) this.title = detail.title;
if(detail.head) this.head = detail.head;
if(detail.frame) this.frame = detail.frame;
if(detail.spine) this.spine = detail.spine;
if(detail.score) this.score = detail.score;
if(detail.pLv) this.pLv = detail.pLv;
if(detail.defCe) this.defCe = detail.defCe;
if(detail.heroes) this.heroes = detail.heroes;
if(detail.rank) this.rank = detail.rank;
}
setWarStar?(warStar: WarStar[], pvp: number, tower: number) {
this.battle = new PlayerDetailBattle(warStar, pvp, tower);
}
}
// 军团返回
export class GuildMainInfo {
code: string; // 军团唯一编号
icon: number; // 头像
name: string; // 军团名
lv: number; // 等级
memberCnt: number; // 人数
isAuto: boolean; // 是否是自动加入
ceLimit: number; // 战力条件
constructor(guild: GuildType) {
this.code = guild.code;
this.icon = guild.icon;
this.name = guild.name;
this.lv = guild.lv;
this.memberCnt = guild.memberCnt;
this.ceLimit = guild.ceLimit;
this.isAuto = guild.isAuto;
}
}
// getGuildList里的返回
export class GuildListInfo extends GuildMainInfo {
leader: string; // 团长名
hasApply: boolean = false; // 是否有申请过
constructor(guild: GuildType) {
super(guild);
let leader = <RoleType>guild.leader;
if(leader) this.leader = leader.roleName;
}
setApply(hasApply: boolean) {
this.hasApply = hasApply;
}
}