Files
ZYZ/shared/domain/battleField/guildActivity.ts
2021-03-18 16:42:50 +08:00

58 lines
1.8 KiB
TypeScript

import { GUILDACTIVITY } from "../../pubUtils/dicParam";
export class GateMembersRec {
roleId: string;
round: number = 0;
enemies: number[] = [];
constructor(roleId: string) {
this.roleId = roleId;
}
}
export class GateActivityObject {
private gateHp: Map<string, number> = new Map(); // 城门血条,每个军团有一条血条
private members: Map<string, Array<string>> = new Map(); // 每个军团参与的成员
private membersRecord: Map<string, GateMembersRec> = new Map(); // 每个成员的回合数和敌军数,防刷
public getObj(guildCode: string) {
return {
gateHp: this.getGateHpAndInc(guildCode),
members: this.members.get(guildCode),
memberesRecord: this.membersRecord.get(guildCode)
}
}
public getGateHpAndInc(guildCode: string, inc: number = 0) {
let gateHp = this.gateHp.get(guildCode);
if(!this.gateHp.has(guildCode)) {
gateHp = GUILDACTIVITY.GATEACTIVITY_GATEHP;
}
if(inc != 0) {
gateHp += inc;
this.gateHp.set(guildCode, gateHp);
}
if(gateHp <= 0) gateHp = 0;
return gateHp
}
public pushMembers(guildCode: string, roleId: string) {
if(this.members.has(guildCode)) {
this.members.get(guildCode).push(roleId);
} else {
this.members.set(guildCode, [roleId]);
}
}
public getMemberRecord(code: string, roleId: string) {
return this.membersRecord.get(code)||new GateMembersRec(roleId)
}
public setMemberRecord(code: string, newMemberRecord: GateMembersRec) {
this.membersRecord.set(code, newMemberRecord);
}
public delMemberRecord(code: string) {
this.membersRecord.delete(code);
}
}