건국 조건 설정
This commit is contained in:
@@ -37,7 +37,7 @@ class che_건국 extends Command\GeneralCommand{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(mb_strwidth($nationName) > 18){
|
if(mb_strwidth($nationName) > 18 || $nationName == ''){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,6 +62,10 @@ class che_건국 extends Command\GeneralCommand{
|
|||||||
$general = $this->generalObj;
|
$general = $this->generalObj;
|
||||||
$env = $this->env;
|
$env = $this->env;
|
||||||
|
|
||||||
|
$nationName = $this->arg['nationName'];
|
||||||
|
$nationType = $this->arg['nationType'];
|
||||||
|
$colorType = $this->arg['colorType'];
|
||||||
|
|
||||||
$this->setCity();
|
$this->setCity();
|
||||||
$this->setNation();
|
$this->setNation();
|
||||||
|
|
||||||
@@ -78,10 +82,13 @@ class che_건국 extends Command\GeneralCommand{
|
|||||||
$relYear = $env['year'] - $env['startyear'];
|
$relYear = $env['year'] - $env['startyear'];
|
||||||
|
|
||||||
$this->runnableConstraints=[
|
$this->runnableConstraints=[
|
||||||
['BeNeutral'],
|
['ReqNationValue', 'gennum', '수하 장수', '>=', 2],
|
||||||
['ExistsDestNation'],
|
['BeOpeningPart'],
|
||||||
['AllowJoinDestNation', $relYear],
|
['WanderingNation'],
|
||||||
['AllowJoinAction']
|
['CheckNationNameDuplicate', $nationName],
|
||||||
|
['BeLord'],
|
||||||
|
['AllowJoinAction'],
|
||||||
|
['ConstructableCity']
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace sammo\Constraint;
|
||||||
|
|
||||||
|
class BeOpeningPart extends Constraint{
|
||||||
|
const REQ_VALUES = Constraint::REQ_INT_ARG;
|
||||||
|
|
||||||
|
protected $relYear;
|
||||||
|
|
||||||
|
public function checkInputValues(bool $throwExeception=true){
|
||||||
|
if(!parent::checkInputValues($throwExeception) && !$throwException){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->relYear = $this->arg;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test():bool{
|
||||||
|
$this->checkInputValues();
|
||||||
|
$this->tested = true;
|
||||||
|
|
||||||
|
if($relYear < GameConst::$openingPartYear){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->reason = "초반이 지났습니다.";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace sammo\Constraint;
|
||||||
|
use \sammo\DB;
|
||||||
|
|
||||||
|
class CheckNationNameDuplicate extends Constraint{
|
||||||
|
const REQ_VALUES = Constraint::REQ_NATION|Constraint::REQ_STRING_ARG;
|
||||||
|
|
||||||
|
protected $relYear;
|
||||||
|
|
||||||
|
public function checkInputValues(bool $throwExeception=true){
|
||||||
|
if(!parent::checkInputValues($throwExeception) && !$throwException){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!key_exists('nation', $this->nation)){
|
||||||
|
if(!$throwExeception){return false; }
|
||||||
|
throw new \InvalidArgumentException("require nation in nation");
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test():bool{
|
||||||
|
$this->checkInputValues();
|
||||||
|
$this->tested = true;
|
||||||
|
|
||||||
|
$db = DB::db();
|
||||||
|
|
||||||
|
$exists = $db->queryFirstField('SELECT count(*) FROM nation WHERE name = %s AND nation != %i', $this->arg, $this->nation['nation']);
|
||||||
|
|
||||||
|
if($exists == 0){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->reason = '존재하는 국가명입니다.';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace sammo\Constraint;
|
||||||
|
|
||||||
|
class ConstructableCity extends Constraint{
|
||||||
|
const REQ_VALUES = Constraint::REQ_CITY;
|
||||||
|
|
||||||
|
protected $relYear;
|
||||||
|
|
||||||
|
public function checkInputValues(bool $throwExeception=true){
|
||||||
|
if(!parent::checkInputValues($throwExeception) && !$throwException){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!key_exists('nation', $this->city)){
|
||||||
|
if(!$throwExeception){return false; }
|
||||||
|
throw new \InvalidArgumentException("require nation in city");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!key_exists('level', $this->city)){
|
||||||
|
if(!$throwExeception){return false; }
|
||||||
|
throw new \InvalidArgumentException("require nation in city");
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test():bool{
|
||||||
|
$this->checkInputValues();
|
||||||
|
$this->tested = true;
|
||||||
|
|
||||||
|
$city = $this->city();
|
||||||
|
|
||||||
|
if($city['nation'] != 0){
|
||||||
|
$this->reason = '공백지가 아닙니다.';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!in_array($city['level'], [5, 6])){
|
||||||
|
$this->reason = '중, 소 도시에만 가능합니다.';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace sammo\Constraint;
|
||||||
|
|
||||||
|
class WanderingNation extends Constraint{
|
||||||
|
const REQ_VALUES = Constraint::REQ_NATION;
|
||||||
|
|
||||||
|
public function checkInputValues(bool $throwExeception=true){
|
||||||
|
if(!parent::checkInputValues($throwExeception) && !$throwException){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!key_exists('level', $this->nation)){
|
||||||
|
if(!$throwExeception){return false; }
|
||||||
|
throw new \InvalidArgumentException("require level in nation");
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test():bool{
|
||||||
|
$this->checkInputValues();
|
||||||
|
$this->tested = true;
|
||||||
|
|
||||||
|
if($this->nation['level'] == 0){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->reason = "방랑군이어야 합니다";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user