ForumsSuggestions → Pinned: Evolution Method Refactoring
Evolution Method Refactoring

PlayerJoined 8 years ago
Hello! I was discussing in the Discord a way to refactor the Pokemon evolution selector to make it less of an imposing list. The ideal solution seems to be "a trigger onto which you can add conditions" so I did that to cover as many canon and fake Mons as possible. If I'm missing any or make edits I'll edit my post. Sorry for the ugly ++ but the forum ate my tabs.

Everything is laid out like:
Triggers
++Conditions
++++Variables

Level Up
++Select "At Level", "At Level with Condition" or "Any level with Condition"

Use Item
++Select "Item Alone" or "Item with Condition"
++(Canon Conditions are Gender and Region, but any condition could work)

Trade
++Select "Any Trade" or "Trade with Condition"
++Canon Condition: Holding Item (Possibly could expand to: Holding Item, Knowing A Move of Type, Knowing A Unique Move, Gender, Form. Not the full list)
++Condition: Pokemon traded with [Unique to trades]
++++(Select Pokemon)

Spin
++Spin Variable: Length
++++(Select from Options)
++Spin Variable: Direction
++++(CW/CCW)
++[Add Other Conditions]

End of Battle
++Requires Condition [in canon this is the actual trigger for Sirfetch'd, just requiring the condition of the three crits]

Location Trigger
++(Select Location)
++(Other Factors)
[Entirely for Runerigus but the idea of evolving based on a map location is kind of fun]

Mega Evolution
++(Select Mega Stone)
[A generic Mega Stone would help this feature out without having to program in a bunch of unique stones]

Condition List:
++Condition: At Level
++++(Input level)
++Condition: Evolution Item
++++(Select Item)
++Condition: Holding Item
++++(Select Item)
++Condition: Time of Day
++++(Select Time of Day)
++Condition: Knowing a Move Of Type
++++(Select Type)
++Condition: Knowing a Specific Move
++++(Select Move)
++Condition: Certain location
++++(Forest/Ice/Magnetic, can probably write a few more of these for expansion like Volcano)
++Condition: Certain region
++++(Select region, would have to put in various Nintendo ones I guess)
++Condition: Gender
++++(Select M/F)
++Condition: Game
++++(Sun/Moon only appropriate options, unless we factor this out entirely and just make it time of day like normal people)
++Condition: Specific Pokemon in Party
++++(Select Pokemon)
++Condition: Pokemon of Type in Party
++++(Select Type)
++Condition: Stats
++++(Select Stat 1)
++++(Select Stat 2)
++++(Select >, <, =)
++Condition: Form
++++(Select from Forms)
++++[Given that evolution is set by form this may not be necessary]
++Condition: Overworld Weather
++++(Select Weather condition)
++Condition: Season
++++(Select from 4)
++Condition: Happiness
++++(Input Happiness value, usually 220)
++Condition: Contest Stat Max
++++(Select from 5)
++Condition: Current Status
++++(Select from Status list)

Unique Conditions:
++Condition: Empty Party Slot when evolving a Pokemon
++++(Select Pokemon)
++Condition: Hit Self in Confusion in battle
++Condition: Landed 3 Critical Hits
++Condition: Rotate Game Window
++Condition: Five fainted party members
++Condition: At least one party member with status
++Condition: Damage taken in previous battle without fainting
++++(Input HP Value)

Possible expansions of conditions:
++Condition: EVs
++++(Select Stat) (Select EV value)
Edited 2 weeks ago by mattgcn.