File size: 1,382 Bytes
23878c4
 
 
 
 
 
acb2712
23878c4
 
 
 
 
 
acb2712
23878c4
 
 
 
3d60dc7
 
 
 
 
 
 
23878c4
 
f2aa0c0
 
23878c4
 
 
 
 
 
3d60dc7
 
 
 
 
23878c4
 
 
 
 
 
 
 
 
f2aa0c0
23878c4
 
f2aa0c0
23878c4
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
"""
core — Pure game engine for the Nation Simulator.

No framework dependencies.  The entire game can be run with::

    from core import NationGame

    game = NationGame(seed=42)
    obs = game.reset()

    allocations = {name: baseline * 1.3 for name, baseline in game.config.SECTOR_BASELINES.items()}
    result = game.step(allocations)
    print(result.reward.total, result.done)
"""

from .config import DEFAULT_CONFIG, GameConfig
from .events import Event, EventEngine
from .game import NationGame, StepResult
from .parliament import (
    DebateMessage,
    ParliamentRoundState,
    Proposal,
    ResolutionResult,
    VoteRecord,
)
from .population import PopulationTracker
from .productivity import ProductivityTracker
from .revenue import calculate_revenue, compute_thresholds, revenue_factor
from .reward import RewardBreakdown, RewardResult, compute_reward
from .sector import Sector
from .treasury import Treasury

__all__ = [
    "NationGame",
    "StepResult",
    "ParliamentRoundState",
    "Proposal",
    "VoteRecord",
    "DebateMessage",
    "ResolutionResult",
    "GameConfig",
    "DEFAULT_CONFIG",
    "Sector",
    "Treasury",
    "EventEngine",
    "Event",
    "ProductivityTracker",
    "PopulationTracker",
    "revenue_factor",
    "calculate_revenue",
    "compute_thresholds",
    "compute_reward",
    "RewardBreakdown",
    "RewardResult",
]