Changeset 379

Show
Ignore:
Timestamp:
11/13/07 22:29:27 (2 years ago)
Author:
eevee
Message:

Removed contest information on move pages for D/P-only moves. Changed the Pokemon lists to use standard Pokemon tables instead of lots of icons and a compacted table. (#81)

Location:
veekun/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • veekun/trunk/lib/Vee/Controller/Dex.pm

    r364 r379  
    974974    $s->{reverse_combos} = [ map { $_->id } $c->model('DBIC::Moves')->search(\( 'FIND_IN_SET(' . $row->id . ', combos)' ), { columns => ['id'], order_by => 'name ASC' }) ]; 
    975975 
    976     # pokemachus 
     976    # Fetch list of Pokemon 
    977977    my %pokemon_count; 
    978     my %pokemon; 
    979978    my %valid_methods = map { $_ => 1 } qw/level egg tutor machine/; 
    980979    my $pokemoves_rs = $c->model('DBIC::PokeMoves')->search({ moveid => $row->id }); 
     980    my %pokemon_hash;  # method => pokemon id => version => level 
    981981    while (my $pm = $pokemoves_rs->next) { 
    982982        my $method = 'other'; 
    983983        $method = $pm->method if $valid_methods{ $pm->method }; 
    984984        for my $ver (split /,/, $pm->version) { 
    985             push @{ $pokemon{$method}{$ver} }, $pm 
     985            $pokemon_hash{$method}{$pm->pokeid}{pokemon} ||= $pm->pokemon; 
     986            $pokemon_hash{$method}{$pm->pokeid}{$ver} = $pm->level || 1; 
    986987        } 
    987988        $pokemon_count{ $pm->pokeid } = 1; 
    988989    } 
    989      
    990     $s->{pokemon} = \%pokemon; 
     990 
     991    my %learners;  # method => [ version => level, pokemon => pokemon ] 
     992    for my $method (keys %pokemon_hash) { 
     993        @{ $learners{$method} } = sort { $a->{pokemon}->name cmp $b->{pokemon}->name } values %{ $pokemon_hash{$method} }; 
     994    } 
     995 
     996    $s->{learners} = \%learners; 
    991997    $s->{pokemon_count} = scalar keys %pokemon_count; 
    992998} 
  • veekun/trunk/templates/dex/page/move.tt

    r351 r379  
    125125[% END %] 
    126126 
     127<!-- ####################################################################### --> 
     128 
     129[% IF generation <= 2 %] 
    127130<h1>Contest Stuff</h1> 
    128131<div class="dex-basic-box"> 
     
    171174<h2>Contest Effect</h2> 
    172175<p>[% this.contest.effect %]</p> 
     176[% END  # generation <= 2 %] 
     177 
     178<!-- ####################################################################### --> 
     179 
     180[% learn_versions = ['rb','y','gs','c','rusa','frlg','dp'] %] 
     181 
     182[% IF learners.level %] 
     183<h2>By leveling up</h2> 
     184<table cellspacing="0" class="dex-table dex-pokemon"> 
     185<tr class="heading"> 
     186[%     FOREACH version IN learn_versions %] 
     187    <th class="level">[% Icons.$version %]</th> 
     188[%         IF version == 'y' OR version == 'c' OR version == 'frlg' OR version == 'dp'   # lol hack %] 
     189    <td class="vbar" rowspan="[% learners.level.size + 1 %]"></td> 
     190[%         END %] 
     191[%     END  # foreach learn_versions %] 
     192    <th class="name">Pok&eacute;mon</th> 
     193    [% pokemon_header %] 
     194</tr> 
     195[%     color = 1 %] 
     196[%     FOREACH pokemon_versions IN learners.level %] 
     197<tr class="color[% color %]"> 
     198[%         FOREACH version IN learn_versions %] 
     199    <td class="level">[% pokemon_versions.$version.defined ? (pokemon_versions.$version == 1 ? '--' : pokemon_versions.$version) : '' %]</td> 
     200[%         END %] 
     201    <td class="name"> 
     202        <a href="[% dex_uri('pokemon', pokemon_versions.pokemon.name) %]">[% pokemon_versions.pokemon.name %] 
     203[%         IF pokemon_versions.pokemon.alt_form %] 
     204        <br/><small>[[% pokemon_versions.pokemon.alt_form %]]</small> 
     205[%         END %] 
     206        </a> 
     207    </td> 
     208    [% pokemon_cells(pokemon_versions.pokemon) %] 
     209</tr> 
     210[%         color = 3 - color %] 
     211[%     END %] 
     212</table> 
     213<div class="total">Level-up Pok&eacute;mon: [% learners.level.size %]</div> 
     214[% END %] 
    173215 
    174216<!-- ####################################################################### --> 
     
    181223<h1>Pok&eacute;mon</h1> 
    182224<p> <a href="[% c.uri_for('pokemon/search', { move => this.name }) %]"><img src="/images/see-also.png" alt="See also:"/> This move in the Pok&eacute;mon search</a> </p> 
    183 [% IF pokemon.tutor %] 
    184 <h2>By tutors</h2> 
    185 [%     FOREACH gen IN tutor_versions %] 
    186 [%         ver = versions_map.exists(gen) ? versions_map.$gen : gen %] 
    187 [%         NEXT UNLESS pokemon.tutor.$ver.size %] 
    188 <fieldset style="clear: left;"> 
    189 <legend>[% Icons.$gen %]: [% pokemon.tutor.$ver.size %]</legend> 
    190 [%         FOREACH p IN pokemon.tutor.$ver %] 
    191 [%             pokeid = p.pokeid %] 
    192 [%             altform = p.pokemon.alt_form %] 
    193 <a href="[% IF altform; dex_uri('pokemon', p.pokemon.name, { alt_form => altform }); ELSE; dex_uri('pokemon', p.pokemon.name); END %]" class="dex-pokelist"><img src="/dex-images/icons/[% IF altform; p.pokemon.real_id.pad(3); '-'; altform; ELSE; pokeid.pad(3); END %].png" alt="[% p.pokemon.name %][% IF altform; ' ['; altform; ']'; END %]" title="[% p.pokemon.name %]"/></a> 
    194 [%         END %] 
    195 </fieldset> 
    196 [%     END %] 
    197 [% END %] 
    198  
    199 [% IF pokemon.egg %] 
    200 <h2>By egg</h2> 
    201 [%     FOREACH gen IN egg_versions %] 
    202 [%         ver = versions_map.exists(gen) ? versions_map.$gen : gen %] 
    203 [%         NEXT UNLESS pokemon.egg.$ver.size %] 
    204 <fieldset style="clear: left;"> 
    205 <legend>[% Icons.$gen %]: [% pokemon.egg.$ver.size %]</legend> 
    206 [%         FOREACH p IN pokemon.egg.$ver %] 
    207 [%             pokeid = p.pokeid %] 
    208 [%             altform = p.pokemon.alt_form %] 
    209 <a href="[% IF altform; dex_uri('pokemon', p.pokemon.name, { alt_form => altform }); ELSE; dex_uri('pokemon', p.pokemon.name); END %]" class="dex-pokelist"><img src="/dex-images/icons/[% IF altform; p.pokemon.real_id.pad(3); '-'; altform; ELSE; pokeid.pad(3); END %].png" alt="[% p.pokemon.name %][% IF altform; ' ['; altform; ']'; END %]" title="[% p.pokemon.name %]"/></a> 
    210 [%         END %] 
    211 </fieldset> 
    212 [%     END %] 
    213 [% END %] 
    214  
    215 [% IF pokemon.machine %] 
    216 <h2>By TM</h2> 
    217 [%     FOREACH gen IN machine_versions %] 
    218 [%         ver = versions_map.exists(gen) ? versions_map.$gen : gen %] 
    219 [%         NEXT UNLESS pokemon.machine.$ver.size %] 
    220 <fieldset style="clear: left;"> 
    221 <legend>[% Icons.$gen %]: [% pokemon.machine.$ver.size %]</legend> 
    222 [%         FOREACH p IN pokemon.machine.$ver %] 
    223 [%             pokeid = p.pokeid %] 
    224 [%             altform = p.pokemon.alt_form %] 
    225 <a href="[% IF altform; dex_uri('pokemon', p.pokemon.name, { alt_form => altform }); ELSE; dex_uri('pokemon', p.pokemon.name); END %]" class="dex-pokelist"><img src="/dex-images/icons/[% IF altform; p.pokemon.real_id.pad(3); '-'; altform; ELSE; pokeid.pad(3); END %].png" alt="[% p.pokemon.name %][% IF altform; ' ['; altform; ']'; END %]" title="[% p.pokemon.name %]"/></a> 
    226 [%         END %] 
    227 </fieldset> 
    228 [%     END %] 
    229 [% END %] 
    230  
    231 [% learn_versions = ['rb','y','gs','c','rusa','frlg','dp'] %] 
    232  
    233 [% IF pokemon.level %] 
    234 [% altform = {}; %] 
    235 [% level_pokemon = {}; FOREACH ver IN pokemon.level.keys; FOREACH p IN pokemon.level.$ver; level_pokemon.${p.pokeid}.$ver = p.level; level_pokemon.${p.pokeid}.altform = p.pokemon.alt_form; level_pokemon.${p.pokeid}.name = p.pokemon.name; END; END %] 
    236 <h2>By leveling up</h2> 
     225 
     226[%# TODO: yellow/crystal-only TMs %] 
     227 
     228[% FOREACH method IN ['machine', 'egg', 'tutor'] %] 
     229[%     NEXT IF NOT learners.exists(method) %] 
     230[%     list = learners.$method %] 
     231<h2>[% method | ucfirst %]</h2> 
    237232<table cellspacing="0" class="dex-table dex-pokemon"> 
    238 [%     pokemon_rows = (pokemon.size + 5) / 20; pokemon_rows = round(pokemon_rows) + pokemon.size %] 
    239 [%     BLOCK pokemon_header %][%# vbar %] 
    240233<tr class="heading"> 
    241  <th>Pok&eacute;mon</th>[% FOREACH version IN learn_versions %]<th>[% Icons.$version %]</th>[% END %] 
    242 </tr> 
    243 [%     END %] 
    244 [%     INCLUDE pokemon_header vbar=1 %] 
     234[%     tmp = method _ '_versions'; our_versions = $tmp %] 
     235[%     FOREACH version IN our_versions %] 
     236    <th class="level">[% Icons.$version %]</th> 
     237[%         IF version == 'dp'   # lol hack %] 
     238    <td class="vbar" rowspan="[% list.size + 1 %]"></td> 
     239[%         END %] 
     240[%     END  # foreach versions %] 
     241    <th class="name">Pok&eacute;mon</th> 
     242    [% pokemon_header %] 
     243</tr> 
    245244[%     color = 1 %] 
    246 [%     FOREACH pokeid IN level_pokemon.keys %] 
    247 [%     altform = level_pokemon.$pokeid.altform %] 
    248 <tr class="color[% color %]"> <td class="name"><a href="[% IF altform; dex_uri('pokemon', level_pokemon.$pokeid.name, { alt_form => altform }); ELSE; dex_uri('pokemon', level_pokemon.$pokeid.name); END %]">[% level_pokemon.$pokeid.name %][% IF altform; ' ['; altform; ']'; END %]</a></td> 
    249  [%+ FOREACH version IN learn_versions %]<td class="level">[% level_pokemon.$pokeid.$version.defined ? (level_pokemon.$pokeid.$version + 0 == 1 ? '--' : level_pokemon.$pokeid.$version + 0) : '' %]</td>[% END %] 
    250 </tr> 
    251 [%         INCLUDE pokemon_header IF loop.count % 20 == 0 && loop.size - loop.count > 5 %] 
    252 [%     color = 3 - color %] 
     245[%     FOREACH pokemon_versions IN list %] 
     246<tr class="color[% color %]"> 
     247[%         FOREACH version IN our_versions %] 
     248[%             specific_version = versions_map.exists(version) ? versions_map.$version : version %] 
     249    <td class="level">[% IF pokemon_versions.$specific_version.defined; Icons.$version; END %]</td> 
     250[%         END %] 
     251    <td class="name"> 
     252        <a href="[% dex_uri('pokemon', pokemon_versions.pokemon.name) %]">[% pokemon_versions.pokemon.name %] 
     253[%         IF pokemon_versions.pokemon.alt_form %] 
     254        <br/><small>[[% pokemon_versions.pokemon.alt_form %]]</small> 
     255[%         END %] 
     256        </a> 
     257    </td> 
     258    [% pokemon_cells(pokemon_versions.pokemon) %] 
     259</tr> 
     260[%         color = 3 - color %] 
    253261[%     END %] 
    254262</table> 
    255 <div class="total">Level-up Pok&eacute;mon: [% level_pokemon.size %]</div> 
    256 [% END %] 
     263<div class="total">[% list.size %] Pok&eacute;mon</div> 
     264[% END %] 
     265 
    257266<hr/> 
    258267<div class="total">Total Pok&eacute;mon: [% pokemon_count %]</div>