훈련 턴 추가

This commit is contained in:
2018-10-15 02:05:39 +09:00
parent 8c93d35ca9
commit 2b3886617e
7 changed files with 235 additions and 2 deletions
@@ -0,0 +1,33 @@
<?php
namespace sammo\Constraint;
use sammo\GameConst;
class ReqGeneralAtmosMargin extends Constraint{
const REQ_VALUES = Constraint::REQ_GENERAL;
public function checkInputValues(bool $throwExeception=true){
if(!parent::checkInputValues($throwExeception) && !$throwException){
return false;
}
if(!key_exists('atmos', $this->general)){
if(!$throwExeception){return false; }
throw new \InvalidArgumentException("require atmos in general");
}
return true;
}
public function test():bool{
$this->checkInputValues();
$this->tested = true;
if($this->general['atmos'] < GameConst::$maxAtmosByCommand){
return true;
}
$this->reason = "병사들은 이미 정예병사들입니다.";
return false;
}
}
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace sammo\Constraint;
class ReqGeneralCrew extends Constraint{
const REQ_VALUES = Constraint::REQ_GENERAL;
public function checkInputValues(bool $throwExeception=true){
if(!parent::checkInputValues($throwExeception) && !$throwException){
return false;
}
if(!key_exists('crew', $this->general)){
if(!$throwExeception){return false; }
throw new \InvalidArgumentException("require crew in general");
}
return true;
}
public function test():bool{
$this->checkInputValues();
$this->tested = true;
if($this->general['crew'] > 0){
return true;
}
$this->reason = "병사들이 없습니다.";
return false;
}
}
@@ -0,0 +1,33 @@
<?php
namespace sammo\Constraint;
use sammo\GameConst;
class ReqGeneralTrainMargin extends Constraint{
const REQ_VALUES = Constraint::REQ_GENERAL;
public function checkInputValues(bool $throwExeception=true){
if(!parent::checkInputValues($throwExeception) && !$throwException){
return false;
}
if(!key_exists('train', $this->general)){
if(!$throwExeception){return false; }
throw new \InvalidArgumentException("require train in general");
}
return true;
}
public function test():bool{
$this->checkInputValues();
$this->tested = true;
if($this->general['train'] < GameConst::$maxTrainByCommand){
return true;
}
$this->reason = "병사들은 이미 정예병사들입니다.";
return false;
}
}