Ejemplo n.º 1
0
 function setRules()
 {
     $rules = $this->request->getPostStrict('rules');
     $scriptRules = $this->request->getPost('scriptRules', array());
     list(, , $system) = $this->fetchAndAssertConfig(_('setting game options'));
     $gameInfos = GameInfos::fromArray($rules);
     $gameInfos->chatTime *= isset($rules['chatTime']) ? 1000 : 1;
     $gameInfos->finishTimeout = $gameInfos->finishTimeout < 0 ? 1 : (isset($rules['finishTimeout']) ? $gameInfos->finishTimeout * 1000 : $gameInfos->finishTimeout);
     $gameInfos->timeAttackLimit = $gameInfos->timeAttackLimit < 0 ? 1 : (isset($rules['timeAttackLimit']) ? $gameInfos->timeAttackLimit * 1000 : $gameInfos->timeAttackLimit);
     $gameInfos->timeAttackSynchStartPeriod *= isset($rules['timeAttackSynchStartPeriod']) ? 1000 : 1;
     $gameInfos->lapsTimeLimit = $gameInfos->lapsTimeLimit < 0 ? 1 : (isset($rules['lapsTimeLimit']) ? $gameInfos->lapsTimeLimit * 1000 : $gameInfos->lapsTimeLimit);
     $defaultRules = array();
     if ($gameInfos->gameMode == GameInfos::GAMEMODE_SCRIPT && $gameInfos->scriptName) {
         $service = new \DedicatedManager\Services\ScriptService();
         $defaultRules = $service->getFileMatchRules($system->title, $gameInfos->scriptName);
         if (isset($scriptRules[$gameInfos->scriptName])) {
             foreach ($scriptRules[$gameInfos->scriptName] as $name => $value) {
                 $defaultRules[$name]->default = $value;
             }
         }
     }
     $this->session->set('gameInfos', $gameInfos);
     $this->session->set('scriptSettings', $defaultRules);
     $service = new \DedicatedManager\Services\MatchSettingsFileService();
     if ($errors = $service->validate($gameInfos)) {
         $this->session->set('error', $errors);
         $this->request->redirectArgList('../rules');
     }
     $this->request->redirectArgList('../maps');
 }