mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Fix initialization order of turn 0.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/674
This commit is contained in:
parent
58ffabe2d6
commit
e2f20a7a65
35
game/game.py
35
game/game.py
@ -97,7 +97,9 @@ class Game:
|
|||||||
self.player_country = db.FACTIONS[player_name].country
|
self.player_country = db.FACTIONS[player_name].country
|
||||||
self.enemy_name = enemy_name
|
self.enemy_name = enemy_name
|
||||||
self.enemy_country = db.FACTIONS[enemy_name].country
|
self.enemy_country = db.FACTIONS[enemy_name].country
|
||||||
self.turn = 0
|
# pass_turn() will be called when initialization is complete which will
|
||||||
|
# increment this to turn 0 before it reaches the player.
|
||||||
|
self.turn = -1
|
||||||
# NB: This is the *start* date. It is never updated.
|
# NB: This is the *start* date. It is never updated.
|
||||||
self.date = date(start_date.year, start_date.month, start_date.day)
|
self.date = date(start_date.year, start_date.month, start_date.day)
|
||||||
self.game_stats = GameStats()
|
self.game_stats = GameStats()
|
||||||
@ -135,19 +137,6 @@ class Game:
|
|||||||
|
|
||||||
self.on_load()
|
self.on_load()
|
||||||
|
|
||||||
# Turn 0 procurement. We don't actually have any missions to plan, but
|
|
||||||
# the planner will tell us what it would like to plan so we can use that
|
|
||||||
# to drive purchase decisions.
|
|
||||||
self.transfers.order_airlift_assets()
|
|
||||||
|
|
||||||
blue_planner = CoalitionMissionPlanner(self, is_player=True)
|
|
||||||
blue_planner.plan_missions()
|
|
||||||
|
|
||||||
red_planner = CoalitionMissionPlanner(self, is_player=False)
|
|
||||||
red_planner.plan_missions()
|
|
||||||
|
|
||||||
self.plan_procurement()
|
|
||||||
|
|
||||||
def __getstate__(self) -> Dict[str, Any]:
|
def __getstate__(self) -> Dict[str, Any]:
|
||||||
state = self.__dict__.copy()
|
state = self.__dict__.copy()
|
||||||
# Avoid persisting any volatile types that can be deterministically
|
# Avoid persisting any volatile types that can be deterministically
|
||||||
@ -287,8 +276,7 @@ class Game:
|
|||||||
self.blue_ato.clear()
|
self.blue_ato.clear()
|
||||||
self.red_ato.clear()
|
self.red_ato.clear()
|
||||||
|
|
||||||
def pass_turn(self, no_action: bool = False) -> None:
|
def finish_turn(self, skipped: bool = False) -> None:
|
||||||
logging.info("Pass turn")
|
|
||||||
self.informations.append(
|
self.informations.append(
|
||||||
Information("End of turn #" + str(self.turn), "-" * 40, 0)
|
Information("End of turn #" + str(self.turn), "-" * 40, 0)
|
||||||
)
|
)
|
||||||
@ -303,10 +291,7 @@ class Game:
|
|||||||
for control_point in self.theater.controlpoints:
|
for control_point in self.theater.controlpoints:
|
||||||
control_point.process_turn(self)
|
control_point.process_turn(self)
|
||||||
|
|
||||||
self.process_enemy_income()
|
if not skipped and self.turn > 1:
|
||||||
self.process_player_income()
|
|
||||||
|
|
||||||
if not no_action and self.turn > 1:
|
|
||||||
for cp in self.theater.player_points():
|
for cp in self.theater.player_points():
|
||||||
cp.base.affect_strength(+PLAYER_BASE_STRENGTH_RECOVERY)
|
cp.base.affect_strength(+PLAYER_BASE_STRENGTH_RECOVERY)
|
||||||
else:
|
else:
|
||||||
@ -316,6 +301,16 @@ class Game:
|
|||||||
|
|
||||||
self.conditions = self.generate_conditions()
|
self.conditions = self.generate_conditions()
|
||||||
|
|
||||||
|
self.process_enemy_income()
|
||||||
|
self.process_player_income()
|
||||||
|
|
||||||
|
def begin_turn_0(self) -> None:
|
||||||
|
self.turn = 0
|
||||||
|
self.initialize_turn()
|
||||||
|
|
||||||
|
def pass_turn(self, no_action: bool = False) -> None:
|
||||||
|
logging.info("Pass turn")
|
||||||
|
self.finish_turn(no_action)
|
||||||
self.initialize_turn()
|
self.initialize_turn()
|
||||||
|
|
||||||
# Autosave progress
|
# Autosave progress
|
||||||
|
|||||||
@ -106,6 +106,7 @@ class GameGenerator:
|
|||||||
|
|
||||||
GroundObjectGenerator(game, self.generator_settings).generate()
|
GroundObjectGenerator(game, self.generator_settings).generate()
|
||||||
game.settings.version = VERSION
|
game.settings.version = VERSION
|
||||||
|
game.begin_turn_0()
|
||||||
return game
|
return game
|
||||||
|
|
||||||
def prepare_theater(self) -> None:
|
def prepare_theater(self) -> None:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user