feat: FinalSettle 增加 final_node——终局节点剧本透出(v2.1 终局演绎数据层)

This commit is contained in:
2026-08-13 17:00:43 +08:00
parent 035a115c29
commit aea79d8c5a
3 changed files with 14 additions and 2 deletions
+4
View File
@@ -34,6 +34,10 @@ func (c *levelPlay) Choose(ctx context.Context, req *dto.ChooseReq) (*dto.Choose
NewLevel: settle.NewLevel,
BalanceAfter: settle.BalanceAfter,
}
if settle.FinalNode != nil {
vo := nodeVO(settle.FinalNode)
res.Final.FinalNode = &vo
}
}
return res, nil
}
+3 -2
View File
@@ -23,6 +23,7 @@ type FinalSettle struct {
Perfect bool `json:"perfect"`
UnlockNext bool `json:"unlock_next"`
CollectionUnlocked bool `json:"collection_unlocked"`
NewLevel int `json:"new_level"`
BalanceAfter int `json:"balance_after"`
NewLevel int `json:"new_level"`
BalanceAfter int `json:"balance_after"`
FinalNode *NodeVO `json:"final_node"`
}
+7
View File
@@ -40,6 +40,7 @@ type FinalSettle struct {
CollectionUnlocked bool
NewLevel int
BalanceAfter int
FinalNode *Node // 终局节点(含 script,v2.1 前端演绎结局台词后跳结算)
}
// SettleFinal 纯函数判分(技术设计 4.3/4.4,可单测):
@@ -162,6 +163,12 @@ func (s *levelPlay) Choose(ctx context.Context, parentUid, childId, levelId, nod
if err != nil {
return nil, nil, err
}
// v2.1:终局节点剧本随结算返回(前端先演绎结局台词再跳结算页)
finalNode, err := nodeOf(ctx, levelRec, nextRec)
if err != nil {
return nil, nil, err
}
settle.FinalNode = finalNode
return nil, settle, nil
}