时间: 2025年07月03日 02:14
任务: 为宠物模块添加自动施肥技能,10级以上宠物开放,实现自动施肥功能,更新数据库配置
为宠物模块新增"自动施肥"技能,允许10级以上的宠物自动为农场作物施肥,加速作物生长。
文件: app/Module/Pet/Enums/PET_SKILL_NAME.php
添加了新的技能枚举:
case AUTO_FERTILIZING = '自动施肥';
操作: 在pet_skills表中添加自动施肥技能配置
INSERT INTO pet_skills (skill_name, stamina_cost, cool_down, duration_time, effect_desc, min_level)
VALUES ('自动施肥', 10, 0, 7200, '自动为农场作物施肥,加速作物生长', 10);
配置详情:
文件: app/Module/Pet/Logic/PetLogic.php
添加了activateAutoFertilizingSkill方法:
关键配置:
'config' => json_encode([
'auto_fertilizing' => true,
'check_interval' => 300, // 每5分钟检查一次
'last_check_time' => now()->toDateTimeString(),
'auto_use_items' => true, // 自动使用肥料道具
'fertilizer_types' => ['fertilizer'], // 允许使用的肥料类型
])
文件: app/Module/Pet/Logic/PetAutoSkillLogic.php
添加了processAutoFertilizing方法:
施肥条件检查:
fertilized = false)crop_growth_time > 0)文件: app/Module/Pet/Jobs/ProcessActiveSkillsJob.php
在技能处理分支中添加:
case \App\Module\Pet\Enums\PET_SKILL_NAME::AUTO_FERTILIZING->value:
$autoSkillLogic->processAutoFertilizing($activeSkill);
break;
文件: app/Module/Pet/Logic/PetLogic.php
在executeSkillEffect方法中添加自动施肥技能的处理分支。
操作: 更新pet_level_configs表,为10级以上宠物添加自动施肥技能
更新了等级10-30的宠物配置,在skills字段中添加技能ID 6:
["1","2","3","6"]["1","2","3","4","6"]["1","2","3","4","5","6"]文件: tests/Feature/Pet/AutoFertilizingSkillTest.php
创建了完整的测试套件:
系统中现有的肥料物品:
tests/Feature/Pet/AutoFertilizingSkillTest.php - 自动施肥技能测试app/Module/Pet/Enums/PET_SKILL_NAME.php - 添加枚举app/Module/Pet/Logic/PetLogic.php - 添加激活方法和处理分支app/Module/Pet/Logic/PetAutoSkillLogic.php - 添加处理逻辑app/Module/Pet/Jobs/ProcessActiveSkillsJob.php - 添加Job处理分支pet_skills表:新增自动施肥技能记录pet_level_configs表:更新10级以上宠物的技能配置成功为宠物模块添加了自动施肥技能,实现了完整的技能激活、处理和配置机制。该功能与现有系统完美集成,为玩家提供了新的自动化农场管理选项。技能已通过基础测试验证,可以正常激活和使用。