Changeset 406 for veekun/trunk/lib/Vee/Controller/Dex/Utils.pm
- Timestamp:
- 02/08/08 02:44:39 (2 years ago)
- Files:
-
- 1 modified
-
veekun/trunk/lib/Vee/Controller/Dex/Utils.pm (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
veekun/trunk/lib/Vee/Controller/Dex/Utils.pm
r371 r406 102 102 my @pokemon; 103 103 104 my (@rows, @pokemo ves);104 my (@rows, @pokemon_moves); 105 105 # only do this if there are actually correct Pokemon to look up! 106 106 if (@pokemon_ids) { … … 116 116 117 117 # get moves 118 my $move_rs = $c->model('DBIC::Poke Moves')->search({119 poke id => [ keys %pokemon_order ],120 method => [qw/level machine egg tutor/],121 -nest => \ "FIND_IN_SET('$version', version)",118 my $move_rs = $c->model('DBIC::PokemonMoves')->search({ 119 pokemon_id => [ keys %pokemon_order ], 120 method => [qw/level machine egg tutor/], 121 -nest => \ "FIND_IN_SET('$version', versions)", 122 122 }); 123 123 while (my $row = $move_rs->next) { 124 push @{ $pokemo ves[ $_ ]{ $row->method } }, $row for @{ $pokemon_order{$row->pokeid} }125 } 126 } 127 128 $s->{pokemon} = \@pokemon;129 $s->{pokemon_raw} = \@pokemon_raw;130 $s->{pokemo ves} = \@pokemoves;124 push @{ $pokemon_moves[ $_ ]{ $row->method } }, $row for @{ $pokemon_order{$row->pokemon_id} } 125 } 126 } 127 128 $s->{pokemon} = \@pokemon; 129 $s->{pokemon_raw} = \@pokemon_raw; 130 $s->{pokemon_moves} = \@pokemon_moves; 131 131 132 132 $s->{template} = 'dex/utils/compare-results.tt'; … … 173 173 # ensure this move is actually inheritable 174 174 # TODO: should I error if the move is learnable normally? 175 my $inheritable_ct = $c->model('DBIC::Poke Moves')->count({176 poke id => $pokemon->id,177 move id=> $move->id,178 method => [qw/ egg machine /],179 -nest => \ "FIND_IN_SET('$gen', version)",175 my $inheritable_ct = $c->model('DBIC::PokemonMoves')->count({ 176 pokemon_id => $pokemon->id, 177 move_id => $move->id, 178 method => [qw/ egg machine /], 179 -nest => \ "FIND_IN_SET('$gen', versions)", 180 180 }); 181 181 $c->vee_stop('', $pokemon->name, " can't inherit ", $move->name, '.') unless $inheritable_ct; 182 182 183 183 my $gender_restriction; 184 if ($pokemon->gender == 255) {184 if ($pokemon->gender_rate == 255) { 185 185 # must also be genderless, i.e. bred with Ditto 186 186 $gender_restriction = 255; … … 192 192 ### grab the methods by which any Pokemon learn the move 193 193 194 my $methods_rs = $c->model('DBIC::Poke Moves')->search({195 move id => $move->id,196 method => [qw[ level egg machine ]],197 -nest => \ "FIND_IN_SET('$gen', version)",198 'pokemon.gender ' => $gender_restriction,194 my $methods_rs = $c->model('DBIC::PokemonMoves')->search({ 195 move_id => $move->id, 196 method => [qw[ level egg machine ]], 197 -nest => \ "FIND_IN_SET('$gen', versions)", 198 'pokemon.gender_rate' => $gender_restriction, 199 199 }, { 200 200 join => 'pokemon', … … 208 208 $method = 'TM/HM'; 209 209 } 210 push @{ $learn_methods{ $row->poke id } }, $method;210 push @{ $learn_methods{ $row->pokemon_id } }, $method; 211 211 } 212 212 … … 259 259 my %branches; 260 260 261 while (my $poke id = shift @this_level) {262 my $this_poke = $pokemon{$poke id};261 while (my $pokemon_id = shift @this_level) { 262 my $this_poke = $pokemon{$pokemon_id}; 263 263 my $hashref = shift @this_level; 264 264 265 for my $poke id (keys %pokemon) {266 next if not $this_poke->can_breed_with( $pokemon{$poke id} );267 268 if (exists $seen{ $poke id }) {265 for my $pokemon_id (keys %pokemon) { 266 next if not $this_poke->can_breed_with( $pokemon{$pokemon_id} ); 267 268 if (exists $seen{ $pokemon_id }) { 269 269 # don't put anything if this Pokemon has been seen higher 270 270 # in the chain; needless descending is bad 271 $hashref->{ $poke id } = undef272 unless $seen{ $poke id } < $cur_level;271 $hashref->{ $pokemon_id } = undef 272 unless $seen{ $pokemon_id } < $cur_level; 273 273 } else { 274 $hashref->{ $pokeid } = ( $branches{$pokeid} ||= {} );275 $seen{ $pokeid} = $cur_level;274 $hashref->{$pokemon_id} = ( $branches{$pokemon_id} ||= {} ); 275 $seen{$pokemon_id} = $cur_level; 276 276 } 277 277 }
