manager.py 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # coding: utf-8
  2. import typing
  3. from synergine2.config import Config
  4. from synergine2.log import get_logger
  5. from opencombat.strategy.team.model import TeamModel
  6. from opencombat.strategy.team.stash import TeamStash
  7. from opencombat.strategy.troops import TroopClassBuilder
  8. from opencombat.strategy.unit.stash import UnitStash
  9. class TroopManager(object):
  10. def __init__(
  11. self,
  12. config: Config,
  13. units_file_path: str,
  14. teams_file_path: str,
  15. ) -> None:
  16. self._config = config
  17. self._logger = get_logger('TroopManager', config)
  18. self._builder = TroopClassBuilder(config)
  19. self._unit_stash = self._builder.get_unit_stash(
  20. units_file_path,
  21. )
  22. self._team_stash = self._builder.get_team_stash(
  23. units_file_path,
  24. teams_file_path,
  25. )
  26. @property
  27. def team_stash(self) -> TeamStash:
  28. return self._team_stash
  29. @property
  30. def unit_stash(self) -> UnitStash:
  31. return self._unit_stash
  32. def get_troop_dump(
  33. self,
  34. countries_troops: typing.Dict[str, typing.List[TeamModel]],
  35. ):
  36. dumper = self._builder.get_troop_dumper()
  37. return dumper.get_troop_dump(countries_troops)