feat,refac: 게임 로직 내 '랜덤'을 RandUtil을 활용하여 재설정

- 기존의 랜덤 코드는 deprecated 처리
- 서버 시작 시 랜덤하게 정해진 hiddenSeed를 활용
- 랜덤 생성 단위
  - 월 실행
  - 사령턴 실행 결과
  - 커맨드 실행 결과
  - 작위 보상
  - 부대장 생성
  - 유니크 획득 시도
  - 설문 조사
  - 장수 생성
  - NPC국 생성, NPC 생성, NPC의 토너먼트 베팅
  - 전투
  - 도시 점령
  - 자율 행동 선택
  - 랜덤 턴 변경
- 거래장, 토너먼트 등 구 랜덤 코드를 이용하는 잔여 코드 있음
This commit is contained in:
2022-05-17 03:46:59 +09:00
parent 3c078e7f4a
commit 9fbe270bba
136 changed files with 1000 additions and 784 deletions
+7 -6
View File
@@ -8,7 +8,8 @@ class WarUnitCity extends WarUnit{
protected $cityRate;
function __construct($raw, $rawNation, int $year, int $month, $cityRate){
function __construct(RandUtil $rng, $raw, $rawNation, int $year, int $month, $cityRate){
$this->rng = $rng;
$general = new DummyGeneral(false);
$general->setVar('city', $raw['city']);
$general->setVar('nation', $raw['nation']);
@@ -23,7 +24,7 @@ class WarUnitCity extends WarUnit{
$this->logger = $general->getLogger();
$this->crewType = GameUnitConst::byID(GameUnitConst::CREWTYPE_CASTLE);
$this->hp = $this->getCityVar('def') * 10;
$this->hp = $this->getCityVar('def') * 10;
//수비자 보정
if($this->getCityVar('level') == 1){
@@ -78,7 +79,7 @@ class WarUnitCity extends WarUnit{
$this->deadCurr += $damage;
$this->hp -= $damage;
$this->increaseVarWithLimit('wall', -$damage/20, 0);
return $this->hp;
}
@@ -123,7 +124,7 @@ class WarUnitCity extends WarUnit{
$nationID = $oppose->getNationVar('nation');
$newConflict = false;
$dead = max(1, $this->dead);
if(!$conflict || $this->getHP() == 0){ // 선타, 막타 보너스
@@ -147,7 +148,7 @@ class WarUnitCity extends WarUnit{
return $newConflict;
}
function applyDB(\MeekroDB $db):bool{
$updateVals = $this->getUpdatedValues();
@@ -156,7 +157,7 @@ class WarUnitCity extends WarUnit{
if(!$updateVals){
return false;
}
$db->update('city', $updateVals, 'city=%i', $this->raw['city']);
$this->flushUpdateValues();
return $db->affectedRows() > 0;