| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- namespace App\Module\Game\Enums;
- use UCore\Enum\EnumCore;
- use UCore\Enum\EnumToInt;
- /**
- * 奖励模式枚举
- *
- * 定义了奖励组的发放模式
- */
- enum REWARD_MODE: int
- {
- use EnumCore, EnumToInt;
- /**
- * 权重选择模式
- * 传统的权重选择机制,从N个奖励中按权重选择M个
- */
- case WEIGHT_SELECTION = 1;
- /**
- * 独立概率模式
- * 每个奖励项独立判断是否获得,基于概率
- */
- case INDEPENDENT_PROBABILITY = 2;
- /**
- * 获取所有奖励模式
- *
- * @return array
- */
- public static function getAll(): array
- {
- return [
- self::WEIGHT_SELECTION->value => '权重选择模式',
- self::INDEPENDENT_PROBABILITY->value => '独立概率模式',
- ];
- }
- /**
- * 获取奖励模式名称
- *
- * @param int $mode
- * @return string
- */
- public static function getName(int $mode): string
- {
- return self::getAll()[$mode] ?? '未知';
- }
- /**
- * 检查奖励模式是否有效
- *
- * @param int $mode
- * @return bool
- */
- public static function isValid(int $mode): bool
- {
- return isset(self::getAll()[$mode]);
- }
- }
|