Your Name преди 8 месеца
родител
ревизия
ab4311e6ca
променени са 2 файла, в които са добавени 145 реда и са изтрити 5 реда
  1. 141 5
      app/Module/Pet/README.md
  2. 4 0
      noai.md

+ 141 - 5
app/Module/Pet/README.md

@@ -1,9 +1,145 @@
-# 宠物模块
+# 宠物模块开发文档
 
-## 模块简介
-宠物模块是农场系统的重要组成部分,提供了宠物获取、升级、技能、战力加成等功能,丰富了游戏玩法。
+## 1. 核心功能模块
+### 1.1 宠物属性系统
+- **品阶体系**:4个品阶(FIRST 60%/SECOND 25%/THIRD 10%/FOURTH 5%)
+- **成长属性**:
+  - 等级:1-30级
+  - 战力加成:10%-100%
+  - 体力值:0-100(每分钟恢复5点)
+- **喂养机制**:
+  - 普通狗粮:提升基础经验
+  - 优质狗粮:提供双倍经验
 
+### 1.2 品阶系统
+```php
+enum PET_GRADE: string {
+    case FIRST = 'FIRST';   // 一品
+    case SECOND = 'SECOND'; // 二品
+    case THIRD = 'THIRD';   // 三品
+    case FOURTH = 'FOURTH'; // 四品
+}
+```
 
+### 1.3 技能系统
+| 技能名称    | 消耗体力 | 冷却时间 | 效果描述               |
+|------------|---------|---------|-----------------------|
+| 自动收菜    | 50      | 2小时    | 自动收获成熟作物        |
+| 自动播种    | 50      | 4小时    | 自动补种空闲土地        |
+| 灾害防护    | 30      | 6小时    | 防止指定类型自然灾害    |
 
-## 参考文档
-- [开心农场系统说明文档](../readme.ignore.md)
+### 1.4 数据库设计
+```sql
+-- 用户宠物表
+CREATE TABLE `user_pets` (
+  `id` BIGINT UNSIGNED AUTO_INCREMENT,
+  `user_id` BIGINT NOT NULL COMMENT '用户ID',
+  `name` VARCHAR(20) NOT NULL COMMENT '宠物名称',
+  `grade` ENUM('FIRST','SECOND','THIRD','FOURTH') NOT NULL,
+  `level` TINYINT UNSIGNED DEFAULT 1,
+  `experience` INT UNSIGNED DEFAULT 0,
+  `stamina` SMALLINT UNSIGNED DEFAULT 100,
+  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+  `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (id),
+  INDEX idx_user (user_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+-- 技能配置表
+CREATE TABLE `pet_skills` (
+  `id` INT UNSIGNED AUTO_INCREMENT,
+  `skill_name` VARCHAR(50) NOT NULL COMMENT '技能名称',
+  `stamina_cost` SMALLINT NOT NULL COMMENT '体力消耗',
+  `cool_down` INT COMMENT '冷却时间(秒)',
+  `effect_desc` TEXT COMMENT '效果描述',
+  PRIMARY KEY (id)
+) ENGINE=InnoDB;
+
+-- 技能使用日志表
+CREATE TABLE `pet_skill_logs` (
+  `id` BIGINT UNSIGNED AUTO_INCREMENT,
+  `pet_id` BIGINT UNSIGNED NOT NULL,
+  `skill_id` INT UNSIGNED NOT NULL,
+  `used_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+  `effect_result` JSON COMMENT '技能使用结果',
+  PRIMARY KEY (id),
+  FOREIGN KEY (pet_id) REFERENCES user_pets(id),
+  FOREIGN KEY (skill_id) REFERENCES pet_skills(id)
+) ENGINE=InnoDB;
+
+-- 洗髓记录表
+CREATE TABLE `pet_remould_logs` (
+  `id` BIGINT UNSIGNED AUTO_INCREMENT,
+  `pet_id` BIGINT UNSIGNED NOT NULL,
+  `old_grade` ENUM('FIRST','SECOND','THIRD','FOURTH'),
+  `new_grade` ENUM('FIRST','SECOND','THIRD','FOURTH'),
+  `remould_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (id),
+  FOREIGN KEY (pet_id) REFERENCES user_pets(id)
+) ENGINE=InnoDB;
+```
+
+## 2. 模块目录结构
+```
+app/Module/Pet/
+├── Enums/
+│   ├── PET_GRADE.php
+│   └── PET_SKILL.php
+├── Models/
+│   ├── Pet.php
+│   ├── PetSkill.php
+│   └── PetSkillLog.php
+├── Services/
+│   ├── PetService.php
+│   └── BattleService.php
+├── Validations/
+│   └── PetValidation.php
+└── README.md
+```
+
+## 3. 核心接口示例
+```php
+class PetService {
+    /**
+     * 宠物升级逻辑
+     * @param Pet $pet 宠物实例
+     * @param int $exp 获得经验值
+     */
+    public function levelUp(Pet $pet, int $exp): void {
+        $pet->experience += $exp;
+        while ($pet->experience >= $this->getRequiredExp($pet->level)) {
+            $pet->level++;
+            $pet->stamina = min(100, $pet->stamina + 20);
+        }
+    }
+    
+    private function getRequiredExp(int $level): int {
+        return pow(2, $level) * 100;
+    }
+}
+```
+
+## 4. 配置参数
+```php
+// config/pet.php
+return [
+    'max_level' => 30,
+    'stamina_recovery' => 5,    // 每分钟恢复体力
+    'skill_cooltime' => [
+        'harvest' => 7200,      // 2小时
+        'plant' => 14400,       // 4小时
+        'protect' => 21600      // 6小时
+    ],
+    'remould_cost' => [
+        'diamond' => 50,        // 洗髓消耗钻石
+        'item_id' => 1001       // 洗髓道具ID
+    ]
+];
+```
+
+## 5. 关键改进
+1. **数据完整性**:完善外键约束和索引配置
+2. **错误修复**:修正枚举定义中的拼写错误
+3. **文档规范**:统一SQL和PHP代码格式
+4. **功能完善**:优化洗髓功能设计
+5. **结构调整**:移除狗粮库存表,使用物品系统管理狗粮

+ 4 - 0
noai.md

@@ -49,3 +49,7 @@ Show::make 正确的使用方式`Show::make($id, new FundRepository(), function
 检查物品模块所有控制器
 
 修复物品模块后台控制器的 FormHelper,改用\App\Module\GameItems\AdminControllers\Helper\FormHelper; FilterHelper,改用\App\Module\GameItems\AdminControllers\Helper\FilterHelper;ShowHelper,改用\App\Module\GameItems\AdminControllers\Helper\ShowHelper; GridHelper,改用\App\Module\GameItems\AdminControllers\Helper\GridHelper
+
+apply_diff
+
+阅读@/app/Module/readme.ignore.md  ,制定宠物模块开发文档到 @/app/Module/Pet/README.md