Simulator for Inventory Slot Transfer in BOTW
Visit the app at https://ist.itntpiston.app
Notice
Bug fixes and improvements for the current simulation core will not be continued because of the intrinsic difficulty with the core to accurately simulate the remaining cases. A rewrite of the core is actively being developed and should be expected to be ready by June 2025
Contributions are welcomed. For small issues, you can open PRs directly. For big issues contact me on discord (username: Pistonight)
task is recommended to run provided scripts. You can also look at Taskfile.yml
and run the scripts manually.
Node v18 and Python 3 are required.
Run task install
to install dependencies
Run task dev
to start vite dev server. Some features require secure context.
The dev server is configured to look for cert/cert.pem
and cert/cert.pfx
for HTTPS certificates.
The simulator uses a LL parser with infinite look ahead to generate an Abstract Syntax Tree from which commands are parsed.
The grammar is at src/core/command/ast/grammar.txt
and the ast parser is generated with npm run generate
(Python needed)
If you want to introduce new commands, most of the heavy lifting for the parsers is already done. You should be able to define a new derivation in the grammar and implement the parser by looking at one of the parse.cmd.*
files. However, you should probably contact the maintainer to have a discussion about the new command.
Run task test --watch
to run tests in watch mode
Run task check
and task test
before PR.