军团活动:诸侯混战自动宣战
This commit is contained in:
@@ -20,6 +20,7 @@ import { SurveyModel, SurveyUpdate } from '../../../db/Survery';
|
|||||||
import { getSurvey } from '../../../services/gmService';
|
import { getSurvey } from '../../../services/gmService';
|
||||||
import { sendMessageToAllWithSuc } from '../../../services/pushService';
|
import { sendMessageToAllWithSuc } from '../../../services/pushService';
|
||||||
import { sendMailByContent, sendMailsByGmMail } from '../../../services/mailService';
|
import { sendMailByContent, sendMailsByGmMail } from '../../../services/mailService';
|
||||||
|
import { GuildActivityCityDeclareModel } from '../../../db/GuildActivityCityDeclare';
|
||||||
let timer: NodeJS.Timer;
|
let timer: NodeJS.Timer;
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
return new GmHandler(app);
|
return new GmHandler(app);
|
||||||
@@ -317,6 +318,7 @@ export class GmHandler {
|
|||||||
// 清空旧数据
|
// 清空旧数据
|
||||||
if (day <= 2) {
|
if (day <= 2) {
|
||||||
await GuildActivityCityModel.clearGuardAndStartNext();
|
await GuildActivityCityModel.clearGuardAndStartNext();
|
||||||
|
await GuildActivityCityDeclareModel.clearDeclare();
|
||||||
}
|
}
|
||||||
if(aid != 0) await delGuildActivityRank(aid);
|
if(aid != 0) await delGuildActivityRank(aid);
|
||||||
await GuildActivityRecordModel.updateTodayInfo({ status: 2 });
|
await GuildActivityRecordModel.updateTodayInfo({ status: 2 });
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Application, ChannelService, BackendSession, pinus, HandlerService, } from "pinus";
|
import { Application, ChannelService, BackendSession, pinus, HandlerService, } from "pinus";
|
||||||
import { GUILD_ACTIVITY_TYPE, STATUS, REDIS_KEY, GUILD_POINT_WAYS, CITY_STATUS, TASK_TYPE, ITEM_CHANGE_REASON, PUSH_ROUTE, GUILD_ACTIVITY_STATUS } from "../../../consts";
|
import { GUILD_ACTIVITY_TYPE, STATUS, REDIS_KEY, GUILD_POINT_WAYS, CITY_STATUS, TASK_TYPE, ITEM_CHANGE_REASON, PUSH_ROUTE, GUILD_ACTIVITY_STATUS } from "../../../consts";
|
||||||
import { resResult } from "../../../pubUtils/util";
|
import { resResult } from "../../../pubUtils/util";
|
||||||
import { getGuildActivityStatus, getCityActivityObj, getCityStatus as pubGetCityStatus, getCities, getCityActivityRank, sendSingleCityActEndMsg, getPreDayActiveData, sendGuildCityDeclare } from "../../../services/guildActivity/guildActivityService";
|
import { getGuildActivityStatus, getCityActivityObj, getCityStatus as pubGetCityStatus, getCities, getCityActivityRank, sendSingleCityActEndMsg, getPreDayActiveData, sendGuildCityDeclare, declareCity, autoDeclareMyCity } from "../../../services/guildActivity/guildActivityService";
|
||||||
import { GuildActivityCityModel } from "../../../db/GuildActivityCity";
|
import { GuildActivityCityModel } from "../../../db/GuildActivityCity";
|
||||||
import { gameData } from "../../../pubUtils/data";
|
import { gameData } from "../../../pubUtils/data";
|
||||||
import { UserGuildActivityRecModel } from "../../../db/UserGuildActivityRec";
|
import { UserGuildActivityRecModel } from "../../../db/UserGuildActivityRec";
|
||||||
@@ -18,6 +18,7 @@ import { dispatch } from "../../../pubUtils/dispatcher";
|
|||||||
import { ServerRecordModel } from "../../../db/ServerRecords";
|
import { ServerRecordModel } from "../../../db/ServerRecords";
|
||||||
import { sendMessageToCityWithSuc } from "../../../services/pushService";
|
import { sendMessageToCityWithSuc } from "../../../services/pushService";
|
||||||
import { isDebugTime } from "../../../pubUtils/sdkUtil";
|
import { isDebugTime } from "../../../pubUtils/sdkUtil";
|
||||||
|
import { GuildActivityCityDeclareModel } from "../../../db/GuildActivityCityDeclare";
|
||||||
|
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
new HandlerService(app, {});
|
new HandlerService(app, {});
|
||||||
@@ -34,15 +35,17 @@ export class CityActivityHandler {
|
|||||||
|
|
||||||
// 进入诸侯混战
|
// 进入诸侯混战
|
||||||
async getCityActivity(msg: {}, session: BackendSession) {
|
async getCityActivity(msg: {}, session: BackendSession) {
|
||||||
|
const roleId = session.get('roleId');
|
||||||
// const roleId = session.get('roleId');
|
|
||||||
// const roleName = session.get('roleName');
|
// const roleName = session.get('roleName');
|
||||||
const serverId = session.get('serverId');
|
const serverId = session.get('serverId');
|
||||||
const guildCode = session.get('guildCode');
|
const guildCode = session.get('guildCode');
|
||||||
|
|
||||||
let statusResult = getGuildActivityStatus(this.aid);
|
let statusResult = getGuildActivityStatus(this.aid);
|
||||||
if (!statusResult) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
if (!statusResult) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||||
|
|
||||||
|
if(statusResult.status == GUILD_ACTIVITY_STATUS.START) {
|
||||||
|
await autoDeclareMyCity(serverId, roleId, guildCode);
|
||||||
|
}
|
||||||
const dbCities = await GuildActivityCityModel.getAllCities(serverId);
|
const dbCities = await GuildActivityCityModel.getAllCities(serverId);
|
||||||
let cities = getCities(guildCode, dbCities);
|
let cities = getCities(guildCode, dbCities);
|
||||||
|
|
||||||
@@ -108,7 +111,7 @@ export class CityActivityHandler {
|
|||||||
|
|
||||||
// 宣战
|
// 宣战
|
||||||
async declareCity(msg: { cityId: number }, session: BackendSession) {
|
async declareCity(msg: { cityId: number }, session: BackendSession) {
|
||||||
// const roleId = session.get('roleId');
|
const roleId = session.get('roleId');
|
||||||
// const roleName = session.get('roleName');
|
// const roleName = session.get('roleName');
|
||||||
const serverId = session.get('serverId');
|
const serverId = session.get('serverId');
|
||||||
const guildCode = session.get('guildCode');
|
const guildCode = session.get('guildCode');
|
||||||
@@ -117,18 +120,15 @@ export class CityActivityHandler {
|
|||||||
let dicCity = gameData.cityActivity.get(cityId);
|
let dicCity = gameData.cityActivity.get(cityId);
|
||||||
if (dicCity.preCity.length > 0) return resResult(STATUS.CAN_NOT_DECLARE);
|
if (dicCity.preCity.length > 0) return resResult(STATUS.CAN_NOT_DECLARE);
|
||||||
|
|
||||||
let checkResult = await GuildActivityCityModel.checkDeclartion(serverId, guildCode);
|
let checkResult = await GuildActivityCityDeclareModel.checkDeclartion(serverId, guildCode);
|
||||||
if (!!checkResult) return resResult(STATUS.HAS_DECLARED);
|
if (!!checkResult) return resResult(STATUS.HAS_DECLARED);
|
||||||
let curCity = await GuildActivityCityModel.getCity(serverId, cityId);
|
let curCity = await GuildActivityCityModel.getCity(serverId, cityId);
|
||||||
if (curCity && curCity.guardGuildCode) {
|
if (curCity && curCity.guardGuildCode) {
|
||||||
return resResult(STATUS.CITY_IS_GUARD);
|
return resResult(STATUS.CITY_IS_GUARD);
|
||||||
}
|
}
|
||||||
|
|
||||||
let rec = await GuildActivityCityModel.declare(serverId, cityId, guildCode);
|
let declareResult = await declareCity(serverId, roleId, guildCode, cityId, false);
|
||||||
await sendGuildCityDeclare(cityId, guildCode, rec.declareCount);
|
if(!declareResult) return resResult(STATUS.HAS_DECLARED);
|
||||||
|
|
||||||
let obj = getCityActivityObj();
|
|
||||||
obj.pushGuild(guildCode, serverId, cityId);
|
|
||||||
|
|
||||||
const dbCities = await GuildActivityCityModel.getAllCities(serverId);
|
const dbCities = await GuildActivityCityModel.getAllCities(serverId);
|
||||||
let cities = getCities(guildCode, dbCities);
|
let cities = getCities(guildCode, dbCities);
|
||||||
@@ -148,7 +148,7 @@ export class CityActivityHandler {
|
|||||||
|
|
||||||
if (!guildCode) return resResult(STATUS.GUILD_AUTH_NOT_ENOUGH);
|
if (!guildCode) return resResult(STATUS.GUILD_AUTH_NOT_ENOUGH);
|
||||||
|
|
||||||
let checkResult = await GuildActivityCityModel.checkDeclartion(serverId, guildCode);
|
let checkResult = await GuildActivityCityDeclareModel.checkDeclartion(serverId, guildCode);
|
||||||
if (!checkResult) return resResult(STATUS.HAS_NOT_DECLARED);
|
if (!checkResult) return resResult(STATUS.HAS_NOT_DECLARED);
|
||||||
|
|
||||||
let obj = getCityActivityObj();
|
let obj = getCityActivityObj();
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import { ServerlistModel, ServerlistType } from "../../db/Serverlist";
|
|||||||
import { RoleModel } from "../../db/Role";
|
import { RoleModel } from "../../db/Role";
|
||||||
import { GUILDACTIVITY } from "../../pubUtils/dicParam";
|
import { GUILDACTIVITY } from "../../pubUtils/dicParam";
|
||||||
import { gameData, getGuildAuctionRewards, getCityActivityRewards } from "../../pubUtils/data";
|
import { gameData, getGuildAuctionRewards, getCityActivityRewards } from "../../pubUtils/data";
|
||||||
import { getCurDay, nowSeconds, getTimeFun } from "../../pubUtils/timeUtil";
|
import { getCurDay, nowSeconds, getTimeFun, getZeroPoint } from "../../pubUtils/timeUtil";
|
||||||
import { GUILD_ACTIVITY_STATUS, GET_POINT_WAYS, GUILD_ACTIVITY_TYPE, REDIS_KEY, AUCTION_SOURCE, MAIL_TYPE, CITY_STATUS, DEBUG_MAGIC_WORD, GUILD_POINT_WAYS, TASK_TYPE, AUCTION_TIME, CITY_ACTIVITY_DOOR, ABI_TYPE, PUSH_ROUTE, RACE_ACTIVITY_STATUS } from "../../consts";
|
import { GUILD_ACTIVITY_STATUS, GET_POINT_WAYS, GUILD_ACTIVITY_TYPE, REDIS_KEY, AUCTION_SOURCE, MAIL_TYPE, CITY_STATUS, DEBUG_MAGIC_WORD, GUILD_POINT_WAYS, TASK_TYPE, AUCTION_TIME, CITY_ACTIVITY_DOOR, ABI_TYPE, PUSH_ROUTE, RACE_ACTIVITY_STATUS, SHOP_REFRESH_TYPE } from "../../consts";
|
||||||
import { Record, UserGuildActivityRecModel } from "../../db/UserGuildActivityRec";
|
import { Record, UserGuildActivityRecModel } from "../../db/UserGuildActivityRec";
|
||||||
import { GateMembersRec, CityParam, Member, WoodenHorse } from "../../domain/battleField/guildActivity";
|
import { GateMembersRec, CityParam, Member, WoodenHorse } from "../../domain/battleField/guildActivity";
|
||||||
import { DicGuildActivity } from "../../pubUtils/dictionary/DicGuildActivity";
|
import { DicGuildActivity } from "../../pubUtils/dictionary/DicGuildActivity";
|
||||||
@@ -11,7 +11,7 @@ import { getAllServers, getRoleOnlineInfo } from "../redisService";
|
|||||||
import { SimpleGuildRankParam, SimpleRoleRankParam, GuildRankInfo, RoleRankInfo } from "../../domain/rank";
|
import { SimpleGuildRankParam, SimpleRoleRankParam, GuildRankInfo, RoleRankInfo } from "../../domain/rank";
|
||||||
import { pinus } from "pinus";
|
import { pinus } from "pinus";
|
||||||
import { GuildActivityRecordModel } from "../../db/GuildActivityRec";
|
import { GuildActivityRecordModel } from "../../db/GuildActivityRec";
|
||||||
import { genAuction } from "../auctionService";
|
import { genAuction, guildAuctionPreview } from "../auctionService";
|
||||||
import { sendMailByContent } from "../mailService";
|
import { sendMailByContent } from "../mailService";
|
||||||
import { GuildActivityCityType, GuildActivityCityModel } from "../../db/GuildActivityCity";
|
import { GuildActivityCityType, GuildActivityCityModel } from "../../db/GuildActivityCity";
|
||||||
import { DicCityActivity } from "../../pubUtils/dictionary/DicCityActivity";
|
import { DicCityActivity } from "../../pubUtils/dictionary/DicCityActivity";
|
||||||
@@ -27,6 +27,8 @@ import { Attack } from "../../domain/battleField/pvp";
|
|||||||
import { getHonourObject } from "../role/rewardService";
|
import { getHonourObject } from "../role/rewardService";
|
||||||
import { sendMessageToCityWithSuc, sendMessageToGuildWithSuc, sendMessageToServerWithSuc } from "../pushService";
|
import { sendMessageToCityWithSuc, sendMessageToGuildWithSuc, sendMessageToServerWithSuc } from "../pushService";
|
||||||
import { saveGuildGateHpLog } from "../../pubUtils/logUtil";
|
import { saveGuildGateHpLog } from "../../pubUtils/logUtil";
|
||||||
|
import { GuildActivityCityDeclareModel } from "../../db/GuildActivityCityDeclare";
|
||||||
|
import { getRandSingleEelm } from "../../pubUtils/util";
|
||||||
|
|
||||||
let gateActivityObj: GateActivityObject;
|
let gateActivityObj: GateActivityObject;
|
||||||
let cityActivityObj: CityActivityObject;
|
let cityActivityObj: CityActivityObject;
|
||||||
@@ -447,10 +449,10 @@ export async function cityActivitySettleReward(cityId: number, serverId: number)
|
|||||||
for (let { rank: guildRank, code: guildCode, name, num } of ranks) {
|
for (let { rank: guildRank, code: guildCode, name, num } of ranks) {
|
||||||
if (guildRank == 1) {
|
if (guildRank == 1) {
|
||||||
if (isSuccess) {
|
if (isSuccess) {
|
||||||
console.log(dicCity)
|
await GuildActivityCityModel.guard(serverId, cityId, guildCode, name); // 占领
|
||||||
await GuildActivityCityModel.guard(serverId, cityId, dicCity?.nextCity, guildCode, name); // 占领
|
await declareCity(serverId, "", guildCode, dicCity.nextCity, true);
|
||||||
} else {
|
} else {
|
||||||
await GuildActivityCityModel.guard(serverId, cityId, 0, "", ""); // 无人能占领
|
await GuildActivityCityModel.guard(serverId, cityId, "", ""); // 无人能占领
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, guildRank, cityId);
|
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, guildRank, cityId);
|
||||||
@@ -499,6 +501,7 @@ export async function cityActivitySettleReward(cityId: number, serverId: number)
|
|||||||
*/
|
*/
|
||||||
export async function autoDeclare(serverId: number) {
|
export async function autoDeclare(serverId: number) {
|
||||||
await GuildActivityCityModel.clearGuardAndStartNext(serverId);
|
await GuildActivityCityModel.clearGuardAndStartNext(serverId);
|
||||||
|
await GuildActivityCityDeclareModel.clearDeclare(serverId);
|
||||||
for(let [ cityId ] of gameData.cityActivity) {
|
for(let [ cityId ] of gameData.cityActivity) {
|
||||||
let msg = { cityId, declareGuildCode: "", declareCount: 0 };
|
let msg = { cityId, declareGuildCode: "", declareCount: 0 };
|
||||||
await sendMessageToCityWithSuc(cityId, PUSH_ROUTE.GUILD_CITY_DECLARE, msg);
|
await sendMessageToCityWithSuc(cityId, PUSH_ROUTE.GUILD_CITY_DECLARE, msg);
|
||||||
@@ -813,4 +816,31 @@ export async function getCityActivityGateHp(serverId: number, cityId: number) {
|
|||||||
gateHp = dicCityActivity.hp;
|
gateHp = dicCityActivity.hp;
|
||||||
}
|
}
|
||||||
return gateHp;
|
return gateHp;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function declareCity(serverId: number, roleId: string, guildCode: string, cityId: number, isAutoDeclare: boolean) {
|
||||||
|
let declareTime = Date.now();
|
||||||
|
let declareInfo = await GuildActivityCityDeclareModel.declareIfNot(serverId, guildCode, cityId, roleId, declareTime, isAutoDeclare);
|
||||||
|
if(!!declareInfo && declareInfo.declareTime == declareTime) { // 确实没有人宣战过,自己是第一个
|
||||||
|
let cityRec = await GuildActivityCityModel.declare(serverId, cityId, guildCode);
|
||||||
|
await sendGuildCityDeclare(cityId, guildCode, cityRec.declareCount);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 非军团长的团员自动宣战
|
||||||
|
export async function autoDeclareMyCity(serverId: number, roleId: string, guildCode: string) {
|
||||||
|
let checkResult = await GuildActivityCityDeclareModel.checkDeclartion(serverId, guildCode);
|
||||||
|
if(checkResult) return false
|
||||||
|
|
||||||
|
let cityIds = gameData.juniorCities;
|
||||||
|
let cities = await GuildActivityCityModel.findMinDeclareCountCity(serverId, cityIds);
|
||||||
|
let notDeclaredCitites = cityIds.filter(curCityId => {
|
||||||
|
return cities.findIndex(city => city.cityId == curCityId) == -1;
|
||||||
|
});
|
||||||
|
let cityId = notDeclaredCitites.length > 0? getRandSingleEelm(notDeclaredCitites): cities[0].cityId;
|
||||||
|
if(!cityId) return false;
|
||||||
|
|
||||||
|
return declareCity(serverId, roleId, guildCode, cityId, true);
|
||||||
}
|
}
|
||||||
@@ -35,19 +35,17 @@ export default class GuildActivityCity extends BaseModel {
|
|||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async findMinDeclareCountCity(serverId: number, cityIds: number[]) {
|
||||||
|
let rec: GuildActivityCityType[] = await GuildActivityCityModel.find({ serverId, cityId: { $in: cityIds }, status: 1 }).sort({ declareCount: 1 }).lean();
|
||||||
|
return rec;
|
||||||
|
}
|
||||||
|
|
||||||
public static async getCity(serverId: number, cityId: number) {
|
public static async getCity(serverId: number, cityId: number) {
|
||||||
let rec: GuildActivityCityType = await GuildActivityCityModel.findOne({ serverId, cityId, status: 1}).lean();
|
let rec: GuildActivityCityType = await GuildActivityCityModel.findOne({ serverId, cityId, status: 1}).lean();
|
||||||
|
|
||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查是否宣战过
|
|
||||||
public static async checkDeclartion(serverId: number, guildCode: string) {
|
|
||||||
let rec: GuildActivityCityType = await GuildActivityCityModel.findOne(
|
|
||||||
{ serverId, status: 1, declareGuilds: { $in: [guildCode]}}).lean();
|
|
||||||
|
|
||||||
return rec;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 宣言
|
// 宣言
|
||||||
public static async declare(serverId: number, cityId: number, guildCode: string) {
|
public static async declare(serverId: number, cityId: number, guildCode: string) {
|
||||||
@@ -60,18 +58,11 @@ export default class GuildActivityCity extends BaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 占领
|
// 占领
|
||||||
public static async guard(serverId: number, cityId: number, nextCityId: number, guildCode: string, guildName: string) {
|
public static async guard(serverId: number, cityId: number, guildCode: string, guildName: string) {
|
||||||
let rec: GuildActivityCityType = await GuildActivityCityModel.findOneAndUpdate(
|
let rec: GuildActivityCityType = await GuildActivityCityModel.findOneAndUpdate(
|
||||||
{ serverId, cityId, status: 1 },
|
{ serverId, cityId, status: 1 },
|
||||||
{ $set: { guardGuildCode: guildCode, guardGuildName: guildName, guardTime: new Date()} },
|
{ $set: { guardGuildCode: guildCode, guardGuildName: guildName, guardTime: new Date()} },
|
||||||
{ new: true }).lean();
|
{ new: true }).lean();
|
||||||
|
|
||||||
if(nextCityId) {
|
|
||||||
await GuildActivityCityModel.findOneAndUpdate(
|
|
||||||
{ serverId, cityId: nextCityId, status: 2 },
|
|
||||||
{ $push: { declareGuilds: guildCode }, $inc: {declareCount: 1 } },
|
|
||||||
{new: true, upsert: true}).lean();
|
|
||||||
}
|
|
||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
import BaseModel from './BaseModel';
|
||||||
|
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||||
|
|
||||||
|
@index({ serverId: 1, cityId: 1, createdAt: 1 })
|
||||||
|
export default class GuildActivityCityDeclare extends BaseModel {
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
serverId: number; // 分服
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
cityId: number; // 城池id
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
guildCode: string; // 宣战的公会的code
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
declareTime: number; // 宣战时间(当前)
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
declareMember: string; // 触发宣战的人
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
isAutoDeclare: boolean; // 是否是自动宣战
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
status: number; // 状态 1-当前 0-失效,当活动结束时定时任务设为0
|
||||||
|
|
||||||
|
// 宣战
|
||||||
|
public static async declareIfNot(serverId: number, guildCode: string, cityId: number, roleId: string, declareTime: number, isAutoDeclare: boolean) {
|
||||||
|
let rec: GuildActivityCityDeclareType = await GuildActivityCityDeclareModel.findOneAndUpdate({ serverId, guildCode, status: 1 }, { $setOnInsert: { cityId, declareMember: roleId, declareTime, isAutoDeclare } }, { new: true, upsert: true }).lean();
|
||||||
|
return rec;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查是否宣战过
|
||||||
|
public static async checkDeclartion(serverId: number, guildCode: string) {
|
||||||
|
let rec = await GuildActivityCityDeclareModel.exists({ serverId, status: 1, guildCode});
|
||||||
|
return rec;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清空今天的宣战
|
||||||
|
public static async clearDeclare(serverId?: number) {
|
||||||
|
if(serverId) {
|
||||||
|
await GuildActivityCityDeclareModel.updateMany({ serverId, status: 1}, { status: 0 });
|
||||||
|
} else {
|
||||||
|
await GuildActivityCityDeclareModel.updateMany({ status: 1}, { status: 0 });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const GuildActivityCityDeclareModel = getModelForClass(GuildActivityCityDeclare);
|
||||||
|
|
||||||
|
export interface GuildActivityCityDeclareType extends Pick<DocumentType<GuildActivityCityDeclare>, keyof GuildActivityCityDeclare> { };
|
||||||
|
export type GuildActivityCityDeclareUpdateParam = Partial<GuildActivityCityDeclareType>; // 将所有字段变成可选项
|
||||||
@@ -52,7 +52,7 @@ import { dicGuildActivity, DicGuildActivity, loadGuildActivity } from './diction
|
|||||||
import { dicGateActivityPoint, loadGateActivityPoint } from './dictionary/DicGateActivityPoint';
|
import { dicGateActivityPoint, loadGateActivityPoint } from './dictionary/DicGateActivityPoint';
|
||||||
import { dicGuildAuction, loadGuildAuction } from './dictionary/DicGuildAuction';
|
import { dicGuildAuction, loadGuildAuction } from './dictionary/DicGuildAuction';
|
||||||
import { getCurDay } from "./timeUtil";
|
import { getCurDay } from "./timeUtil";
|
||||||
import { dicCityActivity, loadCityActivity } from "./dictionary/DicCityActivity";
|
import { dicCityActivity, dicJuniorCities, loadCityActivity } from "./dictionary/DicCityActivity";
|
||||||
import { dicChatAccuse, loadChatAccuse } from "./dictionary/DicChatAccuse";
|
import { dicChatAccuse, loadChatAccuse } from "./dictionary/DicChatAccuse";
|
||||||
import { dicCityActivityReward, loadCityActivityReward } from "./dictionary/DicCityActivityReward";
|
import { dicCityActivityReward, loadCityActivityReward } from "./dictionary/DicCityActivityReward";
|
||||||
import { dicRaceActivity, dicRaceTypes, loadRaceActivity } from './dictionary/DicRaceActivity';
|
import { dicRaceActivity, dicRaceTypes, loadRaceActivity } from './dictionary/DicRaceActivity';
|
||||||
@@ -189,6 +189,7 @@ export const gameData = {
|
|||||||
gateActivityPoint: dicGateActivityPoint,
|
gateActivityPoint: dicGateActivityPoint,
|
||||||
guildAuction: dicGuildAuction,
|
guildAuction: dicGuildAuction,
|
||||||
cityActivity: dicCityActivity,
|
cityActivity: dicCityActivity,
|
||||||
|
juniorCities: dicJuniorCities,
|
||||||
chatAccuse: dicChatAccuse,
|
chatAccuse: dicChatAccuse,
|
||||||
cityActivityReward: dicCityActivityReward,
|
cityActivityReward: dicCityActivityReward,
|
||||||
raceActivityEvents: dicRaceActivity,
|
raceActivityEvents: dicRaceActivity,
|
||||||
|
|||||||
@@ -26,8 +26,10 @@ export interface DicCityActivity {
|
|||||||
readonly atkTemplate: number;
|
readonly atkTemplate: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const dicJuniorCities: number[] = [];
|
||||||
export const dicCityActivity = new Map<number, DicCityActivity>();
|
export const dicCityActivity = new Map<number, DicCityActivity>();
|
||||||
export function loadCityActivity() {
|
export function loadCityActivity() {
|
||||||
|
dicJuniorCities.splice(0, dicJuniorCities.length);
|
||||||
dicCityActivity.clear();
|
dicCityActivity.clear();
|
||||||
let arr = readFileAndParse(FILENAME.DIC_CITY_ACTIVITY);
|
let arr = readFileAndParse(FILENAME.DIC_CITY_ACTIVITY);
|
||||||
|
|
||||||
@@ -35,6 +37,7 @@ export function loadCityActivity() {
|
|||||||
o.preCity = parseNumberList(o.preCity);
|
o.preCity = parseNumberList(o.preCity);
|
||||||
o.week = parseNumberList(o.week);
|
o.week = parseNumberList(o.week);
|
||||||
dicCityActivity.set( o.id, o );
|
dicCityActivity.set( o.id, o );
|
||||||
|
if(o.type == 1) dicJuniorCities.push(o.id);
|
||||||
});
|
});
|
||||||
arr = undefined;
|
arr = undefined;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user