- 기존의 랜덤 코드는 deprecated 처리 - 서버 시작 시 랜덤하게 정해진 hiddenSeed를 활용 - 랜덤 생성 단위 - 월 실행 - 사령턴 실행 결과 - 커맨드 실행 결과 - 작위 보상 - 부대장 생성 - 유니크 획득 시도 - 설문 조사 - 장수 생성 - NPC국 생성, NPC 생성, NPC의 토너먼트 베팅 - 전투 - 도시 점령 - 자율 행동 선택 - 랜덤 턴 변경 - 거래장, 토너먼트 등 구 랜덤 코드를 이용하는 잔여 코드 있음
51 lines
1005 B
PHP
51 lines
1005 B
PHP
<?php
|
|
|
|
namespace sammo;
|
|
|
|
const MAX_RNG_SUPPORT_BIT = 53;
|
|
/**
|
|
* 내부에 랜덤 값을 호출하지 않을 것이 확실할 때 RNG 대용으로 사용
|
|
* 어떤 함수를 호출하든 에러 발생
|
|
*/
|
|
class NoRNG implements RNG
|
|
{
|
|
const MAX_INT = (1 << MAX_RNG_SUPPORT_BIT) - 1;
|
|
public function __construct()
|
|
{
|
|
}
|
|
|
|
static function getMaxInt(): int
|
|
{
|
|
return self::MAX_INT;
|
|
}
|
|
|
|
public function nextBytes(int $bytes): string
|
|
{
|
|
throw new MustNotBeReachedException();
|
|
}
|
|
|
|
public function nextBits(int $bits): string
|
|
{
|
|
throw new MustNotBeReachedException();
|
|
}
|
|
|
|
public function nextInt(?int $max = null): int
|
|
{
|
|
throw new MustNotBeReachedException();
|
|
}
|
|
|
|
public function nextFloat1(): float
|
|
{
|
|
throw new MustNotBeReachedException();
|
|
}
|
|
|
|
private static RandUtil|null $instance = null;
|
|
static function rngInstance(): RandUtil
|
|
{
|
|
if (self::$instance === null) {
|
|
self::$instance = new RandUtil(new NoRNG());
|
|
}
|
|
return self::$instance;
|
|
}
|
|
}
|