Coder Social home page Coder Social logo

unitcrunch-issue-tracker's Introduction

UnitCrunch issue tracker

UnitCrunch.com is an online "MathHammer" calculator for games like Warhammer 40k.

This repo serves as an issue tracker for UnitCrunch.

UnitCrunch is not currently open source software, there's no source code here.

Shortcuts

Link Description
Open issues All currently "open" issues.
Issues in development Issues in development for the next minor release.
Milestones Upcoming release milestones. See what's included and track progress.
Open issues labelled "discord vote option" Issues that can be voted for in Discord polls when they're run. The issue with the most votes is included for development (next minor release).

Related links

Link Description
Patreon Support the project, get access to the private Discord server, vote for issues to be developed and other guff.
korzxd's data exports Contributed data exports for you to play with.
r/UnitCrunch Reddit community.
unitcrunch.com/changelog Changelog.
unitcrunch.com UnitCrunch itself. Nerd-out over MathHammer, stats & charts.

unitcrunch-issue-tracker's People

Contributors

dixhuit avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

unitcrunch-issue-tracker's Issues

Remove various redundant preset modifiers

Some preset modifiers could now be considered redundant or certainly less useful than they once were. Let's remove these where possible or otherwise move them to be internal test-only modifiers where tests rely on them.

Example:

"Wound roll of 6 (unmodified) : 1 mortal wound (max 6)"

This would typically now be an effect that was triggered by a crit (however that crit might be achieved) rather than specifically an unmodified 6.

Run update process in a separate thread

The progress bar can hang if there’s a lot of migrations to run during an update. Running this process in a web worker should keep the progress bar looping smoothly while the update runs.

This needs to be sorted before we can consider increasing the max number of profiles that a user can store in their browser.

Retain relevant values when switching between profile input forms

Currently, if you start adding a new profile from the /manage-profiles page, you get the option to choose from all of the possible input forms available, defaulting to "All":

image

If you start to populate this form and then, before hitting "Save", change your mind and switch to another form (say "Defender") then you lose all of your previous values as the form initialises. This will happen whenever you switch from one form to another.

There are technical reasons for this that I won't go into here but the UX could definitely be improved with some effort.

Consider tackling #34 first.

"PSYCHIC" weapon support

Add a weapon ability effect that adds the PSYCHIC USR and a condition that tests for its presence.

https://www.reddit.com/r/UnitCrunch/comments/16kjkky/psychic_usr/

I feel that there are enough weapons and abilities that deal with the Psychic USR for weapons and defensive options to warrant including these tags, especially when oftentimes units with those USRs have that option mixed in with non-psychic weapons that interact differently with a unit's loadout options.

A good example of this is something like a Farseer embedded in a unit of Guardian Defenders shooting at a unit of Necron Warriors in range of a Canoptek Spyder's Gloom Prism aura; the Warriors would get a 4+++ against the Farseer's Eldritch Storm and Singing Spear / Witchblade attacks, but not against the Guardians' Shuriken Catapults, Heavy Weapons Platform, and Close Combat Weapons, nor the Farseer's Shuriken Pistol.

Support units with >1 model type (e.g. Champions)

E.g:

  • Marines with a Sergeant.
  • Skitarii with an Alpha.
  • Boyz with a Boss Nob.
  • etc...

I guess this mainly concerns profiles in the defender role given that things like BS & WS are weapon characteristics now.

Note that I'm not talking about attaching units here (e.g. Leaders) though the changes required in this issue will pave the way for that according to the plan I have in mind.

Add FAQ: Importing data from Battlescribe, New Recruit, Rosterizer, Wahapedia etc

I get asked about this a lot, could do with an FAQ to point people to in order to save my little fingers.

Here's a recent comment I left on Reddit answering this very question (OP was specifically talking about New Recruit):

I get asked this a lot, I really must add a new FAQ!

Technically it's possible. It wouldn't be too tricky to write a New Recruit roster to UnitCrunch profiles parser that just covered basic stats (e.g. unit name, characteristics, weapon stats). Adding support for common USRs would be a step up in complexity (e.g. TORRENT, SUSTAINED D3, STEALTH etc). Adding support for all the other weird & wonderful modifiers that UnitCrunch can support would be very tricky & tedious as the way they're expressed in New Recruit / Rosterizer / whatever is likely to be unstructured & inconsistent.

The other thing is that UC's profile & modifier schemas are still under heavy development so any such parser would only work for a few weeks before it needed updating again. I'd certainly consider attempting such a thing once UC's schemas are more stable.

New modifier effect: "Substitute roll for specific value" (Fate Dice etc)

Switch Localstorage to IndexedDB

Problem

Unitcrunch is currently using LocalStorage as the database format for the unit profiles.
The max. 200 profile limitation is quite a big obstacle for hardcore users.
It would be great if there would be no limit.

Solution

Checking the LocalStorage I doubt the max. limit of 10MB is even reached with the 200 profiles right now but to make it absolutely future ready, the solution would be to switch to the Indexed DB API: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API
Since I did a transition in one of my apps, I can give motivation that it is easier than it looks first.

With that transition to Indexed DB no limit would be needed anymore.
This can then open up possibilities that free users can only use X profiles and Patreons unlimited.

Additionally an automated profile import from the BSData can be made: https://github.com/BSData/wh40k-10e
Patreons can then select in a dropdown what faction they want to import, e.g. Necrons, and you parse the JSON from BSData and the relevant profiles and import it automatically to Unitcrunch.

Or load up all the faction .cat files in the background and the import/export can be removed all together.
Users can always search for the latest profile they want to crunch. Use the indexed DB just for personal profile customizations.

That's my wish for 2024 and I'm sure the biggest Patreon boost you can get :)
Happy New Year.

Misc. dice stats

Original request: https://www.reddit.com/r/UnitCrunch/comments/18bnv2i/how_about_some_dice_statistics/

It may be useful to have some tool or tables to see stuff like how hard is to get my 10 inch movement unit with advance and charge to travel certain distance, or how good is to re-roll desperate breakouts. It may be easy to find some info or pages that tells you about % to get 7+ on two dices for example, but things like re-rolls, or how often you roll two dices and both get in the same range, like in the re-roll desperate breaks for example... how good or bad are my chances?

Would need some planning as it doesn't really fit with the UC has offered to date but I do think something like this could be interesting & useful if done well.

Merge "Attacker: Melee/Ranged" profile edit forms

40k 10E has lead to UC's "Attacker: Melee/Ranged" profile edit forms being pretty much identical. Let's merge these in a way that simplifies the UI but let's internally keep the door open for a return to distinct attacker forms in case things change again in a near future edition.

Spot the difference:

Attacker: Ranged
image

Attacker: Melee
image

Import not working as intended

Describe the bug
Import button in the import overlay menu does nothing when Add to existing data is checked. Replace existing data still works as intended.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Manage profiles
  2. Click on Import
  3. Click on Select file
  4. Choose file
  5. Click on Import
  6. See error

Expected behavior
To import.

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Firefox 120.0.1

Profiles with ranged & melee weapons can show an empty "Abilities" column

Describe the bug
A selected attacker profile can end up displaying an empty "Abilities" column for a weapon if the conditions are just right (weapons & weapon abilities).

To Reproduce

  1. Create a profile with one ranged weapon & one melee weapon.
  2. Add an ability to the ranged weapon.
  3. Select the profile to be the attacker and switch the "Attack type " to "Melee".

Expected behavior
There should be no "Abilities" column for the listed melee weapon.

Screenshots

Melee:

melee

Ranged:

ranged

Switch from Firebase to Supabase for backend functions & database

UC currently uses Firebase for backend functions and a database to provide a basic bug reporting system (the front-end for this can be found at https://www.unitcrunch.com/send-debug-data).

Switch from Firebase to Supabase and replicate this functionality. I intend to add more backend functionality in the future but prefer the look of Supabase as a platform (it's open source, I prefer the pricing model, the database looks better for UC's future needs).

Support re-rolling the number of attacks

Under the "Re-roll" effect I'd need to add an "Attacks" option to the "Application" select list. I'd also need to only allow "Result range" as an option in the "Result to re-roll" select list (might as well preselect it in this case).

Change UI library

UC currently uses Vuetify 3. The upgrade path from v2 to v3 was horrendous and I just don't trust the project any more - especially if we want to move to Nuxt.js in the future (very likely).

While upgrading to v3 I did quite a few experiments with PrimeVue which is easily the most promising alternative for UC's requirements. Many of those experiments can be finished off and brought over - I'll "just" need to finish of the remainder...

This will result in some minor changes to look & feel here & there. I don't have the time to fight this too hard so I'm just gonna go with the path of least resistance within reason. Either way, UC remain dark by default.

Exception on range?

Describe the bug
For no reason I don't get ranged weapons stats for this model. See screenshot please:

To Reproduce
Steps to reproduce the behavior:

  1. Knight Valiant against anything in range
  2. Nothing happens. See screenshots.

Screenshots
image
image

Desktop (please complete the following information):

  • OS: [e.g. iOS] Windows 11
  • Browser [e.g. chrome, safari] Vivaldi
  • Version [e.g. 22] latest

Once disabled, a modifier alias can not be re-enabled

Describe the bug
Once disabled, a modifier alias can not be re-enabled.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new weapon ability.
  2. Select the "Special" effect.
  3. Select the "Blast" option.
  4. Disable the modifier alias by clicking the checkbox next to "Alias: BLAST".
  5. Try to re-enable the alias by clicking the checkbox again (it can't be checked).

Expected behavior
The alias should be re-enabled and the checkbox should be checked.

Result range hit re-rolls not working

Tried to keep it simple for the big report.

  1. Added a ranged weapon with sustained 2
  2. Added re-roll hits of 1–5 to the unit.
  3. It returns undefined for the range and doesn’t affect the results.

IMG_2805

I’ve tried it both on my Mac and iPhone.

Attacker & Defender entity select inputs should be buttons not text inputs

"Entity select inputs" are marked in red here:

image

I think these should be swapped for buttons labelled something like "Saved profiles" or similar. The name of the profile is already repeated twice within each relevant expanded panel, we don't need it repeated a third time and we'd get a bit of space back:

image

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.