军团活动:蛮夷入侵定时任务及推送

This commit is contained in:
luying
2021-03-18 21:07:06 +08:00
parent 2cf3b0ffe0
commit 7e7be94688
11 changed files with 289 additions and 39 deletions

View File

@@ -1,4 +1,5 @@
import { GUILDACTIVITY } from "../../pubUtils/dicParam";
import { SimpleGuildRankParam, SimpleRoleRankParam } from '../rank'
export class GateMembersRec {
roleId: string;
@@ -9,10 +10,13 @@ export class GateMembersRec {
}
}
// 军团活动蛮夷入侵城门血量等数据存储
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(); // 每个成员的回合数和敌军数,防刷
private guilds: Map<number, string[]> = new Map(); // 参加的所有军团
public getObj(guildCode: string) {
return {
@@ -35,13 +39,24 @@ export class GateActivityObject {
return gateHp
}
public pushMembers(guildCode: string, roleId: string) {
public getGuilds() {
return this.guilds;
}
public pushMembers(guildCode: string, serverId: number, roleId: string) {
if(this.members.has(guildCode)) {
this.members.get(guildCode).push(roleId);
} else {
this.members.set(guildCode, [roleId]);
}
if(this.guilds.has(serverId)) {
this.guilds.set(serverId, []);
} else {
let arr = this.guilds.get(serverId)||[];
if(!arr.includes(guildCode)) arr.push(guildCode);
this.guilds.set(serverId, arr);
}
}
public getMemberRecord(code: string, roleId: string) {
@@ -55,4 +70,11 @@ export class GateActivityObject {
public delMemberRecord(code: string) {
this.membersRecord.delete(code);
}
}
export interface GuildGateRankParam {
guildRank: SimpleGuildRankParam[],
myGuildRank: SimpleGuildRankParam,
memberRank: SimpleRoleRankParam[],
myMemberRank?: SimpleRoleRankParam
}

View File

@@ -62,4 +62,32 @@ export class GuildLeader {
this.frame = leader.frame;
this.spine = leader.spine;
}
}
export class SimpleGuildRankParam {
rank: number;
code: string;
name: string;
num: number;
constructor(rank: number, code: string, name: string, num: number) {
this.rank = rank;
this.code = code;
this.name = name;
this.num = num;
}
}
export class SimpleRoleRankParam {
rank: number;
roleId: string;
roleName: string;
num: number;
constructor(rank: number, roleId: string, roleName: string, num: number) {
this.rank = rank;
this.roleId = roleId;
this.roleName = roleName;
this.num = num;
}
}

View File

@@ -58,8 +58,9 @@ import { dicArmyDonate } from '../pubUtils/dictionary/DicArmyDonateBoxReward';
import { dicRoleFriend, DicRoleFriend } from "./dictionary/DicRoleFriend";
import { dicRoleFriendLv } from "./dictionary/DicRoleFriendLv";
import { Attribute } from "../domain/roleField/attribute";
import { dicGuildActivity } from './dictionary/DicGuildActivity';
import { dicGuildActivity, DicGuildActivity } from './dictionary/DicGuildActivity';
import { dicGateActivityPoint } from './dictionary/DicGateActivityPoint';
import { getCutDay } from "./timeUtil";
export const gameData = {
blurprtCompose: dicBlueprtCompose,
@@ -438,4 +439,20 @@ export function getDicFriendByLv(lv: number) {
}
return dicFriend;
}
}
/**
* @description 获取今天开启的活动的配置
*/
export function getTodayGuildActivity() {
let today = getCutDay();
let dic: DicGuildActivity;
for(let [_id, dicGuildActivity] of gameData.guildActivity) {
if(dicGuildActivity.openDay.includes(today)) {
dic = dicGuildActivity;
break;
}
}
return dic;
}