Giter Club home page Giter Club logo

botwrando's Introduction

botwrando's People

Contributors

dependabot[bot] avatar nihonjinrxs avatar teetow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

botwrando's Issues

Un-friendly seed generator

Returns masochistic seeds; early eventide, harder ToS's first, etc.
Creates a satisfying endgame, as you're able to blast through easier shrines with high-level equipment.

Increase test coverage

Recent coverage report:

------------------------------|----------|----------|----------|----------|-------------------|
File                          |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
------------------------------|----------|----------|----------|----------|-------------------|
All files                     |    62.53 |    44.74 |    53.04 |    65.45 |                   |
 src                          |        0 |        0 |        0 |        0 |                   |
  index.tsx                   |        0 |      100 |      100 |        0 |              6,11 |
  serviceWorker.ts            |        0 |        0 |        0 |        0 |... 39,140,142,145 |
 src/components/App           |      100 |      100 |      100 |      100 |                   |
  App.tsx                     |      100 |      100 |      100 |      100 |                   |
 src/components/AppFooter     |      100 |      100 |      100 |      100 |                   |
  AppFooter.tsx               |      100 |      100 |      100 |      100 |                   |
 src/components/AppHeader     |      100 |      100 |      100 |      100 |                   |
  AppHeader.tsx               |      100 |      100 |      100 |      100 |                   |
 src/components/FormattedTime |      100 |    93.33 |      100 |      100 |                   |
  FormattedTime.tsx           |      100 |    93.33 |      100 |      100 |                22 |
 src/components/Help          |     62.5 |    66.67 |    33.33 |     62.5 |                   |
  Help.tsx                    |     62.5 |    66.67 |    33.33 |     62.5 |          15,69,70 |
 src/components/HotkeyList    |      100 |      100 |      100 |      100 |                   |
  HotkeyList.tsx              |      100 |      100 |      100 |      100 |                   |
 src/components/QuickMap      |      100 |       75 |      100 |      100 |                   |
  QuickMap.tsx                |      100 |       75 |      100 |      100 |                14 |
 src/components/RunDisplay    |      100 |      100 |      100 |      100 |                   |
  RunDisplay.tsx              |      100 |      100 |      100 |      100 |                   |
 src/components/RunManager    |    37.08 |    14.29 |    24.14 |    43.84 |                   |
  RunManager.tsx              |    37.08 |    14.29 |    24.14 |    43.84 |... 22,165,166,167 |
 src/components/RunTimer      |    41.94 |     5.56 |       50 |    44.44 |                   |
  RunTimer.tsx                |    41.94 |     5.56 |       50 |    44.44 |... 39,40,42,43,53 |
 src/components/SeedInfo      |      100 |      100 |      100 |      100 |                   |
  SeedInfo.tsx                |      100 |      100 |      100 |      100 |                   |
 src/components/SeedPicker    |       75 |      100 |    33.33 |       75 |                   |
  SeedPicker.tsx              |       75 |      100 |    33.33 |       75 |             13,19 |
 src/components/ShrineInfo    |    81.82 |       50 |      100 |      100 |                   |
  ShrineInfo.tsx              |    81.82 |       50 |      100 |      100 |          24,28,29 |
 src/components/SplitHistory  |    41.67 |        0 |     37.5 |    42.86 |                   |
  SplitHistory.tsx            |    41.67 |        0 |     37.5 |    42.86 |... 47,48,49,51,60 |
 src/components/SplitTimer    |    80.95 |    64.29 |      100 |    94.44 |                   |
  SplitTimer.tsx              |    80.95 |    64.29 |      100 |    94.44 |                37 |
 src/components/WorldMap      |    46.67 |       25 |       25 |    46.67 |                   |
  WorldMap.tsx                |    46.67 |       25 |       25 |    46.67 |... 16,17,18,23,40 |
 src/lib                      |      100 |     97.5 |      100 |      100 |                   |
  keyboard.ts                 |      100 |       90 |      100 |      100 |                94 |
  rando.ts                    |      100 |      100 |      100 |      100 |                   |
  run.ts                      |      100 |      100 |      100 |      100 |                   |
  shrines.ts                  |      100 |      100 |      100 |      100 |                   |
  time.ts                     |      100 |      100 |      100 |      100 |                   |
  utils.ts                    |      100 |      100 |      100 |      100 |                   |
------------------------------|----------|----------|----------|----------|-------------------|

add testing setup & CI

Need to get setup to start writing tests for this code, as well as automated CI for testing, coverage and build upon commit. I'm working on a PR for this now.

Warpless-friendly seed generator

To prevent endless criscrossing when running warpless, generate a seed that puts a cap on distance between adjacent shrines.

  • After seed generation, grab the 20 shrine pairs with the longest distance, and try to optimize their distances. Insert fancy algorithm here.

Ability to share specific seeds

Likely easiest way is via URL parameter. Something like:

https://botwrando.github.io/botwrando?seed=asfhasgasfhsdfhsdf35473

Speedrunner-friendly seed generator

Speedrunners have certain additional tools at their disposal, so we can generate seeds which leverage their skills for more entertaining runs.

  • Relax the Eventide restriction to be from shrine 30 onward. They can handle it.
  • Ensure Myahm Agana (shrine 39) is within the earliest 20 shrines to make heart / stamina duping more relevant to the run.
  • When used in conjunction with the Warpless-friendly generator, exclude shrine 39 so it doesn't get shuffled out.
  • Disable the quest-related restrictions if used in conjunction with the Casual-friendly generator. These folks can clip into anything.

yarn build shows warnings

When you build the app, it shows a number of fixable warnings. It would be a good idea to fix them. I can put in a PR for this once testing is setup.

yarn build --production
yarn run v1.17.3
$ react-scripts build --production
Creating an optimized production build...
Compiled with warnings.

./src/components/SplitTimer/SplitTimer.tsx
  Line 26:7:  '_NotStarted' is assigned a value but never used  @typescript-eslint/no-unused-vars
  Line 27:7:  '_Paused' is assigned a value but never used      @typescript-eslint/no-unused-vars

./src/components/RunTimer/RunTimer.tsx
  Line 61:5:  React Hook React.useEffect has a missing dependency: 'onUpdatePausedTime'. Either include it or remove the dependency array  react-hooks/exhaustive-deps

./src/components/RunManager/RunManager.tsx
  Line 88:5:  React Hook React.useEffect has missing dependencies: 'run.shrineIds.length' and 'setRunState'. Either include them or remove the dependency array  react-hooks/exhaustive-deps

Search for the keywords to learn more about each warning.
To ignore, add // eslint-disable-next-line to the line before.

File sizes after gzip:

  45.99 KB  build/static/js/2.793d5e05.chunk.js
  9.03 KB   build/static/js/main.52beccc6.chunk.js
  5.56 KB   build/static/css/main.e6780bc8.chunk.css
  775 B     build/static/js/runtime-main.5ab1b9f3.js

The project was built assuming it is hosted at /botwrando/.
You can control this with the homepage field in your package.json.

The build folder is ready to be deployed.

Find out more about deployment here:

  bit.ly/CRA-deploy

✨  Done in 5.69s.

Casual-friendly seed generator

Expanding upon the "Eventide protection" system, ensure a casual-friendly seed by imposing further constraints:

  • Arrange Tests of strength in cohorts, and distribute them starting from the 30:th shrine.
  • Ensure Eventide is at slot 90 or later
  • Look into any problems with quest-locked shrines that may cause issues if they arrive too early (Hearty Durian lady shrine, the Roscoe shrine, etc)
  • Your idea here?

Resetting the run should remove the blood moon shrine from the shrines list

Currently, when you do a run and add the blood moon shrine into the run before resetting, the shrines list will still contain the blood moon shrine in the same position when the run is restarted.

I found this by adding it earlier the second time, resulting in it showing up twice during the run.

The blood moon shrine should be removed from the shrines list upon reset.

Tetris-like queue

Show a queue of the n upcoming shrines

Bonus: "Hold shrine" just like hold piece

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.