wip close round/campaign/war + refacto json None
This commit is contained in:
parent
4c8086caf4
commit
6cbb7c6534
26 changed files with 474 additions and 108 deletions
23
src/warchron/model/influence_service.py
Normal file
23
src/warchron/model/influence_service.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
from warchron.model.war import War
|
||||
from warchron.model.campaign import Campaign
|
||||
from warchron.model.battle import Battle
|
||||
from warchron.model.war_event import InfluenceGained
|
||||
|
||||
|
||||
class InfluenceService:
|
||||
|
||||
@staticmethod
|
||||
def apply_battle_result(war: War, campaign: Campaign, battle: Battle) -> None:
|
||||
if battle.winner_id is None:
|
||||
return
|
||||
sector = campaign.sectors[battle.sector_id]
|
||||
# if sector grants influence
|
||||
if sector.influence_objective_id and war.influence_token:
|
||||
participant = war.participants[battle.winner_id]
|
||||
participant.events.append(
|
||||
InfluenceGained(
|
||||
participant_id=participant.id,
|
||||
amount=1,
|
||||
source=f"battle:{battle.sector_id}",
|
||||
)
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue