Rename bonus to ADJACENT_SPELLCASTER - more logical name

This commit is contained in:
Dydzio
2025-12-28 17:23:55 +01:00
parent 0399f0f555
commit eec9845536
9 changed files with 14 additions and 8 deletions
+1
View File
@@ -1028,6 +1028,7 @@
"core.bonus.ADDITIONAL_ATTACK.description" : "{Additional attacks}\nUnit can attack an additional ${val} times", // TODO: alternative descriptions for melee/ranged effect range
"core.bonus.ADDITIONAL_RETALIATION.description" : "{Additional retaliations}\nUnit can retaliate ${val} extra times",
"core.bonus.ADJACENT_SPELLCASTER.description" : "{Adjacent Spellcaster}\nUnit can cast ${subtype.spell} while standing next to target",
"core.bonus.ALWAYS_MAXIMUM_DAMAGE.description" : "{Maximum Damage}\nThis unit always deals the maximum possible damage",
"core.bonus.ATTACKS_ALL_ADJACENT.description" : "{Attack all around}\nAttacks all adjacent enemies in addition to the primary target",
"core.bonus.BLOCKS_RANGED_RETALIATION.description" : "{No ranged retaliation}\nThe enemy cannot retaliate when shot by this unit",
+1
View File
@@ -1025,6 +1025,7 @@
"core.bonus.ADDITIONAL_ATTACK.description" : "{Dodatkowe Uderzenia}\n${val} dodatkowy atak",
"core.bonus.ADDITIONAL_RETALIATION.description" : "{Dodatkowy Odwet}\n${val} dodatkowy kontratak",
"core.bonus.ADJACENT_SPELLCASTER.description" : "{Czarujący w zwarciu}\nJednostka może rzucić ${subtype.spell} będąc na sąsiednim polu względem celu",
"core.bonus.ALWAYS_MAXIMUM_DAMAGE.description" : "{Maksymalna siła}\nZawsze zadaje maksymalne obrażenia",
"core.bonus.ATTACKS_ALL_ADJACENT.description" : "{Obrotowy atak}\nAtakuje wszystkich sąsiadujących wrogów",
"core.bonus.BLOCKS_RANGED_RETALIATION.description" : "{Brak kontrataku dystansowego}\nWróg nie może kontratakować poprzez strzelanie",
+1 -1
View File
@@ -436,7 +436,7 @@ const CSpell * BattleActionsController::getStackSpellToCast(const BattleHex & ho
if(action.get() == PossiblePlayerBattleAction::WALK_AND_SPELLCAST)
{
auto bonus = owner.stacksController->getActiveStack()->getBonus(Selector::type()(BonusType::WALKING_SPELLCASTER));
auto bonus = owner.stacksController->getActiveStack()->getBonus(Selector::type()(BonusType::ADJACENT_SPELLCASTER));
return bonus->subtype.as<SpellID>().toSpell();
}
+2 -2
View File
@@ -376,7 +376,7 @@ BattleHexArray BattleFieldController::getHighlightedHexesForMovementTarget()
auto hoveredStack = owner.getBattle()->battleGetStackByPos(hoveredHex, true);
if(stack->hasBonusOfType(BonusType::WALKING_SPELLCASTER) && stack->canCast() && owner.getBattle()->battleCanAttackHex(availableHexes, stack, hoveredHex))
if(stack->hasBonusOfType(BonusType::ADJACENT_SPELLCASTER) && stack->canCast() && owner.getBattle()->battleCanAttackHex(availableHexes, stack, hoveredHex))
{
BattleHex fromHex = owner.getBattle()->fromWhichHexAttack(stack, hoveredHex, selectAttackDirection(hoveredHex));
if(fromHex.isValid())
@@ -388,7 +388,7 @@ BattleHexArray BattleFieldController::getHighlightedHexesForMovementTarget()
}
}
if((owner.getBattle()->battleCanAttackUnit(stack, hoveredStack) || (stack->hasBonusOfType(BonusType::WALKING_SPELLCASTER) && stack->canCast()))
if((owner.getBattle()->battleCanAttackUnit(stack, hoveredStack) || (stack->hasBonusOfType(BonusType::ADJACENT_SPELLCASTER) && stack->canCast()))
&& owner.getBattle()->battleCanAttackHex(availableHexes, stack, hoveredHex))
{
BattleHex fromHex = owner.getBattle()->fromWhichHexAttack(stack, hoveredHex, selectAttackDirection(hoveredHex));
+4
View File
@@ -17,6 +17,10 @@
{
},
"ADJACENT_SPELLCASTER":
{
},
"ATTACKS_ALL_ADJACENT":
{
},
+2 -2
View File
@@ -295,9 +295,9 @@ std::vector<PossiblePlayerBattleAction> CBattleInfoCallback::getClientActionsFor
allowedActionList.push_back(PossiblePlayerBattleAction::CATAPULT);
if(stack->hasBonusOfType(BonusType::HEALER))
allowedActionList.push_back(PossiblePlayerBattleAction::HEAL);
if(stack->hasBonusOfType(BonusType::WALKING_SPELLCASTER))
if(stack->hasBonusOfType(BonusType::ADJACENT_SPELLCASTER))
{
SpellID spellID = stack->getBonus(Selector::type()(BonusType::WALKING_SPELLCASTER))->subtype.as<SpellID>();
SpellID spellID = stack->getBonus(Selector::type()(BonusType::ADJACENT_SPELLCASTER))->subtype.as<SpellID>();
if(stack->canCast()) //TODO: check for battlefield effects that prevent casting?
allowedActionList.push_back(PossiblePlayerBattleAction(PossiblePlayerBattleAction::WALK_AND_SPELLCAST, spellID));
}
+1 -1
View File
@@ -197,7 +197,7 @@ class JsonNode;
BONUS_NAME(HATES_TRAIT) /* affected unit deals additional damage to units with specific bonus. subtype - bonus, val - damage bonus percent */ \
BONUS_NAME(DAMAGE_RECEIVED_CAP) /* limits the damage dealt to affected unit */ \
BONUS_NAME(FORCE_NEUTRAL_ENCOUNTER_STACK_COUNT) /* Forces the number of neutral stacks in hero–neutral encounters.*/\
BONUS_NAME(WALKING_SPELLCASTER) /* subtype - spell id */
BONUS_NAME(ADJACENT_SPELLCASTER) /* subtype - spell id */
/* end of list */
+1 -1
View File
@@ -152,7 +152,7 @@ static void loadBonusSubtype(BonusSubtypeID & subtype, BonusType type, const Jso
case BonusType::SPECIFIC_SPELL_POWER:
case BonusType::ENCHANTED:
case BonusType::MORE_DAMAGE_FROM_SPELL:
case BonusType::WALKING_SPELLCASTER:
case BonusType::ADJACENT_SPELLCASTER:
case BonusType::NOT_ACTIVE:
{
LIBRARY->identifiers()->requestIdentifier( "spell", node, [&subtype](int32_t identifier)
+1 -1
View File
@@ -557,7 +557,7 @@ bool BattleActionProcessor::doWalkAndSpellcastAction(const CBattleInfoCallback &
return false;
}
auto bonus = stack->getBonus(Selector::typeSubtype(BonusType::WALKING_SPELLCASTER, BonusSubtypeID(spellID)));
auto bonus = stack->getBonus(Selector::typeSubtype(BonusType::ADJACENT_SPELLCASTER, BonusSubtypeID(spellID)));
if (!bonus)
{
gameHandler->complain("Creature cannot walk and spellcast.");