RewardCollectorService.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace App\Module\Game\Services;
  3. use App\Module\Game\Logics\RewardCollectorLogic;
  4. /**
  5. * 奖励数据收集服务
  6. *
  7. * 用于收集本次请求中的所有奖励数据,包括物品奖励和代币奖励
  8. * 通过静态变量实现,确保在单次请求中能够累积所有奖励信息
  9. */
  10. class RewardCollectorService
  11. {
  12. /**
  13. * 添加物品奖励
  14. *
  15. * @param int $itemId 物品ID
  16. * @param int $instanceId 物品实例ID
  17. * @param int $quantity 奖励数量
  18. * @return void
  19. */
  20. public static function addItemReward(int $itemId, int $instanceId, int $quantity): void
  21. {
  22. RewardCollectorLogic::addItemReward($itemId, $instanceId, $quantity);
  23. }
  24. /**
  25. * 添加代币奖励
  26. *
  27. * @param int $coinType 代币类型
  28. * @param int $quantity 奖励数量
  29. * @return void
  30. */
  31. public static function addCoinReward(int $coinType, int $quantity): void
  32. {
  33. RewardCollectorLogic::addCoinReward($coinType, $quantity);
  34. }
  35. /**
  36. * 添加神像奖励
  37. *
  38. * @param int $godType 神像类型
  39. * @param int $diff 时间差值(秒)
  40. * @param int $quantity 奖励数量
  41. * @return void
  42. */
  43. public static function addGodReward(int $godType, int $diff, int $quantity): void
  44. {
  45. RewardCollectorLogic::addGodReward($godType, $diff, $quantity);
  46. }
  47. /**
  48. * 获取本次请求的所有奖励数据
  49. *
  50. * @return array 奖励数据数组,包含items和coins
  51. */
  52. public static function getRewards(): array
  53. {
  54. return RewardCollectorLogic::getRewards();
  55. }
  56. /**
  57. * 清空本次请求的奖励数据
  58. *
  59. * @return void
  60. */
  61. public static function clearRewards(): void
  62. {
  63. RewardCollectorLogic::clearRewards();
  64. }
  65. /**
  66. * 检查是否有奖励数据
  67. *
  68. * @return bool
  69. */
  70. public static function hasRewards(): bool
  71. {
  72. return RewardCollectorLogic::hasRewards();
  73. }
  74. }