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'); }); /* * Users */
public static function isValidPosition($x, $y, $userId) { $buildingsSettings = BuildingsController::getSettings(); //pour le debug $sql = "SELECT id\n\t\t\t\tFROM building_users\n\t\t\t\tWHERE user_id = " . $userId . "\n\t\t\t\t\tAND x = " . $x . "\n\t\t\t\t\tAND y = " . $y; $result = $GLOBALS['app']['db']->fetchAll($sql); if (count($result) != 0) { return false; } $lanterns = LanternsController::getLanterns($userId); foreach ($lanterns as $lantern) { if (sqrt(pow($lantern[x] - $x, 2) + pow($lantern[y] - $y, 2)) < $buildingsSettings["lanterns"]["action_radius"]) { return true; } } return false; }
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); }