Files
chatroom/database/seeders/FishingEventSeeder.php

124 lines
3.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* 文件功能:钓鱼事件初始数据填充
*
* 将原硬编码的 7 个钓鱼事件迁移至数据库,
* 调整奖励:经验减少,金币提升,游戏更加休闲娱乐。
*
* 执行方式php artisan db:seed --class=FishingEventSeeder
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace Database\Seeders;
use App\Models\FishingEvent;
use Illuminate\Database\Seeder;
class FishingEventSeeder extends Seeder
{
/**
* 填充钓鱼事件数据
*
* weight 权重说明(总权重 100
* 15 → 大鲨鱼(幸运)
* 15 → 娃娃鱼(卖鱼)
* 20 → 大草鱼(经验)
* 20 → 小鲤鱼(双收)
* 15 → 掉河(惩罚)
* 10 → 被打(惩罚)
* 5 → 超级大奖
*/
public function run(): void
{
// 避免重复 Seed
if (FishingEvent::count() > 0) {
$this->command->info('钓鱼事件已存在,跳过填充。');
return;
}
$events = [
[
'sort' => 1,
'emoji' => '🦈',
'name' => '大鲨鱼',
'message' => '钓到一条大鲨鱼获得经验30、金币50',
'exp' => 30,
'jjb' => 50,
'weight' => 15,
'is_active' => true,
],
[
'sort' => 2,
'emoji' => '🐟',
'name' => '娃娃鱼',
'message' => '钓到一条娃娃鱼到集市卖得80个金币',
'exp' => 0,
'jjb' => 80,
'weight' => 15,
'is_active' => true,
],
[
'sort' => 3,
'emoji' => '🐠',
'name' => '大草鱼',
'message' => '钓到一只大草鱼吃下增加经验20、金币30',
'exp' => 20,
'jjb' => 30,
'weight' => 20,
'is_active' => true,
],
[
'sort' => 4,
'emoji' => '🐡',
'name' => '小鲤鱼',
'message' => '钓到一条小鲤鱼增加经验10、金币20',
'exp' => 10,
'jjb' => 20,
'weight' => 20,
'is_active' => true,
],
[
'sort' => 5,
'emoji' => '💧',
'name' => '落水惨败',
'message' => '鱼没钓到摔到河里损失金币30',
'exp' => 0,
'jjb' => -30,
'weight' => 15,
'is_active' => true,
],
[
'sort' => 6,
'emoji' => '👊',
'name' => '被抓殴打',
'message' => '偷钓鱼塘被主人发现一阵殴打金币减少10',
'exp' => 0,
'jjb' => -10,
'weight' => 10,
'is_active' => true,
],
[
'sort' => 7,
'emoji' => '🎉',
'name' => '超级大奖',
'message' => '运气爆棚!钓到大鲨鱼、大草鱼、小鲤鱼各一条!经验+50金币+200',
'exp' => 50,
'jjb' => 200,
'weight' => 5,
'is_active' => true,
],
];
foreach ($events as $event) {
FishingEvent::create($event);
}
$this->command->info('✅ 钓鱼事件已填充7 条)');
}
}