Esempio n. 1
0
 public function collect($params)
 {
     $userId = self::getUserIdByToken($params['token']);
     if (!$userId) {
         return Utils::formatErrorMessage(ERROR_BAD_TOKEN, "Bad Token");
     }
     $sql = "SELECT id\n\t\t\t\tFROM users\n\t\t\t\tWHERE username = '******'author_name'] . "'";
     $result = $GLOBALS['app']['db']->fetchAll($sql);
     echo $result;
     if (count($result) == 0) {
         return Utils::formatErrorMessage(ERROR_BAD_USERNAME, "Bad username");
     }
     $author_id = $result[0]['id'];
     $gifts = file_get_contents(__DIR__ . "./../../../assets/json/giftsSettings.json", FILE_USE_INCLUDE_PATH);
     $gifts = json_decode($gifts, true);
     $sql = "UPDATE gift_users\n\t\t\t\tSET is_collected = true\n\t\t\t\tWHERE user_id = " . $userId . "\n                    AND author_users_id = " . $author_id . "\n\t\t\t\t\tAND name = '" . $params['name'] . "'\n\t\t\t\t\tAND is_collected = false\n\t\t\t\t\tLIMIT 1";
     $result = $GLOBALS['app']['db']->exec($sql);
     if ($result == 0) {
         return Utils::formatErrorMessage(ERROR_NO_GIFT, "No gifts");
     }
     if (!array_key_exists($params['name'], $gifts)) {
         return Utils::formatErrorMessage(ERROR_BAD_GIFTS, "Bad gift name");
     }
     $gifts = $gifts[$params['name']];
     $resourceId = ResourcesController::getResourceIdByName($gifts['resource_name']);
     ResourcesController::addResource($resourceId, $gifts['resource_amount'], $userId);
     return ResourcesController::getResource($userId);
 }
 public function create($params)
 {
     $userId = self::getUserIdByToken($params['token']);
     $x = $params['x'];
     $y = $params['y'];
     if (!$userId) {
         return Utils::formatErrorMessage(ERROR_BAD_TOKEN, "Bad token");
     }
     if (!self::isValidLanternPosition($x, $y)) {
         return Utils::formatErrorMessage(ERROR_BAD_LANTERN_POSITION, "Bad lantern position");
     }
     $sql = "SELECT id FROM lantern_users WHERE x = '" . $x . "' AND y ='" . $y . "' AND user_id ='" . $userId . "'";
     $result = $GLOBALS['app']['db']->fetchAll($sql);
     if ($result) {
         return Utils::formatErrorMessage(ERROR_LANTERN_ALREADY_EXISTS, "The lantern you try to create already exists");
     }
     $settings = file_get_contents(__DIR__ . "./../../../assets/json/buildingsSettings.json", FILE_USE_INCLUDE_PATH);
     $settings = json_decode($settings, true);
     $lanternsSettings = $settings['lanterns'];
     $resourceId = ResourcesController::getResourceIdByName($params['hard'] === 'true' ? 'spice' : $lanternsSettings['resource_price']);
     $count = $params['hard'] === 'true' ? $lanternsSettings['hard_price'] : $lanternsSettings['price'];
     $number = count(self::getLanterns($userId));
     $count *= 1 + $number;
     if (!ResourcesController::spendResource($resourceId, $count, $userId)) {
         return Utils::formatErrorMessage(ERROR_NO_MONEY, "Pas assez de resources pour cette item");
     }
     $date = date("Y-m-d H:i:s");
     $request = $GLOBALS['app']['db']->prepare('INSERT INTO lantern_users VALUES (NULL, ?, ?, ?, ?, ?)');
     $request->execute(array($userId, $date, $date, $x, $y));
     return ResourcesController::getResource($userId);
 }
 public static function buyBuilding($buildingName, $userId)
 {
     $buildingSettings = file_get_contents(__DIR__ . "./../../../assets/json/buildingsSettings.json", FILE_USE_INCLUDE_PATH);
     $buildingSettings = json_decode($buildingSettings, true);
     if ($buildingSettings[$buildingName] == null) {
         echo 'DEBUG : Le nom du building nest pas present dans buildingsSettings.json';
     }
     $building;
     if (array_key_exists("1", $buildingSettings[$buildingName])) {
         $building = $buildingSettings[$buildingName]["1"];
     } else {
         $building = $buildingSettings[$buildingName];
     }
     $resourceId = ResourcesController::getResourceIdByName($building['resource_price']);
     return ResourcesController::spendResource($resourceId, $building['price'], $userId);
 }
Esempio n. 4
0
use Symfony\Component\HttpFoundation\Request;
use Silex\Application;
require_once __DIR__ . '/../app/controllers/UsersController.class.php';
require_once __DIR__ . '/../app/models/UserModel.class.php';
require_once __DIR__ . '/../Utils.class.php';
require_once __DIR__ . '/../app/models/ResourceModel.class.php';
require_once __DIR__ . '/../app/controllers/ResourcesController.class.php';
require_once __DIR__ . '/../app/models/BuildingModel.class.php';
require_once __DIR__ . '/../app/controllers/BuildingsController.class.php';
require_once __DIR__ . '/../app/models/LanternModel.class.php';
require_once __DIR__ . '/../app/controllers/LanternsController.class.php';
require_once __DIR__ . '/../app/models/GiftModel.class.php';
require_once __DIR__ . '/../app/controllers/GiftsController.class.php';
$basePath = '/v1';
$UsersController = new UsersController();
$ResourcesController = new ResourcesController();
$BuildingsController = new BuildingsController();
$LanternsController = new LanternsController();
$GiftsController = new GiftsController();
$UserModel = new UserModel();
$ResourceModel = new ResourceModel();
$BuildingModel = new BuildingModel();
$LanternModel = new LanternModel();
$GiftModel = new GiftModel();
/*
 * Main path
 */
$app->get('/', function (Request $request) use($app, $UsersController) {
    return $app->redirect('doc/index.html');
});
/*
Esempio n. 5
0
 /**
  * Permission constructor.
  */
 public function __construct(\App\Libraries\Acl\Repositories\Permission $repository)
 {
     parent::__construct($repository);
 }
Esempio n. 6
0
 public function paradeUpdate($params)
 {
     $userId = self::getUserIdByToken(addslashes($params['token']));
     if (!$userId) {
         return Utils::formatErrorMessage(ERROR_BAD_TOKEN, "Bad token");
     }
     $params['hardPurchase'] = $params['hardPurchase'] == 'true';
     $paradeSettings = file_get_contents(__DIR__ . "./../../../assets/json/paradeSettings.json", FILE_USE_INCLUDE_PATH);
     $paradeSettings = json_decode($paradeSettings, true);
     $lanterns = LanternsController::getLanterns($userId);
     $maxBonus = $paradeSettings['generatedBonusCountPerLanterns'] * count($lanterns);
     if ($params['bonusHarvested'] > $maxBonus) {
         return Utils::formatErrorMessage(ERROR_BONUS_SENT_TOO_BIG, "Bonus sent is too big");
     }
     $offeringResourceId = ResourcesController::getResourceIdByName("offering");
     if (!$params['hardPurchase']) {
         $sql = "SELECT last_parade_at FROM users WHERE id = '" . $userId . "'";
         $result = $GLOBALS['app']['db']->fetchAll($sql);
         $lastParadeAt = new DateTime($result[0]['last_parade_at']);
         $now = new DateTime();
         // Verification de si la parade n'a pas eu lieu aujourd'hui
         if ($lastParadeAt->format('d') != $now->format('d') || $now->getTimestamp() - $lastParadeAt->getTimestamp() >= 86400) {
             $sql = "UPDATE users\n\t\t\t\t\t\tSET last_parade_at = NOW()\n\t\t\t\t\t\tWHERE id = '" . $userId . "'";
             $result = $GLOBALS['app']['db']->exec($sql);
             $goldGained = $this->convertBonusToGold($params['bonusHarvested'], $paradeSettings, $userId);
             ResourcesController::addResource($offeringResourceId, $goldGained, $userId);
         } else {
             return Utils::formatErrorMessage(ERROR_PARADE_ALREADY_LAUNCH, "Parade already launched today");
         }
     } else {
         $resourceId = ResourcesController::getResourceIdByName("spice");
         if (ResourcesController::spendResource($resourceId, $paradeSettings['paradeHardPrice'], $userId)) {
             $goldGained = $this->convertBonusToGold($params['bonusHarvested'], $paradeSettings, $userId);
             ResourcesController::addResource($offeringResourceId, $goldGained, $userId);
         } else {
             return Utils::formatErrorMessage(ERROR_NO_MONEY, "Not enought spice");
         }
     }
     return ResourcesController::getResource($userId);
 }