feat(engine): add story arc system for narrative-driven world
- Add StoryArc and StoryEventResult models - Create story_arcs.py with progress tracking logic - Implement two story arcs: civil_unrest and golden_age - Progress updates based on faction power balance - Trigger story events when progress reaches threshold - Add 3 tests for story arc system 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,7 @@ from .models import StepRequest, StepResponse
|
||||
from .state import load_state, save_state
|
||||
from .engine import process_events, generate_actions, check_and_trigger_global_event
|
||||
from .factions import check_and_trigger_faction_event
|
||||
from .story_arcs import update_story_progress, check_and_trigger_story_event
|
||||
|
||||
app = FastAPI(title="AI Town Engine", version="0.1.0")
|
||||
|
||||
@@ -22,6 +23,12 @@ def step(request: StepRequest) -> StepResponse:
|
||||
# 检查并触发阵营事件
|
||||
faction_event_result = check_and_trigger_faction_event(state)
|
||||
|
||||
# 更新剧情进度
|
||||
update_story_progress(state)
|
||||
|
||||
# 检查并触发剧情事件
|
||||
story_event_result = check_and_trigger_story_event(state)
|
||||
|
||||
# 生成 agent 行动
|
||||
actions = generate_actions(state)
|
||||
|
||||
@@ -32,7 +39,8 @@ def step(request: StepRequest) -> StepResponse:
|
||||
world_state=state,
|
||||
actions=actions,
|
||||
global_event=global_event_result,
|
||||
triggered_faction_event=faction_event_result
|
||||
triggered_faction_event=faction_event_result,
|
||||
story_event=story_event_result
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user