军团活动:蛮夷入侵主动接口

This commit is contained in:
luying
2021-03-18 16:42:50 +08:00
parent 9bb07f5b21
commit 442a53359e
9 changed files with 257 additions and 38 deletions
@@ -4,8 +4,19 @@ import { reduceCe } from "../pubUtils/util";
import { GUILDACTIVITY } from "../pubUtils/dicParam";
import { gameData } from "../pubUtils/data";
import { getCurHourPoint, getCutDay, nowSeconds } from "../pubUtils/timeUtil";
import { GUILD_ACTIVITY_STATUS } from "../consts";
import { GUILD_ACTIVITY_STATUS, GET_POINT_WAYS, GUILD_ACTIVITY_TYPE } from "../consts";
import { Record } from "../db/UserGuildActivityRec";
import { GateMembersRec, GateActivityObject } from "../domain/battleField/guildActivity";
let gateActivityObj: GateActivityObject;
export function getGuildActivityObj(aid: number) {
if(aid == GUILD_ACTIVITY_TYPE.GATE_ACTIVITY) {
if(!gateActivityObj) {
gateActivityObj = new GateActivityObject()
}
return gateActivityObj;
}
}
/**
* 定时任务,获得前一天的活跃玩家中位数武将战力
@@ -75,32 +86,38 @@ export function getGuildActivityStatus(id: number) {
}
}
export function getRecordScore(aid: number, record: { round: number, dataId: number }[]) {
/**
* 根据每回合上报数据判断军功
* @param aid
* @param record
* @param memberRecord
*/
export function getRecordScore(aid: number, record: { round: number, dataId: number }[], memberRecord: GateMembersRec) {
let dicGuildActivity = gameData.guildActivity.get(aid);
console.log('xxxx', dicGuildActivity.warid)
if(!dicGuildActivity) return false;
let dicWarJson = gameData.warJson.get(dicGuildActivity.warid);
if(!dicWarJson) return false;
let curRound = record[0]?.round;
let sum = 0, newRecords = new Array<Record>()
let { round: curRound, enemies: historyEnemies} = memberRecord;
let sum = 0, newRecords = new Array<Record>();
for(let {round, dataId} of record) {
let enemy = dicWarJson.find(cur => cur.dataId == dataId);
console.log('yyyy', enemy.enemyType);
let enemyType = enemy.enemyType;
let score = gameData.gateActivityPoint.get(enemyType);
newRecords.push({ round, dataId, score});
sum += score;
console.log('***%*****', sum, score)
if(round != curRound) { // 每回合开始得10分
sum += gameData.gateActivityPoint.get(1);
console.log('***%%*****', sum)
curRound = round;
if(!historyEnemies.includes(dataId)) {
let enemy = dicWarJson.find(cur => cur.dataId == dataId);
let enemyType = enemy.enemyType;
let score = gameData.gateActivityPoint.get(enemyType);
newRecords.push({ round, dataId, score, enemyType});
sum += score;
if(round > curRound) { // 每回合开始得10分
sum += gameData.gateActivityPoint.get(GET_POINT_WAYS.ROUND_START);
curRound = round;
}
historyEnemies.push(dataId);
}
}
console.log('***&**', sum)
return { score: sum, newRecords }
return { score: sum, newRecords, memberRecord }
}