$petConfigData, 'pet_level_config' => $petLevelConfigData, 'pet_skill_config' => $petSkillConfigData, 'success' => true, 'generated_ts' => time() ]; } catch (\Exception $e) { Log::error('Generate pet JSON failed: ' . $e->getMessage()); return [ 'success' => false, 'error' => $e->getMessage() ]; } } /** * 生成宠物基础配置JSON */ private static function generatePetConfigJson() { // 查询宠物配置表数据 $petConfigs = PetConfig::all() ->map(function ($config) { return [ 'id' => $config->id, 'pet_type' => $config->pet_type, 'grade_probability' => $config->grade_probability, 'display_attributes' => $config->display_attributes, 'numeric_attributes' => $config->numeric_attributes ]; }) ->toArray(); // 准备完整数据,包含生成时间 return [ 'generated_ts' => time(), 'pets' => $petConfigs ]; } /** * 生成宠物等级配置JSON */ private static function generatePetLevelConfigJson() { // 查询宠物等级配置表数据 $petLevelConfigs = PetLevelConfig::orderBy('level') ->get() ->map(function ($config) { return [ 'level' => $config->level, 'exp_required' => $config->exp_required, 'skills' => $config->skills, 'display_attributes' => $config->display_attributes, 'numeric_attributes' => $config->numeric_attributes ]; }) ->toArray(); // 准备完整数据,包含生成时间 return [ 'generated_ts' => time(), 'pet_levels' => $petLevelConfigs ]; } /** * 生成宠物技能配置JSON */ private static function generatePetSkillConfigJson() { // 查询宠物技能配置表数据 $petSkills = PetSkill::all() ->map(function ($skill) { return [ 'id' => $skill->id, 'skill_name' => $skill->skill_name, 'stamina_cost' => $skill->stamina_cost, 'cool_down' => $skill->cool_down, 'effect_desc' => $skill->effect_desc, 'min_level' => $skill->min_level ]; }) ->toArray(); // 准备完整数据,包含生成时间 return [ 'generated_ts' => time(), 'pet_skills' => $petSkills ]; } /** * 执行命令 */ public function handle() { $this->info('Generating pet configuration JSON files...'); $result = self::generateJson(); if ($result['success']) { $this->info('Successfully generated pet configuration JSON files.'); // 显示生成的配置数据概要 $this->info('Pet configs: ' . count($result['pet_config']['pets'])); $this->info('Pet level configs: ' . count($result['pet_level_config']['pet_levels'])); $this->info('Pet skill configs: ' . count($result['pet_skill_config']['pet_skills'])); } else { $this->error('Failed to generate pet configuration JSON files: ' . $result['error']); } } }