MetaStone is a simulator for the online collectible card game (CCG) Hearthstone® by Activison Blizzard written in Java. It strives to be a useful tool for card value analyzation, deck building and performance evaluation. There is also support for custom cards, allowing users to implement their own card inventions and testing them within the simulator engine. MetaStone tries to re-implement all game mechanics and rules from the original game as accurately as possible.
This is no Hearthstone replacement or clone. Please do not request better graphical effects, sounds or anything which makes it feel more like Hearthstone. There won't be any mode to battle against other human players. This is a tool meant for advanced players; if you just want to play Hearthstone, please play the real game.
metastone-X_Y_Z_jar.zip).Ctrl+Alt+T on Ubuntu) and access ../MetaStone-X.Y.Z/bin../MetaStone.sudo ./MetaStone will execute the file as Root ("Super User"), this is not necessary though.Sure! There is still a lot to do and anybody willing to contribute is welcome
./gradlew rungradlew.bat run./gradlew compileJavagradlew.bat compileJava./gradlew tasks --allgradlew.bat tasks --all./gradlew eclipsegradlew.bat eclipseBuildConfig.java file.File > Import > General > Existing projects into workspaceSearch for nested project checkbox on the Import Projects screen.Eclipse > Window > Preferences > Java > Compiler > Compiler Complience Level to 1.8Eclipse > Window > Preferences > Java > Compiler > Building > Circular dependencies from Error to Warning. There is a known bug with importing multi-module gradle projects into Eclipse. The IDE of choice for working with gradle projects is IntelliJ IDEA../gradlew ideagradlew.bat ideaBuildConfig.java file.File > Open then navigate to the project root dir.build.gradle files. When doing so, you must manually generate the BuildConfig.java file. Otherwise your IDE will complain about unresolved references to BuildConfig.java../gradlew compileBuildConfiggradlew.bat compileBuildConfigmetastone
├── app // Application UI code and resources. Depends on 'game' and 'cards' modules.
├── game // Game source code. Depends on 'shared' module.
├── shared // Shared code between 'app' and 'game' modules.
└── cards // Cards, decks and deckFormat data files.
cards.jar file which contains all the cards, decks and deckFormat data files:./gradlew cards:assemblegradlew.bat cards:assemblegame.jar file:./gradlew game:assemblegradlew.bat game:assemble./gradlew app:assemblegradlew.bat app:assembleThis feature is in very early stages and there is no official support yet. There is no documentation at all. If you really want to start right now, here's how you can start:
- You can build your own cards or modify existing cards without having to fork the project!
- Card files are located in the metastone/cards directory. Use these as reference!
* Linux/Mac OSX ~/metastone/cards
* Windows C:\Users\[username]\Documents\metastone\cards
* You can override the default metastone home dir by setting an environment varialble USER_HOME_METASTONE and specifying a new path.
* You must launch the app at least once for card data files to be copied.
- Any .json files you place in your metastone/cards folder will be parsed and treated like built-in cards.
- To learn the cards format it is highly recommended that you copy an existing card, change the filename and the id attribute (<-- important!) and make small changes.
- Restart MetaStone for new cards to be detected.
- If you are building out official cards or fixing existing cards, you will need to fork the project then make your changes in your repo's metastone/cards/src/main/resources/cards dir. Then open a Pull Request into the project master branch with your changes.
- Make sure to validate that the cards you added are well formed and can be parsed! Run the following command:
- Linux/Mac OSX ./gradlew cards:test
- Windows gradlew.bat cards:test
- The card format is subject to change; cards you create now MAY NOT work in future versions
- In the rare chance that your card files get messed up beyond repair, you can always force the app to overwrite your local card files with the versions distributed with the app in cards.jar.
* Option 1: Delete the ~/metastone dir.
* You WILL LOOSE all your changes, including ALL new files you may have added. DANGEROUS! MAKE A BACKUP!!
* Linux/Mac OSX rm -rf ~/metastone
* Windows rmdir /s C:\Users\[username]\Documents\metastone
* Card data files will be copied in their prestine state after you restart the app.
* Option 2: Edit the ~/metastone/metastone.properties file and update the cards.copied property.
* delete the cards.copied property and save the file
* New files you may have added will NOT be affected.
* All card files that are distributed with the app will be overritten after you restart the app.
./gradlew game:testgradlew.bat game:testsrc/test folder in a given module and select Run All Tests-Dtest.single=[TEST NAME] command line option../gradlew game:test -Dtest.single=SecretTestgradlew.bat game:test -Dtest.single=SecretTestRun Testbuild/reports/tests/index.html for details on the failures$ claude mcp add metastone \
-- python -m otcore.mcp_server <graph>