- 기존의 랜덤 코드는 deprecated 처리 - 서버 시작 시 랜덤하게 정해진 hiddenSeed를 활용 - 랜덤 생성 단위 - 월 실행 - 사령턴 실행 결과 - 커맨드 실행 결과 - 작위 보상 - 부대장 생성 - 유니크 획득 시도 - 설문 조사 - 장수 생성 - NPC국 생성, NPC 생성, NPC의 토너먼트 베팅 - 전투 - 도시 점령 - 자율 행동 선택 - 랜덤 턴 변경 - 거래장, 토너먼트 등 구 랜덤 코드를 이용하는 잔여 코드 있음
52 lines
1.3 KiB
PHP
52 lines
1.3 KiB
PHP
<?php
|
|
namespace sammo\Event\Action;
|
|
|
|
use sammo\LiteHashDRBG;
|
|
use sammo\RandUtil;
|
|
|
|
//이전 RegNPC 함수를 EventAction으로 재구성
|
|
class RegNPC 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 $officerLevel,
|
|
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)
|
|
->setOfficerLevel($officerLevel)
|
|
->setEgo($ego)
|
|
->setSpecialSingle($char)
|
|
->setNPCText($text?:'')
|
|
->setAffinity($affinity)
|
|
->setLifeSpan($birth, $death);
|
|
}
|
|
|
|
public function run(array $env){
|
|
$result = $this->npc->fillRemainSpecAsZero($env)->build($env);
|
|
return [__CLASS__, $result];
|
|
}
|
|
|
|
} |