Changeset 406
- Timestamp:
- 02/08/08 02:44:39 (10 months ago)
- Location:
- veekun/trunk
- Files:
-
- 1 removed
- 78 modified
- 3 moved
-
lib/Vee/Authorization.pm (modified) (1 diff)
-
lib/Vee/Bot.pm (modified) (2 diffs)
-
lib/Vee/Controller/Dex.pm (modified) (21 diffs)
-
lib/Vee/Controller/Dex/Search.pm (modified) (9 diffs)
-
lib/Vee/Controller/Dex/Utils.pm (modified) (6 diffs)
-
lib/Vee/Controller/Forum.pm (modified) (11 diffs)
-
lib/Vee/Controller/Forum/Create.pm (modified) (13 diffs)
-
lib/Vee/Controller/Forum/Post.pm (modified) (8 diffs)
-
lib/Vee/Controller/Index.pm (modified) (4 diffs)
-
lib/Vee/Controller/Root.pm (modified) (2 diffs)
-
lib/Vee/Controller/Shoutbox.pm (modified) (3 diffs)
-
lib/Vee/Controller/Users.pm (modified) (4 diffs)
-
lib/Vee/Controller/Users/Stats.pm (modified) (3 diffs)
-
lib/Vee/Dex.pm (modified) (3 diffs)
-
lib/Vee/Schema/Abilities.pm (modified) (1 diff)
-
lib/Vee/Schema/ContestEffects.pm (moved) (moved from veekun/trunk/lib/Vee/Schema/ContestMoves.pm) (2 diffs)
-
lib/Vee/Schema/Creators.pm (modified) (1 diff)
-
lib/Vee/Schema/Edits.pm (modified) (1 diff)
-
lib/Vee/Schema/ErrorLog.pm (modified) (1 diff)
-
lib/Vee/Schema/EvoChains.pm (moved) (moved from veekun/trunk/lib/Vee/Schema/EvChains.pm) (2 diffs)
-
lib/Vee/Schema/FlavorText.pm (modified) (1 diff)
-
lib/Vee/Schema/Forums.pm (modified) (3 diffs)
-
lib/Vee/Schema/GalleryKeywords.pm (modified) (1 diff)
-
lib/Vee/Schema/GroupPermissions.pm (modified) (1 diff)
-
lib/Vee/Schema/Groups.pm (modified) (1 diff)
-
lib/Vee/Schema/ItemKeywords.pm (modified) (1 diff)
-
lib/Vee/Schema/Items.pm (modified) (1 diff)
-
lib/Vee/Schema/Machines.pm (modified) (1 diff)
-
lib/Vee/Schema/MoveEffects.pm (modified) (1 diff)
-
lib/Vee/Schema/Moves.pm (modified) (4 diffs)
-
lib/Vee/Schema/Permissions.pm (deleted)
-
lib/Vee/Schema/Pokemon.pm (modified) (3 diffs)
-
lib/Vee/Schema/PokemonAbilities.pm (modified) (1 diff)
-
lib/Vee/Schema/PokemonBreeds.pm (modified) (1 diff)
-
lib/Vee/Schema/PokemonMoves.pm (moved) (moved from veekun/trunk/lib/Vee/Schema/PokeMoves.pm) (2 diffs)
-
lib/Vee/Schema/Posts.pm (modified) (1 diff)
-
lib/Vee/Schema/Sessions.pm (modified) (1 diff)
-
lib/Vee/Schema/Shoutbox.pm (modified) (1 diff)
-
lib/Vee/Schema/Threads.pm (modified) (3 diffs)
-
lib/Vee/Schema/Types.pm (modified) (1 diff)
-
lib/Vee/Schema/UserGroups.pm (modified) (1 diff)
-
lib/Vee/Schema/Users.pm (modified) (3 diffs)
-
lib/Vee/Utils.pm (modified) (3 diffs)
-
script/base.sql (modified) (11 diffs)
-
script/base_data.sql (modified) (2 diffs)
-
script/dump_sql.pl (modified) (1 diff)
-
script/gallery.sql (modified) (3 diffs)
-
script/pokedex.sql (modified) (19 diffs)
-
t/dex-pokemon.t (modified) (1 diff)
-
t/dex-search-moves.t (modified) (1 diff)
-
t/dex-search-pokemon.t (modified) (1 diff)
-
t/shoutbox.t (modified) (2 diffs)
-
templates/dex/common.tt (modified) (6 diffs)
-
templates/dex/list/abilities.tt (modified) (1 diff)
-
templates/dex/list/berries.tt (modified) (1 diff)
-
templates/dex/list/moves.tt (modified) (1 diff)
-
templates/dex/list/pokemon.tt (modified) (2 diffs)
-
templates/dex/page/ability.tt (modified) (1 diff)
-
templates/dex/page/item.tt (modified) (1 diff)
-
templates/dex/page/move.tt (modified) (9 diffs)
-
templates/dex/page/pokemon.tt (modified) (16 diffs)
-
templates/dex/page/tm.tt (modified) (1 diff)
-
templates/dex/page/type.tt (modified) (2 diffs)
-
templates/dex/search/moves.tt (modified) (1 diff)
-
templates/dex/search/pokemon.tt (modified) (1 diff)
-
templates/dex/utils/backtrace.tt (modified) (2 diffs)
-
templates/dex/utils/compare-results.tt (modified) (8 diffs)
-
templates/fatal.tt (modified) (1 diff)
-
templates/forum/common.tt (modified) (11 diffs)
-
templates/forum/preview.tt (modified) (3 diffs)
-
templates/forum/thread/edit.tt (modified) (4 diffs)
-
templates/forum/thread/edits.tt (modified) (2 diffs)
-
templates/forum/thread/preview.tt (modified) (1 diff)
-
templates/forum/thread/view.tt (modified) (3 diffs)
-
templates/forum/view.tt (modified) (1 diff)
-
templates/index.tt (modified) (5 diffs)
-
templates/shoutbox.tt (modified) (2 diffs)
-
templates/users/edit.tt (modified) (1 diff)
-
templates/users/info.tt (modified) (3 diffs)
-
templates/users/list.tt (modified) (2 diffs)
-
templates/wrapper.tt (modified) (1 diff)
-
vee.yml (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
veekun/trunk/lib/Vee/Authorization.pm
r385 r406 34 34 return 0 unless $c->user; 35 35 36 my @usergroups = $c->model('UserGroups')->search({ user id => [ 0, $c->user->obj->id ] })->get_column('groupid')->all;36 my @usergroups = $c->model('UserGroups')->search({ user_id => [ 0, $c->user->obj->id ] })->get_column('group_id')->all; 37 37 # my %seen; 38 38 39 39 # TODO: get group parents! 40 40 my @groupperms = $c->model('GroupPermissions')->search({ 41 group id => { -in => \@usergroups },41 group_id => { -in => \@usergroups }, 42 42 permission => [ $permission, 'splat' ], 43 43 scope => $scope, -
veekun/trunk/lib/Vee/Bot.pm
r262 r406 73 73 my $ability = $schema->resultset('Abilities')->find($hashref->{id}); 74 74 return sprintf "%s: %s", 75 $ability->name, $ability-> effect;75 $ability->name, $ability->description; 76 76 77 77 } else { … … 204 204 } 205 205 206 my @pm = $schema->resultset('Poke Moves')->search({207 poke id => $pokemon_id,208 move id=> $move_id,209 -nest => \ "FIND_IN_SET('$ver', version)",206 my @pm = $schema->resultset('PokemonMoves')->search({ 207 pokemon_id => $pokemon_id, 208 move_id => $move_id, 209 -nest => \ "FIND_IN_SET('$ver', versions)", 210 210 }); 211 211 -
veekun/trunk/lib/Vee/Controller/Dex.pm
r400 r406 281 281 group_by => 'me.id', 282 282 join => 'pokemon_abilities', 283 '+select' => 'COUNT(DISTINCT pokemon_abilities.poke id)',283 '+select' => 'COUNT(DISTINCT pokemon_abilities.pokemon_id)', 284 284 '+as' => 'pokemon_count', 285 285 }); … … 353 353 354 354 # check to see if there is only one move, ever, that corresponds to this TM 355 my %set = map { $_->move id => 1 } @tms;355 my %set = map { $_->move_id => 1 } @tms; 356 356 357 357 if (!@tms) { … … 359 359 } elsif (1 == scalar keys %set) { 360 360 # TODO: remove this? 361 $c->res->redirect( $c->uri('Dex', 'moves', lc $MoveData[ $tms[0]->move id ]->name) );361 $c->res->redirect( $c->uri('Dex', 'moves', lc $MoveData[ $tms[0]->move_id ]->name) ); 362 362 } 363 363 … … 453 453 %query, 454 454 }, { 455 join => { ev chain => 'pokemon' },455 join => { evo_chain => 'pokemon' }, 456 456 prefetch => { pokemon_abilities => 'ability' }, 457 group_by => [ 'me.id', 'pokemon_abilities.ability id' ],457 group_by => [ 'me.id', 'pokemon_abilities.ability_id' ], 458 458 order_by => [ @extra_order, "pokemon.id ASC", "FIND_IN_SET('baby', me.flags) DESC", 'me.id ASC' ], 459 459 }); … … 482 482 delete $c->session->{last_pokemon_view}; 483 483 484 $s->{page_title} = $row->name . ' - Pokémon #' . $row->real_ id;484 $s->{page_title} = $row->name . ' - Pokémon #' . $row->real_pokemon_id; 485 485 $s->{page_header} = $row->name; 486 486 $s->{extra_js} = ['dexutils']; … … 507 507 $s->{this} = $row; 508 508 $s->{pid} = Vee::Utils::pad($row->id, 3); 509 $s->{generation} = my $generation = ( grep { $Generations[$_]{maxid} >= $row->real_ id } 0 .. $#Generations )[0];509 $s->{generation} = my $generation = ( grep { $Generations[$_]{maxid} >= $row->real_pokemon_id } 0 .. $#Generations )[0]; 510 510 511 511 # alt forms … … 513 513 my @alts; 514 514 my $alt_rs = $c->model('DBIC::Pokemon')->search({ 515 real_ id => $row->real_id,515 real_pokemon_id => $row->real_pokemon_id, 516 516 }, { 517 517 columns => ['alt_form'], … … 525 525 526 526 # evolution chain 527 my @family = $row->ev chain->pokemon( \'id = real_id', { columns => [qw/id evparent evmethod evparam/] } );527 my @family = $row->evo_chain->pokemon( \'id = real_pokemon_id', { columns => [qw/id evo_parent_id evo_method evo_param/] } ); 528 528 my %evtrees; 529 $evtrees{$_->id} = { id => $_->id, parent => $_->ev parent, method => $_->evmethod, param => $_->evparam, children => [] } for @family;529 $evtrees{$_->id} = { id => $_->id, parent => $_->evo_parent_id, method => $_->evo_method, param => $_->evo_param, children => [] } for @family; 530 530 push @{ $evtrees{ $_->{parent} }{children} }, $_ for sort { $a->{id} <=> $b->{id} } grep { $_->{parent} } values %evtrees; 531 for my $node (values %evtrees) { add_evolution_desc($node, $row->ev chain) }531 for my $node (values %evtrees) { add_evolution_desc($node, $row->evo_chain) } 532 532 $s->{evtree} = ( grep { !$_->{parent} } values %evtrees )[0]; # should only be one with no parent: the root 533 533 calculate_tree_width($s->{evtree}); … … 547 547 $s->{compatibility}{all} = $compat_rs->count; 548 548 # TODO: this is actually wrong; fix when bug #88 is fixed please 549 $s->{compatibility}{base} = $compat_rs->search({ ev parent=> 0 })->count;549 $s->{compatibility}{base} = $compat_rs->search({ evo_parent_id => 0 })->count; 550 550 551 551 # held items … … 563 563 # moves from here down 564 564 # slurp everything this Pokemon can learn, complete with egg moves if necessary 565 my $moves_rs = $c->model('DBIC::PokeMoves')->search( { 566 pokeid => $row->id, 567 }, { 568 columns => [qw/moveid method level version/] 565 my $moves_rs = $c->model('DBIC::PokemonMoves')->search( { 566 pokemon_id => $row->id, 569 567 } ); 570 568 … … 578 576 while (my $move_row = $moves_rs->next) { 579 577 my $table_row = { 580 move id => $move_row->moveid,578 move_id => $move_row->move_id, 581 579 level => $move_row->level, 582 versions => { map { $_ => $move_row->level || 1 } split /,/, $move_row->version },580 versions => { map { $_ => $move_row->level || 1 } split /,/, $move_row->versions }, 583 581 }; 584 582 … … 595 593 @{ $moves{$_} } = sort { 596 594 $a->{level} <=> $b->{level} or 597 $MoveData[ $a->{move id} ]->name cmp $MoveData[ $b->{moveid} ]->name595 $MoveData[ $a->{move_id} ]->name cmp $MoveData[ $b->{move_id} ]->name 598 596 } @{ $moves{$_} } for qw/ level egg machine /; 599 597 … … 633 631 my $i = -1; 634 632 while (++$i <= $#$lev_moves) { # shouldn't use a for since the size of the array changes 635 # find the next row index with the same move id636 my $next_idx = first { $lev_moves->[$_]{move id} == $lev_moves->[$i]{moveid} } $i + 1 .. $#$lev_moves;633 # find the next row index with the same move id 634 my $next_idx = first { $lev_moves->[$_]{move_id} == $lev_moves->[$i]{move_id} } $i + 1 .. $#$lev_moves; 637 635 next if not defined $next_idx; 638 636 … … 673 671 } 674 672 if (scalar keys %{ $from->{versions} } == 0) { 675 # only move id left, so delete this row and redo to hit the next one673 # only move id left, so delete this row and redo to hit the next one 676 674 splice @$lev_moves, $from_idx, 1; 677 675 redo; … … 704 702 map { $_->generation => $_->text } $row->flavors 705 703 }; 706 $s->{generation} = ( grep { $Generations[$_]{maxid} >= $row->real_ id } 0 .. $#Generations )[0];704 $s->{generation} = ( grep { $Generations[$_]{maxid} >= $row->real_pokemon_id } 0 .. $#Generations )[0]; 707 705 708 706 $s->{page_title} = $row->name . ' - Flavor Text and Images'; … … 785 783 ? Vee::Utils::round( $c->model('DBIC::Moves')->count({ power => { '!=' => undef, '<' => $row->power } }) / $DamagingMoveCount * 100, 1 ) 786 784 :'n/a'; 787 $s->{tm_info} = { map { $_->generation => $_ } $c->model('DBIC::Machines')->search({ move id => $row->id }) };785 $s->{tm_info} = { map { $_->generation => $_ } $c->model('DBIC::Machines')->search({ move_id => $row->id }) }; 788 786 789 787 # status effect … … 805 803 806 804 # contest stuffs 807 my $contest_family_rs = $c->model('DBIC::Moves')->search({ con effect => $row->coneffect, id => { '!=', $row->id } }, { columns => [qw/id name contype/], order_by => 'name ASC' });805 my $contest_family_rs = $c->model('DBIC::Moves')->search({ contest_effect_id => $row->contest_effect_id, id => { '!=', $row->id } }, { columns => [qw/id name contest_type/], order_by => 'name ASC' }); 808 806 my %contest_family; 809 807 $s->{contest_family_count} = 0; 810 808 while (my $move = $contest_family_rs->next) { 811 push @{ $contest_family{ $move->cont ype } }, $move;809 push @{ $contest_family{ $move->contest_type } }, $move; 812 810 $s->{contest_family_count}++; 813 811 } … … 818 816 my %pokemon_count; 819 817 my %valid_methods = map { $_ => 1 } qw/level egg tutor machine/; 820 my $pokemoves_rs = $c->model('DBIC::Poke Moves')->search({ moveid => $row->id });818 my $pokemoves_rs = $c->model('DBIC::PokemonMoves')->search({ move_id => $row->id }); 821 819 my %pokemon_hash; # method => pokemon id => version => level 822 820 while (my $pm = $pokemoves_rs->next) { … … 829 827 @versions = ('all'); 830 828 } else { 831 @versions = split /,/, $pm->version ;829 @versions = split /,/, $pm->versions; 832 830 } 833 831 834 832 for my $ver (@versions) { 835 $pokemon_hash{$method}{$pm->poke id}{pokemon} ||= $pm->pokemon;836 $pokemon_hash{$method}{$pm->poke id}{$ver} = $pm->level || 1;837 } 838 $pokemon_count{ $pm->poke id } = 1;833 $pokemon_hash{$method}{$pm->pokemon_id}{pokemon} ||= $pm->pokemon; 834 $pokemon_hash{$method}{$pm->pokemon_id}{$ver} = $pm->level || 1; 835 } 836 $pokemon_count{ $pm->pokemon_id } = 1; 839 837 } 840 838 … … 903 901 $c->forward('/cache', [ $row->id ]); 904 902 905 $s->{hid} = $row->internal id + 1;903 $s->{hid} = $row->internal_id + 1; 906 904 $s->{generation} = ($row->name eq 'dark' || $row->name eq 'steel') ? 1 : 0; 907 905 … … 1190 1188 my @extra; 1191 1189 # n.b.: can ONLY prefetch one has_many here; DBIx::Class will refuse more due to cross-product effect 1192 if ($table eq 'Pokemon') { @extra = ( prefetch => [qw/ev chain pokemoves/], order_by => 'pokemoves.moveid ASC' ) }1193 elsif ($table eq 'Moves') { @extra = ( prefetch => 'pokemo ves', order_by => 'pokemoves.pokeid ASC' ) }1190 if ($table eq 'Pokemon') { @extra = ( prefetch => [qw/evo_chain pokemon_moves/], order_by => 'pokemon_moves.move_id ASC' ) } 1191 elsif ($table eq 'Moves') { @extra = ( prefetch => 'pokemon_moves', order_by => 'pokemon_moves.pokemon_id ASC' ) } 1194 1192 1195 1193 if ($id eq 'random') { -
veekun/trunk/lib/Vee/Controller/Dex/Search.pm
r348 r406 49 49 breed => { type => 'select', options => [ [ 0 => 'n/a' ], map { [ $_ => ($_ ? "$_: " : '') . $BreedingGroups[$_] ] } 1 .. $#BreedingGroups ], count => 2 }, 50 50 breed_mode => { type => 'select', options => [ [ and => 'exactly' ], [ or => 'either of' ] ], default => 'or' }, 51 gender => { type => 'select', options => [ [ any => 'anything' ], [ 255 => 'no gender' ], [ not255 => 'any gender' ], map { [ $_ => lc gender_text($_) ] } qw/0 31 63 127 191 254/ ] },51 gender_rate => { type => 'select', options => [ [ any => 'anything' ], [ 255 => 'no gender' ], [ not255 => 'any gender' ], map { [ $_ => lc gender_text($_) ] } qw/0 31 63 127 191 254/ ] }, 52 52 ability => { type => 'text', size => 20, title => 'Enter the name or number of an ability' }, 53 53 color => { type => 'select', options => [qw/any black blue brown gray green pink purple red white yellow/], title => 'I have no explanation for why this is here' }, … … 123 123 if ($ability) { 124 124 $joins{pokemon_abilities} = 1; 125 $criteria{'pokemon_abilities.ability id'} = $ability->id;125 $criteria{'pokemon_abilities.ability_id'} = $ability->id; 126 126 } 127 127 } … … 142 142 143 143 # BREEDING AND STUFF 144 if (defined $p->{gender } and $p->{gender} ne 'any') {145 if ($p->{gender } eq 'not255') {146 $criteria{'me.gender '} = { '!=' => 255 };144 if (defined $p->{gender_rate} and $p->{gender_rate} ne 'any') { 145 if ($p->{gender_rate} eq 'not255') { 146 $criteria{'me.gender_rate'} = { '!=' => 255 }; 147 147 } else { 148 $criteria{'me.gender '} = $p->{gender};148 $criteria{'me.gender_rate'} = $p->{gender_rate}; 149 149 } 150 150 } … … 154 154 $criteria{'breeds.breed'} = \@breeds; 155 155 if ($p->{breed_mode} eq 'and') { 156 $clauses{having}{'COUNT(DISTINCT breeds.poke id, breeds.breed)'} = scalar @breeds;156 $clauses{having}{'COUNT(DISTINCT breeds.pokemon_id, breeds.breed)'} = scalar @breeds; 157 157 158 158 if (@breeds == 1) { … … 192 192 for my $move (@{ $p->{move} }) { 193 193 # XXX: show some message if a move is invalid? 194 my $move id = get_move($move);195 push @moveids, $move id if defined $moveid;194 my $move_id = get_move($move); 195 push @moveids, $move_id if defined $move_id; 196 196 } 197 197 if (@moveids) { 198 $joins{pokemo ves} = 1;199 $criteria{'pokemo ves.moveid'} = \@moveids;200 $clauses{having}{'COUNT(DISTINCT pokemo ves.pokeid, pokemoves.moveid)'} = scalar @moveids;198 $joins{pokemon_moves} = 1; 199 $criteria{'pokemon_moves.move_id'} = \@moveids; 200 $clauses{having}{'COUNT(DISTINCT pokemon_moves.pokemon_id, pokemon_moves.move_id)'} = scalar @moveids; 201 201 202 202 if ($p->{move_method}) { 203 $criteria{'pokemo ves.method'} = $p->{move_method};203 $criteria{'pokemon_moves.method'} = $p->{move_method}; 204 204 } 205 205 if ($p->{move_version}) { 206 push @{$criteria{'-and'}}, { '-or', [ map { \ "FIND_IN_SET('$_', pokemo ves.version)" } Vee::Utils::array($p->{move_version}) ] };206 push @{$criteria{'-and'}}, { '-or', [ map { \ "FIND_IN_SET('$_', pokemon_moves.versions)" } Vee::Utils::array($p->{move_version}) ] }; 207 207 } 208 208 } … … 237 237 238 238 if ($evo_stages{base}) { 239 $criteria{'me.ev parent'} = 0;239 $criteria{'me.evo_parent_id'} = 0; 240 240 } 241 241 … … 308 308 }; 309 309 310 for my $col (qw/power acc pp effect_chance priority/) {310 for my $col (qw/power accuracy pp effect_chance priority/) { 311 311 for my $endpoint (keys %endpoints) { 312 312 $move_search_fields->{ $col . '_' . $endpoint } = { type => 'text', size => 4, maxlength => 3, title => "\u$endpoints{$endpoint}{english} $col" }; … … 366 366 } 367 367 if (@pokemonids) { 368 $joins{pokemo ves} = 1;369 $criteria{'pokemo ves.pokeid'} = \@pokemonids;370 $clauses{having}{'COUNT(DISTINCT pokemo ves.pokeid, pokemoves.moveid)'} = scalar @pokemonids;368 $joins{pokemon_moves} = 1; 369 $criteria{'pokemon_moves.pokemon_id'} = \@pokemonids; 370 $clauses{having}{'COUNT(DISTINCT pokemon_moves.pokemon_id, pokemon_moves.move_id)'} = scalar @pokemonids; 371 371 372 372 if ($p->{move_method}) { 373 $criteria{'pokemo ves.method'} = $p->{move_method};373 $criteria{'pokemon_moves.method'} = $p->{move_method}; 374 374 } 375 375 if ($p->{move_version}) { 376 push @{$criteria{'-and'}}, { '-or', [ map { \ "FIND_IN_SET('$_', pokemo ves.version)" } Vee::Utils::array($p->{move_version}) ] };376 push @{$criteria{'-and'}}, { '-or', [ map { \ "FIND_IN_SET('$_', pokemon_moves.versions)" } Vee::Utils::array($p->{move_version}) ] }; 377 377 } 378 378 } … … 380 380 381 381 # NUMBERS 382 for my $numbar (qw/power acc pp effect_chance priority/) {382 for my $numbar (qw/power accuracy pp effect_chance priority/) { 383 383 for my $endpoint (keys %endpoints) { 384 384 my $value = $p->{$numbar . '_' . $endpoint}; -
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,
