# 奖励/道具展示 ## 分类 - 项目功能 ## 目的 记录通用奖励、道具展示、资源展示、弹窗提示和奖励到账表现。 ## 已知线索 - 奖励提示:`Assets/Game/GameHFScripte/GameFunction/UIWindows/Tips/Tips_CommonReward.cs` - 资源组件:`Assets/Game/GameHFScripte/GameFunction/UIWindows/Components/ResourceItem.cs` - 道具 UI:`Assets/Game/GameHFScripte/GameFunction/UIWindows/Item/` - 配置线索:`XLSX_SRC/CN/Gift.xlsx`、`Resource.xlsx` ## 已确认内容 通用入口: ```text HFFunCatalogue.Tips.ShowCommonRewardTips(reward, cardReward) -> HFFunCatalogue.UIManager.OpenWindow() -> Tips_CommonReward.SetData(reward, cardReward) ``` 定义位置: - `Assets/Game/GameHFScripte/GameFunction/Logic/UI/HFFunCatalogue_UI_TipsManager.cs` - `Assets/Game/GameHFScripte/GameFunction/UIWindows/Tips/Tips_CommonReward.cs` 奖励数据结构: - `Tips_CommonReward.SetData` 接收 `RepeatedField`。 - `BagItem` 来自网络 protobuf。 - 当前代码中把奖励分成 `cards` 和 `items` 的逻辑存在,但核心分类代码被注释: - 原计划通过 `Item` 配置表判断 `enItemType.Tower`。 - 当前 `ZYXlsxProjectSettings` 未登记 `Item.xlsx`,但旧代码里有 `ds_Item860D2A9ETableData` 痕迹。 展示组件: - `Tips_CommonReward` - 标题固定设置为 `REWARDS`。 - `ResourceItem` 当前固定调用 `SetData(1)` 展示顶部资源。 - 普通道具用 `ItemIcon` 池展示。 - 卡片奖励区域逻辑存在,但资源设置代码被注释。 - `ResourceItem` - 监听 `HFEvent_InitBag`。 - 通过 `HFFunCatalogue.Bag.GetGameResourceCount(resourceId)` 展示资源数量。 - 资源变化动画和主动刷新事件逻辑存在注释。 - `Tips_UnlockTower` - 用于解锁塔/卡片提示。 - 当前读 `Tower` / `Item` 配置和设置图标的代码被注释。 配置线索: - `Gift.xlsx` 已登记到 ZYXlsx,生成 `Gift14537B33Sheet1`。 - `Resource.xlsx` 已登记到 ZYXlsx,生成 `Resource840C5F09TableData`。 - `Constants.xlsx` 中有奖励相关字段:`LuckyLootRewardTimes`、`LoginUsersItem`、`QuickOfflineReward`、`FreeOfflineReward` 等。 当前接入状态: - 通用奖励弹窗入口存在。 - 奖励 UI 框架存在,但道具/卡片配置读取大量注释。 - 入包逻辑不在奖励弹窗里,当前主要由背包/服务器推送 `PlayerResourceChangeS2C` 更新。 ## 梳理任务 - [x] 梳理奖励数据结构和展示入口。 - [x] 梳理奖励中道具、卡片、资源的分类。 - [x] 梳理奖励展示和背包更新的先后关系。 - [x] 梳理通用 Tips 的打开方式和资源加载方式。 - [ ] 梳理奖励来源:PVE、任务、商店、GM 或其他系统。 ## 待确认 - 奖励展示当前看起来只负责表现,不负责入包;仍需结合具体领取协议确认。 - `Gift.xlsx` 和实际奖励结构的对应关系待确认。 - `Item.xlsx` / `Tower.xlsx` 是否是旧表残留或当前缺失源表。 - 飞图事件 `HFEvent_FlyIcon` 存在,但实际调用链待继续确认。 ## 相关框架 - [背包](背包.md) - [UI 框架](../../../modules/frameworks/UI窗口系统/README.md) - [资源框架](../../../modules/frameworks/资源管理/README.md) - [数据/配置框架](../../../modules/frameworks/数据配置框架.md) --- ## 文档关联 > 当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。 | 文档 | 关联原因 | |---|---| | [modules/模块索引.md](../../../modules/模块索引.md) | 模块索引是项目知识总入口 | | [modules/features/背包.md](背包.md) | 背包 | | [modules/frameworks/数据配置框架.md](../../../modules/frameworks/数据配置框架.md) | 数据/配置框架 | | [modules/frameworks/资源管理/README.md](../../../modules/frameworks/资源管理/README.md) | 资源框架 | | [modules/frameworks/UI窗口系统/README.md](../../../modules/frameworks/UI窗口系统/README.md) | UI 框架 | | [rules/10-架构说明.md](../../../rules/10-架构说明.md) | 架构说明定义总体分层和依赖方向 | | [rules/30-模块登记规则.md](../../../rules/30-模块登记规则.md) | 模块登记规则定义分类和状态口径 | | TODO:补充依赖的框架/模块文档 | 如 UI、网络、事件、配置等框架 |