refactor: removed some usages of short LKI, moved static ability's useable zone logic to basic ability implementation;

This commit is contained in:
Oleg Agafonov 2024-11-16 22:12:14 +04:00
parent 52ebba4cd1
commit 740a9347ae
7 changed files with 32 additions and 30 deletions

View file

@ -325,7 +325,7 @@ public class ContinuousEffects implements Serializable {
if (effect instanceof PayCostToAttackBlockEffect) {
Set<Ability> abilities = replacementEffects.getAbility(effect.getId());
for (Ability ability : abilities) {
// for replacment effects of static abilities do not use LKI to check if to apply
// for replacement effects of static abilities do not use LKI to check if to apply
if (ability.getAbilityType() != AbilityType.STATIC || ability.isInUseableZone(game, null, event)) {
if (effect.getDuration() != Duration.OneUse || !effect.isUsed()) {
if (!game.getScopeRelevant() || effect.hasSelfScope() || !event.getTargetId().equals(ability.getSourceId())) {
@ -370,7 +370,7 @@ public class ContinuousEffects implements Serializable {
Set<Ability> abilities = replacementEffects.getAbility(effect.getId());
Set<Ability> applicableAbilities = new HashSet<>();
for (Ability ability : abilities) {
// for replacment effects of static abilities do not use LKI to check if to apply
// for replacement effects of static abilities do not use LKI to check if to apply
if (ability.getAbilityType() != AbilityType.STATIC || ability.isInUseableZone(game, null, event)) {
if (!effect.isUsed()) {
if (!game.getScopeRelevant()