From e132f26bea3c26fc50babbf7cc08aac0809a5090 Mon Sep 17 00:00:00 2001 From: Nephrite Date: Sun, 31 Dec 2023 00:05:58 +0900 Subject: [PATCH] Merge corrections and fixes --- src/battle_ai_main.c | 15 ++++----------- src/data/battle_moves.h | 28 ++++++++++------------------ test/battle/ability/sheer_force.c | 3 ++- 3 files changed, 16 insertions(+), 30 deletions(-) diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 85342615fc..12dac510d3 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -2720,23 +2720,16 @@ static bool32 AI_ShouldCopyStatChanges(u32 battlerAtk, u32 battlerDef) switch (i) { case STAT_ATK: - if (HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) - ADJUST_SCORE(1); - break; + return (HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)); case STAT_SPATK: - if (HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL)) - ADJUST_SCORE(1); - break; + return (HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL)); case STAT_ACC: case STAT_EVASION: case STAT_SPEED: - ADJUST_SCORE(1); - break; + return TRUE; case STAT_DEF: case STAT_SPDEF: - if (AI_THINKING_STRUCT->aiFlags[battlerAtk] & AI_FLAG_STALL) - ADJUST_SCORE(1); - break; + return (AI_THINKING_STRUCT->aiFlags[battlerAtk] & AI_FLAG_STALL); } } } diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 69c18c8d48..c88f726c21 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -13726,11 +13726,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_ELECTRIC, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = BATTLE_CATEGORY_SPECIAL, - //.sheerForceBoost = TRUE, (uncomment when effect is implemented, otherwise it breaks the Sheer Force Test) + .sheerForceBoost = TRUE, }, [MOVE_TERA_STARSTORM] = @@ -13740,7 +13739,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_NORMAL, // Stellar type if used by Terapagos-Stellar .accuracy = 100, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, // MOVE_TARGET_BOTH if used by Terapagos-Stellar .priority = 0, .category = BATTLE_CATEGORY_SPECIAL, @@ -13757,7 +13755,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_DRAGON, .accuracy = 100, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = BATTLE_CATEGORY_SPECIAL, @@ -13770,7 +13767,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_FIRE, .accuracy = 0, .pp = 10, - .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 4, .category = BATTLE_CATEGORY_STATUS, @@ -13790,7 +13786,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_ELECTRIC, .accuracy = 100, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, .category = BATTLE_CATEGORY_SPECIAL, @@ -13798,17 +13793,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_MIGHTY_CLEAVE] = { - .effect = EFFECT_FEINT, + .effect = EFFECT_HIT, .power = 95, .type = TYPE_ROCK, .accuracy = 100, .pp = 5, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .ignoresProtect = TRUE, .slicingMove = TRUE, + .additionalEffects = ADDITIONAL_EFFECTS( + PRIMARY_EFFECT(MOVE_EFFECT_FEINT) + ), }, [MOVE_TACHYON_CUTTER] = @@ -13818,7 +13816,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_STEEL, .accuracy = 0, .pp = 10, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = BATTLE_CATEGORY_SPECIAL, @@ -13833,7 +13830,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_STEEL, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = BATTLE_CATEGORY_PHYSICAL, @@ -13847,7 +13843,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_DRAGON, .accuracy = 0, .pp = 15, - .secondaryEffectChance = 0, .target = MOVE_TARGET_ALLY, .priority = 0, .category = BATTLE_CATEGORY_STATUS, @@ -13861,7 +13856,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_FAIRY, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = BATTLE_CATEGORY_SPECIAL, @@ -13876,7 +13870,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_FIRE, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = BATTLE_CATEGORY_PHYSICAL, @@ -13890,7 +13883,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_ELECTRIC, .accuracy = 95, .pp = 15, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = BATTLE_CATEGORY_PHYSICAL, @@ -13904,7 +13896,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_PSYCHIC, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = BATTLE_CATEGORY_SPECIAL, @@ -13919,7 +13910,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_FIGHTING, .accuracy = 100, .pp = 15, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 3, .category = BATTLE_CATEGORY_PHYSICAL, @@ -13928,15 +13918,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_MALIGNANT_CHAIN] = { - .effect = EFFECT_POISON_FANG, + .effect = EFFECT_HIT, .power = 100, .type = TYPE_POISON, .accuracy = 100, .pp = 5, - .secondaryEffectChance = 50, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = BATTLE_CATEGORY_SPECIAL, + .additionalEffects = ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_TOXIC, 50) + ), }, // Z-Moves diff --git a/test/battle/ability/sheer_force.c b/test/battle/ability/sheer_force.c index ec715fa8fd..38895599f3 100644 --- a/test/battle/ability/sheer_force.c +++ b/test/battle/ability/sheer_force.c @@ -8,7 +8,8 @@ SINGLE_BATTLE_TEST("Sheer Force boosts power, but removes secondary effects of m for (j = 1; j < MOVES_COUNT; j++) { - if (gBattleMoves[j].sheerForceBoost && j != MOVE_ORDER_UP && j != MOVE_AURA_WHEEL) + if (gBattleMoves[j].sheerForceBoost && j != MOVE_ORDER_UP && j != MOVE_AURA_WHEEL + && gBattleMoves[j].effect != EFFECT_PLACEHOLDER) { PARAMETRIZE { ability = ABILITY_ANGER_POINT; move = j; } PARAMETRIZE { ability = ABILITY_SHEER_FORCE; move = j; }