feat: -60 turnterm 가변턴
This commit is contained in:
+24
-4
@@ -1130,6 +1130,7 @@ function CheckOverhead()
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
[$turnterm, $refreshLimit] = $gameStor->getValuesAsArray(['turnterm', 'refreshLimit']);
|
||||
$turnterm = abs($turnterm);
|
||||
|
||||
$nextRefreshLimit = Util::round(pow($turnterm, 0.6) * 3) * GameConst::$refreshLimitCoef;
|
||||
|
||||
@@ -1177,7 +1178,7 @@ function timeover(): bool
|
||||
list($turnterm, $turntime) = $gameStor->getValuesAsArray(['turnterm', 'turntime']);
|
||||
$diff = (new \DateTime())->getTimestamp() - (new \DateTime($turntime))->getTimestamp();
|
||||
|
||||
$t = min($turnterm, 5);
|
||||
$t = min(abs($turnterm), 5);
|
||||
|
||||
$term = $diff;
|
||||
if ($term >= $t || $term < 0) {
|
||||
@@ -1199,6 +1200,12 @@ function checkDelay()
|
||||
|
||||
// 1턴이상 갱신 없었으면 서버 지연
|
||||
$term = $gameStor->turnterm;
|
||||
|
||||
if($term < 0){
|
||||
//가변 턴에는 수행 안함!
|
||||
return;
|
||||
}
|
||||
|
||||
if ($term >= 20) {
|
||||
$threshold = 1;
|
||||
} else if ($term >= 10) {
|
||||
@@ -1278,10 +1285,14 @@ function turnDate($curtime)
|
||||
$admin = $gameStor->getValues(['startyear', 'starttime', 'turnterm', 'year', 'month']);
|
||||
|
||||
$turn = $admin['starttime'];
|
||||
$curturn = cutTurn($curtime, $admin['turnterm']);
|
||||
$term = $admin['turnterm'];
|
||||
|
||||
$num = intdiv((strtotime($curturn) - strtotime($turn)), $term * 60);
|
||||
if($term == -60){
|
||||
$num = VarTurn60::calcTurnDiff(new \DateTimeImmutable($turn), new \DateTimeImmutable($curtime));
|
||||
}
|
||||
else{
|
||||
$curturn = cutTurn($curtime, $admin['turnterm']);
|
||||
$num = intdiv((strtotime($curturn) - strtotime($turn)), $term * 60);
|
||||
}
|
||||
|
||||
$date = $admin['startyear'] * 12;
|
||||
$date += $num;
|
||||
@@ -2232,6 +2243,10 @@ function getRandTurn(RandUtil $rng, $term, ?\DateTimeInterface $baseDateTime = n
|
||||
throw new MustNotBeReachedException();
|
||||
}
|
||||
|
||||
if($term == -60){
|
||||
[, $term] = VarTurn60::fromDatetime($baseDateTime)->cutTurn();
|
||||
}
|
||||
|
||||
$randSecond = $rng->nextRangeInt(0, 60 * $term - 1);
|
||||
$randFraction = $rng->nextRangeInt(0, 999999) / 1000000; //6자리 소수
|
||||
|
||||
@@ -2247,6 +2262,11 @@ function getRandTurn2(RandUtil $rng, $term, ?\DateTimeInterface $baseDateTime =
|
||||
} else {
|
||||
throw new MustNotBeReachedException();
|
||||
}
|
||||
|
||||
if($term == -60){
|
||||
[, $term] = VarTurn60::fromDatetime($baseDateTime)->cutTurn();
|
||||
}
|
||||
|
||||
$randSecond = $rng->nextRangeInt(0, 60 * $term - 1);
|
||||
$randFraction = $rng->nextRangeInt(0, 999999) / 1000000; //6자리 소수
|
||||
|
||||
|
||||
Reference in New Issue
Block a user