From bece4e64a01c618d3a8be22d741fd5f9709d6d5a Mon Sep 17 00:00:00 2001 From: Cheeeh Date: Fri, 2 Jan 2026 16:55:29 +0100 Subject: [PATCH 1/4] update workflow snapshot --- .github/workflows/snapshot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index afc88037..15ad2f48 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -2,9 +2,9 @@ name: Snapshot on: push: - branches: [ develop, newbb ] + branches: [ develop, newbb, 20240626_develop ] pull_request: - branches: [ develop, newbb ] + branches: [ develop, newbb, 20240626_develop ] jobs: build: From 47f7e641a2961827e1ddd2ec7c06edd43b502348 Mon Sep 17 00:00:00 2001 From: Cheeeh Date: Fri, 2 Jan 2026 17:02:11 +0100 Subject: [PATCH 2/4] update to upload-artifact@v4 --- .github/workflows/snapshot.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index 15ad2f48..14f196df 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -43,7 +43,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-win64.zip publish/win64/ - name: Upload win64 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: TBot-${{ env.SNAP_VERSION }}-win64 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-win64.zip @@ -61,7 +61,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-win32.zip publish/win32/ - name: Upload win32 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: TBot-${{ env.SNAP_VERSION }}-win32 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-win32.zip @@ -81,7 +81,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-linux64.zip publish/linux64/ - name: Upload linux64 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: TBot-${{ env.SNAP_VERSION }}-linux64 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-linux64.zip @@ -101,7 +101,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-linuxarm.zip publish/linuxarm/ - name: Upload linuxarm - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: TBot-${{ env.SNAP_VERSION }}-linuxarm path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-linuxarm.zip @@ -121,7 +121,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-linuxarm64.zip publish/linuxarm64/ - name: Upload linuxarm64 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: TBot-${{ env.SNAP_VERSION }}-linuxarm64 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-linuxarm64.zip @@ -141,7 +141,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-osx64.zip publish/osx64/ - name: Upload osx64 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: TBot-${{ env.SNAP_VERSION }}-osx64 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-osx64.zip @@ -161,7 +161,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-osx-arm64.zip publish/osx-arm64/ - name: Upload osx-arm64 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: TBot-${{ env.SNAP_VERSION }}-osx-arm64 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-osx-arm64.zip From b719cb9d2510647b31f9e16e8978fed8b9314fa7 Mon Sep 17 00:00:00 2001 From: Cheeeh Date: Wed, 21 Jan 2026 13:26:29 +0100 Subject: [PATCH 3/4] create Resources Priority for AutoRepatriate --- TBot/Includes/CalculationService.cs | 46 ++++++++++++++++++++++------ TBot/Includes/ICalculationService.cs | 2 +- TBot/Workers/FleetScheduler.cs | 7 ++++- TBot/instance_settings.json | 7 ++++- 4 files changed, 50 insertions(+), 12 deletions(-) diff --git a/TBot/Includes/CalculationService.cs b/TBot/Includes/CalculationService.cs index f45390c9..b7fcd6e3 100644 --- a/TBot/Includes/CalculationService.cs +++ b/TBot/Includes/CalculationService.cs @@ -568,20 +568,48 @@ public decimal CalcOptimalFarmSpeed(Celestial origin, Coordinate destination, Sh return CalcOptimalFarmSpeed(origin.Coordinate, destination, ships, loot, ratio, maxFlightTime, researches, serverData, lfBonuses, playerClass, allyClass); } - public Resources CalcMaxTransportableResources(Ships ships, Resources resources, int hyperspaceTech, ServerData serverData, LFBonuses lfBonuses = null, CharacterClass playerClass = CharacterClass.NoClass, long deutToLeave = 0, int probeCargo = 0) { + public Resources CalcMaxTransportableResources(Ships ships, Resources resources, int hyperspaceTech, ServerData serverData, LFBonuses lfBonuses = null, CharacterClass playerClass = CharacterClass.NoClass, long deutToLeave = 0, int probeCargo = 0, (int Metal, int Crystal, int Deut) rankRess = default) { var capacity = CalcFleetCapacity(ships, serverData, hyperspaceTech, lfBonuses, playerClass, probeCargo); + Resources result = new(); + if (rankRess == default) rankRess = (3, 2, 1); if (resources.TotalResources <= capacity) { return new Resources { Deuterium = resources.Deuterium - deutToLeave, Crystal = resources.Crystal, Metal = resources.Metal }; } else { - if (resources.Deuterium - deutToLeave > capacity) { - return new Resources { Deuterium = capacity }; - } else if (capacity >= resources.Deuterium - deutToLeave && capacity < (resources.Deuterium - deutToLeave + resources.Crystal)) { - return new Resources { Deuterium = resources.Deuterium - deutToLeave, Crystal = (capacity - resources.Deuterium + deutToLeave) }; - } else if (capacity >= (resources.Deuterium - deutToLeave + resources.Crystal) && capacity < resources.TotalResources) { - return new Resources { Deuterium = resources.Deuterium - deutToLeave, Crystal = resources.Crystal, Metal = (capacity - resources.Deuterium + deutToLeave - resources.Crystal) }; - } else - return resources; + resources.Deuterium -= deutToLeave; + if (rankRess.Metal == 1) { + if (resources.Metal > capacity) return new Resources { Metal = capacity }; + else result.Metal = resources.Metal; + } else if (rankRess.Crystal == 1) { + if (resources.Crystal > capacity) return new Resources { Crystal = capacity }; + else result.Crystal = resources.Crystal; + } else if (rankRess.Deut == 1) { + if (resources.Deuterium > capacity) return new Resources { Deuterium = capacity }; + else result.Deuterium = resources.Deuterium; + } + + if (rankRess.Metal == 2) { + if (resources.Metal + result.TotalResources > capacity) return new Resources { Metal = capacity - result.TotalResources, Crystal = result.Crystal, Deuterium = result.Deuterium }; + else result.Metal = resources.Metal; + } else if (rankRess.Crystal == 2) { + if (resources.Crystal + result.TotalResources > capacity) return new Resources { Metal = result.Metal, Crystal = capacity - result.TotalResources, Deuterium = result.Deuterium }; + else result.Crystal = resources.Crystal; + } else if (rankRess.Deut == 2) { + if (resources.Deuterium + result.TotalResources > capacity) return new Resources { Metal = result.Metal, Crystal = result.Crystal, Deuterium = capacity - result.TotalResources }; + else result.Deuterium = resources.Deuterium; + } + + if (rankRess.Metal == 3) { + if (resources.Metal + result.TotalResources > capacity) return new Resources { Metal = capacity - result.TotalResources, Crystal = result.Crystal, Deuterium = result.Deuterium }; + else result.Metal = resources.Metal; + } else if (rankRess.Crystal == 3) { + if (resources.Crystal + result.TotalResources > capacity) return new Resources { Metal = result.Metal, Crystal = capacity - result.TotalResources, Deuterium = result.Deuterium }; + else result.Crystal = resources.Crystal; + } else if (rankRess.Deut == 3) { + if (resources.Deuterium + result.TotalResources > capacity) return new Resources { Metal = result.Metal, Crystal = result.Crystal, Deuterium = capacity - result.TotalResources }; + else result.Deuterium = resources.Deuterium; + } } + return result; } public long CalcShipNumberForPayload(Resources payload, Buildables buildable, int hyperspaceTech, ServerData serverData, float cargoBonus = 0, CharacterClass playerClass = CharacterClass.NoClass, int probeCapacity = 0) { diff --git a/TBot/Includes/ICalculationService.cs b/TBot/Includes/ICalculationService.cs index ab84d941..ad064bee 100644 --- a/TBot/Includes/ICalculationService.cs +++ b/TBot/Includes/ICalculationService.cs @@ -45,7 +45,7 @@ public interface ICalculationService { int CalcMaxPlanets(int astrophysics); int CalcMaxPlanets(Researches researches); bool IsAstrophysicsPositionValid(int pos, int astrophysics); - Resources CalcMaxTransportableResources(Ships ships, Resources resources, int hyperspaceTech, ServerData serverData, LFBonuses lfBonuses = null, CharacterClass playerClass = CharacterClass.NoClass, long deutToLeave = 0, int probeCargo = 0); + Resources CalcMaxTransportableResources(Ships ships, Resources resources, int hyperspaceTech, ServerData serverData, LFBonuses lfBonuses = null, CharacterClass playerClass = CharacterClass.NoClass, long deutToLeave = 0, int probeCargo = 0, (int Metal, int Crystal, int Deut) rankRess = default); long CalcMetalProduction(Buildings buildings, int position, int speedFactor, float ratio = 1, Researches researches = null, LFBonuses lfBonuses = null, CharacterClass playerClass = CharacterClass.NoClass, bool hasGeologist = false, bool hasStaff = false, int crawlers = 0, float crawlerRatio = 1); long CalcMetalProduction(int level, int position, int speedFactor, float ratio = 1, int plasma = 0, float metalLFBonus = 0, CharacterClass playerClass = CharacterClass.NoClass, bool hasGeologist = false, bool hasStaff = false, int crawlers = 0, float crawlerRatio = 1); long CalcMetalProduction(Planet planet, int speedFactor, float ratio = 1, Researches researches = null, CharacterClass playerClass = CharacterClass.NoClass, bool hasGeologist = false, bool hasStaff = false, int crawlers = 0, float crawlerRatio = 1); diff --git a/TBot/Workers/FleetScheduler.cs b/TBot/Workers/FleetScheduler.cs index 860ade9f..9ecfcd9f 100644 --- a/TBot/Workers/FleetScheduler.cs +++ b/TBot/Workers/FleetScheduler.cs @@ -1330,7 +1330,12 @@ public async Task CollectImpl(bool fromTelegram, bool noLimit = } else { ships.Add(preferredShip, tempCelestial.Ships.GetAmount(preferredShip)); } - payload = _calcService.CalcMaxTransportableResources(ships, payload, _tbotInstance.UserData.researches.HyperspaceTechnology, _tbotInstance.UserData.serverData, tempCelestial.LFBonuses, _tbotInstance.UserData.userInfo.Class, _tbotInstance.UserData.serverData.ProbeCargo); + var rankRess = ( Metal: ((int) _tbotInstance.InstanceSettings.Brain.AutoRepatriate.ResourcesRankPriority.Metal <= 0 || (int) _tbotInstance.InstanceSettings.Brain.AutoRepatriate.ResourcesRankPriority.Metal > 3) ? 3 : (int) _tbotInstance.InstanceSettings.Brain.AutoRepatriate.ResourcesRankPriority.Metal, + Crystal: ((int) _tbotInstance.InstanceSettings.Brain.AutoRepatriate.ResourcesRankPriority.Crystal <= 0 || (int) _tbotInstance.InstanceSettings.Brain.AutoRepatriate.ResourcesRankPriority.Crystal > 3) ? 2 : (int) _tbotInstance.InstanceSettings.Brain.AutoRepatriate.ResourcesRankPriority.Crystal, + Deut: ((int) _tbotInstance.InstanceSettings.Brain.AutoRepatriate.ResourcesRankPriority.Deuterium <= 0 || (int) _tbotInstance.InstanceSettings.Brain.AutoRepatriate.ResourcesRankPriority.Deuterium > 3) ? 1 : (int) _tbotInstance.InstanceSettings.Brain.AutoRepatriate.ResourcesRankPriority.Deuterium ); + if (rankRess.Metal == rankRess.Crystal || rankRess.Metal == rankRess.Deut || rankRess.Crystal == rankRess.Deut) + rankRess = ( Metal: 3, Crystal: 2, Deut: 1 ); + payload = _calcService.CalcMaxTransportableResources(ships, payload, _tbotInstance.UserData.researches.HyperspaceTechnology, _tbotInstance.UserData.serverData, tempCelestial.LFBonuses, _tbotInstance.UserData.userInfo.Class, 0, _tbotInstance.UserData.serverData.ProbeCargo, rankRess); if (payload.TotalResources > 0) { var fleetId = await SendFleet(tempCelestial, ships, destinationCoordinate, Missions.Transport, Speeds.HundredPercent, payload); diff --git a/TBot/instance_settings.json b/TBot/instance_settings.json index 6f77812b..6c140850 100644 --- a/TBot/instance_settings.json +++ b/TBot/instance_settings.json @@ -21,7 +21,7 @@ "Height": 1080, "Timezone": "Europe/London", "Lang": "en" - } + } }, "General": { "Host": "localhost", @@ -343,6 +343,11 @@ "Type": "Moon" } ], + "ResourcesRankPriority": { + "Metal": 1, + "Crystal": 2, + "Deuterium": 3 + }, "TargetAssociateMoon": false, "CargoType": "LargeCargo", "RandomOrder": false, From b11a2de07d580b9eae095dca3acd526b128dc022 Mon Sep 17 00:00:00 2001 From: Cheeeh Date: Wed, 21 Jan 2026 13:34:13 +0100 Subject: [PATCH 4/4] Change default settings and remove workflow changes --- .github/workflows/snapshot.yml | 18 +++++++++--------- TBot/instance_settings.json | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index 14f196df..afc88037 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -2,9 +2,9 @@ name: Snapshot on: push: - branches: [ develop, newbb, 20240626_develop ] + branches: [ develop, newbb ] pull_request: - branches: [ develop, newbb, 20240626_develop ] + branches: [ develop, newbb ] jobs: build: @@ -43,7 +43,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-win64.zip publish/win64/ - name: Upload win64 - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v2 with: name: TBot-${{ env.SNAP_VERSION }}-win64 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-win64.zip @@ -61,7 +61,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-win32.zip publish/win32/ - name: Upload win32 - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v2 with: name: TBot-${{ env.SNAP_VERSION }}-win32 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-win32.zip @@ -81,7 +81,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-linux64.zip publish/linux64/ - name: Upload linux64 - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v2 with: name: TBot-${{ env.SNAP_VERSION }}-linux64 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-linux64.zip @@ -101,7 +101,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-linuxarm.zip publish/linuxarm/ - name: Upload linuxarm - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v2 with: name: TBot-${{ env.SNAP_VERSION }}-linuxarm path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-linuxarm.zip @@ -121,7 +121,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-linuxarm64.zip publish/linuxarm64/ - name: Upload linuxarm64 - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v2 with: name: TBot-${{ env.SNAP_VERSION }}-linuxarm64 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-linuxarm64.zip @@ -141,7 +141,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-osx64.zip publish/osx64/ - name: Upload osx64 - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v2 with: name: TBot-${{ env.SNAP_VERSION }}-osx64 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-osx64.zip @@ -161,7 +161,7 @@ jobs: with: args: zip -qq -r TBot-${{ env.SNAP_VERSION }}-osx-arm64.zip publish/osx-arm64/ - name: Upload osx-arm64 - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v2 with: name: TBot-${{ env.SNAP_VERSION }}-osx-arm64 path: ${{ github.workspace }}/TBot-${{ env.SNAP_VERSION }}-osx-arm64.zip diff --git a/TBot/instance_settings.json b/TBot/instance_settings.json index 6c140850..2ad47349 100644 --- a/TBot/instance_settings.json +++ b/TBot/instance_settings.json @@ -344,9 +344,9 @@ } ], "ResourcesRankPriority": { - "Metal": 1, + "Metal": 3, "Crystal": 2, - "Deuterium": 3 + "Deuterium": 1 }, "TargetAssociateMoon": false, "CargoType": "LargeCargo",