/** * Give reward to user * POST * * @param App\Library\Reward $rewardLib * @param Request $request * @param int $id * @param string $name * @return Response */ public function giveObject(Reward $rewardLib, Request $request, $id, $name) { $reward = RewardManager::join('item_template', 'item_template.id', '=', 'item')->where('item', $id)->first(); $user = UserManager::find(Auth::user()->guid); $this->validate($request, ['player' => 'required|numeric|exists:personnages,guid']); if ($user->votes < $reward->votes) { return redirect()->back(); } elseif ($rewardLib->checkReward($user->rewards, $reward->item)) { return redirect()->back(); } $user->rewards .= $reward->item . '|'; $user->save(); $live = new \App\Model\Action(); $live->PlayerID = $request->player; $live->Action = 21; $live->Nombre = $reward->item; $live->save(); return redirect()->route('rewards.home'); }
/** * Buy an object on shop * POST * * @param Request $request * @param int $id * @param string $name * @return Response */ public function buyObject(Request $request, $id, $name) { $this->validate($request, ['player' => 'required|numeric|exists:personnages,guid', 'cgu' => 'required']); $item = ItemManager::find($id); $user = \App\Model\User::find(Auth::user()->guid); if ($item->stock == 0) { return redirect()->back(); } elseif ($item->price > $user->points) { return redirect()->back(); } $user->points -= $item->price; $user->save(); $item->stock -= 1; $item->save(); $action = new \App\Model\Action(); $action->PlayerID = $request->player; $action->Action = 21; $action->Nombre = $item->id; $action->save(); return redirect()->route('shop.home'); }
/** * Play lotery * POST * * @param Request $request * @return Response */ public function playLotery(Request $request) { $this->validate($request, ['player' => 'required|numeric|exists:personnages,guid']); $item = ItemManager::where('lotery', 1)->orderByRaw('RAND()')->first(); $user = UserManager::find(Auth::user()->guid); if ($user->points < config('config.points.lotery')) { return redirect()->back(); } $user->points -= config('config.points.lotery'); $user->save(); $action = new \App\Model\Action(); $action->PlayerID = $request->player; $action->Action = 21; $action->Nombre = $item->id; $action->save(); return view('points.success', compact('item')); }
/** * Give object to player * * @param int $playerId * @param int $objectId */ private function _giveObject($playerId, $objectId) { $live = new \App\Model\Action(); $live->PlayerID = $playerId; $live->Action = 21; $live->Nombre = $objectId; $live->save(); }