Stream turn initialization events from the UI.

This commit is contained in:
Dan Albert 2022-02-26 13:40:39 -08:00
parent 762bc328e1
commit a3a5c59327
3 changed files with 21 additions and 17 deletions

View File

@ -3,6 +3,7 @@ from collections.abc import Callable
from PySide2.QtWidgets import QGroupBox, QLabel, QPushButton, QVBoxLayout from PySide2.QtWidgets import QGroupBox, QLabel, QPushButton, QVBoxLayout
from game import Game from game import Game
from game.server import EventStream
from game.sim.gameupdateevents import GameUpdateEvents from game.sim.gameupdateevents import GameUpdateEvents
from game.theater import ControlPoint from game.theater import ControlPoint
from qt_ui.windows.GameUpdateSignal import GameUpdateSignal from qt_ui.windows.GameUpdateSignal import GameUpdateSignal
@ -57,5 +58,7 @@ class QGroundForcesStrategy(QGroupBox):
self.cp.base.affect_strength(amount) self.cp.base.affect_strength(amount)
enemy_point.base.affect_strength(-amount) enemy_point.base.affect_strength(-amount)
# Clear the ATO to replan missions affected by the front line. # Clear the ATO to replan missions affected by the front line.
self.game.initialize_turn(GameUpdateEvents()) events = GameUpdateEvents()
self.game.initialize_turn(events)
EventStream.put_nowait(events)
GameUpdateSignal.get_instance().updateGame(self.game) GameUpdateSignal.get_instance().updateGame(self.game)

View File

@ -1,11 +1,12 @@
from collections import defaultdict
import logging import logging
from collections import defaultdict
from dataclasses import dataclass, field from dataclasses import dataclass, field
from typing import Type from typing import Type
from PySide2.QtCore import Signal from PySide2.QtCore import Signal
from PySide2.QtGui import Qt from PySide2.QtGui import Qt
from PySide2.QtWidgets import ( from PySide2.QtWidgets import (
QCheckBox,
QComboBox, QComboBox,
QDialog, QDialog,
QGridLayout, QGridLayout,
@ -14,7 +15,6 @@ from PySide2.QtWidgets import (
QPushButton, QPushButton,
QSpinBox, QSpinBox,
QVBoxLayout, QVBoxLayout,
QCheckBox,
QWidget, QWidget,
) )
from dcs.unittype import UnitType from dcs.unittype import UnitType
@ -22,20 +22,19 @@ from dcs.unittype import UnitType
from game import Game from game import Game
from game.armedforces.forcegroup import ForceGroup from game.armedforces.forcegroup import ForceGroup
from game.data.groups import GroupRole, GroupTask from game.data.groups import GroupRole, GroupTask
from game.point_with_heading import PointWithHeading
from game.sim.gameupdateevents import GameUpdateEvents
from game.theater import TheaterGroundObject
from game.theater.theatergroundobject import (
VehicleGroupGroundObject,
SamGroundObject,
EwrGroundObject,
)
from game.theater.theatergroup import TheaterGroup
from game.layout.layout import ( from game.layout.layout import (
LayoutException, LayoutException,
TgoLayout, TgoLayout,
TgoLayoutGroup, TgoLayoutGroup,
) )
from game.server import EventStream
from game.sim.gameupdateevents import GameUpdateEvents
from game.theater import TheaterGroundObject
from game.theater.theatergroundobject import (
EwrGroundObject,
SamGroundObject,
VehicleGroupGroundObject,
)
from qt_ui.uiconstants import EVENT_ICONS from qt_ui.uiconstants import EVENT_ICONS
from qt_ui.windows.GameUpdateSignal import GameUpdateSignal from qt_ui.windows.GameUpdateSignal import GameUpdateSignal
@ -219,7 +218,9 @@ class QGroundObjectTemplateLayout(QGroupBox):
) )
# Replan redfor missions # Replan redfor missions
self.game.initialize_turn(GameUpdateEvents(), for_red=True, for_blue=False) events = GameUpdateEvents()
self.game.initialize_turn(events, for_red=True, for_blue=False)
EventStream.put_nowait(events)
GameUpdateSignal.get_instance().updateGame(self.game) GameUpdateSignal.get_instance().updateGame(self.game)

View File

@ -14,13 +14,11 @@ from dcs import Point
from game import Game from game import Game
from game.config import REWARDS from game.config import REWARDS
from game.data.building_data import FORTIFICATION_BUILDINGS from game.data.building_data import FORTIFICATION_BUILDINGS
from game.server import EventStream
from game.sim.gameupdateevents import GameUpdateEvents from game.sim.gameupdateevents import GameUpdateEvents
from game.theater import ControlPoint, TheaterGroundObject from game.theater import ControlPoint, TheaterGroundObject
from game.theater.theatergroundobject import ( from game.theater.theatergroundobject import (
BuildingGroundObject, BuildingGroundObject,
EwrGroundObject,
SamGroundObject,
VehicleGroupGroundObject,
) )
from qt_ui.uiconstants import EVENT_ICONS from qt_ui.uiconstants import EVENT_ICONS
from qt_ui.widgets.QBudgetBox import QBudgetBox from qt_ui.widgets.QBudgetBox import QBudgetBox
@ -210,7 +208,9 @@ class QGroundObjectMenu(QDialog):
package.target == self.ground_object package.target == self.ground_object
for package in self.game.ato_for(player=False).packages for package in self.game.ato_for(player=False).packages
): ):
self.game.initialize_turn(GameUpdateEvents(), for_red=True, for_blue=False) events = GameUpdateEvents()
self.game.initialize_turn(events, for_red=True, for_blue=False)
EventStream.put_nowait(events)
self.do_refresh_layout() self.do_refresh_layout()
GameUpdateSignal.get_instance().updateGame(self.game) GameUpdateSignal.get_instance().updateGame(self.game)