diff --git a/projects/mtg/bin/Res/test/manual/ai_fear.txt b/projects/mtg/bin/Res/test/manual/ai_fear.txt new file mode 100644 index 000000000..30e400402 --- /dev/null +++ b/projects/mtg/bin/Res/test/manual/ai_fear.txt @@ -0,0 +1,16 @@ +#Bug:ai casts fear on opponent's creature +[INIT] +FIRSTMAIN +[PLAYER1] +inplay:grizzly bears,8333,8330 +hand:fear +[PLAYER2] +inplay:lord of atlantis +[DO] +ai +ai +[ASSERT] +COMBATEND +[PLAYER1] +[PLAYER2] +[END] \ No newline at end of file diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 1dec73d3e..9a009d606 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -658,13 +658,14 @@ int AbilityFactory::abilityEfficiency(MTGAbility * a, Player * p, int mode){ if (AInstantBasicAbilityModifierUntilEOT * abi = dynamic_cast(a)) { int result = badAbilities[abi->ability] ? BAKA_EFFECT_BAD : BAKA_EFFECT_GOOD; - return (abi->value <= 0) ? result : -result; + return (abi->value > 0) ? result : -result; } if (ABasicAbilityModifier * abi = dynamic_cast(a)){ int result = (badAbilities[abi->ability]) ? BAKA_EFFECT_BAD : BAKA_EFFECT_GOOD; - return (abi->modifier <= 0) ? result : -result; + return (abi->modifier > 0) ? result : -result; } - if (ABasicAbilityAuraModifierUntilEOT * abi = dynamic_cast(a)) return abilityEfficiency(abi->ability, p, mode); + if (ABasicAbilityAuraModifierUntilEOT * abi = dynamic_cast(a)) + return abilityEfficiency(abi->ability, p, mode); if (dynamic_cast(a)) return BAKA_EFFECT_GOOD; return BAKA_EFFECT_DONTKNOW; }