Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Failed Conditions
Pull Request — main (#1494)
by Dan
10:59 queued 05:29
created

Summary   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 90
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 67
dl 0
loc 90
rs 10
c 1
b 0
f 0
wmc 11

1 Method

Rating   Name   Duplication   Size   Complexity  
D buildHistory() 0 86 11
1
<?php declare(strict_types=1);
2
3
namespace Smr\Pages\Account\HistoryGames;
4
5
use Smr\Database;
6
use Smr\Template;
7
use SmrAccount;
8
9
class Summary extends HistoryPage {
10
11
	public string $file = 'history_games.php';
12
13
	protected function buildHistory(SmrAccount $account, Template $template): void {
14
		//topic
15
		$game_name = $this->historyGameName;
16
		$game_id = $this->historyGameID;
17
		$template->assign('PageTopic', 'Old SMR Game : ' . $game_name);
18
		$this->addMenu($template);
19
20
		$db = Database::getInstance();
21
		$dbResult = $db->read('SELECT start_date, type, end_date, game_name, speed, game_id ' .
22
			'FROM game WHERE game_id = ' . $db->escapeNumber($game_id));
23
		$dbRecord = $dbResult->record();
24
		$template->assign('GameName', $game_name);
25
		$template->assign('Start', date($account->getDateFormat(), $dbRecord->getInt('start_date')));
26
		$template->assign('End', date($account->getDateFormat(), $dbRecord->getInt('end_date')));
27
		$template->assign('Type', $dbRecord->getString('type'));
28
		$template->assign('Speed', $dbRecord->getFloat('speed'));
29
30
		$dbResult = $db->read('SELECT count(*), max(experience), max(alignment), min(alignment), max(kills) FROM player WHERE game_id = ' . $db->escapeNumber($game_id));
31
		if ($dbResult->hasRecord()) {
32
			$dbRecord = $dbResult->record();
33
			$template->assign('NumPlayers', $dbRecord->getInt('count(*)'));
34
			$template->assign('MaxExp', $dbRecord->getInt('max(experience)'));
35
			$template->assign('MaxAlign', $dbRecord->getInt('max(alignment)'));
36
			$template->assign('MinAlign', $dbRecord->getInt('min(alignment)'));
37
			$template->assign('MaxKills', $dbRecord->getInt('max(kills)'));
38
		}
39
		$dbResult = $db->read('SELECT count(*) FROM alliance WHERE game_id = ' . $db->escapeNumber($game_id));
40
		$template->assign('NumAlliances', $dbResult->record()->getInt('count(*)'));
41
42
		// Get linked player information, if available
43
		$oldAccountID = $account->getOldAccountID($this->historyDatabase);
44
		$dbResult = $db->read('SELECT alliance_id FROM player WHERE game_id = ' . $db->escapeNumber($game_id) . ' AND account_id = ' . $db->escapeNumber($oldAccountID));
45
		$oldAllianceID = $dbResult->hasRecord() ? $dbResult->record()->getInt('alliance_id') : 0;
46
47
		$playerExp = [];
48
		$dbResult = $db->read('SELECT * FROM player WHERE game_id = ' . $db->escapeNumber($game_id) . ' ORDER BY experience DESC LIMIT 10');
49
		foreach ($dbResult->records() as $dbRecord) {
50
			$playerExp[] = [
51
				'bold' => $dbRecord->getInt('account_id') == $oldAccountID ? 'class="bold"' : '',
52
				'exp' => $dbRecord->getInt('experience'),
53
				'name' => $dbRecord->getString('player_name'),
54
			];
55
		}
56
		$template->assign('PlayerExp', $playerExp);
57
58
		$playerKills = [];
59
		$dbResult = $db->read('SELECT * FROM player WHERE game_id = ' . $db->escapeNumber($game_id) . ' ORDER BY kills DESC LIMIT 10');
60
		foreach ($dbResult->records() as $dbRecord) {
61
			$playerKills[] = [
62
				'bold' => $dbRecord->getInt('account_id') == $oldAccountID ? 'class="bold"' : '',
63
				'kills' => $dbRecord->getInt('kills'),
64
				'name' => $dbRecord->getString('player_name'),
65
			];
66
		}
67
		$template->assign('PlayerKills', $playerKills);
68
69
		//now for the alliance stuff
70
		$allianceExp = [];
71
		$dbResult = $db->read('SELECT SUM(experience) as exp, alliance_name, alliance_id
72
					FROM player JOIN alliance USING (game_id, alliance_id)
73
					WHERE game_id = ' . $db->escapeNumber($game_id) . ' GROUP BY alliance_id ORDER BY exp DESC LIMIT 10');
74
		foreach ($dbResult->records() as $dbRecord) {
75
			$alliance = htmlentities($dbRecord->getString('alliance_name'));
76
			$id = $dbRecord->getInt('alliance_id');
77
			$container = new AllianceDetail($this->historyDatabase, $this->historyGameID, $this->historyGameName, $id, $this);
78
			$allianceExp[] = [
79
				'bold' => $dbRecord->getInt('alliance_id') == $oldAllianceID ? 'class="bold"' : '',
80
				'exp' => $dbRecord->getInt('exp'),
81
				'link' => create_link($container, $alliance),
82
			];
83
		}
84
		$template->assign('AllianceExp', $allianceExp);
85
86
		$allianceKills = [];
87
		$dbResult = $db->read('SELECT kills, alliance_name, alliance_id FROM alliance WHERE game_id = ' . $db->escapeNumber($game_id) . ' ORDER BY kills DESC LIMIT 10');
88
		foreach ($dbResult->records() as $dbRecord) {
89
			$alliance = htmlentities($dbRecord->getString('alliance_name'));
90
			$id = $dbRecord->getInt('alliance_id');
91
			$container = new AllianceDetail($this->historyDatabase, $this->historyGameID, $this->historyGameName, $id, $this);
92
			$allianceKills[] = [
93
				'bold' => $dbRecord->getInt('alliance_id') == $oldAllianceID ? 'class="bold"' : '',
94
				'kills' => $dbRecord->getInt('kills'),
95
				'link' => create_link($container, $alliance),
96
			];
97
		}
98
		$template->assign('AllianceKills', $allianceKills);
99
	}
100
101
}
102