ChestOpened.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. namespace App\Module\GameItems\Events;
  3. use Illuminate\Broadcasting\InteractsWithSockets;
  4. use Illuminate\Foundation\Events\Dispatchable;
  5. use Illuminate\Queue\SerializesModels;
  6. /**
  7. * 宝箱开启事件
  8. *
  9. * 当用户成功开启宝箱时触发此事件,包含宝箱开启的详细信息。
  10. * 此事件可用于更新任务进度、触发成就解锁、记录日志、发送通知等功能。
  11. * 事件包含开启宝箱的用户ID、宝箱ID、数量、获得的物品结果、保底机制触发情况等信息。
  12. */
  13. class ChestOpened
  14. {
  15. use Dispatchable, InteractsWithSockets, SerializesModels;
  16. /**
  17. * 用户ID
  18. *
  19. * 开启宝箱的用户唯一标识符
  20. *
  21. * @var int
  22. */
  23. public $userId;
  24. /**
  25. * 宝箱ID
  26. *
  27. * 被开启的宝箱物品ID,对应item_items表中的id
  28. *
  29. * @var int
  30. */
  31. public $chestId;
  32. /**
  33. * 数量
  34. *
  35. * 本次开启的宝箱数量
  36. *
  37. * @var int
  38. */
  39. public $quantity;
  40. /**
  41. * 开启结果
  42. *
  43. * 宝箱开启获得的物品列表,包含物品ID、数量、是否为保底物品等信息
  44. *
  45. * @var array
  46. */
  47. public $results;
  48. /**
  49. * 是否触发保底
  50. *
  51. * 标识本次开启是否触发了保底机制
  52. *
  53. * @var bool
  54. */
  55. public $pityTriggered;
  56. /**
  57. * 保底内容ID
  58. *
  59. * 触发保底时对应的宝箱内容ID,未触发保底时为null
  60. * 对应item_chest_contents表中的id
  61. *
  62. * @var int|null
  63. */
  64. public $pityContentId;
  65. /**
  66. * 日志ID
  67. *
  68. * 宝箱开启日志记录的ID,对应item_chest_open_logs表中的id
  69. * 可用于查询详细的开启记录
  70. *
  71. * @var int
  72. */
  73. public $logId;
  74. /**
  75. * 创建一个新的事件实例
  76. *
  77. * 初始化宝箱开启事件,记录开启宝箱的详细信息
  78. *
  79. * @param int $userId 用户ID - 开启宝箱的用户唯一标识符
  80. * @param int $chestId 宝箱ID - 被开启的宝箱物品ID
  81. * @param int $quantity 数量 - 本次开启的宝箱数量
  82. * @param array $results 开启结果 - 宝箱开启获得的物品列表
  83. * @param bool $pityTriggered 是否触发保底 - 标识本次开启是否触发了保底机制
  84. * @param int|null $pityContentId 保底内容ID - 触发保底时对应的宝箱内容ID
  85. * @param int $logId 日志ID - 宝箱开启日志记录的ID
  86. * @return void
  87. */
  88. public function __construct(
  89. int $userId,
  90. int $chestId,
  91. int $quantity,
  92. array $results,
  93. bool $pityTriggered,
  94. ?int $pityContentId,
  95. int $logId
  96. ) {
  97. $this->userId = $userId;
  98. $this->chestId = $chestId;
  99. $this->quantity = $quantity;
  100. $this->results = $results;
  101. $this->pityTriggered = $pityTriggered;
  102. $this->pityContentId = $pityContentId;
  103. $this->logId = $logId;
  104. }
  105. }