An Automation UI for Kittens Game written in Elm.
The script is still in early development, right now you can automatically:
- Gather Catnip(fixed at 10 clicks/sec atm)
- Build Buildings When Resources >= 90% of Max(for buildings that don't require craftable resources)
- Craft Items Using 20% of Available Resources
- For Capped: When Resources >= 90% of Max
- For Uncapped: When Resources >= 1000% of Price
- Observe Astronomical Events
- Send Your Hunters when at Max Catpower
- Praise the Sun when at Max Faith
TODO:
- Fix building automation when button not displayed
- Fix parsing of JSON for buildings with multiple stages
- Craft multiple recipes with non-overlapping ingredients at once
- Population management
- minimum amount of farmers to never starve
- rebalance in cold winter or whenever catnip production is negative?
- always max engineers
- sliders to control distribution percentages
- minimum amount of farmers to never starve
- Configurable catnip click rate
- Configurable resource current/max ratios for auto building & crafting
- Configurable crafting amounts or percentage of current resources to use
- More auto crafting/building options
- Automated trading
- Auto research
- Fullscreen button, turns panel into large modal window(when lots of UI options)
- Refactor Ports(click link, click building button, click craft button)
- Refactor Options/Messages
- Maybe use Dict for options so we can represent options w/ strings instead of attributes
- Allow options migrations(so different set of options don't clear previous choices)
- Figure out buying strategy for resources with no cap
- Something like when cost is 10% of current?
npm i
git submodule update --init
cd game/
# Add `<script src='http://localhost:7000/app.js'></script>` to index.html
python -m http.server 8080 &
xdg-open http://localhost:8000 &
cd ..
webpack watch
To load the script manually, run the following in devtools console:
var script = document.createElement('script');
script.setAttribute('src', 'http://localhost:7000/app.js');
document.head.appendChild(script);
Eventually, the script should be auto-built and pushed to github pages.