diff --git a/changelog/snippets/other.6577.md b/changelog/snippets/other.6577.md deleted file mode 100644 index 1a53a6e6b3..0000000000 --- a/changelog/snippets/other.6577.md +++ /dev/null @@ -1 +0,0 @@ -- (#6577) Annotate `AddBlinkyBox`. This UI-side global engine function makes a unit's selection box blink for some time. diff --git a/docs/_posts/2024-12-25-3817.md b/docs/_posts/2024-12-25-3817.md new file mode 100644 index 0000000000..9e79f9a022 --- /dev/null +++ b/docs/_posts/2024-12-25-3817.md @@ -0,0 +1,33 @@ +--- +layout: post +title: Game version 3817 +permalink: changelog/3817 +--- + +# Game version 3817 (25th of December, 2024) + +A small hotfix for the autolobby. This will be the final patch for the game in 2024. + +I’d like to take this opportunity to express my sincere gratitude to everyone who has contributed to FAForever this past year, as well as those who have contributed in the past. The FAForever project is possible because of your time and effort! + +If you're interested in contributing then I encourage you to visit the forums and review the first pinned post in the contribution section. It provides an extensive overview of the currently documented roles in the community. Whether you're an (aspiring) artist, developer, or simply interested in writing well-structured texts — you are welcome! + +I wish you all the best in the new year. + +With kind regards, +Jip + +## Bug fixes + +- (#6581) Fix divisions not being parsed by the matchmaker lobby. + +- (#6581) Fix division image filenames not matching the division data in the scenario info. + +## Other changes + +- (#6577) Annotate `AddBlinkyBox`. This UI-side global engine function makes a unit's selection box blink for some time. + +## Contributors + +- Nomander +- Jip diff --git a/lua/ui/lobby/autolobby/AutolobbyController.lua b/lua/ui/lobby/autolobby/AutolobbyController.lua index 180d2b652f..a992e5d727 100644 --- a/lua/ui/lobby/autolobby/AutolobbyController.lua +++ b/lua/ui/lobby/autolobby/AutolobbyController.lua @@ -56,13 +56,33 @@ local AutolobbyEngineStrings = { ['LaunchRejected'] = "Some players are using an incompatible client version.", } +-- associated textures are in `/textures/divisions/ .png` +-- Make note of the space, which isn't there for "grandmaster" and "unlisted" divisions + +---@alias Division +---| "bronze" +---| "silver" +---| "gold" +---| "diamond" +---| "master" +---| "grandmaster" +---| "unlisted" + +---@alias Subdivision +---| "I" +---| "II" +---| "III" +---| "IV" +---| "V" +---| "" # when Division is grandmaster or unlisted + ---@class UIAutolobbyPlayer: UILobbyLaunchPlayerConfiguration ---@field StartSpot number ---@field DEV number # Related to rating/divisions ---@field MEAN number # Related to rating/divisions ---@field NG number # Related to rating/divisions ----@field DIV string # Related to rating/divisions ----@field SUBDIV string # Related to rating/divisions +---@field DIV Division # Related to rating/divisions +---@field SUBDIV Subdivision # Related to rating/divisions ---@field PL number # Related to rating/divisions ---@field PlayerClan string diff --git a/lua/ui/lobby/autolobby/components/AutolobbyArguments.lua b/lua/ui/lobby/autolobby/components/AutolobbyArguments.lua index c17f4fa4bd..19aff423ca 100644 --- a/lua/ui/lobby/autolobby/components/AutolobbyArguments.lua +++ b/lua/ui/lobby/autolobby/components/AutolobbyArguments.lua @@ -48,7 +48,7 @@ AutolobbyArgumentsComponent = ClassSimple { ["/mean"] = true, -- related to divisions - ["division"] = true, + ["/division"] = true, ["/subdivision"] = true, -- related to game settings diff --git a/lua/ui/lobby/changelogData.lua b/lua/ui/lobby/changelogData.lua index 179a569f3e..b33e656fbc 100644 --- a/lua/ui/lobby/changelogData.lua +++ b/lua/ui/lobby/changelogData.lua @@ -3,6 +3,47 @@ last_version = 3816 ---@type PatchNotes[] gamePatches = { + { + version = 3817, + name = "Hotfix", + hasPrettyGithubRelease = true, + hasPrettyPatchnotes = false, + description = { + "# Game version 3817 (25th of December, 2024)", + "", + "A small hotfix for the autolobby. This will be the final patch for the game in 2024.", + "", + "I’d like to take this opportunity to express my sincere gratitude to everyone who has contributed to FAForever this ", + "past year, as well as those who have contributed in the past. The FAForever project is possible ", + "because of your time and effort!", + "", + "If you're interested in contributing then I encourage you to visit the forums and review the first pinned post in ", + "the contribution section. It provides an extensive overview of the currently documented roles in the ", + "community. Whether you're an (aspiring) artist, developer, or simply interested in writing well-structured ", + "texts — you are welcome!", + "", + "I wish you all the best in the new year.", + "", + "With kind regards,", + "Jip", + "", + "## Bug fixes", + "", + "- (#6581) Fix divisions not being parsed by the matchmaker lobby.", + "", + "- (#6581) Fix division image filenames not matching the division data in the scenario info.", + "", + "## Other changes", + "", + "- (#6577) Annotate `AddBlinkyBox`. This UI-side global engine function makes a unit's selection box blink for some time.", + "", + "## Contributors", + "", + "- Nomander", + "- Jip", + "", + }, + }, { version = 3816, name = "Hotfix", diff --git a/lua/version.lua b/lua/version.lua index d55e91f97e..0312080b20 100644 --- a/lua/version.lua +++ b/lua/version.lua @@ -34,9 +34,9 @@ local Commit = 'unknown' -- The use of `'` instead of `"` is **intentional** --#endregion -local Version = "3816" ----@alias PATCH "3816" ----@alias VERSION "1.5.3816" +local Version = "3817" +---@alias PATCH "3817" +---@alias VERSION "1.5.3817" ---@return PATCH # Game release function GetVersion() LOG(string.format('Supreme Commander: Forged Alliance Lua version %s at %s (%s)', Version, GameType, Commit)) diff --git a/mod_info.lua b/mod_info.lua index 33c29502c3..2294bfa70d 100644 --- a/mod_info.lua +++ b/mod_info.lua @@ -27,7 +27,7 @@ -- - https://github.com/FAForever/fa/blob/deploy/fafdevelop/lua/MODS.LUA name = "Forged Alliance Forever" -version = 3816 -- needs to be an integer as it is parsed as a short (16 bit integer) +version = 3817 -- needs to be an integer as it is parsed as a short (16 bit integer) _faf_modname='faf' copyright = "Forged Alliance Forever Community" description = "Forged Alliance Forever extends Forged Alliance, bringing new patches, game modes, units, ladder, and much more!" diff --git a/scripts/LaunchFAInstances.ps1 b/scripts/LaunchFAInstances.ps1 index 895a76d53c..24b5b710f6 100644 --- a/scripts/LaunchFAInstances.ps1 +++ b/scripts/LaunchFAInstances.ps1 @@ -32,9 +32,11 @@ $hostProtocol = "udp" $hostPlayerName = "HostPlayer_1" $gameName = "MyGame" -# Array of factions to choose from +# Array of player data to choose from $factions = @("UEF", "Seraphim", "Cybran", "Aeon") $clans = @("Yps", "Nom", "Cly", "Mad", "Gol", "Kur", "Row", "Jip", "Bal", "She") +$divisions = @("bronze", "silver", "gold", "diamond", "master", "grandmaster", "unlisted") +$subdivisions = @("I", "II", "III", "IV", "V") # Get the screen resolution (for placing and resizing the windows) Add-Type -AssemblyName System.Windows.Forms @@ -84,6 +86,15 @@ function Get-TeamArgument { return "/team $((($instanceNumber % $teams) + 1 + 1))" } +function Get-DivisionArgText { + $division = $($divisions | Get-Random) + $argText = "/division $division" + if ($division -ne "unlisted" -and $division -ne "grandmaster") { + $argText += " /subdivision $($subdivisions | Get-Random)" + } + return $argText +} + # Prepare arguments and launch instances if ($players -eq 1) { $logFile = "dev.log" @@ -92,7 +103,9 @@ if ($players -eq 1) { $hostLogFile = "host_dev_1.log" $hostFaction = $factions | Get-Random $hostTeamArgument = Get-TeamArgument -instanceNumber 0 - $hostArguments = "/log $hostLogFile /showlog /hostgame $hostProtocol $port $hostPlayerName $gameName $map /startspot 1 /players $players /$hostFaction $hostTeamArgument $baseArguments /division HostDivision /subdivision 1 /clan $($clans | Get-Random)" + + $divisionArgText = Get-DivisionArgText + $hostArguments = "/log $hostLogFile /showlog /hostgame $hostProtocol $port $hostPlayerName $gameName $map /startspot 1 /players $players /$hostFaction $hostTeamArgument $baseArguments $divisionArgText /clan $($clans | Get-Random)" # Launch host game instance Launch-GameInstance -instanceNumber 1 -xPos 0 -yPos 0 -arguments $hostArguments @@ -108,7 +121,8 @@ if ($players -eq 1) { $clientPlayerName = "ClientPlayer_$($i + 1)" $clientFaction = $factions | Get-Random $clientTeamArgument = Get-TeamArgument -instanceNumber $i - $clientArguments = "/log $clientLogFile /joingame $hostProtocol localhost:$port $clientPlayerName /startspot $($i + 1) /players $players /$clientFaction $clientTeamArgument $baseArguments /division Diamond /subdivision $($i + 1) /clan $($clans | Get-Random)" + $divisionArgText = Get-DivisionArgText + $clientArguments = "/log $clientLogFile /joingame $hostProtocol localhost:$port $clientPlayerName /startspot $($i + 1) /players $players /$clientFaction $clientTeamArgument $baseArguments $divisionArgText /clan $($clans | Get-Random)" Launch-GameInstance -instanceNumber ($i + 1) -xPos $xPos -yPos $yPos -arguments $clientArguments } diff --git a/textures/divisions/bronzeI.png b/textures/divisions/bronze I.png similarity index 100% rename from textures/divisions/bronzeI.png rename to textures/divisions/bronze I.png diff --git a/textures/divisions/bronzeII.png b/textures/divisions/bronze II.png similarity index 100% rename from textures/divisions/bronzeII.png rename to textures/divisions/bronze II.png diff --git a/textures/divisions/bronzeIII.png b/textures/divisions/bronze III.png similarity index 100% rename from textures/divisions/bronzeIII.png rename to textures/divisions/bronze III.png diff --git a/textures/divisions/bronzeIII_medium.png b/textures/divisions/bronze III_medium.png similarity index 100% rename from textures/divisions/bronzeIII_medium.png rename to textures/divisions/bronze III_medium.png diff --git a/textures/divisions/bronzeII_medium.png b/textures/divisions/bronze II_medium.png similarity index 100% rename from textures/divisions/bronzeII_medium.png rename to textures/divisions/bronze II_medium.png diff --git a/textures/divisions/bronzeIV.png b/textures/divisions/bronze IV.png similarity index 100% rename from textures/divisions/bronzeIV.png rename to textures/divisions/bronze IV.png diff --git a/textures/divisions/bronzeIV_medium.png b/textures/divisions/bronze IV_medium.png similarity index 100% rename from textures/divisions/bronzeIV_medium.png rename to textures/divisions/bronze IV_medium.png diff --git a/textures/divisions/bronzeI_medium.png b/textures/divisions/bronze I_medium.png similarity index 100% rename from textures/divisions/bronzeI_medium.png rename to textures/divisions/bronze I_medium.png diff --git a/textures/divisions/bronzeV.png b/textures/divisions/bronze V.png similarity index 100% rename from textures/divisions/bronzeV.png rename to textures/divisions/bronze V.png diff --git a/textures/divisions/bronzeV_medium.png b/textures/divisions/bronze V_medium.png similarity index 100% rename from textures/divisions/bronzeV_medium.png rename to textures/divisions/bronze V_medium.png diff --git a/textures/divisions/diamondI.png b/textures/divisions/diamond I.png similarity index 100% rename from textures/divisions/diamondI.png rename to textures/divisions/diamond I.png diff --git a/textures/divisions/diamondII.png b/textures/divisions/diamond II.png similarity index 100% rename from textures/divisions/diamondII.png rename to textures/divisions/diamond II.png diff --git a/textures/divisions/diamondIII.png b/textures/divisions/diamond III.png similarity index 100% rename from textures/divisions/diamondIII.png rename to textures/divisions/diamond III.png diff --git a/textures/divisions/diamondIII_medium.png b/textures/divisions/diamond III_medium.png similarity index 100% rename from textures/divisions/diamondIII_medium.png rename to textures/divisions/diamond III_medium.png diff --git a/textures/divisions/diamondII_medium.png b/textures/divisions/diamond II_medium.png similarity index 100% rename from textures/divisions/diamondII_medium.png rename to textures/divisions/diamond II_medium.png diff --git a/textures/divisions/diamondIV.png b/textures/divisions/diamond IV.png similarity index 100% rename from textures/divisions/diamondIV.png rename to textures/divisions/diamond IV.png diff --git a/textures/divisions/diamondIV_medium.png b/textures/divisions/diamond IV_medium.png similarity index 100% rename from textures/divisions/diamondIV_medium.png rename to textures/divisions/diamond IV_medium.png diff --git a/textures/divisions/diamondI_medium.png b/textures/divisions/diamond I_medium.png similarity index 100% rename from textures/divisions/diamondI_medium.png rename to textures/divisions/diamond I_medium.png diff --git a/textures/divisions/diamondV.png b/textures/divisions/diamond V.png similarity index 100% rename from textures/divisions/diamondV.png rename to textures/divisions/diamond V.png diff --git a/textures/divisions/diamondV_medium.png b/textures/divisions/diamond V_medium.png similarity index 100% rename from textures/divisions/diamondV_medium.png rename to textures/divisions/diamond V_medium.png diff --git a/textures/divisions/goldI.png b/textures/divisions/gold I.png similarity index 100% rename from textures/divisions/goldI.png rename to textures/divisions/gold I.png diff --git a/textures/divisions/goldII.png b/textures/divisions/gold II.png similarity index 100% rename from textures/divisions/goldII.png rename to textures/divisions/gold II.png diff --git a/textures/divisions/goldIII.png b/textures/divisions/gold III.png similarity index 100% rename from textures/divisions/goldIII.png rename to textures/divisions/gold III.png diff --git a/textures/divisions/goldIII_medium.png b/textures/divisions/gold III_medium.png similarity index 100% rename from textures/divisions/goldIII_medium.png rename to textures/divisions/gold III_medium.png diff --git a/textures/divisions/goldII_medium.png b/textures/divisions/gold II_medium.png similarity index 100% rename from textures/divisions/goldII_medium.png rename to textures/divisions/gold II_medium.png diff --git a/textures/divisions/goldIV.png b/textures/divisions/gold IV.png similarity index 100% rename from textures/divisions/goldIV.png rename to textures/divisions/gold IV.png diff --git a/textures/divisions/goldIV_medium.png b/textures/divisions/gold IV_medium.png similarity index 100% rename from textures/divisions/goldIV_medium.png rename to textures/divisions/gold IV_medium.png diff --git a/textures/divisions/goldI_medium.png b/textures/divisions/gold I_medium.png similarity index 100% rename from textures/divisions/goldI_medium.png rename to textures/divisions/gold I_medium.png diff --git a/textures/divisions/goldV.png b/textures/divisions/gold V.png similarity index 100% rename from textures/divisions/goldV.png rename to textures/divisions/gold V.png diff --git a/textures/divisions/goldV_medium.png b/textures/divisions/gold V_medium.png similarity index 100% rename from textures/divisions/goldV_medium.png rename to textures/divisions/gold V_medium.png diff --git a/textures/divisions/masterI.png b/textures/divisions/master I.png similarity index 100% rename from textures/divisions/masterI.png rename to textures/divisions/master I.png diff --git a/textures/divisions/masterII.png b/textures/divisions/master II.png similarity index 100% rename from textures/divisions/masterII.png rename to textures/divisions/master II.png diff --git a/textures/divisions/masterIII.png b/textures/divisions/master III.png similarity index 100% rename from textures/divisions/masterIII.png rename to textures/divisions/master III.png diff --git a/textures/divisions/masterIII_medium.png b/textures/divisions/master III_medium.png similarity index 100% rename from textures/divisions/masterIII_medium.png rename to textures/divisions/master III_medium.png diff --git a/textures/divisions/masterII_medium.png b/textures/divisions/master II_medium.png similarity index 100% rename from textures/divisions/masterII_medium.png rename to textures/divisions/master II_medium.png diff --git a/textures/divisions/masterIV.png b/textures/divisions/master IV.png similarity index 100% rename from textures/divisions/masterIV.png rename to textures/divisions/master IV.png diff --git a/textures/divisions/masterIV_medium.png b/textures/divisions/master IV_medium.png similarity index 100% rename from textures/divisions/masterIV_medium.png rename to textures/divisions/master IV_medium.png diff --git a/textures/divisions/masterI_medium.png b/textures/divisions/master I_medium.png similarity index 100% rename from textures/divisions/masterI_medium.png rename to textures/divisions/master I_medium.png diff --git a/textures/divisions/masterV.png b/textures/divisions/master V.png similarity index 100% rename from textures/divisions/masterV.png rename to textures/divisions/master V.png diff --git a/textures/divisions/masterV_medium.png b/textures/divisions/master V_medium.png similarity index 100% rename from textures/divisions/masterV_medium.png rename to textures/divisions/master V_medium.png diff --git a/textures/divisions/silverI.png b/textures/divisions/silver I.png similarity index 100% rename from textures/divisions/silverI.png rename to textures/divisions/silver I.png diff --git a/textures/divisions/silverII.png b/textures/divisions/silver II.png similarity index 100% rename from textures/divisions/silverII.png rename to textures/divisions/silver II.png diff --git a/textures/divisions/silverIII.png b/textures/divisions/silver III.png similarity index 100% rename from textures/divisions/silverIII.png rename to textures/divisions/silver III.png diff --git a/textures/divisions/silverIII_medium.png b/textures/divisions/silver III_medium.png similarity index 100% rename from textures/divisions/silverIII_medium.png rename to textures/divisions/silver III_medium.png diff --git a/textures/divisions/silverII_medium.png b/textures/divisions/silver II_medium.png similarity index 100% rename from textures/divisions/silverII_medium.png rename to textures/divisions/silver II_medium.png diff --git a/textures/divisions/silverIV.png b/textures/divisions/silver IV.png similarity index 100% rename from textures/divisions/silverIV.png rename to textures/divisions/silver IV.png diff --git a/textures/divisions/silverIV_medium.png b/textures/divisions/silver IV_medium.png similarity index 100% rename from textures/divisions/silverIV_medium.png rename to textures/divisions/silver IV_medium.png diff --git a/textures/divisions/silverI_medium.png b/textures/divisions/silver I_medium.png similarity index 100% rename from textures/divisions/silverI_medium.png rename to textures/divisions/silver I_medium.png diff --git a/textures/divisions/silverV.png b/textures/divisions/silver V.png similarity index 100% rename from textures/divisions/silverV.png rename to textures/divisions/silver V.png diff --git a/textures/divisions/silverV_medium.png b/textures/divisions/silver V_medium.png similarity index 100% rename from textures/divisions/silverV_medium.png rename to textures/divisions/silver V_medium.png