mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
Using hex.isAvailable() instead of battleFieldWithoutSideColumns
This commit is contained in:
@@ -391,7 +391,6 @@ std::set<BattleHex> BattleFieldController::getHighlightedHexesForMovementTarget(
|
|||||||
std::vector<BattleHex> BattleFieldController::getRangedFullDamageHexes()
|
std::vector<BattleHex> BattleFieldController::getRangedFullDamageHexes()
|
||||||
{
|
{
|
||||||
std::vector<BattleHex> rangedFullDamageHexes; // used for return
|
std::vector<BattleHex> rangedFullDamageHexes; // used for return
|
||||||
std::set<BattleHex> battleFieldWithoutSideColumns;
|
|
||||||
|
|
||||||
// if not a hovered arcer unit -> return
|
// if not a hovered arcer unit -> return
|
||||||
auto hoveredHex = getHoveredHex();
|
auto hoveredHex = getHoveredHex();
|
||||||
@@ -403,13 +402,6 @@ std::vector<BattleHex> BattleFieldController::getRangedFullDamageHexes()
|
|||||||
if(!(hoveredStack && hoveredStack->isShooter()))
|
if(!(hoveredStack && hoveredStack->isShooter()))
|
||||||
return rangedFullDamageHexes;
|
return rangedFullDamageHexes;
|
||||||
|
|
||||||
// construct battlefield grid without the 2 unusable sidecolumns
|
|
||||||
for(auto x = 1; x < GameConstants::BFIELD_WIDTH - 1; ++x)
|
|
||||||
{
|
|
||||||
for(auto y = 0; y < GameConstants::BFIELD_HEIGHT; ++y)
|
|
||||||
battleFieldWithoutSideColumns.insert(BattleHex(x, y));
|
|
||||||
}
|
|
||||||
|
|
||||||
auto rangedFullDamageDistance = GameConstants::BATTLE_PENALTY_DISTANCE;
|
auto rangedFullDamageDistance = GameConstants::BATTLE_PENALTY_DISTANCE;
|
||||||
|
|
||||||
// overwrite full ranged damage distance from Additional info field of LIMITED_SHOOTING_RANGE bonus
|
// overwrite full ranged damage distance from Additional info field of LIMITED_SHOOTING_RANGE bonus
|
||||||
@@ -419,9 +411,10 @@ std::vector<BattleHex> BattleFieldController::getRangedFullDamageHexes()
|
|||||||
|
|
||||||
// get only battlefield hexes that are in full range damage distance
|
// get only battlefield hexes that are in full range damage distance
|
||||||
std::set<BattleHex> fullRangeLimit;
|
std::set<BattleHex> fullRangeLimit;
|
||||||
for(auto & hex : battleFieldWithoutSideColumns)
|
for(auto i = 0; i < GameConstants::BFIELD_SIZE; i++)
|
||||||
{
|
{
|
||||||
if(BattleHex::getDistance(hoveredHex, hex) <= rangedFullDamageDistance)
|
BattleHex hex(i);
|
||||||
|
if(hex.isAvailable() && BattleHex::getDistance(hoveredHex, hex) <= rangedFullDamageDistance)
|
||||||
rangedFullDamageHexes.push_back(hex);
|
rangedFullDamageHexes.push_back(hex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user