Files
XinLanDiary/review/Chapter2-review.md
Cafw 6c65eafa32 Add review reports for Chapter 1, Chapter 2, and Chapter 2-Side; include image assets and logic checks
- Created Chapter1-review.md with syntax, character definitions, and dialogue checks.
- Created Chapter2-review.md with syntax, missing images, and logic errors.
- Created Chapter2-Side-review.md addressing syntax, character definitions, and dialogue issues.
- Added SUMMARY.md to summarize review findings and highlight critical issues.
- Included new image assets for xiaowei and backup files.
- Identified and documented several logic errors and suggestions for code cleanup across chapters.
2026-04-26 13:32:11 +08:00

161 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Chapter2.rpy 审阅报告
## 文件信息
- 文件路径: `game/Chapters/Chapter2/Chapter2.rpy`
- 行数: 440
- 包含场景: Chapter2_Scene1, C2S2 ~ C2S7 + C2S5_end
- 新增角色定义: `zhuchi` (主持人), `yang` (杨义涵)
---
## 语法错误
**无语法错误**`menu` 语句、条件跳转、`if`/`else` 结构基本正确(详见下方逻辑错误部分)。
---
## 角色定义检查
| 角色 | 定义位置 | 使用情况 | 状态 |
|------|----------|----------|------|
| `me` | script.rpy:4 | 正常 | ✓ |
| `system_` | script.rpy:11 | 正常 | ✓ |
| `xingyu` | script.rpy:5 | 正常 | ✓ |
| `lhy` | script.rpy:6 | 正常 | ✓ |
| `yh` | script.rpy:14 | 正常 | ✓ |
| `xiaowei` | script.rpy:9 | 正常 | ✓ |
| `xiaowei_w` | script.rpy:10 | 正常 | ✓ |
| `me_w` | script.rpy:15 | 正常 | ✓ |
| `yutong` | script.rpy:13 | 正常 | ✓ |
| `zhuchi` | Chapter2.rpy:2 | 正常 | ✓ |
| `yang` | Chapter2.rpy:3 | 正常 | ✓ |
| `tongxue` | script.rpy:16 | 未在 Chapter2 使用 | — |
### yutong 角色使用
`yutong` 在 C2S3 (行194) 中被 `show` 显示为 sprite`game/images/` 中**不存在 `yutong.png`**,游戏运行到此时会报错。详见下方"缺失资源"。
---
## 图像引用检查
### 🔴 缺失的图像文件
| 引用位置 | 图像名 | 文件 | 状态 |
|----------|--------|------|------|
| 行58 | `bg computer lab` | — | **缺失!** |
| 行130 | `bg computer lab door` | — | **缺失!** |
| 行194 | `yutong` (sprite) | — | **缺失!** |
| 行337 | `bg schoolgate evening` | — | **缺失!** |
| 行406 | `bg ryt room night` | — | **缺失!** |
### 已存在但未跟踪的资源
| 引用 | 文件 | Git 状态 |
|------|------|-----------|
| `bg auditorium` (行233) | `bg auditorium.png` | untracked |
| `bg rooftop` | `bg rooftop.png` | untracked |
| `bg xiaowei room night` | `bg xiaowei room night.png` | untracked |
---
## Flag 和变量检查
### Flag 字典
| Flag | 设置位置 | 读取位置 | 状态 |
|------|----------|----------|------|
| `flag["lhy_team"]` | 行44 (True) / 行48 (False) | 未读取 | ⚠️ 只写未读 |
| `flag["C2S1_think"]` | 行51 (False) | 未读取 | ⚠️ 只写未读 |
| `flag["competition_note"]` | C2Side1.rpy:75 (True) | 行237 `.get(...)` | ✓ |
### 统计变量修改
| 变量 | 修改位置 | 值 |
|------|----------|-----|
| `lhy_stats["affection"]` | 行43, 318 | +5, +1 |
| `xingyu_stats["affection"]` | 行47 | -5 (惩罚分支) |
| `yh_stats["affection"]` | 行175, 314 | +2, +1 |
| `yh_stats["understanding"]` | 行176 | +2 |
| `xiaowei_stats["affection"]` | 行173, 281, 367-378 | 根据选择 +1~3 |
| `xiaowei_stats["interactionFrequency"]` | 行174, 282, 398 | +2 × 2 |
| `xiaowei_stats["synergy"]` | 行397 | +3 |
| `xiaowei_stats["is_xiaowei_w"]` | 行283 | True |
| `yutong_stats["affection"]` | 行224, 429 | +2 × 2 |
| `yutong_stats["attention"]` | 行225, 430 | +2 × 2 |
| `tao_stats["humorSense"]` | 行330 | +2 |
| `tao_stats["selfAcceptance"]` | 行432 | +2 |
| `lzx_stats["infoOpenness"]` | 行431 | +1 |
所有 key 均在 script.rpy 中定义 ✓
---
## 逻辑错误
### 🔴 严重: C2S3 条件跳转无效 (行 178-181)
```renpy
if yutong_stats["affection"] >= 8 and yutong_stats["attention"] >= 12:
jump C2S3
label C2S3:
```
**问题**: `if` 语句没有 `else` 分支。条件为 False 时,代码将"掉入"下一行——而下一行正好是 `label C2S3:`。意味着 **无论条件真假C2S3 都会执行**,条件形同虚设。
实际上Chapter1 结束时 `yutong_stats["affection"]` = 8, `attention` = 12恰好等于阈值所以当前数据下条件始终为 True。但:
1. 如果后续修改 Chapter1 的数值bug 就会暴露
2. 代码意图显然是"条件满足才进入 C2S3"
**修复**: 添加 else 跳转:
```renpy
if yutong_stats["affection"] >= 8 and yutong_stats["attention"] >= 12:
jump C2S3
else:
jump C2S4
```
### ⚠️ 2. `flag["lhy_team"]` 和 `flag["C2S1_think"]` 只写未读
- `flag["lhy_team"]` 在行44/48 被设置,但整个代码库中从未读取。如果未来章节需要使用,建议添加注释说明用途。
- `flag["C2S1_think"]` 同样只设置未使用。
---
## 奇怪/不当的对话
### 🔴 行63: 不当用词
```renpy
me "训练赛,对手是颜涵和杨天赐。一个音游龙👃,一个不知道是男娘还是男同的玩意儿。"
```
- emoji `👃` 在 Ren'Py 中可能无法正确渲染
- "男娘"和"男同"属于对同学不尊重的称呼,与主角"用幽默掩饰不自信"的人设不完全吻合。建议修改为更符合高中生日常表达的方式。
### ⚠️ 行301: 疑似错别字
```renpy
yang "我要和仁懿涛——"
```
"任懿涛"写成了"仁懿涛"。若是刻意设计(体现角色口误),建议加注释;否则应修正。
### ⚠️ 行326: 注释中的存疑台词
```renpy
# me "最终事件平息。比赛继续。但我鼻子里残留着韭菜盒子的味道,还有满场的笑声没散。"
```
这段被注释掉了。如果决定不用,建议直接删除而非保留注释。
---
## 清理建议
1. **补充 5 个缺失的图像文件**(见上方清单)
2. 修复 C2S3 条件跳转逻辑行178-181
3. 修改行63的不当用词
4. 确认行301的"仁懿涛"是否为刻意
5. 删除行325-326的注释代码
6. 为只写未读的 flag 添加注释说明用途,或标记为 `# TODO: 第X章使用`