feat: 병종 징병 조건 추가
- 군주 및 수뇌 - 군주 및 수뇌 아님 - 도시의 규모 요구 - 특정 Nation Aux 값 요구
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\GameUnitConstraint;
|
||||
|
||||
use sammo\CityConst;
|
||||
use sammo\General;
|
||||
|
||||
class ReqCitiesWithCityLevel extends BaseGameUnitConstraint
|
||||
{
|
||||
|
||||
public readonly array $reqCities;
|
||||
public function __construct(
|
||||
public readonly int $reqCityLevel,
|
||||
...$reqCities)
|
||||
{
|
||||
$dstReqCities = [];
|
||||
if (count($reqCities) == 0) {
|
||||
$this->reqCities = [];
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($reqCities as $city) {
|
||||
$dstReqCities[CityConst::byName($city)->id] = $city;
|
||||
}
|
||||
$this->reqCities = $dstReqCities;
|
||||
}
|
||||
|
||||
public function test(General $general, array $ownCities, array $ownRegions, int $relativeYear, int $tech, array $nationAux): bool
|
||||
{
|
||||
foreach ($this->reqCities as $cityID => $cityName) {
|
||||
if (!key_exists($cityID, $ownCities)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if($ownCities[$cityID]['level'] >= $this->reqCityLevel) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getInfo(): string
|
||||
{
|
||||
$cityNameText = implode(', ', $this->reqCities);
|
||||
return "{$cityNameText} 소유시 가능";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user