fix: 토너먼트 warning 제거
This commit is contained in:
+781
-183
@@ -1,8 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace sammo;
|
namespace sammo;
|
||||||
|
|
||||||
|
|
||||||
function processTournament() {
|
function processTournament()
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
@@ -11,7 +13,9 @@ function processTournament() {
|
|||||||
$offset = $now->getTimestamp() - (new \DateTime($admin['tnmt_time']))->getTimestamp();
|
$offset = $now->getTimestamp() - (new \DateTime($admin['tnmt_time']))->getTimestamp();
|
||||||
|
|
||||||
//수동일땐 무시
|
//수동일땐 무시
|
||||||
if($admin['tnmt_auto'] == 0) { return; }
|
if ($admin['tnmt_auto'] == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$type = $admin['tnmt_type'];
|
$type = $admin['tnmt_type'];
|
||||||
$tnmt = $admin['tournament'];
|
$tnmt = $admin['tournament'];
|
||||||
@@ -23,14 +27,29 @@ function processTournament() {
|
|||||||
|
|
||||||
//현시간이 스탬프 지나친경우
|
//현시간이 스탬프 지나친경우
|
||||||
switch ($admin['tnmt_auto']) {
|
switch ($admin['tnmt_auto']) {
|
||||||
case 1: $unit = 720; break;
|
case 1:
|
||||||
case 2: $unit = 420; break;
|
$unit = 720;
|
||||||
case 3: $unit = 180; break;
|
break;
|
||||||
case 4: $unit = 60; break;
|
case 2:
|
||||||
case 5: $unit = 30; break;
|
$unit = 420;
|
||||||
case 6: $unit = 15; break;
|
break;
|
||||||
case 7: $unit = 5; break;
|
case 3:
|
||||||
default: throw new MustNotBeReachedException();
|
$unit = 180;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$unit = 60;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$unit = 30;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
$unit = 15;
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
$unit = 5;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new MustNotBeReachedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
//업데이트 횟수
|
//업데이트 횟수
|
||||||
@@ -40,43 +59,71 @@ function processTournament() {
|
|||||||
switch ($tnmt) {
|
switch ($tnmt) {
|
||||||
case 1: //신청 마감
|
case 1: //신청 마감
|
||||||
fillLowGenAll();
|
fillLowGenAll();
|
||||||
$tnmt = 2; $phase = 0;
|
$tnmt = 2;
|
||||||
|
$phase = 0;
|
||||||
break;
|
break;
|
||||||
case 2: //예선중
|
case 2: //예선중
|
||||||
qualify($type, $tnmt, $phase); $phase++;
|
qualify($type, $tnmt, $phase);
|
||||||
if($phase >= 56) { $tnmt = 3; $phase = 0; }
|
$phase++;
|
||||||
|
if ($phase >= 56) {
|
||||||
|
$tnmt = 3;
|
||||||
|
$phase = 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 3: //추첨중
|
case 3: //추첨중
|
||||||
selectionAll($type, $tnmt, $phase); $phase+=8;
|
selectionAll($type, $tnmt, $phase);
|
||||||
if($phase >= 32) { $tnmt = 4; $phase = 0; }
|
$phase += 8;
|
||||||
|
if ($phase >= 32) {
|
||||||
|
$tnmt = 4;
|
||||||
|
$phase = 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 4: //본선중
|
case 4: //본선중
|
||||||
finallySingle($type, $tnmt, $phase); $phase++;
|
finallySingle($type, $tnmt, $phase);
|
||||||
if($phase >= 6) { $tnmt = 5; $phase = 0; }
|
$phase++;
|
||||||
|
if ($phase >= 6) {
|
||||||
|
$tnmt = 5;
|
||||||
|
$phase = 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 5: //배정중
|
case 5: //배정중
|
||||||
final16set();
|
final16set();
|
||||||
$tnmt = 6; $phase = 0;
|
$tnmt = 6;
|
||||||
|
$phase = 0;
|
||||||
startBetting();
|
startBetting();
|
||||||
break;
|
break;
|
||||||
case 6: //베팅중
|
case 6: //베팅중
|
||||||
$tnmt = 7; $phase = 0;
|
$tnmt = 7;
|
||||||
|
$phase = 0;
|
||||||
break;
|
break;
|
||||||
case 7: //16강중
|
case 7: //16강중
|
||||||
finalFight($type, $tnmt, $phase, 16); $phase++;
|
finalFight($type, $tnmt, $phase, 16);
|
||||||
if($phase >= 8) { $tnmt = 8; $phase = 0; }
|
$phase++;
|
||||||
|
if ($phase >= 8) {
|
||||||
|
$tnmt = 8;
|
||||||
|
$phase = 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 8: //8강중
|
case 8: //8강중
|
||||||
finalFight($type, $tnmt, $phase, 8); $phase++;
|
finalFight($type, $tnmt, $phase, 8);
|
||||||
if($phase >= 4) { $tnmt = 9; $phase = 0; }
|
$phase++;
|
||||||
|
if ($phase >= 4) {
|
||||||
|
$tnmt = 9;
|
||||||
|
$phase = 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 9: //4강중
|
case 9: //4강중
|
||||||
finalFight($type, $tnmt, $phase, 4); $phase++;
|
finalFight($type, $tnmt, $phase, 4);
|
||||||
if($phase >= 2) { $tnmt = 10; $phase = 0; }
|
$phase++;
|
||||||
|
if ($phase >= 2) {
|
||||||
|
$tnmt = 10;
|
||||||
|
$phase = 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 10: //결승중
|
case 10: //결승중
|
||||||
finalFight($type, $tnmt, $phase, 2);
|
finalFight($type, $tnmt, $phase, 2);
|
||||||
$tnmt = 0; $phase = 0;
|
$tnmt = 0;
|
||||||
|
$phase = 0;
|
||||||
setGift($type, $tnmt, $phase);
|
setGift($type, $tnmt, $phase);
|
||||||
$i = $iter;
|
$i = $iter;
|
||||||
break;
|
break;
|
||||||
@@ -85,7 +132,9 @@ function processTournament() {
|
|||||||
//베팅은 무조건 60페이즈후 진행(최대 1시간)
|
//베팅은 무조건 60페이즈후 진행(최대 1시간)
|
||||||
if ($tnmt == 6) {
|
if ($tnmt == 6) {
|
||||||
$betTerm = $unit * 60;
|
$betTerm = $unit * 60;
|
||||||
if($betTerm > 3600) { $betTerm = 3600; }
|
if ($betTerm > 3600) {
|
||||||
|
$betTerm = 3600;
|
||||||
|
}
|
||||||
//처리 초 더한 날짜
|
//처리 초 더한 날짜
|
||||||
$dt = date("Y-m-d H:i:s", strtotime($admin['tnmt_time']) + $unit * $i + $betTerm);
|
$dt = date("Y-m-d H:i:s", strtotime($admin['tnmt_time']) + $unit * $i + $betTerm);
|
||||||
$gameStor->tournament = $tnmt;
|
$gameStor->tournament = $tnmt;
|
||||||
@@ -115,46 +164,83 @@ function processTournament() {
|
|||||||
$gameStor->tnmt_time = (new \DateTimeImmutable($admin['tnmt_time']))->add(new \DateInterval("PT{$second}S"))->format('Y-m-d H:i:s');
|
$gameStor->tnmt_time = (new \DateTimeImmutable($admin['tnmt_time']))->add(new \DateInterval("PT{$second}S"))->format('Y-m-d H:i:s');
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTournamentTerm() {
|
function getTournamentTerm()
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
$tnmt_auto = $gameStor->tnmt_auto;
|
$tnmt_auto = $gameStor->tnmt_auto;
|
||||||
|
|
||||||
switch ($tnmt_auto) {
|
switch ($tnmt_auto) {
|
||||||
case 0: $str = ''; break;
|
case 0:
|
||||||
case 1: $str = "경기당 12분"; break;
|
$str = '';
|
||||||
case 2: $str = "경기당 7분"; break;
|
break;
|
||||||
case 3: $str = "경기당 3분"; break;
|
case 1:
|
||||||
case 4: $str = "경기당 1분"; break;
|
$str = "경기당 12분";
|
||||||
case 5: $str = "경기당 30초"; break;
|
break;
|
||||||
case 6: $str = "경기당 15초"; break;
|
case 2:
|
||||||
case 7: $str = "경기당 5초"; break;
|
$str = "경기당 7분";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$str = "경기당 3분";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$str = "경기당 1분";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$str = "경기당 30초";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
$str = "경기당 15초";
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
$str = "경기당 5초";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTournamentTime() {
|
function getTournamentTime()
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
list($tnmt, $tnmt_time) = $gameStor->getValuesAsArray(['tournament', 'tnmt_time']);
|
list($tnmt, $tnmt_time) = $gameStor->getValuesAsArray(['tournament', 'tnmt_time']);
|
||||||
$dt = substr($tnmt_time, 11, 5);
|
$dt = substr($tnmt_time, 11, 5);
|
||||||
switch ($tnmt) {
|
switch ($tnmt) {
|
||||||
case 1: $tnmt = "개막시간 {$dt}"; break;
|
case 1:
|
||||||
case 2: $tnmt = "다음경기 {$dt}"; break;
|
$tnmt = "개막시간 {$dt}";
|
||||||
case 3: $tnmt = "다음추첨 {$dt}"; break;
|
break;
|
||||||
case 4: $tnmt = "다음경기 {$dt}"; break;
|
case 2:
|
||||||
case 5: $tnmt = "16강배정 {$dt}"; break;
|
$tnmt = "다음경기 {$dt}";
|
||||||
case 6: $tnmt = "베팅마감 {$dt}"; break;
|
break;
|
||||||
case 7: case 8: case 9: case 10:
|
case 3:
|
||||||
$tnmt = "다음경기 {$dt}"; break;
|
$tnmt = "다음추첨 {$dt}";
|
||||||
default: $tnmt = ""; break;
|
break;
|
||||||
|
case 4:
|
||||||
|
$tnmt = "다음경기 {$dt}";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$tnmt = "16강배정 {$dt}";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
$tnmt = "베팅마감 {$dt}";
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
case 8:
|
||||||
|
case 9:
|
||||||
|
case 10:
|
||||||
|
$tnmt = "다음경기 {$dt}";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$tnmt = "";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return $tnmt;
|
return $tnmt;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTournament(int $tnmt) {
|
function getTournament(int $tnmt)
|
||||||
|
{
|
||||||
return [
|
return [
|
||||||
"<span style='color:magenta;'>경기 없음</span>",
|
"<span style='color:magenta;'>경기 없음</span>",
|
||||||
"<span style='color:orange;'>참가 모집중</span>",
|
"<span style='color:orange;'>참가 모집중</span>",
|
||||||
@@ -170,15 +256,21 @@ function getTournament(int $tnmt) {
|
|||||||
][$tnmt] ?? "TOURNAMENT_TYPE_ERR_{$tnmt}";
|
][$tnmt] ?? "TOURNAMENT_TYPE_ERR_{$tnmt}";
|
||||||
}
|
}
|
||||||
|
|
||||||
function printRow($k, $npc, $name, $abil, $tgame, $win, $draw, $lose, $gd, $gl, $prmt) {
|
function printRow($k, $npc, $name, $abil, $tgame, $win, $draw, $lose, $gd, $gl, $prmt)
|
||||||
|
{
|
||||||
$k += 1;
|
$k += 1;
|
||||||
if($prmt > 0) { $name = "<font color=orange>".$name."</font>"; }
|
if ($prmt > 0) {
|
||||||
elseif($npc >= 2) { $name = "<font color=cyan>".$name."</font>"; }
|
$name = "<font color=orange>" . $name . "</font>";
|
||||||
elseif($npc == 1) { $name = "<font color=skyblue>".$name."</font>"; }
|
} elseif ($npc >= 2) {
|
||||||
|
$name = "<font color=cyan>" . $name . "</font>";
|
||||||
|
} elseif ($npc == 1) {
|
||||||
|
$name = "<font color=skyblue>" . $name . "</font>";
|
||||||
|
}
|
||||||
echo "<tr align=center><td class='bg2'>$k</td><td style='font-size:80%;'>$name</td><td>$abil</td><td>$tgame</td><td>$win</td><td>$draw</td><td>$lose</td><td>$gd</td><td>$gl</td></tr>";
|
echo "<tr align=center><td class='bg2'>$k</td><td style='font-size:80%;'>$name</td><td>$abil</td><td>$tgame</td><td>$win</td><td>$draw</td><td>$lose</td><td>$gd</td><td>$gl</td></tr>";
|
||||||
}
|
}
|
||||||
|
|
||||||
function printFighting($tournament, $phase) {
|
function printFighting($tournament, $phase)
|
||||||
|
{
|
||||||
$code = $tournament * 100 + $phase;
|
$code = $tournament * 100 + $phase;
|
||||||
if ($code == 0) {
|
if ($code == 0) {
|
||||||
echo "<tr valign=top>";
|
echo "<tr valign=top>";
|
||||||
@@ -230,21 +322,38 @@ function printFighting($tournament, $phase) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function startTournament($auto, $type) {
|
function startTournament($auto, $type)
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
eraseTnmtFightLogAll();
|
eraseTnmtFightLogAll();
|
||||||
|
|
||||||
switch ($auto) {
|
switch ($auto) {
|
||||||
case 1: $unit = 60; break;
|
case 1:
|
||||||
case 2: $unit = 60; break;
|
$unit = 60;
|
||||||
case 3: $unit = 60; break;
|
break;
|
||||||
case 4: $unit = 60; break;
|
case 2:
|
||||||
case 5: $unit = 30; break;
|
$unit = 60;
|
||||||
case 6: $unit = 15; break;
|
break;
|
||||||
case 7: $unit = 5; break;
|
case 3:
|
||||||
default:$unit = 60; break;
|
$unit = 60;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$unit = 60;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$unit = 30;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
$unit = 15;
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
$unit = 5;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$unit = 60;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$admin = $gameStor->getValues(['year', 'month']);
|
$admin = $gameStor->getValues(['year', 'month']);
|
||||||
@@ -285,8 +394,7 @@ function startTournament($auto, $type) {
|
|||||||
|
|
||||||
if ($opener) {
|
if ($opener) {
|
||||||
$openerText = "황제 <Y>{$opener}</>의 명으로 ";
|
$openerText = "황제 <Y>{$opener}</>의 명으로 ";
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$openerText = '';
|
$openerText = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,7 +411,8 @@ function startTournament($auto, $type) {
|
|||||||
pushGlobalHistoryLog($history, $admin['year'], $admin['month']);
|
pushGlobalHistoryLog($history, $admin['year'], $admin['month']);
|
||||||
}
|
}
|
||||||
|
|
||||||
function startBetting(){
|
function startBetting()
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
[$year, $month, $startyear] = $gameStor->getValuesAsArray(['year', 'month', 'startyear']);
|
[$year, $month, $startyear] = $gameStor->getValuesAsArray(['year', 'month', 'startyear']);
|
||||||
@@ -343,7 +452,8 @@ function startBetting(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function fillLowGenAll() {
|
function fillLowGenAll()
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
@@ -449,19 +559,125 @@ function fillLowGenAll() {
|
|||||||
//7 8강
|
//7 8강
|
||||||
//8 4강
|
//8 4강
|
||||||
//9 결승
|
//9 결승
|
||||||
function getTwo($tournament, $phase) {
|
function getTwo($tournament, $phase)
|
||||||
|
{
|
||||||
$cand = [];
|
$cand = [];
|
||||||
switch ($tournament) {
|
switch ($tournament) {
|
||||||
case 2:
|
case 2:
|
||||||
//예선
|
//예선
|
||||||
switch ($phase % 28) {
|
switch ($phase % 28) {
|
||||||
case 0: $cand[0] = 0; $cand[1] = 1; break; case 1: $cand[0] = 2; $cand[1] = 3; break; case 2: $cand[0] = 4; $cand[1] = 5; break; case 3: $cand[0] = 6; $cand[1] = 7; break;
|
case 0:
|
||||||
case 4: $cand[0] = 0; $cand[1] = 2; break; case 5: $cand[0] = 1; $cand[1] = 3; break; case 6: $cand[0] = 4; $cand[1] = 6; break; case 7: $cand[0] = 5; $cand[1] = 7; break;
|
$cand[0] = 0;
|
||||||
case 8: $cand[0] = 0; $cand[1] = 3; break; case 9: $cand[0] = 1; $cand[1] = 6; break; case 10: $cand[0] = 2; $cand[1] = 5; break; case 11: $cand[0] = 4; $cand[1] = 7; break;
|
$cand[1] = 1;
|
||||||
case 12: $cand[0] = 0; $cand[1] = 4; break; case 13: $cand[0] = 1; $cand[1] = 5; break; case 14: $cand[0] = 2; $cand[1] = 6; break; case 15: $cand[0] = 3; $cand[1] = 7; break;
|
break;
|
||||||
case 16: $cand[0] = 0; $cand[1] = 5; break; case 17: $cand[0] = 1; $cand[1] = 4; break; case 18: $cand[0] = 2; $cand[1] = 7; break; case 19: $cand[0] = 3; $cand[1] = 6; break;
|
case 1:
|
||||||
case 20: $cand[0] = 0; $cand[1] = 6; break; case 21: $cand[0] = 1; $cand[1] = 7; break; case 22: $cand[0] = 2; $cand[1] = 4; break; case 23: $cand[0] = 3; $cand[1] = 5; break;
|
$cand[0] = 2;
|
||||||
case 24: $cand[0] = 0; $cand[1] = 7; break; case 25: $cand[0] = 1; $cand[1] = 2; break; case 26: $cand[0] = 3; $cand[1] = 4; break; case 27: $cand[0] = 5; $cand[1] = 6; break;
|
$cand[1] = 3;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$cand[0] = 4;
|
||||||
|
$cand[1] = 5;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$cand[0] = 6;
|
||||||
|
$cand[1] = 7;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$cand[0] = 0;
|
||||||
|
$cand[1] = 2;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$cand[0] = 1;
|
||||||
|
$cand[1] = 3;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
$cand[0] = 4;
|
||||||
|
$cand[1] = 6;
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
$cand[0] = 5;
|
||||||
|
$cand[1] = 7;
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
$cand[0] = 0;
|
||||||
|
$cand[1] = 3;
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
$cand[0] = 1;
|
||||||
|
$cand[1] = 6;
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
$cand[0] = 2;
|
||||||
|
$cand[1] = 5;
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
$cand[0] = 4;
|
||||||
|
$cand[1] = 7;
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
$cand[0] = 0;
|
||||||
|
$cand[1] = 4;
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
$cand[0] = 1;
|
||||||
|
$cand[1] = 5;
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
$cand[0] = 2;
|
||||||
|
$cand[1] = 6;
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
$cand[0] = 3;
|
||||||
|
$cand[1] = 7;
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
$cand[0] = 0;
|
||||||
|
$cand[1] = 5;
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
$cand[0] = 1;
|
||||||
|
$cand[1] = 4;
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
$cand[0] = 2;
|
||||||
|
$cand[1] = 7;
|
||||||
|
break;
|
||||||
|
case 19:
|
||||||
|
$cand[0] = 3;
|
||||||
|
$cand[1] = 6;
|
||||||
|
break;
|
||||||
|
case 20:
|
||||||
|
$cand[0] = 0;
|
||||||
|
$cand[1] = 6;
|
||||||
|
break;
|
||||||
|
case 21:
|
||||||
|
$cand[0] = 1;
|
||||||
|
$cand[1] = 7;
|
||||||
|
break;
|
||||||
|
case 22:
|
||||||
|
$cand[0] = 2;
|
||||||
|
$cand[1] = 4;
|
||||||
|
break;
|
||||||
|
case 23:
|
||||||
|
$cand[0] = 3;
|
||||||
|
$cand[1] = 5;
|
||||||
|
break;
|
||||||
|
case 24:
|
||||||
|
$cand[0] = 0;
|
||||||
|
$cand[1] = 7;
|
||||||
|
break;
|
||||||
|
case 25:
|
||||||
|
$cand[0] = 1;
|
||||||
|
$cand[1] = 2;
|
||||||
|
break;
|
||||||
|
case 26:
|
||||||
|
$cand[0] = 3;
|
||||||
|
$cand[1] = 4;
|
||||||
|
break;
|
||||||
|
case 27:
|
||||||
|
$cand[0] = 5;
|
||||||
|
$cand[1] = 6;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if ($phase >= 28) {
|
if ($phase >= 28) {
|
||||||
$temp = $cand[0];
|
$temp = $cand[0];
|
||||||
@@ -472,16 +688,38 @@ function getTwo($tournament, $phase) {
|
|||||||
case 4:
|
case 4:
|
||||||
//본선
|
//본선
|
||||||
switch ($phase % 6) {
|
switch ($phase % 6) {
|
||||||
case 0: $cand[0] = 0; $cand[1] = 1; break; case 1: $cand[0] = 2; $cand[1] = 3; break;
|
case 0:
|
||||||
case 2: $cand[0] = 0; $cand[1] = 2; break; case 3: $cand[0] = 1; $cand[1] = 3; break;
|
$cand[0] = 0;
|
||||||
case 4: $cand[0] = 0; $cand[1] = 3; break; case 5: $cand[0] = 1; $cand[1] = 2; break;
|
$cand[1] = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$cand[0] = 2;
|
||||||
|
$cand[1] = 3;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$cand[0] = 0;
|
||||||
|
$cand[1] = 2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$cand[0] = 1;
|
||||||
|
$cand[1] = 3;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$cand[0] = 0;
|
||||||
|
$cand[1] = 3;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$cand[0] = 1;
|
||||||
|
$cand[1] = 2;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return $cand;
|
return $cand;
|
||||||
}
|
}
|
||||||
|
|
||||||
function qualify($tnmt_type, $tnmt, $phase) {
|
function qualify($tnmt_type, $tnmt, $phase)
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
@@ -511,7 +749,8 @@ function qualify($tnmt_type, $tnmt, $phase) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function qualifyAll($tnmt_type, $tnmt, $phase) {
|
function qualifyAll($tnmt_type, $tnmt, $phase)
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
|
|
||||||
$start = $phase;
|
$start = $phase;
|
||||||
@@ -521,23 +760,28 @@ function qualifyAll($tnmt_type, $tnmt, $phase) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function selection($tnmt_type, $tnmt, $phase) {
|
function selection($tnmt_type, $tnmt, $phase)
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
//시드1 배정
|
//시드1 배정
|
||||||
if ($phase < 8) {
|
if ($phase < 8) {
|
||||||
$grp = $phase + 10; $grp_no = 0;
|
$grp = $phase + 10;
|
||||||
|
$grp_no = 0;
|
||||||
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt=1 ORDER BY rand() LIMIT 1');
|
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt=1 ORDER BY rand() LIMIT 1');
|
||||||
//시드2 배정
|
//시드2 배정
|
||||||
} elseif ($phase < 16) {
|
} elseif ($phase < 16) {
|
||||||
$grp = $phase - 8 + 10; $grp_no = 1;
|
$grp = $phase - 8 + 10;
|
||||||
|
$grp_no = 1;
|
||||||
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt=2 ORDER BY rand() LIMIT 1');
|
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt=2 ORDER BY rand() LIMIT 1');
|
||||||
} elseif ($phase < 24) {
|
} elseif ($phase < 24) {
|
||||||
$grp = $phase - 16 + 10; $grp_no = 2;
|
$grp = $phase - 16 + 10;
|
||||||
|
$grp_no = 2;
|
||||||
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt>2 ORDER BY rand() LIMIT 1');
|
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt>2 ORDER BY rand() LIMIT 1');
|
||||||
} else {
|
} else {
|
||||||
$grp = $phase - 24 + 10; $grp_no = 3;
|
$grp = $phase - 24 + 10;
|
||||||
|
$grp_no = 3;
|
||||||
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt>2 ORDER BY rand() LIMIT 1');
|
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt>2 ORDER BY rand() LIMIT 1');
|
||||||
}
|
}
|
||||||
//해당 시드에서 랜덤 선택
|
//해당 시드에서 랜덤 선택
|
||||||
@@ -570,7 +814,8 @@ function selection($tnmt_type, $tnmt, $phase) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectionAll($tnmt_type, $tnmt, $phase) {
|
function selectionAll($tnmt_type, $tnmt, $phase)
|
||||||
|
{
|
||||||
$start = $phase;
|
$start = $phase;
|
||||||
$end = $phase - ($phase % 8) + 8;
|
$end = $phase - ($phase % 8) + 8;
|
||||||
for ($i = $start; $i < $end; $i++) {
|
for ($i = $start; $i < $end; $i++) {
|
||||||
@@ -578,7 +823,8 @@ function selectionAll($tnmt_type, $tnmt, $phase) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function finallySingle($tnmt_type, $tnmt, $phase) {
|
function finallySingle($tnmt_type, $tnmt, $phase)
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
@@ -608,7 +854,8 @@ function finallySingle($tnmt_type, $tnmt, $phase) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function finallyAll($tnmt_type, $tnmt, $phase) {
|
function finallyAll($tnmt_type, $tnmt, $phase)
|
||||||
|
{
|
||||||
$start = $phase;
|
$start = $phase;
|
||||||
$end = $phase - ($phase % 2) + 2;
|
$end = $phase - ($phase % 2) + 2;
|
||||||
for ($i = $start; $i < $end; $i++) {
|
for ($i = $start; $i < $end; $i++) {
|
||||||
@@ -616,13 +863,14 @@ function finallyAll($tnmt_type, $tnmt, $phase) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function final16set() {
|
function final16set()
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
//1조1-5조2, 2조1-6조2, 3조1-7조2, 4조1-8조2, 5조1-1조2, 6조1-2조2, 7조1-3조2, 8조1-4조2
|
//1조1-5조2, 2조1-6조2, 3조1-7조2, 4조1-8조2, 5조1-1조2, 6조1-2조2, 7조1-3조2, 8조1-4조2
|
||||||
$grp = Array(10, 14, 11, 15, 12, 16, 13, 17, 14, 10, 15, 11, 16, 12, 17, 13);
|
$grp = array(10, 14, 11, 15, 12, 16, 13, 17, 14, 10, 15, 11, 16, 12, 17, 13);
|
||||||
$prmt = Array( 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2);
|
$prmt = array(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2);
|
||||||
for ($i = 0; $i < 16; $i++) {
|
for ($i = 0; $i < 16; $i++) {
|
||||||
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE grp=%i AND prmt=%i LIMIT 1', $grp[$i], $prmt[$i]);
|
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE grp=%i AND prmt=%i LIMIT 1', $grp[$i], $prmt[$i]);
|
||||||
//16강에 추가
|
//16강에 추가
|
||||||
@@ -652,16 +900,34 @@ function final16set() {
|
|||||||
$gameStor->phase = 0;
|
$gameStor->phase = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function finalFight($tnmt_type, $tnmt, $phase, $type) {
|
function finalFight($tnmt_type, $tnmt, $phase, $type)
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
switch ($type) {
|
switch ($type) {
|
||||||
case 16: $offset = 20; $turn = 7; $next = 7; break;
|
case 16:
|
||||||
case 8: $offset = 30; $turn = 3; $next = 8; break;
|
$offset = 20;
|
||||||
case 4: $offset = 40; $turn = 1; $next = 9; break;
|
$turn = 7;
|
||||||
case 2: $offset = 50; $turn = 0; $next = 0; break;
|
$next = 7;
|
||||||
default: throw new MustNotBeReachedException();
|
break;
|
||||||
|
case 8:
|
||||||
|
$offset = 30;
|
||||||
|
$turn = 3;
|
||||||
|
$next = 8;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$offset = 40;
|
||||||
|
$turn = 1;
|
||||||
|
$next = 9;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$offset = 50;
|
||||||
|
$turn = 0;
|
||||||
|
$next = 0;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new MustNotBeReachedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
$grp = $phase + $offset;
|
$grp = $phase + $offset;
|
||||||
@@ -694,7 +960,8 @@ function finalFight($tnmt_type, $tnmt, $phase, $type) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setGift($tnmt_type, $tnmt, $phase) {
|
function setGift($tnmt_type, $tnmt, $phase)
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
@@ -703,11 +970,24 @@ function setGift($tnmt_type, $tnmt, $phase) {
|
|||||||
$resultHelper = [];
|
$resultHelper = [];
|
||||||
|
|
||||||
switch ($tnmt_type) {
|
switch ($tnmt_type) {
|
||||||
case 0: $tp = "전력전"; $tp2 = "tt"; break;
|
case 0:
|
||||||
case 1: $tp = "통솔전"; $tp2 = "tl"; break;
|
$tp = "전력전";
|
||||||
case 2: $tp = "일기토"; $tp2 = "ts"; break;
|
$tp2 = "tt";
|
||||||
case 3: $tp = "설전"; $tp2 = "ti"; break;
|
break;
|
||||||
default: throw new MustNotBeReachedException();
|
case 1:
|
||||||
|
$tp = "통솔전";
|
||||||
|
$tp2 = "tl";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$tp = "일기토";
|
||||||
|
$tp2 = "ts";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$tp = "설전";
|
||||||
|
$tp2 = "ti";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new MustNotBeReachedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
//16강자 명성 돈
|
//16강자 명성 돈
|
||||||
@@ -868,7 +1148,8 @@ function setGift($tnmt_type, $tnmt, $phase) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setRefund() {
|
function setRefund()
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
@@ -889,7 +1170,8 @@ function setRefund() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//10차이 1.1, 50 차이 1.17, 100차이 1.2
|
//10차이 1.1, 50 차이 1.17, 100차이 1.2
|
||||||
function getLog($lvl1, $lvl2) {
|
function getLog($lvl1, $lvl2)
|
||||||
|
{
|
||||||
if ($lvl1 >= $lvl2) {
|
if ($lvl1 >= $lvl2) {
|
||||||
$ratio = 1 + log(1 + $lvl1 - $lvl2, 10) / 10;
|
$ratio = 1 + log(1 + $lvl1 - $lvl2, 10) / 10;
|
||||||
} else {
|
} else {
|
||||||
@@ -899,7 +1181,8 @@ function getLog($lvl1, $lvl2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//0 : 승무패, 1 : 승패
|
//0 : 승무패, 1 : 승패
|
||||||
function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type)
|
||||||
|
{
|
||||||
$log = [];
|
$log = [];
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
|
|
||||||
@@ -908,14 +1191,26 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
|||||||
$gen1 = $db->queryFirstRow('SELECT *,(leadership+strength+intel)*7/15 as total,h,w,b from tournament where grp=%i AND grp_no=%i', $group, $g1);
|
$gen1 = $db->queryFirstRow('SELECT *,(leadership+strength+intel)*7/15 as total,h,w,b from tournament where grp=%i AND grp_no=%i', $group, $g1);
|
||||||
$gen2 = $db->queryFirstRow('SELECT *,(leadership+strength+intel)*7/15 as total,h,w,b from tournament where grp=%i AND grp_no=%i', $group, $g2);
|
$gen2 = $db->queryFirstRow('SELECT *,(leadership+strength+intel)*7/15 as total,h,w,b from tournament where grp=%i AND grp_no=%i', $group, $g2);
|
||||||
|
|
||||||
if($type == 0) { $turn = 10; }
|
if ($type == 0) {
|
||||||
else { $turn = 100; }
|
$turn = 10;
|
||||||
|
} else {
|
||||||
|
$turn = 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if($tnmt_type == 1) { $tp = "leadership"; $tp2 = "tl"; }
|
if ($tnmt_type == 1) {
|
||||||
elseif($tnmt_type == 2) { $tp = "strength"; $tp2 = "ts"; }
|
$tp = "leadership";
|
||||||
elseif($tnmt_type == 3) { $tp = "intel"; $tp2 = "ti"; }
|
$tp2 = "tl";
|
||||||
else /*$tnmt_type == 0*/{ $tp = "total"; $tp2 = "tt"; }
|
} elseif ($tnmt_type == 2) {
|
||||||
|
$tp = "strength";
|
||||||
|
$tp2 = "ts";
|
||||||
|
} elseif ($tnmt_type == 3) {
|
||||||
|
$tp = "intel";
|
||||||
|
$tp2 = "ti";
|
||||||
|
} else /*$tnmt_type == 0*/ {
|
||||||
|
$tp = "total";
|
||||||
|
$tp2 = "tt";
|
||||||
|
}
|
||||||
|
|
||||||
$e1 = $energy1 = Util::round($gen1[$tp] * getLog($gen1['lvl'], $gen2['lvl']) * 10);
|
$e1 = $energy1 = Util::round($gen1[$tp] * getLog($gen1['lvl'], $gen2['lvl']) * 10);
|
||||||
$e2 = $energy2 = Util::round($gen2[$tp] * getLog($gen1['lvl'], $gen2['lvl']) * 10);
|
$e2 = $energy2 = Util::round($gen2[$tp] * getLog($gen1['lvl'], $gen2['lvl']) * 10);
|
||||||
@@ -934,17 +1229,21 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
|||||||
switch (rand() % 4) {
|
switch (rand() % 4) {
|
||||||
case 0:
|
case 0:
|
||||||
$josaYi = JosaUtil::pick($itemRawName, '이');
|
$josaYi = JosaUtil::pick($itemRawName, '이');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>{$josaYi} 포효합니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>{$josaYi} 포효합니다!";
|
||||||
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
$josaYi = JosaUtil::pick($itemRawName, '이');
|
$josaYi = JosaUtil::pick($itemRawName, '이');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>{$josaYi} 그 위용을 뽐냅니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>{$josaYi} 그 위용을 뽐냅니다!";
|
||||||
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
$josaYi = JosaUtil::pick($gen['name'], '이');
|
$josaYi = JosaUtil::pick($gen['name'], '이');
|
||||||
$josaUl = JosaUtil::pick($itemRawName, '을');
|
$josaUl = JosaUtil::pick($itemRawName, '을');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>{$josaYi} <S>{$itemName}</>{$josaUl} 타고 있습니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>{$josaYi} <S>{$itemName}</>{$josaUl} 타고 있습니다!";
|
||||||
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
$josaYi = JosaUtil::pick($itemRawName, '이');
|
$josaYi = JosaUtil::pick($itemRawName, '이');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>{$josaYi} 갈기를 휘날립니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>{$josaYi} 갈기를 휘날립니다!";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!$weapon->isBuyable() && ($tnmt_type == 0 || $tnmt_type == 2)) {
|
if (!$weapon->isBuyable() && ($tnmt_type == 0 || $tnmt_type == 2)) {
|
||||||
@@ -953,15 +1252,19 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
|||||||
switch (rand() % 4) {
|
switch (rand() % 4) {
|
||||||
case 0:
|
case 0:
|
||||||
$josaYi = JosaUtil::pick($itemRawName, '이');
|
$josaYi = JosaUtil::pick($itemRawName, '이');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>{$josaYi} 번뜩입니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>{$josaYi} 번뜩입니다!";
|
||||||
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
$josaYi = JosaUtil::pick($itemRawName, '이');
|
$josaYi = JosaUtil::pick($itemRawName, '이');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>{$josaYi} 푸르게 빛납니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>{$josaYi} 푸르게 빛납니다!";
|
||||||
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>에서 살기가 느껴집니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>의 <S>{$itemName}</>에서 살기가 느껴집니다!";
|
||||||
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
$josaYi = JosaUtil::pick($itemRawName, '이');
|
$josaYi = JosaUtil::pick($itemRawName, '이');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>의 손에는 <S>{$itemName}</>{$josaYi} 쥐어져 있습니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>의 손에는 <S>{$itemName}</>{$josaYi} 쥐어져 있습니다!";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!$book->isBuyable() && ($tnmt_type == 0 || $tnmt_type == 3)) {
|
if (!$book->isBuyable() && ($tnmt_type == 0 || $tnmt_type == 3)) {
|
||||||
@@ -971,26 +1274,32 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
|||||||
case 0:
|
case 0:
|
||||||
$josaYi = JosaUtil::pick($gen['name'], '이');
|
$josaYi = JosaUtil::pick($gen['name'], '이');
|
||||||
$josaUl = JosaUtil::pick($itemRawName, '을');
|
$josaUl = JosaUtil::pick($itemRawName, '을');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>{$josaYi} <S>{$itemName}</>{$josaUl} 펼쳐듭니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>{$josaYi} <S>{$itemName}</>{$josaUl} 펼쳐듭니다!";
|
||||||
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
$josaYi = JosaUtil::pick($gen['name'], '이');
|
$josaYi = JosaUtil::pick($gen['name'], '이');
|
||||||
$josaUl = JosaUtil::pick($itemRawName, '을');
|
$josaUl = JosaUtil::pick($itemRawName, '을');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>{$josaYi} <S>{$itemName}</>{$josaUl} 품에서 꺼냅니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>{$josaYi} <S>{$itemName}</>{$josaUl} 품에서 꺼냅니다!";
|
||||||
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
$josaYi = JosaUtil::pick($gen['name'], '이');
|
$josaYi = JosaUtil::pick($gen['name'], '이');
|
||||||
$josaUl = JosaUtil::pick($itemRawName, '을');
|
$josaUl = JosaUtil::pick($itemRawName, '을');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>{$josaYi} <S>{$itemName}</>{$josaUl} 들고 있습니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>{$josaYi} <S>{$itemName}</>{$josaUl} 들고 있습니다!";
|
||||||
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
$josaYi = JosaUtil::pick($itemRawName, '이');
|
$josaYi = JosaUtil::pick($itemRawName, '이');
|
||||||
$log[] = "<S>●</> <Y>{$gen['name']}</>의 손에는 <S>{$itemName}</>{$josaYi} 쥐어져 있습니다!"; break;
|
$log[] = "<S>●</> <Y>{$gen['name']}</>의 손에는 <S>{$itemName}</>{$josaYi} 쥐어져 있습니다!";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$log[] = "<S>●</> <Y>{$gen1['name']}</> <C>({$energy1})</> vs <C>({$energy2})</> <Y>{$gen2['name']}</>";
|
$log[] = "<S>●</> <Y>{$gen1['name']}</> <C>({$energy1})</> vs <C>({$energy2})</> <Y>{$gen2['name']}</>";
|
||||||
|
|
||||||
$gd1 = 0; $gd2 = 0;
|
$gd1 = 0;
|
||||||
$phase = 0; $sel = 2;
|
$gd2 = 0;
|
||||||
|
$phase = 0;
|
||||||
|
$sel = 2;
|
||||||
while ($phase < $turn) {
|
while ($phase < $turn) {
|
||||||
$phase++;
|
$phase++;
|
||||||
//평타
|
//평타
|
||||||
@@ -998,67 +1307,312 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
|||||||
$damage2 = Util::round($gen1[$tp] * (rand() % 21 + 90) / 130); // 90~110%
|
$damage2 = Util::round($gen1[$tp] * (rand() % 21 + 90) / 130); // 90~110%
|
||||||
//보너스타
|
//보너스타
|
||||||
$ratio = rand() % 100;
|
$ratio = rand() % 100;
|
||||||
if($gen1[$tp] >= $ratio) { $damage2 += Util::round($gen1[$tp] * (rand() % 41 + 10) / 130); } // 10~50
|
if ($gen1[$tp] >= $ratio) {
|
||||||
|
$damage2 += Util::round($gen1[$tp] * (rand() % 41 + 10) / 130);
|
||||||
|
} // 10~50
|
||||||
$ratio = rand() % 100;
|
$ratio = rand() % 100;
|
||||||
if($gen2[$tp] >= $ratio) { $damage1 += Util::round($gen2[$tp] * (rand() % 41 + 10) / 130); } // 10~50
|
if ($gen2[$tp] >= $ratio) {
|
||||||
$critical1 = 0; $critical2 = 0;
|
$damage1 += Util::round($gen2[$tp] * (rand() % 41 + 10) / 130);
|
||||||
|
} // 10~50
|
||||||
|
$critical1 = 0;
|
||||||
|
$critical2 = 0;
|
||||||
//막판 분노
|
//막판 분노
|
||||||
$ratio = rand() % 300;
|
$ratio = rand() % 300;
|
||||||
if ($e1 / 5 > $energy1 && $damage1 > $damage2 && $gen1[$tp] >= $ratio) {
|
if ($e1 / 5 > $energy1 && $damage1 > $damage2 && $gen1[$tp] >= $ratio) {
|
||||||
$damage2 *= Util::round((rand() % 301 + 200) / 100); // 200 ~ 500%
|
$damage2 *= Util::round((rand() % 301 + 200) / 100); // 200 ~ 500%
|
||||||
$critical1 = 1;
|
$critical1 = 1;
|
||||||
if ($tnmt_type == 0) { switch(rand()%2) { case 0: $str = "전력"; break; case 1: $str = "집중"; break; } }
|
if ($tnmt_type == 0) {
|
||||||
elseif($tnmt_type == 1) { switch(rand()%2) { case 0: $str = "봉시진"; break; case 1: $str = "어린진"; break; } }
|
switch (rand() % 2) {
|
||||||
elseif($tnmt_type == 2) { switch(rand()%2) { case 0: $str = "삼단"; break; case 1: $str = "나선"; break; } }
|
case 0:
|
||||||
elseif($tnmt_type == 3) { switch(rand()%2) { case 0: $str = "독설"; break; case 1: $str = "논파"; break; } }
|
$str = "전력";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "집중";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 1) {
|
||||||
|
switch (rand() % 2) {
|
||||||
|
case 0:
|
||||||
|
$str = "봉시진";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "어린진";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 2) {
|
||||||
|
switch (rand() % 2) {
|
||||||
|
case 0:
|
||||||
|
$str = "삼단";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "나선";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 3) {
|
||||||
|
switch (rand() % 2) {
|
||||||
|
case 0:
|
||||||
|
$str = "독설";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "논파";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
$log[] = "<S>●</> <Y>{$gen1['name']}</>의 분노의 <M>{$str}</> 공격!";
|
$log[] = "<S>●</> <Y>{$gen1['name']}</>의 분노의 <M>{$str}</> 공격!";
|
||||||
}
|
}
|
||||||
$ratio = rand() % 300;
|
$ratio = rand() % 300;
|
||||||
if ($e2 / 5 > $energy2 && $damage2 > $damage1 && $gen2[$tp] >= $ratio) {
|
if ($e2 / 5 > $energy2 && $damage2 > $damage1 && $gen2[$tp] >= $ratio) {
|
||||||
$damage1 *= Util::round((rand() % 301 + 200) / 100); // 200 ~ 500%
|
$damage1 *= Util::round((rand() % 301 + 200) / 100); // 200 ~ 500%
|
||||||
$critical2 = 1;
|
$critical2 = 1;
|
||||||
if($tnmt_type == 0) { switch(rand()%2) { case 0: $str = "전력"; break; case 1: $str = "집중"; break; } }
|
if ($tnmt_type == 0) {
|
||||||
elseif($tnmt_type == 1) { switch(rand()%2) { case 0: $str = "봉시진"; break; case 1: $str = "어린진"; break; } }
|
switch (rand() % 2) {
|
||||||
elseif($tnmt_type == 2) { switch(rand()%2) { case 0: $str = "삼단"; break; case 1: $str = "나선"; break; } }
|
case 0:
|
||||||
elseif($tnmt_type == 3) { switch(rand()%2) { case 0: $str = "독설"; break; case 1: $str = "논파"; break; } }
|
$str = "전력";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "집중";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 1) {
|
||||||
|
switch (rand() % 2) {
|
||||||
|
case 0:
|
||||||
|
$str = "봉시진";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "어린진";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 2) {
|
||||||
|
switch (rand() % 2) {
|
||||||
|
case 0:
|
||||||
|
$str = "삼단";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "나선";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 3) {
|
||||||
|
switch (rand() % 2) {
|
||||||
|
case 0:
|
||||||
|
$str = "독설";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "논파";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
$log[] = "<S>●</> <Y>{$gen2['name']}</>의 분노의 <M>{$str}</> 공격!";
|
$log[] = "<S>●</> <Y>{$gen2['name']}</>의 분노의 <M>{$str}</> 공격!";
|
||||||
}
|
}
|
||||||
//1합 승부
|
//1합 승부
|
||||||
if ($phase == 1) {
|
if ($phase == 1) {
|
||||||
$ratio = rand() % 400;
|
$ratio = rand() % 400;
|
||||||
if ($gen1[$tp] * 0.9 > $gen2[$tp] && $gen1[$tp] >= $ratio) {
|
if ($gen1[$tp] * 0.9 > $gen2[$tp] && $gen1[$tp] >= $ratio) {
|
||||||
$damage1 = 0; $damage2 = $e2;
|
$damage1 = 0;
|
||||||
if ($tnmt_type == 0) { $log[] = "<S>●</> <Y>{$gen1['name']}</>의 <M>압도</>!"; }
|
$damage2 = $e2;
|
||||||
elseif($tnmt_type == 1) { $log[] = "<S>●</> <Y>{$gen1['name']}</>의 <M>팔문금쇄진</>!"; }
|
if ($tnmt_type == 0) {
|
||||||
elseif($tnmt_type == 2) { $log[] = "<S>●</> <Y>{$gen1['name']}</>의 <M>일격 필살</>!"; }
|
$log[] = "<S>●</> <Y>{$gen1['name']}</>의 <M>압도</>!";
|
||||||
elseif($tnmt_type == 3) { $log[] = "<S>●</> <Y>{$gen1['name']}</>의 <M>모독 욕설</>!"; }
|
} elseif ($tnmt_type == 1) {
|
||||||
|
$log[] = "<S>●</> <Y>{$gen1['name']}</>의 <M>팔문금쇄진</>!";
|
||||||
|
} elseif ($tnmt_type == 2) {
|
||||||
|
$log[] = "<S>●</> <Y>{$gen1['name']}</>의 <M>일격 필살</>!";
|
||||||
|
} elseif ($tnmt_type == 3) {
|
||||||
|
$log[] = "<S>●</> <Y>{$gen1['name']}</>의 <M>모독 욕설</>!";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($gen2[$tp] * 0.9 > $gen1[$tp] && $gen2[$tp] >= $ratio) {
|
if ($gen2[$tp] * 0.9 > $gen1[$tp] && $gen2[$tp] >= $ratio) {
|
||||||
$damage2 = 0; $damage1 = $e1;
|
$damage2 = 0;
|
||||||
if ($tnmt_type == 0) { $log[] = "<S>●</> <Y>{$gen2['name']}</>의 <M>압도</>!"; }
|
$damage1 = $e1;
|
||||||
elseif($tnmt_type == 1) { $log[] = "<S>●</> <Y>{$gen2['name']}</>의 <M>팔문금쇄진</>!"; }
|
if ($tnmt_type == 0) {
|
||||||
elseif($tnmt_type == 2) { $log[] = "<S>●</> <Y>{$gen2['name']}</>의 <M>일격 필살</>!"; }
|
$log[] = "<S>●</> <Y>{$gen2['name']}</>의 <M>압도</>!";
|
||||||
elseif($tnmt_type == 3) { $log[] = "<S>●</> <Y>{$gen2['name']}</>의 <M>모독 욕설</>!"; }
|
} elseif ($tnmt_type == 1) {
|
||||||
|
$log[] = "<S>●</> <Y>{$gen2['name']}</>의 <M>팔문금쇄진</>!";
|
||||||
|
} elseif ($tnmt_type == 2) {
|
||||||
|
$log[] = "<S>●</> <Y>{$gen2['name']}</>의 <M>일격 필살</>!";
|
||||||
|
} elseif ($tnmt_type == 3) {
|
||||||
|
$log[] = "<S>●</> <Y>{$gen2['name']}</>의 <M>모독 욕설</>!";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$ratio = rand() % 1000;
|
$ratio = rand() % 1000;
|
||||||
if ($critical1 == 0 && $gen1[$tp] >= $ratio) {
|
if ($critical1 == 0 && $gen1[$tp] >= $ratio) {
|
||||||
$damage2 *= Util::randRangeInt(150, 300) / 100; // 150 ~ 300%
|
$damage2 *= Util::randRangeInt(150, 300) / 100; // 150 ~ 300%
|
||||||
$critical1 = 1;
|
$critical1 = 1;
|
||||||
if ($tnmt_type == 0) { switch(rand()%6) { case 0: $str = "참격"; break; case 1: $str = "집중"; break; case 2: $str = "역공"; break; case 3: $str = "반격"; break; case 4: $str = "선제"; break; case 5: $str = "도발"; break; } }
|
if ($tnmt_type == 0) {
|
||||||
elseif($tnmt_type == 1) { switch(rand()%6) { case 0: $str = "추행진"; break; case 1: $str = "학익진"; break; case 2: $str = "장사진"; break; case 3: $str = "형액진"; break; case 4: $str = "기형진"; break; case 5: $str = "구행진"; break; } }
|
switch (rand() % 6) {
|
||||||
elseif($tnmt_type == 2) { switch(rand()%6) { case 0: $str = "기합"; break; case 1: $str = "기염"; break; case 2: $str = "반격"; break; case 3: $str = "역공"; break; case 4: $str = "삼단"; break; case 5: $str = "나선"; break; } }
|
case 0:
|
||||||
elseif($tnmt_type == 3) { switch(rand()%6) { case 0: $str = "논파"; break; case 1: $str = "항변"; break; case 2: $str = "반론"; break; case 3: $str = "반박"; break; case 4: $str = "도발"; break; case 5: $str = "면박"; break; } }
|
$str = "참격";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "집중";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$str = "역공";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$str = "반격";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$str = "선제";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$str = "도발";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 1) {
|
||||||
|
switch (rand() % 6) {
|
||||||
|
case 0:
|
||||||
|
$str = "추행진";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "학익진";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$str = "장사진";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$str = "형액진";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$str = "기형진";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$str = "구행진";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 2) {
|
||||||
|
switch (rand() % 6) {
|
||||||
|
case 0:
|
||||||
|
$str = "기합";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "기염";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$str = "반격";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$str = "역공";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$str = "삼단";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$str = "나선";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 3) {
|
||||||
|
switch (rand() % 6) {
|
||||||
|
case 0:
|
||||||
|
$str = "논파";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "항변";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$str = "반론";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$str = "반박";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$str = "도발";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$str = "면박";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
$log[] = "<S>●</> <Y>{$gen1['name']}</>의 <M>{$str}</>!";
|
$log[] = "<S>●</> <Y>{$gen1['name']}</>의 <M>{$str}</>!";
|
||||||
}
|
}
|
||||||
$ratio = rand() % 1000;
|
$ratio = rand() % 1000;
|
||||||
if ($critical2 == 0 && $gen2[$tp] >= $ratio) {
|
if ($critical2 == 0 && $gen2[$tp] >= $ratio) {
|
||||||
$damage1 *= Util::randRangeInt(150, 300) / 100; // 150 ~ 300%
|
$damage1 *= Util::randRangeInt(150, 300) / 100; // 150 ~ 300%
|
||||||
$critical2 = 1;
|
$critical2 = 1;
|
||||||
if ($tnmt_type == 0) { switch(rand()%6) { case 0: $str = "참격"; break; case 1: $str = "집중"; break; case 2: $str = "역공"; break; case 3: $str = "반격"; break; case 4: $str = "선제"; break; case 5: $str = "도발"; break; } }
|
if ($tnmt_type == 0) {
|
||||||
elseif($tnmt_type == 1) { switch(rand()%6) { case 0: $str = "추행진"; break; case 1: $str = "학익진"; break; case 2: $str = "장사진"; break; case 3: $str = "형액진"; break; case 4: $str = "기형진"; break; case 5: $str = "구행진"; break; } }
|
switch (rand() % 6) {
|
||||||
elseif($tnmt_type == 2) { switch(rand()%6) { case 0: $str = "기합"; break; case 1: $str = "기염"; break; case 2: $str = "반격"; break; case 3: $str = "역공"; break; case 4: $str = "삼단"; break; case 5: $str = "나선"; break; } }
|
case 0:
|
||||||
elseif($tnmt_type == 3) { switch(rand()%6) { case 0: $str = "논파"; break; case 1: $str = "항변"; break; case 2: $str = "반론"; break; case 3: $str = "반박"; break; case 4: $str = "도발"; break; case 5: $str = "면박"; break; } }
|
$str = "참격";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "집중";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$str = "역공";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$str = "반격";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$str = "선제";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$str = "도발";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 1) {
|
||||||
|
switch (rand() % 6) {
|
||||||
|
case 0:
|
||||||
|
$str = "추행진";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "학익진";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$str = "장사진";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$str = "형액진";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$str = "기형진";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$str = "구행진";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 2) {
|
||||||
|
switch (rand() % 6) {
|
||||||
|
case 0:
|
||||||
|
$str = "기합";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "기염";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$str = "반격";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$str = "역공";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$str = "삼단";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$str = "나선";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} elseif ($tnmt_type == 3) {
|
||||||
|
switch (rand() % 6) {
|
||||||
|
case 0:
|
||||||
|
$str = "논파";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$str = "항변";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$str = "반론";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$str = "반박";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$str = "도발";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$str = "면박";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
$log[] = "<S>●</> <Y>{$gen2['name']}</>의 <M>{$str}</>!";
|
$log[] = "<S>●</> <Y>{$gen2['name']}</>의 <M>{$str}</>!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1068,36 +1622,49 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
|||||||
|
|
||||||
$energy1 -= $damage1;
|
$energy1 -= $damage1;
|
||||||
$energy2 -= $damage2;
|
$energy2 -= $damage2;
|
||||||
$tDamage1 = $damage1; $tDamage2 = $damage2;
|
$tDamage1 = $damage1;
|
||||||
$tEnergy1 = $energy1; $tEnergy2 = $energy2;
|
$tDamage2 = $damage2;
|
||||||
|
$tEnergy1 = $energy1;
|
||||||
|
$tEnergy2 = $energy2;
|
||||||
if ($energy1 <= 0 && $energy2 <= 0) {
|
if ($energy1 <= 0 && $energy2 <= 0) {
|
||||||
$r1 = $tEnergy1 / Util::valueFit($tDamage1, 1);
|
$r1 = $tEnergy1 / Util::valueFit($tDamage1, 1);
|
||||||
$r2 = $tEnergy2 / Util::valueFit($tDamage2, 1);
|
$r2 = $tEnergy2 / Util::valueFit($tDamage2, 1);
|
||||||
|
|
||||||
if ($r1 > $r2) {
|
if ($r1 > $r2) {
|
||||||
$offset = Util::round($tEnergy2 * $tDamage1 / Util::valueFit($tDamage2, 1));
|
$offset = Util::round($tEnergy2 * $tDamage1 / Util::valueFit($tDamage2, 1));
|
||||||
$damage1 += $offset; $energy1 -= $offset;
|
$damage1 += $offset;
|
||||||
$damage2 += $tEnergy2; $energy2 = 0;
|
$energy1 -= $offset;
|
||||||
|
$damage2 += $tEnergy2;
|
||||||
|
$energy2 = 0;
|
||||||
} else {
|
} else {
|
||||||
$offset = Util::round($tEnergy1 * $tDamage2 / Util::valueFit($tDamage1, 1));
|
$offset = Util::round($tEnergy1 * $tDamage2 / Util::valueFit($tDamage1, 1));
|
||||||
$damage2 += $offset; $energy2 -= $offset;
|
$damage2 += $offset;
|
||||||
$damage1 += $tEnergy1; $energy1 = 0;
|
$energy2 -= $offset;
|
||||||
|
$damage1 += $tEnergy1;
|
||||||
|
$energy1 = 0;
|
||||||
}
|
}
|
||||||
} elseif ($energy1 * $energy2 <= 0) {
|
} elseif ($energy1 * $energy2 <= 0) {
|
||||||
if ($energy2 < 0) {
|
if ($energy2 < 0) {
|
||||||
$offset = Util::round($tEnergy2 * $tDamage1 / Util::valueFit($tDamage2, 1));
|
$offset = Util::round($tEnergy2 * $tDamage1 / Util::valueFit($tDamage2, 1));
|
||||||
$damage1 += $offset; $energy1 -= $offset;
|
$damage1 += $offset;
|
||||||
$damage2 += $tEnergy2; $energy2 = 0;
|
$energy1 -= $offset;
|
||||||
|
$damage2 += $tEnergy2;
|
||||||
|
$energy2 = 0;
|
||||||
}
|
}
|
||||||
if ($energy1 < 0) {
|
if ($energy1 < 0) {
|
||||||
$offset = Util::round($tEnergy1 * $tDamage2 / Util::valueFit($tDamage1, 1));
|
$offset = Util::round($tEnergy1 * $tDamage2 / Util::valueFit($tDamage1, 1));
|
||||||
$damage2 += $offset; $energy2 -= $offset;
|
$damage2 += $offset;
|
||||||
$damage1 += $tEnergy1; $energy1 = 0;
|
$energy2 -= $offset;
|
||||||
|
$damage1 += $tEnergy1;
|
||||||
|
$energy1 = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$gd1 += $damage1; $gd2 += $damage2;
|
$gd1 += $damage1;
|
||||||
$energy1 = Util::round($energy1); $energy2 = Util::round($energy2);
|
$gd2 += $damage2;
|
||||||
$damage1 = Util::round($damage1); $damage2 = Util::round($damage2);
|
$energy1 = Util::round($energy1);
|
||||||
|
$energy2 = Util::round($energy2);
|
||||||
|
$damage1 = Util::round($damage1);
|
||||||
|
$damage2 = Util::round($damage2);
|
||||||
|
|
||||||
$log[] = '<S>●</> '
|
$log[] = '<S>●</> '
|
||||||
. StringUtil::padStringAlignRight((string)$phase, 2, "0") . '合 : '
|
. StringUtil::padStringAlignRight((string)$phase, 2, "0") . '合 : '
|
||||||
@@ -1108,18 +1675,27 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
|||||||
. '<C>' . StringUtil::padStringAlignRight((string)$energy2, 3, "0") . '</>';
|
. '<C>' . StringUtil::padStringAlignRight((string)$energy2, 3, "0") . '</>';
|
||||||
|
|
||||||
if ($energy1 <= 0 && $energy2 <= 0) {
|
if ($energy1 <= 0 && $energy2 <= 0) {
|
||||||
if($type == 0) { $sel = 2; break; }
|
if ($type == 0) {
|
||||||
else {
|
$sel = 2;
|
||||||
$energy1 = Util::round($e1 / 2); $energy2 = Util::round($e2 / 2);
|
break;
|
||||||
|
} else {
|
||||||
|
$energy1 = Util::round($e1 / 2);
|
||||||
|
$energy2 = Util::round($e2 / 2);
|
||||||
$log[] = "<S>●</> <span class='ev_highlight'>재대결</span>!";
|
$log[] = "<S>●</> <span class='ev_highlight'>재대결</span>!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($energy1 <= 0) { $sel = 1; break; }
|
if ($energy1 <= 0) {
|
||||||
if($energy2 <= 0) { $sel = 0; break; }
|
$sel = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ($energy2 <= 0) {
|
||||||
|
$sel = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$general1 = $db->queryFirstRow('SELECT value as gl FROM rank_data WHERE general_id = %i AND type = %s', $gen1['no'], $tp2.'g');
|
$gen1gl = $db->queryFirstField('SELECT value as gl FROM rank_data WHERE general_id = %i AND type = %s', $gen1['no'], $tp2 . 'g') ?? 0;
|
||||||
$general2 = $db->queryFirstRow('SELECT value as gl FROM rank_data WHERE general_id = %i AND type = %s', $gen2['no'], $tp2.'g');
|
$gen2gl = $db->queryFirstField('SELECT value as gl FROM rank_data WHERE general_id = %i AND type = %s', $gen2['no'], $tp2 . 'g') ?? 0;
|
||||||
|
|
||||||
switch ($sel) {
|
switch ($sel) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -1135,9 +1711,16 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
|||||||
'gl' => $db->sqleval('gl-%i', $gl)
|
'gl' => $db->sqleval('gl-%i', $gl)
|
||||||
], 'grp=%i AND grp_no=%i', $group, $g2);
|
], 'grp=%i AND grp_no=%i', $group, $g2);
|
||||||
|
|
||||||
if($general1['gl'] > $general2['gl']) { $gl1 = 1; $gl2 = 0; }
|
if ($gen1gl > $gen2gl) {
|
||||||
elseif($general1['gl'] == $general2['gl']) { $gl1 = 2; $gl2 = -1; }
|
$gl1 = 1;
|
||||||
else { $gl1 = 3; $gl2 = -2; }
|
$gl2 = 0;
|
||||||
|
} elseif ($gen1gl == $gen2gl) {
|
||||||
|
$gl1 = 2;
|
||||||
|
$gl2 = -1;
|
||||||
|
} else {
|
||||||
|
$gl1 = 3;
|
||||||
|
$gl2 = -2;
|
||||||
|
}
|
||||||
|
|
||||||
$gen1resKey = 'w';
|
$gen1resKey = 'w';
|
||||||
$gen2resKey = 'l';
|
$gen2resKey = 'l';
|
||||||
@@ -1155,9 +1738,16 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
|||||||
'gl' => $db->sqleval('gl+%i', $gl)
|
'gl' => $db->sqleval('gl+%i', $gl)
|
||||||
], 'grp=%i AND grp_no=%i', $group, $g2);
|
], 'grp=%i AND grp_no=%i', $group, $g2);
|
||||||
|
|
||||||
if($general2['gl'] > $general1['gl']) { $gl2 = 1; $gl1 = 0; }
|
if ($gen2gl > $gen1gl) {
|
||||||
elseif($general2['gl'] == $general1['gl']) { $gl2 = 2; $gl1 = -1; }
|
$gl2 = 1;
|
||||||
else { $gl2 = 3; $gl1 = -2; }
|
$gl1 = 0;
|
||||||
|
} elseif ($gen2gl == $gen1gl) {
|
||||||
|
$gl2 = 2;
|
||||||
|
$gl1 = -1;
|
||||||
|
} else {
|
||||||
|
$gl2 = 3;
|
||||||
|
$gl1 = -2;
|
||||||
|
}
|
||||||
|
|
||||||
$gen1resKey = 'l';
|
$gen1resKey = 'l';
|
||||||
$gen2resKey = 'w';
|
$gen2resKey = 'w';
|
||||||
@@ -1169,14 +1759,22 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
|
|||||||
'draw' => $db->sqleval('draw+1')
|
'draw' => $db->sqleval('draw+1')
|
||||||
], 'grp=%i AND (grp_no=%i OR grp_no=%i)', $group, $g1, $g2);
|
], 'grp=%i AND (grp_no=%i OR grp_no=%i)', $group, $g1, $g2);
|
||||||
|
|
||||||
if($general1['gl'] > $general2['gl']) { $gl2 = -1; $gl1 = 1; }
|
if ($gen1gl > $gen2gl) {
|
||||||
elseif($general1['gl'] == $general2['gl']) { $gl2 = 0; $gl1 = 0; }
|
$gl2 = -1;
|
||||||
else { $gl2 = +1; $gl1 = -1; }
|
$gl1 = 1;
|
||||||
|
} elseif ($gen1gl == $gen2gl) {
|
||||||
|
$gl2 = 0;
|
||||||
|
$gl1 = 0;
|
||||||
|
} else {
|
||||||
|
$gl2 = +1;
|
||||||
|
$gl1 = -1;
|
||||||
|
}
|
||||||
|
|
||||||
$gen1resKey = 'd';
|
$gen1resKey = 'd';
|
||||||
$gen2resKey = 'd';
|
$gen2resKey = 'd';
|
||||||
break;
|
break;
|
||||||
default: throw new MustNotBeReachedException();
|
default:
|
||||||
|
throw new MustNotBeReachedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
$db->update('rank_data', [
|
$db->update('rank_data', [
|
||||||
|
|||||||
Reference in New Issue
Block a user