발령 구현

This commit is contained in:
2018-11-18 03:57:09 +09:00
parent 5b96cc9b0a
commit 5de9859a1e
6 changed files with 210 additions and 1 deletions
+8
View File
@@ -135,6 +135,10 @@ class ConstraintHelper{
static function OccupiedCity(bool $allowNeutral=false):array{
return [__FUNCTION__, $allowNeutral];
}
static function OccupiedDestCity():array{
return [__FUNCTION__];
}
static function RemainCityCapacity($key, string $actionName):array{
return [__FUNCTION__, $key, $actionName];
@@ -207,6 +211,10 @@ class ConstraintHelper{
static function SuppliedCity():array{
return [__FUNCTION__];
}
static function SuppliedDestCity():array{
return [__FUNCTION__];
}
static function WanderingNation():array{
return [__FUNCTION__];
+1 -1
View File
@@ -27,7 +27,7 @@ class NotOccupiedDestCity extends Constraint{
$this->checkInputValues();
$this->tested = true;
if($this->destCity['nation'] == $this->general['nation']){
if($this->destCity['nation'] != $this->general['nation']){
return true;
}
+37
View File
@@ -0,0 +1,37 @@
<?php
namespace sammo\Constraint;
class OccupiedDestCity extends Constraint{
const REQ_VALUES = Constraint::REQ_GENERAL|Constraint::REQ_DEST_CITY;
public function checkInputValues(bool $throwExeception=true){
if(!parent::checkInputValues($throwExeception) && !$throwException){
return false;
}
if(!key_exists('nation', $this->general)){
if(!$throwExeception){return false; }
throw new \InvalidArgumentException("require nation in general");
}
if(!key_exists('nation', $this->destCity)){
if(!$throwExeception){return false; }
throw new \InvalidArgumentException("require nation in city");
}
return true;
}
public function test():bool{
$this->checkInputValues();
$this->tested = true;
if($this->destCity['nation'] == $this->general['nation']){
return true;
}
$this->reason = "아국이 아닙니다.";
return false;
}
}
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace sammo\Constraint;
class SuppliedDestCity extends Constraint{
const REQ_VALUES = Constraint::REQ_DEST_CITY;
public function checkInputValues(bool $throwExeception=true){
if(!parent::checkInputValues($throwExeception) && !$throwException){
return false;
}
if(!key_exists('supply', $this->destCity)){
if(!$throwExeception){return false; }
throw new \InvalidArgumentException("require supply in city");
}
return true;
}
public function test():bool{
$this->checkInputValues();
$this->tested = true;
if($this->destCity['supply']){
return true;
}
$this->reason = "고립된 도시입니다.";
return false;
}
}