@@ -24,7 +24,8 @@ const EnumDropdownDatabase<Flavor_Powers>& flavor_power_enum_database(){
2424 {Flavor_Powers::speed, " speed" , " Speed" },
2525 {Flavor_Powers::bighaul, " bighaul" , " Big Haul" },
2626 {Flavor_Powers::item, " item" , " Item" },
27- {Flavor_Powers::mega, " mega" , " Mega" },
27+ {Flavor_Powers::megacharge, " megacharge" , " Mega Charge" },
28+ {Flavor_Powers::megaconserve," megaconserve" ," Mega Conserve" },
2829 {Flavor_Powers::def, " def" , " Defense" },
2930 {Flavor_Powers::spdef, " spdef" , " Sp. Def" },
3031 {Flavor_Powers::resistance, " resistance" , " Resistance" },
@@ -77,6 +78,159 @@ const EnumDropdownDatabase<Power_Level>& power_level_enum_database(){
7778 return database;
7879}
7980
81+ std::string FlavorPowerTableEntry::to_str () const {
82+ std::string selected_power;
83+
84+ switch (power){
85+ case Flavor_Powers::alpha:
86+ selected_power += " alpha-power-" ;
87+ break ;
88+ case Flavor_Powers::humungo:
89+ selected_power += " humungo-power-" ;
90+ break ;
91+ case Flavor_Powers::teensy:
92+ selected_power += " teensy-power-" ;
93+ break ;
94+ case Flavor_Powers::sparkling:
95+ selected_power += " sparkling-power-" ;
96+ break ;
97+ case Flavor_Powers::atk:
98+ selected_power += " attack-power-" ;
99+ break ;
100+ case Flavor_Powers::spatk:
101+ selected_power += " sp-atk-power-" ;
102+ break ;
103+ case Flavor_Powers::move:
104+ selected_power += " move-power-" ;
105+ break ;
106+ case Flavor_Powers::speed:
107+ selected_power += " speed-power-" ;
108+ break ;
109+ case Flavor_Powers::bighaul:
110+ selected_power += " big-haul-power-" ;
111+ break ;
112+ case Flavor_Powers::item:
113+ selected_power += " item-power-" ;
114+ break ;
115+ case Flavor_Powers::megacharge:
116+ selected_power += " mega-power-charging-" ;
117+ break ;
118+ case Flavor_Powers::megaconserve:
119+ selected_power += " mega-power-conservation-" ;
120+ break ;
121+ case Flavor_Powers::def:
122+ selected_power += " defense-power-" ;
123+ break ;
124+ case Flavor_Powers::spdef:
125+ selected_power += " sp-def-power-" ;
126+ break ;
127+ case Flavor_Powers::resistance:
128+ selected_power += " resistance-power-" ;
129+ break ;
130+ case Flavor_Powers::encounter:
131+ selected_power += " encounter-power-" ;
132+ break ;
133+ case Flavor_Powers::catching:
134+ selected_power += " catching-power-" ;
135+ break ;
136+ }
137+
138+ if (power == Flavor_Powers::catching || power == Flavor_Powers::sparkling) {
139+ switch (pokemon_type) {
140+ case Power_Pokemon_Types::all:
141+ selected_power += " all-types-" ;
142+ break ;
143+ case Power_Pokemon_Types::normal:
144+ selected_power += " normal-" ;
145+ break ;
146+ case Power_Pokemon_Types::fire:
147+ selected_power += " fire-" ;
148+ break ;
149+ case Power_Pokemon_Types::water:
150+ selected_power += " water-" ;
151+ break ;
152+ case Power_Pokemon_Types::electric:
153+ selected_power += " electric-" ;
154+ break ;
155+ case Power_Pokemon_Types::grass:
156+ selected_power += " grass-" ;
157+ break ;
158+ case Power_Pokemon_Types::ice:
159+ selected_power += " ice-" ;
160+ break ;
161+ case Power_Pokemon_Types::fighting:
162+ selected_power += " fighting-" ;
163+ break ;
164+ case Power_Pokemon_Types::poison:
165+ selected_power += " poison-" ;
166+ break ;
167+ case Power_Pokemon_Types::ground:
168+ selected_power += " ground-" ;
169+ break ;
170+ case Power_Pokemon_Types::flying:
171+ selected_power += " flying-" ;
172+ break ;
173+ case Power_Pokemon_Types::psychic:
174+ selected_power += " psychic-" ;
175+ break ;
176+ case Power_Pokemon_Types::bug:
177+ selected_power += " bug-" ;
178+ break ;
179+ case Power_Pokemon_Types::rock:
180+ selected_power += " rock-" ;
181+ break ;
182+ case Power_Pokemon_Types::ghost:
183+ selected_power += " ghost-" ;
184+ break ;
185+ case Power_Pokemon_Types::dragon:
186+ selected_power += " dragon-" ;
187+ break ;
188+ case Power_Pokemon_Types::dark:
189+ selected_power += " dark-" ;
190+ break ;
191+ case Power_Pokemon_Types::steel:
192+ selected_power += " steel-" ;
193+ break ;
194+ case Power_Pokemon_Types::fairy:
195+ selected_power += " fairy-" ;
196+ break ;
197+ }
198+ }
199+ else if (power == Flavor_Powers::move || power == Flavor_Powers::resistance) {
200+ switch (item_type) {
201+ case Power_Item_Types::berries:
202+ selected_power += " berries-" ;
203+ break ;
204+ case Power_Item_Types::candies:
205+ selected_power += " candies-" ;
206+ break ;
207+ case Power_Item_Types::treasure:
208+ selected_power += " treasure-" ;
209+ break ;
210+ case Power_Item_Types::pokeballs:
211+ selected_power += " poke-balls-" ;
212+ break ;
213+ case Power_Item_Types::special:
214+ selected_power += " special-" ;
215+ break ;
216+ case Power_Item_Types::coins:
217+ selected_power += " coins-" ;
218+ break ;
219+ }
220+ }
221+
222+ switch (level) {
223+ case Power_Level::one:
224+ selected_power += " 1" ;
225+ case Power_Level::two:
226+ selected_power += " 2" ;
227+ case Power_Level::three:
228+ selected_power += " 3" ;
229+ }
230+
231+ return selected_power;
232+ }
233+
80234StringSelectDatabase make_donut_berries_database (){
81235 StringSelectDatabase ret;
82236 for (const auto & slug : DONUT_BERRIES_SLUGS ()){
@@ -169,6 +323,9 @@ std::unique_ptr<EditableTableRow> FlavorPowerTableRow::clone() const{
169323 ret->level .set (level);
170324 return ret;
171325}
326+ FlavorPowerTableEntry FlavorPowerTableRow::snapshot () const {
327+ return FlavorPowerTableEntry{power, type_pokemon, type_item, level};
328+ }
172329void FlavorPowerTableRow::on_config_value_changed (void * object){
173330 Flavor_Powers power = this ->power ;
174331
@@ -202,6 +359,9 @@ FlavorPowerTable::FlavorPowerTable()
202359 make_defaults ()
203360 )
204361{}
362+ std::vector<FlavorPowerTableEntry> FlavorPowerTable::snapshot (){
363+ return EditableTableOption_t<FlavorPowerTableRow>::snapshot<FlavorPowerTableEntry>();
364+ }
205365std::vector<std::string> FlavorPowerTable::make_header () const {
206366 return {
207367 " Flavor Power " ,
0 commit comments