コード例 #1
0
 /**
  * Action to request the Dim Mak form AND execute the purchase
  *
  * @todo split form request (GET) and purchase (POST) into separate funcs
  * @return ViewSpec
  */
 public function buyDimMak()
 {
     if (is_logged_in()) {
         $player = new Player(self_char_id());
         $showMonks = false;
         $parts = [];
         RequestWrapper::init();
         if (RequestWrapper::$request && RequestWrapper::$request->isMethod('POST')) {
             $error = $this->dimMakReqs($player, self::DIM_MAK_COST);
             if (!$error) {
                 $player->changeTurns(-1 * self::DIM_MAK_COST);
                 add_item($player->id(), 'dimmak', 1);
                 $parts['pageParts'] = ['success-dim-mak'];
                 $showMonks = true;
             } else {
                 $parts['error'] = $error;
             }
         } else {
             $parts['pageParts'] = ['form-dim-mak'];
             $parts['dim_mak_cost'] = self::DIM_MAK_COST;
         }
         return $this->render($parts, $player, $showMonks);
     } else {
         return $this->accessDenied();
     }
 }
コード例 #2
0
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use NinjaWars\core\RouteNotFoundException;
use NinjaWars\core\Router;
use NinjaWars\core\environment\RequestWrapper;
use NinjaWars\core\data\GameLog;
use NinjaWars\core\data\Player;
use NinjaWars\core\extensions\SessionFactory;
// setup our runtime environment
require_once LIB_ROOT . 'environment/bootstrap.php';
try {
    $container = new Container();
    $container['current_player'] = function ($c) {
        return Player::find(SessionFactory::getSession()->get('player_id'));
    };
    $container['session'] = function ($c) {
        return SessionFactory::getSession();
    };
    // Update the activity of the page viewer in the database.
    RequestWrapper::init();
    GameLog::updateActivityInfo(RequestWrapper::$request, SessionFactory::getSession());
    // get the request information to parse the route
    $response = Router::route(Request::createFromGlobals(), $container);
    if ($response instanceof Response) {
        $response->send();
    } else {
        throw new \RuntimeException('Route returned something other than a Response');
    }
} catch (RouteNotFoundException $e) {
    Router::respond404();
}