abesto / ams2-career Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://ams2-career.abesto.net
License: The Unlicense
Home Page: https://ams2-career.abesto.net
License: The Unlicense
Describe the bug
When cross-discipline is unchecked, no XP is gained anymore.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
XP are gained after recording a race for this discipline, but not for any other disciplines.
After reaching Grade A, it could be a good idea to complete the grade (i.e. master the discipline) in one of two ways:
Possibly, we may want this behavior to be toggle-able in Settings - but then again, maybe this is actually too granular a control to be useful for real players.
The XP needed to "level up" is currently manually defined for each discipline (in xp_grade_breakpoints.csv
). This is somewhat susceptible to human error each time we tweak things, and adds another thing we need to consider when new content is added.
It'd be great if, instead, we had a way to define these breakpoints with a formula that takes simple inputs.
It would definitely need to take as input some "difficulty" measure of the discipline (i.e. a linear function). There's a chance this is the same (or at least closely related to) the "prestige" multiplier, currently stored in xp_prestige.csv
. Or maybe, we want / need a second degree component (i.e. x + y*y
).
Description:
There seems to be a bug, at least at karting series.
When you record a result in grade A (even it is 1st place) the "A" in the path is not replaced by a checkmark symbol.
Maybe also same behaviour for other series, not tested yet.
Grade A for karting series was unlocked without driving any karting series, but gaining enough XP from driving other series.
Also, licensing
Think: Google Drive, Dropbox, etc
Including:
Actual AI strength at the same numeric AI level is known to vary across classes / cars. We could crowd-source collecting adjustments that'd get transparently applied to the recommended AI levels.
Ideally this would be transparent, data would be collected through the app (which assumes that some backend service exists, unlike today)
Including but not limited to
Maybe
Hi,
here is an optional very low priority feature request:
What do you guys think about a switch to enable/disable gaining XP also for other series when recoding a race result of a specific series?
In its currect state, you also gain some amount of XP for series you did not drive, every time a race result is recorded.
As side effect you climb up the ladder of a series, even if you never have driven a single race of this series.
Maybe when a new career is started, there is an option for enhanced XP earning. Maybe scale up the XP earning values to 1.5X the normal? Allows players to progress a little quicker so they can re-run careers and compare them. (Maybe only I'm that type...) You could call it "Second Generation Driver Mode", since most 2nd gen drivers are spoiled brats who progress more easily than others, IMO. :)
Original request: https://www.racedepartment.com/threads/ams2-career-web-based-app-release.231392/post-3617260
Code pointers:
This should be very similar to the flat XP multiplier.
At first glance, this can take one of two forms:
Could we add a quick 1 or 2 page tutorial when a career is new or was just reset? I think most of the content could come from the wiki, so someone could at least know what we're doing without the extra step. Here's what it could read:
Page 1
Welcome to the Automobilista 2 Career Simulator!! From here you can record your career through the world of AMS2.
On the Go Racing tab, you can review your list of potential offers. While you start at the lowest levels of each motorsports discipline, you gain XP for each race in which you participate.
The right of the dashboard will display your current progress in the selected discipline as well as the suggested settings to be used in the race.
Note on the AI strength: one of the goals of this simulator is ensuring that you have fun and competitive races. You do not need to win every race at 101 AI level to progress!! (Just pretend your father owns a fertilizer company and helps you move up the ladder...) If you find you need to bump the AI up (or down) to get a fair challenge, then you can log those adjustments into the simulator to ensure that future races are better calibrated. You can apportion that increase (or decrease) to ALL cars, one DISCIPLINE, one CLASS, or one CAR, whichever you think best represents the AI balancing needed.
Also note that the simulator will compare your result to the AI level and adjust it for further balancing in that car. These adjustments are per car, so use the "Global" adjustment to have future offers reflect a better starting AI level.
Go to Enter Results
Page 2
When the race has been completed and the champagne (or tears) has dried from your overalls, enter into the simulator the car your drove and the result achieved.
The model will analyze your performance and the car in which it was achieved and will calculate and apply XP points across all disciplines (but most effectively in the discipline raced).
The Career tab will display your statistics and progress across all disciplines, as well as a full race log for reference.
Also, you can export your career save to protect it against accidental loss. Or to transport to another computer, browser, or device (did we mention this works on tablets and phones!?).
Pro tip: Don't forget to take advantage of AMS2's brilliant weather and day/night progression system by altering the session conditions in game.
Good luck and be safe!
Some badges may be "licenses", others may be hard challenges (like "win X races in discipline Y with AI over 95").
Since achievements are only earned when a race is finished, display a message about newly unlocked achievements on the race result dialog.
Show locked and unlocked badges on the top of the Career page.
Maybe hard-code some values by discipline. Maybe crowd-source.
Add Total Career Header on the Career page showing total race starts, total wins, podiums, average finishing position and average AI across all cars and disciplines
https://mui.com/material-ui/guides/minimizing-bundle-size/ says recent build systems support tree shaking, so we should be able to
import { Button, TextField } from '@mui/material';
instead of
import Button from '@mui/material/Button';
import TextField from '@mui/material/TextField';
Currently we only show a grade-up message for the discipline the race was run in. Due to cross-discipline XP gains, it's possible to grade up in multiple disciplines with a single race. Would be nice to show a message for each.
Code pointer: src/app/pages/MainPage/components/RaceResultFeedback.tsx
After there have been unsaved changes.
Currently the version last seen is stored as part of the game save data, which means uploading a save from an older version of the app triggers a changelog popup. Not the end of the world, but this shouldn't happen.
The most direct way to fix this is probably to add special-casing in src/store/saveload.ts
, in both the save
and the load
functions, such that the last seen version is pulled / pushed into Redux state on load / save, but is stored in a separate local storage item.
Since #41 was fixed, we have the machinery needed to show milestones next to each race in the logbook. Currently this is only grade-ups, but later it can include achievements.
More involved version of #19
The default "Group By Location" in-game actually groups by location / city. Most of the time the city is a prefix of the name of the circuit, but not always. For example under Granja Viana we have both "Copa Sao Paulo Kart Stage 2" (note the complete lack of "Granja Viana" in the track name) and "Granja Viana Kart 101". Unfortunately this means the current Track / Configuration setup we have is basically broken. By "broken" I mean that from "Copa Sao Paulo Kart Stage 2" there's no way in the game to find out that it's hidden under "Granja Viana".
My best idea is to transition to a Location / Configuration setup.
Might make screen real estate tight, but it might be nice to see what grade the offer is for.
Let's add a field to the race setup section for "Opponents". By default we'll have "same class". Let's then define a dedicated dataset: a list of multiclass configurations. Each multiclass configuration is a set of classes. Any class may only be part of a single multiclass configuration. Whenever the race is in a class that's part of a multiclass configuration, we'll show the player on the race setup section which classes to set opponents to.
Alternatively, we could define multiclass configurations as:
Depends on #4
DropLocalStorageOnErrorBoundary
; add text sending people here to report issues with the latest backup attachedThe current UI is born from a non-designer non-frontend-engineer slapping MUI components on a page. The current UX is the same non-UX person doing his best. Make it better?
redux-injectors
warning " > [email protected]" has incorrect peer dependency "react@^16.6.0 || ^17.0.0".
warning " > [email protected]" has incorrect peer dependency "react-dom@^16.6.0 || ^17.0.0".
warning " > [email protected]" has incorrect peer dependency "react-redux@^7.1.0".
Will possibly be resolved in react-boilerplate/redux-injectors#34
react-scripts
-> svgr
: facebook/create-react-app#11780warning react-scripts > @svgr/webpack > @svgr/plugin-svgo > [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.
react-scripts
->workbox-webpack-plugin
: didn't find a tracking issue, maybe it'll be bumped with 5.0.1
warning react-scripts > workbox-webpack-plugin > [email protected]: See https://github.com/lydell/source-map-url#deprecated
warning react-scripts > workbox-webpack-plugin > workbox-build > [email protected]: See https://github.com/lydell/source-map-url#deprecated
plop
warning plop > liftoff > findup-sync > micromatch > snapdragon > [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
warning plop > liftoff > findup-sync > micromatch > snapdragon > source-map-resolve > [email protected]: https://github.com/lydell/resolve-url#deprecated
warning plop > liftoff > findup-sync > micromatch > snapdragon > source-map-resolve > [email protected]: Please see https://github.com/lydell/urix#deprecated
These are resolved in plop>=3
, but .ts
there is fairly hard to use. Revisit after plopjs/plop#297 is resolved.
Congratulations! You have been upgraded to Grade A in Vintage!!""
""With that result you've earned xxx XP in Vintage.
Congratulations!
You have been upgraded to Grade A in Vintage!!
You have been upgraded to Grade B in Touring!!""
In code / data, XP figures are 100x lower than what we display on the UI. This kinda happened organically, there's no good reason for it. Let's bump the XP in code / data 100x (taking care to add in a migration for existing careers).
Having to input each race option into AMS2 is kind of a pain. After about 30 mins of looking around, I think the race setup is stored in %userprofile%\documents\Automobilista 2\savegame\[some numeric id]\automobilista 2\careersaves\.sav
, but that's a binary file I failed to analyse.
In practice, this would probably take the shape of "download this file and stick it in the right place"; I don't think AMS2 actually exposes a runtime API.
I guess one could also experiment with faking inputs and setting up the app that way (possibly based on some exported data from the app).
Depends on #4
... to the ones that actually have accents in game. Not just at random :D
This is not completely trivial because currently internal track IDs are generated as $trackname-$configuration
. This means changing the track name changes the ID, which means we have to either
Now that the erstwhile F-Classic G3 has been relabeled to G4 and there is a new G3 class, any chance the Open Wheel career can be updated? Thank you!
Add a simple way for players to manually adjust an AI offset (positive or negative) that gets added on top of the AI level calculated based on previous races. Should serve as a baseline "player skill level" adjustment, especially useful when moving between classes.
Describe the bug
I got given Jacarepagua Kart Three as a karting track, but no such track exists in the game.
Expected behavior
Only valid tracks in the game should be shown
Additional context
I believe from the data files that the tracks should be Interlagos Kart 1-3
I've spent about an hour spelunking in the game files, and failed to find where the list of user-readable track + car names live.
We'd have to generate the lists "manually", and still ship data with the app as we currently do.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.