Giter Site home page Giter Site logo

ac-sim-improvement-mods / ac-rules-and-race-enhancements Goto Github PK

View Code? Open in Web Editor NEW
21.0 4.0 4.0 13.73 MB

Helps Assetto Corsa's F1 simulation be more in line with real life.

License: GNU Affero General Public License v3.0

Lua 98.53% PowerShell 1.47%
racing simulation assetto-corsa sim formula-1 formula-one mod race race-sim race-simulator

ac-rules-and-race-enhancements's People

Contributors

williamgawlik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ac-rules-and-race-enhancements's Issues

[Feature] Weekend tyre allotment and saved tyre wear

Large feature request to add weekend tyre allotment for Practice, Qualifying, and Race sessions. This will include a UI element to show the available tyres, allow selection of the tyres, and show the remaining life in the tyres.

---Sets driven distance used for wear computation.
---@param carIndex integer @0-based car index.
---@param wheels ac.Wheel @wheels to affect.
---@param virtualKm number @driven distance.
function physics.setTyresVirtualKM(carIndex, wheels, virtualKm) end

Update AI forced pitstop logic

Need to update the AI forced pitstop logic to use the new SDK function.

---Controls if AI goes to pits or not.
---@param carIndex integer @0-based car index.
---@param value boolean? @default value: true.
function physics.setAIPitStopRequest(carIndex, value) end

This will help prevent the bug that causes cars to get stuck in a pitstop loop.

[Feature] Override RainFX tyre change and allow for users to designate inter and wet tyres

Currently if the track is wet the AI stays on slicks and is really slow.
They could if the track wetness is at a certain level go into the pits for either Wet or Intermediates tyres.
Right now there's no way for the FH 2022 or the VRC cars to get both Intermediates and Wet tyres at the same time, but you can choose either one of them in ext_config.ini, by changing [TyresPattern_StyleRainF1] to [TyresPattern_StyleIntermediateF1] for intermediate tyres. In CSP the wet tyres are caracterized by WET.
One way to add the extra tyre could be by adding other tyre ids 5 and 6 for the wet tyres and use that in setTyreCompoundsColor but i dont really know how to implement it.

AI unable to leave the pits if they teleported there

AI fuel levels aren't being replenished if they teleport to the pits due to damage or being off track.
Users who have the "Return to race" option in CSP are running into an issue where cars that teleport to the pits, will be unable to return to the race due to their fuel being set to 0.

[Feature] Driver personalities & mistakes

A suggestion to add a similar feature to that found in ISImotor games like rFactor and GTR2. Each driver in a grid is randomly or selectively assigned unique personalities that affect the way they drive on the track:

Typical (default) - Average drivers that behave more like grid fillers than real competitors. This is what all cars are initially assigned to, but may be replaced by the following personalities depending on chance:

Naïve (2% chance) - Inexperienced drivers who are more likely to make mistakes than anyone else (collisions with other drivers, cutting the track, spinning out, rule violations, etc.).
Competitive (40% chance) - More challenging drivers that may utilize different tunes, slipstreaming, and overtakes. Least likely to make mistakes.
Cautious (15% chance) - Timid drivers that will pit in earlier than others.
Defensive (20% chance) - Drivers that will protect their positions by blocking, maybe even sideswiping. Least likely to box.
Aggressive (10% chance) - Angry drivers that will use aggressive tactics to gain positions, but more likely to box due to quicker tyre wear and fuel burn.
Vengeful (1% chance) - Competitive-like drivers whose aggression and strength increases, if the player collides into them and loses positions as a result.
Custom - User-defined personalities that can be modified in a special folder within the app's directory. Could even be assigned to specific cars, skins, or driver names.

App Revert button doesn't work

Attempting to click "App Revert" button to reset the surfaces.ini file to allow the user to play online with checksum issues, appears to only move the Auto Injection slider to disabled, and does not reset the surfaces file.

[Feature] Add AI brake hint adjustment

Add AI brake hint adjustment to allow for dive bomb overtakes to occur

---Changes AI brake hint value. Use ac.INIConfig.carData(carIndex, 'ai.ini'):get('PEDALS', 'BRAKE_HINT', 1) to
---load original value first and go from there (don’t re-read it each frame though, it’ll get expensive).
---@param carIndex integer @0-based car index.
---@param brakeHint number @New value.
function physics.setAIBrakeHint(carIndex, brakeHint) end

[Feature] Add AI MGUK Recovery and Delivery Control

Add new functionality that controls the AIs MGUK.
This will allow for greater racing logic from the AI, and further extend their strategy tool-belt.

New SDK functions for this task

---Sets MGUK delivery mode. Note: for controling user car consider using ac.setMGUKDelivery() instead, it’ll work better with HUD and everything.
---@param carIndex integer @0-based car index.
---@param level integer @0-based index.
function physics.setMGUKDelivery(carIndex, level) end

---Sets MGUK recovery mode. Note: for controling user car consider using ac.setMGUKDelivery() instead, it’ll work better with HUD and everything.
---@param carIndex integer @0-based car index.
---@param level integer @value from 0 to 10.
function physics.setMGUKRecovery(carIndex, level) end

[Feature] AI randomize tyre compound selection

This feature will randomize the tyre compound choices for AI drivers. Tyre compound choices will be constrained to whatever compounds are configured each specific track.

---Sets currently selected tyres, resetting damage as well.
---@param carIndex integer @0-based car index.
---@param index integer @0-based tyres index.
function physics.setAITyres(carIndex, index) end

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.