- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
<?php
namespace AppHttpControllers;
use AppModelsCardUserModel;
use IlluminateHttpRequest;
use AppModelsUserModel;
use AppModelsArenaBattleModel;
use AppModelsArenaCardsModel;
use Auth;
use Services;
class ArenaController extends Controller
{
public function index()
{
$issetBattle = ArenaBattleModel::where('user1', Auth::user()->id)->orWhere('user2', Auth::user()->id)->count();
if($issetBattle == 0)
{
$result = 'Начать подбор противника!<br>
<a href="/arena/find" class="btn btn-games2 btn-block">Искать</a>';
}
else
{
$battle = ArenaBattleModel::where('user1', Auth::user()->id)->orWhere('user2', Auth::user()->id)->first();
if($battle->status == 'card1_pick') return redirect('/arena/pick/1');
if($battle->status == 'card2_pick') return redirect('/arena/pick/2');
if($battle->status == 'battle') return redirect('/arena/battle');
if($battle->status == 'result') return redirect('/arena/result');
if($battle->user1 == Auth::user()->id) $opponent = $battle->user2;
else $opponent = $battle->user1;
if($opponent == 0) $result = 'Идёт поиск противника!<br>
<a href="/arena/cancel" class="btn btn-games2 btn-block">Отменить поиск</a>';
else
{
if($battle->start_time < time())
{
$battle->status = 'card1_pick';
$battle->save();
return redirect('/arena/pick/1');
}
$result = 'Противник найден!<br>
'.($battle->start_time-time() > 0 ? 'До начала боя: '.Services::timer($battle->start_time-time()).'<br>' : 'Бой начался!<br>').'
<a href="/arena/cancel" class="btn btn-games2 btn-block">Отменить поиск</a>';
}
}
return view('game.battles.arena.index', ['result' => $result]);
}
public function find()
{
$issetBattle = ArenaBattleModel::where('user1', Auth::user()->id)->orWhere('user2', Auth::user()->id)->count();
if($issetBattle > 0) return back()->with('error', 'Подбор уже начат!');
$battles = ArenaBattleModel::where('status', 'prepare')->where('user2', 0)->inRandomOrder();
$myMaxCardLevel = Services::getMaxCardLevel(Auth::user()->id);
if($battles->count() == 0)
{
ArenaBattleModel::create([
'user1' => Auth::user()->id,
'card_level' => $myMaxCardLevel+1
]);
return back()->with('ok', 'Поиск противника начат!');
}
else
{
$battles = $battles->first();
if($battles->card_level-1 > $myMaxCardLevel) $battles->card_level = $myMaxCardLevel+1;
$battles->user2 = Auth::user()->id;
$battles->start_time = time()+30;
$battles->save();
return back()->with('ok', 'Противник найден!');
}
}
public function cancelFind()
{
$issetBattle = ArenaBattleModel::where('user1', Auth::user()->id)->orWhere('user2', Auth::user()->id);
if($issetBattle->count() == 0) return back()->with('error', 'Подбор ещё не начат!');
$foundBattle = $issetBattle->first();
if($foundBattle->user1 == Auth::user()->id) $foundBattle->delete();
else
{
$opponentMaxCardLevel = Services::getMaxCardLevel($foundBattle->user1);
if($opponentMaxCardLevel != $foundBattle->card_level) $foundBattle->card_level = $opponentMaxCardLevel+1;
$foundBattle->user2 = 0;
$foundBattle->save();
}
return back();
}
}
// и еще 10кб кода
код игры на Laravel . Вкусняшка
guest8 27.02.2019 22:13 # −999
vadyanych 04.04.2019 04:59 # +1
AHCKujlbHblu_netyx 04.04.2019 12:58 # 0