军团活动:修复粮草先行到达条件
This commit is contained in:
@@ -7,7 +7,7 @@ import { RewardInter } from "../pubUtils/interface";
|
||||
import { getRaceEventItems, gameData } from "../pubUtils/data";
|
||||
import { GuildModel } from "../db/Guild";
|
||||
import { sendSingleRaceActEndMsg } from "./guildActivityService";
|
||||
import { REDIS_KEY, RACE_EVENT_TYPE, RACE_EVENT_EFFECT_TYPE, RACE_EVENT, STATUS } from "../consts";
|
||||
import { REDIS_KEY, RACE_EVENT_TYPE, RACE_EVENT_EFFECT_TYPE, RACE_EVENT, STATUS, RACE_ACTIVITY_STATUS } from "../consts";
|
||||
import { getGuildChannelSid } from "./chatService";
|
||||
import { pinus } from "pinus";
|
||||
import { getRandEelm, sortArrRandom, resResult } from "../pubUtils/util";
|
||||
@@ -203,9 +203,9 @@ export class CityActivityObject {
|
||||
}
|
||||
|
||||
|
||||
// 军团诸侯混战等数据
|
||||
// 粮草先行
|
||||
export class RaceActivityObject {
|
||||
private status = 0; // 活动状态 0-未开始 1-已开始 2-已结束 // TODO 写进const表
|
||||
private status = RACE_ACTIVITY_STATUS.WAITING; // 活动状态 0-未开始 1-已开始 2-已结束
|
||||
public guildList: Array<{ serverId: number, guildCode: string }> = []; // 所有军团
|
||||
private members: Map<string, Array<Member>> = new Map(); // 每个军团参与的成员 guildCode => [{roleId, job}]
|
||||
private woodenHorses: Map<string, WoodenHorse> = new Map(); // 每个军团的木牛流马 guildCode => WoodenHorse
|
||||
@@ -244,7 +244,7 @@ export class RaceActivityObject {
|
||||
woodenHorse.joinMember(roleId, roleName, sid)
|
||||
this.pushMember(guildCode, roleId, job);
|
||||
|
||||
if(this.status == 1) { // TODO 写进const表
|
||||
if(this.status == RACE_ACTIVITY_STATUS.START) {
|
||||
let item = getRaceEventItems();
|
||||
this.handleItems(roleId, sid, item);
|
||||
this.woodenHorseStartRace(woodenHorse);
|
||||
@@ -265,13 +265,15 @@ export class RaceActivityObject {
|
||||
let woodenHorse = this.woodenHorses.get(guildCode);
|
||||
let events = this.events.get(guildCode)||[];
|
||||
let needSendEnd = woodenHorse.calCurWoodenHorse(events);
|
||||
if(woodenHorse.status == 1 || woodenHorse.status == 2) { // 更新距离 // TODO 写进const表
|
||||
|
||||
if(woodenHorse.status == RACE_ACTIVITY_STATUS.START || woodenHorse.status == RACE_ACTIVITY_STATUS.END) { // 更新距离
|
||||
let r = new Rank(REDIS_KEY.RACE_ACTIVITY, { serverId }, true, 5);
|
||||
await r.setRank({guildCode}, [Math.floor(woodenHorse.distance * 1000), woodenHorse.time - woodenHorse.startTime], false);
|
||||
let tomorrow = <number>getTimeFun().getAfterDayWithHour();
|
||||
await r.setExpire(tomorrow);
|
||||
|
||||
if (needSendEnd) { // 抵达后发送奖励,发送消息,结算
|
||||
await sendSingleRaceActEndMsg(guildCode, woodenHorse);
|
||||
await sendSingleRaceActEndMsg(guildCode, this.woodenHorses);
|
||||
}
|
||||
}
|
||||
this.handleItemsByWoodenHorse(woodenHorse);
|
||||
@@ -297,7 +299,7 @@ export class RaceActivityObject {
|
||||
|
||||
// 定时任务到,开始比赛,设置开始赛道,发放初始道具
|
||||
public startRace() {
|
||||
this.status = 1; // TODO 写进const表
|
||||
this.status = RACE_ACTIVITY_STATUS.START;
|
||||
let guildCodes = new Array<string>();
|
||||
for(let [code, woodenHorse] of this.woodenHorses) {
|
||||
if(woodenHorse.memberCnt > 0) {
|
||||
@@ -309,7 +311,7 @@ export class RaceActivityObject {
|
||||
}
|
||||
|
||||
private woodenHorseStartRace(woodenHorse: WoodenHorse) {
|
||||
woodenHorse.status = 1; // TODO 写进const表
|
||||
woodenHorse.status = RACE_ACTIVITY_STATUS.START;
|
||||
woodenHorse.time = Date.now();
|
||||
woodenHorse.startTime = Date.now();
|
||||
let members = woodenHorse.members;
|
||||
|
||||
Reference in New Issue
Block a user