init
This commit is contained in:
@@ -1,144 +1,144 @@
|
||||
// 军团活动蛮夷入侵城门血量等数据存储
|
||||
|
||||
import { GUILD_ACTIVITY_STATUS } from "../../consts";
|
||||
import { CityActivityData } from "../../domain/battleField/guildActivity";
|
||||
import { getCityActivityGateHp } from "./guildActivityService";
|
||||
|
||||
// 军团诸侯混战等数据
|
||||
export class CityActivityObject {
|
||||
data: CityActivityData = new CityActivityData();
|
||||
|
||||
|
||||
public getKey(serverId: number, cityId: number) {
|
||||
return `${serverId}_${cityId}`;
|
||||
}
|
||||
|
||||
public decodeKey(key: string) {
|
||||
let arr = key.split('_');
|
||||
return {
|
||||
serverId: parseInt(arr[0]),
|
||||
cityId: parseInt(arr[1])
|
||||
}
|
||||
}
|
||||
|
||||
public getObj( serverId: number, cityId: number, guildCode: string) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
return {
|
||||
gateHp: this.data.gateHp.get(key),
|
||||
maxHp: this.data.maxHp.get(key),
|
||||
members: this.data.members.get(guildCode),
|
||||
city: this.data.cities.get(key),
|
||||
guild: this.data.guilds.get(guildCode)
|
||||
}
|
||||
}
|
||||
|
||||
public startActivity() {
|
||||
this.data.startTime = Date.now();
|
||||
this.data.guildActivityStatus = GUILD_ACTIVITY_STATUS.START;
|
||||
}
|
||||
|
||||
public endActivity() {
|
||||
this.data.guildActivityStatus = GUILD_ACTIVITY_STATUS.END;
|
||||
}
|
||||
|
||||
public getStatus() {
|
||||
return this.data.guildActivityStatus;
|
||||
}
|
||||
|
||||
public getTimeGap() {
|
||||
return Math.floor((Date.now() - this.data.startTime)/1000);
|
||||
}
|
||||
|
||||
public lockCity(serverId: number, cityId: number) {
|
||||
if(this.hasSent(serverId, cityId)) return false;
|
||||
this.unlockCity(serverId, cityId);
|
||||
return true;
|
||||
}
|
||||
|
||||
private unlockCity(serverId: number, cityId: number) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
// let guildCodes = this.cities.get(key)||[];
|
||||
// for(let guildCode of guildCodes) {
|
||||
// this.members.delete(guildCode);
|
||||
// this.guilds.delete(guildCode);
|
||||
// }
|
||||
// this.cities.delete(key);
|
||||
this.data.sentCity.push(key);
|
||||
}
|
||||
|
||||
public hasSent(serverId: number, cityId: number) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
return this.data.sentCity.indexOf(key) != -1;
|
||||
}
|
||||
|
||||
public getAllCities() {
|
||||
let allCities = new Array<{ serverId: number, cityId: number, guildCodes: string[]}>();
|
||||
let serverlists = new Array<number>();
|
||||
for(let [key, guildCodes] of this.data.cities) {
|
||||
let { serverId, cityId } = this.decodeKey(key);
|
||||
if(!this.hasSent(serverId, cityId)) {
|
||||
allCities.push({ serverId, cityId, guildCodes });
|
||||
if(!serverlists.includes(serverId)) serverlists.push(serverId);
|
||||
}
|
||||
}
|
||||
return {cities: allCities, serverlists};
|
||||
}
|
||||
|
||||
public getGuildsInCity(serverId: number, cityId: number) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
return this.data.cities.get(key)||[];
|
||||
}
|
||||
|
||||
public getMembersOfGuild(guildCode: string) {
|
||||
return this.data.members.get(guildCode)||[];
|
||||
}
|
||||
|
||||
public async getGateHpAndInc(serverId: number, cityId: number, inc: number = 0) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
let gateHp = this.data.gateHp.get(key);
|
||||
if(!this.data.gateHp.has(key)) {
|
||||
gateHp = await getCityActivityGateHp(serverId, cityId);
|
||||
this.data.gateHp.set(key, gateHp);
|
||||
this.data.maxHp.set(key, gateHp);
|
||||
}
|
||||
if(inc != 0) {
|
||||
gateHp += inc;
|
||||
this.data.gateHp.set(key, gateHp);
|
||||
}
|
||||
if(gateHp <= 0) gateHp = 0;
|
||||
return { gateHp, maxHp: this.data.maxHp.get(key)||0 }
|
||||
}
|
||||
|
||||
public pushMembers(guildCode: string, roleId: string, job: number, code: string) {
|
||||
|
||||
if(this.data.members.has(guildCode)) {
|
||||
let members = this.data.members.get(guildCode);
|
||||
if(members.findIndex(cur => cur.roleId == roleId) == -1) {
|
||||
members.push({ roleId, job, code, startActionTime: 0 });
|
||||
}
|
||||
} else {
|
||||
let arr = new Array<string>();
|
||||
arr.push(roleId);
|
||||
this.data.members.set(guildCode, [{ roleId, job, code, startActionTime: 0 }]);
|
||||
}
|
||||
}
|
||||
|
||||
public getMember(guildCode: string, roleId: string) {
|
||||
let members = this.data.members.get(guildCode)||[];
|
||||
let member = members.find(cur => cur.roleId == roleId);
|
||||
return member;
|
||||
}
|
||||
|
||||
public pushGuild(guildCode: string, serverId: number, cityId: number) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
if(!this.data.cities.has(key)) {
|
||||
this.data.cities.set(key, [guildCode]);
|
||||
} else {
|
||||
let arr = this.data.cities.get(key);
|
||||
if(!arr.includes(guildCode)) {
|
||||
arr.push(guildCode);
|
||||
}
|
||||
}
|
||||
this.data.guilds.set(guildCode, cityId);
|
||||
}
|
||||
}
|
||||
// 军团活动蛮夷入侵城门血量等数据存储
|
||||
|
||||
import { GUILD_ACTIVITY_STATUS } from "@consts";
|
||||
import { CityActivityData } from "@domain/battleField/guildActivity";
|
||||
import { getCityActivityGateHp } from "./guildActivityService";
|
||||
|
||||
// 军团诸侯混战等数据
|
||||
export class CityActivityObject {
|
||||
data: CityActivityData = new CityActivityData();
|
||||
|
||||
|
||||
public getKey(serverId: number, cityId: number) {
|
||||
return `${serverId}_${cityId}`;
|
||||
}
|
||||
|
||||
public decodeKey(key: string) {
|
||||
let arr = key.split('_');
|
||||
return {
|
||||
serverId: parseInt(arr[0]),
|
||||
cityId: parseInt(arr[1])
|
||||
}
|
||||
}
|
||||
|
||||
public getObj( serverId: number, cityId: number, guildCode: string) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
return {
|
||||
gateHp: this.data.gateHp.get(key),
|
||||
maxHp: this.data.maxHp.get(key),
|
||||
members: this.data.members.get(guildCode),
|
||||
city: this.data.cities.get(key),
|
||||
guild: this.data.guilds.get(guildCode)
|
||||
}
|
||||
}
|
||||
|
||||
public startActivity() {
|
||||
this.data.startTime = Date.now();
|
||||
this.data.guildActivityStatus = GUILD_ACTIVITY_STATUS.START;
|
||||
}
|
||||
|
||||
public endActivity() {
|
||||
this.data.guildActivityStatus = GUILD_ACTIVITY_STATUS.END;
|
||||
}
|
||||
|
||||
public getStatus() {
|
||||
return this.data.guildActivityStatus;
|
||||
}
|
||||
|
||||
public getTimeGap() {
|
||||
return Math.floor((Date.now() - this.data.startTime)/1000);
|
||||
}
|
||||
|
||||
public lockCity(serverId: number, cityId: number) {
|
||||
if(this.hasSent(serverId, cityId)) return false;
|
||||
this.unlockCity(serverId, cityId);
|
||||
return true;
|
||||
}
|
||||
|
||||
private unlockCity(serverId: number, cityId: number) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
// let guildCodes = this.cities.get(key)||[];
|
||||
// for(let guildCode of guildCodes) {
|
||||
// this.members.delete(guildCode);
|
||||
// this.guilds.delete(guildCode);
|
||||
// }
|
||||
// this.cities.delete(key);
|
||||
this.data.sentCity.push(key);
|
||||
}
|
||||
|
||||
public hasSent(serverId: number, cityId: number) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
return this.data.sentCity.indexOf(key) != -1;
|
||||
}
|
||||
|
||||
public getAllCities() {
|
||||
let allCities = new Array<{ serverId: number, cityId: number, guildCodes: string[]}>();
|
||||
let serverlists = new Array<number>();
|
||||
for(let [key, guildCodes] of this.data.cities) {
|
||||
let { serverId, cityId } = this.decodeKey(key);
|
||||
if(!this.hasSent(serverId, cityId)) {
|
||||
allCities.push({ serverId, cityId, guildCodes });
|
||||
if(!serverlists.includes(serverId)) serverlists.push(serverId);
|
||||
}
|
||||
}
|
||||
return {cities: allCities, serverlists};
|
||||
}
|
||||
|
||||
public getGuildsInCity(serverId: number, cityId: number) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
return this.data.cities.get(key)||[];
|
||||
}
|
||||
|
||||
public getMembersOfGuild(guildCode: string) {
|
||||
return this.data.members.get(guildCode)||[];
|
||||
}
|
||||
|
||||
public async getGateHpAndInc(serverId: number, cityId: number, inc: number = 0) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
let gateHp = this.data.gateHp.get(key);
|
||||
if(!this.data.gateHp.has(key)) {
|
||||
gateHp = await getCityActivityGateHp(serverId, cityId);
|
||||
this.data.gateHp.set(key, gateHp);
|
||||
this.data.maxHp.set(key, gateHp);
|
||||
}
|
||||
if(inc != 0) {
|
||||
gateHp += inc;
|
||||
this.data.gateHp.set(key, gateHp);
|
||||
}
|
||||
if(gateHp <= 0) gateHp = 0;
|
||||
return { gateHp, maxHp: this.data.maxHp.get(key)||0 }
|
||||
}
|
||||
|
||||
public pushMembers(guildCode: string, roleId: string, job: number, code: string) {
|
||||
|
||||
if(this.data.members.has(guildCode)) {
|
||||
let members = this.data.members.get(guildCode);
|
||||
if(members.findIndex(cur => cur.roleId == roleId) == -1) {
|
||||
members.push({ roleId, job, code, startActionTime: 0 });
|
||||
}
|
||||
} else {
|
||||
let arr = new Array<string>();
|
||||
arr.push(roleId);
|
||||
this.data.members.set(guildCode, [{ roleId, job, code, startActionTime: 0 }]);
|
||||
}
|
||||
}
|
||||
|
||||
public getMember(guildCode: string, roleId: string) {
|
||||
let members = this.data.members.get(guildCode)||[];
|
||||
let member = members.find(cur => cur.roleId == roleId);
|
||||
return member;
|
||||
}
|
||||
|
||||
public pushGuild(guildCode: string, serverId: number, cityId: number) {
|
||||
let key = this.getKey(serverId, cityId);
|
||||
if(!this.data.cities.has(key)) {
|
||||
this.data.cities.set(key, [guildCode]);
|
||||
} else {
|
||||
let arr = this.data.cities.get(key);
|
||||
if(!arr.includes(guildCode)) {
|
||||
arr.push(guildCode);
|
||||
}
|
||||
}
|
||||
this.data.guilds.set(guildCode, cityId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,72 +1,72 @@
|
||||
|
||||
// 军团活动蛮夷入侵城门血量等数据存储
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
// 军团活动蛮夷入侵城门血量等数据存储
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user