Files
chatroom/database/seeders/GameConfigSeeder.php

181 lines
9.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, // 领取窗口(秒)
'normal_reward_min' => 500, // 普通箱最低奖励
'normal_reward_max' => 2000, // 普通箱最高奖励
'rare_reward_min' => 5000, // 稀有箱最低奖励
'rare_reward_max' => 20000, // 稀有箱最高奖励
'trap_penalty_min' => 200, // 黑化箱最低惩罚
'trap_penalty_max' => 1000, // 黑化箱最高惩罚
'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, // 大凶签概率(%
],
],
// ─── 钓鱼小游戏 ──────────────────────────────────────────────
[
'game_key' => 'fishing',
'name' => '钓鱼小游戏',
'icon' => '🎣',
'description' => '消耗金币抛竿,等待浮漂下沉后点击收竿,随机获得奖励或惩罚。持有自动钓鱼卡可自动循环。',
'enabled' => false,
'params' => [
'fishing_cost' => 5, // 每次抛竿消耗金币
'fishing_wait_min' => 8, // 浮漂等待最短秒数
'fishing_wait_max' => 15, // 浮漂等待最长秒数
'fishing_cooldown' => 300, // 收竿后冷却秒数
],
],
// ─── 双色球彩票 ──────────────────────────────────────────────
[
'game_key' => 'lottery',
'name' => '双色球彩票',
'icon' => '🎟️',
'description' => '每日一期选3红球(1-12)+1蓝球(1-6),按奖池比例派奖,无一等奖滚存累积。',
'enabled' => false,
'params' => [
// ── 开奖时间 ──
'draw_hour' => 20, // 每天几点开奖24小时制
'draw_minute' => 0, // 几分开奖
'stop_sell_minutes' => 2, // 开奖前几分钟停止购票
// ── 购票限制 ──
'ticket_price' => 100, // 每注金币
'max_tickets_per_user' => 50, // 每期单人最多购票注数
'max_tickets_per_buy' => 10, // 单次最多购买注数
// ── 奖池分配比例(%)──
'pool_ratio' => 70, // 购票金额进奖池比例
'prize_1st_ratio' => 60, // 一等奖占奖池%
'prize_2nd_ratio' => 20, // 二等奖占奖池%
'prize_3rd_ratio' => 10, // 三等奖占奖池%
'carry_ratio' => 10, // 强制滚存比例%
// ── 固定小奖 ──
'prize_4th_fixed' => 150, // 四等奖固定金额/注
'prize_5th_fixed' => 50, // 五等奖固定金额/注
// ── 超级期 ──
'super_issue_threshold' => 3, // 连续几期无一等奖触发超级期
'super_issue_inject' => 20000, // 超级期系统注入金额上限
],
],
];
foreach ($games as $game) {
GameConfig::updateOrCreate(
['game_key' => $game['game_key']],
$game,
);
}
}
}