mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-22 22:13:35 +02:00
be10694b73
- the AI will now consider attacking multiple units - the preferred strategy now is to minimize collateral damage rather than to maximize damage to enemy units alone - attacks that block enemy shooters will be prioritized over other attacks in cases when shooters have weaker melee attacks
41 lines
945 B
C++
41 lines
945 B
C++
/*
|
|
* BattleAttackInfo.cpp, part of VCMI engine
|
|
*
|
|
* Authors: listed in file AUTHORS in main folder
|
|
*
|
|
* License: GNU General Public License v2.0 or later
|
|
* Full text of license available in license.txt file, in main folder
|
|
*
|
|
*/
|
|
#include "StdInc.h"
|
|
#include "BattleAttackInfo.h"
|
|
#include "CUnitState.h"
|
|
|
|
BattleAttackInfo::BattleAttackInfo(const battle::Unit * Attacker, const battle::Unit * Defender, bool Shooting)
|
|
: attacker(Attacker),
|
|
defender(Defender)
|
|
{
|
|
shooting = Shooting;
|
|
chargedFields = 0;
|
|
additiveBonus = 0.0;
|
|
multBonus = 1.0;
|
|
attackerPos = BattleHex::INVALID;
|
|
defenderPos = BattleHex::INVALID;
|
|
}
|
|
|
|
BattleAttackInfo BattleAttackInfo::reverse() const
|
|
{
|
|
BattleAttackInfo ret = *this;
|
|
|
|
std::swap(ret.attacker, ret.defender);
|
|
std::swap(ret.defenderPos, ret.attackerPos);
|
|
|
|
ret.shooting = false;
|
|
ret.chargedFields = 0;
|
|
|
|
ret.additiveBonus = 0.0;
|
|
ret.multBonus = 1.0;
|
|
|
|
return ret;
|
|
}
|