/** * 开始一场战斗 * @return mixed */ public function start() { // TODO 各种Check // 各项参数取得 $intPlayerId = Input::get('player_id', 0); $intDungeonId = Input::get('dungeon_id', 0); $strType = Input::get('type', 'normal'); $now = Carbon::now(); // 有没有进行中的战斗 $objBattle = Battle::where('player_id', $intPlayerId)->where('dungeon_id', $intDungeonId)->where('end_datetime', '>', $now)->orderBy('id', 'DESC')->first(); // 存在进行中的战斗 if (!empty($objBattle)) { return Response::json($objBattle->toArray()); } // 取得地下城信息 $lstDungeonInfo = Dungeon::getInfo($intDungeonId); // 没有找到该当地下城 if (empty($lstDungeonInfo)) { return 'Dungeon not exist'; } // 取得地下城对象 $objDungeon = $lstDungeonInfo['info']; // Team TODO $intTeamId = Input::get('team_id'); $objTeam = Team::find($intTeamId); if (!$objTeam) { return 'NG TeamId'; } // 队伍的PlayerId不一致的情况 if ($objTeam->player_id != $intPlayerId) { return 'Wrong PlayerId For Team'; } // 冒险做成 $objBattle = new Battle(); // 冒险情报的各种设定 $objBattle->player_id = $intPlayerId; $objBattle->dungeon_id = $intDungeonId; $objBattle->floor = $objDungeon->floor; $objBattle->current_floor = 0; $objBattle->type = $strType; $objBattle->start_datetime = $now->toDateTimeString(); $objBattle->end_datetime = $now->addMinutes($objDungeon->floor)->toDateTimeString(); // 出战队伍信息保存在冒险信息中 if ($objTeam->position_1_owned_card_id != 0) { $ownedCard1 = OwnedCard::find($objTeam->position_1_owned_card_id); $objBattle->position_1 = $ownedCard1->id; } if ($objTeam->position_2_owned_card_id != 0) { $ownedCard2 = OwnedCard::find($objTeam->position_2_owned_card_id); $objBattle->position_2 = $ownedCard2->id; } if ($objTeam->position_3_owned_card_id != 0) { $ownedCard3 = OwnedCard::find($objTeam->position_3_owned_card_id); $objBattle->position_3 = $ownedCard3->id; } if ($objTeam->position_4_owned_card_id != 0) { $ownedCard4 = OwnedCard::find($objTeam->position_4_owned_card_id); $objBattle->position_4 = $ownedCard4->id; } if ($objTeam->position_5_owned_card_id != 0) { $ownedCard5 = OwnedCard::find($objTeam->position_5_owned_card_id); $objBattle->position_5 = $ownedCard5->id; } if ($objTeam->position_6_owned_card_id != 0) { $ownedCard6 = OwnedCard::find($objTeam->position_6_owned_card_id); $objBattle->position_6 = $ownedCard6->id; } if ($objBattle->save()) { return Response::json($objBattle->toArray()); } }