Now it works better with very big resolutions. Previously label height was used as a kind of margin for columns. But in extreme case it could be even bigger than child height.
* Always call buildInternalStructure when updating items to prevent font size issues
* Added word wrap for DynamicRibbonWidgets and enabled on the GP editor.
I suspect that some kart credits are also for old versions of karts which have been redone since then, but if the new version is based on the old, entirely removing credit may not be appropriate either.
Now that the turn radius bug is fixed, these differences are more meaningful. The reference turn radius is close to the tighter numbers observed before, so this isn't actually a +15/30% to turn radius compared to previous effective numbers.
A turn radius of 19.5 at 25 of speed is still very manageable.
This doesn't preclude further tweaks in the future, once largely playtested in the beta.
* Add a flag icon next to the lap counter
* Fix flag icon scaling across resolutions
* Add an option controlling minimap display
* Allow to display all the karts in the icon list if the minimap is hidden/on the right
* Remove useless scaling
* Fix minimap issues in splitscreen
* Align the spinners in the UI options
* Check for touch settings instead of a compile-time Android check
* Fix server-only compilation
* Make UI options checkboxes have the same size than checkboxes elsewhere
* Add translation cues for minimap options
* Don't look up icon paths every frame
The grass texture slowdown working again makes this challenge several seconds slower than in 0.9.3 ; and the previous balancing change for supertux ended up overshooting.
The additional AI karts also make it more challenging than in 0.9.3, as it's frequent to be hit by something in the 1st lap.
The AI is not yet good enough to be the sole factor ; the time requirement is necessary to not have these Super Tux challenges much easier than others.
Time-trial records give a good idea of the relative length of different tracks. I tried to keep a similar balance to the one reached in Cornfield Crossing's challenge.
Finishing first should always result in challenge success in low difficulties, and the AI balancing should be more effective than per-challenge tweaking in achieving consistent difficulty across challenges.
The AI is slower than the required times in this challenge, so it makes it easier.
The previous times were, without nitro/skidding, as hard if not harder than the expert challenge.
This reverts commit 84359ad7da.
It broke "Max players supported" text in arena info screen. It also doesn't work well for hidpi_enabled property that is used on android. Additionally it causes incompatibility with older STK versions (STK 0.9.3 crashes when there is more than 3 entries in hiscore.xml).
Fixes#3424Fixes#3425
* Add a hide multiplayer replays checkbox
* Hide player number column ; add kart icon column
Enabling the icon display creates issues in the list widget layout, however.
* Fix formatting issue when an icon is displayed in only some cells
* Display "?" icon when kart model is unknown
This can happen with uninstalled addons, old replays with removed official karts, etc
* Add helper functions for icons in replay info dialog
* Add kart icons to replay info dialog
* Delete m_icon_bank in tearDown
* Remove a duplicate mention of deveee ; add Fantasmos and QwertyChouskie
Fantasmos has contributed :
- Illimited splitscreen multiplayer (involves also race UI improvements in local multiplayer)
- Flashing bubble gum before expriation
- Crash sounds changing depending on speed/direction
- Better rescue
- Misc fixes
QwertyChouskie has contributed :
- New skidding particles
- Misc. fixes and improvements
* Add most of the significant changes (for finished features) since 0.9.3 to the changelog
* Include two more changes for the 0.9.3 version
* Add a few items, clearly separate track/modelling changes
Also, each new track get one line of changelog. Putting two on the same line vastly underestimate the importance of such a change. This also make it easier to mention removed/replaced tracks.
The changelog should not be shortened at all costs ; rather, it should be reasonably complete and not shy from using more lines as a visual cue when appropriate.
* Add kart and tracks subsection, improve changelog organization for 0.7.x versions
* More sorting for 0.6.x releases
* Improve info on track changes in 0.4/0.5
* Add android input improvements to the changelog
* Fix typo
* Remove incomplete name change info
This can help in case of high latency connections and quick steering changes:
because of the high latency the steering is applied too long locally,
reducing in the other kart driving left/right way too much.
It's disabled for now (i.e. steering is multiplied by 1.0), but can be
enabled in stk_config.
* Updated options UI file, new icon for language tab
Also updates the license file.
* Update the options screens to support the new layout
And add a language change screen.
* Don't overwrite the updates which happened in master.
* Add missing (new) password reset button
* Focus the list of actions binding rather than the tabbar in device options
* Add vertical tabs to ribbon widget types
* Update GUI engine for vertical tabs
* New icons for the help menu
The slipstream icon is not great, it's here to have something now. It should be replaced by something better looking and more in STK's visual style.
* Updated help GUI
The git changelog is a bit misleading here, because the order of the items in the help menu has been revised too.
1)General (same)
2)Game modes (before : 3)
3)Powerups (before : 2)
4)Bananas (before : 5)
5)Story Mode
6)Kart classes
7)Multiplayer
* Update help screen code to handle the additional tabs
The hugely repetitive structure of one cpp/hpp per tab is kept here.
* Optimized version of new icons
Except for the slipstreaming one, as it should be replaced by a better one anyway.
* First version of donation link and password reset buttons
The register screen still needs to be tweaked, though the GUI engine seems to be limted here.
Maybe dynamicly delete/re-create the widget?
* Fix mingw compilation
* Remove dead code
* minor cleanup
* Error handling, tweaks
* Fix ifdef for macOS
* Disable donate button on Android
* Use stk-config
* Implement LinkHelper::isSupported, fixes
* Allow full up/down/left/right navigation
* Update list and ribbon widgets to work well with the new navigation
* Fix windows compilation
* Improve navigation algorithm to fix the observed limitations
* Make windows compilator happy
* Fix keyboard navigation issues in networking lobby
And make some parts more proportional to screen size
* License for new coal skin
* Coal skin elements
* New coal skin
* Better contrast for coal skin select
* Lighter white text.
* Improved contrasts for actionable UI elements
* Make the theme back to a darker background while improving contrast again
* Ranking formula refinements (#3288)
* Reduce the maximum scaling time from 600s to 500s
8m20s is already much longer than nearly all ranked races will be, so it matters most for eliminated players. It would be too punishing if kept to 600 with the new time scaling method.
* New helper function for ranking computations
* Make short races less important for ranking points
And long races more important
* Use double for calculation
* Fix as alayan suggested
* Fix possible empty race event manager instance
* Show remote player in the past
* Allow to set commandline arguments on android
* Fix#3242
* More on #3242
* FIx#2912
* Better checkboxes (#3291)
* Better checkboxes for forest skin
* Better checkboxes for ocean skin
* Better checkboxes for peach skin
* Better checkboxes for ruby skin
* Try to create external/internal directory if it's not available.
Typically it always exists on new phones, but I didn't find any information if it's guaranteed to exist and it's missing on my old phone.
* Always set blend func in GLES 2.0.
It's often changed in STK engine and the value stored in irrlicht variable may be invalid.
Fixes#3296
* Avoid a crash when user name is empty
* Unlock cutscene improvements (#3298)
* Don't display unlocked features out of screen when there are 4 to 6-7
And more regular spacing between them
* Remove outdated workaround
* Store the previous number of story mode point
* Allow to get the previous points from player profile
* Fix points estimation for finding unlocked tracks
- Updated to reflect that the player's points are now updated before this function
- Use the real previous number of points rather than trying to estimate the point change (otherwise, the points computation method would have to be duplicated here to not have a bug with GPs who give more points than single race challenges).
* Fix#3100 (#3299)
* Fix#3100
* Fix server only compilation
* Fix stupidly long line full of whitespace (#3303)
* Don't use pkg-config on macOS
Fixes#3305
* Fix#3309
* Great improvements to skin data (#3312)
* Add vertical tab support and get common files from a common folder
* License file for the common folder
* UI images shared by all 4 colored themes
* Delete redundant pictures
* Delete background.jpg
* Delete dialog.png
* Delete glassbutton_deactivated.png
* Delete glasscheckbox_checked_deactivated.png
* Delete glasscheckbox_deactivated.png
* Delete glass_rsection.png
* Delete glass_section.png
* Delete glassspinner.png
* Delete glassspinner_deactivated.png
* Delete glass_square_focused_bw.png
* Delete left_arrow.png
* Delete list_sort_down.png
* Delete list_sort_up.png
* Delete rating_star.png
* Delete right_arrow.png
* Delete scrollbar_bg.png
* Delete scrollbar_btn.png
* Delete table_header.png
* Delete tooltip.png
* Optimize image size and add vertical tabs
* Optimize image size and add vertical tabs for ocean skin
* The multiplayer colored squares are also shared
* Use the multiplayer colored squares from common
* Remove more redundant skin images
* Delete glass_square1.png
* Delete glass_square2.png
* Delete glass_square3.png
* Delete glass_square4.png
* Delete glass_square_focused.png
* Delete glass_square_focused2.png
* Delete glass_square_focused3.png
* Delete glass_square_focused4.png
* Optimize image size and add vertical tabs for peach skin
* Optimize image size and add vertical tabs for forest skin
* Special focus halo for ruby skin
Currently, the halo used in single player is shared with the one used for the first player in local multiplayer, despite the color of the top spinner widget not matching in this situation.
Better having this mismatch that a not-so-great halo in single-player.
I put it in common as it may be reused for multiplayer focus by other skins.
* Use pink selection halo
* Put the bottom bar among skinnable UI images
* Make the bottom bar part of the skins
* Coding style fix
* Delete bar.png
* Load bottom bar texture from skin rather than gui folder
Also rename bg_image to m_bg_image
* Move black focus halo to the common folder
* Remove duplicate image, use common folder
* Delete glass_square1.png
* Delete glass_square2.png
* Delete glass_square3.png
* Delete glass_square4.png
* Delete glass_square_focused.png
* Delete glass_square_focused2.png
* Delete glass_square_focused3.png
* Delete glass_square_focused4.png
* Delete glass_square_focused_bw.png
* Delete left_arrow.png
* Delete rating_star.png
* Delete right_arrow.png
* Delete list_sort_down.png
* Delete list_sort_up.png
* Delete glassbutton_deactivated.png
* Delete glasscheckbox_deactivated.png
* Delete glassspinner.png
* Delete glassspinner_deactivated.png
* Delete scrollbar_bg.png
* Delete scrollbar_btn.png
* Delete tooltip.png
* Delete glasscheckbox_checked_deactivated.png
* Use common folder, support vertical tabs, and small tweaks
* Optimize image size, add vertical tabs, add custom bottom bar
* Add vertical tab support and get common files from a common folder
* License file for the common folder
* UI images shared by all 4 colored themes
* Delete redundant pictures
* Delete background.jpg
* Delete dialog.png
* Delete glassbutton_deactivated.png
* Delete glasscheckbox_checked_deactivated.png
* Delete glasscheckbox_deactivated.png
* Delete glass_rsection.png
* Delete glass_section.png
* Delete glassspinner.png
* Delete glassspinner_deactivated.png
* Delete glass_square_focused_bw.png
* Delete left_arrow.png
* Delete list_sort_down.png
* Delete list_sort_up.png
* Delete rating_star.png
* Delete right_arrow.png
* Delete scrollbar_bg.png
* Delete scrollbar_btn.png
* Delete table_header.png
* Delete tooltip.png
* Optimize image size and add vertical tabs
* Optimize image size and add vertical tabs for ocean skin
* The multiplayer colored squares are also shared
* Use the multiplayer colored squares from common
* Remove more redundant skin images
* Delete glass_square1.png
* Delete glass_square2.png
* Delete glass_square3.png
* Delete glass_square4.png
* Delete glass_square_focused.png
* Delete glass_square_focused2.png
* Delete glass_square_focused3.png
* Delete glass_square_focused4.png
* Optimize image size and add vertical tabs for peach skin
* Optimize image size and add vertical tabs for forest skin
* Special focus halo for ruby skin
Currently, the halo used in single player is shared with the one used for the first player in local multiplayer, despite the color of the top spinner widget not matching in this situation.
Better having this mismatch that a not-so-great halo in single-player.
I put it in common as it may be reused for multiplayer focus by other skins.
* Use pink selection halo
* Put the bottom bar among skinnable UI images
* Make the bottom bar part of the skins
* Coding style fix
* Delete bar.png
* Load bottom bar texture from skin rather than gui folder
Also rename bg_image to m_bg_image
* Don't generate IRC alerts
* Differentiated rubber-banding
* Fix#3222
* Small simplification
* Use master's version
* Fix typo
* Use std::sort
* Remove useless function call
test_ai is only used for profiling without human players
* Update GUI files for replay improvements
* Updated replay capabilities
* Improve timer formatting possibilities
Mainly, the ability to choose to display or not minutes, and to choose how many digits are shown after seconds (from 0 : second as smallest timestep - to 3 : ms as smallest timestep)
Also displays "mm:ss.ms" rather than "mm:ss:ms".
* Some new list widget possibilities
Like the ability to update the header while the list is displayed (useful to add or remove columns)
* Update ghost kart for the new replay data
* Also update the ghost controller
* Live differences with ghost replays in linear worlds
* Replay-related UI changes
Big changes to the replay selection screen, and small change to the race UI (add the live timer in ghost races) and the race result UI (add the option to directly race against a newly saved ghost).
* Improves the replay action modal dialog
* Fix time-to-ticks regression
* Several requested improvements
* Improved ghost icon
Also updates the license
* GUI changes and improvements to accomodate multi-mode support
* Additional recorded data
* More functions to get the current race state
* Update replay variables to match what is used
* Updated replay-related config values
* Add ghost kart support to easter egg hunt mode
* Transparent attachments for ghost karts
* Use new stored data (color, item type)
Also :
- Interpolate speed for smoother display in watch-only mode
- Coding style improvements
* Fix coding style issues and add UI support for modes
* Fix coding style issues & support for easter egg mode
* Remove leftover prints
* Use getDifficultyName to remove hardcoded values
* Fix attach_ticks and coding style fixes
* Make the position of the timers fully relative
Otherwise, they would tend to touch each other in some resolutions
Also add a comment about the 59.9995f
* Make the list filling code clearer
Also use getDifficultyName
Most of the line changes shown by git correspond to moving around some bits or adjusting indentation.
* Remove a TODO as requested
* Fix dialog being dismissed too soon
* Remove a fixme
* Small clean up
* Fix logging
* Partial #3249 fix
* Update custom_video_settings.stkgui
Change label titles to conform to title case typographical convention.
* Update custom_video_settings.stkgui
Sentence case for everything.
* Add SuperTux difficulty & update number of karts
Also make the expert challenge slightly easier to match more the difficulty of other challenges.
* Add SuperTux difficulty & update number of karts & points required
Also give some more time margin in easier difficulties, as it is a hard challenge compared to most.
* Add SuperTux difficulty & update number of karts & points required
Also change the lap count to 4 as it is a very short track (sub 30s)
* Add SuperTux difficulty
Also tweak the expert challenge to have a more appropriate difficulty
* Add SuperTux difficulty & update number of karts
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
Also correct the requirement position, since this is not a FTL race anymore.
* Add SuperTux difficulty & update number of karts & points required
Also slight balancing improvements for the usual difficulties.
* Add SuperTux difficulty & update number of karts & points required
Also adds a position requirement in expert
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
Also change the number of laps to 5, as this is a very short track. The time requirements for easier difficulties have been kept proportionally similar to before.
* Add SuperTux difficulty & update number of karts & points required
Also change the number of laps to 4.
* Add SuperTux difficulty & update number of karts & points required
Also add a position requirement to expert and intermediate.
* Add SuperTux difficulty & update number of karts & points required
Also change the number of laps to 4, as a lap often is 30s or less in expert/supertux
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
* Rename islandtrack.challenge to gran_paradiso.challenge
* Rename challenge file
* Add SuperTux difficulty & update number of karts & points required
Also makes the time limit in expert less easy and tweak position requirement.
* Add SuperTux difficulty & update number of karts
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
Doesn't unlock the SuperTux difficulty anymore - it's managed elsewhere.
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
* Add new unlock challenges, for difficulty and karts
* Add a lap to oliver's math class
* Replace Northern Resort by Volcano Island
* Replace Volcano Island by Candela City
Candela City was in no (official) GP before this.
Also sets Green Valley to 3 laps.
* Add Northern Resort and remove Fort Magma
In 0.9.3, this GP has only 4 races in Story Mode (5 for the other GPs) because Fort Magma is locked.
Of all the tracks outside this GP before, Northern Resort is one of the hardest, the AI being rather good there.
* Temporary cup for SuperTux challenges
Recolored version of the gold cup
* Update challenge selection UI for the SuperTux challenges
* GUI used before SuperTux difficulty unlocking
This is the old select_challenge.stkgui
* Swap the two sara
* Replace Kiki by another kart to unlock on Benau's demand
* Update for improved Story Mode
* Update for improved Story Mode
* Add support for SuperTux challenges
* Add support for SuperTux challenges
* Add support for SuperTux challenges
* Add support for SuperTux challenges
* Update for SuperTux ; also adds the ability to unlock a challenge by points
* Update for unlocking by points
* Add support for SuperTux challenges
* Add support for SuperTux challenges
* Add support for SuperTux challenges
* Minor changes to function calls
* Update for SuperTux challenges
* Add support for SuperTux challenges
* Update for Story Mode GP changes
* Allows to display the correct number of points for GP challenges
* Set the unlock of the 1st bonus kart to correct non-test value
* Add support for SuperTux challenges
Including a bigger challenge selection diaolg
* Add default value
* Icon to indicate that there is an unlockable
The number of points needed to unlock it are displayed next to it.
* Changed format : the point requirements is now specified in the file
* Changed format : the point requirements is now specified in the file
* Changed format : the point requirements is now specified in the file
* Function for unlock by points UI
* Add default for unlock list node and use requirements node for all
* Make unlockByPoints simpler and more flexible
Now the code will iterate in StoryModeStatus and send the unlock_list challenges for treatment here. The question of getting the right challenge statuses beings solved, it allows for a great simplification and much more flexibility
* Update unlockByPoints declaration
* Adds support for next unlockable UI
* Improve call of unlockByPoints
Also calculations for displaying in the UI how many point the next unlockable by points requires.
* Add icon for next unlockable
* Displays icon/number to make the player aware of the next unlockable
Also displays the number below the icon rather than on the side, for more clarity.
* Changes to display karts in the unlock scene
* Update unlock functions declarations
* New function to clarify code and more logical recently unlocked list management
In the previous version, everything was added to the recently unlocked list at some point, necessitating a clearing at the end of computeActive, which also removed from the list the non-race challenges. Checking if the feature is newly unlocked to add it to the list remove the need of that clearing.
* Declaration for unlockFeatureByList
* Display newly unlocked karts
* Display newly unlocked karts
* Clear the list of recently unlocked features at the end
* Update testing code
* Update unlocks finding function call
* Improve UI scaling
* Fixes indentation
* Update the number of points before checking for unlock by points
* Add const to declarations
* Remove const_cast
* Remove a const_cast
There are other const_cast in the menu debug items (but they are unrelated to this PR)
* Fix menu being bolder
Now we don't use tfb shader to compute particles, so it seems to not have a sense anymore.
And it's still possible to set particles_effects=0 in config.xml if someone will need it.
* New getRecentPreviousXYZ function
* New getRecentPreviousXYZ function
* New getRecentPreviousXYZ function
* General slipstreaming refinements
* Increase the minimum time to get the slipstream bonus
The obsolete parameter is not yet removed as several other files would have to be changed to not trigger an error.
* Slipstreaming characteristics update
* Changed slipstreaming characteristics
* Update slipstreaming characteristics
* Update slipstreaming characteristics
* Update slipstreaming characteristics
* Update slipstreaming characteristics
* Update slipstreaming characteristics
* Remove slipstreaming power engine bonus per kart type
Power engine bonus is already balanced by the different weights : a heavier kart needs more engine power to achieve/maintain the same speed.
* Remove an unused function
* Various slipstreaming refinements
* Pull the XYZ history size from config
* Pull the XYZ history size from config
* Remove unnecessary logs
* Fix a frenchism with fix
* New speedometer and nitrometer gui
* Update Speedometer and Nitrometer
* Improve nitro background
* Improve nitro bar drawing
* Improved meters
* Improve meter and rank drawing
* Agressive smoothing and higher visibility
* Helper function for meter drawing
* Helper function for meter drawing
* Improved meters
* New nitro bar, slight 3D effects and hopefully fix compilation
* Update license
* 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