Releases: Huseynteymurzade28/pokeductor
Release list
v0.5.0
Added
-
CONTRIBUTING.md: the commands CI runs, the MSRV and where it is declared,
where a change belongs, and the comment, test-naming and commit conventions
with an example of each from the code. (#30) -
A full-screen evolution view, on
F. Wide branching chains — Eevee's eight
branches, Tyrogue, Wurmple, the regional-form lines — need more rows than the
evolution panel can ever offer, so there they degraded to the compact text
tree; handed the whole terminal they get the sprite cards they were designed
for. Same cursor and requirement readout as the panel;Entertakes the stage
under the cursor and collapses back to it, andEsccollapses without
taking one. (#3) -
A head-to-head card, on
C: pin one species, then press it again on a second
to compare the two. Base stats as mirrored bars with the margin and winner per
row, the totals, the hardest same-type hit each side lands on the other, and
their measurements and abilities. Both sides are records the app already
holds, so the card costs no request to open. (#20) -
Rloads a random species from the list as currently filtered:type:ghost
thenRis a random Ghost. The one way through the list that does not need
you to already know what you are looking for. (#28) -
A second palette, and
--themeto pick one.pico8is the palette the
interface was designed in and stays the default;dmgis the Game Boy DMG's
greens, which is a joke worth making and needed no new rendering to make —
only other numbers. Sprites are quantized to the DMG's four shades the way
the hardware quantized everything, stat bars carry their scale in brightness
where there is only one hue, and the choice is kept between runs beside the
language and the sort order.theme.rssaid from its first line that
centralizing the colours made it trivial to swap palettes later; this is the
payoff it never collected. (#29) -
A species' alternate forms, on the info card and behind
V. Forms sit in the
master list as ordinary entries (raichu-alola), so they were reachable only
by already knowing the name, and nothing on Raichu's card said an Alolan form
existed. The card now lists the others in a Forms row, andVopens a picker
over every variety — the one on display marked — that loads the one chosen.
The mapping is the species record'svarietieslist, which the bundle
already fetched and threw away, so none of it costs a request. (#19) -
The party card has a cursor, and
Con it pins the member under the cursor
or — with another species already pinned — opens the comparison against it.
The party is six records picked deliberately, so it doubles as the shortlist
to compare from. (#34) -
The info card shows a species' breeding and field data: egg groups, gender
ratio, catch rate with a word for which way it runs, growth curve, base
happiness and habitat where the games recorded one. All six ride on the
species record the bundle already fetches, so none costs a request. A
genderless species says so; a species with no habitat gets no row. (#31)
Changed
-
The sidebar's state — the master list, the search box, the ordering and the
cursor — is its ownbrowser.rs, holding no client and spawning no tasks, so
the rules that are easiest to break by accident can be tested directly: the
highlight surviving a narrowing search or a re-sort, the cursor wrapping, and
a filter whose roster has not arrived matching nothing rather than
everything. The panels haveTestBackendrender tests beside them, covering
what each says when it is loading, empty or in error, and both sides of the
evolution graph's card ↔ text-tree threshold.app.rsandui.rshad no
tests at all before this. (#21) -
Chain cards are centred on their canvas and no longer stretch past a readable
width, so a wide screen draws one connected graph rather than clusters spread
to its far edges. -
The sidebar asks PokeAPI for its whole list rather than the 1302 entries
that were all of it when the limit was written. PokeAPI appends, so the
newest alternate forms — everything past that count — were being cut off the
end: absent from the list, and so unreachable by name and unopenable from a
Forms row. (#19) -
Cached species bundles are now version 7, so every cached species is
fetched once more, the first time it is opened, to pick up the field data and
the species' form list. The flavour blurb now takes a column that fits it
exactly, where before it needed one spare row.
v0.4.0
Added
- A moves card, on
M: the learnset for the newest games a species appears in,
with each move's type, category, power, accuracy and PP, and a description of
the one under the cursor. The rows come with the species record, so the card
costs no request to open; the per-move records are fetched as you scroll and
cached permanently. - Two more search filters:
ability:levitatenarrows the list to everything
that can have an ability, andegg:dragonto a breeding group. Both combine
withtype:and with each other, and both accept the short formsa:and
e:. Breeding groups answer to their in-game names as well as PokeAPI's
older spellings, soegg:grassreaches the group the API files asplant. - A command-line interface:
pokeductor <name>opens straight on a species,
--langpicks the interface language,--clear-cacheand--cache-dir
manage the on-disk cache, and--versionand--helpanswer at last. The
name argument goes through the search box, sopokeductor 25and
pokeductor type:ghostwork too. (#5) - Terminal colour-depth detection. Sprites quantize to the xterm-256 palette on
terminals without truecolor instead of being dropped, and--colorand
NO_COLORoverride what detection concluded. (#4) - The party, interface language, sort order and shiny toggle are carried over
between runs, kept under$XDG_STATE_HOME/pokeductor.
Changed
- The on-disk cache format is version 5: species records now carry their
learnset, so entries written by an earlier build are re-fetched once. reqwestnow usesrustls-tlsrather than the platform's TLS. Release
binaries link no system OpenSSL and carry their own root certificates, which
is what lets one Linux build run anywhere.- With no colour available, sprites are skipped in favour of the placeholder the
panels already fall back to, and the list cursor falls back to reverse video.
Fixed
- The type matchup card ignored the ability immunities the party card already
accounted for, so the two disagreed about the same species. (#13)
Performance
- An idle screen no longer redraws eight times a second. The animation tick runs
only while a request is in flight, which is the only time a spinner is on
screen: measured idle CPU goes from ~1.1% of a core to 0.00%. (#15) - A sprite's crop box is worked out once when it is decoded rather than scanned
out of all 96×96 pixels on every frame, halving the sprite work in a frame
that draws a full evolution chain. (#16)