랜임 개월 수 버그 수정

This commit is contained in:
2018-10-24 01:17:03 +09:00
parent bfff1d9e2f
commit 42310fa170
3 changed files with 19 additions and 7 deletions
+1 -1
View File
@@ -134,7 +134,7 @@ function process_25(&$general) {
$allGen = array_sum($generals);
$genLimit = GameConst::$defaultMaxGeneral;
if($admin['join_mode'] == 'onlyRandom' && $admin['init_year'] == $admin['year'] && in_array($admin['month'], [$admin['init_month'], ($admin['init_month'] + 1) %12])){
if($admin['join_mode'] == 'onlyRandom' && TimeUtil::IsRangeMonth($admin['init_year'], $admin['init_month'], 1, $admin['year'], $admin['month'])){
$genLimit = GameConst::$initialNationGenLimitForRandInit;
}
else if($admin['year'] < $admin['startyear'] + 3){
+1 -1
View File
@@ -704,7 +704,7 @@ function command_25($turn, $command) {
$nationList = $db->query('SELECT nation,`name`,color,scout,scoutmsg,gennum FROM nation ORDER BY rand()');
foreach($nationList as $nation){
if ($gameStor->year == $gameStor->init_year && $gameStor->month <= $gameStor->init_month && $nation['gennum'] >= GameConst::$initialNationGenLimitForRandInit) {
if ($onlyRandom && TimeUtil::IsRangeMonth($gameStor->init_year, $gameStor->init_month, 1, $gameStor->year, $gameStor->month) && $nation['gennum'] >= GameConst::$initialNationGenLimitForRandInit) {
$nation['availableJoin'] = false;
}
else if($gameStor->year < $gameStor->startyear+3 && $nation['gennum'] >= GameConst::$initialNationGenLimit){
+17 -5
View File
@@ -65,16 +65,28 @@ class TimeUtil
}
/**
* $year, $month 부터 $afterMonth 개월 이내인지. $afterMonth 포함.
* $baseYear, $baseMonth 부터 $afterMonth 개월 이내인지. $afterMonth 포함.
*
*/
public static function IsRangeMonth(int $baseYear, int $baseMonth, int $askYear, int $askMonth, int $afterMonth):bool{
if($month < 1 || $month > 12){
public static function IsRangeMonth(int $baseYear, int $baseMonth, int $afterMonth, int $askYear, int $askMonth):bool{
if($baseMonth < 1 || $baseMonth > 12){
throw new \InvalidArgumentException('개월이 올바르지 않음');
}
if($afterMonth < 0){
throw new \InvalidArgumentException('기간이 올바르지 않음');
if($askMonth < 1 || $askMonth > 12){
throw new \InvalidArgumentException('개월이 올바르지 않음');
}
$minMonth = $baseYear * 12 + $baseMonth;
if($afterMonth < 0){
$maxMonth = $minMonth;
$minMonth = $maxMonth - $afterMonth;
}
$maxMonth = $minMonth + $afterMonth;
$askMonth = $askYear * 12 + $askMonth;
if($askMonth < $minMonth || $maxMonth < $askMonth){
return false;
}
return true;
}
}