fix: 턴 시간 변경 코드

This commit is contained in:
2021-09-16 03:44:54 +09:00
parent b4062a5931
commit 5037a36064
4 changed files with 21 additions and 7 deletions
+3 -2
View File
@@ -277,10 +277,11 @@ class Join extends \sammo\BaseAPI
if ($inheritTurntime !== null) {
//FIXME: 오동작함
$inheritTurntime = $inheritTurntime % ($gameStor->turnterm * 60);
$inheritTurntime = $inheritTurntime % ($admin['turnterm'] * 60);
$inheritTurntime += Util::randRangeInt(0, 999999) / 1000000;
$turntime = new \DateTimeImmutable(cutTurn($admin['turntime'], $admin['turnterm']));
$turntime = TimeUtil::format($turntime->add(TimeUtil::secondsToDateInterval($inheritTurntime)), true);
$turntime = $turntime->add(TimeUtil::secondsToDateInterval($inheritTurntime));
$turntime = TimeUtil::format($turntime, true);
} else {
$turntime = getRandTurn($admin['turnterm'], new \DateTimeImmutable($admin['turntime']));
}
@@ -54,13 +54,13 @@ class ResetTurnTime extends \sammo\BaseAPI
$gameStor = new KVStorage($db, 'game_env');
[$turnTerm, $serverTurnTime] = $gameStor->getValuesAsArray(['turnterm', 'turntime']);
$currTurnTime = new DateTimeImmutable($general->getTurnTime());
$serverTurnTimeObj = new DateTimeImmutable($serverTurnTime);
$turnTime = new DateTimeImmutable($general->getTurnTime());
$afterTurn = Util::randRange($turnTerm * -60 / 2, $turnTerm * 60 / 2);
$turnTime = $turnTime->add(TimeUtil::secondsToDateInterval($afterTurn));
if ($turnTime <= $serverTurnTimeObj) {
$turnTime = $currTurnTime->add(TimeUtil::secondsToDateInterval($afterTurn));
if ($turnTime <= $serverTurnTimeObj && $serverTurnTimeObj <= $currTurnTime) {
$turnTime = $turnTime->add(TimeUtil::secondsToDateInterval($turnTerm * 60));
}
+5
View File
@@ -244,6 +244,7 @@
:readonly="!inheritTurnTimeSet"
:min="0"
:max="1 - turnterm"
v-model="inheritTurnTimeMinute"
title="분"
/>
</div>
@@ -252,6 +253,7 @@
:readonly="!inheritTurnTimeSet"
:min="0"
:max="60"
v-model="inheritTurnTimeSecond"
title="초"
/>
</div>
@@ -432,18 +434,21 @@ export default defineComponent({
inheritTurnTimeMinute(newValue: number) {
if (!this.inheritTurnTimeSet) {
this.args.inheritTurntime = 0;
return;
}
this.args.inheritTurntime = newValue * 60 + this.inheritTurnTimeSecond;
},
inheritTurnTimeSecond(newValue: number) {
if (!this.inheritTurnTimeSet) {
this.args.inheritTurntime = 0;
return;
}
this.args.inheritTurntime = this.inheritTurnTimeMinute * 60 + newValue;
},
inheritTurnTimeSet(newValue: boolean) {
if (!newValue) {
this.args.inheritTurntime = 0;
return;
}
this.args.inheritTurntime =
this.inheritTurnTimeMinute * 60 + this.inheritTurnTimeSecond;
+10 -2
View File
@@ -140,9 +140,17 @@ class TimeUtil
public static function secondsToDateInterval(float $fullSeconds): \DateInterval
{
$d0 = new \DateTime("@0");
$inverted = $fullSeconds < 0?1:0;
return $d0->diff(static::secondsToDateTime($fullSeconds, true));
$fullSeconds = abs($fullSeconds);
$seconds = floor($fullSeconds);
$fraction = $fullSeconds - $seconds;
$interval = new \DateInterval("PT{$seconds}S");
$interval->f = $fraction;
$interval->invert = $inverted;
return $interval;
}
public static function DateTimeToSeconds(\DateTimeInterface $dateTime, bool $isUTC = false): float