Files
chatroom/database/seeders/GameConfigSeeder.php

129 lines
6.1 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
/**
* 文件功能:游戏默认配置数据填充器
*
* 初始化所有娱乐游戏的默认参数,管理员可在后台修改。
* 所有游戏默认关闭,需要管理员手动开启。
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace Database\Seeders;
use App\Models\GameConfig;
use Illuminate\Database\Seeder;
class GameConfigSeeder extends Seeder
{
/**
* 填充所有游戏默认配置。
*/
public function run(): void
{
$games = [
// ─── 百家乐(大小押注)────────────────────────────────────
[
'game_key' => 'baccarat',
'name' => '百家乐',
'icon' => '🎲',
'description' => '系统每隔一段时间自动开一局,玩家在倒计时内押注大/小/豹子,骰子结果决定胜负。',
'enabled' => false,
'params' => [
'interval_minutes' => 2, // 多少分钟开一局
'bet_window_seconds' => 60, // 每局押注窗口(秒)
'min_bet' => 100, // 最低押注金币
'max_bet' => 50000, // 最高押注金币
'payout_big' => 1, // 大1:1 赔率
'payout_small' => 1, // 小1:1 赔率
'payout_triple' => 24, // 豹子1:24 赔率
'kill_points' => [3, 18], // 庄家收割点数(全灭)
],
],
// ─── 老虎机 ──────────────────────────────────────────────
[
'game_key' => 'slot_machine',
'name' => '老虎机',
'icon' => '🎰',
'description' => '消耗金币转动老虎机三列图案匹配可获得不同倍率奖励三个7大奖全服广播。',
'enabled' => false,
'params' => [
'cost_per_spin' => 100, // 每次旋转消耗
'house_edge_percent' => 15, // 庄家边际(%
'daily_limit' => 100, // 每日最多转动次数0=不限)
'jackpot_payout' => 100, // 三个7 赔率
'triple_payout' => 50, // 三个💎 赔率
'same_payout' => 10, // 其他三同 赔率
'pair_payout' => 2, // 两同 赔率
'curse_enabled' => true, // 是否开启诅咒(三💀扣双倍)
],
],
// ─── 神秘箱子 ────────────────────────────────────────────
[
'game_key' => 'mystery_box',
'name' => '神秘箱子',
'icon' => '📦',
'description' => '管理员随时投放或系统定时自动投放神秘箱,最快发送暗号的用户开箱获得奖励。',
'enabled' => false,
'params' => [
'auto_drop_enabled' => false, // 是否自动定时投放
'auto_interval_hours' => 2, // 自动投放间隔(小时)
'claim_window_seconds' => 60, // 领取窗口(秒)
'min_reward' => 500, // 普通箱最低奖励
'max_reward' => 2000, // 普通箱最高奖励
'rare_min_reward' => 5000, // 稀有箱最低奖励
'rare_max_reward' => 20000, // 稀有箱最高奖励
'trap_chance_percent' => 10, // 黑化箱触发概率(%
],
],
// ─── 赛马竞猜 ────────────────────────────────────────────
[
'game_key' => 'horse_racing',
'name' => '赛马竞猜',
'icon' => '🐎',
'description' => '系统定期举办赛马,用户在倒计时内下注,按注池赔率结算,跑马过程 WebSocket 实时播报。',
'enabled' => false,
'params' => [
'interval_minutes' => 30, // 多少分钟一场
'bet_window_seconds' => 90, // 押注窗口(秒)
'race_duration' => 30, // 跑马动画时长(秒)
'horse_count' => 4, // 参赛马匹数量
'min_bet' => 100, // 最低押注
'max_bet' => 100000, // 最高押注
'house_take_percent' => 5, // 庄家抽水(%
],
],
// ─── 神秘占卜 ────────────────────────────────────────────
[
'game_key' => 'fortune_telling',
'name' => '神秘占卜',
'icon' => '🔮',
'description' => '每日一次免费占卜,系统生成玄学签文并赋予当日加成效果(幸运/倒霉)。额外占卜消耗金币。',
'enabled' => false,
'params' => [
'free_count_per_day' => 1, // 每日免费次数
'extra_cost' => 500, // 额外次数消耗金币
'buff_duration_hours' => 24, // 加成效果持续时间
'jackpot_chance' => 5, // 上上签概率(%
'good_chance' => 20, // 上签概率(%
'bad_chance' => 20, // 下签概率(%
'curse_chance' => 5, // 大凶签概率(%
],
],
];
foreach ($games as $game) {
GameConfig::updateOrCreate(
['game_key' => $game['game_key']],
$game,
);
}
}
}