commit3ef363a01eAuthor: hide_d <hided62@gmail.com> Date: Mon Sep 6 02:30:00 2021 +0900 fix: 은퇴 시 숙련 포인트를 지나치게 많이 받는 문제 수정 commit9e68bc90c2Author: hide_d <hided62@gmail.com> Date: Mon Sep 6 02:17:56 2021 +0900 재야에서 도시보기 warning commitd2590607c2Author: hide_d <hided62@gmail.com> Date: Sun Sep 5 23:05:06 2021 +0900 fix: div 0 commit2bce6e4f02Author: hide_d <hided62@gmail.com> Date: Sun Sep 5 23:02:52 2021 +0900 warning 메시지 수정 commite64812da72Author: hide_d <hided62@gmail.com> Date: Sat Sep 4 03:42:09 2021 +0900 fix: m장, 의병장 숙련이 설정되지 않는 버그 수정 commit7cd40fca03Author: hide_d <hided62@gmail.com> Date: Sat Aug 21 16:04:03 2021 +0900 fix: 모병/징병에서 조건 검사부 통솔 계산값 commitd1568a3b2cAuthor: hide_d <hided62@gmail.com> Date: Sat Aug 21 02:50:54 2021 +0900 허보에 수몰이 같이 들어간 버그 수정 commite7dcc84afcAuthor: hide_d <hided62@gmail.com> Date: Thu Aug 19 14:51:50 2021 +0900 REAMDME.md 버전 수정 commit8eaa940d4eAuthor: hide_d <hided62@gmail.com> Date: Wed Aug 18 20:40:37 2021 +0900 Revert "fix: 7.2에서 오동작 버그 수정" This reverts commit9997675b1d. commit9997675b1dAuthor: hide_d <hided62@gmail.com> Date: Wed Aug 18 20:32:47 2021 +0900 fix: 7.2에서 오동작 버그 수정 commit9ef566f11fAuthor: hide_d <hided62@gmail.com> Date: Wed Aug 18 20:26:31 2021 +0900 fix: 아이템중 WarActivateSkill 관련 중첩 해제 버그 수정
58 lines
1.8 KiB
PHP
58 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace sammo\Constraint;
|
|
use sammo\GameConst;
|
|
use sammo\GameUnitConst;
|
|
use sammo\General;
|
|
|
|
class ReqGeneralCrewMargin extends Constraint{
|
|
|
|
protected $crewType;
|
|
const REQ_VALUES = Constraint::REQ_GENERAL|Constraint::REQ_INT_ARG;
|
|
|
|
public function checkInputValues(bool $throwExeception=true):bool{
|
|
if(!parent::checkInputValues($throwExeception) && !$throwExeception){
|
|
return false;
|
|
}
|
|
|
|
if(GameUnitConst::byID($this->arg) === null){
|
|
if(!$throwExeception){return false; }
|
|
throw new \InvalidArgumentException("{$this->arg} is invalid crewtype");
|
|
}
|
|
|
|
foreach(['leadership','strength','intel','crew','crewtype','nation','officer_level'] as $key){
|
|
if(!key_exists($key, $this->general)){
|
|
if(!$throwExeception){return false; }
|
|
throw new \InvalidArgumentException("require {$key} in general");
|
|
}
|
|
}
|
|
|
|
$this->crewType = $this->arg;
|
|
|
|
return true;
|
|
}
|
|
|
|
public function test():bool{
|
|
$this->checkInputValues();
|
|
$this->tested = true;
|
|
$reqCrewType = GameUnitConst::byID($this->arg);
|
|
|
|
//XXX: 왜 General -> obj -> General 변환을 하고 있나?
|
|
//FIXME: RankVar, city에 따라 통솔이 바뀐다면 이 부분에 문제가 발생.
|
|
$generalObj = new General($this->general, null, null, null, null, null, true);
|
|
|
|
if($reqCrewType->id != $generalObj->getCrewTypeObj()->id){
|
|
return true;
|
|
}
|
|
|
|
$leadership = $generalObj->getLeadership();
|
|
$crew = $this->general['crew'];
|
|
|
|
if($leadership * 100 > $crew){
|
|
return true;
|
|
}
|
|
|
|
$this->reason = "이미 많은 병력을 보유하고 있습니다.";
|
|
return false;
|
|
}
|
|
} |