Giter Club home page Giter Club logo

Comments (19)

LazoCoder avatar LazoCoder commented on May 20, 2024 19

If you deliver 1 masterball to my home I will add this feature.

from pokemon-terminal.

samuelhnrq avatar samuelhnrq commented on May 20, 2024 2

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.

LazoCoder avatar LazoCoder commented on May 20, 2024 1

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.

LazoCoder avatar LazoCoder commented on May 20, 2024 1

@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.

IamCarbonMan avatar IamCarbonMan commented on May 20, 2024 1

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.

dweipert-3138720606 avatar dweipert-3138720606 commented on May 20, 2024

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.

dweipert-3138720606 avatar dweipert-3138720606 commented on May 20, 2024

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.

giftig avatar giftig commented on May 20, 2024

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.

indiecyberpunk avatar indiecyberpunk commented on May 20, 2024

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.

giftig avatar giftig commented on May 20, 2024

Ah fair enough, I thought they were literally shiny. Guess I've proved @DRogue1337 wrong :D

from pokemon-terminal.

IamCarbonMan avatar IamCarbonMan commented on May 20, 2024

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.

IamCarbonMan avatar IamCarbonMan commented on May 20, 2024

Examples: https://gist.github.com/IamCarbonMan/247f3c08f765e020f39e4934386790c5

from pokemon-terminal.

sylveon avatar sylveon commented on May 20, 2024

from pokemon-terminal.

LazoCoder avatar LazoCoder commented on May 20, 2024

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.

IamCarbonMan avatar IamCarbonMan commented on May 20, 2024

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.

LazoCoder avatar LazoCoder commented on May 20, 2024

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.

IamCarbonMan avatar IamCarbonMan commented on May 20, 2024

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.

IamCarbonMan avatar IamCarbonMan commented on May 20, 2024

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.

IamCarbonMan avatar IamCarbonMan commented on May 20, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.