Skip to content
18 changes: 18 additions & 0 deletions src/TSHIndividualGameTracker.py
Original file line number Diff line number Diff line change
Expand Up @@ -311,3 +311,21 @@ def SwapStageResults(self):
StateManager.Set(f"score.{self.scoreboard_number}.stages.{i+1}.t2_win", stageTeam2Check.isChecked()),
StateManager.Set(f"score.{self.scoreboard_number}.stages.{i+1}.tie", stageTieCheck.isChecked()),


def SetStage(self, index=0, stage_codename=None):
StateManager.BlockSaving()
print(f"Setting stage for game {index+1}")
if self.stage_widget_list:
target = self.findChild(QComboBox, f"stageMenu_{index}")
if stage_codename:
for i in range(1, TSHGameAssetManager.instance.stageModelWithBlank.rowCount()):
current_menu_item_data = TSHGameAssetManager.instance.stageModelWithBlank.item(i).data(Qt.ItemDataRole.UserRole)
if current_menu_item_data.get("codename") in stage_codename:
print(i, stage_codename)
target.setCurrentIndex(i)
target.currentIndexChanged.emit(i)
else:
target.setCurrentIndex(0)
target.currentIndexChanged.emit(0)

StateManager.ReleaseSaving()
10 changes: 10 additions & 0 deletions src/TSHStageStrikeLogic.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from copy import deepcopy
from loguru import logger
from qtpy.QtCore import QObject, Signal
from .TSHScoreboardManager import TSHScoreboardManager


class TSHStageStrikeStateSignals(QObject):
Expand Down Expand Up @@ -83,6 +84,15 @@ def ExportState(self):
})
self.signals.state_updated.emit()

if len(self.history) > 1:
try:
last_known_state = self.history[-1]
sb_widget = TSHScoreboardManager.instance.GetScoreboard(1) # Update the game tracker
for i in range(1, len(last_known_state.stagesPicked)):
sb_widget.individualGameTracker.SetStage(i-1, last_known_state.stagesPicked[i])
except IndexError as e:
logger.warning("Could not find scoreboard 1 when piloting the stage history!")

def SetRuleset(self, ruleset):
self.ruleset = ruleset
self.Initialize()
Expand Down