Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
6096c2c
docs: 创业沙盘 Godot 2D 全栈实现设计文档
Azhu9701 Jul 12, 2026
f178a1c
docs: 更新创业沙盘设计文档和Rust实施计划
Azhu9701 Jul 12, 2026
5d2ed34
feat(business-sandbox): Task 1 - 游戏状态数据结构和错误类型
Azhu9701 Jul 12, 2026
898733b
feat(business-sandbox): Task 2 - 财务计算模块(贴现/折旧/贷款/税务)
Azhu9701 Jul 12, 2026
77270b9
feat(business-sandbox): Task 3 - 生产与供应链模块(研发/原料/产线)
Azhu9701 Jul 12, 2026
115a9d0
feat(business-sandbox): Task 4 - 市场与订单模块(营销/选单/延期惩罚)
Azhu9701 Jul 12, 2026
1150fb0
feat(business-sandbox): Task 5 - 游戏引擎核心(时序循环/季度10步/年末结算/破产判定)
Azhu9701 Jul 12, 2026
29c06af
feat(business-sandbox): Task 6 - WebSocket路由和事件广播
Azhu9701 Jul 12, 2026
b4ee5d5
feat(business-sandbox): Task 7 - AI竞争对手(复用Gateway/Soul)
Azhu9701 Jul 12, 2026
e810134
feat(godot): Task 8 - 创业沙盘Godot 2D项目框架(WS单例+主场景+UI布局)
Azhu9701 Jul 12, 2026
c4d92b4
chore: 忽略 Godot 编辑器缓存目录
Azhu9701 Jul 12, 2026
393d702
feat(godot): 遵循 Godot 4.3+ 规范的代码优化(静态类型/信号管理/自动重连/UI布局)
Azhu9701 Jul 12, 2026
cb04ce3
docs: Godot UI 实施计划(生产线/财报/订货会/市场面板)
Azhu9701 Jul 12, 2026
2f7a517
feat(godot): Task 1 - 生产线视窗(4条产线/进度条/状态标签/产品图标)
Azhu9701 Jul 12, 2026
3041632
feat(godot): Task 2 - 库存看板(原料/在制品/成品/应收款)
Azhu9701 Jul 12, 2026
3dc632c
feat(godot): Task 3 - 年度报告弹窗(损益表/资产负债表/费用明细/关键指标)
Azhu9701 Jul 12, 2026
e0619bc
feat(godot): Task 4 - 订货会弹窗(市场预测图/订单卡片/选中交互)
Azhu9701 Jul 12, 2026
188e029
feat(godot): Task 5&6 - 市场状态面板 + 工厂/贷款/贴现弹窗
Azhu9701 Jul 12, 2026
e68d8a4
fix(business-sandbox): 修复前后端数据格式不匹配和serde snake_case
Azhu9701 Jul 12, 2026
f263813
feat(godot): 应用opendesign设计主题(品牌色#c7000b/高对比文字/白卡片)
Azhu9701 Jul 12, 2026
e132ac8
feat(godot): 重写布局匹配opendesign设计稿(左-中-右三栏+白卡片+红色顶底栏线)
Azhu9701 Jul 12, 2026
937f95a
fix(godot): 修复GDScript match和for单行语法错误
Azhu9701 Jul 12, 2026
a9fbb09
feat(godot): G1-G3 动画系统(淡入淡出/弹入/数值跳动/进度平滑/卡牌阴影/按钮动效)
Azhu9701 Jul 12, 2026
c7e5c26
fix(business-sandbox): S1-S5 修复游戏引擎(初始状态/研发决策/订单生成/年末结算/破产/贷款)
Azhu9701 Jul 13, 2026
46c2938
feat(godot): 适配1080p分辨率(canvas_items stretch)
Azhu9701 Jul 13, 2026
0d9e270
feat(brainstorm): 添加游戏沙盘设计文档及UI方案
Azhu9701 Jul 14, 2026
7e14fad
chore: 整理项目文件(商业领域配置/知识库/Soul角色/依赖锁)
Azhu9701 Jul 14, 2026
7b005db
feat(frontend): 前端从 Next.js 16 迁移至 TanStack Start 1.x
Azhu9701 Jul 14, 2026
18b6d89
feat(soul-agent): Soul Agent SDK + SearXNG 缓存 + 集成测试
Azhu9701 Jul 14, 2026
13cb106
chore: update Cargo.lock for soul-agent dependencies
Azhu9701 Jul 14, 2026
024df8e
chore: 全面清理 Next.js 残留引用
Azhu9701 Jul 14, 2026
8218bc1
fix(frontend): 修复 TanStack Start 迁移后的 UI 问题
Azhu9701 Jul 14, 2026
5cf257e
fix(frontend): 注入 TanStack Start dev client entry 脚本
Azhu9701 Jul 14, 2026
5f1c6b2
fix(frontend): 修复 Link 组件跳转 — 使用 params 替代模板字符串
Azhu9701 Jul 14, 2026
5e6d963
chore: remove unrelated file
Azhu9701 Jul 14, 2026
fe0e7dc
fix(frontend): 用 <a> + onClick + navigate 替代 <Link> 解决跳转不工作
Azhu9701 Jul 14, 2026
a34ba74
fix(frontend): session-timeline 也用 <a> + navigate 替代 <Link>
Azhu9701 Jul 14, 2026
c80663b
chore: gitignore godot/ui/reference.jpg
Azhu9701 Jul 14, 2026
33de93c
fix(frontend): 修复子路由不渲染 — 父路由添加 <Outlet />
Azhu9701 Jul 14, 2026
36285d1
fix(frontend): 恢复 globals.css + __root.tsx + 子路由 Outlet + <a> 导航
Azhu9701 Jul 14, 2026
fcc64d7
fix(frontend): 父路由添加 <Outlet /> 修复动态路由不渲染
Azhu9701 Jul 14, 2026
51b9f76
fix: vite proxy target 从 3001 改为 3096(匹配 API 实际端口)
Azhu9701 Jul 14, 2026
b344258
fix(frontend): 重新应用 <a> + navigate 导航修复(fork 恢复后丢失)
Azhu9701 Jul 14, 2026
e4b97da
chore: 全面清除 Next.js 残留(fork 恢复后重新清理)
Azhu9701 Jul 14, 2026
9e7af6f
docs: 更新所有文档中的 Next.js 引用为 TanStack Start
Azhu9701 Jul 14, 2026
2b7adb2
chore: nextjs_port → web_port(Rust 配置 + 脚本 + .env.example)
Azhu9701 Jul 14, 2026
942f615
feat(soul-agent): 独立 SDK — SoulAgentConfig + examples + 发布就绪
Azhu9701 Jul 14, 2026
c6d9a7a
feat(soul-agent): 内置 SoulStore + 可运行 example + USAGE.md
Azhu9701 Jul 14, 2026
e7a63ad
feat(soul-agent): CLI 命令行工具 — 像 Claude Code 一样的用法
Azhu9701 Jul 14, 2026
0381e32
feat(conference): 多轮碰撞注入 — CrossDetector 驱动的交叉质证
Azhu9701 Jul 14, 2026
2aaac2f
fix(conference): SoulChunk 事件同时发送到 system_tx(CLI 流式输出)
Azhu9701 Jul 14, 2026
750e5bc
feat(tui): Soul Agent TUI — ratatui 多面板终端界面
Azhu9701 Jul 14, 2026
0db4180
feat(tui): soul 无参数默认启动 TUI + 输入模式
Azhu9701 Jul 14, 2026
dbe4112
chore: fix all compiler warnings across workspace
Azhu9701 Jul 14, 2026
c4a90c2
fix(tui): 输入后保持 TUI 显示加载状态,不再空白等待
Azhu9701 Jul 14, 2026
932b2a4
fix(tui): 全程保持 raw mode,消除输入后白屏
Azhu9701 Jul 14, 2026
3a9bae1
feat(tui): 追问功能 + 面板切换优化
Azhu9701 Jul 14, 2026
be47b7d
feat(tui): Soul 选择器 — 左侧列表 + Space 勾选 + ↑↓ 导航
Azhu9701 Jul 14, 2026
fe7fb27
feat(decision-engine): 结构化决策输出 + 预设场景 + TUI 渲染
Azhu9701 Jul 14, 2026
09ad0e0
refactor(tui): 从决策报告转向过程透明
Azhu9701 Jul 14, 2026
78a4140
feat(tui): 实时流式渲染 — token 到达即显示,不再等待全部完成
Azhu9701 Jul 14, 2026
70a8851
fix(distiller): DeepSeek 不支持 structured output,跳过 response_format
Azhu9701 Jul 14, 2026
f01ea2a
feat(tui): 分屏并排显示 — 同时看所有 Soul 的实时流式输出
Azhu9701 Jul 14, 2026
ea41c5a
fix(stream): synthesis 事件同步发送到 system_tx,TUI 综合摘要可见
Azhu9701 Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ SEARXNG_SECRET=local-dev-searxng-secret-that-is-long-enough
# ── 服务端配置(源码模式开发时生效) ──
# SERVER_HOST=127.0.0.1
# SERVER_PORT=3096
# NEXTJS_PORT=3000
# WEB_PORT=3000

# ── 部署域名(生产 Docker 部署时) ──
# DOMAIN=localhost
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,10 @@ dist/
# CodeGraph index
.codegraph/
graphify-out/

# Godot editor cache
.godot/
.godot/
.superpowers/
.zcode/plans/
godot/ui/reference.jpg
101 changes: 101 additions & 0 deletions .superpowers/brainstorm/12847-1783870813/content/architecture.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
<h2>架构方案对比</h2>
<p class="subtitle">从 Next.js → Godot,后端 Rust API 不变</p>

<div class="section">
<h3>当前架构</h3>
<div style="display:flex; align-items:center; justify-content:center; gap:12px; padding:16px; border:1px solid var(--border); border-radius:8px;">
<div class="placeholder" style="padding:12px;">🌐 浏览器</div>
<span>→</span>
<div class="placeholder" style="padding:12px;">Next.js 前端<br><small>(React 组件)</small></div>
<span>→</span>
<div class="placeholder" style="padding:12px;">Rust API<br><small>Axum HTTP · 3001</small></div>
</div>
<p class="subtitle">Next.js 负责:页面渲染 / 路由 / API 代理 / 状态管理</p>
</div>

<div class="section">
<h3>目标架构</h3>
<div style="display:flex; align-items:center; justify-content:center; gap:12px; padding:16px; border:1px solid var(--accent); border-radius:8px; background:var(--accent-bg);">
<div class="placeholder" style="padding:12px;">🕹️ Godot 游戏<br><small>(桌面/Web/移动端)</small></div>
<span>↔ HTTP REST / WebSocket</span>
<div class="placeholder" style="padding:12px;">Rust API<br><small>Axum HTTP · 不变</small></div>
</div>
<p class="subtitle">Godot 负责:3D 场景渲染 / 游戏逻辑 / 输入处理 / 音效</p>
</div>

<hr>

<h2>技术可行性评估</h2>

<div class="options" style="flex-direction:column;">
<div class="option" onclick="toggleSelect(this)" data-choice="1" style="width:100%;">
<div class="letter">✅</div>
<div class="content">
<h3>REST API 通信</h3>
<p>Godot 内置 HTTPRequest 节点,直接调 Rust API 的 JSON 接口。数据格式完全复用现有模型。难度:<strong>低</strong></p>
</div>
</div>
<div class="option" onclick="toggleSelect(this)" data-choice="2" style="width:100%;">
<div class="letter">✅</div>
<div class="content">
<h3>WebSocket 实时流</h3>
<p>AI 回复需要流式传输(SSE/WebSocket)。Godot 内置 WebSocket 客户端,可对接 Rust 的 ws 端点。难度:<strong>中</strong></p>
</div>
</div>
<div class="option" onclick="toggleSelect(this)" data-choice="3" style="width:100%;">
<div class="letter">⚠️</div>
<div class="content">
<h3>3D 法庭/场景渲染</h3>
<p>Godot 的强项。需要建模(法庭、会议室、商业沙盘桌)。可买现成 3D 模型或简单几何体起步。难度:<strong>中(美术工作量)</strong></p>
</div>
</div>
<div class="option" onclick="toggleSelect(this)" data-choice="4" style="width:100%;">
<div class="letter">✅</div>
<div class="content">
<h3>用户认证与会话</h3>
<p>完全由 Rust 后端管理,Godot 只需存 token。无额外复杂度。难度:<strong>低</strong></p>
</div>
</div>
<div class="option" onclick="toggleSelect(this)" data-choice="5" style="width:100%;">
<div class="letter">⚠️</div>
<div class="content">
<h3>多人同庭(可选)</h3>
<p>Godot 内置多人游戏支持(ENet/WebSocket)。如需多人实时参与同一庭审,需后端新增中继逻辑。难度:<strong>中-高</strong></p>
</div>
</div>
<div class="option" onclick="toggleSelect(this)" data-choice="6" style="width:100%;">
<div class="letter">✅</div>
<div class="content">
<h3>跨平台发布</h3>
<p>Godot 一次开发 → 导出 Windows / Mac / Linux / Web / Android / iOS。Web 版可替代现有网站。难度:<strong>低</strong></p>
</div>
</div>
</div>

<hr>

<h2>关键问题需要讨论</h2>

<div class="options">
<div class="option" onclick="toggleSelect(this)" data-choice="a">
<div class="letter">Q1</div>
<div class="content">
<h3>第一步做什么?</h3>
<p>先做"游戏广场"大厅(3D 场景),还是先移植一个具体游戏(如仲裁庭)到 Godot?</p>
</div>
</div>
<div class="option" onclick="toggleSelect(this)" data-choice="b">
<div class="letter">Q2</div>
<div class="content">
<h3>AI 对话交互方式</h3>
<p>文字输入框(现有方式)→ 3D 场景里怎么做?NPC 头顶气泡?弹窗 UI?语音输入?</p>
</div>
</div>
<div class="option" onclick="toggleSelect(this)" data-choice="c">
<div class="letter">Q3</div>
<div class="content">
<h3>Godot 版本</h3>
<p>Godot 4.x(最新稳定版)?有无 GDScript 或 C# 偏好?</p>
</div>
</div>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
<h2>设计 — 整体架构</h2>
<p class="subtitle">商业沙盘推演 · Godot 实现方案</p>

<h3>1. 系统架构</h3>
<div style="text-align:center;padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--bg);">
<pre style="font-size:13px;line-height:1.6;text-align:left;margin:0 auto;display:inline-block;">
┌─────────────────────────────────────────────────┐
│ 🌐 浏览器 / 🖥️ 桌面应用 │
│ ┌───────────────────────────────────────────┐ │
│ │ 🕹️ Godot 游戏 (WebAssembly / 原生) │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────────────────┐ │ │
│ │ │ 游戏广场 │ │ 商业沙盘 (场景) │ │ │
│ │ │ (大厅) │→│ ┌────────────────┐ │ │ │
│ │ │ ⏳后做 │ │ │ 董事会会议室(3D) │ │ │ │
│ │ └──────────┘ │ │ 数据看板(屏幕) │ │ │ │
│ │ │ │ AI弹窗对话系统 │ │ │ │
│ │ │ │ 决策表单界面 │ │ │ │
│ │ │ └────────────────┘ │ │ │
│ │ └──────────────────────┘ │ │
│ └───────────────────────────────────────────┘ │
│ ↕ HTTP REST / WebSocket │
│ ┌─────────────────────────┐ │
│ │ Rust API (不变) │ │
│ │ AI网关 · 会话管理 · │ │
│ │ 知识库 · Soul 注册表 │ │
│ └─────────────────────────┘ │
└─────────────────────────────────────────────────┘
</pre>
</div>

<div class="section">
<h3>2. 商业沙盘 — Godot 场景结构</h3>
</div>

<div class="cards">
<div class="card" onclick="toggleSelect(this)" data-choice="boardroom">
<div class="card-body">
<h4>🏛️ BoardRoom(主场景)</h4>
<p>3D 董事会会议室:椭圆会议桌、AI 角色座位、数据大屏、决策终端</p>
</div>
</div>
<div class="card" onclick="toggleSelect(this)" data-choice="popup">
<div class="card-body">
<h4>💬 ChatPopup(弹窗系统)</h4>
<p>点击 AI 角色弹出对话窗:文字输入、流式回复、历史记录</p>
</div>
</div>
<div class="card" onclick="toggleSelect(this)" data-choice="dashboard">
<div class="card-body">
<h4>📊 Dashboard(数据看板)</h4>
<p>3D 场景中的屏幕/投影:显示财务报表、市场份额、KPI 图表</p>
</div>
</div>
<div class="card" onclick="toggleSelect(this)" data-choice="decision">
<div class="card-body">
<h4>📋 DecisionForm(决策表单)</h4>
<p>年度经营决策界面:研发投入、产能配置、定价策略、融资方案</p>
</div>
</div>
</div>

<hr>

<h3>3. 游戏流程</h3>

<div style="display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--bg);border-radius:8px;border:1px solid var(--border);">
<div style="display:flex;align-items:center;gap:8px;padding:8px;background:var(--accent-bg);border-radius:6px;">
<span style="background:var(--accent);color:var(--bg);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:12px;">1</span>
<span><strong>进入沙盘</strong> — 用户进入董事会会议室,AI 角色已在座位</span>
</div>
<div style="display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;">
<span style="background:var(--muted);color:var(--fg);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:12px;">2</span>
<span><strong>AI 汇报</strong> — CEO 汇总上年度经营情况,弹出数据看板</span>
</div>
<div style="display:flex;align-items:center;gap:8px;padding:8px;background:var(--accent-bg);border-radius:6px;">
<span style="background:var(--accent);color:var(--bg);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:12px;">3</span>
<span><strong>经营决策</strong> — 弹出决策表单,用户填写本年度各项经营参数</span>
</div>
<div style="display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;">
<span style="background:var(--muted);color:var(--fg);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:12px;">4</span>
<span><strong>AI 讨论</strong> — 各角色收到数据后,各自生成分析意见(流式弹窗)</span>
</div>
<div style="display:flex;align-items:center;gap:8px;padding:8px;background:var(--accent-bg);border-radius:6px;">
<span style="background:var(--accent);color:var(--bg);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:12px;">5</span>
<span><strong>综合报告</strong> — AI 综合各方意见输出年度经营报告,进入下一轮</span>
</div>
</div>

<hr>

<h3>这样设计你觉得合理吗?</h3>
<p class="subtitle">接下来我会细化每个模块的设计。</p>
134 changes: 134 additions & 0 deletions .superpowers/brainstorm/12847-1783870813/content/game-design.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
<h2>商业沙盘 · Godot 游戏设计</h2>
<p class="subtitle">基于创业沙盘 PDF 玩法 + 3D 工厂游戏视觉风格</p>

<h3>1. 核心玩法循环</h3>

<div style="display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--bg);border-radius:8px;border:1px solid var(--border);">
<div style="display:flex;align-items:center;gap:8px;padding:8px;background:var(--accent-bg);border-radius:6px;">
<span style="background:var(--accent);color:var(--bg);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:12px;">1</span>
<span><strong>年度开始</strong> — AI-CEO 汇报上年经营成果(3D 场景播放财务数据动画)</span>
</div>
<div style="display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;">
<span style="background:var(--muted);color:var(--fg);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:12px;">2</span>
<span><strong>经营决策</strong> — 用户在决策面板填写:研发投入、产能建设、营销预算、融资方案、定价策略</span>
</div>
<div style="display:flex;align-items:center;gap:8px;padding:8px;background:var(--accent-bg);border-radius:6px;">
<span style="background:var(--accent);color:var(--bg);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:12px;">3</span>
<span><strong>AI 角色讨论</strong> — CFO 分析财务风险、COO 分析产能、CMO 分析市场策略,各自在弹窗中给出建议</span>
</div>
<div style="display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;">
<span style="background:var(--muted);color:var(--fg);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:12px;">4</span>
<span><strong>AI 综合输出</strong> — 管理咨询顾问整合意见,输出年度经营报告,更新财务数据</span>
</div>
<div style="display:flex;align-items:center;gap:8px;padding:8px;background:var(--accent-bg);border-radius:6px;">
<span style="background:var(--accent);color:var(--bg);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:12px;">5</span>
<span><strong>场景变化</strong> — 3D 工厂根据决策结果变化(新建生产线 / 仓库扩大 / 产品更新)</span>
</div>
</div>

<hr>

<h3>2. 商业沙盘四阶段</h3>

<div class="cards">
<div class="card" style="border-left:3px solid #4CAF50;">
<div class="card-body">
<h4>🌱 第1节(第1-4年)适应期</h4>
<p>学习规则、资本周转、角色分工。单项产品起步,手工/半自动生产线</p>
</div>
</div>
<div class="card" style="border-left:3px solid #FF9800;">
<div class="card-body">
<h4>📈 第2节(第5-7年)市场竞争</h4>
<p>多产品线、BCG 矩阵分析、ABC 成本法。需要差异化竞争策略</p>
</div>
</div>
<div class="card" style="border-left:3px solid #9C27B0;">
<div class="card-body">
<h4>🏆 第3节(第8-11年)高阶经营</h4>
<p>杜邦分析、ROE/EVA 考核、公司估值。资本市场运作</p>
</div>
</div>
<div class="card" style="border-left:3px solid #2196F3;">
<div class="card-body">
<h4>🔄 第4节 反思复盘</h4>
<p>现金流分析、商业模式评估、团队效率、领导力总结</p>
</div>
</div>
</div>

<hr>

<h3>3. 3D 场景布局</h3>

<div style="padding:16px;background:var(--bg);border-radius:8px;border:1px solid var(--border);">
<pre style="font-size:12px;line-height:1.5;text-align:center;">
┌──────────────────────────────────────────────┐
│ 📊 数据看板(营收/利润/市场份额大屏) │
├──────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 原料仓库 │ │ 生产线 │ │ 成品仓库 │ │
│ │ (3D) │ │ (3D) │ │ (3D) │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ┌──────────────────────────┐ │
│ │ 董事会会议桌 │ │
│ │ CEO CFO COO CMO 顾问 │ │
│ └──────────────────────────┘ │
│ │
├──────────────────────────────────────────────┤
│ 📋 决策面板 / 💬 弹窗对话 │
└──────────────────────────────────────────────┘
</pre>
</div>

<div class="section">
<p><strong>3D 场景元素:</strong></p>
<ul>
<li><strong>📦 原料仓库</strong> — 3D 堆叠的原料箱,库存量变化时自动增减</li>
<li><strong>⚙️ 生产线</strong> — 传送带/机器模型,不同阶段升级外观(手工→半自动→全自动)</li>
<li><strong>📦 成品仓库</strong> — 产品库存可视化</li>
<li><strong>🪑 董事会会议室</strong> — 椭圆桌 + AI 角色座位,用户点击角色弹出对话窗</li>
<li><strong>📊 数据大屏</strong> — 3D 场景中的屏幕,显示财务图表</li>
</ul>
</div>

<hr>

<h3>4. 弹窗对话系统设计</h3>

<div class="options" style="flex-direction:column;">
<div class="option" onclick="toggleSelect(this)" data-choice="chat" style="width:100%;">
<div class="letter">💬</div>
<div class="content">
<h3>点击 AI 角色 → 弹出聊天窗</h3>
<p>点击会议桌旁的 CEO/CFO 等角色模型,弹出半透明背景的对话窗口</p>
<ul>
<li>顶部:角色头像 + 名称 + 关闭按钮</li>
<li>中间:消息列表(流式呈现 AI 回复)</li>
<li>底部:文字输入框 + 发送按钮</li>
<li>整个面板可拖拽移动</li>
</ul>
</div>
</div>
<div class="option" onclick="toggleSelect(this)" data-choice="decision" style="width:100%;">
<div class="letter">📋</div>
<div class="content">
<h3>年度决策表单</h3>
<p>每年开始弹出决策面板,包含:</p>
<ul>
<li>研发投入(滑块:低/中/高)</li>
<li>产能建设(选择建哪种生产线)</li>
<li>营销预算(数字输入)</li>
<li>融资方案(股权/债权/混合)</li>
<li>产品定价(调整各产品单价)</li>
</ul>
</div>
</div>
</div>

<hr>

<h3>这样设计你觉得对吗?</h3>
<p class="subtitle">下一步我会细化:Rust API 对接方案、Godot 文件结构、各场景的 GDScript 设计</p>
Loading
Loading