Giter Club home page Giter Club logo

starfield-digipick-solver's Introduction

Starfield Digipick Solver

A tool for solving the Digipick lockpicking challenges in Bethesda's Starfield.

Try it out here: https://starfield-digipick-solver.atlesque.dev/

How to run

  • Install dependencies: npm i
  • Run dev server: npm run dev

Dependencies

React with Vite, Sass modules and Typescript.

Credits

starfield-digipick-solver's People

Contributors

andrew1431 avatar atlesque avatar paradox460 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

starfield-digipick-solver's Issues

Linting Issues

I'm trying to fix the lint PR but I think we have mismatched linting rules somehow.

What are you using to lint? npm run lint is giving me all sorts of problems after re-applying your lint PR

Add PWA support

Add progressive web app support to allow the site to be used in offline mode and also used as a mobile application.

Enhance Mobile Support on AutoSolver

The auto-solver works on mobile presently, but it's a pain in the ass to click the correct prongs on the Puzzle component.

Here is what I plan to add (not blocking #2):

  • Allow click & drag to line up prong precisely where you mean to
  • Allow to select the layer you wish to edit so that any presses anywhere in the circle will hit that prong on that layer, instead of needing fine-point accuracy on a small device
  • Allow zooming in when selecting preconfigured-keys (aka setting grid from 4, 5, 6, 7, etc... via + / - buttons)

Github Actions Autodeploy Master

We should add a github actions script to auto-deploy our latest master branch to your site!

Have you ever used GHA? They're pretty awesome.

[optional] Add Discord Link?

I created a community discord where we could receive feedback / suggestions, and talk with our users :)

Probably pointless, but I love when this stuff is available.

Feel free to join! https://discord.gg/tE8rJYJ3ae

I'll create us some fancy roles to make us look important lolz.

Also then we could use this issue to add a link to the app? Feel free to let me know if you love or hate the idea :P

* I personally love community communication so if you want me to just take that aspect on it's no sweat from me

`solvePuzzle` Recursion Optimizations

Presently, the auto-solver recursion formula does not exit early when a solution is found, due to a bug that was causing it to exit too early at times, causing a valid puzzle not to be solved.

This means even once the solution is found it continues to test every key possibility.

It also doesn't exit early on paths that it knows it's going to fail.

This usually results in master locks recursing 30k-40k times, which causes a master lock to sometimes take 0.5s-2s to solve, when it should always be instantaneous

Persist state on reload

Persist state on reload so an accidental refresh doesn't reset the state.

Especially useful on mobile, where accidental top-to-bottom swipe reloads the page.

[Feature] Auto Solver

Using this to track my work on the auto-solver!

Implementation Notes:

  • The keys are static: they are from a small set of pre-configured keys.
    • I will create a list of all the keys, and you'll be able to choose from them quickly in succession across all (up to 12) keys.
    • I will create another key component that is the actual puzzle with interactive disabling of key prongs (to configure the puzzle)
    • Will then write a recursion formula to test all key combinations! Probably the hardest part :P
  • Maybe we could then add a feature to generate our own puzzles for fun? :)

Add linter rules

Add eslint rules:

  • Always use braces for if statements
  • React useEffect dependencies
  • Unused imports (if possible)
  • React .map always define key
  • Handle try catch errors

Add firebase tracking

Link Firebase to track user count

Don't forget to add cookie banner indicating we are using it.

Can add banner at the bottom with this text:

By using this site, you agree to send anonymous tracking data to help with development.

And a button Dismiss to close it. Then save this in localStorage so repeat visitors don't see it again.

Add layer filtering for auto-solver

Add layer filtering for the auto-solver solution, so it's easier to solve each layer in sequence, similar to how it's implemented in manual solver:
image

Lint Issue for Puzzle.tsx

The linter broke the puzzle key entry, I think as a result of react dependencies. There were a few I intentionally avoided.

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.