添加domain文件夹
This commit is contained in:
1
game-server/app/domain
Symbolic link
1
game-server/app/domain
Symbolic link
@@ -0,0 +1 @@
|
||||
../../shared/domain
|
||||
@@ -9,7 +9,8 @@ import { ARMY } from '../../../pubUtils/dicParam';
|
||||
import { handleCost, addItems } from '../../../services/rewardService';
|
||||
import { getGoldObject } from '../../../pubUtils/itemUtils';
|
||||
import { nowSeconds, getBeforeDaySeconds, getSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { GuildListInfo, GuildRankParam, GuildLeader } from '../../../pubUtils/interface';
|
||||
import { GuildListInfo } from '../../../domain/battleField/guild';
|
||||
import { GuildRankParam, GuildLeader } from '../../../domain/rank';
|
||||
import { UserGuildApplyModel } from '../../../db/UserGuildApply';
|
||||
import { hasStructureConsume, getStructureConsume, gameData } from '../../../pubUtils/data';
|
||||
import { GuildRecModel } from '../../../db/GuildRec';
|
||||
|
||||
@@ -7,7 +7,9 @@ import { STATUS } from '../../../consts/statusCode';
|
||||
import { resResult, genCode } from '../../../pubUtils/util';
|
||||
|
||||
import { PvpDefenseModel, OppPlayers } from '../../../db/PvpDefense';
|
||||
import { pvpEndParamInter, RankParam, PlayerDetail, PlayerDetailHero } from '../../../pubUtils/interface';
|
||||
import { pvpEndParamInter } from '../../../pubUtils/interface';
|
||||
import { RankParam } from '../../../domain/rank';
|
||||
import { PlayerDetail, PlayerDetailHero } from '../../../domain/battleField/guild';
|
||||
import { PVP_HERO_POS, REDIS_KEY } from '../../../consts';
|
||||
import { PVP } from '../../../pubUtils/dicParam';
|
||||
import { addItems } from '../../../services/rewardService';
|
||||
|
||||
@@ -12,7 +12,7 @@ import { calcuHangUpReward, checkTaskConditions, checkHangUpSpdUpCnt, createCurT
|
||||
import { handleFixedReward, addItems, handleCost } from '../../../services/rewardService';
|
||||
import { checkBattleHeroes } from '../../../services/normalBattleService';
|
||||
import { getRank, setRank, existsRank, initSingleRankWithServer } from '../../../services/redisService';
|
||||
import { RankParam } from '../../../pubUtils/interface';
|
||||
import { RankParam } from '../../../domain/rank';
|
||||
import { getGoldObject } from '../../../pubUtils/itemUtils';
|
||||
|
||||
export default function(app: Application) {
|
||||
|
||||
@@ -14,7 +14,7 @@ import { chackFunOpenWhenLogin } from '../../../services/funcSwitchService';
|
||||
import { loginRefresh } from '../../../services/playerEventService';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { getRedis, setRedis, delRedis, rmRoleFromQueue } from '../../../services/redisService';
|
||||
import { GuildModel } from '../../../db/Guild';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new EntryHandler(app);
|
||||
}
|
||||
|
||||
29
game-server/app/servers/role/handler/friendHandler.ts
Normal file
29
game-server/app/servers/role/handler/friendHandler.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { Application, BackendSession } from "pinus";
|
||||
import { resResult, getRandEelm } from "../../../pubUtils/util";
|
||||
import { STATUS, ROLE } from "../../../consts";
|
||||
import { RoleModel } from "../../../db/Role";
|
||||
import { getBeforeDaySeconds } from "../../../pubUtils/timeUtil";
|
||||
|
||||
export default function (app: Application) {
|
||||
return new FriendHandler(app);
|
||||
}
|
||||
|
||||
export class FriendHandler {
|
||||
|
||||
constructor(private app: Application) {
|
||||
}
|
||||
|
||||
// 获取推荐好友列表
|
||||
public async getRecommend(msg: { }, session: BackendSession) {
|
||||
let roleId: string = session.get('roleId');
|
||||
|
||||
const day = getBeforeDaySeconds(1);
|
||||
|
||||
const { lv } = await RoleModel.findByRoleId(roleId, ROLE.GET_LV);
|
||||
const allList = await RoleModel.getRecommedList(lv - 5, lv + 5, day);
|
||||
let list = getRandEelm(allList, 10);
|
||||
if(!list.length) list = allList;
|
||||
|
||||
return resResult(STATUS.SUCCESS, { list });
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ import { STATUS } from '../consts/statusCode';
|
||||
import { HangUpSpdUpRecModel } from '../db/HangUpSpdUpRec';
|
||||
import { TowerTaskRecModel } from '../db/TowerTaskRec';
|
||||
import { setRank } from './redisService';
|
||||
import { RankParam } from '../pubUtils/interface';
|
||||
import { RankParam } from '../domain/rank';
|
||||
import { cloneDeep } from 'lodash';
|
||||
|
||||
export async function checkTowerWar(roleId: string, battleId: number, heroes: Array<number>) {
|
||||
|
||||
@@ -12,7 +12,7 @@ import { GuildRecType } from "../db/GuildRec";
|
||||
import { ARMY } from "../pubUtils/dicParam";
|
||||
import { sendMail } from "./mailService";
|
||||
import { setRank, getMyRank, initSingleRank } from "./redisService";
|
||||
import { GuildRankParam, GuildLeader } from "../pubUtils/interface";
|
||||
import { GuildRankParam, GuildLeader } from "../domain/rank";
|
||||
import { lockData, isLocked } from '../services/redLockService';
|
||||
import { ErrLogModel } from '../db/ErrLog';
|
||||
|
||||
|
||||
@@ -5,7 +5,8 @@ import { PVP_HERO_POS, ROBOT_NAME, REDIS_KEY, PVP_CONST } from '../consts';
|
||||
import { setPvpDefResult } from '../services/timeTaskService';
|
||||
import { dicPvpOpponent, DicPvpOpponent } from "../pubUtils/dictionary/DicPvpOpponent";
|
||||
import { getRandomIndexByLen, genCode, getRandomByLen, shouldRefresh, reduceCe, getChineseName } from '../pubUtils/util';
|
||||
import { oppPlayersInter, RankParam, pvpEndParamInter, oppHeroesDefenseInter, Attributes } from '../pubUtils/interface';
|
||||
import { oppPlayersInter, pvpEndParamInter, Attributes } from '../pubUtils/interface';
|
||||
import { RankParam } from '../domain/rank';
|
||||
import { gameData, getPLvByScore } from "../pubUtils/data";
|
||||
import { PVP } from '../pubUtils/dicParam';
|
||||
import { SystemConfigModel } from '../db/SystemConfig'
|
||||
|
||||
@@ -7,7 +7,7 @@ import { promisifyAll } from 'bluebird';
|
||||
import { pinus } from 'pinus';
|
||||
import { PvpDefenseModel } from '../db/PvpDefense';
|
||||
import { SystemConfigModel } from '../db/SystemConfig';
|
||||
import { RankParam, GuildRankParam, GuildLeader } from '../pubUtils/interface';
|
||||
import { GuildRankParam, GuildLeader, RankParam } from '../domain/rank';
|
||||
import { GuildModel } from '../db/Guild';
|
||||
import { comBtlRanges } from '../pubUtils/gamedata';
|
||||
/**
|
||||
|
||||
@@ -9,7 +9,7 @@ import { deepCopy, getRandomArr } from '../pubUtils/util';
|
||||
import { getLvByScore } from './pvpService';
|
||||
import { getMyRank, setRank, getRedis, resetPvpRanks } from './redisService';
|
||||
import { REDIS_KEY } from '../consts';
|
||||
import { RankParam } from '../pubUtils/interface';
|
||||
import { RankParam } from '../domain/rank';
|
||||
import { RoleModel } from '../db/Role';
|
||||
import { MailModel, MailType } from '../db/Mail';
|
||||
import { pinus } from 'pinus';
|
||||
|
||||
1
gm-server/app/domain
Symbolic link
1
gm-server/app/domain
Symbolic link
@@ -0,0 +1 @@
|
||||
../../shared/domain
|
||||
8
shared/consts/constModules/selectConst.ts
Normal file
8
shared/consts/constModules/selectConst.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
export enum ROLE {
|
||||
// 玩家列表显示基础数据
|
||||
SHOW_SIMPLE = 'roleId roleName ce headHid sHid lv title job quitTime',
|
||||
|
||||
GET_LV = 'lv'
|
||||
};
|
||||
|
||||
@@ -5,4 +5,5 @@ export * from './constModules/heroConst';
|
||||
export * from './constModules/itemConst';
|
||||
export * from './constModules/sysConst';
|
||||
export * from './constModules/guildConst';
|
||||
export * from './constModules/selectConst';
|
||||
export * from './statusCode';
|
||||
@@ -1,5 +1,6 @@
|
||||
import { prop, pre, modelOptions } from '@typegoose/typegoose';
|
||||
import { prop, pre, modelOptions, plugin } from '@typegoose/typegoose';
|
||||
import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
|
||||
import mongooseLeanVirtuals = require('mongoose-lean-virtuals');
|
||||
|
||||
/**
|
||||
* BaseModel
|
||||
@@ -15,6 +16,7 @@ import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
|
||||
|
||||
|
||||
@modelOptions({schemaOptions: {id: false}})
|
||||
@plugin(mongooseLeanVirtuals)
|
||||
export default class BaseModel extends TimeStamps {
|
||||
|
||||
_id?: string
|
||||
|
||||
34
shared/db/FriendRelation.ts
Normal file
34
shared/db/FriendRelation.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType, mongoose, Ref } from '@typegoose/typegoose';
|
||||
import Role from './Role';
|
||||
import FriendShip from './FriendShip';
|
||||
|
||||
class Relation {
|
||||
@prop({ required: true, default: '' })
|
||||
roleId: string; // 对方玩家id
|
||||
@prop({ required: true, ref: 'Role', type: mongoose.Schema.Types.ObjectId })
|
||||
role: Ref<Role>;
|
||||
@prop({ required: true, ref: 'FriendRelation', type: mongoose.Schema.Types.ObjectId })
|
||||
friendShip: Ref<FriendShip>;
|
||||
}
|
||||
|
||||
/**
|
||||
* 好友系统关系表
|
||||
*/
|
||||
@index({ roleId: 1, createdAt: -1 })
|
||||
|
||||
export default class FriendRelation extends BaseModel {
|
||||
@prop({ required: true, default: '' })
|
||||
roleId: string; // 操作玩家本人id
|
||||
|
||||
@prop({ required: true, default: [], type: Relation, _id: false })
|
||||
friends: Relation[]; // 好友列表
|
||||
@prop({ required: true, default: [], type: Relation, _id: false })
|
||||
blacklist: Relation[]; // 黑名单列表
|
||||
|
||||
|
||||
}
|
||||
|
||||
export const FriendRelationModel = getModelForClass(FriendRelation);
|
||||
|
||||
export interface FriendRelationType extends Pick<DocumentType<FriendRelation>, keyof FriendRelation>{};
|
||||
42
shared/db/FriendShip.ts
Normal file
42
shared/db/FriendShip.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
|
||||
/**
|
||||
* 好友直接的亲密值
|
||||
*/
|
||||
@index({ roleIds: 1 })
|
||||
|
||||
export default class FriendShip extends BaseModel {
|
||||
|
||||
@prop({ required: true, default: '' })
|
||||
roleIds: string; // 玩家A和玩家B按字母顺排序后合成的字符串
|
||||
|
||||
@prop({ required: true, default: '' })
|
||||
roleIdA: string; // 玩家A
|
||||
@prop({ required: true, default: '' })
|
||||
roleIdB: string; // 玩家B
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
sendHeartCntA: number; // 玩家A给玩家B送的心
|
||||
@prop({ required: true, default: 0 })
|
||||
sendHeartCntB: number; // 玩家B给玩家A送的心
|
||||
@prop({ required: true, default: 0 })
|
||||
receiveHeartCntA: number; // 玩家B领取玩家A送的心
|
||||
@prop({ required: true, default: 0 })
|
||||
receiveHeartCntB: number; // 玩家A领取玩家B送的心
|
||||
@prop({ required: true, default: new Date() })
|
||||
refTime: Date;
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
frdValue: number; // 两人之间的亲密值
|
||||
|
||||
public get frdLv() { // 亲密等级
|
||||
return this.frdValue;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
export const FriendShipModel = getModelForClass(FriendShip);
|
||||
|
||||
export interface FriendShipType extends Pick<DocumentType<FriendShip>, keyof FriendShip>{};
|
||||
@@ -1,9 +1,9 @@
|
||||
import { HANG_UP_CONSTS, ROLE_TERAPH } from './../consts';
|
||||
import { HANG_UP_CONSTS, ROLE_TERAPH, ROLE } from './../consts';
|
||||
import BaseModel from './BaseModel';
|
||||
import { CeAttrRole } from './generalField';
|
||||
import { index, getModelForClass, prop, DocumentType, Ref, mongoose } from '@typegoose/typegoose';
|
||||
import User from './User';
|
||||
import { shouldRefresh } from '../pubUtils/util';
|
||||
import { shouldRefresh, reduceCe } from '../pubUtils/util';
|
||||
import { initRoleAtrr } from '../pubUtils/playerCe';
|
||||
import Hero,{} from '../db/Hero';
|
||||
import { nowSeconds } from '../pubUtils/timeUtil';
|
||||
@@ -112,7 +112,7 @@ export default class Role extends BaseModel {
|
||||
exp: number; // 经验值
|
||||
@prop({ required: true, default: 1 })
|
||||
lv: number; // 主公等级
|
||||
@prop({ required: true, default: 0 })
|
||||
@prop({ required: true, default: 0, set: (val: number) => val, get: (val: number) => reduceCe(val) })
|
||||
ce: number; // 总战力
|
||||
@prop({ required: true, default: new CeAttrRole(), _id: false })
|
||||
globalCeAttr: CeAttrRole; // 总战力
|
||||
@@ -223,8 +223,14 @@ export default class Role extends BaseModel {
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async findByRoleId(roleId: string, lean = true) {
|
||||
const role: RoleType = await RoleModel.findOne({ roleId }).lean(lean);
|
||||
/**
|
||||
* 根据roleId获取一条数据
|
||||
* @param roleId 玩家id
|
||||
* @param select 选取字段,来自 selectConst/ROLE
|
||||
* @param virtuals 是否使用虚拟字段,如ce使用了自动缩小1w倍
|
||||
*/
|
||||
public static async findByRoleId(roleId: string, select?: string, virtuals = false) {
|
||||
const role: RoleType = await RoleModel.findOne({ roleId }).select(select).lean({virtuals});
|
||||
return role;
|
||||
}
|
||||
|
||||
@@ -428,6 +434,15 @@ export default class Role extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
// 获取好友推荐列表
|
||||
public static async getRecommedList(minLv: number, maxLv: number, time: number) {
|
||||
const result = await RoleModel.find({ quitTime: { $gt: time }, lv: { $gte: minLv, $lte: maxLv } }, { _id: 0 })
|
||||
.select(ROLE.SHOW_SIMPLE)
|
||||
.sort({quitTime: -1, lv: -1, ce: -1})
|
||||
.limit(100).lean({ virtuals: true });
|
||||
return result;
|
||||
}
|
||||
|
||||
// 公会解散
|
||||
public static async dissmissGuild(members: string[]) {
|
||||
const result = await RoleModel.updateMany({ roleId: { $in: members } }, { hasGuild: false }).lean();
|
||||
|
||||
88
shared/domain/battleField/guild.ts
Normal file
88
shared/domain/battleField/guild.ts
Normal file
@@ -0,0 +1,88 @@
|
||||
import { PvpEnemies, PvpOtherHeroes } from "../../db/generalField";
|
||||
import { reduceCe } from "../../pubUtils/util";
|
||||
import { GuildType } from "../../db/Guild";
|
||||
import { RoleType } from "../../db/Role";
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
export class PlayerDetail {
|
||||
roleId: string;
|
||||
roleName: string;
|
||||
lv: number;
|
||||
title?: number = 1;
|
||||
sHid?: number = 19;
|
||||
headHid?: number = 19;
|
||||
|
||||
score?: number = 0;
|
||||
pLv?: number = 1;
|
||||
defCe?: number = 0;
|
||||
|
||||
heroes: PlayerDetailHero[];
|
||||
rank?:number = 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.sHid) this.sHid = detail.sHid;
|
||||
if(detail.headHid) this.headHid = detail.headHid;
|
||||
if(detail.score) this.score = detail.score;
|
||||
if(detail.pLv) this.pLv = detail.pLv;
|
||||
if(detail.defCe) this.defCe = reduceCe(detail.defCe);
|
||||
if(detail.heroes) this.heroes = detail.heroes;
|
||||
if(detail.rank) this.rank = detail.rank;
|
||||
}
|
||||
}
|
||||
|
||||
// 军团返回
|
||||
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;
|
||||
this.leader = leader.roleName;
|
||||
}
|
||||
|
||||
setApply(hasApply: boolean) {
|
||||
this.hasApply = hasApply;
|
||||
}
|
||||
}
|
||||
58
shared/domain/rank.ts
Normal file
58
shared/domain/rank.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
// 排行榜返回玩家值
|
||||
export class RankParam {
|
||||
roleName: string;
|
||||
lv: number;
|
||||
vLv: number;
|
||||
guildName: string = "";
|
||||
head: string = 'zhaoyun';
|
||||
headHid: number = 19;
|
||||
sHid: number = 19;
|
||||
title: number;
|
||||
|
||||
constructor(roleName: string, lv: number, vLv: number, headHid: number, sHid: number, title: number) {
|
||||
this.roleName = roleName;
|
||||
this.lv = lv;
|
||||
this.vLv = vLv;
|
||||
this.headHid = headHid;
|
||||
this.sHid = sHid;
|
||||
this.title = title;
|
||||
}
|
||||
}
|
||||
|
||||
// 公会排行榜返回值
|
||||
export class GuildRankParam {
|
||||
icon: number;
|
||||
name: string;
|
||||
lv: number;
|
||||
leader: {
|
||||
roleName: string;
|
||||
title: number;
|
||||
lv: number;
|
||||
headHid: number;
|
||||
sHid: number;
|
||||
}
|
||||
|
||||
constructor(icon: number, name: string, lv: number, leader: {roleName: string, title: number, lv: number, headHid: number, sHid: 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;
|
||||
headHid: number;
|
||||
sHid: number;
|
||||
|
||||
constructor(leader: {roleName: string, title: number, lv: number, headHid: number, sHid: number}) {
|
||||
this.roleName = leader.roleName;
|
||||
this.title = leader.title;
|
||||
this.lv = leader.lv;
|
||||
this.headHid = leader.headHid;
|
||||
this.sHid = leader.sHid;
|
||||
}
|
||||
}
|
||||
0
shared/domain/roleField/friend.ts
Normal file
0
shared/domain/roleField/friend.ts
Normal file
@@ -1,10 +1,5 @@
|
||||
// 一些通用的interface定义
|
||||
|
||||
import { reduceCe } from "./util";
|
||||
import { PvpEnemies, PvpOtherHeroes } from "../db/generalField";
|
||||
import { GuildType } from "../db/Guild";
|
||||
import { RoleType } from "../db/Role";
|
||||
|
||||
export interface RewardInter {
|
||||
id: number;
|
||||
count: number;
|
||||
@@ -101,144 +96,3 @@ export interface pvpEndParamInter {
|
||||
heal: number;
|
||||
underDamage: number;
|
||||
}
|
||||
|
||||
export class RankParam {
|
||||
roleName: string;
|
||||
lv: number;
|
||||
vLv: number;
|
||||
guildName: string = "";
|
||||
head: string = 'zhaoyun';
|
||||
headHid: number = 19;
|
||||
sHid: number = 19;
|
||||
title: number;
|
||||
|
||||
constructor(roleName: string, lv: number, vLv: number, headHid: number, sHid: number, title: number) {
|
||||
this.roleName = roleName;
|
||||
this.lv = lv;
|
||||
this.vLv = vLv;
|
||||
this.headHid = headHid;
|
||||
this.sHid = sHid;
|
||||
this.title = title;
|
||||
}
|
||||
}
|
||||
|
||||
export class GuildRankParam {
|
||||
icon: number;
|
||||
name: string;
|
||||
lv: number;
|
||||
leader: {
|
||||
roleName: string;
|
||||
title: number;
|
||||
lv: number;
|
||||
headHid: number;
|
||||
sHid: number;
|
||||
}
|
||||
|
||||
constructor(icon: number, name: string, lv: number, leader: {roleName: string, title: number, lv: number, headHid: number, sHid: 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;
|
||||
headHid: number;
|
||||
sHid: number;
|
||||
|
||||
constructor(leader: {roleName: string, title: number, lv: number, headHid: number, sHid: number}) {
|
||||
this.roleName = leader.roleName;
|
||||
this.title = leader.title;
|
||||
this.lv = leader.lv;
|
||||
this.headHid = leader.headHid;
|
||||
this.sHid = leader.sHid;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
export class PlayerDetail {
|
||||
roleId: string;
|
||||
roleName: string;
|
||||
lv: number;
|
||||
title?: number = 1;
|
||||
sHid?: number = 19;
|
||||
headHid?: number = 19;
|
||||
|
||||
score?: number = 0;
|
||||
pLv?: number = 1;
|
||||
defCe?: number = 0;
|
||||
|
||||
heroes: PlayerDetailHero[];
|
||||
rank?:number = 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.sHid) this.sHid = detail.sHid;
|
||||
if(detail.headHid) this.headHid = detail.headHid;
|
||||
if(detail.score) this.score = detail.score;
|
||||
if(detail.pLv) this.pLv = detail.pLv;
|
||||
if(detail.defCe) this.defCe = reduceCe(detail.defCe);
|
||||
if(detail.heroes) this.heroes = detail.heroes;
|
||||
if(detail.rank) this.rank = detail.rank;
|
||||
}
|
||||
}
|
||||
|
||||
// 军团返回
|
||||
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;
|
||||
this.leader = leader.roleName;
|
||||
}
|
||||
|
||||
setApply(hasApply: boolean) {
|
||||
this.hasApply = hasApply;
|
||||
}
|
||||
}
|
||||
1
web-server/app/domain
Symbolic link
1
web-server/app/domain
Symbolic link
@@ -0,0 +1 @@
|
||||
../../shared/domain
|
||||
Reference in New Issue
Block a user