Files
core/hwe/sammo/Event/Action/RegNeutralNPC.php
T
Hide_D c5ceff6fb5 feat,refac: 게임 로직 내 '랜덤'을 RandUtil을 활용하여 재설정
- 기존의 랜덤 코드는 deprecated 처리
- 서버 시작 시 랜덤하게 정해진 hiddenSeed를 활용
- 랜덤 생성 단위
  - 월 실행
  - 사령턴 실행 결과
  - 커맨드 실행 결과
  - 작위 보상
  - 부대장 생성
  - 유니크 획득 시도
  - 설문 조사
  - 장수 생성
  - NPC국 생성, NPC 생성, NPC의 토너먼트 베팅
  - 전투
  - 도시 점령
  - 자율 행동 선택
  - 랜덤 턴 변경
- 거래장, 토너먼트 등 구 랜덤 코드를 이용하는 잔여 코드 있음
2022-05-17 03:46:59 +09:00

53 lines
1.2 KiB
PHP

<?php
namespace sammo\Event\Action;
use sammo\LiteHashDRBG;
use sammo\RandUtil;
use sammo\UniqueConst;
use sammo\Util;
class RegNeutralNPC extends \sammo\Event\Action{
/** @var \sammo\Scenario\GeneralBuilder */
private $npc;
public function __construct(
int $affinity,
string $name,
$picturePath,
int $nationID,
$locatedCity,
int $leadership,
int $strength,
int $intel,
int $birth = 160,
int $death = 300,
$ego = null,
$char = '',
$text = ''
){
$rng = new RandUtil(new LiteHashDRBG(bin2hex(random_bytes(16))));
$this->npc=(new \sammo\Scenario\GeneralBuilder(
$rng,
$name,
false,
$picturePath,
$nationID
))
->setCity($locatedCity)
->setStat($leadership, $strength, $intel)
->setEgo($ego)
->setSpecialSingle($char)
->setNPCText($text?:'')
->setAffinity($affinity)
->setLifeSpan($birth, $death)
->setNPCType(6);
}
public function run(array $env){
$result = $this->npc->fillRemainSpecAsZero($env)->build($env);
return [__CLASS__, $result];
}
}