diff --git a/game/game.py b/game/game.py
index 9e1cb00c..6ce7b178 100644
--- a/game/game.py
+++ b/game/game.py
@@ -107,8 +107,6 @@ class Game:
self.__culling_zones: List[Point] = []
self.__destroyed_units: list[dict[str, Union[float, str]]] = []
self.savepath = ""
- self.budget = player_budget
- self.enemy_budget = enemy_budget
self.current_unit_id = 0
self.current_group_id = 0
self.name_generator = naming.namegen
diff --git a/qt_ui/widgets/QBudgetBox.py b/qt_ui/widgets/QBudgetBox.py
index e44713a8..30713c92 100644
--- a/qt_ui/widgets/QBudgetBox.py
+++ b/qt_ui/widgets/QBudgetBox.py
@@ -1,6 +1,7 @@
from PySide2.QtWidgets import QLabel, QHBoxLayout, QGroupBox, QPushButton
import qt_ui.uiconstants as CONST
+from game import Game
from game.income import Income
from qt_ui.windows.finances.QFinancesMenu import QFinancesMenu
@@ -10,7 +11,7 @@ class QBudgetBox(QGroupBox):
UI Component to display current budget and player's money
"""
- def __init__(self, game):
+ def __init__(self, game: Game):
super(QBudgetBox, self).__init__("Budget")
self.game = game
@@ -40,7 +41,7 @@ class QBudgetBox(QGroupBox):
return
self.game = game
- self.setBudget(self.game.budget, Income(self.game, player=True).total)
+ self.setBudget(self.game.blue.budget, Income(self.game, player=True).total)
self.finances.setEnabled(True)
def openFinances(self):
diff --git a/qt_ui/windows/basemenu/QBaseMenu2.py b/qt_ui/windows/basemenu/QBaseMenu2.py
index 20dbf8f1..d10e5bc7 100644
--- a/qt_ui/windows/basemenu/QBaseMenu2.py
+++ b/qt_ui/windows/basemenu/QBaseMenu2.py
@@ -108,7 +108,7 @@ class QBaseMenu2(QDialog):
capture_button.clicked.connect(self.cheat_capture)
self.budget_display = QLabel(
- QRecruitBehaviour.BUDGET_FORMAT.format(self.game_model.game.budget)
+ QRecruitBehaviour.BUDGET_FORMAT.format(self.game_model.game.blue.budget)
)
self.budget_display.setAlignment(Qt.AlignRight | Qt.AlignBottom)
self.budget_display.setProperty("style", "budget-label")
@@ -139,7 +139,7 @@ class QBaseMenu2(QDialog):
@property
def can_afford_runway_repair(self) -> bool:
- return self.game_model.game.budget >= db.RUNWAY_REPAIR_COST
+ return self.game_model.game.blue.budget >= db.RUNWAY_REPAIR_COST
def begin_runway_repair(self) -> None:
if not self.can_afford_runway_repair:
@@ -147,7 +147,7 @@ class QBaseMenu2(QDialog):
self,
"Cannot repair runway",
f"Runway repair costs ${db.RUNWAY_REPAIR_COST}M but you have "
- f"only ${self.game_model.game.budget}M available.",
+ f"only ${self.game_model.game.blue.budget}M available.",
QMessageBox.Ok,
)
return
@@ -161,7 +161,7 @@ class QBaseMenu2(QDialog):
return
self.cp.begin_runway_repair()
- self.game_model.game.budget -= db.RUNWAY_REPAIR_COST
+ self.game_model.game.blue.budget -= db.RUNWAY_REPAIR_COST
self.update_repair_button()
self.update_intel_summary()
GameUpdateSignal.get_instance().updateGame(self.game_model.game)
@@ -257,4 +257,6 @@ class QBaseMenu2(QDialog):
NewUnitTransferDialog(self.game_model, self.cp, parent=self.window()).show()
def update_budget(self, game: Game) -> None:
- self.budget_display.setText(QRecruitBehaviour.BUDGET_FORMAT.format(game.budget))
+ self.budget_display.setText(
+ QRecruitBehaviour.BUDGET_FORMAT.format(game.blue.budget)
+ )
diff --git a/qt_ui/windows/basemenu/QRecruitBehaviour.py b/qt_ui/windows/basemenu/QRecruitBehaviour.py
index 5eb7534a..b3ab3d8f 100644
--- a/qt_ui/windows/basemenu/QRecruitBehaviour.py
+++ b/qt_ui/windows/basemenu/QRecruitBehaviour.py
@@ -103,11 +103,11 @@ class QRecruitBehaviour:
@property
def budget(self) -> float:
- return self.game_model.game.budget
+ return self.game_model.game.blue.budget
@budget.setter
def budget(self, value: int) -> None:
- self.game_model.game.budget = value
+ self.game_model.game.blue.budget = value
def add_purchase_row(
self,
diff --git a/qt_ui/windows/finances/QFinancesMenu.py b/qt_ui/windows/finances/QFinancesMenu.py
index 4ef8b281..c1eec23e 100644
--- a/qt_ui/windows/finances/QFinancesMenu.py
+++ b/qt_ui/windows/finances/QFinancesMenu.py
@@ -57,10 +57,7 @@ class FinancesLayout(QGridLayout):
middle=f"Income multiplier: {income.multiplier:.1f}",
right=f"{income.total}M",
)
- if player:
- budget = game.budget
- else:
- budget = game.enemy_budget
+ budget = game.coalition_for(player).budget
self.add_row(middle="Balance", right=f"{budget}M")
self.setRowStretch(next(self.row), 1)
diff --git a/qt_ui/windows/groundobject/QGroundObjectMenu.py b/qt_ui/windows/groundobject/QGroundObjectMenu.py
index 0e629db8..5622682f 100644
--- a/qt_ui/windows/groundobject/QGroundObjectMenu.py
+++ b/qt_ui/windows/groundobject/QGroundObjectMenu.py
@@ -237,8 +237,8 @@ class QGroundObjectMenu(QDialog):
self.total_value = total_value
def repair_unit(self, group, unit, price):
- if self.game.budget > price:
- self.game.budget -= price
+ if self.game.blue.budget > price:
+ self.game.blue.budget -= price
group.units_losts = [u for u in group.units_losts if u.id != unit.id]
group.units.append(unit)
GameUpdateSignal.get_instance().updateGame(self.game)
@@ -256,7 +256,7 @@ class QGroundObjectMenu(QDialog):
def sell_all(self):
self.update_total_value()
- self.game.budget = self.game.budget + self.total_value
+ self.game.blue.budget = self.game.blue.budget + self.total_value
self.ground_object.groups = []
# Replan if the tgo was a target of the redfor
@@ -433,12 +433,12 @@ class QBuyGroupForGroundObjectDialog(QDialog):
logging.info("Buying Armor ")
utype = self.buyArmorCombo.itemData(self.buyArmorCombo.currentIndex())
price = utype.price * self.amount.value() - self.current_group_value
- if price > self.game.budget:
+ if price > self.game.blue.budget:
self.error_money()
self.close()
return
else:
- self.game.budget -= price
+ self.game.blue.budget -= price
# Generate Armor
group = generate_armor_group_of_type_and_size(
@@ -454,11 +454,11 @@ class QBuyGroupForGroundObjectDialog(QDialog):
def buySam(self):
sam_generator = self.samCombo.itemData(self.samCombo.currentIndex())
price = sam_generator.price - self.current_group_value
- if price > self.game.budget:
+ if price > self.game.blue.budget:
self.error_money()
return
else:
- self.game.budget -= price
+ self.game.blue.budget -= price
self.ground_object.groups = list(sam_generator.groups)
@@ -470,11 +470,11 @@ class QBuyGroupForGroundObjectDialog(QDialog):
def buy_ewr(self):
ewr_generator = self.ewr_selector.itemData(self.ewr_selector.currentIndex())
price = ewr_generator.price - self.current_group_value
- if price > self.game.budget:
+ if price > self.game.blue.budget:
self.error_money()
return
else:
- self.game.budget -= price
+ self.game.blue.budget -= price
self.ground_object.groups = [ewr_generator.vg]
diff --git a/qt_ui/windows/settings/QSettingsWindow.py b/qt_ui/windows/settings/QSettingsWindow.py
index 5aba6a7d..188963d7 100644
--- a/qt_ui/windows/settings/QSettingsWindow.py
+++ b/qt_ui/windows/settings/QSettingsWindow.py
@@ -873,7 +873,7 @@ class QSettingsWindow(QDialog):
def cheatMoney(self, amount):
logging.info("CHEATING FOR AMOUNT : " + str(amount) + "M")
- self.game.budget += amount
+ self.game.blue.budget += amount
if amount > 0:
self.game.informations.append(
Information(