Comments (19)
If you deliver 1 masterball to my home I will add this feature.
from pokemon-terminal.
I bet you could use stuff like image magick to apply a filter on top of a existing one and generate a new "shiny" image on the fly rather then doubling the size of the repo π
from pokemon-terminal.
I agree with @samosaara, it would be best to add a filter instead of creating new images. Probably a simple hue shift would be enough.
But I'm not sure that everybody knows what a shiny pokemon is... maybe some people will think its a bug if the images come up as random colors occasionally. Furthermore the extra dependency on an external library like image magick or PIL makes it seem to me that there might be more cons than pros to adding this feature.
Alternatively, if somebody really wants a particular shiny pokemon, they can just find one online and add it to the Images\Extra folder and it will show up in the program (as per the Adding Custom Images section in the readme).
from pokemon-terminal.
@charlesmilette @samosaara @cclauss @dosman711 What do you guys think of this?
If a user types pokemon light
should there be a chance of a shiny pokemon? Or should shiny pokemon only be limited to the command pokemon random
?
from pokemon-terminal.
Not just pokemon random
at the minimum. pokemon pikachu
should have a chance to spawn a shiny Pikachu, and possibly pokemon slideshow
should include shinies.
from pokemon-terminal.
Would you just use an alternate color palette and apply that to the existing image or would you make a whole new image? π€
from pokemon-terminal.
I think people who like PokΓ©mon that much to use them as their terminal background would know what a shiny is. π
from pokemon-terminal.
The nice simple shapes and limited palette of the backgrounds make them nice backgrounds where you need to be able to read text over the top. Having a shiny picture in my terminal background would be less appealing.
from pokemon-terminal.
The nice simple shapes and limited palette of the backgrounds make them nice backgrounds where you need to be able to read text over the top. Having a shiny picture in my terminal background would be less appealing.
@giftig https://bulbapedia.bulbagarden.net/wiki/Shiny_Pok%C3%A9mon Shiny Pokemon are basically just palette swaps (though that's not entirely 100% correct)
from pokemon-terminal.
Ah fair enough, I thought they were literally shiny. Guess I've proved @DRogue1337 wrong :D
from pokemon-terminal.
I could work on this. The creator of most of the wallpapers, PLDH, never did shiny wallpapers, but his site does have regular and shiny sprites. I could color-convert the wallpapers we have using colors from the shiny sprites.
@LazoCoder, you had mentioned not wanting to bring in an extra dependency via ImageMagick. Perhaps it could be an optional dependency? I suppose one way to do that would be to use the ImageMagick shell commands directly instead of using a Python wrapper. Many people will already have ImageMagick installed on GNU/Linux systems, and if the command isn't found, we can just tell the user they would have found a shiny if they had it installed.
The other question pertaining to this feature is when to randomly inject a shiny Pokemon into a regular request. Should the change_wallpaper
and change_terminal_background
methods randomly choose to replace any given Pokemon with a shiny version (which would give the potential for any command line option to yield a shiny)? What should the frequency of shinies be? Should we put a (preferably undocumented) shiny
command line option to specifically select a shiny?
from pokemon-terminal.
Examples: https://gist.github.com/IamCarbonMan/247f3c08f765e020f39e4934386790c5
from pokemon-terminal.
from pokemon-terminal.
The optional dependency sounds good to me if you can get it to work. The odds of encountering a shiny pokemon in the games are 1 in 8192, so we can use those odds.
The hard part of all this is figuring out a way to integrate it seamlessly into the project in a way that the code is still readable and easily maintainable. Adding it to change_wallpaper
and change_terminal_background
seems intuitively the best way to do it. But consider the case where a user does pokemon light
and gets a shiny pokemon that is instead dark. Maybe have a flag to not do shiny's if the light/dark functions are called.
And @charlesmilette makes a good point about storage. There is a lot to consider here.
from pokemon-terminal.
I'll keep working on this, it's rather tedious because I have to use a color picker to get every single color from the shiny sprites. I'll hopefully find a way to automate it a bit later today.
As far as storage, storing it in ~/.cache sounds fine. With the new light and dark commands, we can have those pass along an optional parameter to skip shinies. At a 1/8192 chance though, I kind of think people would prefer to have to type the command again than miss seeing it.
from pokemon-terminal.
I kind of think people would prefer to have to type the command again than miss seeing it.
What do you mean?
Are you implying that you want to put in a command like pokemon charizard shiny
? If so, that's fine with me.
from pokemon-terminal.
Well, I think if there's a shiny functionality in the package then there should be a shiny command. But I also think that if I type pokemon light
and get a shiny (black) charizard, I'd be more impressed that I had gotten the 1/8192 chance than I would be irritated that I got a different color. We could block shinies from appearing when used with light and dark options, but I think the shinies feature is cooler.
from pokemon-terminal.
On the technical side, here's basically what the data files look like:
bulbasaur b3ffb1 77ac98 83cf7a 4e8872 008421 5b9b76 ivysaur a1d544 288887 779d1d 1a6e6b venusaur 99d43d 57a6a1 ffce0a b5525f charmander efa003 f4b186 charmeleon efa003 d3675a charizard 84799c db8d4b 870d29 cf824c squirtle 58ae29 836f62 wartortle 8a7db5 a7bee0 blastoise 8a7db5 a7bee0 caterpie fac40f 8bc87a metapod fe743a 86b243 c55a16 78a152 butterfree d8adc3 dcefeb 63ef5d aa203e df505f 9fc3db weedle ffb401 d19e43 kakuna c0cd31 f4e08a 9bb929 d8c173 beedrill 80c721 edce64 3e5ace ca4b60 pidgey 8a8c0d a06a2e pidgeotto 788433 ae6e30 fdda18 f09170 pidgeot fffcaa ca4f43 rattata 918e2e a760a5 raticate b45329 cc9552 spearow efa206 d3756e c0ae20 9b6b54 fearow 8a8e325 ad7341 ced373 895a32 de7605 d66b57 ekans 838927 8d6893 arbok af7d26 a69fbe 2c6696 c96258 d0f378 c4a952 pikachu fea502 f7de81 raichu d84c36 f1bc4a
To make a Pokemon shiny, you run it through the imagemagick command convert -fuzz {2-10}% -fill "#{color}" -opaque "#{color}"
- each pair of colors is filled into a separate fill/opaque block. Also the -fuzz value is typically 5, but you can tweak it if the picture comes out weird and it should fix the problem.
I'm filling these in manually using a color picker and https://pldh.net/dex/sprites/. It takes a while and is somewhat error-prone, so this feature could be delayed at least a week.
from pokemon-terminal.
Well, it's definitely been a lot longer than a week π
I'm going to start working on this again. It was mentioned that in the samples I created the boundaries between colors can get blurred, hopefully I can adjust the fuzz values per-Pokemon to account for this. Either way each Pokemon takes at least 5 minutes to do, so I'm hoping to be able to have this done before too extremely long.
from pokemon-terminal.
Related Issues (20)
- command not found: pokemon HOT 2
- Please support for Windows Terminal v1.0.1401.0 HOT 6
- Does this support Windows Terminal + WSL2 Ubuntu? HOT 4
- Typo in using python re library -- supposed to be lowercase :) HOT 4
- Error with pip macos catalina
- Please have support for Linux/GNU Konsole/Terminal and Windows CMD β β β HOT 3
- linux terminal not supported HOT 1
- I want to contribute in this project to add Alola,Galar,Mega etc HOT 4
- Not working on iTerm2 HOT 4
- Ctrl + C interrupt event makes slideshow exit
- Doesn't work on Windows 10 using Windows Terminal. CommandNotFoundException HOT 2
- Syntax Error in Ubuntu 16.04 LTS Xenial HOT 1
- my tilix cannot use the pokemon-terminal HOT 1
- Gen 7 and Gen 8 update HOT 1
- A GitHub pages site for searching and previewing the themes
- An option that selects a random pokemon.
- add built-in macOS terminal support
- Error installing using `pip3 install git+https://github.com/LazoCoder/Pokemon-Terminal.git `
- Kitty support HOT 3
- pokemon --wallpaper not changed the wallpaper on gnome
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pokemon-terminal.