ultratears
Unofficial native Windows port of Tears of the Kingdom 1.4.3 using static recompilation. Builds locally from the player's own extracted game dump; no game files included.
tft simulator for current TFT set
Translation pending
GamesPython · JavaScriptGitHub @carsonhuOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗The site is a static page: it runs this repo's simulator directly in the
browser under Pyodide, with no packages to install on load. stlite.html is
the previous Streamlit-in-the-browser build, kept for the pages the static one
does not cover yet (Mana Generation). Both fetch the same .py files from this
repo, so neither can drift from the simulator the tests exercise.
This is a simulator for Teamfight Tactics. The intent of this project is to develop a way to mathematically determine the value that different items, buffs, augments, anomalies provide to different units in TFT, allowing the user to make more educated decisions during the game.
The sidebar allows you to configure the base settings, and the user can then plot the marginal DPS increase of adding an extra item / buff / augment / anomaly.
Double-click run_app.bat. That is the whole thing.
On the first launch it creates the virtual environment (.venv) and installs
everything; after that it goes straight to starting the app. It also notices
when requirements.txt changes and reinstalls on its own, so you never have
to remember to. The TFT Simulator then opens in your browser.
Double-click setup.bat instead. It does everything above, plus installs the
development extras (pytest, matplotlib) and runs the test suite. After that:
.venv\Scripts\python -m pytest
If you prefer to run commands manually:
Create a virtual environment and install dependencies:
py -3.12 -m venv .venv
.venv\Scripts\python -m pip install -r requirements.txt
Add -r requirements-dev.txt instead if you want the test tooling too.
Run the Streamlit app:
.venv\Scripts\python -m streamlit run app.py
Then navigate to the 'ChampionSelector' page in the app.
The site at the repo root is plain HTML/JS and fetches its Python sources over
HTTP, so it needs a server rather than opening index.html from disk.
Double-click serve.bat. It starts the server and opens the page. Nothing
to install first — serve.py is standard library only, and the site runs the
simulator under Pyodide in the browser, so none of requirements.txt is
involved.
serve.bat REM http://127.0.0.1:8618/
serve.bat 9000 REM a different port
serve.bat 9000 nb REM don't open a browser
It refuses to start when that port already has a server, which matters more than it sounds: Windows would otherwise let the second one share the port, leaving two servers splitting the requests between them: exactly the sort of half-stale page the next paragraph is about.
Or run it yourself:
.venv\Scripts\python serve.py
Then open http://127.0.0.1:8618/. Use this rather than
python -m http.server: that one sends no Cache-Control, so browsers invent
their own expiry and keep serving the files they already have — an edit to a
.py file then doesn't show up no matter how many times you reload or restart
the server, because the browser never asks. serve.py says "revalidate",
which costs a 304 per file and nothing else.