feat: 소재 도시가 공백지여야하는 조건 작성

This commit is contained in:
2023-03-15 23:19:01 +09:00
parent 3ff4d51778
commit fb5946fba5
2 changed files with 47 additions and 11 deletions
+15 -11
View File
@@ -3,7 +3,7 @@
namespace sammo\Constraint; namespace sammo\Constraint;
class ConstraintHelper{ class ConstraintHelper{
static function AdhocCallback(callable $callback):array{ static function AdhocCallback(callable $callback):array{
return [__FUNCTION__, $callback]; return [__FUNCTION__, $callback];
} }
@@ -19,7 +19,7 @@ class ConstraintHelper{
static function AllowDiplomacyWithTerm(int $allowDipCode, int $allowMinTerm, string $errMsg):array{ static function AllowDiplomacyWithTerm(int $allowDipCode, int $allowMinTerm, string $errMsg):array{
return [__FUNCTION__, [$allowDipCode, $allowMinTerm, $errMsg]]; return [__FUNCTION__, [$allowDipCode, $allowMinTerm, $errMsg]];
} }
static function AllowJoinAction():array{ static function AllowJoinAction():array{
return [__FUNCTION__]; return [__FUNCTION__];
} }
@@ -67,11 +67,11 @@ class ConstraintHelper{
static function BeOpeningPart(int $relYear):array{ static function BeOpeningPart(int $relYear):array{
return [__FUNCTION__, $relYear]; return [__FUNCTION__, $relYear];
} }
static function CheckNationNameDuplicate(string $nationName):array{ static function CheckNationNameDuplicate(string $nationName):array{
return [__FUNCTION__, $nationName]; return [__FUNCTION__, $nationName];
} }
static function ConstructableCity():array{ static function ConstructableCity():array{
return [__FUNCTION__]; return [__FUNCTION__];
} }
@@ -99,11 +99,11 @@ class ConstraintHelper{
static function ExistsDestGeneral():array{ static function ExistsDestGeneral():array{
return [__FUNCTION__]; return [__FUNCTION__];
} }
static function ExistsDestNation():array{ static function ExistsDestNation():array{
return [__FUNCTION__]; return [__FUNCTION__];
} }
static function FriendlyDestGeneral():array{ static function FriendlyDestGeneral():array{
return [__FUNCTION__]; return [__FUNCTION__];
} }
@@ -123,7 +123,7 @@ class ConstraintHelper{
static function MustBeTroopLeader():array{ static function MustBeTroopLeader():array{
return [__FUNCTION__]; return [__FUNCTION__];
} }
static function NearCity(int $distance):array{ static function NearCity(int $distance):array{
return [__FUNCTION__, $distance]; return [__FUNCTION__, $distance];
} }
@@ -132,6 +132,10 @@ class ConstraintHelper{
return [__FUNCTION__]; return [__FUNCTION__];
} }
static function NeutralCity():array{
return [__FUNCTION__];
}
static function NotBeNeutral():array{ static function NotBeNeutral():array{
return [__FUNCTION__]; return [__FUNCTION__];
} }
@@ -175,11 +179,11 @@ class ConstraintHelper{
static function OccupiedDestCity():array{ static function OccupiedDestCity():array{
return [__FUNCTION__]; return [__FUNCTION__];
} }
static function RemainCityCapacity($key, string $actionName):array{ static function RemainCityCapacity($key, string $actionName):array{
return [__FUNCTION__, [$key, $actionName]]; return [__FUNCTION__, [$key, $actionName]];
} }
static function RemainCityTrust(string $actionName):array{ static function RemainCityTrust(string $actionName):array{
return [__FUNCTION__, $actionName]; return [__FUNCTION__, $actionName];
} }
@@ -187,7 +191,7 @@ class ConstraintHelper{
static function ReqCityCapacity($key, string $keyNick, $reqVal):array{ static function ReqCityCapacity($key, string $keyNick, $reqVal):array{
return [__FUNCTION__, [$key, $keyNick, $reqVal]]; return [__FUNCTION__, [$key, $keyNick, $reqVal]];
} }
static function ReqCityTrust(float $minTrust):array{ static function ReqCityTrust(float $minTrust):array{
return [__FUNCTION__, $minTrust]; return [__FUNCTION__, $minTrust];
} }
@@ -267,7 +271,7 @@ class ConstraintHelper{
static function SuppliedDestCity():array{ static function SuppliedDestCity():array{
return [__FUNCTION__]; return [__FUNCTION__];
} }
static function WanderingNation():array{ static function WanderingNation():array{
return [__FUNCTION__]; return [__FUNCTION__];
} }
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace sammo\Constraint;
class NeutralCity extends Constraint{
const REQ_VALUES = Constraint::REQ_CITY;
public function checkInputValues(bool $throwExeception=true):bool{
if(!parent::checkInputValues($throwExeception) && !$throwExeception){
return false;
}
if(!key_exists('nation', $this->city)){
if(!$throwExeception){return false; }
throw new \InvalidArgumentException("require nation in city");
}
return true;
}
public function test():bool{
$this->checkInputValues();
$this->tested = true;
if($this->city['nation'] == 0){
return true;
}
$this->reason = "공백지가 아닙니다.";
return false;
}
}