We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.
1 | <?php declare(strict_types=1); |
||
2 | |||
3 | namespace Smr\Pages\Admin\UniGen; |
||
4 | |||
5 | use DateTime; |
||
6 | use Smr\Database; |
||
7 | use Smr\Page\AccountPageProcessor; |
||
8 | use Smr\Request; |
||
9 | use SmrAccount; |
||
10 | use SmrGame; |
||
11 | |||
12 | class CreateGameProcessor extends AccountPageProcessor { |
||
13 | |||
14 | public function build(SmrAccount $account): never { |
||
15 | $db = Database::getInstance(); |
||
16 | |||
17 | //first create the game |
||
18 | $dbResult = $db->read('SELECT 1 FROM game WHERE game_name=' . $db->escapeString(Request::get('game_name'))); |
||
19 | if ($dbResult->hasRecord()) { |
||
20 | create_error('That game name is already taken.'); |
||
21 | } |
||
22 | |||
23 | $dbResult = $db->read('SELECT IFNULL(MAX(game_id), 0) AS max_game_id FROM game'); |
||
24 | $newID = $dbResult->record()->getInt('max_game_id') + 1; |
||
25 | |||
26 | // Get the dates ("|" sets hr/min/sec to 0) |
||
27 | $join = DateTime::createFromFormat('d/m/Y|', Request::get('game_join')); |
||
28 | if ($join === false) { |
||
29 | create_error('Join Date is not valid!'); |
||
30 | } |
||
31 | $start = empty(Request::get('game_start')) ? $join : |
||
32 | DateTime::createFromFormat('d/m/Y|', Request::get('game_start')); |
||
33 | if ($start === false) { |
||
0 ignored issues
–
show
introduced
by
Loading history...
|
|||
34 | create_error('Start Date is not valid!'); |
||
35 | } |
||
36 | $end = DateTime::createFromFormat('d/m/Y|', Request::get('game_end')); |
||
37 | if ($end === false) { |
||
38 | create_error('End Date is not valid!'); |
||
39 | } |
||
40 | |||
41 | $game = SmrGame::createGame($newID); |
||
42 | $game->setName(Request::get('game_name')); |
||
43 | $game->setDescription(Request::get('desc')); |
||
44 | $game->setGameTypeID(Request::getInt('game_type')); |
||
45 | $game->setMaxTurns(Request::getInt('max_turns')); |
||
46 | $game->setStartTurnHours(Request::getInt('start_turns')); |
||
47 | $game->setMaxPlayers(Request::getInt('max_players')); |
||
48 | $game->setAllianceMaxPlayers(Request::getInt('alliance_max_players')); |
||
49 | $game->setAllianceMaxVets(Request::getInt('alliance_max_vets')); |
||
50 | $game->setJoinTime($join->getTimestamp()); |
||
51 | $game->setStartTime($start->getTimestamp()); |
||
52 | $game->setEndTime($end->getTimestamp()); |
||
53 | $game->setGameSpeed(Request::getFloat('game_speed')); |
||
54 | $game->setIgnoreStats(Request::get('ignore_stats') == 'Yes'); |
||
55 | $game->setStartingCredits(Request::getInt('starting_credits')); |
||
56 | $game->setCreditsNeeded(Request::getInt('creds_needed')); |
||
57 | $game->setStartingRelations(Request::getInt('relations')); |
||
58 | |||
59 | // Start game disabled by default |
||
60 | $game->setEnabled(false); |
||
61 | $game->save(); |
||
62 | |||
63 | $container = new CreateGalaxies($game->getGameID()); |
||
64 | $container->go(); |
||
65 | } |
||
66 | |||
67 | } |
||
68 |