Loreinator / Shuffle-Move

Program to help choose moves in the Pokemon Shuffle puzzle game
GNU General Public License v3.0
97 stars 18 forks source link

Incorrect species info #96

Closed coeusite closed 8 years ago

coeusite commented 8 years ago

Please make an update for Landorus and Thundurus.

In Shuffle-Move/resources/config/defaults/species.txt

from

SPECIES Tornadus 3370 70 FLYING POWER_OF_5_P
SPECIES Thundurus 3380 70 FLYING POWER_OF_5_P
SPECIES Landorus 3390 70 FLYING NONE

to

SPECIES Tornadus 3370 70 FLYING POWER_OF_5_P
SPECIES Thundurus 3380 70 ELECTRIC POWER_OF_5_P
SPECIES Landorus 3390 80 GROUND POWER_OF_5_P

Thank you.

P.S. adding this modification in config/species.txt does not work.

coeusite commented 8 years ago

As a temporary solution, adding RESOURCE SPECIES config/species.txt to config/paths.txt, and adding modified species.txt to the jar package: ShuffleMove.jar/config/species.txt

Loreinator commented 8 years ago

This is already done locally in my dev environment, it will be going in with 0.3.40 which as I mentioned on Tuesday should be coming out before I go to bed tonight. See here

For temporary solutions, you don't need to make such radical changes. Just modify the config/species.txt file which is already referenced in the default paths.txt file

FILE SPECIES config/species.txt

coeusite commented 8 years ago

Thank you!

However, modifying config/species.txt does not work for my friend (Win) or me(Linux) (there is no error in the log, though).

Loreinator commented 8 years ago

Really? Are you sure you were modifying the correct location? To find the location it uses, hit Ctrl-B and a popup with a zip will appear. Go up one level and there should be a config folder there. Go into it and that species.txt should be the one you want.

coeusite commented 8 years ago

SKIP THIS COMMENT...

The following test is based on a clean installation of the latest ShuffleMove.

Here is /home/*/Shuffle-Move/config/path.txt

RESOURCE PREFERENCES config/defaults/preferences.txt
RESOURCE SPECIES config/defaults/species.txt
RESOURCE STAGES config/defaults/stages.txt
RESOURCE STAGES_MOBILE config/defaults/stages_mobile.txt
RESOURCE ICONS config/defaults/icons.txt
RESOURCE HELP_FILE docs/help.html
RESOURCE ABOUT_FILE docs/about.html
RESOURCE BUGS_FILE docs/bugs.html
RESOURCE UPDATE_FILE docs/update.html
RESOURCE EFFECTS config/defaults/effects.txt
RESOURCE EFFECTS_MOBILE config/defaults/effects_mobile.txt
RESOURCE GRADING_MODES config/defaults/gradingModes.txt
FILE PREFERENCES config/preferences.txt
FILE SPECIES config/species.txt
FILE STAGES config/stages.txt
FILE STAGES_MOBILE config/stages_mobile.txt
FILE ICONS config/icons.txt
FILE TEAM config/teamsData.txt
FILE ROSTER config/rosterData.txt
FILE BOARD config/boards/board.txt
FILE GRADING_MODES config/gradingModes.txt
STRING TYPE_PATH_FORMAT img/types/%s.png
STRING DEFAULT_BOARD_STAGE_CONFIG config/defaults/boards/%s.txt

Here is /home/*/Shuffle-Move/config/species.txt for test

SPECIES Regigigas 3540 100 NORMAL NONE

Obviously, it does load the modified config/species.txt. However, Regigigas still has 90 atk-power with Hyper-Punch skill in ShuffleMove. snapshot

Here is logs in console:

[*@* Shuffle-Move]$ bash launch.sh
libpng warning: iCCP: known incorrect sRGB profile
[Dec 11, 2015 12:17:01 PM] [FINE] /home/*/Shuffle-Move/config/icons.txt (No such file or directory)
[Dec 11, 2015 12:17:02 PM] [FINE] /home/*/Shuffle-Move/config/gradingModes.txt (No such file or directory)
[Dec 11, 2015 12:17:02 PM] [FINE] /home/*/Shuffle-Move/config/stages.txt (No such file or directory)
[Dec 11, 2015 12:17:02 PM] [WARNING] No such file available: /home/*/Shuffle-Move/config/boards/board.txt
[Dec 11, 2015 12:17:02 PM] [FINE] /home/*/Shuffle-Move/config/teamsData.txt (No such file or directory)
[Dec 11, 2015 12:17:02 PM] [FINE] /home/*/Shuffle-Move/config/rosterData.txt (No such file or directory)
[Dec 11, 2015 12:17:02 PM] [INFO] Welcome to ShuffleMove v0.3.40!
[Dec 11, 2015 12:17:02 PM] [FINE] Result set: null
[Dec 11, 2015 12:17:02 PM] [FINE] New message is: No Move: 
[Dec 11, 2015 12:17:02 PM] [INFO] Simulation Started.
[Dec 11, 2015 12:17:02 PM] [FINE] Preparing board, moves & feeder
[Dec 11, 2015 12:17:02 PM] [FINE] Making tasks, prep took 1ms
[Dec 11, 2015 12:17:02 PM] [FINE] Getting results, init took 0ms
[Dec 11, 2015 12:17:02 PM] [FINE] Returning best results, the decision took 0ms
[Dec 11, 2015 12:17:04 PM] [INFO] Program is up to date. Newest version is v0.3.40 and your current version is v0.3.40.
coeusite commented 8 years ago

All right, I think I know what happened...

This config/species.txt does work:

LONG BUILD_DATE 1449796329325
STRING VERSION v0.3.40
SPECIES Regigigas 3540 120 NORMAL NONE

But this one doesn't:

SPECIES Regigigas 3540 120 NORMAL NONE

I probably used a species.txt with a wrong VERSION / BUILD_DATE.

Anyway, thank you!

Loreinator commented 8 years ago

Ahhh I see what happened - The version you were providing was interpreted as 'obsolete' compared to the version it was using. I'll take a look at the code that handles obsolete configs just to make sure its a < and not a <=.

Edit: Yup, working as intended it seems: https://github.com/Loreinator/Shuffle-Move/blob/master/src/shuffle/fwk/config/ConfigManager.java#L188

If and only if the config/*.txt file has either an older version or an older build date will it overwrite it. By leaving out the version entirely it assumes that your config predates the v0.3.14 release back on August 6th.

coeusite commented 8 years ago

Gotcha. Thank you!

I will use this one to force it working in future.

LONG BUILD_DATE 9999999999999
STRING VERSION v0.9.99
Loreinator commented 8 years ago

Hey, if you want a version that will be the maximum version possible, you could go with something absurd like this:

LONG BUILD_DATE 9223372036854775807
STRING VERSION v2147483647.2147483647.2147483647

Basically, the way it works is that the date in millis since epoc is the first value, so max java long is the highest it could ever be. String version, is matched via regular expression to this:

v(\\d+)\\.(\\d+)\\.(\\d+)

So, we can just put the max integer there, which is 2147483647

This would be the ideal 'hack' time stamp and version number for this kind of purpose. This hack should work for the next 292 Million Years. Hopefully by then whomever is maintining this program will have access to another system for time stamping that isn't limited to 64 bit signed integers.

coeusite commented 8 years ago

(:З」∠) On Sun, Dec 13, 2015 at 12:16 Andrew Meyers notifications@github.com wrote:

Hey, if you want a version that will be the maximum version possible, you could go with something absurd like this:

LONG BUILD_DATE 9223372036854775807 STRING VERSION v2147483647.2147483647.2147483647

Basically, the way it works is that the date in millis since epoc is the first value, so max java long is the highest it could ever be. String version, is matched via regular expression to this:

v(\d+).(\d+).(\d+)

So, we can just put the max integer there, which is 2147483647

This would be the ideal 'hack' time stamp and version number for this kind of purpose.

— Reply to this email directly or view it on GitHub https://github.com/Loreinator/Shuffle-Move/issues/96#issuecomment-164278363 .