军团活动:修复粮草先行

This commit is contained in:
luying
2021-03-30 18:07:04 +08:00
parent ba5e139bee
commit 0d7a873a34
16 changed files with 202 additions and 104 deletions
@@ -91,8 +91,7 @@ export function getGuildActivityStatus(id: number) {
}
export function getGuildActivityByDic(dicGuildActivity: DicGuildActivity) {
console.log('****',dicGuildActivity.startTime, dicGuildActivity.startMinute)
let startTime = getCurHourPoint(dicGuildActivity.startTime, dicGuildActivity.startMinute);
let startTime = getCurHourPoint(dicGuildActivity.startTime, dicGuildActivity.startMinute, dicGuildActivity.startSeconds);
let countdownTime = getCurHourPoint(dicGuildActivity.countDown);
let { duringTime, openDay } = dicGuildActivity;
let endTime = startTime + duringTime;
@@ -308,17 +307,15 @@ export async function sendGuildActEndMsg(aid: number) {
for(let { serverId, cityId } of cities) {
await cityActivitySettleReward(cityId, serverId);
}
// 发完之后再做下周自动宣战
let serverlists = await getAllServers();
for(let serverId of serverlists) {
await autoDeclare(serverId);
}
cityActivityObj = new CityActivityObject();
} else if (aid == GUILD_ACTIVITY_TYPE.RACE_ACTIVITY) {
let obj = getRaceActivityObj();
let woodenHorseList = obj.getAllWoodenHorses();
for(let [guildCode, woodenHorse] of woodenHorseList) {
await raceActivitySettleReward(guildCode, woodenHorse);
for(let {guildCode, serverId} of obj.guildList) {
let woodenHorse = await obj.getWoodenHorse(guildCode, serverId);
if(woodenHorse) {
await raceActivitySettleReward(guildCode, woodenHorse);
}
}
}
}
@@ -474,13 +471,14 @@ export async function cityActivitySettleReward(cityId: number, serverId: number)
/**
* 清空完declareGuilds之后,做下一次活动的自动宣战
*/
async function autoDeclare(serverId: number) {
export async function autoDeclare(serverId: number) {
let allCities = await GuildActivityCityModel.getAllCities(serverId);
let guardList = new Array<{ cityId: number, guardGuildCode: string }>();
for (let { cityId, guardGuildCode } of allCities) {
guardList.push({ cityId, guardGuildCode });
await GuildActivityCityModel.guard(serverId, cityId, "", "");
await GuildActivityCityModel.clearGuard(serverId, cityId);
}
console.log(JSON.stringify(guardList));
for (let { cityId, guardGuildCode } of guardList) {
let dicCity = gameData.cityActivity.get(cityId);
if (guardGuildCode && dicCity.nextCity) {
@@ -557,17 +555,17 @@ export function getCityStatus(guildCode: string, cityId: number, dic: DicCityAct
status = CITY_STATUS.DECLARED;
}
}
let hasGuard = false, hasDeclared = false;
for(let { cityId: _cityId, guardGuildCode, declareGuilds } of dbCities) {
let dicCity = gameData.cityActivity.get(_cityId);
if(dicCity.type == dic.type) {
if(guardGuildCode == guildCode) hasGuard = true;
if(declareGuilds.includes(guildCode)) hasDeclared = true;
}
}
if(status == CITY_STATUS.CAN_DECLARE && !hasDeclared && preCity.length > 0) {
status = CITY_STATUS.NOT_OPEN;
}
// let hasGuard = false, hasDeclared = false;
// for(let { cityId: _cityId, guardGuildCode, declareGuilds } of dbCities) {
// let dicCity = gameData.cityActivity.get(_cityId);
// if(dicCity.type == dic.type) {
// if(guardGuildCode == guildCode) hasGuard = true;
// if(declareGuilds.includes(guildCode)) hasDeclared = true;
// }
// }
// if(status == CITY_STATUS.CAN_DECLARE && !hasDeclared && preCity.length > 0) {
// status = CITY_STATUS.NOT_OPEN;
// }
return status;
}
@@ -588,7 +586,7 @@ export async function calWoodenHorseAndSend(serverId: number) {
for(let i = 0; i < l; i++) {
let { rank, code, name, num } = ranks[i]
let _obj = await obj.getWoodenHorse(code, serverId);
let param = new SimpleGuildRankWithTimeParam(rank, code, name, num, _obj?_obj.time:0, _obj?_obj.durability:0);
let param = new SimpleGuildRankWithTimeParam(rank, code, name, _obj?_obj.distance:0, _obj?_obj.time:0, _obj?_obj.durability:0);
guildRank.push(param);
}
@@ -677,5 +675,5 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W
}
// 删除数据
obj.deleteRecord(guildCode);
obj.deleteFromList(guildCode);
}