Changeset 432 for veekun/trunk/lib/Vee/Controller
- Timestamp:
- 05/23/08 02:41:12 (22 months ago)
- Files:
-
- 1 modified
-
veekun/trunk/lib/Vee/Controller/Dex/Utils.pm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
veekun/trunk/lib/Vee/Controller/Dex/Utils.pm
r431 r432 270 270 } 271 271 272 if ($pokemon->breeding_code == 255) { 273 $s->{error_msg} = $pokemon->name . ' cannot breed.'; 272 my $basic_form = $pokemon->evo_chain->basic_form; 273 my @egg_forms = $pokemon->evo_chain->egg_forms; 274 275 warn join "\n", map { $_->name } @egg_forms; 276 # N.B.: this assumes (correctly, as of DP) that every gendered Pokemon in 277 # a given chain has the same breeding code. 278 my $breedable_form = $pokemon->evo_chain->pokemon({ 279 'breeds.breed' => { '!=' => 15 }, 280 }, { 281 join => 'breeds', 282 })->first; 283 if (not $breedable_form) { 284 $s->{error_msg} = 'Nothing in the ' . $basic_form->name 285 . ' family can breed.'; 274 286 return; 275 287 } 276 288 277 289 my @unlearnable_moves; 278 for my $move (@moves) { 279 my $method = $pokemon->move_method_string($move, $version); 280 if (not $method) { 281 push @unlearnable_moves, $move; 282 } 290 MOVE: for my $move (@moves) { 291 for my $egg (@egg_forms) { 292 next MOVE if $egg->move_method_string($move, $version); 293 } 294 295 push @unlearnable_moves, $move; 283 296 } 284 297 if (@unlearnable_moves) { … … 287 300 $move_names[-1] = 'or ' . $move_names[-1]; 288 301 } 289 $s->{error_msg} = $pokemon->name . " cannot inherit "290 . join(', ', @move_names) . '.';302 $s->{error_msg} = 'No egg in the ' . $basic_form->name . ' family can' 303 . ' inherit ' . join(', ', @move_names) . '.'; 291 304 return; 292 305 } … … 329 342 # tree iteratively from there 330 343 my %egg_groups_tree = ( 331 groups => [ $ pokemon->breeding_groups ],332 pokemon => [ $pokemon],344 groups => [ $breedable_form->breeding_groups ], 345 pokemon => [ @egg_forms ], 333 346 children => [], 334 347 );
