时间: 2025年06月20日 14:24
任务: 在农场模块后台土地类型列表中增加"产出详情"列,展示该土地类型对所有种子产出配置的计算后结果
在农场模块后台土地类型管理页面的列表中增加"产出详情"列,用于展示土地类型的产量加成对种子产出的影响效果。
理解了农场系统的产出计算公式:
最终产量 = 基础产量 × (1 + 土地加成) × (1 + 房屋加成) × (1 - 灾害减产)
其中:
output_bonus 字段output_bonus 字段(需要除以100转换为小数)在 app/Module/Farm/AdminControllers/Helper/GridHelperTrait.php 中添加了 columnOutputDetails 方法:
/**
* 添加产出详情列
*
* 展示土地类型对种子产出的影响,包括基础产出范围和应用土地加成后的产出范围
*/
public function columnOutputDetails(string $field = 'output_details', string $label = '产出详情'): Column
{
return $this->grid->column($field, $label)->display(function () {
// 获取当前土地类型的产量加成
$landOutputBonus = $this->output_bonus ?? 0;
// 获取所有种子的产出配置
$seedOutputs = \App\Module\Farm\Models\FarmSeedOutput::with(['seed', 'item'])
->where('is_default', true)
->get()
->groupBy('seed_id');
// 生成HTML表格展示产出详情
// ...
})->width(300);
}
在 app/Module/Farm/AdminControllers/FarmLandTypeController.php 的 grid 方法中添加:
// 添加产出详情列
$helper->columnOutputDetails();
根据用户反馈,修正了产出详情列的显示逻辑,改为展示:
通过浏览器访问后台土地类型列表页面,验证了正确的产出详情显示:
计算结果正确,使用了服务层逻辑,保持了与实际游戏逻辑的一致性。
git add app/Module/Farm/AdminControllers/FarmLandTypeController.php app/Module/Farm/AdminControllers/Helper/GridHelperTrait.php
git commit -m "农场模块:后台土地类型列表增加产出详情列
- 在GridHelperTrait中添加columnOutputDetails方法
- 展示土地类型对种子产出的影响,包括基础产出范围和应用土地加成后的产出范围
- 在FarmLandTypeController中调用新的产出详情列方法
- 产出详情以表格形式展示,包含种子名称、产出物品、基础产出、应用土地加成后的产出
- 添加说明文字提醒用户这只是土地加成效果,实际收获还会受到房屋加成、灾害影响等因素"
git push
git add app/Module/Farm/AdminControllers/Helper/GridHelperTrait.php
git commit -m "农场模块:修正后台土地类型产出详情列显示逻辑
- 修改产出详情列展示内容,正确显示该土地类型的作物种类概率和产量
- 神秘种子部分:使用MysterySeeLLogic计算在该土地类型上的产出概率,展示各种作物的概率和应用土地加成后的产量
- 普通种子部分:展示固定的种子产出配置和应用土地加成后的产量
- 使用服务层计算逻辑,保持与实际游戏逻辑的一致性
- 产出详情以表格形式清晰展示,包含概率、基础产量、应用土地加成后的产量"
git push
成功实现了农场模块后台土地类型列表的产出详情列功能。经过用户反馈和修正,现在正确展示:
管理员现在可以直观地看到:
这为游戏平衡性调整和配置管理提供了重要的数据支持,使用了服务层计算逻辑,保持了与实际游戏逻辑的一致性。