72 lines
2.3 KiB
TypeScript
72 lines
2.3 KiB
TypeScript
|
|
// 军团活动蛮夷入侵城门血量等数据存储
|
|
|
|
import { Member, GateMembersRec, GateActivityData } from "../../domain/battleField/guildActivity";
|
|
|
|
export class GateActivityObject {
|
|
data: GateActivityData = new GateActivityData();
|
|
|
|
public getObj(guildCode: string, serverId: number) {
|
|
// console.log(guildCode, serverId)
|
|
return {
|
|
members: this.data.members.get(guildCode)||[],
|
|
memberesRecord: [...this.data.membersRecord],
|
|
guilds: this.data.guilds.get(serverId)||[]
|
|
}
|
|
}
|
|
|
|
public startActivity() {
|
|
this.data.startTime = Date.now();
|
|
}
|
|
|
|
public getTimeGap() {
|
|
return Math.floor((Date.now() - this.data.startTime)/1000);
|
|
}
|
|
|
|
public getGuilds() {
|
|
return this.data.guilds;
|
|
}
|
|
|
|
public pushMembers(guildCode: string, serverId: number, roleId: string, job: number, code: string) {
|
|
let member: Member;
|
|
if(this.data.members.has(guildCode)) {
|
|
let members = this.data.members.get(guildCode);
|
|
if(members.findIndex(cur => cur.roleId == roleId) == -1) {
|
|
member = { roleId, job, code }
|
|
members.push(member);
|
|
}
|
|
} else {
|
|
member = { roleId, job, code }
|
|
this.data.members.set(guildCode, [member]);
|
|
}
|
|
if(this.data.guilds.has(serverId)) {
|
|
let arr = this.data.guilds.get(serverId);
|
|
if(!arr.includes(guildCode)) arr.push(guildCode);
|
|
this.data.guilds.set(serverId, arr);
|
|
} else {
|
|
this.data.guilds.set(serverId, [guildCode]);
|
|
}
|
|
return member;
|
|
}
|
|
|
|
public getMemberRecord(recCode: string, roleId: string) {
|
|
return this.data.membersRecord.get(recCode)||new GateMembersRec(roleId)
|
|
}
|
|
|
|
public setMemberRecord(recCode: string, newMemberRecord: GateMembersRec) {
|
|
this.data.membersRecord.set(recCode, newMemberRecord);
|
|
}
|
|
|
|
public delMemberRecord(recCode: string) {
|
|
this.data.membersRecord.delete(recCode);
|
|
}
|
|
|
|
public delGuildRecord(guildCode: string, serverId: number) {
|
|
let guildList = this.data.guilds.get(serverId);
|
|
if(guildList) {
|
|
let index = guildList.indexOf(guildCode);
|
|
guildList.splice(index, 1);
|
|
}
|
|
this.data.members.delete(guildCode);
|
|
}
|
|
} |