wip close round/campaign/war + refacto json None

This commit is contained in:
Maxime Réaux 2026-02-11 19:22:43 +01:00
parent 4c8086caf4
commit 6cbb7c6534
26 changed files with 474 additions and 108 deletions

View file

@ -86,7 +86,7 @@ class War:
# Objective methods
def add_objective(self, name: str, description: str) -> Objective:
def add_objective(self, name: str, description: str | None) -> Objective:
obj = Objective(name, description)
self.objectives[obj.id] = obj
return obj
@ -104,7 +104,7 @@ class War:
return obj.name if obj else ""
def update_objective(
self, objective_id: str, *, name: str, description: str
self, objective_id: str, *, name: str, description: str | None
) -> None:
obj = self.get_objective(objective_id)
obj.set_name(name)
@ -173,6 +173,9 @@ class War:
def get_default_campaign_values(self) -> Dict[str, Any]:
return {"month": datetime.now().month}
def all_campaigns_finished(self) -> bool:
return all(c.is_over for c in self.campaigns)
def add_campaign(self, name: str, month: int | None = None) -> Campaign:
if month is None:
month = self.get_default_campaign_values()["month"]
@ -247,10 +250,10 @@ class War:
sector_id: str,
*,
name: str,
round_id: str,
major_id: str,
minor_id: str,
influence_id: str,
round_id: str | None,
major_id: str | None,
minor_id: str | None,
influence_id: str | None,
) -> None:
camp = self.get_campaign_by_sector(sector_id)
camp.update_sector(