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