diff --git a/hwe/func_tournament.php b/hwe/func_tournament.php
index d5517876..32988b49 100644
--- a/hwe/func_tournament.php
+++ b/hwe/func_tournament.php
@@ -1,8 +1,10 @@
getTimestamp() - (new \DateTime($admin['tnmt_time']))->getTimestamp();
//수동일땐 무시
- if($admin['tnmt_auto'] == 0) { return; }
+ if ($admin['tnmt_auto'] == 0) {
+ return;
+ }
$type = $admin['tnmt_type'];
$tnmt = $admin['tournament'];
$phase = $admin['phase'];
- if($offset < 0){
+ if ($offset < 0) {
return;
}
//현시간이 스탬프 지나친경우
- switch($admin['tnmt_auto']) {
- case 1: $unit = 720; break;
- case 2: $unit = 420; break;
- case 3: $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();
+ switch ($admin['tnmt_auto']) {
+ case 1:
+ $unit = 720;
+ break;
+ case 2:
+ $unit = 420;
+ break;
+ case 3:
+ $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();
}
//업데이트 횟수
$iter = intdiv($offset, $unit) + 1;
- for($i=0; $i < $iter; $i++) {
- switch($tnmt) {
- case 1: //신청 마감
- fillLowGenAll();
- $tnmt = 2; $phase = 0;
- break;
- case 2: //예선중
- qualify($type, $tnmt, $phase); $phase++;
- if($phase >= 56) { $tnmt = 3; $phase = 0; }
- break;
- case 3: //추첨중
- selectionAll($type, $tnmt, $phase); $phase+=8;
- if($phase >= 32) { $tnmt = 4; $phase = 0; }
- break;
- case 4: //본선중
- finallySingle($type, $tnmt, $phase); $phase++;
- if($phase >= 6) { $tnmt = 5; $phase = 0; }
- break;
- case 5: //배정중
- final16set();
- $tnmt = 6; $phase = 0;
- startBetting();
- break;
- case 6: //베팅중
- $tnmt = 7; $phase = 0;
- break;
- case 7: //16강중
- finalFight($type, $tnmt, $phase, 16); $phase++;
- if($phase >= 8) { $tnmt = 8; $phase = 0; }
- break;
- case 8: //8강중
- finalFight($type, $tnmt, $phase, 8); $phase++;
- if($phase >= 4) { $tnmt = 9; $phase = 0; }
- break;
- case 9: //4강중
- finalFight($type, $tnmt, $phase, 4); $phase++;
- if($phase >= 2) { $tnmt = 10; $phase = 0; }
- break;
- case 10: //결승중
- finalFight($type, $tnmt, $phase, 2);
- $tnmt = 0; $phase = 0;
- setGift($type, $tnmt, $phase);
- $i = $iter;
- break;
+ for ($i = 0; $i < $iter; $i++) {
+ switch ($tnmt) {
+ case 1: //신청 마감
+ fillLowGenAll();
+ $tnmt = 2;
+ $phase = 0;
+ break;
+ case 2: //예선중
+ qualify($type, $tnmt, $phase);
+ $phase++;
+ if ($phase >= 56) {
+ $tnmt = 3;
+ $phase = 0;
+ }
+ break;
+ case 3: //추첨중
+ selectionAll($type, $tnmt, $phase);
+ $phase += 8;
+ if ($phase >= 32) {
+ $tnmt = 4;
+ $phase = 0;
+ }
+ break;
+ case 4: //본선중
+ finallySingle($type, $tnmt, $phase);
+ $phase++;
+ if ($phase >= 6) {
+ $tnmt = 5;
+ $phase = 0;
+ }
+ break;
+ case 5: //배정중
+ final16set();
+ $tnmt = 6;
+ $phase = 0;
+ startBetting();
+ break;
+ case 6: //베팅중
+ $tnmt = 7;
+ $phase = 0;
+ break;
+ case 7: //16강중
+ finalFight($type, $tnmt, $phase, 16);
+ $phase++;
+ if ($phase >= 8) {
+ $tnmt = 8;
+ $phase = 0;
+ }
+ break;
+ case 8: //8강중
+ finalFight($type, $tnmt, $phase, 8);
+ $phase++;
+ if ($phase >= 4) {
+ $tnmt = 9;
+ $phase = 0;
+ }
+ break;
+ case 9: //4강중
+ finalFight($type, $tnmt, $phase, 4);
+ $phase++;
+ if ($phase >= 2) {
+ $tnmt = 10;
+ $phase = 0;
+ }
+ break;
+ case 10: //결승중
+ finalFight($type, $tnmt, $phase, 2);
+ $tnmt = 0;
+ $phase = 0;
+ setGift($type, $tnmt, $phase);
+ $i = $iter;
+ break;
}
//베팅은 무조건 60페이즈후 진행(최대 1시간)
- if($tnmt == 6) {
+ if ($tnmt == 6) {
$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);
$gameStor->tournament = $tnmt;
@@ -94,13 +143,13 @@ function processTournament() {
return;
}
- if($admin['tnmt_auto'] == 1) {
+ if ($admin['tnmt_auto'] == 1) {
//처리 초 더한 날짜
$dt = date("Y-m-d H:i:s", strtotime($admin['tnmt_time']) + $unit * $i);
$hr = substr($dt, 11, 2);
//지정시간대 넘어가면 중단 20~24시
- if($hr < 20) {
- $dt = substr($dt, 0, 11)."20:00:00";
+ if ($hr < 20) {
+ $dt = substr($dt, 0, 11) . "20:00:00";
$gameStor->tournament = $tnmt;
$gameStor->phase = $phase;
$gameStor->tnmt_time = $dt;
@@ -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');
}
-function getTournamentTerm() {
+function getTournamentTerm()
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$tnmt_auto = $gameStor->tnmt_auto;
- switch($tnmt_auto) {
- case 0: $str = ''; break;
- case 1: $str = "경기당 12분"; break;
- case 2: $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;
+ switch ($tnmt_auto) {
+ case 0:
+ $str = '';
+ break;
+ case 1:
+ $str = "경기당 12분";
+ break;
+ case 2:
+ $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;
}
-function getTournamentTime() {
+function getTournamentTime()
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
list($tnmt, $tnmt_time) = $gameStor->getValuesAsArray(['tournament', 'tnmt_time']);
$dt = substr($tnmt_time, 11, 5);
- switch($tnmt) {
- case 1: $tnmt = "개막시간 {$dt}"; break;
- case 2: $tnmt = "다음경기 {$dt}"; break;
- case 3: $tnmt = "다음추첨 {$dt}"; 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;
+ switch ($tnmt) {
+ case 1:
+ $tnmt = "개막시간 {$dt}";
+ break;
+ case 2:
+ $tnmt = "다음경기 {$dt}";
+ break;
+ case 3:
+ $tnmt = "다음추첨 {$dt}";
+ 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;
}
-function getTournament(int $tnmt) {
+function getTournament(int $tnmt)
+{
return [
"경기 없음",
"참가 모집중",
@@ -167,84 +253,107 @@ function getTournament(int $tnmt) {
"8강 진행중",
"4강 진행중",
"결승 진행중",
- ][$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;
- if($prmt > 0) { $name = "".$name.""; }
- elseif($npc >= 2) { $name = "".$name.""; }
- elseif($npc == 1) { $name = "".$name.""; }
+ if ($prmt > 0) {
+ $name = "" . $name . "";
+ } elseif ($npc >= 2) {
+ $name = "" . $name . "";
+ } elseif ($npc == 1) {
+ $name = "" . $name . "";
+ }
echo "
| $k | $name | $abil | $tgame | $win | $draw | $lose | $gd | $gl |
";
}
-function printFighting($tournament, $phase) {
+function printFighting($tournament, $phase)
+{
$code = $tournament * 100 + $phase;
- if($code == 0) {
+ if ($code == 0) {
echo "";
echo "| | ";
echo " | ";
echo " | ";
- echo "".getTnmtFightLogAll(50)." | ";
+ echo "" . getTnmtFightLogAll(50) . " | ";
echo " | ";
echo " | ";
echo " | ";
echo " | ";
echo "
";
- } elseif($code <= 300) {
+ } elseif ($code <= 300) {
echo "";
- for($i=0; $i < 8; $i++) {
- echo "| ".getTnmtFightLogAll($i)." | ";
+ for ($i = 0; $i < 8; $i++) {
+ echo "" . getTnmtFightLogAll($i) . " | ";
}
echo "
";
- } elseif($code < 400) {
- } elseif($code <= 500) {
+ } elseif ($code < 400) {
+ } elseif ($code <= 500) {
echo "";
- for($i=10; $i < 18; $i++) {
- echo "| ".getTnmtFightLogAll($i)." | ";
+ for ($i = 10; $i < 18; $i++) {
+ echo "" . getTnmtFightLogAll($i) . " | ";
}
echo "
";
- } elseif($code < 700) {
- } elseif($code <= 800) {
+ } elseif ($code < 700) {
+ } elseif ($code <= 800) {
echo "";
- for($i=20; $i < 28; $i++) {
- echo "| ".getTnmtFightLogAll($i)." | ";
+ for ($i = 20; $i < 28; $i++) {
+ echo "" . getTnmtFightLogAll($i) . " | ";
}
echo "
";
- } elseif($code <= 900) {
+ } elseif ($code <= 900) {
echo "";
- for($i=30; $i < 34; $i++) {
+ for ($i = 30; $i < 34; $i++) {
echo "| | ";
- echo "".getTnmtFightLogAll($i)." | ";
+ echo "" . getTnmtFightLogAll($i) . " | ";
}
echo "
";
- } elseif($code <= 1000) {
+ } elseif ($code <= 1000) {
echo "";
- for($i=40; $i < 42; $i++) {
+ for ($i = 40; $i < 42; $i++) {
echo "| | ";
echo " | ";
- echo "".getTnmtFightLogAll($i)." | ";
+ echo "" . getTnmtFightLogAll($i) . " | ";
echo " | ";
}
echo "
";
}
}
-function startTournament($auto, $type) {
+function startTournament($auto, $type)
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
eraseTnmtFightLogAll();
- switch($auto) {
- case 1: $unit = 60; break;
- case 2: $unit = 60; break;
- case 3: $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;
+ switch ($auto) {
+ case 1:
+ $unit = 60;
+ break;
+ case 2:
+ $unit = 60;
+ break;
+ case 3:
+ $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']);
@@ -256,46 +365,45 @@ function startTournament($auto, $type) {
$gameStor->phase = 0;
$db->update('general', [
- 'tournament'=>0,
+ 'tournament' => 0,
], true);
$db->update('betting', [
- 'bet0'=>0,
- 'bet1'=>0,
- 'bet2'=>0,
- 'bet3'=>0,
- 'bet4'=>0,
- 'bet5'=>0,
- 'bet6'=>0,
- 'bet7'=>0,
- 'bet8'=>0,
- 'bet9'=>0,
- 'bet10'=>0,
- 'bet11'=>0,
- 'bet12'=>0,
- 'bet13'=>0,
- 'bet14'=>0,
- 'bet15'=>0
+ 'bet0' => 0,
+ 'bet1' => 0,
+ 'bet2' => 0,
+ 'bet3' => 0,
+ 'bet4' => 0,
+ 'bet5' => 0,
+ 'bet6' => 0,
+ 'bet7' => 0,
+ 'bet8' => 0,
+ 'bet9' => 0,
+ 'bet10' => 0,
+ 'bet11' => 0,
+ 'bet12' => 0,
+ 'bet13' => 0,
+ 'bet14' => 0,
+ 'bet15' => 0
], true);
$db->query('TRUNCATE TABLE tournament');
$opener = $db->queryFirstField('SELECT `general`.`name` FROM `general` JOIN `nation` ON `general`.`nation` = `nation`.`nation` WHERE `general`.`officer_level` = 12 AND `nation`.`level` = 7 ORDER BY rand() LIMIT 1');
- if(!$opener){
+ if (!$opener) {
$opener = $gameStor->prev_winner;
}
- if($opener){
+ if ($opener) {
$openerText = "황제 {$opener}>의 명으로 ";
- }
- else{
+ } else {
$openerText = '';
}
$history = [];
[$typeText, $genTypeText] = [
- ['전력전','영웅'],
- ['통솔전','명사'],
- ['일기토','용사'],
- ['설전','책사'],
+ ['전력전', '영웅'],
+ ['통솔전', '명사'],
+ ['일기토', '용사'],
+ ['설전', '책사'],
][$type];
$history[] = "◆>{$admin['year']}년 {$admin['month']}월:【대회】>{$openerText}{$typeText}> 대회가 개최됩니다! 천하의 {$genTypeText}들을 모집하고 있습니다!";
@@ -303,7 +411,8 @@ function startTournament($auto, $type) {
pushGlobalHistoryLog($history, $admin['year'], $admin['month']);
}
-function startBetting(){
+function startBetting()
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
[$year, $month, $startyear] = $gameStor->getValuesAsArray(['year', 'month', 'startyear']);
@@ -311,7 +420,7 @@ function startBetting(){
"◆>{$year}년 {$month}월:【대회】>우승자를 예상하는 내기>가 진행중입니다! 호사가의 참여를 기다립니다!"
], $year, $month);
- $betGold = Util::valueFit(floor((3+$year-$startyear)*0.334)*10, 10);
+ $betGold = Util::valueFit(floor((3 + $year - $startyear) * 0.334) * 10, 10);
$npcList = $db->queryFirstColumn('SELECT no FROM general WHERE npc >= 2 AND gold >= (500 + %i)', $betGold);
$npcBet = [];
@@ -320,63 +429,64 @@ function startBetting(){
0, 0, 0, 0, 0, 0, 0, 0,
];
- foreach($npcList as $npcID){
+ foreach ($npcList as $npcID) {
$target = Util::randRangeInt(0, 15);
$betSum[$target] += $betGold;
$npcBet[] = [$npcID, $target];
}
$db->update('general', [
- 'gold'=>$db->sqleval('gold - %i', $betGold),
+ 'gold' => $db->sqleval('gold - %i', $betGold),
], 'no IN %li', $npcList);
- foreach($npcBet as [$npcID, $betTarget]){
+ foreach ($npcBet as [$npcID, $betTarget]) {
$targetKey = "bet{$betTarget}";
$db->update('betting', [
- "bet{$betTarget}"=>$db->sqleval('%b + %i', $targetKey, $betGold),
+ "bet{$betTarget}" => $db->sqleval('%b + %i', $targetKey, $betGold),
], 'general_id = %i', $npcID);
}
- foreach($betSum as $betTarget=>$betSumGold){
+ foreach ($betSum as $betTarget => $betSumGold) {
$targetKey = "bet{$betTarget}";
$db->update('betting', [
- "bet{$betTarget}"=>$db->sqleval('%b + %i', $targetKey, $betSumGold),
+ "bet{$betTarget}" => $db->sqleval('%b + %i', $targetKey, $betSumGold),
], 'general_id = 0');
}
}
-function fillLowGenAll() {
+function fillLowGenAll()
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$grpCount = [];
$dummyGeneral = [
- 'no'=>0,
- 'npc'=>2,
- 'name'=>'무명장수',
- 'leadership'=>10,
- 'strength'=>10,
- 'intel'=>10,
- 'explevel'=>10
+ 'no' => 0,
+ 'npc' => 2,
+ 'name' => '무명장수',
+ 'leadership' => 10,
+ 'strength' => 10,
+ 'intel' => 10,
+ 'explevel' => 10
];
$dummyGeneral = [
- 'no'=>0,
- 'npc'=>2,
- 'name'=>'무명장수',
- 'leadership'=>10,
- 'strength'=>10,
- 'intel'=>10,
- 'lvl'=>0,
- 'h'=>'None',
- 'w'=>'None',
- 'b'=>'None'
+ 'no' => 0,
+ 'npc' => 2,
+ 'name' => '무명장수',
+ 'leadership' => 10,
+ 'strength' => 10,
+ 'intel' => 10,
+ 'lvl' => 0,
+ 'h' => 'None',
+ 'w' => 'None',
+ 'b' => 'None'
];
- for($i=0;$i<8;$i++){
+ for ($i = 0; $i < 8; $i++) {
$grpCount[$i] = 0;
}
- foreach($db->queryAllLists('SELECT grp, count(grp) FROM tournament GROUP BY grp') as [$grpIdx, $grpCnt]){
+ foreach ($db->queryAllLists('SELECT grp, count(grp) FROM tournament GROUP BY grp') as [$grpIdx, $grpCnt]) {
$grpCount[$grpIdx] = $grpCnt;
}
@@ -384,11 +494,11 @@ function fillLowGenAll() {
$gameStor->phase = 0;
$currentJoinerCnt = array_sum($grpCount);
- if($currentJoinerCnt == 64){
+ if ($currentJoinerCnt == 64) {
return;
}
- $toBeFilledCnt = 8*8-$currentJoinerCnt;
+ $toBeFilledCnt = 8 * 8 - $currentJoinerCnt;
//자동신청하고, 돈 있고, 아직 참가 안한 장수
$freeJoiners = $db->query(
@@ -399,30 +509,30 @@ function fillLowGenAll() {
$joinersValues = [];
$joinersIdx = [];
- foreach($freeJoiners as $general){
+ foreach ($freeJoiners as $general) {
$grpIdx = array_keys($grpCount, min($grpCount))[0];
$grpCnt = $grpCount[$grpIdx];
$joinersValues[] = [
- 'no'=>$general['no'],
- 'npc'=>$general['npc'],
- 'name'=>$general['name'],
- 'leadership'=>$general['leadership'],
- 'strength'=>$general['strength'],
- 'intel'=>$general['intel'],
- 'lvl'=>$general['explevel'],
- 'grp'=>$grpIdx,
- 'grp_no'=>$grpCnt,
- 'h'=>$general['horse'],
- 'w'=>$general['weapon'],
- 'b'=>$general['book']
+ 'no' => $general['no'],
+ 'npc' => $general['npc'],
+ 'name' => $general['name'],
+ 'leadership' => $general['leadership'],
+ 'strength' => $general['strength'],
+ 'intel' => $general['intel'],
+ 'lvl' => $general['explevel'],
+ 'grp' => $grpIdx,
+ 'grp_no' => $grpCnt,
+ 'h' => $general['horse'],
+ 'w' => $general['weapon'],
+ 'b' => $general['book']
];
$joinersIdx[] = $general['no'];
$grpCount[$grpIdx] += 1;
}
- foreach($grpCount as $grpIdx=>$grpCnt){
- while($grpCnt < 8){
+ foreach ($grpCount as $grpIdx => $grpCnt) {
+ while ($grpCnt < 8) {
$dummyCopy = $dummyGeneral;
$dummyCopy['grp'] = $grpIdx;
$dummyCopy['grp_no'] = $grpCnt;
@@ -432,7 +542,7 @@ function fillLowGenAll() {
}
$db->update('general', [
- 'tournament'=>1
+ 'tournament' => 1
], 'no IN %li', $joinersIdx);
$db->insert('tournament', $joinersValues);
@@ -449,252 +559,409 @@ function fillLowGenAll() {
//7 8강
//8 4강
//9 결승
-function getTwo($tournament, $phase) {
+function getTwo($tournament, $phase)
+{
$cand = [];
- switch($tournament) {
- case 2:
- //예선
- 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 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) {
- $temp = $cand[0];
- $cand[0] = $cand[1];
- $cand[1] = $temp;
- }
- break;
- case 4:
- //본선
- switch($phase%6) {
- case 0: $cand[0] = 0; $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;
+ switch ($tournament) {
+ case 2:
+ //예선
+ 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 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) {
+ $temp = $cand[0];
+ $cand[0] = $cand[1];
+ $cand[1] = $temp;
+ }
+ break;
+ case 4:
+ //본선
+ switch ($phase % 6) {
+ case 0:
+ $cand[0] = 0;
+ $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;
}
return $cand;
}
-function qualify($tnmt_type, $tnmt, $phase) {
+function qualify($tnmt_type, $tnmt, $phase)
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$cand = getTwo($tnmt, $phase);
//각 그룹 페이즈 실행
- for($i=0; $i < 8; $i++) {
+ for ($i = 0; $i < 8; $i++) {
fight($tnmt_type, $tnmt, $phase, $i, $cand[0], $cand[1], 0);
}
- if($phase < 55) {
- $gameStor->phase+=1;
+ if ($phase < 55) {
+ $gameStor->phase += 1;
} else {
- $gameStor->phase=0;
- $gameStor->tournament=3;
+ $gameStor->phase = 0;
+ $gameStor->tournament = 3;
- foreach(Util::range(8) as $grpIdx){
+ foreach (Util::range(8) as $grpIdx) {
$promoters = $db->query(
'SELECT grp,grp_no,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp=%i order by gd desc, gl desc, seq limit 0,4',
$grpIdx
);
- foreach($promoters as $grpRank=>$grpGen){
+ foreach ($promoters as $grpRank => $grpGen) {
$db->update('tournament', [
- 'prmt'=>$grpRank+1,
+ 'prmt' => $grpRank + 1,
], 'grp=%i AND grp_no=%i', $grpIdx, $grpGen['grp_no']);
}
}
}
}
-function qualifyAll($tnmt_type, $tnmt, $phase) {
+function qualifyAll($tnmt_type, $tnmt, $phase)
+{
$db = DB::db();
$start = $phase;
$end = $phase - ($phase % 4) + 4;
- for($i=$start; $i < $end; $i++) {
+ for ($i = $start; $i < $end; $i++) {
qualify($tnmt_type, $tnmt, $i);
}
}
-function selection($tnmt_type, $tnmt, $phase) {
+function selection($tnmt_type, $tnmt, $phase)
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
//시드1 배정
- if($phase < 8) {
- $grp = $phase + 10; $grp_no = 0;
+ if ($phase < 8) {
+ $grp = $phase + 10;
+ $grp_no = 0;
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt=1 ORDER BY rand() LIMIT 1');
- //시드2 배정
- } elseif($phase < 16) {
- $grp = $phase - 8 + 10; $grp_no = 1;
+ //시드2 배정
+ } elseif ($phase < 16) {
+ $grp = $phase - 8 + 10;
+ $grp_no = 1;
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt=2 ORDER BY rand() LIMIT 1');
- } elseif($phase < 24) {
- $grp = $phase - 16 + 10; $grp_no = 2;
+ } elseif ($phase < 24) {
+ $grp = $phase - 16 + 10;
+ $grp_no = 2;
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE prmt>2 ORDER BY rand() LIMIT 1');
} 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');
}
//해당 시드에서 랜덤 선택
//본선에 추가
$db->insert('tournament', [
- 'no'=>$general['no'],
- 'npc'=>$general['npc'],
- 'name'=>$general['name'],
- 'leadership'=>$general['leadership'],
- 'strength'=>$general['strength'],
- 'intel'=>$general['intel'],
- 'lvl'=>$general['lvl'],
- 'grp'=>$grp,
- 'grp_no'=>$grp_no,
- 'h'=>$general['h'],
- 'w'=>$general['w'],
- 'b'=>$general['b']
+ 'no' => $general['no'],
+ 'npc' => $general['npc'],
+ 'name' => $general['name'],
+ 'leadership' => $general['leadership'],
+ 'strength' => $general['strength'],
+ 'intel' => $general['intel'],
+ 'lvl' => $general['lvl'],
+ 'grp' => $grp,
+ 'grp_no' => $grp_no,
+ 'h' => $general['h'],
+ 'w' => $general['w'],
+ 'b' => $general['b']
]);
//시드 삭제
$db->update('tournament', [
- 'prmt'=>0
+ 'prmt' => 0
], 'grp=%i AND grp_no=%i', $general['grp'], $general['grp_no']);
- if($phase < 31) {
- $gameStor->phase+=1;
+ if ($phase < 31) {
+ $gameStor->phase += 1;
} else {
$gameStor->tournament = 4;
- $gameStor->phase=0;
+ $gameStor->phase = 0;
}
}
-function selectionAll($tnmt_type, $tnmt, $phase) {
+function selectionAll($tnmt_type, $tnmt, $phase)
+{
$start = $phase;
$end = $phase - ($phase % 8) + 8;
- for($i=$start; $i < $end; $i++) {
+ for ($i = $start; $i < $end; $i++) {
selection($tnmt_type, $tnmt, $i);
}
}
-function finallySingle($tnmt_type, $tnmt, $phase) {
+function finallySingle($tnmt_type, $tnmt, $phase)
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$cand = getTwo($tnmt, $phase);
//각 그룹 페이즈 실행
- for($i=10; $i < 18; $i++) {
+ for ($i = 10; $i < 18; $i++) {
fight($tnmt_type, $tnmt, $phase, $i, $cand[0], $cand[1], 0);
}
- if($phase < 5) {
- $gameStor->phase+=1;
+ if ($phase < 5) {
+ $gameStor->phase += 1;
} else {
- $gameStor->tournament=5;
- $gameStor->phase=0;
+ $gameStor->tournament = 5;
+ $gameStor->phase = 0;
- foreach(Util::range(10, 18) as $grpIdx){
+ foreach (Util::range(10, 18) as $grpIdx) {
$promoters = $db->query(
'SELECT grp,grp_no,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp=%i order by gd desc, gl desc, seq limit 0,2',
$grpIdx
);
- foreach($promoters as $grpRank=>$grpGen){
+ foreach ($promoters as $grpRank => $grpGen) {
$db->update('tournament', [
- 'prmt'=>$grpRank+1,
+ 'prmt' => $grpRank + 1,
], 'grp=%i AND grp_no=%i', $grpIdx, $grpGen['grp_no']);
}
}
}
}
-function finallyAll($tnmt_type, $tnmt, $phase) {
+function finallyAll($tnmt_type, $tnmt, $phase)
+{
$start = $phase;
$end = $phase - ($phase % 2) + 2;
- for($i=$start; $i < $end; $i++) {
+ for ($i = $start; $i < $end; $i++) {
finallySingle($tnmt_type, $tnmt, $i);
}
}
-function final16set() {
+function final16set()
+{
$db = DB::db();
$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
- $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);
- for($i=0; $i < 16; $i++) {
+ $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);
+ for ($i = 0; $i < 16; $i++) {
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE grp=%i AND prmt=%i LIMIT 1', $grp[$i], $prmt[$i]);
//16강에 추가
$newGrp = 20 + intdiv($i, 2);
$newGrp_no = $i % 2;
$db->insert('tournament', [
- 'no'=>$general['no'],
- 'npc'=>$general['npc'],
- 'name'=>$general['name'],
- 'leadership'=>$general['leadership'],
- 'strength'=>$general['strength'],
- 'intel'=>$general['intel'],
- 'lvl'=>$general['lvl'],
- 'grp'=>$newGrp,
- 'grp_no'=>$newGrp_no,
- 'h'=>$general['h'],
- 'w'=>$general['w'],
- 'b'=>$general['b']
+ 'no' => $general['no'],
+ 'npc' => $general['npc'],
+ 'name' => $general['name'],
+ 'leadership' => $general['leadership'],
+ 'strength' => $general['strength'],
+ 'intel' => $general['intel'],
+ 'lvl' => $general['lvl'],
+ 'grp' => $newGrp,
+ 'grp_no' => $newGrp_no,
+ 'h' => $general['h'],
+ 'w' => $general['w'],
+ 'b' => $general['b']
]);
}
$db->update('tournament', [
- 'prmt'=>0
+ 'prmt' => 0
], true);
- $gameStor->tournament=6;
- $gameStor->phase=0;
+ $gameStor->tournament = 6;
+ $gameStor->phase = 0;
}
-function finalFight($tnmt_type, $tnmt, $phase, $type) {
+function finalFight($tnmt_type, $tnmt, $phase, $type)
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
- switch($type) {
- case 16: $offset = 20; $turn = 7; $next = 7; 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();
+ switch ($type) {
+ case 16:
+ $offset = 20;
+ $turn = 7;
+ $next = 7;
+ 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;
fight($tnmt_type, $tnmt, $phase, $grp, 0, 1, 1);
- $gameStor->phase+=1;
+ $gameStor->phase += 1;
$general = $db->queryFirstRow('SELECT * FROM tournament WHERE grp=%i AND win>0 AND (grp_no=0 OR grp_no=1) LIMIT 1', $grp);
//x강에 추가
$newGrp = intdiv($phase, 2) + $offset + 10;
$newGrp_no = $phase % 2;
$db->insert('tournament', [
- 'no'=>$general['no'],
- 'npc'=>$general['npc'],
- 'name'=>$general['name'],
- 'leadership'=>$general['leadership'],
- 'strength'=>$general['strength'],
- 'intel'=>$general['intel'],
- 'lvl'=>$general['lvl'],
- 'grp'=>$newGrp,
- 'grp_no'=>$newGrp_no,
- 'h'=>$general['h'],
- 'w'=>$general['w'],
- 'b'=>$general['b']
+ 'no' => $general['no'],
+ 'npc' => $general['npc'],
+ 'name' => $general['name'],
+ 'leadership' => $general['leadership'],
+ 'strength' => $general['strength'],
+ 'intel' => $general['intel'],
+ 'lvl' => $general['lvl'],
+ 'grp' => $newGrp,
+ 'grp_no' => $newGrp_no,
+ 'h' => $general['h'],
+ 'w' => $general['w'],
+ 'b' => $general['b']
]);
- if($phase >= $turn) {
+ if ($phase >= $turn) {
$gameStor->tournament = $next;
$gameStor->phase = 0;
}
}
-function setGift($tnmt_type, $tnmt, $phase) {
+function setGift($tnmt_type, $tnmt, $phase)
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
@@ -702,22 +969,35 @@ function setGift($tnmt_type, $tnmt, $phase) {
$resultHelper = [];
- switch($tnmt_type) {
- case 0: $tp = "전력전"; $tp2 = "tt"; break;
- case 1: $tp = "통솔전"; $tp2 = "tl"; break;
- case 2: $tp = "일기토"; $tp2 = "ts"; break;
- case 3: $tp = "설전"; $tp2 = "ti"; break;
- default: throw new MustNotBeReachedException();
+ switch ($tnmt_type) {
+ case 0:
+ $tp = "전력전";
+ $tp2 = "tt";
+ break;
+ case 1:
+ $tp = "통솔전";
+ $tp2 = "tl";
+ break;
+ case 2:
+ $tp = "일기토";
+ $tp2 = "ts";
+ break;
+ case 3:
+ $tp = "설전";
+ $tp2 = "ti";
+ break;
+ default:
+ throw new MustNotBeReachedException();
}
//16강자 명성 돈
$cost = $admin['develcost'];
//experience를 General로
- foreach($db->query('SELECT no, name, grp, grp_no FROM tournament WHERE grp>=20 AND grp<30 AND no > 0') as $general){
+ foreach ($db->query('SELECT no, name, grp, grp_no FROM tournament WHERE grp>=20 AND grp<30 AND no > 0') as $general) {
$generalID = $general['no'];
$db->update('general', [
- 'experience'=>$db->sqleval('experience + 25'),
- 'gold'=>$db->sqleval('gold + %i', $cost)
+ 'experience' => $db->sqleval('experience + 25'),
+ 'gold' => $db->sqleval('gold + %i', $cost)
], 'no=%i', $general['no']);
$db->update('rank_data', [
'value' => $db->sqleval('value + 1')
@@ -726,22 +1006,22 @@ function setGift($tnmt_type, $tnmt, $phase) {
$logger = new ActionLogger($generalID, 0, $admin['year'], $admin['month']);
$resultHelper[$generalID] = [
- 'id'=>$generalID,
- 'grp'=>$general['grp'],
- 'grp_no'=>$general['grp_no'],
- 'reward'=>$cost,
- 'msg'=>"16강 진출",
- 'logger'=>$logger,
- 'inheritance_point'=>10,
+ 'id' => $generalID,
+ 'grp' => $general['grp'],
+ 'grp_no' => $general['grp_no'],
+ 'reward' => $cost,
+ 'msg' => "16강 진출",
+ 'logger' => $logger,
+ 'inheritance_point' => 10,
];
}
//8강자 명성 돈
$cost = $admin['develcost'] * 2;
- foreach($db->query('SELECT no, name FROM tournament WHERE grp>=30 AND grp<40 AND no > 0') as $general){
+ foreach ($db->query('SELECT no, name FROM tournament WHERE grp>=30 AND grp<40 AND no > 0') as $general) {
$generalID = $general['no'];
$db->update('general', [
- 'experience'=>$db->sqleval('experience + 50'),
- 'gold'=>$db->sqleval('gold + %i', $cost)
+ 'experience' => $db->sqleval('experience + 50'),
+ 'gold' => $db->sqleval('gold + %i', $cost)
], 'no=%i', $general['no']);
$db->update('rank_data', [
'value' => $db->sqleval('value + 1')
@@ -753,11 +1033,11 @@ function setGift($tnmt_type, $tnmt, $phase) {
}
//4강자 명성 돈
$cost = $admin['develcost'] * 3;
- foreach($db->query('SELECT no, name FROM tournament WHERE grp>=40 AND grp<50 AND no > 0') as $general){
+ foreach ($db->query('SELECT no, name FROM tournament WHERE grp>=40 AND grp<50 AND no > 0') as $general) {
$generalID = $general['no'];
$db->update('general', [
- 'experience'=>$db->sqleval('experience + 50'),
- 'gold'=>$db->sqleval('gold + %i', $cost)
+ 'experience' => $db->sqleval('experience + 50'),
+ 'gold' => $db->sqleval('gold + %i', $cost)
], 'no=%i', $general['no']);
$db->update('rank_data', [
'value' => $db->sqleval('value + 2')
@@ -770,11 +1050,11 @@ function setGift($tnmt_type, $tnmt, $phase) {
}
//결승자 명성 돈
$cost = $admin['develcost'] * 6;
- foreach($db->query('SELECT no, name, lose FROM tournament WHERE grp>=50 AND grp<60 AND no > 0') as $general){
+ foreach ($db->query('SELECT no, name, lose FROM tournament WHERE grp>=50 AND grp<60 AND no > 0') as $general) {
$generalID = $general['no'];
$db->update('general', [
- 'experience'=>$db->sqleval('experience + 100'),
- 'gold'=>$db->sqleval('gold + %i', $cost)
+ 'experience' => $db->sqleval('experience + 100'),
+ 'gold' => $db->sqleval('gold + %i', $cost)
], 'no=%i', $general['no']);
$db->update('rank_data', [
'value' => $db->sqleval('value + 2')
@@ -784,17 +1064,17 @@ function setGift($tnmt_type, $tnmt, $phase) {
$resultHelper[$generalID]['reward'] += $cost;
$resultHelper[$generalID]['msg'] = "준우승으";
$resultHelper[$generalID]['inheritance_point'] = 50;
- if($general['lose'] > 0){
+ if ($general['lose'] > 0) {
$runnerUp = $general;
}
}
//우승자 명성 돈
$cost = $admin['develcost'] * 8;
- foreach($db->query('SELECT no, name FROM tournament WHERE grp>=60 AND no > 0') as $general){
+ foreach ($db->query('SELECT no, name FROM tournament WHERE grp>=60 AND no > 0') as $general) {
$generalID = $general['no'];
$db->update('general', [
- 'experience'=>$db->sqleval('experience + 200'),
- 'gold'=>$db->sqleval('gold + %i', $cost)
+ 'experience' => $db->sqleval('experience + 200'),
+ 'gold' => $db->sqleval('gold + %i', $cost)
], 'no=%i', $general['no']);
$db->update('rank_data', [
'value' => $db->sqleval('value + 2')
@@ -832,7 +1112,7 @@ function setGift($tnmt_type, $tnmt, $phase) {
$generalObjList = General::createGeneralObjListFromDB(array_keys($resultHelper));
- foreach($resultHelper as $generalID=>$general){
+ foreach ($resultHelper as $generalID => $general) {
$rewardText = number_format($general['reward']);
/** @var ActionLogger */
$logger = $general['logger'];
@@ -855,10 +1135,10 @@ function setGift($tnmt_type, $tnmt, $phase) {
$betKey = "bet{$winnerSlot}";
$gambleResult = Util::convertArrayToDict($db->query('SELECT general_id, %b as bet FROM betting WHERE %b > 0 AND general_id > 0', $betKey, $betKey), 'general_id');
- foreach(General::createGeneralObjListFromDB(Util::squeezeFromArray($gambleResult, 'general_id'), ['gold', 'npc'], 1) as $gambler){
+ foreach (General::createGeneralObjListFromDB(Util::squeezeFromArray($gambleResult, 'general_id'), ['gold', 'npc'], 1) as $gambler) {
$reward = Util::round($gambleResult[$gambler->getID()]['bet'] * $rewardRate);
$gambler->increaseVar('gold', $reward);
- if(($gambler->getNPCType() == 0) || ($gambler->getNPCType()==1 && $gambler->getRankVar('betgold') > 0)){
+ if (($gambler->getNPCType() == 0) || ($gambler->getNPCType() == 1 && $gambler->getRankVar('betgold') > 0)) {
$gambler->increaseRankVar('betwingold', $reward);
$gambler->increaseRankVar('betwin', 1);
}
@@ -868,7 +1148,8 @@ function setGift($tnmt_type, $tnmt, $phase) {
}
}
-function setRefund() {
+function setRefund()
+{
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
@@ -876,12 +1157,12 @@ function setRefund() {
$cost = $gameStor->develcost;
$generalIDList = $db->queryFirstColumn('SELECT no FROM tournament WHERE grp<10 AND no > 0');
$db->update('general', [
- 'gold'=>$db->sqleval('gold + %i', $cost)
+ 'gold' => $db->sqleval('gold + %i', $cost)
], 'no IN %li', $generalIDList);
//베팅금 환수
$db->update(['general', [
- 'gold'=>$db->sqleval('gold + (SELECT bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 FROM betting WHERE general_id = general.no)')
+ 'gold' => $db->sqleval('gold + (SELECT bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 FROM betting WHERE general_id = general.no)')
]], true);
//자동진행 끝
@@ -889,17 +1170,19 @@ function setRefund() {
}
//10차이 1.1, 50 차이 1.17, 100차이 1.2
-function getLog($lvl1, $lvl2) {
- if($lvl1 >= $lvl2) {
- $ratio = 1 + log(1+$lvl1-$lvl2, 10) / 10;
+function getLog($lvl1, $lvl2)
+{
+ if ($lvl1 >= $lvl2) {
+ $ratio = 1 + log(1 + $lvl1 - $lvl2, 10) / 10;
} else {
- $ratio = 1 - log(1+$lvl2-$lvl1, 10) / 10;
+ $ratio = 1 - log(1 + $lvl2 - $lvl1, 10) / 10;
}
return $ratio;
}
//0 : 승무패, 1 : 승패
-function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
+function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type)
+{
$log = [];
$db = DB::db();
@@ -908,157 +1191,428 @@ 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);
$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; }
- else { $turn = 100; }
+ if ($type == 0) {
+ $turn = 10;
+ } else {
+ $turn = 100;
+ }
- if($tnmt_type == 1) { $tp = "leadership"; $tp2 = "tl"; }
- elseif($tnmt_type == 2) { $tp = "strength"; $tp2 = "ts"; }
- elseif($tnmt_type == 3) { $tp = "intel"; $tp2 = "ti"; }
- else /*$tnmt_type == 0*/{ $tp = "total"; $tp2 = "tt"; }
+ if ($tnmt_type == 1) {
+ $tp = "leadership";
+ $tp2 = "tl";
+ } 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);
$e2 = $energy2 = Util::round($gen2[$tp] * getLog($gen1['lvl'], $gen2['lvl']) * 10);
- foreach([$gen1, $gen2] as $gen){
+ foreach ([$gen1, $gen2] as $gen) {
$horse = buildItemClass($gen['h']);
$weapon = buildItemClass($gen['w']);
$book = buildItemClass($gen['b']);
//아이템 로그
- if(!$horse->isBuyable() && ($tnmt_type == 0 || $tnmt_type == 1)) {
+ if (!$horse->isBuyable() && ($tnmt_type == 0 || $tnmt_type == 1)) {
$itemName = $horse->getName();
$itemRawName = $horse->getRawName();
- switch(rand()%4) {
- case 0:
- $josaYi = JosaUtil::pick($itemRawName, '이');
- $log[] = "●> {$gen['name']}>의 {$itemName}>{$josaYi} 포효합니다!"; break;
- case 1:
- $josaYi = JosaUtil::pick($itemRawName, '이');
- $log[] = "●> {$gen['name']}>의 {$itemName}>{$josaYi} 그 위용을 뽐냅니다!"; break;
- case 2:
- $josaYi = JosaUtil::pick($gen['name'], '이');
- $josaUl = JosaUtil::pick($itemRawName, '을');
- $log[] = "●> {$gen['name']}>{$josaYi} {$itemName}>{$josaUl} 타고 있습니다!"; break;
- case 3:
- $josaYi = JosaUtil::pick($itemRawName, '이');
- $log[] = "●> {$gen['name']}>의 {$itemName}>{$josaYi} 갈기를 휘날립니다!"; break;
+ switch (rand() % 4) {
+ case 0:
+ $josaYi = JosaUtil::pick($itemRawName, '이');
+ $log[] = "●> {$gen['name']}>의 {$itemName}>{$josaYi} 포효합니다!";
+ break;
+ case 1:
+ $josaYi = JosaUtil::pick($itemRawName, '이');
+ $log[] = "●> {$gen['name']}>의 {$itemName}>{$josaYi} 그 위용을 뽐냅니다!";
+ break;
+ case 2:
+ $josaYi = JosaUtil::pick($gen['name'], '이');
+ $josaUl = JosaUtil::pick($itemRawName, '을');
+ $log[] = "●> {$gen['name']}>{$josaYi} {$itemName}>{$josaUl} 타고 있습니다!";
+ break;
+ case 3:
+ $josaYi = JosaUtil::pick($itemRawName, '이');
+ $log[] = "●> {$gen['name']}>의 {$itemName}>{$josaYi} 갈기를 휘날립니다!";
+ break;
}
}
- if(!$weapon->isBuyable() && ($tnmt_type == 0 || $tnmt_type == 2)) {
+ if (!$weapon->isBuyable() && ($tnmt_type == 0 || $tnmt_type == 2)) {
$itemName = $weapon->getName();
$itemRawName = $weapon->getRawName();
- switch(rand()%4) {
- case 0:
- $josaYi = JosaUtil::pick($itemRawName, '이');
- $log[] = "●> {$gen['name']}>의 {$itemName}>{$josaYi} 번뜩입니다!"; break;
- case 1:
- $josaYi = JosaUtil::pick($itemRawName, '이');
- $log[] = "●> {$gen['name']}>의 {$itemName}>{$josaYi} 푸르게 빛납니다!"; break;
- case 2:
- $log[] = "●> {$gen['name']}>의 {$itemName}>에서 살기가 느껴집니다!"; break;
- case 3:
- $josaYi = JosaUtil::pick($itemRawName, '이');
- $log[] = "●> {$gen['name']}>의 손에는 {$itemName}>{$josaYi} 쥐어져 있습니다!"; break;
+ switch (rand() % 4) {
+ case 0:
+ $josaYi = JosaUtil::pick($itemRawName, '이');
+ $log[] = "●> {$gen['name']}>의 {$itemName}>{$josaYi} 번뜩입니다!";
+ break;
+ case 1:
+ $josaYi = JosaUtil::pick($itemRawName, '이');
+ $log[] = "●> {$gen['name']}>의 {$itemName}>{$josaYi} 푸르게 빛납니다!";
+ break;
+ case 2:
+ $log[] = "●> {$gen['name']}>의 {$itemName}>에서 살기가 느껴집니다!";
+ break;
+ case 3:
+ $josaYi = JosaUtil::pick($itemRawName, '이');
+ $log[] = "●> {$gen['name']}>의 손에는 {$itemName}>{$josaYi} 쥐어져 있습니다!";
+ break;
}
}
- if(!$book->isBuyable() && ($tnmt_type == 0 || $tnmt_type == 3)) {
+ if (!$book->isBuyable() && ($tnmt_type == 0 || $tnmt_type == 3)) {
$itemName = $book->getName();
$itemRawName = $book->getRawName();
- switch(rand()%4) {
- case 0:
- $josaYi = JosaUtil::pick($gen['name'], '이');
- $josaUl = JosaUtil::pick($itemRawName, '을');
- $log[] = "●> {$gen['name']}>{$josaYi} {$itemName}>{$josaUl} 펼쳐듭니다!"; break;
- case 1:
- $josaYi = JosaUtil::pick($gen['name'], '이');
- $josaUl = JosaUtil::pick($itemRawName, '을');
- $log[] = "●> {$gen['name']}>{$josaYi} {$itemName}>{$josaUl} 품에서 꺼냅니다!"; break;
- case 2:
- $josaYi = JosaUtil::pick($gen['name'], '이');
- $josaUl = JosaUtil::pick($itemRawName, '을');
- $log[] = "●> {$gen['name']}>{$josaYi} {$itemName}>{$josaUl} 들고 있습니다!"; break;
- case 3:
- $josaYi = JosaUtil::pick($itemRawName, '이');
- $log[] = "●> {$gen['name']}>의 손에는 {$itemName}>{$josaYi} 쥐어져 있습니다!"; break;
+ switch (rand() % 4) {
+ case 0:
+ $josaYi = JosaUtil::pick($gen['name'], '이');
+ $josaUl = JosaUtil::pick($itemRawName, '을');
+ $log[] = "●> {$gen['name']}>{$josaYi} {$itemName}>{$josaUl} 펼쳐듭니다!";
+ break;
+ case 1:
+ $josaYi = JosaUtil::pick($gen['name'], '이');
+ $josaUl = JosaUtil::pick($itemRawName, '을');
+ $log[] = "●> {$gen['name']}>{$josaYi} {$itemName}>{$josaUl} 품에서 꺼냅니다!";
+ break;
+ case 2:
+ $josaYi = JosaUtil::pick($gen['name'], '이');
+ $josaUl = JosaUtil::pick($itemRawName, '을');
+ $log[] = "●> {$gen['name']}>{$josaYi} {$itemName}>{$josaUl} 들고 있습니다!";
+ break;
+ case 3:
+ $josaYi = JosaUtil::pick($itemRawName, '이');
+ $log[] = "●> {$gen['name']}>의 손에는 {$itemName}>{$josaYi} 쥐어져 있습니다!";
+ break;
}
}
}
$log[] = "●> {$gen1['name']}> ({$energy1})> vs ({$energy2})> {$gen2['name']}>";
- $gd1 = 0; $gd2 = 0;
- $phase = 0; $sel = 2;
- while($phase < $turn) {
+ $gd1 = 0;
+ $gd2 = 0;
+ $phase = 0;
+ $sel = 2;
+ while ($phase < $turn) {
$phase++;
//평타
$damage1 = Util::round($gen2[$tp] * (rand() % 21 + 90) / 130); // 90~110%
$damage2 = Util::round($gen1[$tp] * (rand() % 21 + 90) / 130); // 90~110%
//보너스타
$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;
- if($gen2[$tp] >= $ratio) { $damage1 += Util::round($gen2[$tp] * (rand() % 41 + 10) / 130); } // 10~50
- $critical1 = 0; $critical2 = 0;
+ if ($gen2[$tp] >= $ratio) {
+ $damage1 += Util::round($gen2[$tp] * (rand() % 41 + 10) / 130);
+ } // 10~50
+ $critical1 = 0;
+ $critical2 = 0;
//막판 분노
$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%
$critical1 = 1;
- if ($tnmt_type == 0) { switch(rand()%2) { case 0: $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; } }
+ if ($tnmt_type == 0) {
+ switch (rand() % 2) {
+ case 0:
+ $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[] = "●> {$gen1['name']}>의 분노의 {$str}> 공격!";
}
$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%
$critical2 = 1;
- if($tnmt_type == 0) { switch(rand()%2) { case 0: $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; } }
+ if ($tnmt_type == 0) {
+ switch (rand() % 2) {
+ case 0:
+ $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[] = "●> {$gen2['name']}>의 분노의 {$str}> 공격!";
}
//1합 승부
- if($phase == 1) {
+ if ($phase == 1) {
$ratio = rand() % 400;
- if($gen1[$tp]*0.9 > $gen2[$tp] && $gen1[$tp] >= $ratio) {
- $damage1 = 0; $damage2 = $e2;
- if ($tnmt_type == 0) { $log[] = "●> {$gen1['name']}>의 압도>!"; }
- elseif($tnmt_type == 1) { $log[] = "●> {$gen1['name']}>의 팔문금쇄진>!"; }
- elseif($tnmt_type == 2) { $log[] = "●> {$gen1['name']}>의 일격 필살>!"; }
- elseif($tnmt_type == 3) { $log[] = "●> {$gen1['name']}>의 모독 욕설>!"; }
+ if ($gen1[$tp] * 0.9 > $gen2[$tp] && $gen1[$tp] >= $ratio) {
+ $damage1 = 0;
+ $damage2 = $e2;
+ if ($tnmt_type == 0) {
+ $log[] = "●> {$gen1['name']}>의 압도>!";
+ } elseif ($tnmt_type == 1) {
+ $log[] = "●> {$gen1['name']}>의 팔문금쇄진>!";
+ } elseif ($tnmt_type == 2) {
+ $log[] = "●> {$gen1['name']}>의 일격 필살>!";
+ } elseif ($tnmt_type == 3) {
+ $log[] = "●> {$gen1['name']}>의 모독 욕설>!";
+ }
}
- if($gen2[$tp]*0.9 > $gen1[$tp] && $gen2[$tp] >= $ratio) {
- $damage2 = 0; $damage1 = $e1;
- if ($tnmt_type == 0) { $log[] = "●> {$gen2['name']}>의 압도>!"; }
- elseif($tnmt_type == 1) { $log[] = "●> {$gen2['name']}>의 팔문금쇄진>!"; }
- elseif($tnmt_type == 2) { $log[] = "●> {$gen2['name']}>의 일격 필살>!"; }
- elseif($tnmt_type == 3) { $log[] = "●> {$gen2['name']}>의 모독 욕설>!"; }
+ if ($gen2[$tp] * 0.9 > $gen1[$tp] && $gen2[$tp] >= $ratio) {
+ $damage2 = 0;
+ $damage1 = $e1;
+ if ($tnmt_type == 0) {
+ $log[] = "●> {$gen2['name']}>의 압도>!";
+ } elseif ($tnmt_type == 1) {
+ $log[] = "●> {$gen2['name']}>의 팔문금쇄진>!";
+ } elseif ($tnmt_type == 2) {
+ $log[] = "●> {$gen2['name']}>의 일격 필살>!";
+ } elseif ($tnmt_type == 3) {
+ $log[] = "●> {$gen2['name']}>의 모독 욕설>!";
+ }
}
} else {
$ratio = rand() % 1000;
- if($critical1 == 0 && $gen1[$tp] >= $ratio) {
+ if ($critical1 == 0 && $gen1[$tp] >= $ratio) {
$damage2 *= Util::randRangeInt(150, 300) / 100; // 150 ~ 300%
$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; } }
- 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; } }
+ 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;
+ }
+ } 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[] = "●> {$gen1['name']}>의 {$str}>!";
}
$ratio = rand() % 1000;
- if($critical2 == 0 && $gen2[$tp] >= $ratio) {
+ if ($critical2 == 0 && $gen2[$tp] >= $ratio) {
$damage1 *= Util::randRangeInt(150, 300) / 100; // 150 ~ 300%
$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; } }
- 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; } }
+ 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;
+ }
+ } 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[] = "●> {$gen2['name']}>의 {$str}>!";
}
}
@@ -1068,135 +1622,179 @@ function fight($tnmt_type, $tnmt, $phs, $group, $g1, $g2, $type) {
$energy1 -= $damage1;
$energy2 -= $damage2;
- $tDamage1 = $damage1; $tDamage2 = $damage2;
- $tEnergy1 = $energy1; $tEnergy2 = $energy2;
- if($energy1 <= 0 && $energy2 <= 0) {
+ $tDamage1 = $damage1;
+ $tDamage2 = $damage2;
+ $tEnergy1 = $energy1;
+ $tEnergy2 = $energy2;
+ if ($energy1 <= 0 && $energy2 <= 0) {
$r1 = $tEnergy1 / Util::valueFit($tDamage1, 1);
$r2 = $tEnergy2 / Util::valueFit($tDamage2, 1);
- if($r1 > $r2) {
- $offset = Util::round($tEnergy2*$tDamage1/Util::valueFit($tDamage2,1));
- $damage1 += $offset; $energy1 -= $offset;
- $damage2 += $tEnergy2; $energy2 = 0;
+ if ($r1 > $r2) {
+ $offset = Util::round($tEnergy2 * $tDamage1 / Util::valueFit($tDamage2, 1));
+ $damage1 += $offset;
+ $energy1 -= $offset;
+ $damage2 += $tEnergy2;
+ $energy2 = 0;
} else {
- $offset = Util::round($tEnergy1*$tDamage2/Util::valueFit($tDamage1,1));
- $damage2 += $offset; $energy2 -= $offset;
- $damage1 += $tEnergy1; $energy1 = 0;
+ $offset = Util::round($tEnergy1 * $tDamage2 / Util::valueFit($tDamage1, 1));
+ $damage2 += $offset;
+ $energy2 -= $offset;
+ $damage1 += $tEnergy1;
+ $energy1 = 0;
}
- } elseif($energy1 * $energy2 <= 0) {
- if($energy2 < 0) {
- $offset = Util::round($tEnergy2*$tDamage1/Util::valueFit($tDamage2,1));
- $damage1 += $offset; $energy1 -= $offset;
- $damage2 += $tEnergy2; $energy2 = 0;
+ } elseif ($energy1 * $energy2 <= 0) {
+ if ($energy2 < 0) {
+ $offset = Util::round($tEnergy2 * $tDamage1 / Util::valueFit($tDamage2, 1));
+ $damage1 += $offset;
+ $energy1 -= $offset;
+ $damage2 += $tEnergy2;
+ $energy2 = 0;
}
- if($energy1 < 0) {
- $offset = Util::round($tEnergy1*$tDamage2/Util::valueFit($tDamage1,1));
- $damage2 += $offset; $energy2 -= $offset;
- $damage1 += $tEnergy1; $energy1 = 0;
+ if ($energy1 < 0) {
+ $offset = Util::round($tEnergy1 * $tDamage2 / Util::valueFit($tDamage1, 1));
+ $damage2 += $offset;
+ $energy2 -= $offset;
+ $damage1 += $tEnergy1;
+ $energy1 = 0;
}
}
- $gd1 += $damage1; $gd2 += $damage2;
- $energy1 = Util::round($energy1); $energy2 = Util::round($energy2);
- $damage1 = Util::round($damage1); $damage2 = Util::round($damage2);
+ $gd1 += $damage1;
+ $gd2 += $damage2;
+ $energy1 = Util::round($energy1);
+ $energy2 = Util::round($energy2);
+ $damage1 = Util::round($damage1);
+ $damage2 = Util::round($damage2);
$log[] = '●> '
- .StringUtil::padStringAlignRight((string)$phase, 2, "0").'合 : '
- .''.StringUtil::padStringAlignRight((string)$energy1, 3, "0").'>'
- .'(-'.StringUtil::padStringAlignRight((string)$damage1, 3, "0").')'
- .' vs '
- .'(-'.StringUtil::padStringAlignRight((string)$damage2, 3, "0").')'
- .''.StringUtil::padStringAlignRight((string)$energy2, 3, "0").'>';
+ . StringUtil::padStringAlignRight((string)$phase, 2, "0") . '合 : '
+ . '' . StringUtil::padStringAlignRight((string)$energy1, 3, "0") . '>'
+ . '(-' . StringUtil::padStringAlignRight((string)$damage1, 3, "0") . ')'
+ . ' vs '
+ . '(-' . StringUtil::padStringAlignRight((string)$damage2, 3, "0") . ')'
+ . '' . StringUtil::padStringAlignRight((string)$energy2, 3, "0") . '>';
- if($energy1 <= 0 && $energy2 <= 0) {
- if($type == 0) { $sel = 2; break; }
- else {
- $energy1 = Util::round($e1 / 2); $energy2 = Util::round($e2 / 2);
+ if ($energy1 <= 0 && $energy2 <= 0) {
+ if ($type == 0) {
+ $sel = 2;
+ break;
+ } else {
+ $energy1 = Util::round($e1 / 2);
+ $energy2 = Util::round($e2 / 2);
$log[] = "●> 재대결!";
}
}
- if($energy1 <= 0) { $sel = 1; break; }
- if($energy2 <= 0) { $sel = 0; break; }
+ if ($energy1 <= 0) {
+ $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');
- $general2 = $db->queryFirstRow('SELECT value as gl FROM rank_data WHERE general_id = %i AND type = %s', $gen2['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;
+ $gen2gl = $db->queryFirstField('SELECT value as gl FROM rank_data WHERE general_id = %i AND type = %s', $gen2['no'], $tp2 . 'g') ?? 0;
- switch($sel) {
- case 0:
- $log[] = "●> {$gen1['name']}> 승리>!";
+ switch ($sel) {
+ case 0:
+ $log[] = "●> {$gen1['name']}> 승리>!";
- $gl = Util::round(($gd2 - $gd1) / 50);
- $db->update('tournament', [
- 'win'=>$db->sqleval('win+1'),
- 'gl'=>$db->sqleval('gl+%i', $gl)
- ], 'grp=%i AND grp_no=%i', $group, $g1);
- $db->update('tournament', [
- 'lose'=>$db->sqleval('lose+1'),
- 'gl'=>$db->sqleval('gl-%i', $gl)
- ], 'grp=%i AND grp_no=%i', $group, $g2);
+ $gl = Util::round(($gd2 - $gd1) / 50);
+ $db->update('tournament', [
+ 'win' => $db->sqleval('win+1'),
+ 'gl' => $db->sqleval('gl+%i', $gl)
+ ], 'grp=%i AND grp_no=%i', $group, $g1);
+ $db->update('tournament', [
+ 'lose' => $db->sqleval('lose+1'),
+ 'gl' => $db->sqleval('gl-%i', $gl)
+ ], 'grp=%i AND grp_no=%i', $group, $g2);
- if($general1['gl'] > $general2['gl']) { $gl1 = 1; $gl2 = 0; }
- elseif($general1['gl'] == $general2['gl']) { $gl1 = 2; $gl2 = -1; }
- else { $gl1 = 3; $gl2 = -2; }
+ if ($gen1gl > $gen2gl) {
+ $gl1 = 1;
+ $gl2 = 0;
+ } elseif ($gen1gl == $gen2gl) {
+ $gl1 = 2;
+ $gl2 = -1;
+ } else {
+ $gl1 = 3;
+ $gl2 = -2;
+ }
- $gen1resKey = 'w';
- $gen2resKey = 'l';
- break;
- case 1:
- $log[] = "●> {$gen2['name']}> 승리>!";
+ $gen1resKey = 'w';
+ $gen2resKey = 'l';
+ break;
+ case 1:
+ $log[] = "●> {$gen2['name']}> 승리>!";
- $gl = Util::round(($gd1 - $gd2) / 50);
- $db->update('tournament', [
- 'lose'=>$db->sqleval('lose+1'),
- 'gl'=>$db->sqleval('gl-%i', $gl)
- ], 'grp=%i AND grp_no=%i', $group, $g1);
- $db->update('tournament', [
- 'win'=>$db->sqleval('win+1'),
- 'gl'=>$db->sqleval('gl+%i', $gl)
- ], 'grp=%i AND grp_no=%i', $group, $g2);
+ $gl = Util::round(($gd1 - $gd2) / 50);
+ $db->update('tournament', [
+ 'lose' => $db->sqleval('lose+1'),
+ 'gl' => $db->sqleval('gl-%i', $gl)
+ ], 'grp=%i AND grp_no=%i', $group, $g1);
+ $db->update('tournament', [
+ 'win' => $db->sqleval('win+1'),
+ 'gl' => $db->sqleval('gl+%i', $gl)
+ ], 'grp=%i AND grp_no=%i', $group, $g2);
- if($general2['gl'] > $general1['gl']) { $gl2 = 1; $gl1 = 0; }
- elseif($general2['gl'] == $general1['gl']) { $gl2 = 2; $gl1 = -1; }
- else { $gl2 = 3; $gl1 = -2; }
+ if ($gen2gl > $gen1gl) {
+ $gl2 = 1;
+ $gl1 = 0;
+ } elseif ($gen2gl == $gen1gl) {
+ $gl2 = 2;
+ $gl1 = -1;
+ } else {
+ $gl2 = 3;
+ $gl1 = -2;
+ }
- $gen1resKey = 'l';
- $gen2resKey = 'w';
- break;
- case 2:
- $log[] = "●> 무승부!";
+ $gen1resKey = 'l';
+ $gen2resKey = 'w';
+ break;
+ case 2:
+ $log[] = "●> 무승부!";
- $db->update('tournament', [
- 'draw'=>$db->sqleval('draw+1')
- ], 'grp=%i AND (grp_no=%i OR grp_no=%i)', $group, $g1, $g2);
+ $db->update('tournament', [
+ 'draw' => $db->sqleval('draw+1')
+ ], 'grp=%i AND (grp_no=%i OR grp_no=%i)', $group, $g1, $g2);
- if($general1['gl'] > $general2['gl']) { $gl2 = -1; $gl1 = 1; }
- elseif($general1['gl'] == $general2['gl']) { $gl2 = 0; $gl1 = 0; }
- else { $gl2 = +1; $gl1 = -1; }
+ if ($gen1gl > $gen2gl) {
+ $gl2 = -1;
+ $gl1 = 1;
+ } elseif ($gen1gl == $gen2gl) {
+ $gl2 = 0;
+ $gl1 = 0;
+ } else {
+ $gl2 = +1;
+ $gl1 = -1;
+ }
- $gen1resKey = 'd';
- $gen2resKey = 'd';
- break;
- default: throw new MustNotBeReachedException();
+ $gen1resKey = 'd';
+ $gen2resKey = 'd';
+ break;
+ default:
+ throw new MustNotBeReachedException();
}
$db->update('rank_data', [
'value' => $db->sqleval('value + 1')
- ], 'general_id=%i AND type = %s',$gen1['no'], "{$tp2}{$gen1resKey}");
+ ], 'general_id=%i AND type = %s', $gen1['no'], "{$tp2}{$gen1resKey}");
$db->update('rank_data', [
'value' => $db->sqleval('value + %i', $gl1),
- ], 'general_id=%i AND type = %s',$gen1['no'], "{$tp2}g");
+ ], 'general_id=%i AND type = %s', $gen1['no'], "{$tp2}g");
$db->update('rank_data', [
'value' => $db->sqleval('value + 1'),
- ], 'general_id=%i AND type = %s',$gen2['no'], "{$tp2}{$gen2resKey}");
+ ], 'general_id=%i AND type = %s', $gen2['no'], "{$tp2}{$gen2resKey}");
$db->update('rank_data', [
'value' => $db->sqleval('value + %i', $gl2)
- ], 'general_id=%i AND type = %s',$gen2['no'], "{$tp2}g");
+ ], 'general_id=%i AND type = %s', $gen2['no'], "{$tp2}g");
- if(($tnmt == 2 && $phs < 55) || ($tnmt == 4 && $phs < 5)) {
- $cand = getTwo($tnmt, $phs+1);
+ if (($tnmt == 2 && $phs < 55) || ($tnmt == 4 && $phs < 5)) {
+ $cand = getTwo($tnmt, $phs + 1);
$gen1Name = $db->queryFirstField('SELECT name FROM tournament where grp=%i and grp_no=%i', $group, $cand[0]);
$gen2Name = $db->queryFirstField('SELECT name FROM tournament where grp=%i and grp_no=%i', $group, $cand[1]);