Handle New Evolutions #7
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pokebedrock/pokebedrock-showdown!7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "handle-new-evos"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
For https://github.com/smell-of-curry/pokebedrock-beh/pull/31
Summary by CodeRabbit
New Features
Refactor
✏️ Tip: You can customize this high-level summary in your review settings.
Walkthrough
This pull request refactors the evolution trigger system across Pokémon data and type definitions. The changes standardize evolution types (e.g., replacing
levelMove,levelHappiness, and similar variants withlevelUp), introduce new evolution constraints (evoMinHappiness,evoMinTakenDamage,evoPartyForms), add nickname-based and weather-dependent evolutions, and normalize biome identifiers throughout the Pokédex.Changes
sim/dex-species.tslevelMove,levelHappiness,levelHold,levelShed,steps) with standardized ones (levelUp,shed,takeStep,changeNickname,afterBattle). Added type support for new evolution constraint fields:evoMinHappiness,evoMinTakenDamage,evoMinRecoilDamage,evoPartyForms,evoNickname,evoWeather, and expandedevoBiomestyping to support biome keys and subbiome notation.data/pokedex.tsevoTypevalues to new system, addedevoMinHappinessfields, introduced nickname-based evolutions (evoNickname), added weather and biome conditions, updated biome identifiers to concatenated forms (e.g., "Cold Taiga" → "ColdTaiga"), and adjusted evolution-gating fields to align with the new trigger framework.Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~20–30 minutes
sim/dex-species.ts: Carefully verify that the new evoType enum values are exhaustive and that new optional fields (evoPartyForms,evoNickname, etc.) are correctly typed, particularly theevoBiomesunion type incorporating biome keys and subbiome notation.data/pokedex.ts: Due to the high volume of entries modified, spot-check a representative sample of evolution updates to confirm thatevoTypereplacements are semantically correct and that new constraint fields (e.g.,evoMinHappiness: 160) accurately reflect the original evolution logic.Possibly related PRs
sim/dex-species.tsto add evolution-related constraint fields (evoNickname,evoMinTakenDamage,evoMinRecoilDamage,evoPartyForms), indicating overlapping evolution system enhancements.Poem
Pre-merge checks and finishing touches
✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
handle-new-evosThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
❤️ Share
Comment
@coderabbitai helpto get the list of available commands and usage tips.Actionable comments posted: 1
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
53ec63615eanddbb5983931.📒 Files selected for processing (2)
data/pokedex.ts(62 hunks)sim/dex-species.ts(5 hunks)👮 Files not reviewed due to content moderation or server errors (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
🔇 Additional comments (3)
@ -199,0 +204,4 @@* The minimum required happiness the evolving Pokémon species to evolve into this Pokémon species.* @pokebedrock*/readonly evoMinHappiness?: number;⚠️ Potential issue | 🔴 Critical
🧩 Analysis chain
🏁 Script executed:
Repository: smell-of-curry/pokebedrock-showdown
Length of output: 192
🏁 Script executed:
Repository: smell-of-curry/pokebedrock-showdown
Length of output: 1083
🏁 Script executed:
Repository: smell-of-curry/pokebedrock-showdown
Length of output: 1067
🏁 Script executed:
Repository: smell-of-curry/pokebedrock-showdown
Length of output: 1229
Incomplete evolution type refactoring - multiple code paths still reference removed evoType values.
The type definition in
sim/dex-species.tshas been updated to removelevelMove,levelExtra,levelHold, etc., but the following files still contain logic for these removed types and will fail at runtime:sim/team-validator.ts:2765checks forevoType === 'levelMove'(removed type)server/chat-commands/info.ts:676-689has switch cases for'levelExtra','levelHold','levelMove'(removed types)server/chat-plugins/randombattles/ssb.tsxhas identical outdated switch casesdata/mods/gen7/pokedex.ts,data/mods/gen8bdsp/pokedex.ts,data/mods/gen4/pokedex.ts) still declare Pokémon usingevoType: "levelExtra"and other removed valuesUpdate these files to handle only the new evoType values (
levelUp,trade,useItem,shed,takeStep,changeNickname,afterBattle,other) or migrate data to use new types.🤖 Prompt for AI Agents
Bug: Goodra-Hisui uses wrong weather type for evolution
The
evoWeatherfor Goodra-Hisui is set to'Thunder'but the commented-outevoConditionsays "during rain", same as regular Goodra which correctly usesevoWeather: 'Rain'. Both variants should evolve during rain according to the game mechanics, so'Thunder'appears to be incorrect. This will cause Goodra-Hisui to only evolve during thunderstorms instead of during any rain.Bug: Urshifu evolution biome missing from array
The
evoBiomesarray only contains["RoofedForest"]but theevoConditiontext states "Use the Scroll of Darkness in a Dark Oak Biome or Pale Oak Biome". The "Pale Oak" biome is documented as a valid evolution location but is not included in theevoBiomesarray, meaning evolution will not work in that biome despite the condition text suggesting it should.Bug: Basculegion-F not updated with new evolution properties
Basculegion (male) was updated to use
evoType: "afterBattle"withevoMinRecoilDamage: 294, but Basculegion-F still uses the oldevoType: "other"with justevoCondition. Both forms evolve from Basculin-White-Striped under identical conditions (receiving 294+ recoil damage), so Basculegion-F should also be updated to match the male form's new structured evolution properties.Pull request overview
This PR refactors the Pokemon evolution system to handle new evolution types and conditions specific to the Pokebedrock project. The changes consolidate evolution types (replacing
levelHappiness,levelMove,levelExtra,levelHold,levelShed, andstepswith more generic types likelevelUp) and add new properties to support Minecraft-specific evolution conditions.levelUpwith accompanying condition propertiesshed,takeStep,changeNickname,afterBattle) and properties (evoMinHappiness,evoWeather,evoMinTakenDamage,evoMinRecoilDamage,evoNickname,evoPartyForms) to support Minecraft-specific mechanicsReviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The commented evoCondition "during rain" is misleading because the weather is set to "Thunder" (not "Rain"). The comment should either be updated to reflect the correct weather condition or removed if it's intentionally left as outdated information.
Property name inconsistency with codebase naming convention. The property name should be "evoPartyFormes" (with an 'e') to be consistent with the established terminology used throughout this codebase (e.g., "cosmeticFormes", "otherFormes"). This also needs to match the property definition in sim/dex-species.ts.
Grammar error in documentation. The phrase "the evolving Pokémon species to evolve" is missing the word "for" or "in order to". It should read "for the evolving Pokémon species to evolve" to be grammatically correct.
@ -290,0 +302,4 @@*/readonly evoNickname?: string;/*** Weather Required for the evolution.The word "forms" is misspelled as "forms" in the documentation comment. It should be "formes" to be consistent with the terminology used throughout the codebase (as seen in properties like "cosmeticFormes", "otherFormes", etc.).
@ -290,0 +305,4 @@* Weather Required for the evolution.* @pokebedrock*/readonly evoWeather?: keyof typeof WeatherType;Property name inconsistency with codebase naming convention. The property should be named "evoPartyFormes" (with an 'e') to be consistent with other forme-related properties in the codebase such as "cosmeticFormes" and "otherFormes". The term "formes" is the established terminology used throughout this Pokemon codebase.
Pull request closed