🦄 refactor(热更新): 分割状态代码和功能代码

This commit is contained in:
luying
2023-04-28 20:09:40 +08:00
parent 50a24cb4b8
commit a362a397b5
39 changed files with 676 additions and 622 deletions

View File

@@ -1,75 +1,72 @@
// 军团活动蛮夷入侵城门血量等数据存储
import { Member, GateMembersRec } from "../../domain/battleField/guildActivity";
import { Member, GateMembersRec, GateActivityData } from "../../domain/battleField/guildActivity";
export class GateActivityObject {
public startTime: number;
private members: Map<string, Array<Member>> = new Map(); // 每个军团参与的成员 guildCode => [{roleId, job}]
private membersRecord: Map<string, GateMembersRec> = new Map(); // 每个成员的回合数和敌军数,防刷 recCode => GateMembersRec
private guilds: Map<number, string[]> = new Map(); // 参加的所有军团 server => [guildCode]
data: GateActivityData = new GateActivityData();
public getObj(guildCode: string, serverId: number) {
// console.log(guildCode, serverId)
return {
members: this.members.get(guildCode)||[],
memberesRecord: [...this.membersRecord],
guilds: this.guilds.get(serverId)||[]
members: this.data.members.get(guildCode)||[],
memberesRecord: [...this.data.membersRecord],
guilds: this.data.guilds.get(serverId)||[]
}
}
public startActivity() {
this.startTime = Date.now();
this.data.startTime = Date.now();
}
public getTimeGap() {
return Math.floor((Date.now() - this.startTime)/1000);
return Math.floor((Date.now() - this.data.startTime)/1000);
}
public getGuilds() {
return this.guilds;
return this.data.guilds;
}
public pushMembers(guildCode: string, serverId: number, roleId: string, job: number, code: string) {
let member: Member;
if(this.members.has(guildCode)) {
let members = this.members.get(guildCode);
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.members.set(guildCode, [member]);
this.data.members.set(guildCode, [member]);
}
if(this.guilds.has(serverId)) {
let arr = this.guilds.get(serverId);
if(this.data.guilds.has(serverId)) {
let arr = this.data.guilds.get(serverId);
if(!arr.includes(guildCode)) arr.push(guildCode);
this.guilds.set(serverId, arr);
this.data.guilds.set(serverId, arr);
} else {
this.guilds.set(serverId, [guildCode]);
this.data.guilds.set(serverId, [guildCode]);
}
return member;
}
public getMemberRecord(recCode: string, roleId: string) {
return this.membersRecord.get(recCode)||new GateMembersRec(roleId)
return this.data.membersRecord.get(recCode)||new GateMembersRec(roleId)
}
public setMemberRecord(recCode: string, newMemberRecord: GateMembersRec) {
this.membersRecord.set(recCode, newMemberRecord);
this.data.membersRecord.set(recCode, newMemberRecord);
}
public delMemberRecord(recCode: string) {
this.membersRecord.delete(recCode);
this.data.membersRecord.delete(recCode);
}
public delGuildRecord(guildCode: string, serverId: number) {
let guildList = this.guilds.get(serverId);
let guildList = this.data.guilds.get(serverId);
if(guildList) {
let index = guildList.indexOf(guildCode);
guildList.splice(index, 1);
}
this.members.delete(guildCode);
this.data.members.delete(guildCode);
}
}