* Prepares for advanced item and nitro usage strategy
Replace the bool determining if usage is random or not by an int allowing several levels of AI item usage.
Add NITRO_ADVANCED mode for nitro usage.
* Adapt for more item and nitro levels
The XML files have to be changed. The logic for the item_skill still has to be done.
* Preparation for the preferred kart in GP
* Preparation for the preferred kart in GP
* Preparation for the preferred kart in GP
* Prepares for advanced item and nitro usage strategy
* Prepares for advanced item usage strategy
* Preparation for the preferred kart in GP
* Parametrized AI_skill level
* Fix typo
* Fix typo
* Fix typo
* Fire items with a shield on in unrestricted mode
* New function allowing AI to know what flyable is incoming
* New function allowing AI to know what flyable is incoming
* Fix typo
* Update bubble gum AI to new system
In addition of making some functionality depends on AI levels, there are a few overall improvements for the better AIs :
1)Remove the "drop the gum in the last lap" logic. Bad strategy since ever the shield has been added to the gum
2)The protection against flyable is not used if the user holds a swatter and the flyable is a plunger
3)Holding a swatter no longer blocks the AI from using the shield against a flyable nor from using the gum behind
4)The shield is used to remove bad attachments (bomb, parachute, anvil)
5)Reduce the distance with the kart behind when dropping the gum to reduce misses
* Update swatter AI to new system
The swatter could benefit from several kind of usage improvement. This patch introduce only one, but probably the more important : the better AIs now use it to remove bad attachments
* Fixing #3139
* Fix compile error
* Fix
* Fix compilation
* Fix compilation
* Fix compilation
* Update variable
* Update variable
* Fix non-breaking space issue
* Fix typos
* Revert for compilation
* Revert for compilation
* Update cake AI to new system
* Redefine HandleItems to be position aware
* Redefine HandleItems to be position aware
Also changes bowling ball for the new system.
* Activate shield before hitting box or bad item
Meant for higher AIs.
* Increase lookup distance
Some distance will be needed for the switch
* Temporary fix to avoid a nitro regression
* Fix typo
* Fix typo
* Bubble gum improvements ; explicitely calculate distances to items
* Update Switch to the new system ; use item-distance awareness
Also fix a missing parenthesis
* Change nitro-usage to a numerical parameter
* Change nitro-usage to a numerical parameter
Also update comments to explain the new item-skill
* Change nitro-usage to a numerical parameter
* Change nitro-usage to a numerical parameter
* Change nitro-usage to a numerical parameter
* Update handleNitroAndZipper to the new system
Also fix a naming error, remove the 95% speed limitation on nitro usage
* Adds a small engine boost to nitro
Currently, nitro is very counter-intuitive as it only affects max_speed. This change corrects it. The effect remains small to not upset balance. It is mostly felt when below max_speed, so the can of nitro potential power doesn't change much.
* Improve AI nitro handling
Summary :
1)Makes the AI use nitro by bursts, greatly improving its efficiency
2)Makes the AI use nitro when close to max speed (to unlock the max speed increase)
3)Remove the overtaking logic as the AI will now use its nitro anyway
4)The AI tries to keep a reserve of nitro for use towards the end of the race.
* Allows estimated finish time to be checked at any lap, fix a crash
* Makes the AI use its nitro reserves
* Better tuning for nitro reserve usage to reduce the probability of unused nitro
* Remember last used powerup for AI
* Remember last used powerup for AI
* Remember last used powerup for AI
* Remember last used powerup for AI
* Remember last used powerup for AI
* Remember last used powerup for AI
* Fix compilation
* AI don't wait between usage of items of different types
* Use floats for Parachute duration
* Revert
* Nitro use when trying to pass a bomb improved
* Fix broken time check
* Take into account the kart-specific fadeout to calculate time between bursts
* Improvements to bursts and to use of the reserve at the end
* Improve comments explaining item_usage_skill and nitro_usage
* Make LastUsedPowerup a PowerupType
* Make LastUsedPowerup a PowerupType
* Make LastUsedPowerup a PowerupType
* Make LastUsedPowerup a PowerupType
* Make last_used_powerup a PowerupType
* Make last_used_powerup a PowerupType
* Fix compilation
* Fix compilation
* Revert
* Revert
* Finally fix compilation
* Finally fix compilation
* Change shield radius per difficulty
A reduced non-null shield radius reduces false positives as long as it is big enough to get a few frames during which the object is inside the radius.
* Improve Projectile closeness management
* Improve projectileCloseType
* Improve projectileCloseType
* Fixes indentation
* Fix lastUsedPowerup initialization
* Fix the last used powerup type
* Rename projectileCloseType
* Rename projectilCloseType
* Clarify comment and update projectileCloseType to new name
* Reuse a member RandomGenerator
* Fixes getLastUsedPowerup type
* Fixes comparison
* Fixes type
* Change camera view from one kart to the previous/next with F5-6 keys or with menu buttons
* Simplify code
The kart_num/real_num distinction was part of the base code Benau did ; but it is completely redundant after the changes I did to the way kart_num is calculated (it was previously a static int, it's now an unsigned int).
* Fix "Final lap!" message on one-lap races
When starting a one-lap race, the game gives the message "Final lap!". This should only be given when there is more than one lap in the race. This commit changes linear_world.cpp so that this message is only given when the number of laps in the race is greater than 1.
* Fix spacing
I accidentally changed the spacing when making my last commit. This commit fixes that accident.