pvp:防守得分
This commit is contained in:
@@ -476,23 +476,32 @@ export async function generPVPOppRecInfo(isSuccess: boolean, curOpp: OppPlayer,
|
||||
if(!curOpp.isRobot && !isSuccess) {
|
||||
let pvpDefense = await PvpDefenseModel.findByRoleId(robotIdComBack(curOpp.roleId));
|
||||
if(pvpDefense && pvpDefense.defense) {
|
||||
let { attack, defense, heroScores, score } = pvpDefense;
|
||||
for(let { actorId } of defense.heroes) {
|
||||
let hs = heroScores.find(cur => cur.hid == actorId);
|
||||
if(hs) {
|
||||
hs.score += PVP.PVP_DEFENSE_SUCCESS_REWARD;
|
||||
} else {
|
||||
heroScores.push({ hid: actorId, score: PVP.PVP_DEFENSE_SUCCESS_REWARD })
|
||||
}
|
||||
addSumScore += PVP.PVP_DEFENSE_SUCCESS_REWARD;
|
||||
let { attack, defense, heroScores, score, defenseScoreCnt, refDefenseScore } = pvpDefense;
|
||||
if(shouldRefresh(refDefenseScore, new Date())) {
|
||||
defenseScoreCnt = 0; refDefenseScore = new Date();
|
||||
}
|
||||
console.log('&&&&&', 'addSumScore', addSumScore)
|
||||
|
||||
let newAttack = <Attack>calLineupScore(attack, heroScores);
|
||||
let newDefense = <Defense>calLineupScore(defense, heroScores);
|
||||
|
||||
await PvpDefenseModel.updateInfo(oppRole.roleId, { attack: newAttack, defense: newDefense, heroScores, score: score + addSumScore });
|
||||
if(defenseScoreCnt < PVP.PVP_DEFENSE_SUCCESS_REWARD_MAX_CNT) {
|
||||
for(let { actorId } of defense.heroes) {
|
||||
let hs = heroScores.find(cur => cur.hid == actorId);
|
||||
const dicOpp = gameData.pvpOpponent.get(curOpp.pos);
|
||||
let addScore = PVP.PVP_DEFENSE_SUCCESS_REWARD - dicOpp.score;
|
||||
if(hs) {
|
||||
hs.score += addScore;
|
||||
} else {
|
||||
heroScores.push({ hid: actorId, score: addScore })
|
||||
}
|
||||
addSumScore += addScore;
|
||||
}
|
||||
|
||||
let newAttack = <Attack>calLineupScore(attack, heroScores);
|
||||
let newDefense = <Defense>calLineupScore(defense, heroScores);
|
||||
|
||||
|
||||
await PvpDefenseModel.updateInfo(pvpDefense.roleId, { attack: newAttack, defense: newDefense, heroScores, score: score + addSumScore, defenseScoreCnt: defenseScoreCnt + 1, refDefenseScore });
|
||||
|
||||
} else {
|
||||
await PvpDefenseModel.updateInfo(pvpDefense.roleId, { defenseScoreCnt: defenseScoreCnt + 1, refDefenseScore });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +59,11 @@ export default class PvpDefense extends BaseModel {
|
||||
@prop({ required: true, default: true })
|
||||
isFirstEntry: boolean;
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
defenseScoreCnt: number;
|
||||
@prop({ required: true })
|
||||
refDefenseScore: Date;
|
||||
|
||||
public static async findByRoleId(roleId: string, getters = false) {
|
||||
const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId }).lean({ getters});
|
||||
return result;
|
||||
|
||||
@@ -36,7 +36,7 @@ export const PVP = {
|
||||
PVP_SET_ATTACK_FREE_CNT: 2, // pvp每天免费设挑战阵容的次数
|
||||
PVP_BUY_SET_ATTACK_CNT: 3, // pvp每天可购买的设置挑战阵容的次数
|
||||
PVP_SET_ATTACK_CNT_GOLD: 100, // pvp收费设置挑战阵容的花费
|
||||
PVP_DEFENSE_SUCCESS_REWARD: 5, // pvp防守成功积分奖励
|
||||
PVP_DEFENSE_SUCCESS_REWARD: 20, // pvp防守方赢了应该是用20-攻击方应得的积分,防守方没有连胜
|
||||
PVP_DEFENSE_SUCCESS_REWARD_MAX_CNT: 5, // 每天防守成功可以获得的奖励次数
|
||||
PVP_SEASON_REWARD_TIME_BEFORE: 2, // pvp赛季结束几分钟前结算
|
||||
PVP_SEASON_FORBID_BATTLE_TIME_BEFORE: 3600, // pvp赛季结束前几秒钟禁止挑战队伍
|
||||
@@ -92,6 +92,7 @@ export const HTTPMANAGE = {
|
||||
export const CHAT_SYSTEM = {
|
||||
RECENT_GROUP_MSGS_CNT: 10, // 群消息获取条数
|
||||
RECENT_PRIVATE_CHATS_CNT: 20, // 最近私聊个数
|
||||
RECENT_SYSTEM_OPEN: 11, // 聊天开启等级
|
||||
};
|
||||
export const GUILDACTIVITY = {
|
||||
GATEACTIVITY_CHALLENGE_TIMES: 1, // 蛮夷入侵每天可以挑战次的次数
|
||||
|
||||
Reference in New Issue
Block a user