From 959fd89f3e8e61894c00dd0964a8324bc64a44e6 Mon Sep 17 00:00:00 2001 From: amiosi <44352097+amiosi@users.noreply.github.com> Date: Thu, 8 Jan 2026 23:43:16 -0500 Subject: [PATCH 1/3] update ability flags --- src/data/abilities.h | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/data/abilities.h b/src/data/abilities.h index 95b6a6e591..b169a0f1c2 100644 --- a/src/data/abilities.h +++ b/src/data/abilities.h @@ -281,7 +281,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .description = COMPOUND_STRING("Copies special ability."), .aiRating = 6, .cantBeCopied = TRUE, - .cantBeTraced = TRUE, + .cantBeTraced = B_UPDATED_ABILITY_DATA >= GEN_4, }, [ABILITY_HUGE_POWER] = @@ -452,7 +452,8 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .description = COMPOUND_STRING("Changes with the weather."), .aiRating = 6, .cantBeCopied = TRUE, - .cantBeTraced = TRUE, + .cantBeTraced = B_UPDATED_ABILITY_DATA >= GEN_4, + .failsOnImposter = B_UPDATED_ABILITY_DATA >= GEN_5, }, [ABILITY_STICKY_HOLD] = @@ -912,6 +913,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .cantBeTraced = TRUE, .cantBeSuppressed = TRUE, .cantBeOverwritten = TRUE, + .failsOnImposter = B_UPDATED_ABILITY_DATA >= GEN_5, }, [ABILITY_FLOWER_GIFT] = @@ -920,7 +922,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .description = COMPOUND_STRING("Allies power up in sunshine."), .aiRating = 4, .cantBeCopied = TRUE, - .cantBeTraced = TRUE, + .cantBeTraced = B_UPDATED_ABILITY_DATA >= GEN_5, .breakable = TRUE, }, @@ -1212,9 +1214,11 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .description = COMPOUND_STRING("Transforms at half HP."), .aiRating = -1, .cantBeCopied = TRUE, - .cantBeSwapped = TRUE, + .cantBeSwapped = B_UPDATED_ABILITY_DATA >= GEN_7, .cantBeTraced = TRUE, .cantBeSuppressed = B_UPDATED_ABILITY_DATA >= GEN_7, + .cantBeOverwritten = B_UPDATED_ABILITY_DATA >= GEN_7, + .failsOnImposter = TRUE, }, [ABILITY_VICTORY_STAR] = @@ -1330,6 +1334,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .cantBeTraced = TRUE, .cantBeSuppressed = TRUE, .cantBeOverwritten = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_GALE_WINGS] = @@ -1401,6 +1406,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .name = _("Dark Aura"), .description = COMPOUND_STRING("Boosts Dark moves."), .aiRating = 6, + .breakable = B_UPDATED_ABILITY_DATA < GEN_8, }, [ABILITY_FAIRY_AURA] = @@ -1408,6 +1414,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .name = _("Fairy Aura"), .description = COMPOUND_STRING("Boosts Fairy moves."), .aiRating = 6, + .breakable = B_UPDATED_ABILITY_DATA < GEN_8, }, [ABILITY_AURA_BREAK] = @@ -1484,6 +1491,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .cantBeTraced = TRUE, .cantBeSuppressed = TRUE, .cantBeOverwritten = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_STAKEOUT] = @@ -1567,6 +1575,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .cantBeTraced = TRUE, .cantBeSuppressed = TRUE, .cantBeOverwritten = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_DISGUISE] = @@ -1593,6 +1602,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .cantBeTraced = TRUE, .cantBeSuppressed = TRUE, .cantBeOverwritten = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_POWER_CONSTRUCT] = @@ -1605,6 +1615,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .cantBeTraced = TRUE, .cantBeSuppressed = TRUE, .cantBeOverwritten = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_CORROSION] = @@ -1720,6 +1731,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .cantBeTraced = TRUE, .cantBeSuppressed = TRUE, .cantBeOverwritten = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_ELECTRIC_SURGE] = @@ -1835,6 +1847,8 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .cantBeCopied = TRUE, .cantBeSuppressed = TRUE, .cantBeOverwritten = TRUE, + .cantBeSwapped = B_UPDATED_ABILITY_DATA < GEN_9, + .cantBeTraced = B_UPDATED_ABILITY_DATA < GEN_9, .failsOnImposter = TRUE, }, @@ -1953,7 +1967,6 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .cantBeCopied = TRUE, .cantBeSwapped = TRUE, .cantBeTraced = TRUE, - .failsOnImposter = TRUE, }, [ABILITY_PASTEL_VEIL] = @@ -2222,6 +2235,9 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .name = _("Orichalcum Pulse"), .description = COMPOUND_STRING("Summons sunlight in battle."), .aiRating = 8, + .cantBeSwapped = TRUE, + .cantBeCopied = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_HADRON_ENGINE] = @@ -2229,6 +2245,9 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .name = _("Hadron Engine"), .description = COMPOUND_STRING("Field becomes Electric."), .aiRating = 8, + .cantBeSwapped = TRUE, + .cantBeCopied = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_OPPORTUNIST] = From 249e930371d57516093ff970287d562c5ebaaf51 Mon Sep 17 00:00:00 2001 From: amiosi <44352097+amiosi@users.noreply.github.com> Date: Sun, 11 Jan 2026 12:07:05 -0500 Subject: [PATCH 2/3] neutralizing gas DOES fail on imposter --- src/data/abilities.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/data/abilities.h b/src/data/abilities.h index b169a0f1c2..59e695f909 100644 --- a/src/data/abilities.h +++ b/src/data/abilities.h @@ -1967,6 +1967,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .cantBeCopied = TRUE, .cantBeSwapped = TRUE, .cantBeTraced = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_PASTEL_VEIL] = From 221e9c6102e6465cafc3416c5bbe65c508818ce4 Mon Sep 17 00:00:00 2001 From: amiosi <44352097+amiosi@users.noreply.github.com> Date: Fri, 20 Mar 2026 23:18:07 -0400 Subject: [PATCH 3/3] comment out trace copying itself should be uncommented when gen 3 trace behavior is added --- src/data/abilities.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/abilities.h b/src/data/abilities.h index 59e695f909..ddf90af751 100644 --- a/src/data/abilities.h +++ b/src/data/abilities.h @@ -281,7 +281,7 @@ const struct AbilityInfo gAbilitiesInfo[ABILITIES_COUNT] = .description = COMPOUND_STRING("Copies special ability."), .aiRating = 6, .cantBeCopied = TRUE, - .cantBeTraced = B_UPDATED_ABILITY_DATA >= GEN_4, + .cantBeTraced = TRUE, //B_UPDATED_ABILITY_DATA >= GEN_4 }, [ABILITY_HUGE_POWER] =