fix: ReqCities, ReqRegion 버그

This commit is contained in:
2025-01-21 17:13:37 +00:00
parent 9f81c760d0
commit 84fee0f1f2
7 changed files with 52 additions and 42 deletions
+16 -11
View File
@@ -5,18 +5,28 @@ namespace sammo\GameUnitConstraint;
use sammo\CityConst;
use sammo\General;
class ReqCities extends BaseGameUnitConstraint {
class ReqCities extends BaseGameUnitConstraint
{
public readonly array $reqCities;
public function __construct(...$reqCities)
{
$this->reqCities = $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 $city) {
if (key_exists($city, $ownCities)) {
foreach ($this->reqCities as $cityID => $cityName) {
if (key_exists($cityID, $ownCities)) {
return true;
}
}
@@ -26,12 +36,7 @@ class ReqCities extends BaseGameUnitConstraint {
public function getInfo(): string
{
$cityNames = [];
foreach ($this->reqCities as $city) {
$cityNames[] = CityConst::byID($city)->name;
}
$cityNameText = implode(', ', $cityNames);
$cityNameText = implode(', ', $this->reqCities);
return "{$cityNameText} 소유시 가능";
}
}
}
+17 -12
View File
@@ -5,20 +5,30 @@ namespace sammo\GameUnitConstraint;
use sammo\CityConst;
use sammo\General;
class ReqRegions extends BaseGameUnitConstraint {
class ReqRegions extends BaseGameUnitConstraint
{
public readonly array $reqRegions;
public function __construct(...$reqRegions)
{
$this->reqRegions = $reqRegions;
$dstReqRegions = [];
if (count($reqRegions) == 0) {
$this->reqRegions = [];
return;
}
foreach ($reqRegions as $region) {
$dstReqRegions[CityConst::$regionMap[$region]] = $region;
}
$this->reqRegions = $dstReqRegions;
}
public function test(General $general, array $ownCities, array $ownRegions, int $relativeYear, int $tech, array $nationAux): bool
{
foreach ($this->reqRegions as $region) {
if (key_exists($region, $ownRegions)) {
foreach ($this->reqRegions as $regionID => $regionText) {
if (key_exists($regionID, $ownRegions)) {
return true;
break;
}
}
@@ -27,12 +37,7 @@ class ReqRegions extends BaseGameUnitConstraint {
public function getInfo(): string
{
$regionNames = [];
foreach ($this->reqRegions as $region) {
$regionNames[] = CityConst::$regionMap[$region];
}
$regionNameText = implode(', ', $regionNames);
$regionNameText = implode(', ', $this->reqRegions);
return "{$regionNameText} 지역 소유시 가능";
}
}
}