tie-break for narrative points
This commit is contained in:
parent
d72c9902d4
commit
53b1fc916c
8 changed files with 194 additions and 17 deletions
|
|
@ -2,7 +2,6 @@ from typing import TYPE_CHECKING
|
|||
|
||||
if TYPE_CHECKING:
|
||||
from warchron.controller.app_controller import AppController
|
||||
|
||||
from warchron.model.war import War
|
||||
from warchron.model.campaign import Campaign
|
||||
from warchron.model.round import Round
|
||||
|
|
@ -45,6 +44,23 @@ class CampaignClosureWorkflow(ClosureWorkflow):
|
|||
TieResolver.apply_bids(war, tie.context_type, tie.context_id, bids)
|
||||
TieResolver.resolve_tie_state(war, tie, bids)
|
||||
ties = TieResolver.find_campaign_ties(war, campaign.id)
|
||||
for objective_id in war.objectives:
|
||||
ties = TieResolver.find_campaign_objective_ties(
|
||||
war,
|
||||
campaign.id,
|
||||
objective_id,
|
||||
)
|
||||
while ties:
|
||||
bids_map = self.app.campaigns.resolve_ties(war, ties)
|
||||
for tie in ties:
|
||||
bids = bids_map[(tie.context_type, tie.context_id, tie.score_value)]
|
||||
TieResolver.apply_bids(war, tie.context_type, tie.context_id, bids)
|
||||
TieResolver.resolve_tie_state(war, tie, bids)
|
||||
ties = TieResolver.find_campaign_objective_ties(
|
||||
war,
|
||||
campaign.id,
|
||||
objective_id,
|
||||
)
|
||||
ClosureService.finalize_campaign(campaign)
|
||||
|
||||
|
||||
|
|
@ -60,4 +76,19 @@ class WarClosureWorkflow(ClosureWorkflow):
|
|||
TieResolver.apply_bids(war, tie.context_type, tie.context_id, bids)
|
||||
TieResolver.resolve_tie_state(war, tie, bids)
|
||||
ties = TieResolver.find_war_ties(war)
|
||||
for objective_id in war.objectives:
|
||||
ties = TieResolver.find_war_objective_ties(
|
||||
war,
|
||||
objective_id,
|
||||
)
|
||||
while ties:
|
||||
bids_map = self.app.wars.resolve_ties(war, ties)
|
||||
for tie in ties:
|
||||
bids = bids_map[(tie.context_type, tie.context_id, tie.score_value)]
|
||||
TieResolver.apply_bids(war, tie.context_type, tie.context_id, bids)
|
||||
TieResolver.resolve_tie_state(war, tie, bids)
|
||||
ties = TieResolver.find_war_objective_ties(
|
||||
war,
|
||||
objective_id,
|
||||
)
|
||||
ClosureService.finalize_war(war)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue